xuxueyang
2024-08-04 55f5543d41569f7c42f50799b2200393ffd5b31a
pages/login/supplier-reg.vue
@@ -1,8 +1,11 @@
<template>
   <view>
      <view v-if="source==='step'" style="padding: 20rpx 0rpx;color: red;;background-color: #e6e6e6;">
         <!-- #ifdef PUB_PARTNER -->
         <view style="padding: 20rpx;text-align: center;background-color: #fff;">仅限花满芫合伙人入驻</view>
         <view v-if="source==='step'" class="" style="background-color: #fff;margin-top: 20rpx;padding: 20rpx;">
         <!-- #endif -->e
         <view v-if="source==='step'" class="" style="background-color:#ffffff;padding: 20rpx;padding-top: 60rpx;">
            <u-steps current="1">
               <u-steps-item title="信息填写" class="u-steps-item">
               </u-steps-item>
@@ -10,7 +13,7 @@
            </u-steps>
         </view>
      </view>
      <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
         <image class="component-bg"
@@ -32,42 +35,55 @@
                  <view class="t-a titles-top">
                     <view class="title-1">HELLO</view>
                     <view class="title-2">欢迎入驻<span class="title-3">花满芫</span></view>
                     <!-- #ifdef PUB_CUSTOMER -->
                     <view class="title-2">{{!partnerId?'未绑定合伙人':`已绑定合伙人-${partnerName}`}}</view>
                     <!-- #endif -->
                  </view>
                  <!-- #ifdef PUB_CUSTOMER -->
                  <view class="t-a form-input">
                     <u-input placeholder="请输入店铺名称" :border="false" v-model="regCustomerName"></u-input>
                  </view>
                  <!-- #endif -->
                  <view class="t-a form-input" v-if="loginType=='code'">
                     <u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber">
                        <template slot="suffix">
                           <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
                              {{getCodeText}}
                              {{ getCodeText }}
                           </view>
                        </template>
                     </u-input>
                     <!-- <u-input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber"
                     style="position: relative;z-index: 1;" /> -->
                  </view>
                  <view class="t-a form-input" v-if="loginType=='code'">
                     <!--       <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode"
                     style="position: relative;z-index: 1;" /> -->
                  <view class="t-a form-input">
                     <u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input>
                  </view>
                  <view class="t-a form-input" v-if="loginType=='code'">
                     <!-- <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" /> -->
                     <u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
                  </view>
                  <button @tap="login()" class="bottom-button">注 册</button>
                  <!-- #ifndef PUB_CUSTOMER -->
                  <button @tap="reg('')" class="bottom-button">注 册</button>
                  <!-- #endif -->
                  <!-- #ifdef PUB_CUSTOMER -->
                  <!--            open-type="getUserInfo"-->
                  <button @tap="wxreg('')" class="bottom-button">注 册</button>
                  <!-- #endif -->
                  <view class="flex">
                     <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回填写</view>
                     <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回上一步
                     </view>
                     <!-- #ifdef PUB_CUSTOMER -->
                     <!-- v-if="source==='step'" -->
                     <view class="topic-font m-l-0 m-r-a" @click="scanPartnerCode">扫码绑定合伙人
                     </view>
                     <!-- #endif -->
                     <view class="topic-font m-l-a m-r-0" @click="toLogin">前往登录</view>
                  </view>
                  <view class="flex flex-wrap-normal"
                     style="position: fixed;bottom: 40rpx;left: 40rpx;right: 40rpx;" v-if="false">
@@ -98,7 +114,8 @@
            phoneNumber: '',
            smsCode: '',
            partnerId: '',
            partnerName: '',
            checked: false,
            loginType: 'code', //pwd和code,密码和验证码登录
            pcfvalue: undefined,
@@ -107,6 +124,7 @@
            getCodeisWaiting: false,
            Timer: undefined,
            protocal: false,
            regCustomerName: '',
            source: '',
            // #ifdef PUB_SUPPLIER
            apitype: 'supplier',
