diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/MesXslMixingSpec.data.ts b/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/MesXslMixingSpec.data.ts index 734c5bb..7b7ad45 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/MesXslMixingSpec.data.ts +++ b/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/MesXslMixingSpec.data.ts @@ -1115,3 +1115,73 @@ export function applyMixingMaterialFromSelection(row: Recordable, material: Reco //update-end---author:cursor ---date:20260525 for:【XSLMES-20260525-A53】种类仅读配置表,移除小类名兜底----------- } //update-end---author:cursor ---date:20260525 for:【XSLMES-20260525-A50】混炼示方密炼物料选料弹窗与种类解析----------- + +//update-begin---author:cursor ---date:20260526 for:【XSLMES-20260526-A58】参照历史混合步骤选择弹窗----------- +/** 混合步骤可复制的业务字段 */ +export const MIXING_STEP_COPY_FIELD_KEYS = [ + 'sortNo', + 'actionName', + 'actionSec', + 'protectSec', + 'tempC', + 'powerKw', + 'energyKwh', + 'comboMode', + 'speedRpm', + 'pressureMpa', + 'boltPercent', +] as const; + +/** 判断混合步骤行是否含有效业务数据 */ +export function isMixingStepRowFilled(row: Recordable = {}): boolean { + return MIXING_STEP_COPY_FIELD_KEYS.some((key) => { + const value = row[key]; + return value != null && value !== ''; + }); +} + +/** 从历史混炼示方混合步骤克隆为新行(生成新 id,剔除主表/审计字段) */ +export function cloneMixingHistoryStepRows(sourceRows: Recordable[] = []): Recordable[] { + return (sourceRows || []) + .filter((row) => isMixingStepRowFilled(row)) + .map((row, index) => { + const next: Recordable = { id: buildUUID() }; + MIXING_STEP_COPY_FIELD_KEYS.forEach((key) => { + const value = row[key]; + if (value != null && value !== '') { + next[key] = value; + } + }); + if (next.sortNo == null) { + next.sortNo = index + 1; + } + return next; + }); +} + +/** 解析混炼示方配方状态(参照旧系统展示) */ +export function resolveMixingSpecFormulaStatus(record: Recordable = {}): string { + if (Number(record.delFlag) === 1) { + return '作废'; + } + if (record.approveTime) { + return '审批通过'; + } + return '编制中'; +} + +/** 参照历史混合步骤:混炼示方选择列表列 */ +export const mixingSpecHistorySelectColumns: BasicColumn[] = [ + { title: '示方编号', align: 'center', dataIndex: 'specName', width: 160 }, + { title: '机台', align: 'center', dataIndex: 'machineName', width: 100 }, + { title: '发行编号', align: 'center', dataIndex: 'issueNumber', width: 150 }, + { title: '发行日期', align: 'center', dataIndex: 'makeDate', width: 120 }, + { + title: '配方状态', + align: 'center', + dataIndex: 'formulaStatus', + width: 100, + customRender: ({ record }) => resolveMixingSpecFormulaStatus(record), + }, +]; +//update-end---author:cursor ---date:20260526 for:【XSLMES-20260526-A58】参照历史混合步骤选择弹窗----------- diff --git a/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/components/MesXslMixingSpecModal.vue b/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/components/MesXslMixingSpecModal.vue index 9bec8b2..31ca379 100644 --- a/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/components/MesXslMixingSpecModal.vue +++ b/jeecgboot-vue3/src/views/xslmes/mesXslMixingSpec/components/MesXslMixingSpecModal.vue @@ -284,6 +284,9 @@ 混合步骤
+ + 参照历史混合步骤 + 新增行
@@ -417,6 +420,7 @@ + + + + +