解析导入日期

This commit is contained in:
zhonghua.li
2026-04-25 15:35:10 +08:00
parent 0fe9333544
commit 023503a204
2 changed files with 40 additions and 2 deletions

View File

@@ -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',

View File

@@ -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