@@ -114,14 +132,80 @@
            // #ifdef PUB_PARTNER
            apitype: 'partner',
            // #endif
            // #ifdef PUB_CUSTOMER
            apitype: 'customer',
            // #endif
         };
      },
      onLoad(options) {
         this.source = options.source || ''
         // #ifdef PUB_CUSTOMER
         var tjson = this.$storage.getItem('cache_customer_info')
         if (tjson) {
            var dto = JSON.parse(tjson)
            if (dto.partnerUserId) {
               this.partnerId = dto.partnerUserId || ''
               this.partnerName = dto.partnerUserName || '佚名'
            }
         }
         if (options.partnerUserId) {
            this.partnerId = options.partnerUserId || ''
            if (options.partnerUserName) {
               this.partnerName = options.partnerUserName || '佚名'
            }
         }
         // #endif
      },
      methods: {
         backInfoPage(){
         async scanPartnerCode() {
            // await this.$message.confirm('确定要绑定合伙人吗?')
            //扫二维码确认
            let that = this
            uni.scanCode({
               success: async function(res) {
                  console.log('条码内容:' + res.result);
                  var dto = undefined
                  try {
                     if (res.result && (res.result.startsWith('http://') || res.result.startsWith(
                           'https://')) && res.result.indexOf(
                           'partnerUserId') >= 0) {
                        var arr = res.result.split("?")[1].split("&")
                        dto = {}
                        for (var item of arr) {
                           var tarr = item.split("=")
                           if (tarr[1]) {
                              dto[tarr[0]] = tarr[1]
                           }
                        }
                        dto['name'] = dto['partnerUserName'] || ''
                        dto['userId'] = dto['partnerUserId'] || ''
                     } else {
                        dto = JSON.parse(res.result)
                     }
                     if (!!dto['userId']) {
                        that.partnerName = dto['name'] || ''
                        that.partnerId = dto['userId'] || ''
                        that.$message.showToast(`绑定合伙人${that.partnerName}成功`)
                     } else {
                        that.$message.showToast('二维码格式不正确扫码失败')
                     }
                  } catch (e) {
                     that.$message.showToast('二维码格式不正确扫码失败')
                  }
               },
               fail() {
                  that.$message.showToast('扫码失败')
               }
            });
         },
         backInfoPage() {
            console.log('backInfoPage')
            uni.navigateBack()
         },
@@ -161,7 +245,7 @@
                  userType: this.apitype
               }
            })
            if (code == 0) {
            if (code === 0) {
               uni.showToast({
                  title: '验证码已发送',
                  icon: "none"
@@ -206,7 +290,44 @@
         changeAll(e) {
            this.pcfvalue = e.detail.value[0]
         },
         async login() {
         // async wxreg(e) {
         //   wx.login({
         //     success: async res => {
         //       if (res.code) {
         //
         //       }
         //     },
         //     fail() {
         //       this.$message.showToast('获取微信信息失败')
         //     }
         //   })
         // },
         wxreg(e) {
            let tmp = this
            wx.login({
               success: async res => {
                  console.log(res)
                  if (res.code) {
                     tmp.reg(res.code)
                  } else {
                     tmp.$message.showToast('微信登录失败');
                  }
               },
               error: res => {
                  console.log('wx.login error', res)
                  tmp.$message.showToast('获取微信信息失败:' + res);
               }
            });
         },
         async reg(wxcode) {
            // console.log('e', e)
            // this.$message.showLoading()
            // const res = await wx.getUserProfile({
            //   desc: '用于完善会员资料',
            // });
            // console.log(res);
            // this.$message.hideLoading()
            uni.showLoading({
               title: '登陆中'
            });
@@ -232,6 +353,12 @@
               });
               return;
            }
            // #ifdef PUB_CUSTOMER
            if (!that.regCustomerName) {
               this.$message.showToast('店铺名称未填写')
               return
            }
            // #endif
            // if (this.pcfvalue == undefined) {
            //    util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
            //    return;
@@ -243,24 +370,42 @@
               type: this.apitype
               // openId: '123456789'
            }
            if (this.source == 'step') {
               var tjson = this.$storage.getItem('cache_partner_info')
            if (this.source === 'step') {
               var tjson = ''
               // #ifdef PUB_PARTNER
               tjson = this.$storage.getItem('cache_partner_info')
               // #endif
               // #ifdef PUB_CUSTOMER
               tjson = this.$storage.getItem('cache_customer_info')
               // #endif
               if (!tjson) {
                  this.$message.showToast('没有合伙人信息请返回重新填写')
                  this.$message.showToast('没有填写用户信息请返回重新填写')
                  return
               }
               var dto = JSON.parse(tjson)
               // dto.partnerId = this.partnerId || undefined
               dto.partnerUserId = this.partnerId || undefined
               post.dto = dto
            } else {
               // #ifdef PUB_CUSTOMER
               var dto = {}
               dto.partnerUserId = this.partnerId || undefined
               dto.name = this.regCustomerName || ''
               post.dto = dto
               // #endif
            }
            post.wxcode = wxcode
            console.log('reg dto', post)
            // const {
            // code
            // } = await this.$http.request('get', '/api/login/admin')
            const resp = await this.$store.dispatch('regUser', post);
            // uni.hideLoading()
            if (resp.code == 0) {
            if (resp.code === 0) {
               // myCache.cache("userToken", res.data.accessToken)
               // let userRes = await gzmzApi.getMemberInfo();
@@ -296,7 +441,6 @@
               //             this.toLogin()
               //          }, 1000);
               //       }
               //    } else {