马宇豪
2024-07-16 518fe95206669eee05488d364c8d3528eaff604f
pages/index/index.vue
@@ -1,25 +1,27 @@
<template>
   <view class="box">
      <view class="header">
         <view class="titleFirst"><b>新疆维吾尔自治区自然灾害综合监测预警</b></view>
         <view class="titleSecond"><b>自然灾害综合风险预警发布及响应联动系统</b></view>
      </view>
      <view>
         <u-form :model="form" ref="uForm" class="form" >
            <u-form-item style="width: 75%;"><u-input color="#fff" v-model="form.name" placeholder="请输入用户名"  /></u-form-item>
            <u-form-item style="margin-top: 10px;width: 75%;" ><u-input color="#fff" v-model="form.pwd" type="password" placeholder="请输入密码"  /></u-form-item>
            <!-- <view class="loginPsw">
                   <u-checkbox-group >
                     <u-checkbox disabled="true"></u-checkbox><text style="color: #fff;">自动登录</text>
                   </u-checkbox-group>
                    <text style="color: lightblue;">忘记密码</text>
            </view> -->
            <u-form-item style="margin-top: 10px;width: 75%;">
               <u-button :loading="isLogining" type="primary" style="width: 100%;" @click="Login">登录</u-button>
               </u-form-item>
            <view style="color: white;margin-top: 150px;">技术支持:技术保障部</view>
         </u-form>
      </view>
    <view class="main">
      <view class="header">
        <view class="titleFirst"><b>安全在线教育平台</b></view>
      </view>
      <view>
        <u-form :model="form" ref="uForm" class="form" >
          <u-form-item style="width: 75%;"><u-input :customStyle="cstyle" v-model="form.username" placeholder="请输入用户名"  /></u-form-item>
          <u-form-item style="margin-top: 10px;width: 75%;" ><u-input :customStyle="cstyle" v-model="form.password" type="password" placeholder="请输入密码"  /></u-form-item>
          <!-- <view class="loginPsw">
                 <u-checkbox-group >
                <u-checkbox disabled="true"></u-checkbox><text style="color: #fff;">自动登录</text>
                 </u-checkbox-group>
                  <text style="color: lightblue;">忘记密码</text>
          </view> -->
          <u-form-item style="margin-top: 10px;width: 75%;">
            <u-button class="loginBtn" :loading="isLogining" style="width: 100%;height: 44px" @click="Login" type="primary">登录</u-button>
          </u-form-item>
          <!--            <view style="color: white;margin-top: 150px;">技术支持:技术保障部</view>-->
        </u-form>
      </view>
    </view>
   </view>
