From d29190fbac4b9755669fc6404d350d721efdb8e0 Mon Sep 17 00:00:00 2001 From: "zhonghua.li" Date: Sat, 25 Apr 2026 17:59:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/lb-daily-user-trade.js | 15 ++++ src/views/lb-business/daily-report/index.vue | 85 +++++++++----------- src/views/lb-business/daily-trade/index.vue | 59 ++++++++++++++ 3 files changed, 113 insertions(+), 46 deletions(-) diff --git a/src/api/lb-daily-user-trade.js b/src/api/lb-daily-user-trade.js index 51c1d0b..9bbe6fd 100644 --- a/src/api/lb-daily-user-trade.js +++ b/src/api/lb-daily-user-trade.js @@ -1,5 +1,7 @@ import request from '@/utils/request' +const LONG_REQUEST_TIMEOUT = 5 * 60 * 1000 + export function getLbDailyUserTradeList(params) { return request({ url: '/lbDailyUserTrade/list', @@ -59,9 +61,22 @@ export function importLbDailyUserTrade(file, defaultReportDate, tenantId) { return request({ url: '/lbDailyUserTrade/import', method: 'post', + timeout: LONG_REQUEST_TIMEOUT, data: formData, headers: { 'Content-Type': 'multipart/form-data' } }) } + +export function calculateReportByDateAndTenant(reportDate, tenantId) { + return request({ + url: '/lbDailyUserTrade/calculate-report/by-date-and-tenant', + method: 'post', + timeout: LONG_REQUEST_TIMEOUT, + params: { + reportDate, + tenantId + } + }) +} diff --git a/src/views/lb-business/daily-report/index.vue b/src/views/lb-business/daily-report/index.vue index 8136469..0343b15 100644 --- a/src/views/lb-business/daily-report/index.vue +++ b/src/views/lb-business/daily-report/index.vue @@ -2,9 +2,6 @@
- - - @@ -12,7 +9,10 @@ - + + + + - - - - - - 查询 清空 @@ -67,21 +47,19 @@ - - + + + - + - - - @@ -206,6 +224,7 @@ function getLocalTodayDateString() { import { addLbDailyUserTrade, + calculateReportByDateAndTenant, deleteLbDailyUserTradeByDateAndTenant, deleteLbDailyUserTrade, getLbDailyUserTradeList, @@ -222,11 +241,13 @@ export default { submitLoading: false, importLoading: false, deleteByDateLoading: false, + prepareReportLoading: false, list: [], total: 0, dialogVisible: false, importDialogVisible: false, deleteByDateDialogVisible: false, + prepareReportDialogVisible: false, dialogTitle: '', isEdit: false, importFileList: [], @@ -269,6 +290,12 @@ export default { }, deleteByDateRules: { reportDate: [{ required: true, message: '请选择导入日期', trigger: 'change' }] + }, + prepareReportForm: { + reportDate: getLocalTodayDateString() + }, + prepareReportRules: { + reportDate: [{ required: true, message: '请选择报表日期', trigger: 'change' }] } } }, @@ -393,6 +420,13 @@ export default { if (this.$refs.deleteByDateFormRef) this.$refs.deleteByDateFormRef.clearValidate() }) }, + openPrepareReportDialog() { + this.prepareReportForm.reportDate = getLocalTodayDateString() + this.prepareReportDialogVisible = true + this.$nextTick(() => { + if (this.$refs.prepareReportFormRef) this.$refs.prepareReportFormRef.clearValidate() + }) + }, handleImportFileChange(file, fileList) { this.importFileList = fileList.slice(-1) this.importForm.file = this.importFileList.length > 0 ? this.importFileList[0].raw : null @@ -468,6 +502,31 @@ export default { reportDate: '' } }, + submitPrepareReport() { + this.$refs.prepareReportFormRef.validate((valid) => { + if (!valid) return + const tenantId = this.getTenantIdFromBusinessHeaders() + if (!tenantId) { + this.$message.error('未获取到租户ID,请先登录或切换到正确租户后重试') + return + } + this.prepareReportLoading = true + calculateReportByDateAndTenant(this.prepareReportForm.reportDate, tenantId) + .then((res) => { + this.$message.success(res.message || '报表数据准备成功') + this.prepareReportDialogVisible = false + }) + .finally(() => { + this.prepareReportLoading = false + }) + }) + }, + resetPrepareReportForm() { + if (this.$refs.prepareReportFormRef) this.$refs.prepareReportFormRef.resetFields() + this.prepareReportForm = { + reportDate: getLocalTodayDateString() + } + }, getTenantIdFromBusinessHeaders() { const headers = getBusinessHeaders() const value = headers && headers['X-Tenant-Id']