feat(mes): 设计项目列表新增「审核文件」按钮,按文件审核状态显隐「提交审批」
- 操作列二选一:pendingAuditCount>0 显示「审核文件」(跳详情页?tab=audit),=0 显示「提交审批」
- 详情页支持 route.query.tab=audit 定位到资料审核 Tab
- Project 类型新增 pendingAuditCount 字段
Co-Authored-By: Claude <noreply@anthropic.com>
| | |
| | | createTime?: number; |
| | | /** BPM 流程实例编号 */ |
| | | processInstanceId?: string; |
| | | /** 待审核文件数(auditStatus=0 的审核记录数) */ |
| | | pendingAuditCount?: number; |
| | | } |
| | | |
| | | export interface PageParams extends PageParam { |
| | |
| | | loading.value = true; |
| | | try { |
| | | project.value = await getPdProject(projectId.value); |
| | | if (isPendingUpload.value) { |
| | | if (route.query.tab === 'audit') { |
| | | // 从列表页「审核文件」按钮进入,直接定位到资料审核 Tab |
| | | activeTab.value = 'audit'; |
| | | } else if (isPendingUpload.value) { |
| | | activeTab.value = 'material'; |
| | | } else if (isPendingAudit.value) { |
| | | activeTab.value = 'audit'; |
| | |
| | | } |
| | | } |
| | | |
| | | /** 审核文件 - 跳转详情页资料审核 Tab */ |
| | | function handleAuditFile(row: MesPdProjectApi.Project) { |
| | | router.push({ |
| | | name: 'MesPdProjectDetail', |
| | | params: { id: row.id }, |
| | | query: { tab: 'audit' }, |
| | | }); |
| | | } |
| | | |
| | | /** 查看审批详情 */ |
| | | function handleProcessDetail(row: MesPdProjectApi.Project) { |
| | | if (!row.processInstanceId) { |
| | |
| | | onClick: () => handleDetail(row), |
| | | }, |
| | | { |
| | | label: '审核文件', |
| | | type: 'link', |
| | | auth: ['mes:pd-project:update'], |
| | | ifShow: |
| | | row.status === MesPdProjectStatusEnum.PENDING_AUDIT && |
| | | (row.pendingAuditCount ?? 0) > 0, |
| | | onClick: handleAuditFile.bind(null, row), |
| | | }, |
| | | { |
| | | label: '提交审批', |
| | | type: 'link', |
| | | auth: ['mes:pd-project:update'], |
| | | ifShow: row.status === MesPdProjectStatusEnum.PENDING_AUDIT, |
| | | ifShow: |
| | | row.status === MesPdProjectStatusEnum.PENDING_AUDIT && |
| | | (row.pendingAuditCount ?? 0) === 0, |
| | | onClick: handleSubmit.bind(null, row), |
| | | }, |
| | | { |