From 1d1e327a1cbf8bd822078a9f71894f25ddcee437 Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Mon, 11 Jan 2021 10:32:49 +0800 Subject: [PATCH] gx --- hive-app/pages/workbench/selectProduct/index.vue | 106 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 89 insertions(+), 17 deletions(-) diff --git a/hive-app/pages/workbench/selectProduct/index.vue b/hive-app/pages/workbench/selectProduct/index.vue index 2fa735d..fbc7de0 100644 --- a/hive-app/pages/workbench/selectProduct/index.vue +++ b/hive-app/pages/workbench/selectProduct/index.vue @@ -18,7 +18,7 @@ </uni-collapse-item> </uni-collapse> </scroll-view> - <scroll-view class="list-right" scroll-y="true"> + <scroll-view class="list-right" scroll-y="true" @scrolltolower="scrolltolower()"> <navigator :url="'../productDetail/index?goodsType='+item.goodsType+'&id='+item.id" hover-class="none" v-for="item in goodsList"> <view class="list-right-row"> <image class="product-img" :src="item.img?item.img:'../../../static/images/no-img.png'"></image> @@ -39,6 +39,9 @@ </view> </view> </navigator> + <view v-if="goodsList.length"> + <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more> + </view> </scroll-view> </view> <view class="footer"> @@ -60,12 +63,14 @@ import uniCollapseItem from '../../../components/uni-collapse-item/uni-collapse-item.vue' import searchBar from '../../../components/searchBar/index.vue'; import shoppingCart from './shoppingCart.vue' + import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'; export default { components:{ uniCollapse, uniCollapseItem, searchBar, - shoppingCart + shoppingCart, + uniLoadMore }, data(){ return{ @@ -74,7 +79,9 @@ goodsList: [], cateId: null,//当前产品类别id selectItems: [], - queryKey: '' + queryKey: '', + loadStatus: 'more', + pageNum: 1 } }, computed:{ @@ -105,7 +112,24 @@ }); this.loadGoodsTypeList() }, + onPullDownRefresh(){ + this.reloadData(); + let timer = setTimeout(function () { + uni.startPullDownRefresh(); + clearTimeout(timer); + timer = null; + }, 800); + }, methods:{ + reloadData(){ + this.goodsList = []; + this.pageNum = 1; + this.loadStatus = 'more'; + this.loadGoodsList(); + }, + scrolltolower(){ + this.loadGoodsList() + }, openShoppingCart(){ this.$refs.shopCart.toggle() }, @@ -122,15 +146,32 @@ }) }, loadGoodsList(){ + if(this.loadStatus!=='more'){ + return; + } this.$httpUtils.request('/api/order/findShoppingGoods',{ cateId: this.cateId, - pageNum: 1, - pageSize: 100, + pageNum: this.pageNum, + pageSize: 10, queryKey: this.queryKey },'POST').then((res) => { if(res.status == 200){ - this.goodsList = res.rows.map((item) => { + let result = res.rows.map((item) => { return Object.assign(item, {num: 0}); + }); + if(result.length < 10){ + this.loadStatus = 'noMore'; + } else { + this.pageNum ++ ; + this.loadStatus = 'more'; + } + this.goodsList = this.goodsList.concat(result); + this.goodsList.forEach((item) => { + this.selectItems.forEach((op) => { + if(item.id == op.id){ + item.num = op.num; + } + }) }); } }) @@ -138,7 +179,7 @@ // 搜索 search(val){ this.queryKey = val; - this.loadGoodsList(); + this.reloadData(); }, getParentId(){ let arr = this.goodsTypeList.filter((item) => { @@ -160,31 +201,59 @@ return item.parentId===0 }) this.changeGoodsType(result[index].id); - console.log(result) }, // 切换商品类型 changeGoodsType(id){ this.cateId = id; - this.loadGoodsList(); + this.reloadData(); }, addGoods(goods){ - let index = this.selectItems.indexOf(goods); - goods.num++; + goods.num ++ + // 所有商品列表的下标 + let ids = this.goodsList.map((item) => { + return item.id; + }) + let index = ids.indexOf(goods.id); + if(index>-1){ + this.goodsList[index].num = goods.num; + } + + // 选中商品的下标 + let selectIds = this.selectItems.map((item) => { + return item.id; + }) + let selectIndex = selectIds.indexOf(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); } + }, decreaseGoods(goods){ - let index = this.selectItems.indexOf(goods); goods.num = goods.num <= 0 ? 0 : goods.num - 1; + // 所有商品列表的下标 + let ids = this.goodsList.map((item) => { + return item.id; + }) + let index = ids.indexOf(goods.id); + if(index>-1){ + this.goodsList[index].num = goods.num; + } + + // 选中商品的下标 + let selectIds = this.selectItems.map((item) => { + return item.id; + }) + let selectIndex = selectIds.indexOf(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); } }, clearShopCart(){ @@ -262,6 +331,9 @@ border-radius: 4px; font-size: 13px; } + .list-right-row:nth-last-of-type(1){ + margin-bottom: 0; + } .list-right-row .product-img{ width: 66px; height: 66px; -- Gitblit v1.9.1