From e81a99313b886b52ac8f453f5bd51cbc7cfb9ee7 Mon Sep 17 00:00:00 2001 From: lion <120344285@qq.com> Date: Wed, 4 Nov 2026 10:21:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/stocks/component/addRuku.vue | 26 ++++++++++++++----------- src/views/stocks/component/addStock.vue | 20 ++++++++++++++++--- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/views/stocks/component/addRuku.vue b/src/views/stocks/component/addRuku.vue index 5401c2b..d0bbad4 100644 --- a/src/views/stocks/component/addRuku.vue +++ b/src/views/stocks/component/addRuku.vue @@ -450,26 +450,30 @@ }, // 保存数据 判断是否有相同的 物资 isHasEqual(arr, key, key1) { - if (arr.length === 0) { - return - } - for (let i = 0; i < arr.length; i++) { - if (arr.filter(item => item[key] == arr[i][key]).length > 1 && arr.filter(item => item[key1] == arr[i][key1]) - .length > 1) { - return true - } - } - return false + const keys = arr.map(item => this.form.rukuleixing === '归还入库' + ? String(item.inventorys_id) + : JSON.stringify([String(item[key]), String(item[key1])])) + return new Set(keys).size !== keys.length }, saveData() { this.form.id_stocks_items_stocks_id_relation = this.mingxiList console.log('form', this.form) + // 保存时再次校验,覆盖导入和绕过明细弹窗的情况。 + if (this.form.rukuleixing === '归还入库') { + const invalid = this.mingxiList.find(item => !item.inventorys_id || + !Number.isFinite(Number(item.rukushuliang)) || Number(item.rukushuliang) <= 0 || + (item.wuzileixing === '一物一码' && Number(item.rukushuliang) !== 1)) + if (invalid) { + this.$message.warning('归还明细必须选择库存;一物一码设备每条归还数量必须为1') + return + } + } // 是否有 重复的物资 const has = this.isHasEqual(this.form.id_stocks_items_stocks_id_relation, 'wuzibianma', 'rukupici') if (has) { Message({ type: 'warning', - message: '同一物资同一批次请不要重复录入' + message: this.form.rukuleixing === '归还入库' ? '同一库存设备请不要重复归还' : '同一物资同一批次请不要重复录入' }) return } diff --git a/src/views/stocks/component/addStock.vue b/src/views/stocks/component/addStock.vue index b00c731..e2d5b1b 100644 --- a/src/views/stocks/component/addStock.vue +++ b/src/views/stocks/component/addStock.vue @@ -75,7 +75,9 @@ --> - + { console.log('this.formData.rukushuliang', this.formData.rukushuliang) if (valid) { - if (parseFloat(this.formData.rukushuliang) < 1) { + if (this.rukuleixing === '归还入库') { + if (!this.formData.inventorys_id) { + this.$message.warning('请选择归还的库存设备') + return + } + if (this.formData.wuzileixing === '一物一码' && Number(this.formData.rukushuliang) !== 1) { + this.$message.warning('一物一码设备每条归还数量必须为1') + return + } + } + if (!Number.isFinite(Number(this.formData.rukushuliang)) || parseFloat(this.formData.rukushuliang) < 1) { this.$message.warning('请填写正确的入库数量') return }