xuxueyang
2024-08-11 666bcc20d989be1c7a2acb314594e8e017a611ac
sub_pages/customer/trade/trade.vue
@@ -1,15 +1,25 @@
<template>
   <view class="container-trade" style="min-height: calc(100vh - 20rpx );">
      <view class="search-container m-t-12 flex" v-if="!(!list||list.length==0)&&true&&!hidefooter">
   <view class="container-trade" :style="{'min-height':hidefooter?'':'calc(100vh - 20rpx)'}">
      <view class="search-container m-t-12 flex" v-if="!hidefooter">
         <view class="flex m-r-20">
            <view class="m-r-10" style="line-height: 80rpx;" @click="changeSearchType">
               {{type=='category'?'按分类':'按店铺'}}
            </view>
            <u-icon name="arrow-down"></u-icon>
         </view>
         <view class="flex1 input">
            <u-input placeholder="请输入分类名称" v-model="query.name">
            <u-input :placeholder="type==='category'?'请输入分类名称':'请输入店铺名称'" v-model="query.name" clearable
               @confirm="buttonSearchFlow" @clear="()=>{
               $nextTick(()=>{buttonSearchFlow()})
            }">
               <template slot="suffix">
                  <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons>
                  <uni-icons color="#20613D" type="search" size="24" @click="buttonSearchFlow"></uni-icons>
               </template>
            </u-input>
         </view>
      </view>
      <view class="canteen-items" style="min-height: calc(100vh - 160rpx);">
      <view class="canteen-items" :style="{'min-height':hidefooter?'':'calc(100vh - 160rpx)'}">
         <view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;">
            &nbsp;
         </view>
@@ -22,45 +32,38 @@
               </view>
            </view>
            <view class="canteen-item-container">
<!--               <view class="component-filter-container" style="padding-top: 12rpx;">-->
<!--                  <view class="flex1" @click="openParamPop">-->
<!--                     筛选-->
<!--                  </view>-->
<!--                  <view class="flex1">-->
<!--                     颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
<!--                  </view>-->
<!--                  <view class="flex1">-->
<!--                     筛选<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
<!--                  </view>-->
<!--               </view>-->
<!--               <u-divider></u-divider>-->
               <!--               <view class="component-filter-container" style="padding-top: 12rpx;">-->
               <!--                  <view class="flex1" @click="openParamPop">-->
               <!--                     筛选-->
               <!--                  </view>-->
               <!--                  <view class="flex1">-->
               <!--                     颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
               <!--                  </view>-->
               <!--                  <view class="flex1">-->
               <!--                     筛选<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
               <!--                  </view>-->
               <!--               </view>-->
               <!--               <u-divider></u-divider>-->
               <view class="flex">
                  <view v-for="(item,index) of listFilter" :key="item.id" class="canteen-item list"
                     @click.stop="toDetailList(item)">
                     <view class="m-r-10">
                        <image :src="item.imageUrl" mode="scaleToFill" class="cover" :lazy-load="true"
                           @click.stop="previewImg(item.imageUrl)">
                        <!-- @click.stop="previewImg(item.imageUrl)" -->
                        <image :src="item.imageUrl" :class="[!item.stock?'':'']" mode="scaleToFill"
                           class="cover" :lazy-load="true">
                        </image>
                     </view>
                     <view class="cateen_infos list">
                        <view class="title">{{item.name}}</view>
                        <view class="price">¥29.01-30.01</view>
                        <view class="price">¥{{item.priceLow || 0}}-{{item.priceHigh||0}}</view>
                        <view class="desc">在售 {{item.stock||'0'}} 扎</view>
                     </view>
                        <view class="desc">在售14410扎</view>
                        <!--                         <view class="icons flex">
                              <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
                                 @click="mulnum(item)"></uni-icons>
                              <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view>
                              <uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons>
                           </view> -->
                     </view>
                     <view style="padding-bottom:100rpx">
                     </view>
                  </view>
                  <view style="padding-bottom:100rpx">
                  </view>
               </view>
               <footer-msg
                  :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
               <footer-msg v-if="!hidefooter" :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
            </view>
         </view>
