混炼示方优化
This commit is contained in:
@@ -536,6 +536,7 @@ import {
|
||||
MIXING_STEP_MIN_COLUMN_WIDTH,
|
||||
} from '../MesXslMixingSpec.data';
|
||||
import { saveOrUpdate, queryById } from '../MesXslMixingSpec.api';
|
||||
import { queryHistoryById } from '../MesXslMixingSpecHistory.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';
|
||||
@@ -556,6 +557,8 @@ const userStore = useUserStore();
|
||||
|
||||
const isUpdate = ref(false);
|
||||
const showFooter = ref(true);
|
||||
const isHistoryView = ref(false);
|
||||
const historyVersion = ref('');
|
||||
const mixerPsCompilePickerId = ref('');
|
||||
//update-begin---author:cursor ---date:20260522 for:【XSLMES-20260522-A34】混合步骤动作/组合下拉选项-----------
|
||||
const mixerActionOptions = ref<{ title: string; value: string }[]>([]);
|
||||
@@ -1245,11 +1248,21 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
|
||||
downStepData.value = [];
|
||||
tcuData.value = ensureTcuDefaultRows([]);
|
||||
await loadMixerStepOptions('');
|
||||
isHistoryView.value = !!data?.isHistoryView;
|
||||
historyVersion.value = data?.historyVersion || '';
|
||||
isUpdate.value = !!data?.isUpdate;
|
||||
showFooter.value = !!data?.showFooter;
|
||||
showFooter.value = !!data?.showFooter && !isHistoryView.value;
|
||||
await setProps({ disabled: !showFooter.value });
|
||||
setModalProps({ showOkBtn: showFooter.value, showCancelBtn: showFooter.value, confirmLoading: false });
|
||||
if (isUpdate.value && data?.record?.id) {
|
||||
if (isHistoryView.value && data?.historyId) {
|
||||
const row = await queryHistoryById({ id: data.historyId });
|
||||
if (!row?.id) {
|
||||
createMessage.warning('未找到历史记录数据');
|
||||
return;
|
||||
}
|
||||
historyVersion.value = historyVersion.value || data?.historyVersion || '';
|
||||
await applyMixingSpecPageData(row, 'edit');
|
||||
} else if (isUpdate.value && data?.record?.id) {
|
||||
const row = await loadRecordWithTrace(data.record.id, MIXING_SPEC_BIZ_TABLE, queryById, data.record);
|
||||
await applyMixingSpecPageData(row, 'edit');
|
||||
} else {
|
||||
@@ -1271,11 +1284,46 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data
|
||||
}
|
||||
});
|
||||
|
||||
const title = computed(() => (!showFooter.value && unref(isUpdate) ? '混炼示方详情' : !unref(isUpdate) ? '新增混炼示方' : '编辑混炼示方'));
|
||||
const title = computed(() => {
|
||||
if (unref(isHistoryView)) {
|
||||
const version = unref(historyVersion);
|
||||
return version ? `混炼示方历史详情(${version})` : '混炼示方历史详情';
|
||||
}
|
||||
return !showFooter.value && unref(isUpdate) ? '混炼示方详情' : !unref(isUpdate) ? '新增混炼示方' : '编辑混炼示方';
|
||||
});
|
||||
|
||||
function resolveValidateErrorMessage(error: unknown) {
|
||||
const err = error as { errorFields?: { name?: string[]; errors?: string[] }[] };
|
||||
const messages = (err?.errorFields || [])
|
||||
.flatMap((item) => item?.errors || [])
|
||||
.filter((msg) => !!msg);
|
||||
if (messages.length) {
|
||||
return messages.join(';');
|
||||
}
|
||||
const fieldLabelMap: Recordable<string> = {
|
||||
specName: '规格',
|
||||
purpose: '用途',
|
||||
issueNumber: '发行编号',
|
||||
};
|
||||
const fields = (err?.errorFields || [])
|
||||
.map((item) => item?.name?.[0])
|
||||
.filter(Boolean)
|
||||
.map((name) => fieldLabelMap[name as string] || name);
|
||||
if (fields.length) {
|
||||
return `请完善必填项:${fields.join('、')}`;
|
||||
}
|
||||
return '请完善表单必填项';
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
await syncSheetToForm();
|
||||
const formValues = await validate();
|
||||
let formValues: Recordable;
|
||||
try {
|
||||
formValues = await validate();
|
||||
} catch (error) {
|
||||
createMessage.warning(resolveValidateErrorMessage(error));
|
||||
return;
|
||||
}
|
||||
const materialList = resolveMaterialTableRawRows();
|
||||
applyMaterialAccumWeight(materialList);
|
||||
const stepList = stepRef.value?.getTableData?.() || stepData.value;
|
||||
|
||||
Reference in New Issue
Block a user