zhangwei
2024-08-15 3fc70951bbd386c8c85e522cae80deba8823052e
src/pages/login/index.vue
@@ -7,8 +7,9 @@
         </view>
         <view class="login_btn">
            <!-- #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU -->
            <!-- <button v-if="canIUseGetUserProfile" type="primary" class="uni-tip-button" @click="login">授权并登录</button> -->
            <button  type="primary" open-type="getUserInfo" @getuserinfo="login"
            <button v-if="canIUseGetPhoneNumber" type="primary" class="uni-tip-button"
               @click="mobileAuthLogin">授权并登录</button>
            <button type="primary" v-else open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"
               class="uni-tip-button">授权并登录</button>
            <view class="no_login" @click="back">
               暂不授权
@@ -25,36 +26,8 @@
               </view>
            </checkbox-group>
         </view>
         <!-- <view class="mobile_login" @click="toMobileLogin">
            同意并输入手机号登录
         </view> -->
         <!-- <view class="agreement_wrap">
            <view class="agree_item">
               <view class="item_icon" @click="isChecked = !isChecked">
                  <image v-if="!isChecked" :src="$util.img('upload/img/iconCheck.png')" mode="aspectFit"
                     class="item_select_img"></image>
                  <image v-else :src="$util.img('upload/img/publish-selected.png')" mode="aspectFit"
                     class="item_select_img"></image>
               </view>
               <view class="item_content">
                  首次登录自动注册运满满及货车帮账号,且已阅读并同意<text class="agreement">《用户服务协议》</text><text
                     class="agreement">《个人信息保护政策》</text><text class="agreement">《账号关联协议》</text>
               </view>
            </view>
            <view class="agree_item">
               <view class="item_icon" @click="isCheckedSan = !isCheckedSan">
                  <image v-if="!isCheckedSan" :src="$util.img('upload/img/iconCheck.png')" mode="aspectFit"
                     class="item_select_img"></image>
                  <image v-else :src="$util.img('upload/img/publish-selected.png')" mode="aspectFit"
                     class="item_select_img"></image>
               </view>
               <view class="item_content">
                  已阅读并同意<text class="agreement">《第三方合作清单》</text>
               </view>
            </view>
         </view> -->
      </view>
      <u-popup ref="popup" type="center">
      <uni-popup ref="popup" type="center">
         <view class="bind-wrap">
            <!-- #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU -->
            <view class="heard">提示</view>
@@ -66,8 +39,8 @@
               @getphonenumber="mobileAuthLogin"><text>点击绑定手机号码</text></button> -->
            <!-- #endif  -->
         </view>
      </u-popup>
      <u-popup ref="bindMobile">
      </uni-popup>
      <uni-popup ref="bindMobile">
         <view class="bind-wrap">
            <!-- #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU -->
            <view class="heard">提示</view>
@@ -76,7 +49,7 @@
               @getphonenumber="mobileAuthLogin"><text>点击绑定手机号码</text></button>
            <!-- #endif  -->
         </view>
      </u-popup>
      </uni-popup>
   </view>
