#
whycq
2023-10-10 155f2b80f2a9b6f900c73f6e4461e9cebb7cd028
pages/login/login.vue
@@ -4,18 +4,26 @@
      <!-- 登录信息 -->
      <view class="user-info">
         <view class="user-info-item shadow-warp">
            <view class="icons"><uni-icons type="person" size="20"></uni-icons></view>
            <view class="icons">
               <uni-icons type="person" size="20"></uni-icons>
            </view>
            <text>账号:</text>
            <input type="text" placeholder="请输入账号!" v-model="user.userName"
            placeholder-style="font-size:14px;color:#ccc;">
               placeholder-style="font-size:14px;color:#ccc;">
         </view>
         <view class="user-info-item shadow-warp">
            <view class="icons"><uni-icons type="locked" size="20"></uni-icons></view>
            <view class="icons">
               <uni-icons type="locked" size="20"></uni-icons>
            </view>
            <text>密码:</text>
            <input :password="!showPassword" v-model="user.password" placeholder="请输入密码!"
            placeholder-style="font-size:14px;color:#ccc;">
            <view class="showPassword" v-if="showPassword" @click="changePassword"><uni-icons type="eye" size="20"></uni-icons></view>
            <view class="showPassword" v-if="!showPassword" @click="changePassword"><uni-icons type="eye-slash" size="20"></uni-icons></view>
               placeholder-style="font-size:14px;color:#ccc;">
            <view class="showPassword" v-if="showPassword" @click="changePassword">
               <uni-icons type="eye" size="20"></uni-icons>
            </view>
            <view class="showPassword" v-if="!showPassword" @click="changePassword">
               <uni-icons type="eye-slash" size="20"></uni-icons>
            </view>
         </view>
      </view>
      <!-- 登录按钮 -->
