From b610d3d0f8e2f655a7d145415b50fb540d8d485b Mon Sep 17 00:00:00 2001
From: ye1023 <12588209+ye1023@user.noreply.gitee.com>
Date: Thu, 7 May 2026 10:04:16 +0800
Subject: [PATCH] =?UTF-8?q?yxk-20260507-=E5=8F=91=E8=B5=B7=E7=9D=A3?=
=?UTF-8?q?=E5=8A=9E=E6=97=B6=EF=BC=8C=E9=80=89=E6=8B=A9=E7=9D=A3=E5=8A=9E?=
=?UTF-8?q?=E9=83=A8=E9=97=A8=EF=BC=8C=E9=BB=98=E8=AE=A4=E6=98=AF=E8=B4=A3?=
=?UTF-8?q?=E4=BB=BB=E9=83=A8=E9=97=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../semri/process/FlowScheduleStartModal.vue | 45 +++++++++++++++++++
.../bg/bgpartymatter/BgPartymatterList.vue | 27 ++++++++++-
.../myHandleTask/modal/TaskHandleModal.vue | 2 +-
3 files changed, 72 insertions(+), 2 deletions(-)
diff --git a/src/components/semri/process/FlowScheduleStartModal.vue b/src/components/semri/process/FlowScheduleStartModal.vue
index cd24a72..55e3443 100644
--- a/src/components/semri/process/FlowScheduleStartModal.vue
+++ b/src/components/semri/process/FlowScheduleStartModal.vue
@@ -15,6 +15,18 @@
+
+
+
+
;
+ deptOptions?: DeptOption[];
+ }
+
+ interface DeptOption {
+ label: string;
+ value: string;
}
const emit = defineEmits(['confirm']);
@@ -72,11 +90,13 @@
const title = ref('发起流程');
const visible = ref(false);
const contextData = ref>({});
+ const deptOptions = ref([]);
const formData = reactive({
triggerMode: 'immediate',
intervalType: undefined as number | string | undefined,
startCount: undefined as number | undefined,
intervalStartTime: undefined as string | undefined,
+ deptIds: [] as string[],
});
function resetForm() {
@@ -84,12 +104,31 @@
formData.intervalType = undefined;
formData.startCount = undefined;
formData.intervalStartTime = undefined;
+ formData.deptIds = [];
+ deptOptions.value = [];
+ }
+
+ function normalizeDeptOptions(options: DeptOption[] = []) {
+ const optionMap = new Map();
+ options.forEach((item) => {
+ const value = String(item?.value || '').trim();
+ if (!value || optionMap.has(value)) {
+ return;
+ }
+ optionMap.set(value, {
+ value,
+ label: item?.label || value,
+ });
+ });
+ return Array.from(optionMap.values());
}
function open(data: ModalPayload = {}) {
resetForm();
title.value = data.title || '发起流程';
contextData.value = data.payload || {};
+ deptOptions.value = normalizeDeptOptions(data.deptOptions || []);
+ formData.deptIds = deptOptions.value.map((item) => item.value);
visible.value = true;
}
@@ -112,6 +151,10 @@
return;
}
}
+ if (deptOptions.value.length && !formData.deptIds.length) {
+ createMessage.warning('请选择责任部门');
+ return;
+ }
emit('confirm', {
payload: contextData.value,
@@ -120,6 +163,8 @@
intervalType: formData.triggerMode === 'recurring' ? Number(formData.intervalType) : undefined,
startCount: formData.triggerMode === 'recurring' ? Number(formData.startCount) : undefined,
intervalStartTime: formData.triggerMode === 'recurring' ? formData.intervalStartTime : undefined,
+ deptId: formData.deptIds.join(','),
+ deptIds: [...formData.deptIds],
},
});
handleCancel();
diff --git a/src/views/bg/bgpartymatter/BgPartymatterList.vue b/src/views/bg/bgpartymatter/BgPartymatterList.vue
index 32fea55..7face70 100644
--- a/src/views/bg/bgpartymatter/BgPartymatterList.vue
+++ b/src/views/bg/bgpartymatter/BgPartymatterList.vue
@@ -84,6 +84,11 @@
const businessProcessListModalRef = ref();
const queryParam = reactive({});
const processColumns = taskTaskColumns;
+
+ interface DeptOption {
+ label: string;
+ value: string;
+ }
//注册table数据
const { tableContext, onExportXls, onImportXls } = useListPage({
tableProps:{
@@ -236,9 +241,29 @@
flowScheduleModalRef.value?.open({
title: '发起流程',
payload: { record },
+ deptOptions: getResponsibleDeptOptions(record),
});
}
+ function splitDeptValue(value) {
+ if (Array.isArray(value)) {
+ return value.map((item) => String(item || '').trim()).filter(Boolean);
+ }
+ return String(value || '')
+ .split(/[,\uFF0C]/)
+ .map((item) => item.trim())
+ .filter(Boolean);
+ }
+
+ function getResponsibleDeptOptions(record): DeptOption[] {
+ const deptIds = splitDeptValue(record?.responDeptid);
+ const deptNames = splitDeptValue(record?.responDeptid_dictText || record?.responDeptname);
+ return deptIds.map((deptId, index) => ({
+ value: deptId,
+ label: deptNames[index] || deptId,
+ }));
+ }
+
function handleQueryProcess(record) {
businessProcessListModalRef.value?.open({
title: '流程列表',
@@ -272,7 +297,7 @@
title: record.title,
content: record.content,
urgencyLevel: record.urgencyLevel,
- deptId: record.responDeptid,
+ deptId: options.deptId || record.responDeptid,
deptLeaderId: record.responDeptid,
requireFinishDate: formatDate(record.deadline, 'YYYY-MM-DD'),
deadline: formatDate(record.deadline, 'YYYY-MM-DD HH:mm:ss'),
diff --git a/src/views/super/bpm/process/personalOffice/myHandleTask/modal/TaskHandleModal.vue b/src/views/super/bpm/process/personalOffice/myHandleTask/modal/TaskHandleModal.vue
index 53ef832..88a1b79 100644
--- a/src/views/super/bpm/process/personalOffice/myHandleTask/modal/TaskHandleModal.vue
+++ b/src/views/super/bpm/process/personalOffice/myHandleTask/modal/TaskHandleModal.vue
@@ -13,7 +13,7 @@
>
- 附加单据
+ 任务处理