MrShi
2026-05-22 ea2fb93a0dfcde8f5b66825b20f9d9b835a28acc
small-program/shop/pages/login/login.vue
@@ -15,7 +15,10 @@
         <view class="input-row password-row">
            <u-icon name="lock" size="30" color="#B8B8B8"></u-icon>
            <input v-model="form.password" class="input-field" password type="text" placeholder="请输入密码" placeholder-style="color: #999999;" />
            <input v-model="form.password" class="input-field" :password="!showPassword" placeholder="请输入密码" placeholder-style="color: #999999;" />
            <view class="password-toggle" @click="showPassword = !showPassword">
               <u-icon :name="showPassword ? 'eye' : 'eye-off'" size="20" color="#B8B8B8"></u-icon>
            </view>
         </view>
         <view class="input-divider"></view>
      </view>
@@ -26,9 +29,9 @@
         <image class="agree-icon" :src="agreed ? '/static/icon/ic_accept_sel@2x.png' : '/static/icon/ic_accept@2x.png'" mode="aspectFit" @tap="agreed = !agreed"></image>
         <view class="agreement-text-wrap">
            <text class="agreement-text">我已阅读并同意</text>
            <text class="agreement-link" @click="goToService">《用户服务协议》</text>
            <text class="agreement-link" @click="goToService(2)">《门店服务协议》</text>
            <text class="agreement-text">及</text>
            <text class="agreement-link" @click="goToPrivacy">《用户隐私政策》</text>
            <text class="agreement-link" @click="goToService(3)">《门店隐私政策》</text>
         </view>
      </view>
   </view>
@@ -44,6 +47,7 @@
      data() {
         return {
            agreed: false,
            showPassword: false,
            form: {
               telephone: '',
               password: ''
@@ -52,7 +56,6 @@
      },
      onLoad() {
         // 静默登录
         if (this.userInfo.bindShopId) {
            uni.showLoading({
               title:'登录中...'
@@ -61,7 +64,7 @@
               console.log(this.userType,"============================================")
               this.$u.api.shopSilentLogin({})
                  .then( res => {
                     if (res.code === 200) {
                     if (res.code === 200 && res.data) {
                        this.$store.commit('setUserType', 1)
                        this.$store.commit('setShopToken', res.data.token)
                        // 获取门店信息
@@ -71,12 +74,13 @@
                           }
                           uni.hideLoading();
                           // setTimeout(() => {
                              uni.reLaunch({
                              uni.navigateTo({
                                 url: '/shop/pages/store-home/store-home'
                              });
                           // }, 1000)
                        })
                     }
                     uni.hideLoading()
                  })
            }catch(e){
               uni.hideLoading()
@@ -87,14 +91,7 @@
         }
      },
      methods: {
         async handleLogin() {
            if (!this.agreed) {
               uni.showToast({
                  title: '请先阅读并同意协议',
                  icon: 'none'
               })
               return
            }
         handleLogin() {
            if (!this.form.telephone) {
               uni.showToast({
                  title: '请输入账号',
@@ -109,14 +106,18 @@
               })
               return
            }
            uni.showLoading({ title: '登录中...', mask: true })
            try {
               const res = await this.$u.api.shopLogin({
                  openid: this.openid,
                  password: this.form.password,
                  telephone: this.form.telephone
            if (!this.agreed) {
               uni.showToast({
                  title: '请先阅读并同意协议',
                  icon: 'none'
               })
               uni.hideLoading()
               return
            }
            this.$u.api.shopLogin({
               openid: this.openid,
               password: this.form.password,
               telephone: this.form.telephone
            }).then(async res => {
               if (res.code === 200) {
                  this.$store.commit('setUserType', 1)
                  this.$store.commit('setShopToken', res.data.token)
@@ -131,30 +132,14 @@
                        url: '/shop/pages/store-home/store-home'
                     });
                  }, 1500)
               } else {
                  uni.showToast({
                     title: res.msg || '登录失败',
                     icon: 'none'
                  })
               }
            } catch (err) {
               uni.hideLoading()
               uni.showToast({
                  title: '登录失败',
                  icon: 'none'
               })
            }
         },
         goToService() {
            uni.navigateTo({
               url: '/pages/rich-text/rich-text?type=userAgreement'
            })
         },
         goToPrivacy() {
         goToService(type) {
            uni.navigateTo({
               url: '/pages/rich-text/rich-text?type=privacyPolicy'
               url: '/pages/rich-text/rich-text?type='+type
            })
         }
         }
      }
   }
</script>
@@ -199,6 +184,10 @@
   .password-row {
      margin-top: 18rpx;
   }
   .password-toggle {
      padding: 10rpx;
   }
   .input-field {
      flex: 1;