</template>
@@ -32,39 +34,45 @@
      data() {
         return {
            form: {
               name: '',
               pwd: '',
               registrationId: ''
               username: '',
               password: '',
          code: '',
          uuid: ''
            },
            type: '',
            //极光推送
            connectStatus: '未连接',
            registrationID: '未获得',
            isLogining: false,
        cstyle: {
          background: '#fff',
          padding: '10px',
          boxShadow: '0 2px 4px rgba(0,0,0,.2),0 -2px 4px rgba(255,255,255,.2),inset 0 2px 4px rgba(0,0,0,.2)',
          border: '1px solid #fff'
        }
         }
      },
      onShow() {
         console.log("数据",uni.getStorageSync('name'))
         if(uni.getStorageSync('name') && uni.getStorageSync('pwd')){
            // this.form.name = uni.getStorageSync('name');
            // this.form.pwd = uni.getStorageSync('pwd');
            if(uni.getStorageSync('roleName') == '工作人员'){
               this.$store.commit('setRoleId', 'user_other');
               uni.switchTab({
                    url: '/pages/tabBar/notice/notice'
                 });
            }else if (uni.getStorageSync('roleName') == '管理员'){
               this.$store.commit('setRoleId', '');
               uni.showToast({
                  icon: "none",
                  title: '管理员请使用平台登录'
               });
            }else{
               this.$store.commit('setRoleId', 'user_leader');
               uni.switchTab({
                        url: '/pages/tabBar/firstPage/firstPage'
                    });
            }
//             if(uni.getStorageSync('roleName') == '工作人员'){
//                this.$store.commit('setRoleId', 'user_other');
//                uni.switchTab({
//                     url: '/pages/tabBar/notice/notice'
//                  });
//             }else if (uni.getStorageSync('roleName') == '管理员'){
//                this.$store.commit('setRoleId', '');
//                uni.showToast({
//                   icon: "none",
//                   title: '管理员请使用平台登录'
//                });
//             }else{
//                this.$store.commit('setRoleId', 'user_leader');
//                uni.switchTab({
//                         url: '/pages/tabBar/firstPage/firstPage'
//                     });
//             }
         }else{
            uni.clearStorageSync();
            uni.clearStorage();
@@ -72,48 +80,51 @@
      },
      onLoad() {
         this.connect()
         this.getMaxVersion()
      },
      methods: {
      base64Encode(str) {
        return btoa(unescape(encodeURIComponent(str)));
      },
         Login(){
            this.isLogining = true;
        this.form.password = this.base64Encode(this.form.password)
            login(this.form).then(res => {
               if (res.code === 100) {
               if (res.code === 200) {
                  this.isLogining = false;
                   //登录成功后
                   //设置别名
                  jpushModule.setAlias({
                     'alias': this.phone,
                     'sequence': 1
                  })
                  uni.setStorageSync("name", this.form.name);
                  uni.setStorageSync("pwd", this.form.pwd);
                  uni.setStorageSync("tk", res.data.tk);
                  uni.setStorageSync("uid",res.data.uid);
                  // jpushModule.setAlias({
                  //    'alias': this.phone,
                  //    'sequence': 1
                  // })
                  uni.setStorageSync("name", this.form.username);
                  uni.setStorageSync("pwd", this.form.password);
                  uni.setStorageSync("tk", res.data.token);
                  uni.setStorageSync("uid",res.data.id);
                  uni.setStorageSync('user', res.data);
                  uni.setStorageSync('unittype',res.data.unittype);
                  uni.setStorageSync('roleName', res.data.role.roleName);
                  if(res.data.role.roleName == '工作人员'){
                     this.$store.commit('setRoleId', 'user_other');
                     uni.switchTab({
                          url: '/pages/tabBar/notice/notice'
                       });
                  }else if (res.data.role.roleName == '管理员'){
                     this.$store.commit('setRoleId', '');
                     uni.showToast({
                        icon: "none",
                        title: '管理员请使用平台登录'
                     });
                  }else{
                  // uni.setStorageSync('unittype',res.data.unittype);
                  // uni.setStorageSync('roleName', res.data.role.roleName);
      //             if(res.data.role.roleName == '工作人员'){
      //                this.$store.commit('setRoleId', 'user_other');
      //                uni.switchTab({
      //                     url: '/pages/tabBar/notice/notice'
      //                  });
      //             }else if (res.data.role.roleName == '管理员'){
      //                this.$store.commit('setRoleId', '');
      //                uni.showToast({
      //                   icon: "none",
      //                   title: '管理员请使用平台登录'
      //                });
      //             }else{
                     this.$store.commit('setRoleId', 'user_leader');
                     uni.switchTab({
                              url: '/pages/tabBar/firstPage/firstPage'
                          });
                  }
                url: '/pages/tabBar/firstPage/firstPage'
              })
      //             }
               }else{
                  uni.showToast({
                     icon: "none",
                     title: res.msg
                     title: res.message
                  });
                  this.form.name = '';
                  this.form.pwd = '';
@@ -149,128 +160,76 @@
               console.log("iddd",uni.getStorageSync('registrationID'))
            })
         },
             // 获取最新版本
             getMaxVersion() {
               uni.getSystemInfo({
                 success: (res) => {
                 getLastApp().then(res => {
                    if (res.code === 100) {
                       console.log(res,'res');
                       this.updateVersion(res.data);
                    }
                 })
                 },
               });
             },
             // 版本对比
             updateVersion(data) {
              const lastVersion = data.version; //最新版本
               const curVersion = uni.getStorageSync("version"); // 当前版本
              console.log("lastVersion",lastVersion)
              console.log("curVersion",curVersion)
               if (curVersion && lastVersion) {
                 const curNum =  parseInt(curVersion.replace(/[,|.]/g, ''))
                 const lastNum =  parseInt(lastVersion.replace(/[,|.]/g, ''))
                 if (lastNum > curNum) {
                   this.showFly(data.attachmentInfo.fileUrl,lastVersion);
                 }
               }
             },
               // 版本下载 升级
             showFly(url,lastVersion) {
               console.log("url",url)
               uni.showModal({
                 title: "提示",
                 content: `发现新版本${lastVersion},立即升级!`,
                 showCancel: false, // 如果是强制更新就不显示取消按钮
                 success: (e) => {
                   if (e.confirm) {
                     uni.showLoading({
                       title: "更新中……",
                     });
                     const downloadTask = uni.downloadFile({
                       url: VUE_APP_BASE_URL + url, // 这个是最新版本apk包的地址
                       success: (res) => {
                         uni.hideLoading();
                         if (res.statusCode === 200) {
                        console.log("url",VUE_APP_BASE_URL + url)
                           plus.runtime.install(res.tempFilePath, { force: true }, _res => {
                               uni.showToast({
                                 title: "更新成功,重启中",
                                 duration: 1600,
                               });
                               plus.runtime.restart();
                               uni.hideToast();
                             }
                           );
                         } else {
                           uni.showToast({
                             title: "下载失败!",
                             icon: "none",
                             duration: 800,
                           });
                         }
                       },
                     });
                     // downloadTask.onProgressUpdate((res) => {
                     //   // _this.startDown = true;
                     //   // _this.calcPro(res.progress);
                     //   // console.log('下载进度' + res.progress);
                     //   // console.log('已经下载的数据长度' + res.totalBytesWritten);
                     //   // console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
                     //   // 测试条件,取消下载任务。
                     //   // if (res.progress > 50) {
                     //   //     downloadTask.abort();
                     //   // }
                     // });
                   }
                 },
               });
             }
      }
   }
