xuxueyang
2024-08-06 623859790a3f074c103c792e5eaca33b199dbb91
pages/user/supplier-user.vue
@@ -1,8 +1,8 @@
<template>
   <view class="main-container user-container">
      <!--       <view>
         我的
      </view> -->
      我的
    </view> -->
      <!-- 背景图 -->
      <view class="top-bg img100 relative" :style="{'padding-top':(StatusBar)+'px','line-height':CustomBar+'rpx' }">
         <image class="component-bg"
@@ -16,39 +16,56 @@
         <!-- v-if="currentInfo&&(currentInfo.id)" -->
         <view class="flex user-info">
            <!-- 头像 -->
            <image class="user-icon" v-if="!currentInfo.picture" src="../../static/imgs/home/home-shop-top-icon.png"
               mode="aspectFit"></image>
            <image class="user-icon" v-if="currentInfo.picture" :src="currentInfo.picture" mode="aspectFit"></image>
            <image class="user-icon" v-if="
               currentInfo.customerDTO&&currentInfo.customerDTO.cover
               ||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover
               || currentInfo.picture
               " :src="
               currentInfo.customerDTO&&currentInfo.customerDTO.cover
               ||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover
               || currentInfo.picture
               " mode="scaleToFill"></image>
            <image class="user-icon" v-else
               src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png'
               mode="scaleToFill"></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&&currentInfo.supplierDTO.status!=='P'">
                     ({{currentInfo.supplierDTO?currentInfo.supplierDTO.statusStr:''}})</span>
               <view class="t1">
                  {{
              (!!currentInfo.partnerDTO ? (currentInfo.partnerDTO.name) : "") ||  (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
            }}
                  <span v-if="currentInfo.supplierDTO&&currentInfo.supplierDTO.status!=='P'">
                     ({{ currentInfo.supplierDTO ? currentInfo.supplierDTO.statusStr : '' }})</span>
                  <span v-if="currentInfo.partnerDTO&&currentInfo.partnerDTO.status!=='P'">
                     ({{ currentInfo.partnerDTO ? currentInfo.partnerDTO.statusStr : '' }})</span>
               </view>
               <view class="t2">{{currentInfo.tel || '暂无电话'}}</view>
               <view class="t2">{{ currentInfo.tel || '暂无电话' }}</view>
            </view>
            <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="getUserProfile" style="font-size: 48rpx;margin-top: 16rpx;">
               {{'点击登陆'}}
            <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="toCustomerLogin"
               style="font-size: 48rpx;margin-top: 16rpx;">
               <!-- getUserProfile -->
               {{ '点击登陆/注册' }}
            </view>
            <image class="icon-setting" src="../../static/common/icon-setting.png" mode="aspectFit"></image>
            <image class="icon-setting" @click="toInfo" src="../../static/common/icon-setting.png" mode="aspectFit">
            </image>
         </view>
         <!-- #ifdef PUB_CUSTOMER -->
         <view class="customer-info-records">
            <view class="item">
               <view class="num">59</view>
            <view class="item" @click="goto('/sub_pages/customer/self/collect',true)">
               <view class="num">{{ tj.collectNum || 0 }}
               </view>
               <view class="name">我的收藏</view>
            </view>
            <view class="line"></view>
            <view class="item">
               <view class="num">5</view>
            <view class="item" @click="goto('/sub_pages/customer/self/follow',true)">
               <view class="num">{{ tj.followNum || 0 }}
               </view>
               <view class="name">关注店铺</view>
            </view>
            <view class="line"></view>
            <view class="item">
               <view class="num">87</view>
            <view class="item" @click="goto('/sub_pages/customer/self/history',true)">
               <view class="num">{{ tj.browseNum || 0 }}</view>
               <view class="name">浏览记录</view>
            </view>
         </view>
@@ -61,27 +78,32 @@
         <view class="user-util m-t-12">
            <view class="title flex">
               <view class="flex1">我的订单</view>
               <view class="m-r-a m-r-0 more">全部订单<uni-icons class="" type="right"
                     size="12"></uni-icons></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>
               </view>
            </view>
            <view class="flex order-icons-container">
               <view class="order-icons">
                  <image src="../../static/images/customer/order/order-type-1.png" class="order-icon dfk"></image>
               <view class="order-icons" style="position: relative;"
                  @click="goto('/pages/order/order?status=PENDING',true)">
                  <image src="../../static/images/customer/order/order-type-1.png" class="order-icon dfk"
                     style="position: relative;">
                     <view class="image-shop-number" v-if="order_pendding_num">{{order_pendding_num||''}}</view>
                  </image>
                  <view>待付款</view>
               </view>
               <view class="order-icons">
               <view class="order-icons" @click="goto('/pages/order/order?status=SEND',true)">
                  <image src="../../static/images/customer/order/order-type-2.png" class="order-icon dfh"></image>
                  <view>待发货</view>
               </view>
               <view class="order-icons">
               <view class="order-icons" @click="goto('/pages/order/order?status=RECEIVE',true)">
                  <image src="../../static/images/customer/order/order-type-3.png" class="order-icon dsh"></image>
                  <view>待收货</view>
               </view>
               <view class="order-icons">
               <view class="order-icons" @click="goto('/pages/order/order?status=EVALUATE',true)">
                  <image src="../../static/images/customer/order/order-type-4.png" class="order-icon dpj"></image>
                  <view>待评价</view>
               </view>
               <view class="order-icons">
               <view class="order-icons" @click="goto('/pages/order/order-sale/order-sale',true)">
                  <image src="../../static/images/customer/order/order-type-5.png" class="order-icon sh"></image>
                  <view>售后</view>
               </view>
@@ -94,12 +116,12 @@
               <view>我的服务</view>
            </view>
            <view class="flex service-icons-container">
               <view class="service-icons">
               <view class="service-icons" @click="goto('/sub_pages/customer/self/follow',true)">
                  <image src="../../static/images/customer/service/service-icon-1.png" class="service-icon ">
                  </image>
                  <view>关注店铺</view>
               </view>
               <view class="service-icons">
               <view class="service-icons" @click="goto('/sub_pages/customer/self/collect',true)">
                  <image src="../../static/images/customer/service/service-icon-2.png" class="service-icon ">
                  </image>
                  <view>我的收藏</view>
@@ -109,23 +131,26 @@
                  </image>
                  <view>地址管理</view>
               </view>
               <view class="service-icons">
               <view class="service-icons" @click="goto('/pages/help/content?id=售后规则',false)">
                  <image src="../../static/images/customer/service/service-icon-4.png" class="service-icon ">
                  </image>
                  <view>售后规则</view>
               </view>
            </view>
            <view class="flex service-icons-container">
               <view class="service-icons">
               <view class="service-icons" @click="goto('/pages/help/content?id=新手帮助',false)">
                  <image src="../../static/images/customer/service/service-icon-5.png" class="t2 service-icon ">
                  </image>
                  <view>新手帮助</view>
               </view>
               <view class="service-icons">
               <!--          <view class="service-icons" @click.stop="$meesage.showToast('敬请期待')">
                  <image src="../../static/images/customer/service/service-icon-6.png" class="t2 service-icon ">
                  </image>
                  <view>运费详查</view>
               </view>
               </view> -->
               <view class="service-icons"></view>
               <view class="service-icons"></view>
               <view class="service-icons"></view>
            </view>
@@ -133,8 +158,51 @@
      </view>
      <!-- #endif -->
      <view class="user-utils m-20">
         <view class="user-util m-t-12 flex" @click="goto('/pages/user/user-info/user-info',true)">
         <view class="user-util m-t-12 flex" v-if="selftype==='customer'||!selftype"
            @click="goto('/sub_pages/customer/customer-info/customer-info',true)">
            <view class="title">个人信息</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <view class="user-util m-t-12 flex" v-if="selftype==='partner'"
            @click="goto('/sub_pages/partner/partner-info/partner-info',true)">
            <view class="title">合伙人信息</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <!-- #ifdef PUB_PARTNER -->
         <view class="user-util m-t-12 flex"
            v-if="selftype==='partner'&&currentInfo.partnerDTO&&currentInfo.partnerDTO.id&&currentInfo.partnerDTO.status=='P'"
            @click="goto('/sub_pages/partner/partner-info/partner-code',true)">
            <view class="title">推广的注册二维码</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <!--    <view class="user-util m-t-12 flex" v-if="selftype==='partner'"
            @click="goto('/sub_pages/partner/partner-info/partner-code-v2',true)">
            <view class="title">测试二维码</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view> -->
         <!-- #endif -->
         <!-- #ifdef PUB_CUSTOMER -->
         <view class="user-util m-t-12 flex"
            v-if="(selftype==='customer'||!selftype)&&currentInfo.id&&currentInfo.customerDTO&&!currentInfo.customerDTO.partnerId"
            @click="scanPartnerCode">
            <view class="title">扫码绑定合伙人</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <!-- #endif -->
         <view class="user-util m-t-12 flex"
            v-if="selftype==='supplier'&&currentInfo&&currentInfo.id&&currentInfo.supplierDTO&&currentInfo.supplierDTO.status==='P'"
            @click="goto('/sub_pages/supplier/supplier-info/supplier-info-update',true)">
            <view class="title">信息维护</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
@@ -146,38 +214,99 @@
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <view class="user-util m-t-12 flex" @click="goto('/pages/user/user-pwd/user-pwd',true)">
            <view class="title">修改密码</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <view class="user-util m-t-12 " @click="callTel"
            v-if="selftype==='supplier'||selftype==='customer' || !selftype">
         <view class="user-util m-t-12 flex" v-if="currentInfo&&currentInfo.id"
            @click="goto('/pages/user/user-bind-wx/user-bind-wx',true)">
            <view class="title">绑定当前微信</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <view class="user-util m-t-12 flex" v-if="selftype==='customer'" @click="clearlogout">
            <view class="title">退出登录</view>
            <view class="right-icon">
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype">
            <view class="title">我的客服</view>
            <view class="flex">
            <view class="flex flex-wrap-normal">
               <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image>
               <view class="name">
                  客服电话 : &nbsp;&nbsp; <span class="topic-gray">{{tel}}</span>
               </view>
               <!-- @click="callTel" -->
               <button open-type="contact" class="component-button-contact" @handleContact="handleContact">
                  <view class="name">
                     客服电话 : &nbsp;&nbsp; <span class="topic-gray">{{ tel }}</span>
                  </view>
                  <view class="right-icon">
                     <uni-icons type="right"></uni-icons>
                  </view>
               </button>
            </view>
         </view>
         <!--          <view class="user-util m-t-12 " @click="callTel" v-if="selftype==='partner'">
            <view class="name">
               账号: <span class="topic-gray">{{tel}}</span>
            </view>
            <view class="name">
               密码: <span class="topic-gray">{{tel}}</span>
            </view>
         </view> -->
        <view class="name">
          账号: <span class="topic-gray">{{tel}}</span>
        </view>
        <view class="name">
          密码: <span class="topic-gray">{{tel}}</span>
        </view>
      </view> -->
      </view>
      <!-- #ifdef PUB_CUSTOMER -->
      <view style="padding-bottom:200rpx">
      </view>
      <common-footer flg="3"></common-footer>
      <uni-popup ref="popup_info" type="bottom">
         <view class="popup-form">
            <view class="infocontainar">
               <cu-custom bgColor="none" :isBack="false">
                  <block slot="content"><span style="color: #333;font-weight: 400;">获取用户头像、昵称</span></block>
               </cu-custom>
               <view class="avatarUrl">
                  <button type="balanced" open-type="chooseAvatar" @chooseavatar="onChooseavatar">
                     <image :src="regAvatarUrl" class="refreshIcon"></image>
                  </button>
               </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" />
               </view>
               <view style="width: 100%;height: 1px; background: #EEE;">
               </view>
               <view style="width: 700rpx; height: 20px; font-size: 13px; margin: auto; margin-top: 40rpx;">
                  · 申请获取以下权限
               </view>
               <view
                  style="width: 700rpx; height: 20px; font-size: 13px; margin: auto; color: #cbcbcb; margin-top: 25rpx;">
                  · 获得你的信息(昵称、头像等)
               </view>
               <view class="btn">
                  <view @click="onWxCheckSubmit" class="button-green">保存</view>
               </view>
            </view>
         </view>
      </uni-popup>
      <!-- #endif -->
      <!-- #ifndef PUB_CUSTOMER -->
      <view class="button-login-out topic-gray" @click="clearlogout">
@@ -188,7 +317,6 @@
      </view>
      <common-footer flg="1"></common-footer>
      <!-- #endif -->
   </view>
@@ -203,13 +331,74 @@
            tcode: '',
            inviterName: '',
            // StatusBar:0,
            tel: '15974805814'
            tel: '15974805814',
            tj: {},
            cacheUserId: '',
            order_pendding_num: 0,
         };
      },
      // #ifndef PUB_CUSTOMER
      onShareAppMessage() {
         let that = this;
         var name = that.currentInfo.customerDTO && currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
            currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && currentInfo.partnerDTO.name || ''
         var url =
            `/pages/login/supplier-login?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/login/supplier-login?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
         return {
            title: "花满芫",
            path: url,
         }
      },
      // #endif
      // #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
      onShow() {
         this.getTj()
      },
      onLoad(options) {
         const url = options.q ? decodeURIComponent(options.q) : '';
         const urlcode = options.url && decodeURIComponent(options.url) || ''
         // const url = options.q ? decodeURIComponent(options.q) : '';
         // const urlcode = options.url && decodeURIComponent(options.url) || ''
         // #ifdef PUB_CUSTOMER
         if (options.partnerUserId) {
            this.bindPartnerUser(options.partnerUserId, options.partnerUserName)
         }
         // #endif
      },
      created() {
@@ -219,6 +408,125 @@
         uni.stopPullDownRefresh()
      },
      methods: {
         async bindPartnerUser(userId, name) {
            // await this.$message.confirm(`确定要绑定${name}合伙人吗?`)
            //调用接口绑定
            this.$message.showLoading()
            const {
               code,
               data
            } = await this.$http.request('post', '/api/customer/bind/partner', {
               data: {
                  partnerUserId: userId
               }
            })
            this.$message.hideLoading()
            if (code == 0) {
               this.$message.showToast(`绑定合伙人${name}成功`)
               await this.$store.dispatch('getCurrentInfo')
            }
         },
         async scanPartnerCode() {
            //扫二维码确认
            let that = this
            uni.scanCode({
               success: async function(res) {
                  console.log('条码内容:' + res.result);
                  if (!res.result) {
                     that.$message.showToast('未识别出合伙人信息,如果是微信小程序二维码,请微信扫码打开')
                     return
                  }
                  var dto = undefined
                  try {
                     if (res.result && (res.result.startsWith('https://') || res.result.startsWith(
                           'http://')) && res.result.indexOf(
                           'partnerUserId') >= 0) {
                        var arr = res.result.split("?")[1].split("&")
                        dto = {}
                        for (var item of arr) {
                           var tarr = item.split("=")
                           // console.log('tarr',tarr)
                           if (tarr[1]) {
                              dto[tarr[0]] = tarr[1]
                           }
                        }
                        dto['name'] = dto['partnerUserName'] || ''
                        dto['userId'] = dto['partnerUserId'] || ''
                        // console.log('tmp arr',arr,dto)
                     } else {
                        dto = JSON.parse(res.result)
                     }
                     if (!!dto['userId']) {
                        var partnerName = dto['name'] || ''
                        var partnerId = dto['userId'] || ''
                        that.bindPartnerUser(partnerId, partnerName)
                     } else {
                        that.$message.showToast('二维码格式不正确扫码失败')
                     }
                  } catch (e) {
                     console.log('e', e)
                     that.$message.showToast('二维码扫码错误')
                  }
               },
               fail() {
                  that.$message.showToast('扫码失败')
               }
            });
         },
         toInfo() {
            var url = ''
            if (this.currentInfo.id) {
               // #ifdef PUB_CUSTOMER
               url = '/sub_pages/customer/customer-info/customer-info'
               // #endif
               // #ifdef PUB_PARTNER
               url = '/sub_pages/partner/partner-info/partner-info'
               // #endif
               // #ifdef PUB_SUPPLIER
               url = '/sub_pages/supplier/supplier-info/supplier-info'
               // #endif
               if (url) {
                  uni.navigateTo({
                     url: url
                  })
               }
            }
         },
         getTj() {
            // /api/supplier/delivery
            if (this.currentInfo.id && this.currentInfo.id !== this.cacheUserId) {
               this.cacheUserId = this.currentInfo.id
               let that = this
               setTimeout(() => {
                  // #ifdef PUB_CUSTOMER
                  this.$http.request('get', '/api/customer/center/tj', {}).then(res => {
                     if (res.code === 0) {
                        that.tj = res.data || {}
                     }
                  })
                  //获取待支付数目
                  this.$http.request('get', '/api/customer/order/count/pending', {
                     params: {}
                  }).then(res => {
                     if (res.code === 0) {
                        that.order_pendding_num = res.data || 0
                     }
                  })
                  // #endif
               }, 200)
            }
         },
         async clearlogout() {
            await this.$message.confirm('是否退出登录?')
@@ -233,9 +541,12 @@
            uni.makePhoneCall({
               phoneNumber: this.tel //仅为示例
            });
         }
         },
         toCustomerLogin() {
            uni.navigateTo({
               url: '/pages/login/supplier-login'
            })
         },
      }
   }
</script>