From 277d6652893fcc10fb6827b62ef16fe2910a525c Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Fri, 15 Dec 2023 16:58:25 +0800
Subject: [PATCH] 强制更新功能
---
pages/index/index.vue | 192 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 177 insertions(+), 15 deletions(-)
diff --git a/pages/index/index.vue b/pages/index/index.vue
index e0fb43d..702cfa6 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -6,46 +6,92 @@
</view>
<view>
<u-form :model="form" ref="uForm" class="form" >
- <u-form-item ><u-input color="#fff" v-model="form.name" placeholder="请输入用户名" /></u-form-item>
- <u-form-item ><u-input color="#fff" v-model="form.pwd" type="password" placeholder="请输入密码" /></u-form-item>
+ <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 ><u-button type="primary" style="width: 100%;" @click="Login">登录</u-button></u-form-item>
- <view style="color: white;margin-left:25%;margin-top: 70%;">技术支持:中国科学院</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>
</template>
<script>
- import {login} from '../../api/index.js';
+ import {login,getLastApp} from '../../api/index.js';
import store from '@/store/index.js'
+ import VUE_APP_BASE_URL from '../../common/constant.js'
+ const jpushModule = uni.requireNativePlugin('JG-JPush')
export default {
data() {
return {
form: {
name: '',
- pwd: ''
+ pwd: '',
+ registrationId: ''
},
- type: ''
+ type: '',
+ //极光推送
+ connectStatus: '未连接',
+ registrationID: '未获得',
+ isLogining: false,
}
},
onShow() {
- uni.clearStorageSync();
- uni.clearStorage();
+ 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'
+ });
+ }
+ }else{
+ uni.clearStorageSync();
+ uni.clearStorage();
+ }
+ },
+ onLoad() {
+ this.connect()
+ this.getMaxVersion()
},
methods: {
Login(){
+ this.isLogining = true;
login(this.form).then(res => {
- console.log("res",res)
if (res.code === 100) {
+ 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);
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');
@@ -61,13 +107,127 @@
}else{
this.$store.commit('setRoleId', 'user_leader');
uni.switchTab({
- url: '/pages/tabBar/examine/examine'
+ url: '/pages/tabBar/firstPage/firstPage'
});
}
+ }else{
+ uni.showToast({
+ icon: "none",
+ title: res.msg
+ });
+ this.form.name = '';
+ this.form.pwd = '';
+ this.isLogining = false;
}
}).catch(err=>{
+ this.form.name = '';
+ this.form.pwd = '';
+ this.isLogining = false;
})
},
+ connect() {
+ uni.$on('connectStatusChange', (connectStatus) => {
+ var connectStr = ''
+ if (connectStatus == true) {
+ connectStr = '已连接'
+ this.getRegistrationID()
+ } else {
+ connectStr = '未连接'
+ }
+ console.log('监听到了连接状态变化 --- ', connectStr)
+ this.connectStatus = connectStr
+ })
+ },
+ //获取推送ID
+ getRegistrationID() {
+ jpushModule.getRegistrationID(result => {
+ let registerID = result.registerID
+ console.log('registerID',registerID)
+ this.registrationID = registerID
+ this.form.registrationId = registerID;
+ uni.setStorageSync('registrationID', registerID);
+ 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>
@@ -76,7 +236,7 @@
.box{
width: 100%;
height: 100vh;
- background: url('../../static/bg.jpeg') no-repeat;
+ background: url('../../static/shu.jpg') no-repeat;
background-size: 100% 100%;
background-attachment: fixed;/* 不设置的话页面滑动时,背景会不铺满*/
display: flex;
@@ -102,9 +262,11 @@
text-shadow:0 0 1px #000;
}
.form{
- width: 80%;
- margin: 100px auto 0px;
-
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 25%;
}
.loginPsw{
margin-bottom: 20px;
--
Gitblit v1.9.2