</script>
<style>
<style scoped>
.box{
   width: 100%;
   height: 100vh;
   background: url('../../static/shu.jpg') no-repeat;
   background: url('../../static/login.jpg') no-repeat;
   background-size: 100% 100%;
   background-attachment: fixed;/* 不设置的话页面滑动时,背景会不铺满*/
   display: flex;
   flex-direction: column;
  justify-content: center;
}
.main{
  width: 100%;
  height: 50vh;
  display: flex;
  flex-direction: column;
  justify-content: left;
}
.header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-shadow:0 0 1px #000;
}
.titleFirst{
   text-align: center;
   font-size: 18px;
   font-size: 32px;
  letter-spacing: 6px;
   color:#fff;
  text-shadow: 2px 2px 6px rgba(0,0,0,.1);
}
.titleSecond{
   text-align: center;
   font-size: 19px;
   color:#fff;
   margin-top: 10px;
}
.header {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   padding-top:100px;
   text-shadow:0 0 1px #000;
}
.form{
   width: 100%;
   display: flex;
   flex-direction: column;
   align-items: center;
   margin-top: 25%;
  margin-top: 40px;
}
.loginPsw{
   margin-bottom: 20px;
   display: flex;
   justify-content: space-between;
}
.loginBtn{
  border: 1px solid rgba(255,255,255,.4);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  background-image: linear-gradient(#41a2ff,#0f7ff9);
  transition: box-shadow .25s ease !important;
}
.loginBtn:active{
  box-shadow: 0 2px 4px rgba(0,0,0,0);
  background-image: linear-gradient(#0f7ff9,#41a2ff);
}
</style>