| | |
| | | <view class="list"> |
| | | <scroll-view class="list-left" scroll-y="true"> |
| | | <uni-collapse accordion="true" @change="toggleCollapse"> |
| | | <uni-collapse-item :showAnimation="true" :title="item.name" class="list-left-row" |
| | | v-if="item.parentId===0" v-for="item in goodsTypeList"> |
| | | <uni-collapse-item :showAnimation="true" :open="item.id==cateId" :title="item.name" :isShowIcon="isShowIcon(item)" class="list-left-row" |
| | | v-if="item.parentId===0" v-for="(item, index) in goodsTypeList"> |
| | | <view class="list-row-wrap"> |
| | | <view class="list-row" :class="op.id==cateId?'blue':''" |
| | | v-for="op in goodsTypeList" |
| | |
| | | <view v-if="goodsList.length"> |
| | | <uni-load-more :status="loadStatus" color="#a5abaf"></uni-load-more> |
| | | </view> |
| | | <no-record :isShow="!goodsList.length" txt="暂无产品/项目"></no-record> |
| | | </scroll-view> |
| | | </view> |
| | | <view class="footer"> |
| | |
| | | </view> |
| | | <button class="blue-btn btn mr-0" @click="submit" :disabled="isEnableSumbit">提交订单</button> |
| | | </view> |
| | | <shopping-cart ref="shopCart" :list="selectItems" @addGoods="addGoods" @decreaseGoods="decreaseGoods" @reset="clearShopCart"></shopping-cart> |
| | | <shopping-cart ref="shopCart" :list="selectItems" @freeChange="freeChange" @addGoods="addGoods" @decreaseGoods="decreaseGoods" @reset="clearShopCart"></shopping-cart> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | data(){ |
| | | return{ |
| | | id: '', |
| | | tabIndex: '0', |
| | | goodsTypeList: [], |
| | | goodsList: [], |
| | | cateId: null,//当前产品类别id |
| | |
| | | totalAmount(){ |
| | | let amount = 0; |
| | | this.selectItems.forEach((item) => { |
| | | amount += item.price * item.num; |
| | | if(!item.isFree){ |
| | | amount += item.price * item.num; |
| | | } |
| | | }) |
| | | return amount; |
| | | }, |
| | |
| | | onPullDownRefresh(){ |
| | | this.reloadData(); |
| | | let timer = setTimeout(function () { |
| | | uni.startPullDownRefresh(); |
| | | uni.stopPullDownRefresh(); |
| | | clearTimeout(timer); |
| | | timer = null; |
| | | }, 800); |
| | |
| | | }, |
| | | scrolltolower(){ |
| | | this.loadGoodsList() |
| | | }, |
| | | isShowIcon(item){ |
| | | let count = 0; |
| | | this.goodsTypeList.forEach((op) => { |
| | | if(op.parentId==item.id){ |
| | | count ++ |
| | | } |
| | | }); |
| | | return count?true:false; |
| | | }, |
| | | openShoppingCart(){ |
| | | this.$refs.shopCart.toggle() |
| | |
| | | }) |
| | | return arr.length?arr[0].parentId:''; |
| | | }, |
| | | toggleAll(arr){ |
| | | this.changeGoodsType(''); |
| | | }, |
| | | // 打开关闭面板 |
| | | toggleCollapse(arr){ |
| | | if(!arr.length){ |
| | |
| | | this.cateId = id; |
| | | this.reloadData(); |
| | | }, |
| | | freeChange(data){ |
| | | data.goods.isFree = !data.goods.isFree; |
| | | this.$set(this.selectItems, data.index, data.goods) |
| | | }, |
| | | // 添加商品 |
| | | addGoods(goods){ |
| | | goods.num ++ |
| | | // 所有商品列表的下标 |
| | |
| | | if(selectIndex > -1){ |
| | | this.selectItems[selectIndex].num = goods.num; |
| | | }else{ |
| | | this.selectItems.push(goods); |
| | | this.selectItems.push(Object.assign(goods, {isFree: false})); |
| | | } |
| | | |
| | | }, |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: 100%; |
| | | padding: 10px 0 0; |
| | | padding-top: 10px; |
| | | box-sizing: border-box; |
| | | } |
| | | .search-bar{ |
| | |
| | | border-bottom: 0; |
| | | } |
| | | .uni-collapse{ |
| | | background: transparent; |
| | | background-color: #F6F6F8!important; |
| | | } |
| | | |
| | | .uni-collapse-cell{ |
| | | border-color: #F6F6F8!important; |
| | | } |
| | | .uni-collapse-cell__title:active, .uni-collapse-cell--hover, .uni-collapse-cell--open, .uni-collapse-cell--disabled{ |
| | | background-color: #FFFFFF!important; |
| | | } |
| | |
| | | padding: 10px; |
| | | margin: 0 10px 10px; |
| | | border: 1px solid #EDEAF4; |
| | | box-shadow:0 6px 6px rgba(237,234,244,0.5); |
| | | box-shadow:0 6px 6px rgba(237,234,244,0.4); |
| | | border-radius: 4px; |
| | | font-size: 13px; |
| | | } |
| | | .list-right-row:nth-last-of-type(1){ |
| | | .list-row .list-right-row:nth-last-of-type(1){ |
| | | margin-bottom: 0; |
| | | } |
| | | .list-right-row .product-img{ |
| | |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background: #FFFFFF; |
| | | padding: 10px 10px; |
| | | box-shadow: 0 6px 100px rgba(237,234,244,1); |
| | | padding: 10px; |
| | | padding-bottom: 10px; |
| | | padding-bottom: calc(10px + constant(safe-area-inset-bottom)); |
| | | padding-bottom: calc(10px + env(safe-area-inset-bottom)); |
| | | box-shadow: 0 -6px 6px rgba(237,234,244,0.2); |
| | | } |
| | | .footer .icon-car-wrap{ |
| | | position: relative; |
| | |
| | | } |
| | | .footer .btn{ |
| | | border-radius: 20px; |
| | | line-height: 34px; |
| | | padding: 0 24px; |
| | | line-height: 36px; |
| | | padding: 0 26px; |
| | | font-size: 14px; |
| | | } |
| | | </style> |