From 986f57395682b534eacec1b9d93f072575a3174a Mon Sep 17 00:00:00 2001 From: wzclm <2855471171@qq.com> Date: Fri, 21 Feb 2025 03:35:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8A=A5=E5=91=8A=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/report/daily.js | 122 +++ src/layout/AdminLayout.vue | 2 +- src/views/report/analysis/index.vue | 2 +- src/views/report/daily/index.vue | 1585 +++++++++++++++++++-------- 4 files changed, 1275 insertions(+), 436 deletions(-) create mode 100644 src/api/report/daily.js diff --git a/src/api/report/daily.js b/src/api/report/daily.js new file mode 100644 index 0000000..5d53439 --- /dev/null +++ b/src/api/report/daily.js @@ -0,0 +1,122 @@ +import request from '@/utils/request' + +/** + * 获取报告列表 + * @param {Object} params - 查询参数 + * @param {number} [params.page=1] - 页码 + * @param {number} [params.pageSize=10] - 每页条数 + * @param {number} [params.status] - 状态筛选 + * @param {string} [params.startDate] - 开始日期 + * @param {string} [params.endDate] - 结束日期 + * @param {string} [params.keyword] - 搜索关键词 + * @returns {Promise} 返回报告列表数据 + */ +export function getReportList(params = {}) { + return request.get('/api/reports', { + params: { + page: 1, + pageSize: 10, + ...params + } + }) +} + +/** + * 获取报告详情 + * @param {string|number} id - 报告ID + * @returns {Promise} 返回报告详情数据 + */ +export function getReportDetail(id) { + return request.get(`/api/reports/${id}`) +} + +/** + * 删除报告 + * @param {string|number} id - 报告ID + * @returns {Promise} 返回删除结果 + */ +export function deleteReport(id) { + return request.delete(`/api/reports/${id}`) +} + +/** + * 审核报告 + * @param {string|number} id - 报告ID + * @param {Object} data - 审核数据 + * @param {boolean} data.approved - 是否通过 + * @param {string} [data.comment] - 审核意见 + * @returns {Promise} 返回审核结果 + */ +export function reviewReport(id, data) { + return request.post(`/api/reports/${id}/review`, { + status: data.approved ? 2 : 3, // 2表示通过,3表示驳回 + review_comment: !data.approved ? data.comment : undefined // 仅在驳回时发送审核意见 + }) +} + +/** + * 获取报告统计信息 + * @returns {Promise} 返回统计数据 + */ +export function getReportStatistics() { + return request.get('/api/reports/statistics') +} + +/** + * 批量导出报告 + * @param {Object} params - 导出参数 + * @param {Array} params.ids - 报告ID列表 + * @returns {Promise} 返回二进制文件流 + */ +export function batchExportReports(params) { + return request.post('/api/reports/batch/export', { + ids: params.ids, + format: 'excel' + }, { + responseType: 'arraybuffer', + headers: { + 'Accept': 'application/vnd.ms-excel', + 'Content-Type': 'application/json' + } + }) +} + +/** + * 批量删除报告 + * @param {Array} ids - 报告ID列表 + * @returns {Promise} 返回删除结果 + */ +export function batchDeleteReports(ids) { + return request.post('/api/reports/batch/delete', { ids }) +} + +/** + * 导出单个报告 + * @param {string|number} id - 报告ID + * @returns {Promise} 返回二进制文件流 + */ +export function exportReport(id) { + return request.post(`/api/reports/${id}/export`, { id }, { + responseType: 'arraybuffer', + headers: { + 'Accept': 'application/vnd.ms-excel', + 'Content-Type': 'application/json' + } + }) +} + +/** + * 获取报告趋势数据 + * @param {Object} params - 查询参数 + * @param {number} [params.days=30] - 统计天数 + * @param {string} [params.type] - 报告类型 + * @returns {Promise} 返回趋势数据 + */ +export function getReportTrend(params = {}) { + return request.get('/api/reports/statistics', { + params: { + days: 30, + ...params + } + }) +} \ No newline at end of file diff --git a/src/layout/AdminLayout.vue b/src/layout/AdminLayout.vue index 1b79df0..1879a3d 100644 --- a/src/layout/AdminLayout.vue +++ b/src/layout/AdminLayout.vue @@ -136,7 +136,7 @@ const handleLogout = () => { 报告管理 - 日常报告 + 报告管理 分析报告 项目背景 diff --git a/src/views/report/analysis/index.vue b/src/views/report/analysis/index.vue index cd5802d..0b7544d 100644 --- a/src/views/report/analysis/index.vue +++ b/src/views/report/analysis/index.vue @@ -460,7 +460,7 @@ const handleRefresh = () => {