diff --git a/src/api/approval/directory/index.ts b/src/api/approval/directory/index.ts index d3a3266..d844dc7 100644 --- a/src/api/approval/directory/index.ts +++ b/src/api/approval/directory/index.ts @@ -15,3 +15,16 @@ export async function getOrganizations() { } return Promise.reject(new Error(res.data.message)); } + +/** + * 流程类型选项(flowCode → 流程名称),新增单据自动出现 + */ +export async function getFlowOptions() { + const res = await request.get>>( + THINK_API_URL + '/approval/directory/flows' + ); + if (res.data.code === 0 && res.data.data) { + return res.data.data; + } + return Promise.reject(new Error(res.data.message)); +} diff --git a/src/packageApproval/pages/index.vue b/src/packageApproval/pages/index.vue index c6706be..5317c4c 100644 --- a/src/packageApproval/pages/index.vue +++ b/src/packageApproval/pages/index.vue @@ -106,6 +106,7 @@ import { onShow } from '@dcloudio/uni-app'; import { pageDone, pageMine, pageTodo } from '@/api/approval/instance'; +import { getFlowOptions } from '@/api/approval/directory'; import type { ApprovalItem, ApprovalTaskListParam } from '@/api/approval/model'; import { hasPermission } from '@/utils/permission'; @@ -129,12 +130,29 @@ const createOptions: CreateOption[] = [ { flowCode: 'facility', label: '设施价格表', page: 'form-facility', query: '' } ]; -/** 流程筛选项:标签取流程名(ADR 0008),空值表示全部 */ -const flowOptions = [ +/** 流程筛选项:标签取流程名(ADR 0008),空值表示全部;名称以后端字典为准 */ +const flowOptions = ref>([ { value: '', label: '全部类型' }, ...createOptions.map(item => ({ value: item.flowCode, label: item.label })) -]; -const flowLabels = flowOptions.map(item => item.label); +]); +const flowLabels = computed(() => flowOptions.value.map(item => item.label)); + +/** 用后端流程字典覆盖筛选项名称(新增单据不必再改本页) */ +async function loadFlowOptions() { + try { + const flows = await getFlowOptions(); + const names = new Map(flows.map(flow => [flow.flowCode, flow.flowName])); + flowOptions.value = [ + { value: '', label: '全部类型' }, + ...createOptions.map(item => ({ + value: item.flowCode, + label: names.get(item.flowCode) || item.label + })) + ]; + } catch { + // 字典不可用时保留静态标签,筛选仍可用 + } +} const tabs: Array<{ key: TabKey; label: string }> = [ { key: 'todo', label: '待办' }, @@ -177,6 +195,7 @@ const finished = ref(false); let requestSeq = 0; onLoad(() => { + loadFlowOptions(); load(true); });