Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
log-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
log-platform
Commits
dfbc38d4
Commit
dfbc38d4
authored
Aug 14, 2023
by
姬鋆屾
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tui
parent
56ccd4d4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
187 additions
and
114 deletions
+187
-114
log-manager-ui/admin/src/components/Header.vue
log-manager-ui/admin/src/components/Header.vue
+138
-91
log-manager-ui/admin/src/views/SSO.vue
log-manager-ui/admin/src/views/SSO.vue
+28
-15
log-manager-ui/admin/src/views/login/login.vue
log-manager-ui/admin/src/views/login/login.vue
+21
-8
No files found.
log-manager-ui/admin/src/components/Header.vue
View file @
dfbc38d4
...
@@ -6,38 +6,54 @@
...
@@ -6,38 +6,54 @@
<div
class=
"layout-menu flex flex-1"
>
<div
class=
"layout-menu flex flex-1"
>
<!-- logo -->
<!-- logo -->
<div
class=
"layout-logo flex"
>
<div
class=
"layout-logo flex"
>
<i
class=
"el-icon-menu"
@
click=
'showMobileMenu=!showMobileMenu'
>
</i>
<i
class=
"el-icon-menu"
@
click=
"showMobileMenu = !showMobileMenu"
>
</i>
<router-link
to=
"/"
>
<router-link
to=
"/"
>
<img
<img
src=
"../assets/images/logo2.png
"
:src=
"sysLogo
"
style=
"margin-bottom: 5px"
style=
"margin-bottom: 5px"
height=
"27"
height=
"27"
width=
"27"
width=
"27"
/>
/>
<b
style=
"color: white; font-size: 20px; font-weight: bold; margin-right: 20px"
>
日志管理系统
</b>
<b
style=
"color: white; font-size: 20px; font-weight: bold; margin-right: 20px"
>
{{
title
}}
</b
>
</router-link>
</router-link>
</div>
</div>
<!-- 一级菜单 -->
<!-- 一级菜单 -->
<ul
class=
"menu-list flex"
>
<ul
class=
"menu-list flex"
>
<li
v-for=
'item in menu'
:key=
'item.id'
>
<li
v-for=
"item in menu"
:key=
"item.id"
>
<router-link
:to=
"item.path"
:active=
'submenu.path === item.path'
:title=
"item.name"
>
<router-link
<i
:class=
"'el-icon-'+item.icon"
></i>
:to=
"item.path"
{{
item
.
name
}}
:active=
"submenu.path === item.path"
:title=
"item.name"
>
<i
:class=
"'el-icon-' + item.icon"
></i>
{{
item
.
name
}}
</router-link>
</router-link>
</li>
</li>
</ul>
</ul>
</div>
</div>
<div
class=
"layout-profile"
>
<div
class=
"layout-profile"
>
<!--
<span
class=
"el-dropdown-link"
>
<!--
<span
class=
"el-dropdown-link"
>
{{
userData
.
currUserName
}}
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
-->
</span>
-->
<el-tooltip
effect=
"dark"
content=
"返回门户"
placement=
"bottom"
style=
"margin-right: 20px;"
>
<a
style=
"color: #fff;"
:href=
"portal"
>
<i
class=
"el-icon-s-home"
></i>
返回门户
</a>
</el-tooltip>
<el-dropdown
@
command=
"handleCommand"
>
<el-dropdown
@
command=
"handleCommand"
>
<span
class=
"el-dropdown-link"
style=
"color:white"
>
<span
class=
"el-dropdown-link"
style=
"color:white"
>
{{
userData
.
currUserName
}}
{{
userData
.
currUserName
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
</span>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
...
@@ -49,23 +65,33 @@
...
@@ -49,23 +65,33 @@
</div>
</div>
<!-- 一级菜单 -->
<!-- 一级菜单 -->
<ul
class=
"mobile-menu-list flex flex-pack-justify"
v-if=
'showMobileMenu'
>
<ul
class=
"mobile-menu-list flex flex-pack-justify"
v-if=
"showMobileMenu"
>
<li
v-for=
'item in menu'
:key=
'item.id'
>
<li
v-for=
"item in menu"
:key=
"item.id"
>
<router-link
:to=
"item.path"
:active=
'submenu.path === item.path'
:title=
"item.name"
>
<router-link
<i
:class=
"'el-icon-'+item.icon"
></i>
:to=
"item.path"
{{
item
.
name
}}
:active=
"submenu.path === item.path"
:title=
"item.name"
>
<i
:class=
"'el-icon-' + item.icon"
></i>
{{
item
.
name
}}
</router-link>
</router-link>
</li>
</li>
</ul>
</ul>
<!-- 二级菜单 -->
<!-- 二级菜单 -->
<div
class=
"layout-submenu-wrapper flex"
v-if=
'submenu.children && submenu.children.length'
>
<div
class=
"layout-submenu-wrapper flex"
v-if=
"submenu.children && submenu.children.length"
>
<div
class=
"layout-submenu"
>
<div
class=
"layout-submenu"
>
<ul
class=
"submenu-list flex"
>
<ul
class=
"submenu-list flex"
>
<li
v-for=
'item in submenu.children'
:key=
'item.id'
>
<li
v-for=
"item in submenu.children"
:key=
"item.id"
>
<a
:href=
"item.path"
target=
"blank"
v-if=
"item.isOut"
>
{{
<a
:href=
"item.path"
target=
"blank"
v-if=
'item.isOut'
>
{{
item
.
name
}}
</a>
item
.
name
<router-link
:to=
"item.path"
:active=
'group === item.path'
v-else
>
{{
item
.
name
}}
</router-link>
}}
</a>
<router-link
:to=
"item.path"
:active=
"group === item.path"
v-else
>
{{
item
.
name
}}
</router-link>
</li>
</li>
</ul>
</ul>
</div>
</div>
...
@@ -78,27 +104,36 @@ export default {
...
@@ -78,27 +104,36 @@ export default {
name
:
"
Header
"
,
name
:
"
Header
"
,
methods
:
{
methods
:
{
handleCommand
(
key
)
{
handleCommand
(
key
)
{
if
(
key
===
'
update
'
)
{
if
(
key
===
"
update
"
)
{
this
.
$router
.
push
(
'
/login/updatePwd
'
)
this
.
$router
.
push
(
"
/login/updatePwd
"
);
}
}
if
(
key
===
'
logout
'
)
{
if
(
key
===
"
logout
"
)
{
this
.
logout
()
this
.
logout
()
;
}
}
},
},
// 退出登录
// 退出登录
logout
()
{
logout
()
{
this
.
$post
(
'
/login/logout
'
).
then
(
data
=>
{}).
catch
(
error
=>
{}).
then
(()
=>
{
this
.
$post
(
"
/login/logout
"
)
this
.
$message
.
success
(
'
已退出登录
'
);
.
then
((
data
)
=>
{})
this
.
$store
.
commit
(
'
logout
'
);
.
catch
((
error
)
=>
{})
this
.
$router
.
replace
(
'
/login
'
);
.
then
(()
=>
{
})
this
.
$message
.
success
(
"
已退出登录
"
);
}
this
.
$store
.
commit
(
"
logout
"
);
this
.
$router
.
replace
(
"
/login
"
);
});
},
},
},
beforeDestroy
()
{
beforeDestroy
()
{
console
.
log
(
"
beforeDestroy
"
);
console
.
log
(
"
beforeDestroy
"
);
//window.removeEventListener("message", this.getsocketData, false);
//window.removeEventListener("message", this.getsocketData, false);
},
},
mounted
()
{
created
()
{
localStorage
.
getItem
(
"
sysName
"
)
?
(
this
.
title
=
localStorage
.
getItem
(
"
sysName
"
))
:
""
;
localStorage
.
getItem
(
"
sysLogo
"
)
?
(
this
.
sysLogo
=
location
.
origin
+
"
/
"
+
localStorage
.
getItem
(
"
sysLogo
"
))
:
(
this
.
sysLogo
=
require
(
"
@/assets/images/logo2.png
"
));
// console.log("mounted");
// console.log("mounted");
// this.$nextTick(function () {
// this.$nextTick(function () {
// console.log("login websocket:"+"ws://"+process.env.VUE_APP_WEBSOCKET_API +"/ws?accessToken="+ this.$store.state.userData.id)
// console.log("login websocket:"+"ws://"+process.env.VUE_APP_WEBSOCKET_API +"/ws?accessToken="+ this.$store.state.userData.id)
...
@@ -109,12 +144,10 @@ export default {
...
@@ -109,12 +144,10 @@ export default {
// this.$store.state.userData.id
// this.$store.state.userData.id
// );
// );
// });
// });
// let _this = this;
// let _this = this;
// const getsocketData = (e) => {i
// const getsocketData = (e) => {i
// // 创建接收消息函数
// // 创建接收消息函数
// const data = e && e.detail.data;
// const data = e && e.detail.data;
// let obj = JSON.parse(data);
// let obj = JSON.parse(data);
// if (obj.type == "SEND_TO_ALL_REQUEST") {
// if (obj.type == "SEND_TO_ALL_REQUEST") {
// vm.refreshData();
// vm.refreshData();
...
@@ -125,87 +158,101 @@ export default {
...
@@ -125,87 +158,101 @@ export default {
// type: "warning",
// type: "warning",
// duration: 8000,
// duration: 8000,
// });
// });
// }
// }
// };
// };
// this.getsocketData = getsocketData;
// this.getsocketData = getsocketData;
// // 注册监听事件
// // 注册监听事件
// window.addEventListener("onmessageWS", getsocketData,false);
// window.addEventListener("onmessageWS", getsocketData,false);
},
},
computed
:
{
computed
:
{
group
()
{
group
()
{
const
relativeGroup
=
this
.
$store
.
state
.
group
;
const
relativeGroup
=
this
.
$store
.
state
.
group
;
if
(
relativeGroup
)
{
if
(
relativeGroup
)
{
return
relativeGroup
;
return
relativeGroup
;
}
}
let
groupArray
=
this
.
$route
.
path
.
split
(
'
/
'
);
let
groupArray
=
this
.
$route
.
path
.
split
(
"
/
"
);
let
group
=
this
.
$route
.
path
;
let
group
=
this
.
$route
.
path
;
let
type
=
groupArray
.
pop
();
let
type
=
groupArray
.
pop
();
if
([
'
add
'
,
'
edit
'
,
'
view
'
,
'
new
'
,
'
importView
'
,
'
resetPwdView
'
].
indexOf
(
type
)
>
-
1
){
if
(
groupArray
.
push
(
'
list
'
);
[
"
add
"
,
"
edit
"
,
"
view
"
,
"
new
"
,
"
importView
"
,
"
resetPwdView
"
].
indexOf
(
group
=
groupArray
.
join
(
'
/
'
)
type
)
>
-
1
)
{
groupArray
.
push
(
"
list
"
);
group
=
groupArray
.
join
(
"
/
"
);
}
}
return
group
;
return
group
;
},
},
relativeGroup
()
{
relativeGroup
()
{
return
this
.
$store
.
state
.
group
return
this
.
$store
.
state
.
group
;
},
},
flat
()
{
flat
()
{
return
this
.
userData
.
flat
return
this
.
userData
.
flat
;
},
},
menu
()
{
menu
()
{
if
(
!
this
.
userData
.
barList
)
return
[];
if
(
!
this
.
userData
.
barList
)
return
[];
return
this
.
userData
.
barList
.
map
(
item
=>
{
return
this
.
userData
.
barList
.
map
((
item
)
=>
{
const
url
=
item
.
url
?
item
.
url
:
(
item
.
childList
[
0
]
?
(
item
.
childList
[
0
].
url
||
''
)
:
''
);
const
url
=
item
.
url
?
item
.
url
:
item
.
childList
[
0
]
?
item
.
childList
[
0
].
url
||
""
:
""
;
return
{
return
{
name
:
item
.
name
,
name
:
item
.
name
,
path
:
url
,
path
:
url
,
id
:
item
.
id
,
id
:
item
.
id
,
icon
:
item
.
imgPath
,
icon
:
item
.
imgPath
,
children
:
item
.
childList
.
map
(
sub
=>
{
children
:
item
.
childList
.
map
(
(
sub
)
=>
{
return
{
return
{
name
:
sub
.
name
,
name
:
sub
.
name
,
path
:
sub
.
url
?
sub
.
url
:
(
sub
.
childList
[
0
]
?
(
sub
.
childList
[
0
].
url
||
0
)
:
''
),
path
:
sub
.
url
?
sub
.
url
:
sub
.
childList
[
0
]
?
sub
.
childList
[
0
].
url
||
0
:
""
,
id
:
sub
.
id
,
id
:
sub
.
id
,
parentId
:
sub
.
parentId
,
parentId
:
sub
.
parentId
,
icon
:
sub
.
imgPath
,
icon
:
sub
.
imgPath
,
isOut
:
/^https
?\:\/\/
/
.
test
(
sub
.
url
)
isOut
:
/^https
?\:\/\/
/
.
test
(
sub
.
url
)
,
}
}
;
})
})
,
}
}
;
})
})
;
},
},
submenu
()
{
submenu
()
{
if
(
!
this
.
menu
.
length
)
return
{};
if
(
!
this
.
menu
.
length
)
return
{};
let
matchMenu
=
{};
let
matchMenu
=
{};
this
.
menu
.
forEach
(
item
=>
{
this
.
menu
.
forEach
(
(
item
)
=>
{
const
menu
=
item
;
const
menu
=
item
;
item
.
children
.
forEach
(
item
=>
{
item
.
children
.
forEach
(
(
item
)
=>
{
if
(
item
.
path
===
this
.
group
)
{
if
(
item
.
path
===
this
.
group
)
{
matchMenu
=
menu
;
matchMenu
=
menu
;
return
;
return
;
}
}
})
})
;
})
})
;
return
matchMenu
return
matchMenu
;
},
},
userData
()
{
userData
()
{
return
this
.
$store
.
state
.
userData
;
return
this
.
$store
.
state
.
userData
;
}
}
,
},
},
data
()
{
data
()
{
return
{
return
{
showMobileMenu
:
false
,
showMobileMenu
:
false
,
}
title
:
"
日志管理系统
"
,
}
sysLogo
:
""
,
}
portal
:
process
.
env
.
VUE_APP_PORTAL_URL
+
"
/#/home/siteArrange
"
,
};
},
};
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
.layout-header{
.layout-header {
.mobile-menu-list{display: none}
.mobile-menu-list {
display: none;
}
.layout-menu-wrapper {
.layout-menu-wrapper {
height: 66px;
height: 66px;
line-height: 66px;
line-height: 66px;
...
@@ -250,23 +297,23 @@ export default {
...
@@ -250,23 +297,23 @@ export default {
}
}
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper
{
padding-left: 20px;
padding-left: 20px;
background: #fff;
background: #fff;
height: 42px;
height: 42px;
border-bottom: 1px solid #ededed;
border-bottom: 1px solid #ededed;
.layout-title{
.layout-title
{
font-size: 18px;
font-size: 18px;
height: 40px;
height: 40px;
line-height: 40px;
line-height: 40px;
color: #333;
color: #333;
}
}
.layout-submenu{
.layout-submenu
{
margin-left: 15px;
margin-left: 15px;
white-space: nowrap;
white-space: nowrap;
overflow: auto;
overflow: auto;
li{
li
{
a{
a
{
display: block;
display: block;
padding: 0 10px;
padding: 0 10px;
height: 40px;
height: 40px;
...
@@ -274,7 +321,7 @@ export default {
...
@@ -274,7 +321,7 @@ export default {
font-size: 14px;
font-size: 14px;
color: #666;
color: #666;
&.router-link-active,
&.router-link-active,
&[active]{
&[active]
{
color: #1890ff;
color: #1890ff;
border-bottom: 2px solid #1890ff;
border-bottom: 2px solid #1890ff;
}
}
...
@@ -284,48 +331,48 @@ export default {
...
@@ -284,48 +331,48 @@ export default {
}
}
}
}
@media screen and (max-width: 800px){
@media screen and (max-width: 800px)
{
.layout-header {
.layout-header {
.mobile-menu-list{
.mobile-menu-list
{
display: flex;
display: flex;
background: #222333;
background: #222333;
padding: 0 10px;
padding: 0 10px;
li{
li
{
padding: 8px 5px;
padding: 8px 5px;
a{
a
{
width: 1em;
width: 1em;
display: block;
display: block;
color: #eee;
color: #eee;
font-size: 14px;
font-size: 14px;
word-break: break-all;
word-break: break-all;
&.router-link-active,
&.router-link-active,
&[active]{
&[active]
{
color: #1890ff;
color: #1890ff;
}
}
}
}
}
}
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper
{
padding-left: 0;
padding-left: 0;
overflow: auto;
overflow: auto;
-webkit-overflow-scrolling: touch;
-webkit-overflow-scrolling: touch;
}
}
.layout-menu-wrapper {
.layout-menu-wrapper {
width: 100%;
width: 100%;
.layout-logo{
.layout-logo
{
width: 40px;
width: 40px;
.el-icon-menu{
.el-icon-menu
{
margin: auto;
margin: auto;
display: inline-block;
display: inline-block;
}
}
a{
a
{
display: none;
display: none;
}
}
}
}
.menu-list{
.menu-list
{
display: none;
display: none;
}
}
li{
li
{
width: 100%;
width: 100%;
}
}
}
}
...
...
log-manager-ui/admin/src/views/SSO.vue
View file @
dfbc38d4
...
@@ -7,23 +7,36 @@
...
@@ -7,23 +7,36 @@
<
script
>
<
script
>
export
default
{
export
default
{
mounted
()
{
mounted
()
{
let
token
=
this
.
$route
.
query
.
token
let
token
=
this
.
$route
.
query
.
token
;
console
.
log
(
"
token:
"
+
token
)
console
.
log
(
"
token:
"
+
token
);
if
(
token
)
{
if
(
token
)
{
window
.
sessionStorage
.
setItem
(
"
token
"
,
token
);
window
.
sessionStorage
.
setItem
(
"
token
"
,
token
);
this
.
$router
.
push
(
'
/index
'
)
// 有token直接跳转首页
this
.
$route
.
query
.
sysName
}
else
{
?
localStorage
.
setItem
(
"
sysName
"
,
this
.
$route
.
query
.
sysName
)
:
""
;
this
.
$route
.
query
.
sysName
?
(
document
.
title
=
this
.
$route
.
query
.
sysName
)
:
""
;
this
.
$route
.
query
.
sysLogo
?
localStorage
.
setItem
(
"
sysLogo
"
,
this
.
$route
.
query
.
sysLogo
)
:
""
;
this
.
$router
.
push
(
"
/index
"
);
// 有token直接跳转首页
}
else
{
this
.
$message
({
this
.
$message
({
message
:
'
没有权限,正在跳转登录页面...
'
,
message
:
"
没有权限,正在跳转登录页面...
"
,
center
:
true
center
:
true
,
});
});
setTimeout
(
function
(){
setTimeout
(
function
()
{
window
.
location
.
href
=
process
.
env
.
VUE_APP_PORTAL_URL
==
'
undefined
'
?
'
http://192.168.0.98:11072
'
:
process
.
env
.
VUE_APP_PORTAL_URL
window
.
location
.
href
=
process
.
env
.
VUE_APP_PORTAL_URL
==
"
undefined
"
?
"
http://192.168.0.98:11072
"
:
process
.
env
.
VUE_APP_PORTAL_URL
;
//this.$router.push('/login')
//this.$router.push('/login')
},
1000
)
},
1000
);
}
}
}
}
},
};
</
script
>
</
script
>
<
style
>
<
style
>
...
...
log-manager-ui/admin/src/views/login/login.vue
View file @
dfbc38d4
...
@@ -3,16 +3,28 @@
...
@@ -3,16 +3,28 @@
<
template
>
<
template
>
<div
class=
"page page-login flex flex-v"
>
<div
class=
"page page-login flex flex-v"
>
<div
class=
"form-wrap flex flex-1"
>
<div
class=
"form-wrap flex flex-1"
>
<el-form
@
submit.prevent=
'onSubmit'
ref=
"form"
:model=
"form"
label-width=
"80px"
size=
"small"
>
<el-form
<h1>
日志管理平台
</h1>
@
submit.prevent=
"onSubmit"
ref=
"form"
:model=
"form"
label-width=
"80px"
size=
"small"
>
<h1>
{{
title
}}
</h1>
<el-form-item
label=
"用户名"
>
<el-form-item
label=
"用户名"
>
<el-input
v-model=
"form.loginName"
></el-input>
<el-input
v-model=
"form.loginName"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"密码"
>
<el-form-item
label=
"密码"
>
<el-input
v-model=
"form.password"
type=
'password'
></el-input>
<el-input
v-model=
"form.password"
type=
"password"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
size=
"large"
>
<el-form-item
size=
"large"
>
<el-button
type=
"primary"
native-type=
'submit'
:loading=
'loading'
@
click=
'onSubmit'
>
登录
</el-button>
<el-button
type=
"primary"
native-type=
"submit"
:loading=
"loading"
@
click=
"onSubmit"
>
登录
</el-button
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -34,13 +46,14 @@ export default {
...
@@ -34,13 +46,14 @@ export default {
// obj.lat = 30.56;
// obj.lat = 30.56;
// obj.address = "测试站点";
// obj.address = "测试站点";
// obj.siteId = 2;
// obj.siteId = 2;
// this.originData.push(obj);
// this.originData.push(obj);
// this.$nextTick(() => {
// this.$nextTick(() => {
// this.$refs.map1.refresh(this.originData);
// this.$refs.map1.refresh(this.originData);
// });
// });
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
localStorage
.
getItem
(
"
sysName
"
)
?
(
this
.
title
=
localStorage
.
getItem
(
"
sysName
"
))
:
(
this
.
title
=
"
日志管理系统
"
);
},
},
methods
:
{
methods
:
{
login
()
{
login
()
{
...
@@ -91,6 +104,7 @@ export default {
...
@@ -91,6 +104,7 @@ export default {
loginName
:
""
,
loginName
:
""
,
password
:
""
,
password
:
""
,
},
},
title
:
""
,
};
};
},
},
};
};
...
@@ -139,4 +153,3 @@ export default {
...
@@ -139,4 +153,3 @@ export default {
}
}
}
}
</
style
>
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment