xuxueyang
2024-10-28 7731dab95c5a35097ab4b14e394b6e678173ff7d
pages/login/supplier-reg.vue
@@ -1,21 +1,20 @@
<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>
         <!-- #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>
               <u-steps-item title="提交申请" class="u-steps-item"></u-steps-item>
            </u-steps>
         </view>
      </view>
      <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
         <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;padding-top: 60rpx;">仅限花满芫合伙人入驻</view>
            <!-- #endif -->
            <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>
                  <u-steps-item title="提交申请" class="u-steps-item"></u-steps-item>
               </u-steps>
            </view>
         </view>
         <image class="component-bg"
            src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a5/a54508de179a4942918ecb2c5a4aa9f5bg.png"
            mode="scaleToFill" />
@@ -36,37 +35,72 @@
                     <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>
                     <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">
                     <u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber" @blur="validatePhoneNumber()">
                        <template slot="suffix">
                           <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
                              {{ 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'">
                     <u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
                  </view>
                  <view class="flex flex-wrap-normal"
                         v-if="true">
                        <view :style="{'margin-top': '40rpx','margin-right': '12rpx','font-size':'24rpx'}"
                           @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']">
                        </view>
                        <!-- /pages/help/content?id=新手帮助 -->
                        <!-- 用户协议,隐私政策、卖家入驻协议、合伙人入驻协议 -->
                        <!-- #ifdef PUB_PARTNER -->
                        <view class="topic-gray">
                           请仔细阅读<span class="t-red"
                              @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>、
                              <span class="t-red" @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
                              、<span class="t-red" @click="goto('/pages/help/content?id=合伙人入驻协议',false)">《合伙人入驻协议》</span>
                           如您同意该指引,请勾选开始使用本小程序
                        </view>
                        <!-- #endif -->
                        <!-- #ifdef PUB_SUPPLIER -->
                        <view class="topic-gray">
                           请仔细阅读<span class="t-red"
                              @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>、
                              <span class="t-red" @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
                              、<span class="t-red" @click="goto('/pages/help/content?id=卖家入驻协议',false)">《卖家入驻协议》</span>
                           如您同意该指引,请勾选开始使用本小程序
                        </view>
                        <!-- #endif -->
                        <!-- #ifdef PUB_CUSTOMER -->
                        <view class="topic-gray">
                           请仔细阅读<span class="t-red"
                              @click="goto('/pages/help/content?id=用户协议',false)">《用户协议》</span>和 <span class="t-red"
                              @click="goto('/pages/help/content?id=隐私政策',false)">《隐私政策》</span>
                           如您同意该指引,请勾选开始使用本小程序
                        </view>
                        <!-- #endif -->
                     </view>
                  <!-- #ifndef PUB_CUSTOMER -->
                  <button @tap="reg('')" class="bottom-button">注 册</button>
@@ -74,8 +108,7 @@
                  <!-- #endif -->
                  <!-- #ifdef PUB_CUSTOMER -->
                  <!--            open-type="getUserInfo"-->
                  <button @tap="wxreg('')"
                     class="bottom-button">注 册</button>
                  <button @tap="wxreg('')" class="bottom-button">注 册</button>
                  <!-- #endif -->
@@ -83,20 +116,11 @@
                     <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回上一步
                     </view>
                     <!-- #ifdef PUB_CUSTOMER -->
                     <view class="topic-font m-l-a m-r-a" @click="scanPartnerCode" v-if="source==='step'">扫码绑定合伙人
                     </view>
                     <!-- 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">
                     <view :style="{'margin-top': '8rpx','margin-right': '12rpx','font-size':'24rpx'}"
                        @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']">
                     </view>
                     <view class="topic-gray" @click="toProtocol">请仔细阅读《花满芫合伙人供应商入口小程序隐私保护指引》如您同意该指引,请勾选开始使用本小程序
                     </view>
                  </view>
               </form>
            </view>
@@ -128,6 +152,7 @@
            getCodeisWaiting: false,
            Timer: undefined,
            protocal: false,
            regCustomerName: '',
            source: '',
            // #ifdef PUB_SUPPLIER
            apitype: 'supplier',
@@ -143,18 +168,68 @@
      },
      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 || '佚名'
            }
            //扫码过来的,自然要清除分享商品的id
            this.$storage.removeItem('cache_sharePartnerUserId')
         }
         // #endif
      },
      methods: {
         // 手机号码正则表达式校验
         validatePhoneNumber() {
            // 手机号码正则表达式,可以根据需要调整
            const phoneRegex = /^[1][3-9][0-9]{9}$/;
            if (!phoneRegex.test(this.phoneNumber)) {
               this.$message.showToast('请填写正确手机号码')
            }
         },
         async scanPartnerCode() {
            await this.$message.confirm('确定要绑定合伙人吗?')
            // await this.$message.confirm('确定要绑定合伙人吗?')
            //扫二维码确认
            let that = this
            uni.scanCode({
               success: async function(res) {
                  console.log('条码内容:' + res.result);
                  if (!res.result) {
                     that.$message.showToast('未识别出合伙人信息,请用微信扫码打开')
                     return
                  }
                  var dto = undefined
                  try {
                     dto = JSON.parse(res.result)
                     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'] || ''
@@ -250,7 +325,7 @@
            }, 1000)
         },
         toLogin() {
            uni.redirectTo({
            uni.reLaunch({
               url: '/pages/login/supplier-login'
            })
@@ -271,6 +346,10 @@
         //   })
         // },
         wxreg(e) {
            if (!this.protocal) {
               this.$message.showToast('请同意协议')
               return;
            }
            let tmp = this
            wx.login({
               success: async res => {
@@ -321,10 +400,16 @@
               });
               return;
            }
            // if (this.pcfvalue == undefined) {
            //    util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
            //    return;
            // }
            // #ifdef PUB_CUSTOMER
            if (!that.regCustomerName) {
               this.$message.showToast('店铺名称未填写')
               return
            }
            // #endif
            if (!this.protocal) {
               this.$message.showToast('请同意协议')
               return;
            }
            let post = {
               tel: this.phoneNumber,
               smsCode: this.smsCode,
@@ -346,16 +431,41 @@
                  return
               }
               var dto = JSON.parse(tjson)
               dto.partnerId = this.partnerId || undefined
               // dto.userId  = this.partnerId || undefined
               // dto.partnerId = this.partnerId || undefined
               dto.partnerUserId = this.partnerId || undefined
               post.dto = dto
            }
            post.wxcode = wxcode
            } else {
               // #ifdef PUB_CUSTOMER
               var dto = {}
               dto.partnerUserId = this.partnerId || undefined
               //如果没有绑定,有商品详情的分享合伙人id的话缓存的话,尝试用这个
               if (!dto.partnerUserId) {
                  try {
                     var sharePartnerUserId = this.$storage.getItem('cache_sharePartnerUserId')
                     if (sharePartnerUserId) {
                        //试图绑定
                        this.$storage.removeItem('cache_sharePartnerUserId')
                        dto.partnerUserId = sharePartnerUserId
                     }
                  } catch (e) {
                     console.error('reg bind ', e)
                  }
               }
               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')
            this.$message.showLoading()
            const resp = await this.$store.dispatch('regUser', post);
            this.$message.hideLoading()
            // uni.hideLoading()
            if (resp.code === 0) {