diff --git a/src/api/approval/instance/model/index.ts b/src/api/approval/instance/model/index.ts index 5463d00..e9610ae 100644 --- a/src/api/approval/instance/model/index.ts +++ b/src/api/approval/instance/model/index.ts @@ -9,12 +9,12 @@ export interface ApprovalQueryParam extends PageParam { // 单号 bizNo?: string; // 关键词:单号、名称或标题、实施单位 - keyword?: string; + keywords?: string; // 报送部门id reportOrgId?: number; // 受理部门id acceptOrgId?: number; - // 发起人id + // 报送人id reporterId?: number; // 单据状态 status?: string; @@ -93,6 +93,18 @@ export interface ApprovalConfirm { handleTime?: string; } +/** + * 实例上的待办任务(PC 按任务改派) + */ +export interface ApprovalPendingTask { + id?: number; + nodeKey?: string; + nodeName?: string; + nodeType?: string; + assigneeId?: number; + assigneeName?: string; +} + /** * 我的待处理任务 */ @@ -144,6 +156,7 @@ export interface ApprovalInstance { records?: ApprovalRecord[]; confirms?: ApprovalConfirm[]; myTask?: ApprovalMyTask | null; + pendingTasks?: ApprovalPendingTask[]; permissions?: Record; } @@ -191,6 +204,8 @@ export interface ApprovalTodoParam extends PageParam { status?: string; // 单据类型 docType?: string; + // 查询范围:mine(默认本人待办)/all(全租户待办,需 assign 权限) + scope?: 'mine' | 'all'; // 关键词:单号、名称或标题、实施单位 keywords?: string; } diff --git a/src/views/approval/instance/components/detail.vue b/src/views/approval/instance/components/detail.vue index d8a3da3..4fa3feb 100644 --- a/src/views/approval/instance/components/detail.vue +++ b/src/views/approval/instance/components/detail.vue @@ -29,7 +29,7 @@ {{ data.currentNodeName || '-' }} - + {{ data.reporterName || '-' }} diff --git a/src/views/approval/instance/components/search.vue b/src/views/approval/instance/components/search.vue index 17b4fd2..c0053a5 100644 --- a/src/views/approval/instance/components/search.vue +++ b/src/views/approval/instance/components/search.vue @@ -131,7 +131,7 @@ prop: | 'docType' | 'bizNo' - | 'keyword' + | 'keywords' | 'reportOrgId' | 'acceptOrgId' | 'reporterId' @@ -140,10 +140,10 @@ }[] = [ { prop: 'docType', label: '单据类型' }, { prop: 'bizNo', label: '单号' }, - { prop: 'keyword', label: '标题或名称' }, + { prop: 'keywords', label: '标题或名称' }, { prop: 'reportOrgId', label: '报送部门' }, { prop: 'acceptOrgId', label: '受理部门' }, - { prop: 'reporterId', label: '发起人' }, + { prop: 'reporterId', label: '报送人' }, { prop: 'status', label: '状态' } ]; @@ -167,7 +167,7 @@ const { form, resetFields } = useFormData({ docType: undefined, bizNo: '', - keyword: '', + keywords: '', reportOrgId: undefined, acceptOrgId: undefined, reporterId: undefined, @@ -182,9 +182,9 @@ // 组织下拉选项 const organizationOptions = ref<{ label: string; value: number }[]>([]); - // 发起人下拉选项 + // 报送人下拉选项 const userOptions = ref<{ label: string; value: number }[]>([]); - // 发起人请求状态 + // 报送人请求状态 const userLoading = ref(false); // 组织远程过滤 @@ -192,7 +192,7 @@ return (option?.label ?? '').toLowerCase().includes(input.toLowerCase()); }; - // 远程搜索发起人 + // 远程搜索报送人 const searchUsers = (keywords?: string) => { userLoading.value = true; searchApprovalUsers({ keywords }) diff --git a/src/views/approval/todo/components/detail-drawer.vue b/src/views/approval/todo/components/detail-drawer.vue index bfdeeb1..18f740f 100644 --- a/src/views/approval/todo/components/detail-drawer.vue +++ b/src/views/approval/todo/components/detail-drawer.vue @@ -76,7 +76,7 @@ {{ detail.currentNodeName || '-' }} - + {{ detail.reporterName }} @@ -169,6 +169,14 @@ {{ detail.currentNodeName || '-' }} + + + - + @@ -68,6 +75,7 @@ ColumnItem } from 'ele-admin-pro/es/ele-pro-table/types'; import useSearch from '@/utils/use-search'; + import { hasPermission } from '@/utils/permission'; import type { ApprovalItem, ApprovalTodoParam @@ -82,6 +90,9 @@ const showDetail = ref(false); // 当前单据id const currentId = ref(null); + // 是否查看全租户待办(仅 assign 权限) + const allScope = ref(false); + const canAssign = hasPermission('approval:instance:assign'); // 搜索条件 const { where, resetFields } = useSearch({ @@ -122,7 +133,7 @@ ellipsis: true }, { - title: '发起人', + title: '报送人', dataIndex: 'reporterName', key: 'reporterName', width: 120, @@ -171,6 +182,7 @@ return pageApprovalTodo({ status: where.status, keywords: where.keywords?.trim() || undefined, + scope: allScope.value ? 'all' : undefined, page, limit }); @@ -184,6 +196,7 @@ // 重置搜索 const resetSearch = () => { resetFields(); + allScope.value = false; reload(); };