Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
517e54d1
提交
517e54d1
编写于
7月 04, 2024
作者:
xinglee23
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 系统升级提示
上级
604d9a81
变更
4
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
343 行增加
和
189 行删除
+343
-189
App.vue
src/App.vue
+246
-189
system-upgrade-dialog.vue
src/components/system-upgrade-dialog.vue
+68
-0
createModal.js
src/utils/createModal.js
+13
-0
index.js
src/utils/system/index.js
+16
-0
未找到文件。
src/App.vue
浏览文件 @
517e54d1
<
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
);
}
if
(
Number
(
res
.
data
.
type
)
===
2
)
{
modal
.
open
(
2
);
}
})
.
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
:
#F0F2F
5
;
background
:
#f0f2f
5
;
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
>
src/components/system-upgrade-dialog.vue
0 → 100644
浏览文件 @
517e54d1
<
template
>
<div
class=
"dialog"
v-if=
"visible"
>
<div
v-if=
"type === 1"
class=
"content"
>
<img
width=
"680"
height=
"705"
src=
"https://files.yunqueyi.com/image/png/common/2024070411381441.png"
/>
<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=
"https://files.yunqueyi.com/image/png/common/2024070411371293.png"
/>
</div>
</
template
>
<
script
>
export
default
{
name
:
'SysUpgradeDialog'
,
data
:
function
()
{
return
{
type
:
1
,
visible
:
false
,
};
},
methods
:
{
open
(
type
)
{
this
.
visible
=
true
;
this
.
type
=
type
;
},
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
>
src/utils/createModal.js
0 → 100644
浏览文件 @
517e54d1
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
;
src/utils/system/index.js
0 → 100644
浏览文件 @
517e54d1
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
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录