diff --git a/src/main/webapp/app/orders/order/order-edit.component.ts b/src/main/webapp/app/orders/order/order-edit.component.ts index 76ec088..ade0639 100644 --- a/src/main/webapp/app/orders/order/order-edit.component.ts +++ b/src/main/webapp/app/orders/order/order-edit.component.ts @@ -417,6 +417,16 @@ export default defineComponent({ return [sums]; }; + const handleTabChange = ({ name }) => { + // 检查当前标签页是否有未保存的编辑状态 + const currentDtls = activeTab.value === 'setting' ? settingDtls.value : baseDtls.value; + if (currentDtls.some(r => hasEditStatus(r))) { + alertService.showWarn($t('entity.validation.saveOrCancelFirst')); + return false; // 阻止标签页切换 + } + return true; // 允许标签页切换 + }; + onMounted(() => { loadData(); }); @@ -439,6 +449,7 @@ export default defineComponent({ handlePrint, activeTab, hasEditStatus, + handleTabChange, addDtlEvent, editDtlEvent, saveDtlEvent, diff --git a/src/main/webapp/app/orders/order/order-edit.vue b/src/main/webapp/app/orders/order/order-edit.vue index 99ca998..9df6150 100644 --- a/src/main/webapp/app/orders/order/order-edit.vue +++ b/src/main/webapp/app/orders/order/order-edit.vue @@ -202,7 +202,7 @@ - + { + // 检查当前标签页是否有未保存的编辑状态 + const currentDtls = activeTab.value === 'setting' ? settingDtls.value : baseDtls.value; + if (currentDtls.some(r => hasEditStatus(r))) { + alertService.showWarn($t('entity.validation.saveOrCancelFirst')); + return false; // 阻止标签页切换 + } + return true; // 允许标签页切换 + }; + return { loading, isSaving, @@ -506,6 +516,7 @@ export default defineComponent({ styleGroupDicts, styleGroupPrefix, handleStyleGroupChange, + handleTabChange, footerMethod, }; }, diff --git a/src/main/webapp/app/orders/style/style-edit.vue b/src/main/webapp/app/orders/style/style-edit.vue index fd748d2..5c4d953 100644 --- a/src/main/webapp/app/orders/style/style-edit.vue +++ b/src/main/webapp/app/orders/style/style-edit.vue @@ -130,7 +130,7 @@ - +