gx
queenwuli
2021-01-28 b83ba3cc4687f21d744e9866e10e30e91229e8a4
hive-app/pages/workbench/selectProduct/index.vue
@@ -5,8 +5,8 @@
      <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" 
@@ -42,6 +42,7 @@
            <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">
@@ -54,7 +55,7 @@
         </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>
@@ -75,6 +76,7 @@
      data(){
         return{
            id: '',
            tabIndex: '0',
            goodsTypeList: [], 
            goodsList: [],
            cateId: null,//当前产品类别id
@@ -97,7 +99,9 @@
         totalAmount(){
            let amount = 0;
            this.selectItems.forEach((item) => {
               amount += item.price * item.num;
               if(!item.isFree){
                  amount += item.price * item.num;
               }
            })
            return amount;
         },
@@ -115,7 +119,7 @@
      onPullDownRefresh(){
         this.reloadData();
         let timer = setTimeout(function () {
            uni.startPullDownRefresh();
            uni.stopPullDownRefresh();
            clearTimeout(timer);
            timer = null;
         }, 800);
@@ -129,6 +133,15 @@
         },
         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()
@@ -187,6 +200,9 @@
            })
            return arr.length?arr[0].parentId:'';
         },
         toggleAll(arr){
            this.changeGoodsType('');
         },
         // 打开关闭面板
         toggleCollapse(arr){
            if(!arr.length){
@@ -207,6 +223,11 @@
            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 ++ 
            // 所有商品列表的下标
@@ -228,7 +249,7 @@
            if(selectIndex > -1){
               this.selectItems[selectIndex].num = goods.num;
            }else{
               this.selectItems.push(goods);
               this.selectItems.push(Object.assign(goods, {isFree: false}));
            }
            
         },
@@ -280,7 +301,7 @@
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 10px 0 0;
      padding-top: 10px;
      box-sizing: border-box;
   }
   .search-bar{
@@ -306,9 +327,11 @@
      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;
   }
@@ -327,11 +350,11 @@
      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{
@@ -350,8 +373,11 @@
      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;
@@ -375,8 +401,8 @@
   }
   .footer .btn{
      border-radius: 20px;
      line-height: 34px;
      padding: 0 24px;
      line-height: 36px;
      padding: 0 26px;
      font-size: 14px;
   }
</style>