fix(form): 修复表单初始化和物料分类变更处理逻辑

This commit is contained in:
zxy 2026-03-20 16:01:04 +08:00
parent 092331c5c6
commit 70557ee3df
2 changed files with 12 additions and 8 deletions

View File

@ -20,7 +20,7 @@
</el-form-item>
<el-form-item label="物料分类编码" prop="matTypeCode" >
<el-input v-model="formData.matTypeCode" placeholder="请输入物料分类编码" show-word-limit :disabled="formType === 'update'"/>
<el-input v-model="formData.matTypeCode" placeholder="请输入物料分类编码" disabled show-word-limit />
</el-form-item>
<el-form-item label="最大流水号" prop="curMaxSeq" >
<el-input v-model="formData.curMaxSeq" placeholder="请输入当前最大流水号" :disabled="formType === 'update'" show-word-limit/>

View File

@ -175,7 +175,7 @@ const formRef = ref() // 表单 Ref
const supplierList = ref<any[]>([]) //
const supplierSelectList = ref<any[]>([])
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