|  |  | 
 |  |  |     page {
 | 
 |  |  |         background-color: #f5f5f5;
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     @import '@/common/selfvar.scss';
 | 
 |  |  |     // @import '@/common/self.scss';
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |     .icon-arrow-down {
 | 
 |  |  |       width: 24rpx;
 | 
 |  |  |       height: 24rpx;
 | 
 |  |  |         vertical-align: middle;
 | 
 |  |  |         display: inline-block;
 | 
 |  |  |     }
 | 
 |  |  |     
 | 
 |  |  |     .app-tips {
 | 
 |  |  |     }
 | 
 |  |  |     .app-tips {}
 | 
 |  |  |     
 | 
 |  |  |     .app-tips .app-tip {
 | 
 |  |  |       background-color: #F3F3F3;
 | 
 |  |  | 
 |  |  |     }
 | 
 |  |  |     
 | 
 |  |  |     .common-select-items {
 | 
 |  |  |       .common-select-item {
 | 
 |  |  | 	 | 
 |  |  |       }
 | 
 |  |  |         .common-select-item {}
 | 
 |  |  |     }
 | 
 |  |  |     
 | 
 |  |  |     .uni-noticebar {
 | 
 |  |  | 
 |  |  |     .radio.select {
 | 
 |  |  |       background: #04BA97;
 | 
 |  |  |       border: 1rpx solid #04BA97
 | 
 |  |  | 	 | 
 |  |  |     }
 | 
 |  |  |     
 | 
 |  |  |     
 | 
 |  |  | 
 |  |  |     .info-brand {
 | 
 |  |  |       padding: 20rpx 30rpx;
 | 
 |  |  |       //padding: 10rpx;
 | 
 |  |  |       background: #fff;
 | 
 |  |  |         // background: #fff;
 | 
 |  |  |     
 | 
 |  |  |       .name {
 | 
 |  |  |         margin-bottom: 22rpx;
 | 
 |  |  | 
 |  |  |       }
 | 
 |  |  |     
 | 
 |  |  |       .store-logo {
 | 
 |  |  |         width: 96rpx;
 | 
 |  |  |         height: 96rpx;
 | 
 |  |  |             width: 114rpx;
 | 
 |  |  |             height: 114rpx;
 | 
 |  |  |         border-radius: 50%;
 | 
 |  |  |         margin-right: 20rpx;
 | 
 |  |  |             border: 2rpx solid #FFFFFF;
 | 
 |  |  |             background-size: 100% 100%;
 | 
 |  |  |                 background-color: #fff;
 | 
 |  |  |       }
 | 
 |  |  |     
 | 
 |  |  |       .store-name {
 | 
 |  |  |         font-weight: 600;
 | 
 |  |  |         font-size: 28rpx;
 | 
 |  |  |         color: #000000;
 | 
 |  |  |             font-size: 36rpx;
 | 
 |  |  |             color: #FFFFFF;
 | 
 |  |  |         line-height: 40rpx;
 | 
 |  |  |             margin-top: 20rpx;
 | 
 |  |  |         }
 | 
 |  |  |         .store-name.t1 {
 | 
 |  |  |             color: #666;
 | 
 |  |  |       }
 | 
 |  |  |     
 | 
 |  |  |       .store-address {
 | 
 |  |  |         font-weight: 400;
 | 
 |  |  |         font-size: 24rpx;
 | 
 |  |  |         color: #666666;
 | 
 |  |  |             font-size: 28rpx;
 | 
 |  |  |             color: #FFFFFF;
 | 
 |  |  |         line-height: 34rpx;
 | 
 |  |  |             margin-top: 8rpx;
 | 
 |  |  |         }
 | 
 |  |  |         .store-address.t1 {
 | 
 |  |  |             color: #666;
 | 
 |  |  |       }
 | 
 |  |  |     
 | 
 |  |  |       .store-to {
 | 
 |  |  | 
 |  |  |         color: #FFFFFF;
 | 
 |  |  |         line-height: 64rpx;
 | 
 |  |  |         display: flex;
 | 
 |  |  | 
 | 
 |  |  |         .icon-view {
 | 
 |  |  |           margin-top: 4rpx;
 | 
 |  |  |                 // margin-top: 8rpx;
 | 
 |  |  |           margin-left: 30rpx;
 | 
 |  |  |           margin-right: 10rpx;
 | 
 |  |  |         }
 | 
 |  |  | 
 |  |  |           height: 36rpx;
 | 
 |  |  |     
 | 
 |  |  |           display: inline-block;
 | 
 |  |  |                 vertical-align: middle;
 | 
 |  |  |         }
 | 
 |  |  |       }
 | 
 |  |  |     }
 | 
 
 |  |  | 
 |  |  |     bottom: 8rpx; | 
 |  |  |     // width: 110rpx; | 
 |  |  |     height: 8rpx; | 
 |  |  |     background: #04BA97; | 
 |  |  |     // background: #04BA97; | 
 |  |  |     background: #ffffff; | 
 |  |  | 	 | 
 |  |  |     border-radius: 4rpx; | 
 |  |  |   } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list1[0]&&list1[0].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list1[0]&&list1[0].avePrice||'-'}} | 
 |  |  |                         {{list1[0]&&list1[0].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list1[0]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[0]&&list1[0].avePriceDifferenceRate<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'':'+'}}{{list1[0]&&list1[0].avePriceDifference||'0'}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[0]&&list1[0].avePriceDifferenceRate<0?'':'+'}}{{list1[0]&&list1[0].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="line"></view> | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list1[1]&&list1[1].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list1[1]&&list1[1].avePrice||'-'}} | 
 |  |  |                         {{list1[1]&&list1[1].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list1[1]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[1]&&list1[1].avePriceDifferenceRate<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[1]&&list1[1].avePriceDifferenceRate<0?'':'+'}}{{list1[1]&&list1[1].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="line"></view> | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list1[2]&&list1[2].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list1[2]&&list1[2].avePrice||'-'}} | 
 |  |  |                         {{list1[2]&&list1[2].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list1[2]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[2]&&list1[2].avePriceDifferenceRate<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list1[2]&&list1[2].avePriceDifferenceRate<0?'':'+'}}{{list1[2]&&list1[2].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 |  |  | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list2[0]&&list2[0].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list2[0]&&list2[0].avePrice||'-'}} | 
 |  |  |                         {{list2[0]&&list2[0].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list2[0]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[0]&&list2[0].avePriceDifferenceRate<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[0]&&list2[0].avePriceDifferenceRate<0?'':'+'}}{{list2[0]&&list2[0].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="line"></view> | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list2[1]&&list2[1].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list2[1]&&list2[1].avePrice||'-'}} | 
 |  |  |                         {{list2[1]&&list2[1].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list2[1]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[1]&&list2[1].avePriceDifferenceRate<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[1]&&list2[1].avePriceDifferenceRate<0?'':'+'}}{{list2[1]&&list2[1].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |                 <view class="line"></view> | 
 |  |  |                 <view class="item flex1"> | 
 |  |  |                     <view class="title">{{list2[2]&&list2[2].name||''}}</view> | 
 |  |  |                     <view class="price"> | 
 |  |  |                         {{list2[2]&&list2[2].avePrice||'-'}} | 
 |  |  |                         {{list2[2]&&list2[2].avePrice||''}} | 
 |  |  |                     </view> | 
 |  |  |                     <view class="flex desc" v-if="list2[2]"> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[2]&&list2[2].avePriceDifferenceRate<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                         <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view> | 
 |  |  |                         <view class="m-l-a m-r-a text-right">{{list2[2]&&list2[2].avePriceDifferenceRate<0?'':'+'}}{{list2[2]&&list2[2].avePriceDifferenceRate*100||''}}%</view> | 
 |  |  |                     </view> | 
 |  |  |                 </view> | 
 |  |  |             </view> | 
 
 |  |  | 
 |  |  |                :src="item.cover"> | 
 |  |  |         </image> | 
 |  |  |         <view class="level"> | 
 |  |  |           {{ ite.levelStr}} | 
 |  |  |           {{ item.levelStr}} | 
 |  |  |         </view> | 
 |  |  |       </view> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     },
 | 
 |  |  |     toHome(){
 | 
 |  |  |       uni.redirectTo({
 | 
 |  |  |         url: '/pages//pages/home/home'
 | 
 |  |  |         url: '/pages/home/home'
 | 
 |  |  |       })
 | 
 |  |  |     },
 | 
 |  |  |     toReg() {
 | 
 
 |  |  | 
 |  |  |   .order-item { | 
 |  |  |     margin-bottom: 20rpx; | 
 |  |  |     padding: 28rpx; | 
 |  |  |     background-color: #fff; | 
 |  |  |     border-radius: 8rpx; | 
 |  |  |  | 
 |  |  |     .title { | 
 |  |  |       font-weight: 600; | 
 
 |  |  | 
 |  |  |       <!-- v-if="currentInfo&&(currentInfo.id)" -->
 | 
 |  |  |       <view class="flex user-info">
 | 
 |  |  |         <!-- 头像 -->
 | 
 |  |  |         <image class="user-icon" v-if="!currentInfo.picture"
 | 
 |  |  | 
 | 
 |  |  |                 <image class="user-icon" v-if="currentInfo.picture
 | 
 |  |  |                     ||currentInfo.customerDTO&¤tInfo.customerDTO.cover
 | 
 |  |  |                     ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover
 | 
 |  |  |                     " :src="currentInfo.picture
 | 
 |  |  |                     ||currentInfo.customerDTO&¤tInfo.customerDTO.cover
 | 
 |  |  |                     ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover" mode="aspectFit"></image>
 | 
 |  |  |                 <image class="user-icon" v-else
 | 
 |  |  |                src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
 | 
 |  |  |                mode="aspectFit"></image>
 | 
 |  |  |         <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |         <view class="name" v-if="currentInfo.id">
 | 
 |  |  |           <view class="t1">
 | 
 |  |  |             {{
 | 
 |  |  |               (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
 | 
 |  |  |             }}<span
 | 
 |  |  |               v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status!=='P'">
 | 
 |  |  |               (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
 | 
 |  |  |             }}<span v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status!=='P'">
 | 
 |  |  |                             ({{ currentInfo.supplierDTO ? currentInfo.supplierDTO.statusStr : '' }})</span>
 | 
 |  |  |           </view>
 | 
 |  |  |           <view class="t2">{{ currentInfo.tel || '暂无电话' }}</view>
 | 
 |  |  | 
 |  |  |         <view class="title flex">
 | 
 |  |  |           <view class="flex1">我的订单</view>
 | 
 |  |  |           <view class="m-r-a m-r-0 more" @click="goto('/pages/order/order',true)">全部订单
 | 
 |  |  |             <uni-icons class="" type="right"
 | 
 |  |  |                        size="12"></uni-icons>
 | 
 |  |  |                         <uni-icons class="" type="right" size="12"></uni-icons>
 | 
 |  |  |           </view>
 | 
 |  |  |         </view>
 | 
 |  |  |         <view class="flex order-icons-container">
 | 
 |  |  | 
 |  |  |           <uni-icons type="right"></uni-icons>
 | 
 |  |  |         </view>
 | 
 |  |  |       </view>
 | 
 |  |  |       <view class="user-util m-t-12 "
 | 
 |  |  |             v-if="selftype==='supplier'||selftype==='customer' || !selftype">
 | 
 |  |  |             <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype">
 | 
 |  |  |         <view class="title">我的客服</view>
 | 
 |  |  |         <view class="flex">
 | 
 |  |  |           <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
 | 
 |  |  | 
 |  |  |           </view>
 | 
 |  |  |           <view class="userName">
 | 
 |  |  |             <text style="padding-bottom: 20rpx;">修改昵称:</text>
 | 
 |  |  |             <input :clearable="false" type="nickname" class="weui-input" :value="regUserName" @blur="onBindblur"
 | 
 |  |  |                    placeholder="请输入昵称" @input="onBindinput"/>
 | 
 |  |  |                         <input :clearable="false" type="nickname" class="weui-input" :value="regUserName"
 | 
 |  |  |                             @blur="onBindblur" placeholder="请输入昵称" @input="onBindinput" />
 | 
 |  |  |           </view>
 | 
 |  |  | 
 | 
 |  |  |           <view style="width: 100%;height: 1px; background: #EEE;">
 | 
 
 |  |  | 
 |  |  |             }).then(res => { | 
 |  |  |                 var data = res.data | 
 |  |  |                 this.level_columns = [data || []] | 
 |  |  |                 this.columns_levels[0].unshift({ | 
 |  |  |                 this.level_columns[0].unshift({ | 
 |  |  |                     label: '全部', | 
 |  |  |                     value: '' | 
 |  |  |                 }) | 
 
 |  |  | 
 |  |  |   <view class="follow-page"> | 
 |  |  |     <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> | 
 |  |  |  | 
 |  |  |     <view class="follow-item m-b-40" v-for="(item,index) of list" :key="index"> | 
 |  |  |       <image class="avatar img100" :src="item.avatar" mode="aspectFill"></image> | 
 |  |  |         <view class="follow-item m-b-40 flex" v-for="(item,index) of list" :key="index"> | 
 |  |  |             <image class="avatar img100" :src="item.cover" mode="aspectFill"></image> | 
 |  |  |       <view class="info"> | 
 |  |  |         <view class="name">{{ item.supplierName }}</view> | 
 |  |  |         <view class="time">{{ item.createTime }}</view> | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     async clearFollow(item) { | 
 |  |  |       this.$message.showLoading() | 
 |  |  |       const {code} = await this.$http.request('get', `/api/follow/delete`, { | 
 |  |  |                 const { | 
 |  |  |                     code | 
 |  |  |                 } = await this.$http.request('get', `/api/follow/delete`, { | 
 |  |  |         params: { | 
 |  |  |           supplierId: item.id | 
 |  |  |         } | 
 |  |  | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .follow-page { | 
 |  |  |   .follow-item { | 
 |  |  |             padding: 30rpx; | 
 |  |  |             background-color: #FFFFFF; | 
 |  |  |             margin-bottom: 20rpx; | 
 |  |  |  | 
 |  |  |     .avatar { | 
 |  |  |       width: 114rpx; | 
 |  |  |       height: 114rpx; | 
 |  |  |                 width: 80rpx; | 
 |  |  |                 height: 80rpx; | 
 |  |  |       border: 2rpx solid #FFFFFF; | 
 |  |  |       border-radius: 50%; | 
 |  |  |       margin-right: 10rpx; | 
 |  |  |                 margin-right: 20rpx; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .info { | 
 |  |  |       .name { | 
 |  |  |         font-weight: 600; | 
 |  |  |         font-size: 36rpx; | 
 |  |  |                     font-size: 32rpx; | 
 |  |  |         color: #000000; | 
 |  |  |         line-height: 50rpx; | 
 |  |  |                     line-height: 40rpx; | 
 |  |  |                     margin-top: 6rpx; | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       .time { | 
 |  |  |         font-weight: 400; | 
 |  |  |         font-size: 28rpx; | 
 |  |  |                     font-size: 24rpx; | 
 |  |  |         color: #666666; | 
 |  |  |         line-height: 40rpx; | 
 |  |  |       } | 
 |  |  | 
 |  |  |       margin-left: 10rpx; | 
 |  |  |       font-weight: 400; | 
 |  |  |       font-size: 24rpx; | 
 |  |  |       line-height: 60rpx; | 
 |  |  |                 line-height: 30rpx; | 
 |  |  |                 border-radius: 34rpx; | 
 |  |  |                 margin-top: 10rpx; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 // min-width: 128rpx; | 
 |  |  |                 height: 30rpx; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .button-1 { | 
 |  |  |       color: #999999; | 
 |  |  |       border-radius: 34rpx; | 
 |  |  |       border: 2rpx solid #999999; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .button-2 { | 
 |  |  |       border-radius: 34rpx; | 
 |  |  |       border: 2rpx solid #20613D; | 
 |  |  |       color: #20613D; | 
 |  |  |     } | 
 
 |  |  | 
 |  |  | <template>
 | 
 |  |  |   <view class="brand-detail">
 | 
 |  |  |     <view class="brand-detail" style="background: #20613D;">
 | 
 |  |  | 
 | 
 |  |  |     <view class="brand-top-info">
 | 
 |  |  |       <view class="search-container m-t-12 flex">
 | 
 |  |  |             <view class="search-container  flex" style="padding-left: 20rpx;padding-right: 20rpx;padding-top: 20rpx">
 | 
 |  |  |         <view class="flex1 input">
 | 
 |  |  |           <u-input placeholder="请输入花名" v-model="search_flow">
 | 
 |  |  |             <template slot="suffix">
 | 
 |  |  | 
 |  |  |       </view>
 | 
 |  |  |       <view class="info-brand m-t-12" v-if="id">
 | 
 |  |  |         <view class="flex">
 | 
 |  |  |           <image class="store-logo"></image>
 | 
 |  |  |                     <image class="store-logo" :src="dto.cover"></image>
 | 
 |  |  |           <view>
 | 
 |  |  |             <view class="store-name">花仙子</view>
 | 
 |  |  |             <view class="store-address">云南省-昆明市-官渡区</view>
 | 
 |  |  |                         <view class="store-name">{{dto.name}}</view>
 | 
 |  |  |                         <view class="store-address">
 | 
 |  |  |                             {{ ((dto.province||'')+  (dto.city&&'-'||'') + (dto.city||'')+  (dto.region&&'-'||'')+(dto.region||'')) ||dto.address || '暂无详细地址'}}
 | 
 |  |  |                         </view>
 | 
 |  |  |           </view>
 | 
 |  |  |           <view class="store-sc m-l-a m-r-0" @click="updateGz(!dto.followed)">
 | 
 |  |  |             <view class="icon-view">
 | 
 |  |  |                             <image src="../../../static/icon-gz-1.png" class="icon" v-if="dto.followed"></image>
 | 
 |  |  |                             <image src="../../../static/icon-gz-0.png" class="icon" v-if="!dto.followed"></image>
 | 
 |  |  |                         </view>
 | 
 |  |  |                         <view>{{dto.followed?'取消':'关注'}}</view>
 | 
 |  |  |                     </view>
 | 
 |  |  |                     <!--           <view class="store-sc m-l-a m-r-0" @click="updateGz(!dto.followed)">
 | 
 |  |  |               <image src="../../../static/icon-gz-1.png" class="icon" v-if="dto.followed"
 | 
 |  |  |                      ></image>
 | 
 |  |  |               <image src="../../../static/icon-gz-0.png" class="icon" v-if="!dto.followed"
 | 
 |  |  |                      ></image>
 | 
 |  |  |             </view>
 | 
 |  |  |             <view>关注</view>
 | 
 |  |  |           </view>
 | 
 |  |  |             关注
 | 
 |  |  |           </view> -->
 | 
 |  |  |         </view>
 | 
 |  |  |       </view>
 | 
 |  |  |       <view class="tj-info m-t-12">
 | 
 |  |  | 
 |  |  |           <view class="label">关注</view>
 | 
 |  |  |         </view>
 | 
 |  |  |       </view>
 | 
 |  |  |       <top-tabs class="m-t-12" :tabs="tabs" :flg="flg" @change="changeTab">
 | 
 |  |  |             <view class="p10" style="padding-left: 20rpx;padding-right: 20rpx;">
 | 
 |  |  |                 <top-tabs :tabs="tabs" :flg="flg" @change="changeTab">
 | 
 |  |  | 
 | 
 |  |  |       </top-tabs>
 | 
 |  |  |             </view>
 | 
 |  |  |     </view>
 | 
 |  |  |     <view class="brand-info">
 | 
 |  |  |       <view v-if="flg==='0'" class="brand-info-0">
 | 
 |  |  | 
 |  |  |         <view class="title">
 | 
 |  |  |           基础信息
 | 
 |  |  |         </view>
 | 
 |  |  |         <view class="form-input">
 | 
 |  |  |                 <view class="form-input flex">
 | 
 |  |  |           <view class="label">经营模式</view>
 | 
 |  |  |           <view class="value">供应商</view>
 | 
 |  |  |         </view>
 | 
 |  |  |         <view class="form-input">
 | 
 |  |  |                 <view class="form-input flex">
 | 
 |  |  |                     <view class="label ">商家详细</view>
 | 
 |  |  |                     <view class="value">{{dto.address || '暂无'}}</view>
 | 
 |  |  |                 </view>
 | 
 |  |  |                 <view class="form-input flex">
 | 
 |  |  |                     <view class="label ">商家介绍</view>
 | 
 |  |  |                     <view class="value">{{dto.description || '-'}}</view>
 | 
 |  |  |                 </view>
 | 
 |  |  |                 <view class="form-input flex">
 | 
 |  |  |           <view class="label">身份认证</view>
 | 
 |  |  |           <view class="value">个人身份认证</view>
 | 
 |  |  |         </view>
 | 
 |  |  | 
 |  |  |     //update 关注
 | 
 |  |  |     async updateGz(type) {
 | 
 |  |  |       this.$message.showLoading()
 | 
 |  |  |       const {code} = await this.$http.request(type ? 'post' : 'get', `/api/follow/${type ? 'add' : 'delete'}`, {
 | 
 |  |  |                 const {
 | 
 |  |  |                     code
 | 
 |  |  |                 } = await this.$http.request(type ? 'post' : 'get', `/api/follow/${type ? 'add' : 'delete'}`, {
 | 
 |  |  |         data: {
 | 
 |  |  |           supplierId: this.dto.supplierId || this.dto.id
 | 
 |  |  |         },
 | 
 |  |  | 
 |  |  |           supplierId: this.dto.supplierId || this.dto.id
 | 
 |  |  |         }
 | 
 |  |  |       })
 | 
 |  |  |       this.$message.hideLoading()
 | 
 |  |  |       if (code === 0) {
 | 
 |  |  |         this.dto.followed = !this.dto.followed
 | 
 |  |  |         await this.$store.dispatch('sign_add', 'follow')
 | 
 |  |  |                     this.$forceUpdate()
 | 
 |  |  |       }
 | 
 |  |  |                 this.$message.hideLoading()
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |     },
 | 
 |  |  |     changeTab(flg) {
 | 
 |  |  |       this.flg = flg
 | 
 |  |  |                 console.log('changeTab', flg)
 | 
 |  |  |                 this.flg = ''+flg
 | 
 |  |  |       //如果没有加载数据,需要加载一下
 | 
 |  |  | 
 | 
 |  |  |     },
 | 
 |  |  | 
 |  |  |         return
 | 
 |  |  |       }
 | 
 |  |  |       this.$message.showLoading()
 | 
 |  |  |       const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
 | 
 |  |  |                 const {
 | 
 |  |  |                     code
 | 
 |  |  |                 } = await http.request('post', '/api/customer/flower/cart/change-num', {
 | 
 |  |  |             data: {
 | 
 |  |  |               id: item.id,
 | 
 |  |  |               num: addnum
 | 
 |  |  |             }
 | 
 |  |  |           }
 | 
 |  |  |       )
 | 
 |  |  |                 })
 | 
 |  |  |       this.$message.hideLoading()
 | 
 |  |  |       if (code === 0) {
 | 
 |  |  |         item.shopnum += addnum
 | 
 |  |  | 
 |  |  | .brand-detail {
 | 
 |  |  |   .brand-info {
 | 
 |  |  |     background: #FFFFFF;
 | 
 |  |  |     border-radius: 40rpx 40rpx 0rpx 0rpx;
 | 
 |  |  |             // border-radius: 40rpx 40rpx 0rpx 0rpx;
 | 
 |  |  |             border-top-left-radius: 40rpx;
 | 
 |  |  |             border-top-right-radius: 40rpx;
 | 
 |  |  |             overflow: hidden;
 | 
 |  |  |             overflow-y: scroll;
 | 
 |  |  |     padding: 40rpx 32rpx;
 | 
 |  |  |             height: calc(100vh - 650rpx);
 | 
 |  |  |             padding-top: 0rpx;
 | 
 |  |  | 
 | 
 |  |  |     .brand-info-0 {
 | 
 |  |  |       .top-title {
 | 
 |  |  |         height: 80rpx;
 | 
 |  |  |                     height: 60rpx;
 | 
 |  |  |         background: #E4ECE8;
 | 
 |  |  |         border-radius: 4rpx;
 | 
 |  |  |         font-weight: 400;
 | 
 |  |  |         font-size: 24rpx;
 | 
 |  |  |         color: #779787;
 | 
 |  |  |         margin-top: 10rpx;
 | 
 |  |  |         line-height: 80rpx;
 | 
 |  |  |                     line-height: 60rpx;
 | 
 |  |  |                     padding-left: 20rpx;
 | 
 |  |  |       }
 | 
 |  |  |     }
 | 
 |  |  | 
 | 
 |  |  |     .brand-info-3 {
 | 
 |  |  |                 padding: 40rpx 30rpx;
 | 
 |  |  |       .title {
 | 
 |  |  |         font-weight: 600;
 | 
 |  |  |         font-size: 32rpx;
 | 
 |  |  | 
 |  |  |         margin-bottom: 20rpx;
 | 
 |  |  |       }
 | 
 |  |  | 
 | 
 |  |  |       .form-item {
 | 
 |  |  |                 .form-input {
 | 
 |  |  |         display: flex;
 | 
 |  |  |         border-bottom: 2rpx solid #EEEEEE;
 | 
 |  |  | 
 | 
 |  |  |         .label {
 | 
 |  |  |           font-weight: 400;
 | 
 |  |  |                         font-weight: 600;
 | 
 |  |  |           font-size: 28rpx;
 | 
 |  |  |           color: #000000;
 | 
 |  |  |           line-height: 40rpx;
 | 
 |  |  | 
 |  |  |           color: #666666;
 | 
 |  |  |           line-height: 40rpx;
 | 
 |  |  |           margin-left: auto;
 | 
 |  |  |                         margin-right: 0;
 | 
 |  |  | 						 | 
 |  |  |           text-align: right;
 | 
 |  |  | 
 | 
 |  |  |           .check {
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |   .brand-top-info {
 | 
 |  |  |     background-image: url('https://hmy-flower.oss-cn-shanghai.aliyuncs.com/37/37dc02b58bd44af79e45031af2bb6c0b%E4%BD%8D%E5%9B%BE@2x.png');
 | 
 |  |  |             background-size: 100% 100%;
 | 
 |  |  | 
 | 
 |  |  |     .tj-info {
 | 
 |  |  |       display: flex;
 | 
 |  |  | 
 |  |  |           font-size: 48rpx;
 | 
 |  |  |           color: #FFFFFF;
 | 
 |  |  |           line-height: 66rpx;
 | 
 |  |  | 
 | 
 |  |  |         }
 | 
 |  |  |       }
 | 
 |  |  |     }
 | 
 
 |  |  | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     async loadTransportList() { | 
 |  |  |       let that = this | 
 |  |  |       { | 
 |  |  |                 let that = this; | 
 |  |  |         console.log('address', that.address, that.cacheAddressId) | 
 |  |  |         if (that.address && that.address.id && that.cacheAddressId !== that.address.id) { | 
 |  |  |           that.$message.showLoading() | 
 |  |  |           const {code, data} = await that.$http.request('post', '/api/customer/flower/order/confirm/transports', { | 
 |  |  |                     const { | 
 |  |  |                         code, | 
 |  |  |                         data | 
 |  |  |                     } = await that.$http.request('post', '/api/customer/flower/order/confirm/transports', { | 
 |  |  |             data: { | 
 |  |  |               addressId: that.address.id, | 
 |  |  |               weight: that.dto.totalWeight || 0 | 
 |  |  | 
 |  |  |             that.transportList = data || [] | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |     }, | 
 |  |  |     async submitOrder() { | 
 |  |  |       console.log('submitOrder', this.dto) | 
 |  |  | 
 |  |  |           console.log(res) | 
 |  |  |           if (res.code) { | 
 |  |  |             tmp.$message.showLoading() | 
 |  |  |             const {code, data} = await tmp.$http.request('post', '/api/customer/flower/order/commit', { | 
 |  |  |                             const { | 
 |  |  |                                 code, | 
 |  |  |                                 data | 
 |  |  |                             } = await tmp.$http.request('post', '/api/customer/flower/order/commit', { | 
 |  |  |               data: { | 
 |  |  |                 ...tmp.dto, | 
 |  |  |                 wxcode: res.code | 
 |  |  | 
 |  |  |               if (data && data['_testOrderId']) { | 
 |  |  |                 //回调 | 
 |  |  |                 tmp.$message.showLoading() | 
 |  |  |                 const res2 = await tmp.$http.request('get', '/api/customer/flower/order/callback/tmp', { | 
 |  |  |                                     const res2 = await tmp.$http.request('get', | 
 |  |  |                                         '/api/customer/flower/order/callback/tmp', { | 
 |  |  |                   params: { | 
 |  |  |                     id: res2.data['_testOrderId'] | 
 |  |  |                   } | 
 |  |  | 
 |  |  |           <view class="item-each m-t-12 flex"> | 
 |  |  |             <image class="img img100 m-r-6" :src="item.url||item.cover"></image> | 
 |  |  |             <view> | 
 |  |  |               <view class="title"><span class="m-r-5" style="display: inline-block;">{{item.categoryStr||''}}</span><span v-if="item.levelStr" class="m-r-5" style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ item.name || '-' }}</view> | 
 |  |  |                             <view class="title"><span class="m-r-5" | 
 |  |  |                                     style="display: inline-block;">{{item.categoryStr||''}}</span><span | 
 |  |  |                                     v-if="item.levelStr" class="m-r-5" | 
 |  |  |                                     style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ item.name || '-' }} | 
 |  |  |                             </view> | 
 |  |  |               <view class="price"> | 
 |  |  |                 {{ item.price || 0 }}*{{ item.num }}扎 | 
 |  |  |               </view> | 
 |  |  | 
 |  |  |       <view class="br-4 transform-container m-t-12 p10"> | 
 |  |  |         <view class="title"> | 
 |  |  |           <view>运输方式:</view> | 
 |  |  |           <view class="flex transform-list"> | 
 |  |  |             <view v-for="(transform,index) of transportList" :class="[transform.id===dto.transportId?'cur':'']" | 
 |  |  |                   :key="index" class="transform-item" @click="()=>{ | 
 |  |  |                     <view class="flex transform-list flex-wrap-normal"> | 
 |  |  |                         <view v-for="(transform,index) of transportList" | 
 |  |  |                             :class="[transform.id===dto.transportId?'cur':'']" :key="index" class="transform-item" | 
 |  |  |                             @click="()=>{ | 
 |  |  |                     dto.transportId = transform.id; | 
 |  |  |                     current_transport = transform | 
 |  |  |                   }"> | 
 |  |  | 
 |  |  |       <view class="desc flex"> | 
 |  |  |         <view>商品金额:</view> | 
 |  |  |         <view class="m-l-a m-r-0 text-right"> | 
 |  |  |           {{ (dto.totalAmount || 0) - (dto.packing) || 0 }} | 
 |  |  |                     {{ (dto.totalAmount || 0)  || 0 }} | 
 |  |  |         </view> | 
 |  |  |       </view> | 
 |  |  |       <view class="desc flex"> | 
 |  |  | 
 |  |  |       </view> | 
 |  |  |     </view> | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     <view style="min-height:200rpx"> | 
 |  |  |     </view> | 
 |  |  |     <view class="bottom-price flex"> | 
 |  |  |       <view class="m-t-12 m-l-0 m-r-a"> | 
 |  |  |         合计 <span class="t-red">¥ {{ (dto.totalAmount || 0) + (current_transport.fee || 0) || 0 }} </span>元 | 
 |  |  |                 合计 <span class="t-red">¥ | 
 |  |  |                     {{ (dto.totalAmount || 0) + (dto.packing || 0) + (current_transport.fee || 0) || 0 }} </span>元 | 
 |  |  |       </view> | 
 |  |  |       <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitOrder"> | 
 |  |  |         提交订单 | 
 |  |  | 
 |  |  |         border-radius: 8rpx; | 
 |  |  |         //min-height: 112rpx; | 
 |  |  |         border: 2rpx solid rgba(225, 240, 231, 0.38); | 
 |  |  |         padding: 14rpx; | 
 |  |  |                     padding: 10rpx; | 
 |  |  |         text-align: center; | 
 |  |  |         //margin: 0 auto; | 
 |  |  |         margin-left: 20rpx; | 
 |  |  |                     margin-left: 10rpx; | 
 |  |  |         margin-top: 10rpx; | 
 |  |  |         margin-right: auto; | 
 |  |  |         max-width: 32%; | 
 |  |  |         min-width: 120rpx; | 
 |  |  |                     width: 130rpx; | 
 |  |  |  | 
 |  |  |         .title { | 
 |  |  |           font-weight: 400; | 
 |  |  |           font-size: 28rpx; | 
 |  |  |                         font-size: 24rpx; | 
 |  |  |           color: #000000; | 
 |  |  |           line-height: 40rpx; | 
 |  |  |                         word-break: break-word; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         .price { | 
 |  |  |           font-weight: 600; | 
 |  |  |           font-size: 32rpx; | 
 |  |  |                         font-size: 30rpx; | 
 |  |  |           color: #20613D; | 
 |  |  |           //line-height: 44rpx; | 
 |  |  |         } | 
 
 |  |  | 
 |  |  |         <view v-for="(dto,j) of item.flowerList" :key="j"> | 
 |  |  |           <u-divider v-if="j>0"></u-divider> | 
 |  |  |           <u-swipe-action> | 
 |  |  |             <u-swipe-action-item | 
 |  |  |                 :options="options1" | 
 |  |  |                 @click="(e)=>{clickSwipeButton(dto)}" | 
 |  |  |             > | 
 |  |  |                         <u-swipe-action-item :options="options1" @click="(e)=>{clickSwipeButton(dto)}"> | 
 |  |  |               <view class="item-each flex"> | 
 |  |  |                 <radio :checked="ids.indexOf(dto.id)>=0" @click="changeItem(dto,'flower')"></radio> | 
 |  |  |                 <image class="img img100 m-r-6" :src="dto.url||dto.cover"></image> | 
 |  |  |                 <view class="flex1"> | 
 |  |  |                   <view class="title"><span class="m-r-5" style="display: inline-block;">{{item.categoryStr||''}}</span><span v-if="item.levelStr" class="m-r-5" style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ dto.name || '-' }}</view> | 
 |  |  |                                     <view class="title"><span class="m-r-5" | 
 |  |  |                                             style="display: inline-block;">{{item.categoryStr||''}}</span><span | 
 |  |  |                                             v-if="item.levelStr" class="m-r-5" | 
 |  |  |                                             style="display: inline-block;">{{ item.levelStr || '' }}</span>{{ dto.name || '-' }} | 
 |  |  |                                     </view> | 
 |  |  |                   <view class="price"> | 
 |  |  |                     {{ dto.price || '-' }}元/扎 | 
 |  |  |                   </view> | 
 |  |  | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$message.showLoading() | 
 |  |  |       const {code, data} = await http.request('post', '/api/customer/flower/order/confirm/info', { | 
 |  |  |                 const { | 
 |  |  |                     code, | 
 |  |  |                     data | 
 |  |  |                 } = await http.request('post', '/api/customer/flower/order/confirm/info', { | 
 |  |  |             data: { | 
 |  |  |               flowers: arr, | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |       ) | 
 |  |  |                 }) | 
 |  |  |       this.$message.hideLoading() | 
 |  |  |       if (code === 0) { | 
 |  |  |         this.$storage.setItem('_cache_shopping_dto',JSON.stringify(data)) | 
 |  |  | 
 |  |  |       //删除商品,重新加载数据? | 
 |  |  |  | 
 |  |  |       this.$message.showLoading() | 
 |  |  |       const {code} = await http.request('get', '/api/customer/flower/cart/delete', { | 
 |  |  |                 const { | 
 |  |  |                     code | 
 |  |  |                 } = await http.request('get', '/api/customer/flower/cart/delete', { | 
 |  |  |             params: { | 
 |  |  |               id: item.id, | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |       ) | 
 |  |  |                 }) | 
 |  |  |       this.$message.hideLoading() | 
 |  |  |       if (code === 0) { | 
 |  |  |         if (this.ids.indexOf(item.id) >= 0) { | 
 |  |  | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$message.showLoading() | 
 |  |  |       const {code} = await http.request('post', '/api/customer/flower/cart/change-num', { | 
 |  |  |                 const { | 
 |  |  |                     code | 
 |  |  |                 } = await http.request('post', '/api/customer/flower/cart/change-num', { | 
 |  |  |             data: { | 
 |  |  |               id: dto.id, | 
 |  |  |               num: addnum | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |       ) | 
 |  |  |                 }) | 
 |  |  |       this.$message.hideLoading() | 
 |  |  |       if (code === 0) { | 
 |  |  |         dto.num += addnum | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     async init() { | 
 |  |  |                 if (!this.currentInfo.id) { | 
 |  |  |                     this.$message.showToast('请先登录') | 
 |  |  |                     return | 
 |  |  |                 } | 
 |  |  |       if (!this.currentInfo.customerDTO) { | 
 |  |  |         this.$message.showToast('请先前往个人中心补充个人信息') | 
 |  |  |         return | 
 |  |  |       } | 
 |  |  |       this.$message.showLoading() | 
 |  |  |       await this.$store.dispatch('sign_clear', 'shopping'); | 
 |  |  |       const {code, data} = await this.$http.request('get', '/api/customer/flower/cart/list', {}) | 
 |  |  |                 const { | 
 |  |  |                     code, | 
 |  |  |                     data | 
 |  |  |                 } = await this.$http.request('get', '/api/customer/flower/cart/list', {}) | 
 |  |  |       this.$message.hideLoading() | 
 |  |  |       this.list = [] | 
 |  |  |       if (code === 0) { | 
 |  |  | 
 |  |  |     padding-left: 26rpx; | 
 |  |  |  | 
 |  |  |     .icon-clock { | 
 |  |  |       margin-top: 9rpx; | 
 |  |  |                 margin-top: 12rpx; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |         <view class="top-img-container">
 | 
 |  |  |             <image :src="dto.cover" class="top-img" mode="aspectFill"></image>
 | 
 |  |  |             <view class="icon-container">
 | 
 |  |  |                 <image src="../../../static/common/icon-sc.png" class="icon-sc"></image>
 | 
 |  |  |                 <image src="../../../static/common/icon-sc.png" @click="collectItem(dto)" class="icon-sc"></image>
 | 
 |  |  |                 <!--        <view class="num">12</view>-->
 | 
 |  |  |             </view>
 | 
 |  |  |             <view class="icon-container">
 | 
 |  |  | 
 |  |  |         <view class="info-brand m-t-12" @click.stop="openbrand">
 | 
 |  |  |             <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view>
 | 
 |  |  |             <view class="flex m-t-12">
 | 
 |  |  |                 <image class="store-logo"></image>
 | 
 |  |  |                 <image class="store-logo" :src="dto.supplierCover"></image>
 | 
 |  |  |                 <view>
 | 
 |  |  |                     <view class="store-name">{{dto.supplierName||'-'}}</view>
 | 
 |  |  |                     <view class="store-address">{{dto.supplierStation||'-'}}</view>
 | 
 |  |  |                     <view class="store-name t1">{{dto.supplierName||'-'}}</view>
 | 
 |  |  |                     <view class="store-address t1">{{dto.supplierStation||'-'}}</view>
 | 
 |  |  |                 </view>
 | 
 |  |  |                 <view class="store-to m-l-a m-r-0">进入店铺</view>
 | 
 |  |  |             </view>
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  |         },
 | 
 |  |  |         methods: {
 | 
 |  |  |             async collectItem(dto){
 | 
 |  |  |                 await this.$message.confirm('是否添加到收藏')
 | 
 |  |  |                 this.$message.showLoading()
 | 
 |  |  |                 const {
 | 
 |  |  |                     code,
 | 
 |  |  |                     data
 | 
 |  |  |                 } = await this.$http.request('post', '/api/collect/add', {
 | 
 |  |  |                     data: {
 | 
 |  |  |                         flowerId: dto.id
 | 
 |  |  |                     }
 | 
 |  |  |                 })
 | 
 |  |  |                 if (code === 0) {
 | 
 |  |  |                     this.$message.showToast('收藏成功')
 | 
 |  |  |                 }
 | 
 |  |  | 				 | 
 |  |  |                 this.$message.hideLoading()
 | 
 |  |  |             },
 | 
 |  |  |             async submitShopping(dto) {
 | 
 |  |  |                 //提交到购物车中
 | 
 |  |  |                 this.$message.showLoading()
 | 
 |  |  | 
 |  |  |                 font-size: 28rpx;
 | 
 |  |  |                 color: #CF0000;
 | 
 |  |  |                 line-height: 40rpx;
 | 
 |  |  |                 margin-top: -10rpx;
 | 
 |  |  | 
 | 
 |  |  |                 .num {
 | 
 |  |  |                     font-size: 48rpx;
 | 
 |  |  | 
 |  |  |                 position: absolute;
 | 
 |  |  |                 top: 20rpx;
 | 
 |  |  |                 width: 80rpx;
 | 
 |  |  |                 left: 40rpx;
 | 
 |  |  |                 height: 80rpx;
 | 
 |  |  |                 background: rgba(0, 0, 0, 0);
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             .icon-container:last-child {
 | 
 |  |  |                 left: 140rpx;
 | 
 |  |  |                 left: 100rpx;
 | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             .icon-container:first-child {
 | 
 |  |  |                 left: 40rpx;
 | 
 |  |  |             }
 | 
 |  |  |             // .icon-container:first-child {
 | 
 |  |  |             //     left: 40rpx;
 | 
 |  |  |             // }
 | 
 |  |  | 
 | 
 |  |  |         }
 | 
 |  |  |     }
 | 
 
 |  |  | 
 |  |  |         <view class="category-detail flex" v-if="query.category">
 | 
 |  |  |             <view class="flex1 info">
 | 
 |  |  |                 <view class="title flex">
 | 
 |  |  |                     <view>{{categoryInfo.name||'-'}}</view>
 | 
 |  |  |                     <view>
 | 
 |  |  |                     {{categoryInfo.name||'-'}}
 | 
 |  |  |                         <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
 | 
 |  |  | 
 | 
 |  |  |                     </view>
 | 
 |  |  |                 </view>
 | 
 |  |  |                 <view class="desc">
 | 
 |  |  |                     规格:{{categoryInfo.unit}}
 | 
 |  |  |                     规格:{{categoryInfo.unit || '暂无'}}
 | 
 |  |  |                 </view>
 | 
 |  |  |                 <view class="desc">
 | 
 |  |  |                     颜色:{{categoryInfo.color}}
 | 
 |  |  |                     颜色:{{categoryInfo.color || '暂无'}}
 | 
 |  |  |                 </view>
 | 
 |  |  |             <!--     <view class="desc">
 | 
 |  |  |                     包袋:棉袋
 | 
 |  |  | 
 |  |  |             </view>
 | 
 |  |  |             <view class="info-price">
 | 
 |  |  |                 <view class="title">当日均价</view>
 | 
 |  |  |                 <view class="price">19.66</view>
 | 
 |  |  |                 <view class="price">{{categoryInfo.avePrice||'暂无'}}</view>
 | 
 |  |  |                 <view class="flex desc">
 | 
 |  |  |                     <view class="m-l-a m-r-5">+0.76</view>
 | 
 |  |  |                     <view class="m-r-a m-l-5">+4.02%</view>
 | 
 |  |  |                     <view class="m-l-a m-r-5">{{categoryInfo.avePriceDifference&&categoryInfo.avePriceDifference>=0?'+':''}}{{categoryInfo.avePriceDifference||0}}</view>
 | 
 |  |  |                     <view class="m-r-a m-l-5">{{categoryInfo.avePriceDifferenceRate&&categoryInfo.avePriceDifferenceRate>=0?'+':''}}{{categoryInfo.avePriceDifferenceRate||0}}%</view>
 | 
 |  |  |                 </view>
 | 
 |  |  |             </view>
 | 
 |  |  |         </view>
 | 
 |  |  |         <view class="" style="min-height: calc(100vh - 260rpx);">
 | 
 |  |  |             <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data>
 | 
 |  |  |             <view v-else>
 | 
 |  |  |             <view>
 | 
 |  |  |                 <!-- 查询条件 -->
 | 
 |  |  |                 <view class="component-filter-container">
 | 
 |  |  |                     <view class="flex1" @click.stop="order_show=true">
 | 
 |  |  |                         {{ this.query.columnStr || '排序' }}
 | 
 |  |  |                         {{ query.columnStr || '排序' }}
 | 
 |  |  |                         <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
 | 
 |  |  |                     </view>
 | 
 |  |  |                     <view class="flex1" @click.stop="level_show=true">
 | 
 |  |  |                         {{ this.query.levelStr || '级别' }}
 | 
 |  |  |                         {{ query.levelStr || '级别' }}
 | 
 |  |  |                         <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
 | 
 |  |  |                     </view>
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |                     </view>
 | 
 |  |  |                 </view>
 | 
 |  |  |             </view>
 | 
 |  |  |             <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data>
 | 
 |  |  | 
 | 
 |  |  |             <view class="component-shop-item flex" v-for="(item,index) of list" :key="index">
 | 
 |  |  |                 <view class="img" @click.stop="toDetail(item)">
 | 
 |  |  |                     <image class="img img100"
 | 
 |  |  |                         src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png">
 | 
 |  |  |                         :src="item.cover">
 | 
 |  |  |                     </image>
 | 
 |  |  |                     <view class="level">
 | 
 |  |  |                         {{levelStr||''}}
 | 
 |  |  |                         {{item.levelStr||''}}
 | 
 |  |  |                     </view>
 | 
 |  |  |                 </view>
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |                         </view>
 | 
 |  |  |                         <view class="other-info flex">
 | 
 |  |  |                             <view class="m-r-15">
 | 
 |  |  |                                 已售:{{item.sales}}
 | 
 |  |  |                                 已售:{{item.sales||0}}
 | 
 |  |  |                             </view>
 | 
 |  |  |                             <view class="m-r-15">
 | 
 |  |  |                                 剩余:{{item.stock}}
 | 
 |  |  |                                 剩余:{{item.stock||0}}
 | 
 |  |  |                             </view>
 | 
 |  |  |                             <view class="m-r-15">
 | 
 |  |  |                                 {{item.unit}}
 | 
 |  |  | 
 |  |  |             }).then(res => {
 | 
 |  |  |                 var data = res.data
 | 
 |  |  |                 this.level_columns = [data || []]
 | 
 |  |  |                 this.columns_levels[0].unshift({
 | 
 |  |  |                 this.level_columns[0].unshift({
 | 
 |  |  |                     label: '全部',
 | 
 |  |  |                     value: ''
 | 
 |  |  |                 })
 | 
 |  |  | 
 |  |  |             },
 | 
 |  |  |             select_level(e) {
 | 
 |  |  |                 this.level_show = false
 | 
 |  |  |                 console.log('select_level',e)
 | 
 |  |  |                 this.query.levelStr = e.value[0].label
 | 
 |  |  |                 this.query.level = e.value[0].value
 | 
 |  |  |                 this.refreshList('post')
 | 
 |  |  | 
 |  |  |                     font-weight: 600;
 | 
 |  |  |                     font-size: 36rpx;
 | 
 |  |  |                     color: #000000;
 | 
 |  |  |                     line-height: 50rpx;
 | 
 |  |  |                     line-height: 44rpx;
 | 
 |  |  |                 }
 | 
 |  |  | 
 | 
 |  |  |                 .icon-kf {
 | 
 
 |  |  | 
 |  |  |                         <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>
 |