From df25270f4804c41a04237e5401677196ccdcaff9 Mon Sep 17 00:00:00 2001 From: itcast Date: Tue, 23 Dec 2025 17:43:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EquipmentRetireApply/components/AddItemDialog.vue | 10 +++++++++- src/views/EquipmentRetireApply/index.vue | 3 ++- src/views/EquipmentServicing/index.vue | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/views/EquipmentRetireApply/components/AddItemDialog.vue b/src/views/EquipmentRetireApply/components/AddItemDialog.vue index cab1b3a0..40762e6f 100644 --- a/src/views/EquipmentRetireApply/components/AddItemDialog.vue +++ b/src/views/EquipmentRetireApply/components/AddItemDialog.vue @@ -297,8 +297,16 @@ export default { this.selectedItems=[] this.getItemList() }, + // 弹窗组件的methods中 selectable(row) { - return !this.existingItems.some(item => item.id === row.id) + // 条件1:库存为0时不可选 + if (row.inStockNum <= 0) return false; + // 条件2:已在主表中存在的不可选(根据实际业务唯一标识判断,如id/devCode) + const isExisted = this.existingItems.some(item => { + // 请根据实际业务调整唯一标识的对比逻辑,比如devCode + devType + return item.id === row.id || item.devCode === row.devCode; + }); + return !isExisted; }, onSelectionChange(selection) { this.selectedItems = selection diff --git a/src/views/EquipmentRetireApply/index.vue b/src/views/EquipmentRetireApply/index.vue index b205319c..5886880f 100644 --- a/src/views/EquipmentRetireApply/index.vue +++ b/src/views/EquipmentRetireApply/index.vue @@ -88,7 +88,8 @@ - + diff --git a/src/views/EquipmentServicing/index.vue b/src/views/EquipmentServicing/index.vue index bc9157c3..7e5e48b3 100644 --- a/src/views/EquipmentServicing/index.vue +++ b/src/views/EquipmentServicing/index.vue @@ -31,7 +31,7 @@ value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" - style="width: 200px" + style="width: 220px" /> @@ -45,7 +45,7 @@ value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" - style="width: 200px" + style="width: 220px" />