解决 单据源单选择列表中 多次选中 HInterID 相同的表时,会造成单据返回时判断为未选中的问题
1个文件已修改
30 ■■■■ 已修改文件
components/BillListPopup/BillListPopup.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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) {
                        // 如果对应单据传入的是否激活数是true,则计数器+1
                        this.multiSouceBillList[index]['count']++;
                    } else {
                        // 如果对应单据传入的是否激活数是false,则计数器-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