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