diff --git a/src/api/lb-daily-user-trade.js b/src/api/lb-daily-user-trade.js index 637e854..631320a 100644 --- a/src/api/lb-daily-user-trade.js +++ b/src/api/lb-daily-user-trade.js @@ -37,3 +37,19 @@ export function deleteLbDailyUserTrade(id) { method: 'delete' }) } + +export function importLbDailyUserTrade(file, defaultReportDate) { + const formData = new FormData() + formData.append('file', file) + if (defaultReportDate) { + formData.append('defaultReportDate', defaultReportDate) + } + return request({ + url: '/lbDailyUserTrade/import', + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} diff --git a/src/views/lb-business/daily-trade/index.vue b/src/views/lb-business/daily-trade/index.vue index ad1fd97..8c8549e 100644 --- a/src/views/lb-business/daily-trade/index.vue +++ b/src/views/lb-business/daily-trade/index.vue @@ -23,6 +23,7 @@ 新增 + 导入数据 @@ -129,6 +130,42 @@ 确定 + + + + + + +
将文件拖到此处,或点击上传
+
仅支持 .xls/.xlsx 格式
+
+
+ + + +
+ +
@@ -137,6 +174,7 @@ import { addLbDailyUserTrade, deleteLbDailyUserTrade, getLbDailyUserTradeList, + importLbDailyUserTrade, updateLbDailyUserTrade } from '@/api/lb-daily-user-trade' @@ -146,11 +184,14 @@ export default { return { loading: false, submitLoading: false, + importLoading: false, list: [], total: 0, dialogVisible: false, + importDialogVisible: false, dialogTitle: '', isEdit: false, + importFileList: [], queryParams: { current: 1, size: 10, @@ -177,6 +218,13 @@ export default { formRules: { tenantId: [{ required: true, message: '请输入租户ID', trigger: 'blur' }], userId: [{ required: true, message: '请输入用户ID', trigger: 'blur' }] + }, + importForm: { + file: null, + defaultReportDate: '' + }, + importRules: { + file: [{ required: true, message: '请上传Excel文件', trigger: 'change' }] } } }, @@ -288,6 +336,46 @@ export default { this.fetchList() }).catch(() => {}) }, + openImportDialog() { + this.importDialogVisible = true + this.$nextTick(() => { + if (this.$refs.importFormRef) this.$refs.importFormRef.clearValidate() + }) + }, + handleImportFileChange(file, fileList) { + this.importFileList = fileList.slice(-1) + this.importForm.file = this.importFileList.length > 0 ? this.importFileList[0].raw : null + if (this.$refs.importFormRef) this.$refs.importFormRef.validateField('file') + }, + handleImportFileRemove(file, fileList) { + this.importFileList = fileList + this.importForm.file = null + if (this.$refs.importFormRef) this.$refs.importFormRef.validateField('file') + }, + submitImport() { + this.$refs.importFormRef.validate((valid) => { + if (!valid) return + this.importLoading = true + importLbDailyUserTrade(this.importForm.file, this.importForm.defaultReportDate) + .then((res) => { + this.$message.success(res.message || '导入成功') + this.importDialogVisible = false + this.fetchList() + }) + .finally(() => { + this.importLoading = false + }) + }) + }, + resetImportForm() { + if (this.$refs.importFormRef) this.$refs.importFormRef.resetFields() + if (this.$refs.importUploadRef) this.$refs.importUploadRef.clearFiles() + this.importFileList = [] + this.importForm = { + file: null, + defaultReportDate: '' + } + }, handleSubmit() { this.$refs.dataForm.validate((valid) => { if (!valid) return