From 7b6e1a36d6bbab67181f4ef71170ebacc231eb5a Mon Sep 17 00:00:00 2001 From: weicw <594098497@qq.com> Date: Fri, 30 Oct 2026 20:45:26 +0800 Subject: [PATCH] =?UTF-8?q?feat(approval):=20=E5=91=98=E5=B7=A5=E7=AB=AF?= =?UTF-8?q?=E5=BE=85=E5=8A=9E/=E5=B7=B2=E5=8A=9E=E4=B8=8E=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E9=A9=B3=E5=9B=9E=E6=92=A4=E5=9B=9E=20(#20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 审批中心三个 tab 接入待办/已办接口,支持状态+关键词筛选与下拉刷新 - 详情页新增通过(意见可选)、驳回(意见必填)、撤回(二次确认) - 驳回/撤回后提供修改并重新提交入口,按钮按 permissions 显隐 --- src/api/approval/instance/index.ts | 31 +++- src/api/approval/model/index.ts | 15 ++ src/api/approval/task/index.ts | 42 +++++ src/packageApproval/pages/detail.vue | 225 ++++++++++++++++++++++++++- src/packageApproval/pages/index.vue | 97 ++++++------ 5 files changed, 352 insertions(+), 58 deletions(-) diff --git a/src/api/approval/instance/index.ts b/src/api/approval/instance/index.ts index f34ddc9..21a41fd 100644 --- a/src/api/approval/instance/index.ts +++ b/src/api/approval/instance/index.ts @@ -4,7 +4,8 @@ import type { ApprovalCompletionForm, ApprovalInstance, ApprovalItem, - ApprovalMineParam + ApprovalMineParam, + ApprovalTaskListParam } from '../model'; import { THINK_API_URL } from '@/config/setting'; @@ -61,3 +62,31 @@ export async function pageMine(params: ApprovalMineParam) { } return Promise.reject(new Error(res.data.message)); } + +/** + * 我的待办 + */ +export async function pageTodo(params: ApprovalTaskListParam) { + const res = await request.get>>( + THINK_API_URL + '/approval/todo/page', + { params } + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 我的已办 + */ +export async function pageDone(params: ApprovalTaskListParam) { + const res = await request.get>>( + THINK_API_URL + '/approval/done/page', + { params } + ); + 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/model/index.ts b/src/api/approval/model/index.ts index 1a0a548..bd2d258 100644 --- a/src/api/approval/model/index.ts +++ b/src/api/approval/model/index.ts @@ -136,6 +136,21 @@ export interface ApprovalMineParam extends PageParam { docType?: string; } +/** + * 待办/已办查询参数 + */ +export interface ApprovalTaskListParam extends PageParam { + status?: string; + docType?: string; +} + +/** + * 任务动作参数(通过/驳回) + */ +export interface ApprovalTaskActionParam { + opinion?: string; +} + /** * 组织 */ diff --git a/src/api/approval/task/index.ts b/src/api/approval/task/index.ts index 523577c..a6c9ab8 100644 --- a/src/api/approval/task/index.ts +++ b/src/api/approval/task/index.ts @@ -1,5 +1,6 @@ import request from '@/utils/request'; import type { ApiResult } from '@/api'; +import type { ApprovalInstance } from '../model'; import { THINK_API_URL } from '@/config/setting'; /** @@ -14,3 +15,44 @@ export async function getTodoCount() { } return Promise.reject(new Error(res.data.message)); } + +/** + * 通过(意见可选) + */ +export async function approveTask(id: number, opinion?: string) { + const res = await request.post>( + THINK_API_URL + '/approval/task/' + id + '/approve', + { opinion } + ); + if (res.data.code === 0 && res.data.data) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 驳回(意见必填) + */ +export async function rejectTask(id: number, opinion: string) { + const res = await request.post>( + THINK_API_URL + '/approval/task/' + id + '/reject', + { opinion } + ); + if (res.data.code === 0 && res.data.data) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 撤回 + */ +export async function withdrawInstance(id: number) { + const res = await request.post>( + THINK_API_URL + '/approval/instance/' + id + '/withdraw' + ); + if (res.data.code === 0 && res.data.data) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/packageApproval/pages/detail.vue b/src/packageApproval/pages/detail.vue index 47c52ed..eb591a8 100644 --- a/src/packageApproval/pages/detail.vue +++ b/src/packageApproval/pages/detail.vue @@ -109,13 +109,35 @@ 暂无记录 - + + + + + + + + {{ actionDialog === 'approve' ? '审批意见' : '驳回意见' }} +