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
}