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 钩子执行');