提交 dd1b6184 编写于 作者: xingli.wu's avatar xingli.wu

Merge branch 'feature/xinglee' into 'release'

feat: 系统升级弹窗

See merge request com.pica.cloud.education.frontend/pica.cloud.web-education-admin!512
<template>
<div v-if="$route.name!='loginPage'">
<v-header :userName="userName" :portrait="portrait" :idType="idType"></v-header>
<v-slidebar :authList="authList" :tokenValue="token" :storageIdType="storageIdType" :notCompleteCount="redNum" :masterFlag="masterFlag"></v-slidebar>
<div v-if="$route.name != 'loginPage'">
<v-header
:userName="userName"
:portrait="portrait"
:idType="idType"
></v-header>
<v-slidebar
:authList="authList"
:tokenValue="token"
:storageIdType="storageIdType"
:notCompleteCount="redNum"
:masterFlag="masterFlag"
></v-slidebar>
<el-container>
<div class="content" id="body-content">
<transition name="router-fade" mode="out-in">
......@@ -24,19 +34,26 @@
</template>
<script>
import VHeader from './views/layout/header.vue'
import VSlidebar from './views/layout/slidebar.vue'
import VFooter from './views/layout/footer.vue'
import { base64decode, isNotEmptyUtils, getUrlParamsMap } from "./utils/utils.js"
import { mapActions, mapGetters } from 'vuex'
import { getLoginUrl } from './utils/index.js'
import { getRedNum, getCircleRole } from './utils/patients/patientsapi'
let vm = null
import VHeader from './views/layout/header.vue';
import VSlidebar from './views/layout/slidebar.vue';
import VFooter from './views/layout/footer.vue';
import {
base64decode,
isNotEmptyUtils,
getUrlParamsMap,
} from './utils/utils.js';
import { mapActions, mapGetters } from 'vuex';
import { getLoginUrl } from './utils/index.js';
import { getRedNum, getCircleRole } from './utils/patients/patientsapi';
import createModal from './utils/createModal';
import { systemUpdateConfig } from './utils/system/index';
let vm = null;
export default {
components:{
components: {
VHeader,
VSlidebar,
VFooter
VFooter,
},
data() {
return {
......@@ -48,47 +65,53 @@ export default {
authList: {},
redNum: 0,
masterFlag: false,
}
};
},
computed:{
...mapGetters([
'_token'
])
computed: {
...mapGetters(['_token']),
},
created() {
vm = this
if(vm.$route.name!='loginPage') {
vm.getToken()
vm = this;
if (vm.$route.name != 'loginPage') {
vm.getToken();
}
},
mounted() {
vm.getRedData()
function checkIE(){
return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style
vm.getRedData();
function checkIE() {
return (
'-ms-scroll-limit' in document.documentElement.style &&
'-ms-ime-align' in document.documentElement.style
);
}
if (checkIE()) {
window.addEventListener('hashchange', () => {
window.addEventListener(
'hashchange',
() => {
let currentPath = window.location.hash.slice(1);
if (this.$route.path !== currentPath) {
this.$router.push(currentPath)
this.$router.push(currentPath);
}
}, false)
},
false
);
}
this.getUpdateConfig();
},
methods: {
...mapActions('reservationManage',['getUserName']),
...mapActions('reservationManage', ['getUserName']),
// 解密token
getToken() {
let href = window.location.href
let offset = href.indexOf("?")
if(offset !== -1) {
let paramStr = href.substring(offset + 1, href.length)
let pars = base64decode(paramStr)
let paramMap = getUrlParamsMap(pars, "&")
if (isNotEmptyUtils(paramMap["token"])) {
vm.token = paramMap["token"]
localStorage.setItem('storageToken', vm.token)
vm.$router.push({ path: 'home' })
let href = window.location.href;
let offset = href.indexOf('?');
if (offset !== -1) {
let paramStr = href.substring(offset + 1, href.length);
let pars = base64decode(paramStr);
let paramMap = getUrlParamsMap(pars, '&');
if (isNotEmptyUtils(paramMap['token'])) {
vm.token = paramMap['token'];
localStorage.setItem('storageToken', vm.token);
vm.$router.push({ path: 'home' });
// if(href.indexOf("mypatients-manage/patients-list") > -1) {
// // vm.$router.push({ path: 'patients-manage/mypatients-manage/patients-list' })
// vm.$router.push({ path: 'patients-list' })
......@@ -96,23 +119,27 @@ export default {
// vm.$router.push({ path: 'home' })
// }
} else {
if(!localStorage.getItem('storageToken')) {
console.log('域名',window.location.host)
if(window.location.host.indexOf("work.yunqueyi") != -1&&window.location.host.indexOf("test2-work.yunqueyi") == -1) {
window.location.href = getLoginUrl('?from=work&type=logout') // 没有token返回登录页面
if (!localStorage.getItem('storageToken')) {
console.log('域名', window.location.host);
if (
window.location.host.indexOf('work.yunqueyi') != -1 &&
window.location.host.indexOf('test2-work.yunqueyi') == -1
) {
window.location.href = getLoginUrl('?from=work&type=logout'); // 没有token返回登录页面
return;
} else {
this.$router.push('/login')
this.$router.push('/login');
return;
}
}
}
}else {
if(!localStorage.getItem('storageToken')) {
if(window.location.host.indexOf("work.yunqueyi") != -1&&window.location.host.indexOf("test2-work.yunqueyi") == -1) {
window.location.href = getLoginUrl('?from=work&type=logout') // 没有token返回登录页面
} else {
if (!localStorage.getItem('storageToken')) {
if (
window.location.host.indexOf('work.yunqueyi') != -1 &&
window.location.host.indexOf('test2-work.yunqueyi') == -1
) {
window.location.href = getLoginUrl('?from=work&type=logout'); // 没有token返回登录页面
return;
} else {
this.$router.push('/login');
......@@ -120,45 +147,44 @@ export default {
}
}
}
vm.changeToken(vm.token)
vm.getUserAuth(vm.token)
vm.changeToken(vm.token);
vm.getUserAuth(vm.token);
},
// 修改token
...mapActions([
'changeToken',
'changeIdType',
'changeMaster'
]),
...mapActions(['changeToken', 'changeIdType', 'changeMaster']),
// 获取用户权限
getUserAuth(token) {
vm.getCircleRoleData();
let req = null
let req = null;
req = {
token: token
}
vm.GET('portal/common/v1/role',req).then((res) => {
if(res.code == '000000') {
vm.changeIdType(res.data.idType)
vm.changeMaster(res.data.masterAdministratorFlag)
localStorage.setItem('storageIdType', res.data.idType)
localStorage.setItem('isRoleOfOuter', res.data.isRoleOfOuter)
localStorage.setItem('storageMaster', res.data.masterAdministratorFlag)
vm.idType = res.data.idType
vm.storageIdType = res.data.idType
vm.masterFlag = res.data.masterAdministratorFlag
vm.userName = res.data.name
vm.portrait = res.data.imageUrl
vm.authList = res.data.auth
token: token,
};
vm.GET('portal/common/v1/role', req).then((res) => {
if (res.code == '000000') {
vm.changeIdType(res.data.idType);
vm.changeMaster(res.data.masterAdministratorFlag);
localStorage.setItem('storageIdType', res.data.idType);
localStorage.setItem('isRoleOfOuter', res.data.isRoleOfOuter);
localStorage.setItem(
'storageMaster',
res.data.masterAdministratorFlag
);
vm.idType = res.data.idType;
vm.storageIdType = res.data.idType;
vm.masterFlag = res.data.masterAdministratorFlag;
vm.userName = res.data.name;
vm.portrait = res.data.imageUrl;
vm.authList = res.data.auth;
vm.getUserName(vm.userName);
} else {
vm.$message.info(res.message)
vm.$message.info(res.message);
}
})
});
},
setStoreData(value) {
if (value){
if (value) {
return 1;
}else {
} else {
return 0;
}
},
......@@ -169,64 +195,95 @@ export default {
localStorage.removeItem('ordinary');
localStorage.removeItem('createCircle');
getCircleRole({}).then((res) => {
if(res.code == '000000') {
if (res.code == '000000') {
//mainManager主管理员,manager管理员,ordinary普通人
const { highMainManager, mainManager, manager, ordinary, createCircle} = res.data;
localStorage.setItem('highMainManager', vm.setStoreData(highMainManager))
localStorage.setItem('mainManager', vm.setStoreData(mainManager))
localStorage.setItem('manager', vm.setStoreData(manager))
localStorage.setItem('ordinary', vm.setStoreData(ordinary))
localStorage.setItem('createCircle', vm.setStoreData(createCircle))
const {
highMainManager,
mainManager,
manager,
ordinary,
createCircle,
} = res.data;
localStorage.setItem(
'highMainManager',
vm.setStoreData(highMainManager)
);
localStorage.setItem('mainManager', vm.setStoreData(mainManager));
localStorage.setItem('manager', vm.setStoreData(manager));
localStorage.setItem('ordinary', vm.setStoreData(ordinary));
localStorage.setItem('createCircle', vm.setStoreData(createCircle));
} else {
vm.$message.info(res.message)
vm.$message.info(res.message);
}
})
});
},
getRedData() {
getRedNum({
openTime: (new Date()).getTime()
}).then((data) => {
if(data.code == '000000') {
vm.redNum = data.data
openTime: new Date().getTime(),
})
.then((data) => {
if (data.code == '000000') {
vm.redNum = data.data;
}
}).catch(error => {
vm.$message.error(error)
})
.catch((error) => {
vm.$message.error(error);
});
},
getUpdateConfig() {
const modal = createModal();
systemUpdateConfig()
.then((res) => {
if (Number(res.data.type) === 1) {
modal.open(1, res.data.imageUrl);
}
if (Number(res.data.type) === 2) {
modal.open(2, res.data.imageUrl);
}
})
.catch(() => {
modal.open(2);
});
},
},
watch: {
_token(val) {
if(val!=undefined&&val!=null) {
vm.getUserAuth(val)
if (val != undefined && val != null) {
vm.getUserAuth(val);
}
},
$route:{
deep:true,
handler:function(newVal){
if(vm.$route.path == '/patients-manage/not-complete/uncompleted-list'){ //避免重复请求
vm.redNum = 0
}
$route: {
deep: true,
handler: function (newVal) {
if (
vm.$route.path == '/patients-manage/not-complete/uncompleted-list'
) {
//避免重复请求
vm.redNum = 0;
}
}
}
}
},
},
},
};
</script>
<style lang="scss">
// @import './style/common';
@import './style/global';
@import './style/mixin.scss';
.router-fade-enter-active, .router-fade-leave-active {
transition: opacity .1s;
}
.router-fade-enter, .router-fade-leave-active {
// @import './style/common';
@import './style/global';
@import './style/mixin.scss';
.router-fade-enter-active,
.router-fade-leave-active {
transition: opacity 0.1s;
}
.router-fade-enter,
.router-fade-leave-active {
opacity: 0;
}
.el-container {
}
.el-container {
margin-left: 255px;
overflow: hidden;
.content {
background: #F0F2F5;
background: #f0f2f5;
position: absolute;
left: 255px;
right: 0;
......@@ -236,17 +293,17 @@ export default {
box-sizing: border-box;
overflow-y: scroll;
}
}
.login-div {
}
.login-div {
height: 100%;
}
.check-auth{
width: 480px!important;
}
.check-auth {
width: 480px !important;
height: 240px;
padding: 20px 50px;
.el-message-box__content{
padding:20px 0;
.el-message-box__content {
padding: 20px 0;
margin-bottom: 10px;
}
}
}
</style>
<template>
<div class="dialog" v-if="visible">
<div v-if="type === 1" class="content">
<img
width="680"
height="705"
:src="imageUrl"
/>
<img
class="close"
src="https://files.yunqueyi.com/image/svg+xml/common/20240704144219420.svg"
@click="close"
/>
</div>
<img v-if="type === 2" width="680" height="474" :src="imageUrl" />
</div>
</template>
<script>
export default {
name: 'SysUpgradeDialog',
data: function() {
return {
type: 1,
visible: false,
imageUrl: null,
defaultImageUrl: 'https://files.yunqueyi.com/image/png/common/2024070411371293.png',
};
},
methods: {
open(type, imageUrl) {
this.visible = true;
this.type = type;
this.imageUrl = imageUrl || this.defaultImageUrl;
},
close() {
this.visible = false;
},
},
};
</script>
<style lang="less" scoped>
.dialog {
position: fixed;
display: flex;
justify-content: center;
align-items: center;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(2, 2, 2, 0.6);
z-index: 999999;
img {
display: block;
}
.content {
display: flex;
flex-direction: column;
align-items: center;
}
.close {
width: 62px;
height: 62px;
margin-top: 32px;
}
}
</style>
import Vue from 'vue';
import MyModal from '../components/system-upgrade-dialog.vue';
const modalConstructor = Vue.extend(MyModal);
const createModal = () => {
const instance = new modalConstructor();
instance.$mount();
document.body.appendChild(instance.$el);
return instance;
};
export default createModal;
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
// 获取检测名称列表
export const systemUpdateConfig = (data) => {
return fetch({
headers,
data:data,
url: getBaseUrl(`api-ws/constant/config/image`),
method: "get",
});
};
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册