diff --git a/klp-ui/src/views/wms/coil/merge.vue b/klp-ui/src/views/wms/coil/merge.vue index 65456b19..8030afab 100644 --- a/klp-ui/src/views/wms/coil/merge.vue +++ b/klp-ui/src/views/wms/coil/merge.vue @@ -148,7 +148,12 @@ - + @@ -331,40 +336,7 @@ export default { } }, watch: { - // 监听材料类型变化,自动设置物料类型 - 'targetCoil.materialType'(newVal, oldVal) { - console.log('🔥 merge.vue watch 触发! materialType 变化:', oldVal, '->', newVal); - - // 先清空物品选择 - this.$set(this.targetCoil, 'itemId', null); - - // 设置物料类型 - if (newVal === '成品') { - this.$set(this.targetCoil, 'itemType', 'product'); - console.log('✅ 设置 itemType = product'); - } else if (newVal === '原料' || newVal === '废品') { - this.$set(this.targetCoil, 'itemType', 'raw_material'); - console.log('✅ 设置 itemType = raw_material'); - } - - console.log('📊 当前 targetCoil:', { - materialType: this.targetCoil.materialType, - itemType: this.targetCoil.itemType, - itemId: this.targetCoil.itemId - }); - - console.log('📦 数据列表:', { - rawMaterialList: this.rawMaterialList.length, - productList: this.productList.length - }); - }, - // 监听物品类型变化,加载对应的列表 - 'targetCoil.itemType'(newVal, oldVal) { - if (newVal !== oldVal && newVal) { - this.targetCoil.itemId = null; // 清空物品ID - this.loadItemList(newVal); - } - } + // 不再需要watch,直接用@change事件处理 }, async created() { console.log('🚀 merge.vue created 钩子执行'); @@ -428,6 +400,29 @@ export default { } }, methods: { + // 处理材料类型变化 + handleMaterialTypeChange(value) { + console.log('🔥 merge.vue materialType变化:', value); + + // 清空物品选择 + this.$set(this.targetCoil, 'itemId', null); + + // 根据材料类型设置物品类型 + if (value === '成品') { + this.$set(this.targetCoil, 'itemType', 'product'); + console.log('✅ 设置 itemType = product'); + } else if (value === '原料' || value === '废品') { + this.$set(this.targetCoil, 'itemType', 'raw_material'); + console.log('✅ 设置 itemType = raw_material'); + } + + console.log('📊 targetCoil更新后:', { + materialType: this.targetCoil.materialType, + itemType: this.targetCoil.itemType, + itemId: this.targetCoil.itemId + }); + }, + // 加载第一个钢卷(从待操作进入时) async loadFirstCoil(coilId) { try { diff --git a/klp-ui/src/views/wms/coil/split.vue b/klp-ui/src/views/wms/coil/split.vue index bb5f87eb..6cb504b2 100644 --- a/klp-ui/src/views/wms/coil/split.vue +++ b/klp-ui/src/views/wms/coil/split.vue @@ -116,7 +116,12 @@ - + @@ -308,65 +313,30 @@ export default { this.readonly = true; } }, - watch: { - // 深度监听子卷列表中每个元素的 materialType 变化 - splitList: { - handler(newList, oldList) { - console.log('🔥 split.vue watch 触发! splitList 变化', { - newList: newList.map(i => ({materialType: i.materialType, itemType: i.itemType})), - oldList: oldList?.map(i => ({materialType: i.materialType, itemType: i.itemType})) - }); - - newList.forEach((item, index) => { - // 检查 materialType 是否变化 - const oldItem = oldList && oldList[index]; - const materialTypeChanged = !oldItem || oldItem.materialType !== item.materialType; - - // 检查 itemType 是否需要设置(materialType有值但itemType为空) - const needSetItemType = item.materialType && !item.itemType; - - console.log(`👀 子卷${index} 检查:`, { - materialTypeChanged, - needSetItemType, - 'oldItem?.materialType': oldItem?.materialType, - 'item.materialType': item.materialType, - 'item.itemType': item.itemType - }); - - if (materialTypeChanged) { - console.log(`🔥 split.vue 子卷${index} materialType 变化:`, oldItem?.materialType, '->', item.materialType); - } - - // 如果 materialType 变化了,或者 itemType 需要设置 - if ((materialTypeChanged || needSetItemType) && item.materialType) { - // 使用 Vue.set 确保响应式更新 - this.$set(item, 'itemId', null); - - // 设置物料类型 - if (item.materialType === '成品') { - this.$set(item, 'itemType', 'product'); - console.log(`✅ 子卷${index} 使用$set设置 itemType = product`); - } else if (item.materialType === '原料' || item.materialType === '废品') { - this.$set(item, 'itemType', 'raw_material'); - console.log(`✅ 子卷${index} 使用$set设置 itemType = raw_material`); - } - - console.log(`📊 子卷${index} 当前状态:`, { - materialType: item.materialType, - itemType: item.itemType, - itemId: item.itemId - }); - - // 验证数据是否正确 - console.log(`📦 原材料列表数量:`, this.rawMaterialList.length); - console.log(`📦 产品列表数量:`, this.productList.length); - } - }); - }, - deep: true - } - }, methods: { + // 处理材料类型变化 + handleMaterialTypeChange(item, index) { + console.log(`🔥 子卷${index+1} materialType变化:`, item.materialType); + + // 清空物品选择 + this.$set(item, 'itemId', null); + + // 根据材料类型设置物品类型 + if (item.materialType === '成品') { + this.$set(item, 'itemType', 'product'); + console.log(`✅ 子卷${index+1} 设置 itemType = product`); + } else if (item.materialType === '原料' || item.materialType === '废品') { + this.$set(item, 'itemType', 'raw_material'); + console.log(`✅ 子卷${index+1} 设置 itemType = raw_material`); + } + + console.log(`📊 子卷${index+1} 更新后:`, { + materialType: item.materialType, + itemType: item.itemType, + itemId: item.itemId + }); + }, + // 动态获取标签 getItemLabel(materialType) { if (materialType === '成品') { diff --git a/klp-ui/src/views/wms/coil/typing.vue b/klp-ui/src/views/wms/coil/typing.vue index 352222f8..a6460acd 100644 --- a/klp-ui/src/views/wms/coil/typing.vue +++ b/klp-ui/src/views/wms/coil/typing.vue @@ -330,40 +330,7 @@ export default { } }, watch: { - // 监听材料类型变化,自动设置物料类型 - 'updateForm.materialType'(newVal, oldVal) { - console.log('🔥 typing.vue watch 触发! materialType 变化:', oldVal, '->', newVal); - - // 先清空物品选择 - this.$set(this.updateForm, 'itemId', null); - - // 设置物料类型 - if (newVal === '成品') { - this.$set(this.updateForm, 'itemType', 'product'); - console.log('✅ 设置 itemType = product'); - } else if (newVal === '原料' || newVal === '废品') { - this.$set(this.updateForm, 'itemType', 'raw_material'); - console.log('✅ 设置 itemType = raw_material'); - } - - console.log('📊 当前 updateForm:', { - materialType: this.updateForm.materialType, - itemType: this.updateForm.itemType, - itemId: this.updateForm.itemId - }); - - console.log('📦 数据列表:', { - rawMaterialList: this.rawMaterialList.length, - productList: this.productList.length - }); - }, - // 监听物品类型变化,加载对应的列表 - 'updateForm.itemType'(newVal, oldVal) { - if (newVal !== oldVal && newVal) { - this.updateForm.itemId = null; - this.loadItemList(newVal); - } - } + // 不再需要watch,直接用@change事件处理 }, async created() { console.log('🚀 typing.vue created 钩子执行');