From 70cd1ae2b267605ec3bf4dd7fd75ffedc1448f9c Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Fri, 30 Oct 2026 21:07:35 +0800 Subject: [PATCH] =?UTF-8?q?feat(approval):=20=E5=91=98=E5=B7=A5=E7=AB=AF?= =?UTF-8?q?=E5=86=85=E9=83=A8=E5=8D=8F=E8=B0=83=E5=8D=95=E6=96=B0=E5=BB=BA?= =?UTF-8?q?/=E7=BC=96=E8=BE=91=E4=B8=8E=E5=AE=A1=E6=89=B9=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=85=A5=E5=8F=A3=20(#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/approval/directory/index.ts | 17 + src/api/approval/instance/index.ts | 15 + src/api/approval/model/index.ts | 11 + src/packageApproval/pages/detail.vue | 12 +- .../pages/form-coordination.vue | 575 ++++++++++++++++++ src/packageApproval/pages/index.vue | 52 +- src/pages.json | 7 + 7 files changed, 670 insertions(+), 19 deletions(-) create mode 100644 src/api/approval/directory/index.ts create mode 100644 src/packageApproval/pages/form-coordination.vue diff --git a/src/api/approval/directory/index.ts b/src/api/approval/directory/index.ts new file mode 100644 index 0000000..d3a3266 --- /dev/null +++ b/src/api/approval/directory/index.ts @@ -0,0 +1,17 @@ +import request from '@/utils/request'; +import type { ApiResult } from '@/api'; +import type { ApprovalOrganization } from '../model'; +import { THINK_API_URL } from '@/config/setting'; + +/** + * 启用组织(内部协调单受理部门选择) + */ +export async function getOrganizations() { + const res = await request.get>( + THINK_API_URL + '/approval/directory/organizations' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/api/approval/instance/index.ts b/src/api/approval/instance/index.ts index 21a41fd..20975e0 100644 --- a/src/api/approval/instance/index.ts +++ b/src/api/approval/instance/index.ts @@ -2,6 +2,7 @@ import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; import type { ApprovalCompletionForm, + ApprovalCoordinationForm, ApprovalInstance, ApprovalItem, ApprovalMineParam, @@ -23,6 +24,20 @@ export async function saveCompletion(data: ApprovalCompletionForm) { return Promise.reject(new Error(res.data.message)); } +/** + * 新建或保存内部协调单草稿,返回实例id + */ +export async function saveCoordination(data: ApprovalCoordinationForm) { + const res = await request.post>( + THINK_API_URL + '/approval/instance/coordination', + data + ); + if (res.data.code === 0) { + return res.data.data as number; + } + return Promise.reject(new Error(res.data.message)); +} + /** * 提交或重提 */ diff --git a/src/api/approval/model/index.ts b/src/api/approval/model/index.ts index bd2d258..af22166 100644 --- a/src/api/approval/model/index.ts +++ b/src/api/approval/model/index.ts @@ -128,6 +128,17 @@ export interface ApprovalCompletionForm { serviceContent: string; } +/** + * 内部协调单草稿参数 + */ +export interface ApprovalCoordinationForm { + id?: number; + acceptOrgId?: number; + title: string; + content: string; + remark?: string; +} + /** * 我发起的查询参数 */ diff --git a/src/packageApproval/pages/detail.vue b/src/packageApproval/pages/detail.vue index eb591a8..e4f3ec8 100644 --- a/src/packageApproval/pages/detail.vue +++ b/src/packageApproval/pages/detail.vue @@ -232,13 +232,19 @@ async function load() { } function editAndResubmit() { - if (detail.value?.docType !== 'completion') { + const docType = detail.value?.docType; + const page = + docType === 'completion' + ? 'form-completion' + : docType === 'coordination' + ? 'form-coordination' + : ''; + if (!page) { showError('该单据类型暂不支持在线修改', null); return; } uni.navigateTo({ - url: - '/packageApproval/pages/form-completion?mode=edit&id=' + instanceId.value + url: `/packageApproval/pages/${page}?mode=edit&id=` + instanceId.value }); } diff --git a/src/packageApproval/pages/form-coordination.vue b/src/packageApproval/pages/form-coordination.vue new file mode 100644 index 0000000..eb9fb94 --- /dev/null +++ b/src/packageApproval/pages/form-coordination.vue @@ -0,0 +1,575 @@ +