1
xuxy
2024-07-29 dc6cdf2414ee7c453e1bca47898177f7af079945
sub_pages/customer/trade/trade.vue
@@ -1,15 +1,15 @@
<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">
   <view class="container-trade" :style="{'min-height':hidefooter?'':'calc(100vh - 20rpx)'}">
      <view class="search-container m-t-12 flex" v-if="!hidefooter">
         <view class="flex1 input">
            <u-input placeholder="请输入分类名称" v-model="query.name">
            <u-input placeholder="请输入分类名称" v-model="query.name" clearable>
               <template slot="suffix">
                  <uni-icons color="#20613D" type="search" size="24" @tap="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>
@@ -17,28 +17,28 @@
         <view class="" style="display: flex;flex-wrap: inherit;" v-else>
            <view class="type-list">
               <view v-for="(item,index) of list" @click="changeType(item)"
                  :class="[query.categoryId==item.id?'current':'']" :key="index" class="p10 flex type-item">
                  :class="[query.categoryId===item.id?'current':'']" :key="index" class="p10 flex type-item">
                  {{item.name || '-'}}
               </view>
            </view>
            <view class="canteen-item-container">
               <view class="component-filter-container" style="padding-top: 12rpx;">
                  <view class="flex1">
                     销量
                  </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"
                        <image :src="item.imageUrl" mode="scaleToFill" class="cover" :lazy-load="true"
                           @click.stop="previewImg(item.imageUrl)">
                        </image>
                     </view>
@@ -54,13 +54,12 @@
                              <uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons>
                           </view> -->
                     </view>
                     <view style="padding-bottom:100rpx">
                     </view>
                  </view>
                  </view>
                  <view style="padding-bottom:100rpx">
                  </view>
               </view>
               <footer-msg v-if="query.block&&query.schoolArea"
                  :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>
@@ -69,10 +68,30 @@
      <view style="min-height:200rpx">
      <view style="min-height:200rpx" v-if="!hidefooter">
      </view>
      <common-footer flg="1"></common-footer>
      <common-footer flg="1" v-if="!hidefooter">></common-footer>
      <uni-popup ref="popup_param" type="bottom">
         <view class="component-popup_input_all" v-if="currentCategory&&currentCategory.params">
            <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view>
            <!-- 输入框-->
            <view v-for="(item,i) in currentCategory.params" :key="i" class="m-t-20">
               <view class="title topic-font" style="font-size: 40rpx;font-weight: 600;">{{item.name}}</view>
               <view class="m-t-12 flex value-items">
                  <view class="value-item" @click="updateValue(item,each)" :class="[item.value===each?'cur':'']"
                     v-for="(each, j) in item.values" :key="j">
                     {{each || '-'}}
                  </view>
               </view>
            </view>
            <view class="button-space"></view>
            <view>
               <view class="button-green button-white" @click="closeParamPop">关闭</view>
               <view class="button-green" @click="updateParamsAndSearch">查询</view>
            </view>
         </view>
      </uni-popup>
   </view>
</template>
@@ -81,6 +100,10 @@
      mapState
   } from 'vuex'
   export default {
      props: {
         hidefooter: false,
         catgoryTree: [],
      },
      data() {
         return {
            list: [],
@@ -89,6 +112,7 @@
               name: '',
               categoryId: '',
            },
            currentCategory: {}
         }
      },
@@ -98,6 +122,7 @@
            this.list = data || []
            if (this.list.length > 0) {
               this.query.categoryId = this.list[0].id || ''
               this.currentCategory = this.list[0] || {}
            }
         }).finally(() => {
            uni.stopPullDownRefresh()
@@ -106,15 +131,37 @@
      async onLoad() {
         //加载分类
         this.$message.showLoading()
         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] || {}
            }
         })
      },
      methods: {
         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()
         },
         openParamPop() {
            //todo 同时设置查询参数为空吧
            this.$refs.popup_param.open()
         },
         closeParamPop() {
            this.$refs.popup_param.close()
         },
         buttonSearchFlow() {
            //根据名称查询
            this.$message.showLoading()
@@ -127,8 +174,10 @@
               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()
@@ -142,6 +191,7 @@
         },
         changeType(item) {
            this.query.categoryId = item.id || ''
            this.currentCategory = item
         },
@@ -193,7 +243,7 @@
         margin: 0rpx 30rpx 20rpx 30rpx;
      }
      .type-list {
         max-width: 178rpx;
@@ -246,7 +296,7 @@
            width: 164rpx;
            // width: 690rpx;
            // max-width: 690rpx;
            height: 266rpx;
            min-height: 266rpx;
            background: #FFFFFF;
            margin-bottom: 44rpx;
            max-width: 164rpx;