From 595054eb43f08f528fd8bf17b65c9151cf4483f3 Mon Sep 17 00:00:00 2001 From: wzclm <2855471171@qq.com> Date: Fri, 21 Feb 2025 04:13:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=8A=A5=E5=91=8A=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/report/template.js | 71 ++ src/layout/AdminLayout.vue | 1 + src/router/index.js | 5 + src/views/report/reportTemplates/index.vue | 880 +++++++++++++++++++++ 4 files changed, 957 insertions(+) create mode 100644 src/api/report/template.js create mode 100644 src/views/report/reportTemplates/index.vue diff --git a/src/api/report/template.js b/src/api/report/template.js new file mode 100644 index 0000000..15e663e --- /dev/null +++ b/src/api/report/template.js @@ -0,0 +1,71 @@ +import request from '@/utils/request' + +/** + * 获取报告模板列表 + * @param {Object} params - 查询参数 + * @param {number} [params.page=1] - 页码 + * @param {number} [params.pageSize=10] - 每页条数 + * @param {string} [params.templateCode] - 模板编号 + * @param {string} [params.templateName] - 模板名称 + * @param {string} [params.templateType] - 模板类型 + * @param {number} [params.status] - 状态 + * @returns {Promise} 返回模板列表数据 + */ +export function getTemplateList(params = {}) { + return request.get('/api/reports/templates', { + params: { + page: 1, + pageSize: 10, + ...params + } + }) +} + +/** + * 获取模板详情 + * @param {string|number} id - 模板ID + * @returns {Promise} 返回模板详情数据 + */ +export function getTemplateDetail(id) { + return request.get(`/api/reports/templates/${id}`) +} + +/** + * 创建报告模板 + * @param {Object} data - 模板数据 + * @returns {Promise} 返回创建结果 + */ +export function createTemplate(data) { + return request.post('/api/reports/templates', data) +} + +/** + * 更新报告模板 + * @param {string|number} id - 模板ID + * @param {Object} data - 更新数据 + * @returns {Promise} 返回更新结果 + */ +export function updateTemplate(id, data) { + return request.put(`/api/reports/templates/${id}`, data) +} + +/** + * 删除报告模板 + * @param {string|number} id - 模板ID + * @returns {Promise} 返回删除结果 + */ +export function deleteTemplate(id) { + return request.delete(`/api/reports/templates/${id}`) +} + +/** + * 更新模板状态 + * @param {string|number} id - 模板ID + * @param {number} status - 状态:0-禁用 1-启用 + * @returns {Promise} 返回更新结果 + */ +export function updateTemplateStatus(id, status) { + return request.put(`/api/reports/templates/${id}/status`, { + status: status === 1 ? 1 : 0 // 确保只发送 1 或 0 + }) +} \ No newline at end of file diff --git a/src/layout/AdminLayout.vue b/src/layout/AdminLayout.vue index 1879a3d..3e497f7 100644 --- a/src/layout/AdminLayout.vue +++ b/src/layout/AdminLayout.vue @@ -137,6 +137,7 @@ const handleLogout = () => { 报告管理 报告管理 + 报告模板 分析报告 项目背景 diff --git a/src/router/index.js b/src/router/index.js index 318d09f..600fab0 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -79,6 +79,11 @@ const router = createRouter({ name: 'DailyReports', component: () => import('../views/report/daily/index.vue') }, + { + path: 'report/reportTemplates', + name: 'ReportTemplates', + component: () => import('../views/report/reportTemplates/index.vue') + }, { path: 'report/analysis', name: 'AnalysisReports', diff --git a/src/views/report/reportTemplates/index.vue b/src/views/report/reportTemplates/index.vue new file mode 100644 index 0000000..03efd20 --- /dev/null +++ b/src/views/report/reportTemplates/index.vue @@ -0,0 +1,880 @@ + + + + +