Commit dfbc38d4 authored by 姬鋆屾's avatar 姬鋆屾

tui

parent 56ccd4d4
......@@ -6,41 +6,57 @@
<div class="layout-menu flex flex-1">
<!-- logo -->
<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="/">
<img
src="../assets/images/logo2.png"
style="margin-bottom: 5px"
height="27"
width="27"
:src="sysLogo"
style="margin-bottom: 5px"
height="27"
width="27"
/>
<b style="color: white; font-size: 20px; font-weight: bold; margin-right: 20px">&nbsp;&nbsp;&nbsp; 日志管理系统 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b>
<b
style="color: white; font-size: 20px; font-weight: bold; margin-right: 20px"
>&nbsp;&nbsp;&nbsp;
{{ title }} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b
>
</router-link>
</div>
<!-- 一级菜单 -->
<ul class="menu-list flex">
<li v-for='item in menu' :key='item.id'>
<router-link :to="item.path" :active='submenu.path === item.path' :title="item.name">
<i :class="'el-icon-'+item.icon"></i>
{{item.name}}
<li v-for="item in menu" :key="item.id">
<router-link
:to="item.path"
:active="submenu.path === item.path"
:title="item.name"
>
<i :class="'el-icon-' + item.icon"></i>
{{ item.name }}
</router-link>
</li>
</ul>
</div>
<div class="layout-profile">
<!-- <span class="el-dropdown-link">
<!-- <span class="el-dropdown-link">
{{userData.currUserName}}
<i class="el-icon-arrow-down el-icon--right"></i>
</span> -->
<el-dropdown @command="handleCommand">
<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">
<span class="el-dropdown-link" style="color:white">
{{userData.currUserName}}
{{ userData.currUserName }}
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="update">修改密码</el-dropdown-item>
<el-dropdown-item command="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
......@@ -49,23 +65,33 @@
</div>
<!-- 一级菜单 -->
<ul class="mobile-menu-list flex flex-pack-justify" v-if='showMobileMenu'>
<li v-for='item in menu' :key='item.id'>
<router-link :to="item.path" :active='submenu.path === item.path' :title="item.name">
<i :class="'el-icon-'+item.icon"></i>
{{item.name}}
<ul class="mobile-menu-list flex flex-pack-justify" v-if="showMobileMenu">
<li v-for="item in menu" :key="item.id">
<router-link
:to="item.path"
:active="submenu.path === item.path"
:title="item.name"
>
<i :class="'el-icon-' + item.icon"></i>
{{ item.name }}
</router-link>
</li>
</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">
<ul class="submenu-list flex">
<li v-for='item in submenu.children' :key='item.id'>
<a :href="item.path" target="blank" v-if='item.isOut'>{{item.name}}</a>
<router-link :to="item.path" :active='group === item.path' v-else>{{item.name}}</router-link>
<li v-for="item in submenu.children" :key="item.id">
<a :href="item.path" target="blank" v-if="item.isOut">{{
item.name
}}</a>
<router-link :to="item.path" :active="group === item.path" v-else>{{
item.name
}}</router-link>
</li>
</ul>
</div>
......@@ -78,27 +104,36 @@ export default {
name: "Header",
methods: {
handleCommand(key) {
if(key === 'update'){
this.$router.push('/login/updatePwd')
if (key === "update") {
this.$router.push("/login/updatePwd");
}
if(key === 'logout'){
this.logout()
if (key === "logout") {
this.logout();
}
},
// 退出登录
logout() {
this.$post('/login/logout').then(data=>{}).catch(error=>{}).then(()=>{
this.$message.success('已退出登录');
this.$store.commit('logout');
this.$router.replace('/login');
})
}
this.$post("/login/logout")
.then((data) => {})
.catch((error) => {})
.then(() => {
this.$message.success("已退出登录");
this.$store.commit("logout");
this.$router.replace("/login");
});
},
},
beforeDestroy() {
console.log("beforeDestroy");
//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");
// this.$nextTick(function () {
// console.log("login websocket:"+"ws://"+process.env.VUE_APP_WEBSOCKET_API +"/ws?accessToken="+ this.$store.state.userData.id)
......@@ -109,12 +144,10 @@ export default {
// this.$store.state.userData.id
// );
// });
// let _this = this;
// const getsocketData = (e) => {i
// // 创建接收消息函数
// const data = e && e.detail.data;
// let obj = JSON.parse(data);
// if (obj.type == "SEND_TO_ALL_REQUEST") {
// vm.refreshData();
......@@ -125,87 +158,101 @@ export default {
// type: "warning",
// duration: 8000,
// });
// }
// };
// this.getsocketData = getsocketData;
// // 注册监听事件
// window.addEventListener("onmessageWS", getsocketData,false);
},
},
computed: {
group() {
const relativeGroup = this.$store.state.group;
if(relativeGroup) {
if (relativeGroup) {
return relativeGroup;
}
let groupArray = this.$route.path.split('/');
let groupArray = this.$route.path.split("/");
let group = this.$route.path;
let type = groupArray.pop();
if(['add', 'edit', 'view', 'new','importView','resetPwdView'].indexOf(type) > -1){
groupArray.push('list');
group = groupArray.join('/')
if (
["add", "edit", "view", "new", "importView", "resetPwdView"].indexOf(
type
) > -1
) {
groupArray.push("list");
group = groupArray.join("/");
}
return group;
},
relativeGroup() {
return this.$store.state.group
return this.$store.state.group;
},
flat() {
return this.userData.flat
return this.userData.flat;
},
menu() {
if(!this.userData.barList) return [];
return this.userData.barList.map(item=>{
const url = item.url ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
if (!this.userData.barList) return [];
return this.userData.barList.map((item) => {
const url = item.url
? item.url
: item.childList[0]
? item.childList[0].url || ""
: "";
return {
name: item.name,
path: url,
id: item.id,
icon: item.imgPath,
children: item.childList.map(sub=>{
children: item.childList.map((sub) => {
return {
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,
parentId: sub.parentId,
icon: sub.imgPath,
isOut: /^https?\:\/\//.test(sub.url)
}
})
}
})
isOut: /^https?\:\/\//.test(sub.url),
};
}),
};
});
},
submenu() {
if(!this.menu.length) return {};
if (!this.menu.length) return {};
let matchMenu = {};
this.menu.forEach(item=>{
this.menu.forEach((item) => {
const menu = item;
item.children.forEach(item=>{
if(item.path === this.group) {
item.children.forEach((item) => {
if (item.path === this.group) {
matchMenu = menu;
return;
}
})
})
return matchMenu
});
});
return matchMenu;
},
userData() {
return this.$store.state.userData;
}
},
},
data() {
return {
showMobileMenu: false,
}
}
}
title: "日志管理系统",
sysLogo: "",
portal: process.env.VUE_APP_PORTAL_URL + "/#/home/siteArrange",
};
},
};
</script>
<style lang="less">
.layout-header{
.mobile-menu-list{display: none}
.layout-header {
.mobile-menu-list {
display: none;
}
.layout-menu-wrapper {
height: 66px;
line-height: 66px;
......@@ -250,23 +297,23 @@ export default {
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper {
padding-left: 20px;
background: #fff;
height: 42px;
border-bottom: 1px solid #ededed;
.layout-title{
.layout-title {
font-size: 18px;
height: 40px;
line-height: 40px;
color: #333;
}
.layout-submenu{
.layout-submenu {
margin-left: 15px;
white-space: nowrap;
overflow: auto;
li{
a{
li {
a {
display: block;
padding: 0 10px;
height: 40px;
......@@ -274,7 +321,7 @@ export default {
font-size: 14px;
color: #666;
&.router-link-active,
&[active]{
&[active] {
color: #1890ff;
border-bottom: 2px solid #1890ff;
}
......@@ -284,48 +331,48 @@ export default {
}
}
@media screen and (max-width: 800px){
@media screen and (max-width: 800px) {
.layout-header {
.mobile-menu-list{
.mobile-menu-list {
display: flex;
background: #222333;
padding: 0 10px;
li{
li {
padding: 8px 5px;
a{
a {
width: 1em;
display: block;
color: #eee;
font-size: 14px;
word-break: break-all;
&.router-link-active,
&[active]{
&[active] {
color: #1890ff;
}
}
}
}
.layout-submenu-wrapper{
.layout-submenu-wrapper {
padding-left: 0;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.layout-menu-wrapper {
width: 100%;
.layout-logo{
.layout-logo {
width: 40px;
.el-icon-menu{
.el-icon-menu {
margin: auto;
display: inline-block;
}
a{
a {
display: none;
}
}
.menu-list{
.menu-list {
display: none;
}
li{
li {
width: 100%;
}
}
......
......@@ -7,23 +7,36 @@
<script>
export default {
mounted() {
let token = this.$route.query.token
console.log("token:"+token)
if(token ) {
let token = this.$route.query.token;
console.log("token:" + token);
if (token) {
window.sessionStorage.setItem("token", token);
this.$router.push('/index') // 有token直接跳转首页
}else{
this.$route.query.sysName
? 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({
message: '没有权限,正在跳转登录页面...',
center: true
});
setTimeout(function(){
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')
},1000)
message: "没有权限,正在跳转登录页面...",
center: true,
});
setTimeout(function() {
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')
}, 1000);
}
}
}
},
};
</script>
<style>
......@@ -31,4 +44,4 @@ export default {
width: 300px;
height: 100px;
}
</style>
\ No newline at end of file
</style>
......@@ -3,23 +3,35 @@
<template>
<div class="page page-login flex flex-v">
<div class="form-wrap flex flex-1">
<el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="80px" size="small">
<h1>日志管理平台</h1>
<el-form
@submit.prevent="onSubmit"
ref="form"
:model="form"
label-width="80px"
size="small"
>
<h1>{{ title }}</h1>
<el-form-item label="用户名">
<el-input v-model="form.loginName"></el-input>
</el-form-item>
<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 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>
</div>
<div class="footer">
登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品
</div>
</div>
</div>
</template>
......@@ -34,13 +46,14 @@ export default {
// obj.lat = 30.56;
// obj.address = "测试站点";
// obj.siteId = 2;
// this.originData.push(obj);
// this.$nextTick(() => {
// 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
localStorage.getItem("sysName")
? (this.title = localStorage.getItem("sysName"))
: (this.title = "日志管理系统");
},
methods: {
login() {
......@@ -91,6 +104,7 @@ export default {
loginName: "",
password: "",
},
title: "",
};
},
};
......@@ -139,4 +153,3 @@ export default {
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment