|
|
@@ -369,7 +369,11 @@ function syncDomainCodeFromFactory() {
|
|
|
watch(
|
|
|
() => form.companyRefId,
|
|
|
() => {
|
|
|
- if (!formFactoryOptions.value.some((item) => item.id === form.factoryRefId)) {
|
|
|
+ // 仅当所选公司在雪花组织下拉中确有可选工厂、且当前工厂不在其中时才清空(用户切换公司场景);
|
|
|
+ // 编辑既有 legacy 组织域物料(如 companyRefId=1000)时下拉无匹配子工厂,此时保留已载入的 factoryRefId,
|
|
|
+ // 避免静默清空导致保存被工厂必填校验误拦截。
|
|
|
+ const opts = formFactoryOptions.value;
|
|
|
+ if (opts.length > 0 && !opts.some((item) => item.id === form.factoryRefId)) {
|
|
|
form.factoryRefId = undefined;
|
|
|
}
|
|
|
}
|
|
|
@@ -538,7 +542,11 @@ function openEdit(row: S0ItemMasterRow) {
|
|
|
}
|
|
|
|
|
|
async function submitForm() {
|
|
|
- await formRef.value?.validate();
|
|
|
+ if (!formRef.value) return;
|
|
|
+ // 校验失败时 Element Plus 就地展示既有内联提示;此处捕获 reject 并早返回,
|
|
|
+ // 避免整段 submit 静默中断(既不成功提示、也不进入 catch 错误提示)。
|
|
|
+ const valid = await formRef.value.validate().catch(() => false);
|
|
|
+ if (!valid) return;
|
|
|
saving.value = true;
|
|
|
try {
|
|
|
const payload: S0ItemMasterUpsert = { ...form };
|