diff --git a/src/components/semri/process/BusinessProcessListModal.vue b/src/components/semri/process/BusinessProcessListModal.vue index 3ec7c2f..be3e4a5 100644 --- a/src/components/semri/process/BusinessProcessListModal.vue +++ b/src/components/semri/process/BusinessProcessListModal.vue @@ -31,6 +31,7 @@ businessId?: string; title?: string; columns?: BasicColumn[]; + onDeleteProcess?: (record: Recordable, reload: () => Promise) => Promise; } const title = ref('流程列表'); @@ -38,6 +39,7 @@ const currentBusinessId = ref(''); const defaultColumns = columns; const { createMessage } = useMessage(); + const onDeleteProcessRef = ref(); const [registerBpmModal, { openModal: bpmPicModal }] = useModal(); const [registerTable, { setColumns, setTableData, setLoading, clearSelectedRowKeys }] = useTable({ @@ -51,7 +53,7 @@ actionColumn: { title: '操作', dataIndex: 'action', - width: 120, + width: 180, fixed: 'right', slots: { customRender: 'action' }, }, @@ -85,6 +87,7 @@ async function open(params: OpenParams = {}) { currentBusinessId.value = params.businessId || ''; title.value = params.title || '流程列表'; + onDeleteProcessRef.value = params.onDeleteProcess; visible.value = true; await nextTick(); setColumns(params.columns?.length ? params.columns : defaultColumns); @@ -94,6 +97,7 @@ function handleCancel() { visible.value = false; currentBusinessId.value = ''; + onDeleteProcessRef.value = undefined; setColumns(defaultColumns); setTableData([]); clearSelectedRowKeys(); @@ -106,13 +110,34 @@ }); } + async function handleDeleteProcess(record) { + if (typeof onDeleteProcessRef.value === 'function') { + await onDeleteProcessRef.value(record, loadData); + } else { + createMessage.warning('未配置删除流程回调'); + } + } + function getTableAction(record) { - return [ + const actions: any[] = [ { label: '审批历史', onClick: handlePreviewPic.bind(null, record), }, ]; + + if (typeof onDeleteProcessRef.value === 'function') { + actions.push({ + label: '删除流程', + popConfirm: { + title: '确定删除该流程吗?', + confirm: handleDeleteProcess.bind(null, record), + placement: 'topLeft', + }, + }); + } + + return actions; } defineExpose({ diff --git a/src/views/bg/xispeak/BgXiSpeak.data.ts b/src/views/bg/xispeak/BgXiSpeak.data.ts index 56b38b2..adaae39 100644 --- a/src/views/bg/xispeak/BgXiSpeak.data.ts +++ b/src/views/bg/xispeak/BgXiSpeak.data.ts @@ -89,6 +89,22 @@ export const columns: BasicColumn[] = [ align: 'center', dataIndex: 'completionStatus_dictText', }, + { + title: '截止日期', + align: 'center', + dataIndex: 'deadline', + customRender: ({ text }) => { + if (!text) return ''; + if (text instanceof Date) { + const y = text.getFullYear(); + const m = String(text.getMonth() + 1).padStart(2, '0'); + const d = String(text.getDate()).padStart(2, '0'); + return `${y}-${m}-${d}`; + } + text = String(text); + return text.length > 10 ? text.substr(0, 10) : text; + }, + }, { title: '落实部门', align: 'center', @@ -251,7 +267,8 @@ export const superQuerySchema = { isCompletionRisk: { title: '是否存在完成风险(0不存在,1存在)', order: 14, view: 'number', type: 'number' }, delayRiskMitigation: { title: '拖期风险应对措施', order: 15, view: 'text', type: 'string' }, completionStatus: { title: '完成状态(督办中,1已完成)', order: 16, view: 'number', type: 'number' }, - implDept: { title: '落实部门id', order: 17, view: 'sel_depart', type: 'string' }, + deadline: { title: '截止日期', order: 17, view: 'date', type: 'string' }, + implDept: { title: '落实部门id', order: 18, view: 'sel_depart', type: 'string' }, treeDepth: { title: '层深(最顶层节点层深为0)', order: 18, view: 'number', type: 'number' }, sortOrder: { title: '同级数据排序号', order: 19, view: 'number', type: 'number' }, bpmStatus: { title: '流程引擎状态字段', order: 21, view: 'number', type: 'number' }, diff --git a/src/views/bg/xispeak/BgXiSpeakList.vue b/src/views/bg/xispeak/BgXiSpeakList.vue index 1676970..df792f9 100644 --- a/src/views/bg/xispeak/BgXiSpeakList.vue +++ b/src/views/bg/xispeak/BgXiSpeakList.vue @@ -1,6 +1,6 @@