From 4306cbd74b2aa18eaea191eef440e6752e9b062b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=AB=E5=9C=B0=E5=83=A7?= <357099073@qq.com> Date: Fri, 16 Oct 2026 23:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=A5=E9=94=80=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/api/approval.js | 27 ++ .../components/DetailDrawer.vue | 383 ++++++++++++++++++ .../src/views/apps/oa/approvalcenter/list.vue | 228 +++++++++++ .../src/views/apps/oa/approvalcenter/mine.vue | 236 +++++++++++ .../views/apps/oa/approvalcenter/settings.vue | 117 ++++++ .../apps/oa/reimburse/components/detail.vue | 76 ++-- backend/src/views/apps/oa/reimburse/index.vue | 25 ++ go/controllers/app_approval.go | 219 ++++++++-- go/controllers/app_oa_expense.go | 3 +- go/controllers/backend_approval_runtime.go | 340 ++++++++++++++++ go/controllers/backend_reimburse.go | 34 +- go/docs/sql/oa_approvalcenter_menus.sql | 65 +++ go/routers/backend/backend.go | 7 + uniapp/api/approval.js | 48 +-- uniapp/api/expense.js | 9 +- uniapp/pages/approval/detail.vue | 220 ++++------ uniapp/pages/approval/index.vue | 194 ++------- uniapp/pages/tools/expense/detail.vue | 232 +++++++---- uniapp/src/styles/page-common.scss | 130 ++++++ 19 files changed, 2059 insertions(+), 534 deletions(-) create mode 100644 backend/src/views/apps/oa/approvalcenter/components/DetailDrawer.vue create mode 100644 backend/src/views/apps/oa/approvalcenter/list.vue create mode 100644 backend/src/views/apps/oa/approvalcenter/mine.vue create mode 100644 backend/src/views/apps/oa/approvalcenter/settings.vue create mode 100644 go/controllers/backend_approval_runtime.go create mode 100644 go/docs/sql/oa_approvalcenter_menus.sql diff --git a/backend/src/api/approval.js b/backend/src/api/approval.js index 27825e9..82e1a4e 100644 --- a/backend/src/api/approval.js +++ b/backend/src/api/approval.js @@ -57,3 +57,30 @@ export function getApprovalFlowPick(params) { export function getAvailableFlows(params) { return request({ url: '/backend/approval/flow/available', method: 'get', params }); } + +// ==================== 审批中心(运行时实例) ==================== + +// 我发起的审批实例列表 +export function getMyApprovalInstances(params) { + return request({ url: '/backend/approval/instance/mine', method: 'get', params }); +} + +// 我作为审批人的任务列表(handled=1 返回我已处理) +export function getApprovalTodo(params) { + return request({ url: '/backend/approval/instance/todo', method: 'get', params }); +} + +// 审批实例详情(含流程时间线) +export function getApprovalInstanceDetail(id) { + return request({ url: `/backend/approval/instance/detail/${id}`, method: 'get' }); +} + +// 审批人通过 / 驳回 +export function approveApprovalInstance(data) { + return request({ url: '/backend/approval/instance/approve', method: 'post', data }); +} + +// 发起人撤回 +export function withdrawApprovalInstance(id) { + return request({ url: `/backend/approval/instance/withdraw/${id}`, method: 'post' }); +} diff --git a/backend/src/views/apps/oa/approvalcenter/components/DetailDrawer.vue b/backend/src/views/apps/oa/approvalcenter/components/DetailDrawer.vue new file mode 100644 index 0000000..ca036f9 --- /dev/null +++ b/backend/src/views/apps/oa/approvalcenter/components/DetailDrawer.vue @@ -0,0 +1,383 @@ + + + + + diff --git a/backend/src/views/apps/oa/approvalcenter/list.vue b/backend/src/views/apps/oa/approvalcenter/list.vue new file mode 100644 index 0000000..3365a76 --- /dev/null +++ b/backend/src/views/apps/oa/approvalcenter/list.vue @@ -0,0 +1,228 @@ + + + + + diff --git a/backend/src/views/apps/oa/approvalcenter/mine.vue b/backend/src/views/apps/oa/approvalcenter/mine.vue new file mode 100644 index 0000000..f46fbd6 --- /dev/null +++ b/backend/src/views/apps/oa/approvalcenter/mine.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/backend/src/views/apps/oa/approvalcenter/settings.vue b/backend/src/views/apps/oa/approvalcenter/settings.vue new file mode 100644 index 0000000..439b272 --- /dev/null +++ b/backend/src/views/apps/oa/approvalcenter/settings.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/backend/src/views/apps/oa/reimburse/components/detail.vue b/backend/src/views/apps/oa/reimburse/components/detail.vue index 7068521..e4207b4 100644 --- a/backend/src/views/apps/oa/reimburse/components/detail.vue +++ b/backend/src/views/apps/oa/reimburse/components/detail.vue @@ -242,33 +242,16 @@ @saved="handleItemsSaved" /> - -

选择要变更的单据状态,保存后立即生效。

- - - {{ item.label }} - - - -
-