From 3d6ef686fad6a5a0b8e834274a9fef79c7a88afd Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期五, 05 九月 2025 09:14:18 +0800
Subject: [PATCH] 解决 单据源单选择列表中 多次选中 HInterID 相同的表时,会造成单据返回时判断为未选中的问题

---
 components/BillListPopup/BillListPopup.vue |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/components/BillListPopup/BillListPopup.vue b/components/BillListPopup/BillListPopup.vue
index 22716d1..eabd118 100644
--- a/components/BillListPopup/BillListPopup.vue
+++ b/components/BillListPopup/BillListPopup.vue
@@ -23,9 +23,9 @@
                 </view>
                 <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
                     <view class="options-wrapper" v-show="HBillList.length != 0">
-                        <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''" v-for="(bill, index) in HBillList[curPage-1]" :key="index"
-                            :title="bill['鐗╂枡鍚嶇О']" :extra="`鏁伴噺: ${bill['鏁伴噺']}`"
-                            @tap="clickCard(bill['HSourceInterID'], bill['鍗曟嵁鍙�'], index)">
+                        <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
+                            v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['鐗╂枡鍚嶇О']"
+                            :extra="`鏁伴噺: ${bill['鏁伴噺']}`" @tap="clickCard(bill['HSourceInterID'], bill['鍗曟嵁鍙�'], index)">
                             <view class="item">
                                 <view class="left">鍗曟嵁鍙�: </view>
                                 <view class="right">{{bill['鍗曟嵁鍙�']}}</view>
@@ -128,7 +128,7 @@
                 this.getBillList()
             },
             ret() {
-                console.log('this.MultiSourceBill: ',this.MultiSourceBill);
+                console.log('this.MultiSourceBill: ', this.MultiSourceBill);
                 uni.$emit('BillSelectComplete', {
                     HInterID: 0,
                     HBillNo: 0,
@@ -154,7 +154,8 @@
                     // 璁剧疆浜嗗婧愬崟妯″紡
                     this.setMultiSourceBillList({
                         HInterID: interid,
-                        HBillNo: billno
+                        HBillNo: billno,
+                        HIsActive: this.HBillList[this.curPage - 1][index]['isActive']
                     })
                 }
 
@@ -163,11 +164,22 @@
             setMultiSourceBillList(billInfo) {
                 let index = this.multiSouceBillList.findIndex(item => item.HInterID == billInfo.HInterID)
                 if (index == -1) {
+                    billInfo['count'] = 1
                     this.multiSouceBillList.push(billInfo)
                 } else {
-                    this.multiSouceBillList.splice(index, 1)
+                    if (billInfo.HIsActive) {
+                        // 濡傛灉瀵瑰簲鍗曟嵁浼犲叆鐨勬槸鍚︽縺娲绘暟鏄痶rue锛屽垯璁℃暟鍣�+1
+                        this.multiSouceBillList[index]['count']++;
+                    } else {
+                        // 濡傛灉瀵瑰簲鍗曟嵁浼犲叆鐨勬槸鍚︽縺娲绘暟鏄痜alse锛屽垯璁℃暟鍣�-1
+                        this.multiSouceBillList[index]['count']--;
+                    }
+                    if(this.multiSouceBillList[index]['count'] == 0){
+                        // 娌℃湁閫変腑鐨勫崟鎹紝鍒欑Щ闄ょ紦瀛樹腑鐨勬暟鎹�
+                        this.multiSouceBillList.splice(index, 1)
+                    }
                 }
-                console.log('this.multiSouceBillList: ',this.multiSouceBillList);
+                console.log('this.multiSouceBillList: ', this.multiSouceBillList);
             },
             getBillList() {
                 this.HBillList = []
@@ -199,11 +211,11 @@
                             this.page = result.length
                             setTimeout(() => {
                                 this.enablefocus = true
-                            },500)
+                            }, 500)
                         } else {
                             setTimeout(() => {
                                 this.enablefocus = true
-                            },500)
+                            }, 500)
                             uni.showToast({
                                 icon: 'none',
                                 title: Message

--
Gitblit v1.9.1