解析导入日期
This commit is contained in:
@@ -38,12 +38,13 @@ export function deleteLbDailyUserTrade(id) {
|
||||
})
|
||||
}
|
||||
|
||||
export function importLbDailyUserTrade(file, defaultReportDate) {
|
||||
export function importLbDailyUserTrade(file, defaultReportDate, tenantId) {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
if (defaultReportDate) {
|
||||
formData.append('defaultReportDate', defaultReportDate)
|
||||
}
|
||||
formData.append('tenantId', tenantId)
|
||||
return request({
|
||||
url: '/lbDailyUserTrade/import',
|
||||
method: 'post',
|
||||
|
||||
@@ -177,6 +177,7 @@ import {
|
||||
importLbDailyUserTrade,
|
||||
updateLbDailyUserTrade
|
||||
} from '@/api/lb-daily-user-trade'
|
||||
import { getBusinessHeaders } from '@/utils/business-headers'
|
||||
|
||||
export default {
|
||||
name: 'LbDailyTrade',
|
||||
@@ -355,8 +356,14 @@ export default {
|
||||
submitImport() {
|
||||
this.$refs.importFormRef.validate((valid) => {
|
||||
if (!valid) return
|
||||
const tenantId = this.getTenantIdFromBusinessHeaders()
|
||||
if (!tenantId) {
|
||||
this.$message.error('未获取到租户ID,请先登录或切换到正确租户后重试')
|
||||
return
|
||||
}
|
||||
const effectiveReportDate = this.resolveReportDateForImport()
|
||||
this.importLoading = true
|
||||
importLbDailyUserTrade(this.importForm.file, this.importForm.defaultReportDate)
|
||||
importLbDailyUserTrade(this.importForm.file, effectiveReportDate, tenantId)
|
||||
.then((res) => {
|
||||
this.$message.success(res.message || '导入成功')
|
||||
this.importDialogVisible = false
|
||||
@@ -376,6 +383,36 @@ export default {
|
||||
defaultReportDate: ''
|
||||
}
|
||||
},
|
||||
getTenantIdFromBusinessHeaders() {
|
||||
const headers = getBusinessHeaders()
|
||||
const value = headers && headers['X-Tenant-Id']
|
||||
return value ? String(value).trim() : ''
|
||||
},
|
||||
resolveReportDateForImport() {
|
||||
// 优先级:用户填写 > 文件名解析 > 当天日期
|
||||
if (this.importForm.defaultReportDate) {
|
||||
return this.importForm.defaultReportDate
|
||||
}
|
||||
const fileName = this.importForm.file && this.importForm.file.name ? String(this.importForm.file.name) : ''
|
||||
const dateFromName = this.extractDateFromFileName(fileName)
|
||||
if (dateFromName) {
|
||||
return dateFromName
|
||||
}
|
||||
return this.getTodayDateString()
|
||||
},
|
||||
extractDateFromFileName(fileName) {
|
||||
if (!fileName) return ''
|
||||
const match = fileName.match(/(20\d{2})[-_\.](0[1-9]|1[0-2])[-_\.](0[1-9]|[12]\d|3[01])/)
|
||||
if (!match) return ''
|
||||
return `${match[1]}-${match[2]}-${match[3]}`
|
||||
},
|
||||
getTodayDateString() {
|
||||
const date = new Date()
|
||||
const year = date.getFullYear()
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0')
|
||||
const day = String(date.getDate()).padStart(2, '0')
|
||||
return `${year}-${month}-${day}`
|
||||
},
|
||||
handleSubmit() {
|
||||
this.$refs.dataForm.validate((valid) => {
|
||||
if (!valid) return
|
||||
|
||||
Reference in New Issue
Block a user