@@ -45,64 +53,150 @@
               loading: false,
               btnText: '登录'
            },
            baseUrl: 'http://192.168.4.188:9528'
         }
      },
      onLoad:function(){
      onLoad: function() {
         this.user.userName = uni.getStorageSync('userName')
         this.user.password = uni.getStorageSync('password')
         // #ifdef APP-PLUS
         var that=this
         plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
            that.version=wgtinfo.version
         var that = this
         plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
            that.version = wgtinfo.version
         });
         // #endif
         this.getVersion()
      },
      methods: {
         changePassword: function() {
             this.showPassword = !this.showPassword;
            this.showPassword = !this.showPassword;
         },
         getVersion() {
            let that = this;
            uni.getSystemInfo({
               success: (res) => {
                  console.log(res.platform);
                  //检测当前平台,如果是安卓则启动安卓更新
                  if (res.platform == "android") {
                     that.AndroidCheckUpdate();
                  }
               }
            })
         },
         AndroidCheckUpdate() {
            let that = this;
            plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
               that.version = wgtinfo.version //客户端版本号
               console.log('当前app版本信息:' + that.version);
            })
            that.getUpdateVersion()
         },
         getUpdateVersion() {
            let that = this;
            // 获取当前app版本信息
            return
            that.$req.get("/appUpdate/queryUpdate", {}, {}).then(function(res) {
               console.log('res.data:' + JSON.stringify(res.data))
               console.log("现在的版本" + that.version + "数据库版本" + res.data.data.version + "进入查找app版本");
               if (res.data.data.version > that.version) {
                  // 这里下载apkurl从/appUpdate/queryUpdate接口请求返回数据中获取
                  that.downloadUrl = BaseUrl + '/' + res.data.data.androidUrl
                  // 是否强制更新(0 否;1 是)
                  that.isForceUpdate = res.data.data.isForceUpdate
                  uni.showModal({
                 // 更新提醒
                     title: '发现新版本,是否更新',
                     content: '此版本号:' + that.version + '\xa0\xa0\xa0' + '待更新版本号:' + res.data.data
                        .version,
                     success: res => {
                      if (res.confirm) {
                           that.downWgt(); //下载文件
                           // that.showdownLine = true;
                           // plus.runtime.openURL(androidUrl)
                        } else if (res.cancel) {
                           console.log('that.isForceUpdate:' + that.isForceUpdate);
                           // 不更新强制退出app
                           if (that.isForceUpdate == 1) {
                              console.log('that.isForceUpdate1:' + that.isForceUpdate);
                              uni.showModal({
                                 // 更新提醒
                                 title: '发现新版本,是否更新',
                                 content: '此版本为强制更新版本如不升级将退出APP',
                                 success: res => {
                                    if (res.confirm) {
                                       console.log('不更新强制退出app');
                                       plus.runtime.quit();
                                    } else if (res.cancel) {
                                       that.AndroidCheckUpdate();
                                    }
                                 }
                              });
                           }
                        }
                     }
                  });
                  //dtask.start();
               }
            }).catch(error => {
               uni.showToast({
                  title: '调用请求失败',
                  mask: false,
                  duration: 5000,
                  icon: "none"
               });
            });
            complete: () => {}
         },
         onLogin() {
            let that = this
            uni.request({
               url: that.baseUrl + '/login.action',
               fail(result) {
                  uni.showToast({title: '请求失败'})
                  uni.showToast({
                     icon: 'error',
                     title: '请求失败'
                  })
               },
               data: {
                 username:that.user.userName,
                 password:md5.hex_md5(that.user.password)
                  username: that.user.userName,
                  password: md5.hex_md5(that.user.password)
               },
               header: {
                  "content-type": "application/json"
               },
               success(result) {
                  if (result.statusCode ===  404) {
                     uni.showToast({title: '请重新登录', icon: "none", position: 'top'})
                  if (result.statusCode === 404) {
                     uni.showToast({
                        title: '登录失败',
                        icon: "error"
                     })
                     return
                  }
                  let res = result.data
                  if (res.code === 200 ){
                  if (res.code === 200) {
                     that.load.loading = true;
                     that.load.btnText = '登录中';
                     uni.setStorageSync('token', res.data.token);
                     uni.setStorageSync('userName', that.user.userName);
                     uni.setStorageSync('baseUrl',that.baseUrl)
                     setTimeout(()=> {
                        uni.showToast({title: '登录成功'})
                        setTimeout(()=> {
                     uni.setStorageSync('password', that.user.password);
                     setTimeout(() => {
                        uni.showToast({
                           title: '登录成功'
                        })
                        setTimeout(() => {
                           uni.reLaunch({
                              url: '../index/index'
                           });
                        },300)
                     },700)
                        }, 300)
                     }, 700)
                  } else {
                     uni.showToast({title: res.msg})
                     uni.showToast({
                        title: res.msg
                     })
                  }
               },
            })
         },
      }
@@ -116,6 +210,7 @@
      width: 100%;
      min-height: 93.4vh;
   }
   .logo {
      width: 300px;
      height: 163px;
@@ -124,44 +219,51 @@
      margin-right: auto;
      margin-bottom: 50rpx;
   }
   .user-info {
      display: flex;
      align-items:center;
      align-items: center;
      flex-direction: column;
      width: 100%;
      height: 400rpx;
      font-size: 14px;
      letter-spacing:1px;
      letter-spacing: 1px;
   }
   .user-info-item {
      display: flex;
      width:650rpx;
      width: 650rpx;
      height: 100rpx;
      line-height: 100rpx;
      align-items:center;
      align-items: center;
      background-color: #fff;
      margin-bottom: 30rpx;
      font-size: 28rpx;
      font-weight: 500;
   }
   .user-info-item>input{
   .user-info-item>input {
      width: 400rpx;
      color:#606266;
      color: #606266;
      font-weight: 500;
      caret-color:#606266; // 光标颜色
      caret-color: #606266; // 光标颜色
   }
   .icons {
      margin-left: 20rpx;
      margin-right: 18rpx;
   }
   .showPassword {
      position: absolute;
      right: 10rpx;
   }
   .shadow-warp {
      position: relative;
      box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1);
   }
   .shadow-warp:before,
   .shadow-warp:after {
      position: absolute;
@@ -174,19 +276,22 @@
      transform: rotate(-3deg);
      z-index: -1;
   }
   .shadow-warp:after {
      right: 20upx;
      left: auto;
      transform: rotate(3deg);
   }
   .loging {
      position: fixed;
      bottom: 100rpx;
      left:0;
      right:0;
      margin-left:auto;
      margin-right:auto;
      left: 0;
      right: 0;
      margin-left: auto;
      margin-right: auto;
   }
   .button {
      color: #fff;
      background-color: #409EFF;
@@ -194,34 +299,40 @@
      height: 40px;
      line-height: 40px;
   }
   button::after{border: initial;}
   .button-hover {
      color:#fff;
      background-color:#6fc1ff;
   button::after {
      border: initial;
   }
   .button-hover {
      color: #fff;
      background-color: #6fc1ff;
   }
   .version {
      width: 100%;
      position: fixed;
      bottom: 30rpx;
      left:0;
      right:0;
      margin-left:auto;
      margin-right:auto;
      left: 0;
      right: 0;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
      font-size: 10px;
      color: #C0C4CC;
   }
   .input {
      display: block;
      font-size: 14px;
   }
   .uni-input {
      height: 50rpx;
      padding: 15rpx 25rpx;
      line-height:50rpx;
      font-size:28rpx;
      background:#FFF;
      line-height: 50rpx;
      font-size: 28rpx;
      background: #FFF;
      flex: 1;
   }
</style>
</style>