From 6e54af776db885ad1a22ec582bdc97d7e1273c6c Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Wed, 13 Jan 2021 17:31:30 +0800 Subject: [PATCH] 系统优化 --- hive-app/pages/workbench/selectService/index.vue | 103 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 83 insertions(+), 20 deletions(-) diff --git a/hive-app/pages/workbench/selectService/index.vue b/hive-app/pages/workbench/selectService/index.vue index a17d266..e96b2c7 100644 --- a/hive-app/pages/workbench/selectService/index.vue +++ b/hive-app/pages/workbench/selectService/index.vue @@ -57,14 +57,14 @@ <text>{{op.num}}</text> </template> <text class="iconfont iconjia blue-btn-circle ml-10" - @click.stop="addGoods(op, item.proj)"></text> + @click.stop="addGoods(op)"></text> </view> </view> </view> </view> <view class="flex justify-between font-12 mt-10"> <text>有效期至: {{item.invalidTime}}<text class="red" v-if="item.isInvalid==1">({{item.isInvalid | formatIsInvalid}})</text></text> - <text>剩余总次数:{{item.count}}</text> + <text v-if="item.isCourse === 'Y'">剩余总次数:{{item.count}}</text> </view> </view> <no-record :isShow="!comboList.length" size="mini" txt="暂无套餐" class="no-record"></no-record> @@ -104,6 +104,9 @@ }, onLoad(options) { this.id = options.id; + if(options.selectItems){ + this.selectItems = JSON.parse(decodeURIComponent(options.selectItems)); + } uni.setNavigationBarTitle({ title: '当前客户:' + options.vipName }); @@ -124,7 +127,7 @@ }, methods:{ openShoppingCart(){ - this.$refs.shopCart.show() + this.$refs.shopCart.toggle() }, // 搜索 search(val){ @@ -138,20 +141,34 @@ },'POST').then((res) => { if(res.status == 200){ let result = res.mapInfo.proj; - this.projectList = result.proj.map((item) => { - return Object.assign(item, {num: 0}); + let projectList = result.proj; + let comboList = result.composeProj; + // 项目 + projectList.forEach((item) => { + item.num = 0; + this.selectItems.forEach((op) => { + if(item.id == op.id){ + item.num = op.num; + } + }) }); + // 套餐 - let arr = result.composeProj; - arr.forEach((item) => { + comboList.forEach((item) => { item.proj.forEach((op) => { op.num = 0; + this.selectItems.forEach((key) => { + if(op.id == key.id){ + op.num = key.num; + } + }) op.totalCount = item.count; op.isCourse = item.isCourse; op.parentId = item.id; }) }); - this.comboList = arr; + this.projectList = projectList; + this.comboList = comboList; } }) }, @@ -172,11 +189,8 @@ * goods.isCourse: 套餐类型 Y-任选套餐 N-固定套餐 * */ addGoods(goods){ - let index = this.selectItems.indexOf(goods); - // 当前总数 - let curCount = this.getCurCount(goods.parentId) - + let curCount = this.getCurCount(goods.parentId) // 任选套餐,当前总数不能超出总剩余数 if(goods.isCourse === 'Y' && curCount >= goods.totalCount){ this.$toast.info('超出剩余次数~') @@ -187,21 +201,70 @@ return; } goods.num++; + + let selectIndex = this.selectItems.findIndex((item) => { + return item.id == goods.id; + }); // 该商品若已在购物车,则购物车数量上+1,否则加入购物车 - if(index > -1){ - this.selectItems[index].num = goods.num; + if(selectIndex > -1){ + this.selectItems[selectIndex].num = goods.num; }else{ this.selectItems.push(goods); } + + // 项目 + let projectIndex = this.projectList.findIndex((item) => { + return item.id == goods.id; + }) + if(projectIndex > -1){ + this.projectList[projectIndex].num = goods.num; + } + // 套餐 + let comboParentIndex = this.comboList.findIndex((item) => { + return item.id == goods.parentId; + }) + let comboIndex = null; + if(comboParentIndex > -1){ + comboIndex = this.comboList[comboParentIndex].proj.findIndex((item) => { + return item.id == goods.id; + }) + } + if(comboParentIndex > -1 && comboIndex > -1){ + this.comboList[comboParentIndex].proj[comboIndex].num = goods.num; + } }, decreaseGoods(goods){ - let index = this.selectItems.indexOf(goods); goods.num = goods.num <= 0 ? 0 : goods.num - 1; + + let selectIndex = this.selectItems.findIndex((item) => { + return item.id == goods.id; + }); // 该商品若已在购物车,则购物车数量上-1,否则从购物车删除 - if(index > -1 && this.selectItems[index].num >= 1){ - this.selectItems[index].num = goods.num; + if(goods.num >= 1){ + this.selectItems[selectIndex].num = goods.num; }else{ - this.selectItems.splice(index, 1); + this.selectItems.splice(selectIndex, 1); + } + + // 项目 + let projectIndex = this.projectList.findIndex((item) => { + return item.id == goods.id; + }) + if(projectIndex > -1){ + this.projectList[projectIndex].num = goods.num; + } + // 套餐 + let comboParentIndex = this.comboList.findIndex((item) => { + return item.id == goods.parentId; + }) + let comboIndex = null; + if(comboParentIndex > -1){ + comboIndex = this.comboList[comboParentIndex].proj.findIndex((item) => { + return item.id == goods.id; + }) + } + if(comboParentIndex > -1 && comboIndex > -1){ + this.comboList[comboParentIndex].proj[comboIndex].num = goods.num; } }, clearShopCart(){ @@ -254,7 +317,7 @@ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow:0 6px 6px rgba(237,234,244,0.5); - padding-bottom: 5px; + padding:10px 0 1px; } .content{ padding: 10px 10px 65px; @@ -328,6 +391,6 @@ font-size: 14px; } .no-record{ - margin: 20px 0; + margin: 20px 0!important; } </style> -- Gitblit v1.9.1