From e062fc6607880a8862d41d69e4fce0598a489457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wei=5F=E4=BD=B3?= Date: Thu, 13 Nov 2025 15:53:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BC=B0=E5=80=BC?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=E5=92=8C=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增估值管理一级菜单目录 - 新增审核列表二级菜单 - 实现审核列表页面,支持查看详情和审核操作 - 添加估值评估相关API接口定义 - 支持审核通过和拒绝操作 --- docs/sql/add_valuation_menu.sql | 24 ++ web/src/api/index.js | 9 + web/src/views/valuation/audit/index.vue | 394 ++++++++++++++++++++++++ 3 files changed, 427 insertions(+) create mode 100644 docs/sql/add_valuation_menu.sql create mode 100644 web/src/views/valuation/audit/index.vue diff --git a/docs/sql/add_valuation_menu.sql b/docs/sql/add_valuation_menu.sql new file mode 100644 index 0000000..d08691d --- /dev/null +++ b/docs/sql/add_valuation_menu.sql @@ -0,0 +1,24 @@ +-- 新增估值管理菜单 +-- 创建时间: 2025-11-13 + +-- 插入一级目录:估值管理 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (18, '估值管理', 'catalog', 'carbon:calculator', '/valuation', 4, 0, 0, 'Layout', 0, '/valuation/audit', datetime('now'), datetime('now')); + +-- 插入二级菜单:审核列表 +INSERT INTO menu (id, name, menu_type, icon, path, 'order', parent_id, is_hidden, component, keepalive, redirect, created_at, updated_at) +VALUES + (19, '审核列表', 'menu', 'carbon:task-approved', 'audit', 1, 18, 0, '/valuation/audit', 0, NULL, datetime('now'), datetime('now')); + +-- 为管理员角色分配菜单权限 +INSERT INTO role_menu (role_id, menu_id) +VALUES + (1, 18), + (1, 19); + +-- 为普通用户角色分配菜单权限 +INSERT INTO role_menu (role_id, menu_id) +VALUES + (2, 18), + (2, 19); diff --git a/web/src/api/index.js b/web/src/api/index.js index b0b7f6c..64bfa43 100644 --- a/web/src/api/index.js +++ b/web/src/api/index.js @@ -53,4 +53,13 @@ export default { deleteInvoice: (params = {}) => request.delete('/invoice/delete', { params }), updateInvoiceStatus: (data = {}) => request.post('/invoice/update-status', data), remindInvoice: (data = {}) => request.post('/invoice/remind', data), + // valuation (估值评估) + getValuationList: (params = {}) => request.get('/valuation', { params }), + getValuationById: (params = {}) => request.get(`/valuation/${params.valuation_id}`), + createValuation: (data = {}) => request.post('/valuation', data), + updateValuation: (data = {}) => request.put(`/valuation/${data.id}`, data), + deleteValuation: (params = {}) => request.delete(`/valuation/${params.valuation_id}`), + approveValuation: (data = {}) => request.post(`/valuation/${data.valuation_id}/approve`, data), + rejectValuation: (data = {}) => request.post(`/valuation/${data.valuation_id}/reject`, data), + updateValuationNotes: (data = {}) => request.put(`/valuation/${data.valuation_id}/admin-notes`, data), } diff --git a/web/src/views/valuation/audit/index.vue b/web/src/views/valuation/audit/index.vue new file mode 100644 index 0000000..fb46181 --- /dev/null +++ b/web/src/views/valuation/audit/index.vue @@ -0,0 +1,394 @@ + + +