钉钉审批功能完善、混炼示方新增是否附加料

This commit is contained in:
geht
2026-06-10 15:41:02 +08:00
parent de48bd2324
commit 39a9bd83f1
37 changed files with 2461 additions and 166 deletions

View File

@@ -510,6 +510,8 @@ import {
DEFAULT_MIXING_STEP_ROW_COUNT,
DEFAULT_MIXING_DOWN_STEP_ROW_COUNT,
buildDefaultMixingTcuRows,
isMixingTcuAttachEnabled,
MIXING_TCU_ATTACH_NO,
applyMixingMaterialFromSelection,
fillMixingMaterialAccumWeight,
calcMixingMaterialUnitWeightTotal,
@@ -534,6 +536,8 @@ import {
MIXING_STEP_MIN_COLUMN_WIDTH,
} from '../MesXslMixingSpec.data';
import { saveOrUpdate, queryById } from '../MesXslMixingSpec.api';
import { resolveFormulaSpecUserDisplayName } from '/@/views/xslmes/mesXslFormulaSpec/MesXslFormulaSpec.data';
import { MIXING_SPEC_BIZ_TABLE, loadRecordWithTrace } from '/@/views/xslmes/approval/integration/traceRecordHelper';
import MesXslMixingMaterialColumnSetting from './MesXslMixingMaterialColumnSetting.vue';
import MesXslMixingTableRowHeightSetting from './MesXslMixingTableRowHeightSetting.vue';
import MesXslMixingStepSelectCell from './MesXslMixingStepSelectCell.vue';
@@ -949,15 +953,23 @@ function formatSignDate(value?: string) {
}
function refreshSignDisplay(row: Recordable = {}) {
signDisplay.draftBy = row.draftBy || row.createBy_dictText || row.createBy || '';
const userInfo = userStore.getUserInfo || {};
//update-begin---author:GHT ---date:2026-06-10 for【混炼示方】页脚起草人/变更人展示姓名-----------
signDisplay.draftBy = resolveFormulaSpecUserDisplayName(
row.draftBy || row.createBy,
row.draftBy_dictText || row.createBy_dictText,
userInfo,
);
signDisplay.changeBy = resolveFormulaSpecUserDisplayName(row.updateBy, row.updateBy_dictText, userInfo);
//update-end---author:GHT ---date:2026-06-10 for【混炼示方】页脚起草人/变更人展示姓名-----------
signDisplay.draftTime = formatSignDateTime(row.draftTime || row.createTime);
signDisplay.proofreadBy = row.proofreadBy || row.proofreadBy_dictText || '';
signDisplay.proofreadTime = formatSignDateTime(row.proofreadTime);
signDisplay.auditBy = row.auditBy || row.auditBy_dictText || '';
signDisplay.auditTime = formatSignDateTime(row.auditTime);
signDisplay.approveBy = row.approveBy || row.approveBy_dictText || '';
signDisplay.approveTime = formatSignDateTime(row.approveTime);
signDisplay.changeBy = row.updateBy_dictText || row.updateBy || '';
// 校对/审核/批准:优先展示痕迹表注入字段
signDisplay.proofreadBy = row.traceProofreadBy || '';
signDisplay.proofreadTime = formatSignDateTime(row.traceProofreadTime);
signDisplay.auditBy = row.traceAuditBy || '';
signDisplay.auditTime = formatSignDateTime(row.traceAuditTime);
signDisplay.approveBy = row.traceApproveBy || '';
signDisplay.approveTime = formatSignDateTime(row.traceApproveTime);
signDisplay.changeDate = formatSignDate(row.changeDate || row.updateTime);
}
//update-end---author:cursor ---date:20260522 for【XSLMES-20260522-A17】页脚签章区只读展示-----------
@@ -1057,8 +1069,7 @@ async function onSpecPickerEdit(payload: Recordable | null) {
return;
}
try {
const raw = await queryById({ id: payload.mixingSpecId });
const row = (raw as Recordable)?.specName != null ? raw : (raw as Recordable)?.result;
const row = await loadRecordWithTrace(payload.mixingSpecId, MIXING_SPEC_BIZ_TABLE, queryById);
if (!row?.id) {
createMessage.warning('未找到混炼示方数据');
return;
@@ -1159,17 +1170,25 @@ function ensureTcuDefaultRows(rows: Recordable[] = []) {
}
function handleTcuValueChange(event) {
//update-begin---author:cursor ---date:20260522 for【XSLMES-20260522-A17】下密炼机禁用药品称量位置-----------
const row = event?.row;
const key = event?.column?.key;
if (!row || key !== 'drugWeighPos') {
if (!row || !key) {
return;
}
if (row.sectionType === 'down_mixer') {
row.drugWeighPos = undefined;
createMessage.warning('下密炼机不允许选择药品称量位置');
//update-begin---author:cursor ---date:20260522 for【XSLMES-20260522-A17】下密炼机禁用药品称量位置-----------
if (key === 'drugWeighPos') {
if (row.sectionType === 'down_mixer') {
row.drugWeighPos = undefined;
createMessage.warning('下密炼机不允许选择药品称量位置');
}
return;
}
//update-end---author:cursor ---date:20260522 for【XSLMES-20260522-A17】下密炼机禁用药品称量位置-----------
//update-begin---author:GHT ---date:2026-06-10 for【混炼示方】TCU是否附加为否时清空重量-----------
if (key === 'isAttach' && !isMixingTcuAttachEnabled(row.isAttach)) {
row.attachWeight = undefined;
}
//update-end---author:GHT ---date:2026-06-10 for【混炼示方】TCU是否附加为否时清空重量-----------
}
function resetSheetForm() {
@@ -1231,8 +1250,7 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
await setProps({ disabled: !showFooter.value });
setModalProps({ showOkBtn: showFooter.value, showCancelBtn: showFooter.value, confirmLoading: false });
if (isUpdate.value && data?.record?.id) {
const raw = await queryById({ id: data.record.id });
const row = raw?.result || raw;
const row = await loadRecordWithTrace(data.record.id, MIXING_SPEC_BIZ_TABLE, queryById, data.record);
await applyMixingSpecPageData(row, 'edit');
} else {
const userInfo = userStore.getUserInfo || {};
@@ -1271,7 +1289,9 @@ async function handleSubmit() {
downStepList: cleanRows(downStepList),
tcuList: tcuList.map((row) => ({
...row,
isAttach: row.isAttach ?? MIXING_TCU_ATTACH_NO,
drugWeighPos: row.sectionType === 'down_mixer' ? undefined : row.drugWeighPos,
attachWeight: isMixingTcuAttachEnabled(row.isAttach) ? row.attachWeight : undefined,
})),
};
setModalProps({ confirmLoading: true });