</template>
@@ -86,12 +59,12 @@
         return {
            isChecked: false,
            isCheckedSan: false,
            canIUseGetUserProfile: false
            canIUseGetPhoneNumber: false
         };
      },
      created() {
         // #ifdef MP-WEIXIN
         if (wx.getUserProfile) this.canIUseGetUserProfile = true;
         if (uni.getStorageSync('queryPhoneNumber')) this.canIUseGetPhoneNumber = true;
         // #endif
      },
      onShow() {
@@ -134,7 +107,7 @@
                                    } else {
                                       uni.setStorageSync(
                                          'is_perfect_user', res.code
                                          )
                                       )
                                    }
                                 },
                                 fail: res => {
@@ -197,122 +170,70 @@
         back() {
            uni.navigateBack()
         },
         toMobileLogin() {
            if (!this.isChecked) {
               return this.$util.showToast({
                  title: "请先同意协议"
         getPhoneNumber(e) {
            if (e.detail.errMsg == 'getPhoneNumber:ok') {
               this.$db.set('queryPhoneNumber', 'getPhoneNumber:ok');
               uni.login({
                  provider: 'weixin',
                  timeout: 3000,
                  success: res => {
                     let obj = {
                        bindgetphonenumber: e.detail.code,
                        jsCode: res.code
                     }
                     this.$api.CreateUser(obj).then(result => {
                        if (result.code == 1) {
                           this.$db.set('userToken', result.data.accessToken);
                           this.$util.redirectTo(
                              '/pages/index/index', {},
                              'tabbar')
                        } else {
                           this.$util.showToast({
                              title: result.msg
                           });
                        }
                     }).catch((err) => {
                        console.log(err, 'uni.loginerr')
                     })
                  },
               })
            }
            this.$util.redirectTo('/otherPages/member/mobileLogin/mobileLogin')
            console.log(e)
         },
         mobileAuthLogin(e) {
            console.log(e)
            if (!this.isChecked) {
               return this.$util.showToast({
               return this.$common.showToast({
                  title: "请先同意协议"
               })
            }
            // return
            if (e.detail.errMsg == 'getPhoneNumber:ok') {
               let authData = uni.getStorageSync('authInfo');
               console.log(authData)
               var data = {
                  code: e.detail.code,
                  uid: authData.id
                  // iv: e.detail.iv,
                  // encryptedData: e.detail.encryptedData
               };
               console.log(e)
               // if (Object.keys(authData).length) {
               //    Object.assign(data, authData);
               // }
               // if (authData.avatarUrl) data.headimg = authData.avatarUrl;
               // if (authData.nickName) data.nickname = authData.nickName;
               // if (uni.getStorageSync('source_member')) data.source_member = uni.getStorageSync('source_member');
               if (this.isSub) return;
               this.isSub = true;
               this.$api.temLogin({
                  data,
                  success: res => {
                     if (res.code == 1) {
                        console.log(res)
                        if (res.data.wx_openid) {
                           this.$util.showToast({
                              title: "登录成功",
                              icon: "success"
                           })
                           uni.setStorage({
                              key: 'uid',
                              data: res.data.id,
                              success: () => {
                                 uni.removeStorageSync('wx_openid_set');
                                 uni.removeStorageSync('source_member');
                                 uni.removeStorageSync('authInfo');
                                 this.$api.temLogin({
                                    data: {
                                       uid: res.data.id,
                                    },
                                    success: res => {
                                       if (res.code == 1) {
                                          console.log(res)
                                          uni.setStorageSync(
                                             'is_perfect_user', '1')
                                       } else {
                                          uni.setStorageSync(
                                             'is_perfect_user', res
                                             .code)
                                       }
                                    },
                                    fail: res => {
                                       this.$util.showToast({
                                          title: "接口错误"
                                       });
                                    }
                                 });
                                 // this.$store.dispatch('getCartNumber');
                                 setTimeout(() => {
                                    this.$util.redirectTo(
                                       '/pages/index/index', {},
                                       'tabbar')
                                 }, 1000)
                              }
                           });
                        } else {
                           this.$refs.bindMobile.close()
                           // uni.setStorageSync('wx_openid_set',1)
                           this.$refs.popup.open()
                        }
                        // this.$store.commit('setToken', res.data.token);
                        // this.$refs.bindMobile.close();
                        // if (res.data.is_register && this.$refs.registerReward.getReward()) {
                        //    this.$refs.registerReward.open();
                        // }
            uni.login({
               provider: 'weixin',
               timeout: 3000,
               success: res => {
                  this.$api.temLogin(res.code).then((result) => {
                     if (result.code == 1) {
                        this.$db.set('userToken', result.data.accessToken);
                        this.$util.redirectTo(
                           '/pages/index/index', {},
                           'tabbar')
                     } else {
                        this.isSub = false;
                        this.$util.showToast({
                           title: res.msg
                           title: result.msg
                        });
                     }
                  },
                  fail: res => {
                     this.isSub = false;
                     this.$util.showToast({
                        title: 'request:fail'
                     });
                  }
               });
            }
                  }).catch((err) => {
                     console.log('err', err);
                  })
               },
            })
         },
         getCode(userInfo, callback) {
            uni.login({
               provider: 'weixin',
               timeout: 3000,
               success: res => {
                  console.log(res)
                  console.log(res, 'getCode')
                  let data = {
                     code: res.code,
                     nickname: userInfo.nickName,
@@ -339,219 +260,11 @@
                  title: "请先同意协议"
               })
            }
            // if (!this.isChecked || !this.isCheckedSan) {
            //    this.$util.showToast({
            //       title: "请勾选用户注册/登录协议和第三方合作清单"
            //    })
            //    return
            // }
            // #ifdef MP-WEIXIN
            if (this.canIUseGetUserProfile) {
               wx.getUserProfile({
                  desc: '获取用户个人信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
                  success: (res) => {
                     console.log(res)
                     if (res.errMsg == 'getUserProfile:ok') {
                        // this.authInfo.nickName = res.userInfo.nickName;
                        // this.authInfo.avatarUrl = res.userInfo.avatarUrl;
                        // uni.setStorageSync('authInfo', this.authInfo)
                        this.getCode(res.userInfo, data => {
                           console.log(data)
                           if (data.code == 1) {
                              uni.setStorageSync('authInfo', data.data)
                              if (!data.data.mobile) {
                                 this.$refs.bindMobile.open()
                              } else {
                                 if (data.data.wx_openid) {
                                    this.$util.showToast({
                                       title: "登录成功",
                                       icon: "success"
                                    })
                                    uni.setStorage({
                                       key: 'uid',
                                       data: data.data.id,
                                       success: () => {
                                          uni.removeStorageSync(
                                             'wx_openid_set');
                                          uni.removeStorageSync(
                                             'source_member');
                                          uni.removeStorageSync('authInfo');
                                          this.$api.temLogin({
                                             data: {
                                                uid: data.data.id,
                                             },
                                             success: res => {
                                                if (res.code ==
                                                   1) {
                                                   console
                                                      .log(
                                                         res
                                                         )
                                                   uni.setStorageSync(
                                                      'is_perfect_user',
                                                      '1'
                                                      )
                                                } else {
                                                   uni.setStorageSync(
                                                      'is_perfect_user',
                                                      res
                                                      .code
                                                      )
                                                }
                                             },
                                             fail: res => {
                                                this.$util
                                                   .showToast({
                                                      title: "接口错误"
                                                   });
                                             }
                                          });
                                          // this.$store.dispatch('getCartNumber');
                                          setTimeout(() => {
                                             this.$util.redirectTo(
                                                '/pages/index/index', {},
                                                'tabbar')
                                          }, 1000)
                                       }
                                    });
                                 } else {
                                    // uni.setStorageSync('wx_openid_set',1)
                                    this.$refs.popup.open()
                                 }
                              }
                           }
                           return
                           // if (data) {
                           //    this.authLogin(data);
                           // } else {
                           //    this.$refs.auth.close();
                           //    this.toLogin();
                           // }
                        });
                     }
                  }
               })
            } else if (e.detail.errMsg == 'getUserInfo:ok') {
               this.getCode(data => {
                  if (data.code == 1) {
                     uni.setStorageSync('authInfo', data.data)
                     if (!data.data.mobile) {
                        this.$refs.bindMobile.open()
                     } else {
                        if (data.data.wx_openid) {
                           this.$util.showToast({
                              title: "登录成功",
                              icon: "success"
                           })
                           uni.setStorage({
                              key: 'uid',
                              data: data.data.id,
                              success: () => {
                                 uni.removeStorageSync('wx_openid_set');
                                 uni.removeStorageSync('source_member');
                                 uni.removeStorageSync('authInfo');
                                 this.$api.temLogin({
                                    data: {
                                       uid: data.data.id,
                                    },
                                    success: res => {
                                       if (res.code == 1) {
                                          console.log(res)
                                          uni.setStorageSync(
                                             'is_perfect_user', '1')
                                       } else {
                                          uni.setStorageSync(
                                             'is_perfect_user', res.code
                                             )
                                       }
                                    },
                                    fail: res => {
                                       this.$util.showToast({
                                          title: "接口错误"
                                       });
                                    }
                                 });
                                 // this.$store.dispatch('getCartNumber');
                                 setTimeout(() => {
                                    this.$util.redirectTo(
                                       '/pages/index/index', {},
                                       'tabbar')
                                 }, 1000)
                              }
                           });
                        } else {
                           // uni.setStorageSync('wx_openid_set',1)
                           this.$refs.popup.open()
                        }
                     }
                  }
               });
            }
            // #endif
            // if (!uni.getStorageSync('wx_openid_set')) {
            //    // #ifdef MP-QQ || MP-BAIDU
            //    if (e.detail.errMsg == 'getUserInfo:ok') {
            //       this.getCode(data => {
            //          if (data) {
            //             this.authLogin(data);
            //          } else {
            //             this.$refs.auth.close();
            //             this.toLogin();
            //          }
            //       });
            //    }
            //    // #endif
            //    // #ifdef MP-WEIXIN
            //    if (this.canIUseGetUserProfile) {
            //       wx.getUserProfile({
            //          desc: '获取用户个人信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
            //          success: (res) => {
            //             if (res.errMsg == 'getUserProfile:ok') {
            //                // this.authInfo.nickName = res.userInfo.nickName;
            //                // this.authInfo.avatarUrl = res.userInfo.avatarUrl;
            //                // uni.setStorageSync('authInfo', this.authInfo)
            //                this.getCode(data => {
            //                   console.log(data)
            //                   return
            //                   if (data) {
            //                      this.authLogin(data);
            //                   } else {
            //                      this.$refs.auth.close();
            //                      this.toLogin();
            //                   }
            //                });
            //             }
            //          }
            //       })
            //    } else if (e.detail.errMsg == 'getUserInfo:ok') {
            //       this.getCode(data => {
            //          if (data) {
            //             this.authLogin(data);
            //          } else {
            //             this.$refs.auth.close();
            //             this.toLogin();
            //          }
            //       });
            //    }
            //    // #endif
            //    // #ifndef MP
            //    this.$refs.auth.close();
            //    this.toLogin();
            //    // #endif
            // } else {
            //    this.$refs.auth.close();
            //    this.toLogin();
            // }
            uni.login({
               provider: 'weixin',
               timeout: 3000,
               success: res => {},
            })
         },
      }
   }
@@ -601,6 +314,7 @@
            line-height: 70rpx;
            background-color: #35A6FF;
            border-radius: 70rpx;
            padding: 0;
         }
         .no_login {
@@ -718,4 +432,4 @@
      color: #ffffff;
      background-color: #35A6FF;
   }
</style>
</style>