diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue index d4d7a3c5..50235a43 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/matcode/MatCodeForm.vue @@ -20,7 +20,7 @@ - + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue index 35bc408f..ff4a26bb 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/material/MaterialForm.vue @@ -175,7 +175,7 @@ const formRef = ref() // 表单 Ref const supplierList = ref([]) // const supplierSelectList = ref([]) const supplierSelectLoading = ref(false); -const isLoading = ref(false) // 是否正在加载数据,防止加载时触发watch +const isInitialized = ref(false) // 是否已初始化完成,防止加载时触发watch const originalMatCate = ref() // 记录打开时的物料大类,用于判断是否用户主动修改 const remoteSupplierSearch = (query: string) => { @@ -199,13 +199,15 @@ const open = async (type: string, id?: number) => { resetForm() // 修改时,设置数据 formLoading.value = true - isLoading.value = true + isInitialized.value = false try { if (id) { const data = await MaterialApi.getMaterial(id) formData.value = data // 记录原始物料大类 originalMatCate.value = data.matCate + } else { + originalMatCate.value = undefined } let params = { pageNo: 1, @@ -218,7 +220,7 @@ const open = async (type: string, id?: number) => { } finally { formLoading.value = false nextTick(() => { - isLoading.value = false + isInitialized.value = true }) } @@ -290,8 +292,8 @@ const handleSelectedSupplier = (newValue: any) => { /** 监听物料类型变化,查询matcode并更新code */ watch(() => formData.value.matCate, async (newVal) => { - // 如果正在加载数据,不处理 - if (isLoading.value) { + // 如果未初始化完成,不处理 + if (!isInitialized.value) { return } // 如果新值为空,清空编码 @@ -300,8 +302,8 @@ watch(() => formData.value.matCate, async (newVal) => { originalMatCate.value = undefined return } - // 如果是编辑模式,且值没有变化(初始加载),不更新编码 - if (formType.value === 'update' && newVal === originalMatCate.value) { + // 如果值没有变化(用户选择的是同一个值),不更新编码 + if (newVal === originalMatCate.value) { return } try { @@ -311,6 +313,8 @@ watch(() => formData.value.matCate, async (newVal) => { } else { formData.value.code = null } + // 更新原始值 + originalMatCate.value = newVal } catch (error) { console.error('查询matcode失败:', error) formData.value.code = null