xuxueyang
2024-08-04 8b0c13b27b2ea6d98f5769bb4658327bf17afa8e
pages/user/supplier-user.vue
@@ -17,45 +17,54 @@
         <view class="flex user-info">
            <!-- 头像 -->
            <image class="user-icon" v-if="currentInfo.picture
               ||currentInfo.customerDTO&&currentInfo.customerDTO.cover
            <image class="user-icon" v-if="
               currentInfo.customerDTO&&currentInfo.customerDTO.cover
               ||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover
               " :src="currentInfo.picture
               ||currentInfo.customerDTO&&currentInfo.customerDTO.cover
               ||currentInfo.supplierDTO&&currentInfo.supplierDTO.cover" mode="aspectFit"></image>
               || 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="aspectFit"></image>
               mode="scaleToFill"></image>
            <view class="name" v-if="currentInfo.id">
               <view class="t1">
                  {{
              (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
            }}<span v-if="currentInfo.supplierDTO&&currentInfo.supplierDTO.status!=='P'">
              (!!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>
            <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">{{ tj.collectNum || 0 }}</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">{{ tj.followNum || 0 }}</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="item" @click="goto('/sub_pages/customer/self/history',true)">
               <view class="num">{{ tj.browseNum || 0 }}</view>
               <view class="name">浏览记录</view>
            </view>
@@ -74,8 +83,12 @@
               </view>
            </view>
            <view class="flex order-icons-container">
               <view class="order-icons" @click="goto('/pages/order/order?status=PENDING',true)">
                  <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" @click="goto('/pages/order/order?status=SEND',true)">
@@ -90,7 +103,7 @@
                  <image src="../../static/images/customer/order/order-type-4.png" class="order-icon dpj"></image>
                  <view>待评价</view>
               </view>
               <view class="order-icons" @click="goto('/pages/order/order?status=COMPLETED',true)">
               <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>
@@ -118,26 +131,26 @@
                  </image>
                  <view>地址管理</view>
               </view>
               <view class="service-icons"  @click="goto('/pages/help/content?id=售后规则',false)">
               <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"  @click="goto('/pages/help/content?id=新手帮助',false)">
               <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" @click.stop="$meesage.showToast('敬请期待')">
               <!--          <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 class="service-icons"></view>
               <view class="service-icons"></view>
               <view class="service-icons"></view>
            </view>
@@ -145,7 +158,8 @@
      </view>
      <!-- #endif -->
      <view class="user-utils m-20">
         <view class="user-util m-t-12 flex" @click="goto('/sub_pages/customer/customer-info/customer-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>
@@ -158,6 +172,40 @@
               <uni-icons type="right"></uni-icons>
            </view>
         </view>
         <!-- #ifdef PUB_PARTNER -->
         <view class="user-util m-t-12 flex" v-if="selftype==='partner'"
            @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>
         </view>
         <view class="user-util m-t-12 flex" v-if="selftype==='supplier'"
            @click="goto('/sub_pages/supplier/supplier-info/supplier-info',true)">
            <view class="title">店铺信息</view>
@@ -165,22 +213,41 @@
               <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 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" @click="callTel">
                  客服电话 : &nbsp;&nbsp; <span class="topic-gray">{{ tel }}</span>
               </view>
               <view class="right-icon" open-type="contact">
                  <uni-icons type="right"></uni-icons>
               </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'">
@@ -265,25 +332,71 @@
            // StatusBar:0,
            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 && 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,
         }
      },
      // #endif
      // #ifdef 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/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
         return {
            title: "花满芫",
            path: url,
         }
      },
      onShareTimeline() {
         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/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) || ''
         // #ifdef PUB_CUSTOMER
         if (this.currentInfo.id) {
            let that = this
            setTimeout(() => {
               this.$http.request('get', '/api/customer/center/tj', {}).then(res => {
                  if (res.code === 0) {
                     that.tj = res.data || {}
                  }
               })
            }, 200)
         if (options.partnerUserId) {
            this.bindPartnerUser(options.partnerUserId, options.partnerUserName)
         }
         // #endif
      },
      created() {
@@ -294,6 +407,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('是否退出登录?')