@@ -103,6 +106,8 @@
   export default {
      props: {
         hidefooter: false,
         catgoryTree: [],
         supplierId: '',
      },
      data() {
         return {
@@ -112,10 +117,36 @@
               name: '',
               categoryId: '',
            },
            currentCategory: {}
            currentCategory: {},
            type: 'category', //supplier
         }
      },
      // #ifdef PUB_CUSTOMER
      onShareAppMessage() {
         let that = this;
         var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
            that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
         var url =
            `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
         return {
            title: "花满芫",
            path: url,
         }
      },
      onShareTimeline() {
         let that = this;
         var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
            that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
         var url =
            `/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
         return {
            title: "花满芫",
            path: url,
         }
      },
      // #endif
      onPullDownRefresh() {
         this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
            var data = res.data
@@ -128,22 +159,96 @@
            uni.stopPullDownRefresh()
         })
      },
      async onLoad() {
         //加载分类
      async onLoad(options) {
         let selectId = options.categoryId || ''
         //加载分类
         this.$message.showLoading()
         this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
         this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
            this.$message.hideLoading()
            var data = res.data
            this.list = data || []
            if (this.list.length > 0) {
               this.query.categoryId = this.list[0].id || ''
               this.currentCategory = this.list[0] || {}
               if (selectId) {
                  for (var item of this.list) {
                     if (item.id == selectId) {
                        this.query.categoryId = item.id || ''
                        this.currentCategory = item
                        break
                     }
                  }
               } else {
                  this.query.categoryId = this.list[0].id || ''
                  this.currentCategory = this.list[0] || {}
               }
            }
         })
      },
      methods: {
         async updateParamsAndSearch(){
         changeSearchType() {
            if (this.type == 'category') {
               this.type = 'supplier'
               this.query.name = ''
            } else {
               this.type = 'category'
               this.query.name = ''
            }
         },
         maxWeightPrice(item) {
            var p = 0
            if (item.weightA && item.weightA > p) {
               p = item.weightA
            }
            if (item.weightB && item.weightB > p) {
               p = item.weightB
            }
            if (item.weightC && item.weightC > p) {
               p = item.weightC
            }
            if (item.weightD && item.weightD > p) {
               p = item.weightD
            }
            if (item.weightE && item.weightE > p) {
               p = item.weightE
            }
            if (item.weightO && item.weightO > p) {
               p = item.weightO
            }
            return p
         },
         minWeightPrice(item) {
            var p = -1
            if (item.weightA && item.weightA < p) {
               p = item.weightA
            }
            if (item.weightB && item.weightB < p) {
               p = item.weightB
            }
            if (item.weightC && item.weightC < p) {
               p = item.weightC
            }
            if (item.weightD && item.weightD < p) {
               p = item.weightD
            }
            if (item.weightE && item.weightE < p) {
               p = item.weightE
            }
            if (item.weightO && item.weightO < p) {
               p = item.weightO
            }
            if (p < 0) {
               p = 0
            }
            return p
         },
         refInit(catgoryTree) {
            this.list = catgoryTree || []
            if (this.list.length > 0) {
               this.query.categoryId = this.list[0].id || ''
               this.currentCategory = this.list[0] || {}
            }
         },
         async updateParamsAndSearch() {
            //todo 设置参数并查询
            await this.refreshList()
            this.$refs.popup_param.close()
@@ -156,30 +261,39 @@
            this.$refs.popup_param.close()
         },
         buttonSearchFlow() {
            //根据名称查询
            this.$message.showLoading()
            this.$http.request('get', '/api/customer/flower/category/tree', {
               params: {
                  name: this.query.name || ''
               }
            }).then(res => {
               var data = res.data
               this.list = data || []
               if (this.list.length > 0) {
                  this.query.categoryId = this.list[0].id || ''
                  this.currentCategory = this.list[0] || {}
               } else {
                  this.query.categoryId = ''
                  this.currentCategory = {}
               }
            }).finally(() => {
               this.$message.hideLoading()
            })
            if (this.type == 'category') {
               //根据分类名称查询
               this.$message.showLoading()
               this.$http.request('get', '/api/customer/flower/category/tree', {
                  params: {
                     name: this.query.name || ''
                  }
               }).then(res => {
                  var data = res.data
                  this.list = data || []
                  if (this.list.length > 0) {
                     this.query.categoryId = this.list[0].id || ''
                     this.currentCategory = this.list[0] || {}
                  } else {
                     this.query.categoryId = ''
                     this.currentCategory = {}
                  }
               }).finally(() => {
                  this.$message.hideLoading()
               })
            } else {
               uni.navigateTo({
                  url: '/sub_pages/customer/trade/list?' + 'supplierName=' + this.query.name
               })
            }
         },
         toDetailList(item) {
            //去商品列表页面
            //去商品列表页面
            console.log('toDetailList',this.supplierId)
            uni.navigateTo({
               url: `/sub_pages/customer/trade/list?categoryId=${item.id}`
               url: `/sub_pages/customer/trade/list?categoryId=${item.id}&supplierId=${this.supplierId||''}`
            })
         },
         changeType(item) {
@@ -289,7 +403,7 @@
            width: 164rpx;
            // width: 690rpx;
            // max-width: 690rpx;
            height: 266rpx;
            min-height: 266rpx;
            background: #FFFFFF;
            margin-bottom: 44rpx;
            max-width: 164rpx;
@@ -307,6 +421,8 @@
               font-size: 28rpx;
               color: #000000;
               line-height: 40rpx;
               min-height: 80rpx;
               text-align: center;
            }
            .desc {