const fs = require('fs'); const path = 'd:/project/vue_project/zhongying/wt/src/views/bpm/handleTask/components/productionWarehousing/storage.vue'; let s = fs.readFileSync(path, 'utf8'); const old = ` // 1. 在产品信息表格按批次号匹配 const productIndex = this.productList.findIndex( (item) => item.batchNo === code ); if (productIndex > -1) { this.$set(this.productList[productIndex], 'confirm_status', 1); this.$message.success(\`产品信息匹配成功:批次号 \${code}\`); return; } // 2. 在包装明细按 categoryCode-batchNo-engrave 规则匹配 const parts = code.split('-'); if (parts.length >= 3) { const categoryCode = parts[0]; const engrave = parts[parts.length - 1]; const batchNo = parts.slice(1, parts.length - 1).join('-'); console.log('匹配条件:', { categoryCode, batchNo, engrave }); const packingIndex = this.packingList.findIndex( (item) => item.categoryCode === categoryCode && item.batchNo === batchNo && (((item.extInfo && item.extInfo.engrave === engrave)) || item.engrave === engrave) ); if (packingIndex > -1) { this.$set(this.packingList[packingIndex], 'confirm_status', 1); this.$message.success(\`包装明细匹配成功:\${code}\`); return; } } this.$message.warning(\`未匹配到对应数据:\${code}\`);`; const _new = ` // 1. 在产品信息表格按批次号匹配 const productItem = this.productList.find( (item) => item.batchNo === code ); if (productItem) { // 直接赋值,避免触发表格的 deep watcher 重新加载 productItem.confirm_status = 1; this.$message.success(\`产品信息匹配成功:批次号 \${code}\`); return; } // 2. 在包装明细按 categoryCode-batchNo-engrave 规则匹配 const parts = code.split('-'); if (parts.length >= 3) { const categoryCode = parts[0]; const engrave = parts[parts.length - 1]; const batchNo = parts.slice(1, parts.length - 1).join('-'); console.log('匹配条件:', { categoryCode, batchNo, engrave }); const packingItem = this.packingList.find( (item) => item.categoryCode === categoryCode && item.batchNo === batchNo && (((item.extInfo && item.extInfo.engrave === engrave)) || item.engrave === engrave) ); if (packingItem) { // 直接赋值,避免触发 packingList 的 deep watcher 重新加载 packingItem.confirm_status = 1; this.$message.success(\`包装明细匹配成功:\${code}\`); return; } } this.$message.warning(\`未匹配到对应数据:\${code}\`);`; if (!s.includes(old)) throw new Error('anchor not found'); s = s.replace(old, _new); fs.writeFileSync(path, s, 'utf8'); console.log('OK');