From c9a7a9b8f6f5ccffb354c0297bb7b69297cce045 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 24 Jun 2026 23:22:13 -0700 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Vben=20?= =?UTF-8?q?=E4=B8=89=E7=AB=AF=E4=B8=9A=E5=8A=A1=E8=A1=8C=E4=B8=BA=E4=B8=8D?= =?UTF-8?q?=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 MES 多个选择弹窗跨页多选时 rowId 判断反向的问题 - 修复库存盘点条件值组件对 undefined/null 的处理不一致问题 - 修复 IoT 告警配置模板字段清空时未等待表单更新的问题 - 对齐 antd、antdv-next 的 BPM 流程详情状态枚举和打印组件命名 - 清理 ele BPM 表单面板中未使用的字段编辑死代码 - 补全 ele 用户选择弹窗左右分页大小切换和搜索同步逻辑 --- .../bpm/processInstance/detail/index.vue | 17 +- .../md/client/components/select-dialog.vue | 4 +- .../mes/md/item/components/select-dialog.vue | 4 +- .../md/vendor/components/select-dialog.vue | 4 +- .../mes/tm/tool/components/select-dialog.vue | 4 +- .../plan/components/condition-value-input.vue | 9 +- .../bpm/processInstance/detail/index.vue | 17 +- .../package/penal/form/ElementForm.vue | 194 ------------------ .../src/views/iot/alert/config/data.ts | 6 +- .../plan/components/condition-value-input.vue | 9 +- .../system/user/components/select-modal.vue | 53 ++++- 11 files changed, 93 insertions(+), 228 deletions(-) diff --git a/apps/web-antd/src/views/bpm/processInstance/detail/index.vue b/apps/web-antd/src/views/bpm/processInstance/detail/index.vue index f4d8288a7..aa6488f4c 100644 --- a/apps/web-antd/src/views/bpm/processInstance/detail/index.vue +++ b/apps/web-antd/src/views/bpm/processInstance/detail/index.vue @@ -9,7 +9,7 @@ import { BpmFieldPermissionType, BpmModelFormType, BpmModelType, - BpmProcessInstanceStatus, + BpmTaskStatusEnum, DICT_TYPE, } from '@vben/constants'; import { @@ -34,7 +34,7 @@ import { registerComponent } from '#/utils'; import ProcessInstanceBpmnViewer from './modules/bpm-viewer.vue'; import ProcessInstanceOperationButton from './modules/operation-button.vue'; -import ProcessssPrint from './modules/process-print.vue'; +import ProcessPrint from './modules/process-print.vue'; import ProcessInstanceSimpleViewer from './modules/simple-bpm-viewer.vue'; import BpmProcessInstanceTaskList from './modules/task-list.vue'; import ProcessInstanceTimeline from './modules/time-line.vue'; @@ -61,10 +61,13 @@ const auditIconsMap: { | typeof SvgBpmRejectIcon | typeof SvgBpmRunningIcon; } = { - [BpmProcessInstanceStatus.RUNNING]: SvgBpmRunningIcon, - [BpmProcessInstanceStatus.APPROVE]: SvgBpmApproveIcon, - [BpmProcessInstanceStatus.REJECT]: SvgBpmRejectIcon, - [BpmProcessInstanceStatus.CANCEL]: SvgBpmCancelIcon, + [BpmTaskStatusEnum.RUNNING]: SvgBpmRunningIcon, + [BpmTaskStatusEnum.APPROVE]: SvgBpmApproveIcon, + [BpmTaskStatusEnum.REJECT]: SvgBpmRejectIcon, + [BpmTaskStatusEnum.CANCEL]: SvgBpmCancelIcon, + [BpmTaskStatusEnum.APPROVING]: SvgBpmApproveIcon, + [BpmTaskStatusEnum.RETURN]: SvgBpmRejectIcon, + [BpmTaskStatusEnum.WAIT]: SvgBpmRunningIcon, }; const activityNodes = ref([]); // 审批节点信息 const userOptions = ref([]); // 用户列表 @@ -189,7 +192,7 @@ const refresh = () => { }; const [PrintModal, printModalApi] = useVbenModal({ - connectedComponent: ProcessssPrint, + connectedComponent: ProcessPrint, destroyOnClose: true, }); diff --git a/apps/web-antd/src/views/mes/md/client/components/select-dialog.vue b/apps/web-antd/src/views/mes/md/client/components/select-dialog.vue index 744cd540f..828d94d10 100644 --- a/apps/web-antd/src/views/mes/md/client/components/select-dialog.vue +++ b/apps/web-antd/src/views/mes/md/client/components/select-dialog.vue @@ -41,8 +41,8 @@ function getMultipleSelectedRows() { ] as MesMdClientApi.Client[]; records.forEach((row) => { const rowId = row.id; - if (!rowId) { - selectedMap.set(rowId as number, row); + if (rowId !== undefined && rowId !== null) { + selectedMap.set(rowId, row); } }); return [...selectedMap.values()]; diff --git a/apps/web-antd/src/views/mes/md/item/components/select-dialog.vue b/apps/web-antd/src/views/mes/md/item/components/select-dialog.vue index d66d610c5..6671ea46c 100644 --- a/apps/web-antd/src/views/mes/md/item/components/select-dialog.vue +++ b/apps/web-antd/src/views/mes/md/item/components/select-dialog.vue @@ -42,8 +42,8 @@ function getMultipleSelectedRows() { ] as MesMdItemApi.Item[]; records.forEach((row) => { const rowId = row.id; - if (!rowId) { - selectedMap.set(rowId as number, row); + if (rowId !== undefined && rowId !== null) { + selectedMap.set(rowId, row); } }); return [...selectedMap.values()]; diff --git a/apps/web-antd/src/views/mes/md/vendor/components/select-dialog.vue b/apps/web-antd/src/views/mes/md/vendor/components/select-dialog.vue index e4acd0b92..3ffa0eae1 100644 --- a/apps/web-antd/src/views/mes/md/vendor/components/select-dialog.vue +++ b/apps/web-antd/src/views/mes/md/vendor/components/select-dialog.vue @@ -41,8 +41,8 @@ function getMultipleSelectedRows() { ] as MesMdVendorApi.Vendor[]; records.forEach((row) => { const rowId = row.id; - if (!rowId) { - selectedMap.set(rowId as number, row); + if (rowId !== undefined && rowId !== null) { + selectedMap.set(rowId, row); } }); return [...selectedMap.values()]; diff --git a/apps/web-antd/src/views/mes/tm/tool/components/select-dialog.vue b/apps/web-antd/src/views/mes/tm/tool/components/select-dialog.vue index dcbccb59e..a283e1498 100644 --- a/apps/web-antd/src/views/mes/tm/tool/components/select-dialog.vue +++ b/apps/web-antd/src/views/mes/tm/tool/components/select-dialog.vue @@ -36,8 +36,8 @@ function getMultipleSelectedRows() { ] as MesTmToolApi.Tool[]; records.forEach((row) => { const rowId = row.id; - if (!rowId) { - selectedMap.set(rowId as number, row); + if (rowId !== undefined && rowId !== null) { + selectedMap.set(rowId, row); } }); return [...selectedMap.values()]; diff --git a/apps/web-antd/src/views/mes/wm/stocktaking/plan/components/condition-value-input.vue b/apps/web-antd/src/views/mes/wm/stocktaking/plan/components/condition-value-input.vue index 15a257097..c0efa3afd 100644 --- a/apps/web-antd/src/views/mes/wm/stocktaking/plan/components/condition-value-input.vue +++ b/apps/web-antd/src/views/mes/wm/stocktaking/plan/components/condition-value-input.vue @@ -77,7 +77,7 @@ function handleQualityStatusChange(value?: number) { emit('update:modelValue', undefined); emit('valueChange', { valueId: undefined, - valueCode: value === null ? '' : String(value), + valueCode: value === undefined || value === null ? '' : String(value), valueName: selected?.label || '', }); } @@ -109,14 +109,15 @@ async function loadCascadeData() { : undefined; return; } - if (!props.modelValue) { + const valueId = props.modelValue; + if (valueId === undefined || valueId === null) { return; } if (props.type === MesWmStockTakingParamTypeEnum.LOCATION) { - const location = await getWarehouseLocation(props.modelValue); + const location = await getWarehouseLocation(valueId); locationWarehouseId.value = location?.warehouseId; } else if (props.type === MesWmStockTakingParamTypeEnum.AREA) { - const area = await getWarehouseArea(props.modelValue); + const area = await getWarehouseArea(valueId); areaWarehouseId.value = area?.warehouseId; areaLocationId.value = area?.locationId; } diff --git a/apps/web-antdv-next/src/views/bpm/processInstance/detail/index.vue b/apps/web-antdv-next/src/views/bpm/processInstance/detail/index.vue index 9a11e8696..9df0dff13 100644 --- a/apps/web-antdv-next/src/views/bpm/processInstance/detail/index.vue +++ b/apps/web-antdv-next/src/views/bpm/processInstance/detail/index.vue @@ -9,7 +9,7 @@ import { BpmFieldPermissionType, BpmModelFormType, BpmModelType, - BpmProcessInstanceStatus, + BpmTaskStatusEnum, DICT_TYPE, } from '@vben/constants'; import { @@ -34,7 +34,7 @@ import { registerComponent } from '#/utils'; import ProcessInstanceBpmnViewer from './modules/bpm-viewer.vue'; import ProcessInstanceOperationButton from './modules/operation-button.vue'; -import ProcessssPrint from './modules/process-print.vue'; +import ProcessPrint from './modules/process-print.vue'; import ProcessInstanceSimpleViewer from './modules/simple-bpm-viewer.vue'; import BpmProcessInstanceTaskList from './modules/task-list.vue'; import ProcessInstanceTimeline from './modules/time-line.vue'; @@ -61,10 +61,13 @@ const auditIconsMap: { | typeof SvgBpmRejectIcon | typeof SvgBpmRunningIcon; } = { - [BpmProcessInstanceStatus.RUNNING]: SvgBpmRunningIcon, - [BpmProcessInstanceStatus.APPROVE]: SvgBpmApproveIcon, - [BpmProcessInstanceStatus.REJECT]: SvgBpmRejectIcon, - [BpmProcessInstanceStatus.CANCEL]: SvgBpmCancelIcon, + [BpmTaskStatusEnum.RUNNING]: SvgBpmRunningIcon, + [BpmTaskStatusEnum.APPROVE]: SvgBpmApproveIcon, + [BpmTaskStatusEnum.REJECT]: SvgBpmRejectIcon, + [BpmTaskStatusEnum.CANCEL]: SvgBpmCancelIcon, + [BpmTaskStatusEnum.APPROVING]: SvgBpmApproveIcon, + [BpmTaskStatusEnum.RETURN]: SvgBpmRejectIcon, + [BpmTaskStatusEnum.WAIT]: SvgBpmRunningIcon, }; const activityNodes = ref([]); // 审批节点信息 const userOptions = ref([]); // 用户列表 @@ -189,7 +192,7 @@ const refresh = () => { }; const [PrintModal, printModalApi] = useVbenModal({ - connectedComponent: ProcessssPrint, + connectedComponent: ProcessPrint, destroyOnClose: true, }); diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/form/ElementForm.vue b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/form/ElementForm.vue index cadafb638..11993bd26 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/form/ElementForm.vue +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/form/ElementForm.vue @@ -1,4 +1,3 @@ -