yangan
2024-10-25 fa80f1ae2cda9c23f7cd34065828f9ffc31b2e70
pages/login/userPassword.vue
@@ -2,6 +2,7 @@
   <view>
      <view class="list">
         <view class="list-call">
            <!--  #ifdef MP-WEIXIN  -->
            <u--input v-model="username"
               clearable
               maxlength="32"
@@ -9,7 +10,20 @@
               placeholder="请输入手机号"
               prefixIcon="account"
               prefixIconStyle="font-size: 22px;color: #909399"></u--input>
               <!--  #endif  -->
                 <!--  #ifdef H5  -->
            <customPagination
                  style="width:100%; height: 60rpx;  font-size: 30rpx;"
                  :options="userList"
                  :value="username"
                  v-model="username"
                  @changeInput="changeInput2"
                  @input="handleInput2"
                  :placeholder="'请输入登录账号'"
               ></customPagination>
               <!--  #endif  -->
         </view>
         <view class="list-call">
            <u--input v-model="password"
               clearable
@@ -20,15 +34,35 @@
               prefixIconStyle="font-size: 22px;color: #909399"></u--input>
         </view>
      </view>
      <!-- 记住密码 -->
       <!--  #ifdef H5  -->
      <view class="jizhu">
         <view>
            <u-checkbox-group
            v-model="isJizhu"
            placement="column"
            @change="checkboxChange"
        >
         <u-checkbox
         :checked="isChecked"
         label="记住密码" :size='35' :iconSize="35" :labelSize="30" name="1"
         placement="row">
      </u-checkbox>
      </u-checkbox-group>
   </view>
      </view>
         <!--  #endif  -->
      <view class="loginBtn"><u-button type="primary"
            :text="btnText == 1 ? '绑定' : '登录'"
            @click="submit()"></u-button></view>
            @click="submit()"
            :loading="submitLoading"></u-button></view>
   </view>
</template>
<script>
   import { apiLoginPassword } from '@/api/publicInterface.js';
   import { mapMutations } from 'vuex';
    import customPagination from './user.vue'
   import { setName, setToken, setRefreshToken, setUsernameKey, setCustomerId, redirectHome } from '@/utils/status.js';
   export default {
      name: 'userPassword',
@@ -37,7 +71,16 @@
         btnText: {
            type: Number,
            default: 0
         },
         userList: {
            type: Array,
            default: () => {
               return [];
            }
         }
      },
      components: {
         customPagination
      },
      data() {
         return {
@@ -45,8 +88,15 @@
            // username:'13333333331',//货代
            // username: '13333333332',// 司机
            password: '',
            isChecked:false,
            remember: true,
            baseUrl: ''
            isJizhu: uni.getStorageSync('remberPassWord').username  ? ['1'] : false,
            username: uni.getStorageSync('remberPassWord').username || '',//承运商
            password: uni.getStorageSync('remberPassWord').password || '',
            baseUrl: '',
            weXinisLoginFlag:[1,2,3], //微信
            H5IsLoginFlag:[5,6], //h5
            submitLoading: false
         };
      },
      methods: {
@@ -67,6 +117,7 @@
            }
            let grant_type = 'password';
            //登录接口
            this.submitLoading = true
            await apiLoginPassword({
                  username: this.username,
                  password: this.password,
@@ -74,9 +125,11 @@
                  scope: 'server'
               })
               .then(res => {
                  this.submitLoading = false
                  setToken(res.access_token);
                  setRefreshToken(res.refresh_token);
                  if (this.btnText == 0) {
                     this.submitLoading = false
                     if (res.code != 1) {
                        // 登陆成功,存储相关信息
                        setToken(res.access_token);
@@ -85,20 +138,58 @@
                        //查询用户详细信息并储存
                        this.$reqGet('getUserEntity')
                           .then(res => {
                              this.$u.toast('登录成功');
                              this.setUserTabbar(res.data.type);
                              uni.setStorageSync('roleType', res.data.type);
                              uni.setStorageSync("userId", res.data.userId)
                              uni.setStorageSync("carNo", res.data.carNo)
                              setCustomerId(res.data.customerid);
                              setName(res.name);
                              uni.hideLoading();
                              //跳转页面
                              this.$nextTick(() => {
                                 redirectHome();
                        // #ifdef H5
                        if(this.weXinisLoginFlag.includes(res.data.type)) {
                           console.log('触发登录角色')
                           this.$u.toast('当前角色请前往小程序登录')
                           return ;
                        }
                        //#endif
                    this.$u.toast('登录成功');
               // #ifdef H5
               if(this.isJizhu.length){ //记住密码
                     uni.setStorageSync('remberPassWord',{
                           username: this.username,
                           password: this.password,
                              });
                              }else{
                              uni.setStorageSync('remberPassWord',{
                                    username: this.username,
                                    password: '',
                                 });
                              }
                              //#endif
               this.submitLoading = false
               this.getLoginInfo(); // 记录登录信息
                    this.setUserTabbar(res.data.type);
                    uni.setStorageSync('roleType', res.data.type);
                    uni.setStorageSync("userId", res.data.userId)
                    uni.setStorageSync("carNo", res.data.carNo)
               uni.setStorageSync("userInfo", res.data)
                    setCustomerId(res.data.customerid);
                    setName(res.name);
               let data=uni.getStorageSync('userList')?JSON.parse(uni.getStorageSync('userList')):[];
               let id = data.length + 1;
                if (data.filter(item=> item.username == this.username).length == 0){
                 data.push({username: this.username,password: this.password,type:res.data.type})
               }
               uni.setStorageSync("userList", JSON.stringify(data))
                    uni.hideLoading();
                    if(res.data.forcePassword == 1) {
                      uni.navigateTo({
                        url: '/pages/login/resetPassword/resetPassword'
                      })
                    }else {
                      //跳转页面
                      this.$nextTick(() => {
                        redirectHome();
                      });
                    }
                           })
                           .catch(err => {
                              this.submitLoading = false
                              this.$u.toast('登录异常!');
                              console.log(err);
                           });
@@ -107,14 +198,13 @@
                        this.$u.toast(res.msg);
                     }
                  } else {
                     console.log('微信绑定?????')
                     uni.login({
                        success: res => {
                           if (res.code) {
                              uni.setStorageSync('bindcode', res.code);
                           }
                        }
                     });
                     if (uni.getStorageSync('bindcode')) {
                           if (uni.getStorageSync('bindcode')) {
                        this.$reqPost('wxBind', { state: 'MINI', code: uni.getStorageSync('bindcode') },
                           'params').then(res => {
                           uni.hideLoading();
@@ -126,22 +216,49 @@
                           } else {
                              this.$u.toast(res.msg ? res.msg : '绑定失败');
                           }
                        }).finally(() => {
                           this.submitLoading = false;
                        });
                     }
                        }
                     });
                     this.submitLoading = false
                  }
               })
               .catch(e => {
               }).catch(e => {
                  this.submitLoading = false
                  this.$u.toast(e);
               });
         },
         //记录登录信息
         getLoginInfo(){
            this.$reqPost('setApplogonTime').then((res) => {
            })
         },
         checkboxChange(val){
            console.log(val,'isJz')
         }
      }
   };
</script>
<style lang="scss">
  /* #ifdef H5 */
  .loginBtn{
    width: 80%;
    margin: 0 auto;
  }
  /* #endif */
   @import 'index.scss';
   .dengluBtn {
      margin-top: 80rpx;
   }
</style>
   .jizhu{
   padding: 40rpx 70rpx 40rpx 70rpx;
   display: flex;
    justify-content: flex-end;
  }
</style>