|
|
<template>
|
|
|
<el-row class="container darkmenu" style="margin-top: 0px;">
|
|
|
<el-col :span="24" class="header" style="background-position: center">
|
|
|
<el-col :span="10" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'">
|
|
|
<el-col :span="14" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'">
|
|
|
{{collapsed?'':sysName}}
|
|
|
</el-col>
|
|
|
<el-col :span="10">
|
|
|
<div class="tools" @click.prevent="collapse" style="width: 380px">
|
|
|
<i class="fa "></i>
|
|
|
<el-col :span="6">
|
|
|
<div class="tools" @click.prevent="collapse" style="font-size:24px;width: 15px;margin-top: 80px;z-index:9999;margin-left: 10px;position:absolute;">
|
|
|
<!-- ;margin-top: 80px;z-index:9999;margin-left: 170px-->
|
|
|
<i class="el-icon-s-operation" style="color: rgb(38,56,76)"></i>
|
|
|
</div>
|
|
|
<!-- 标签i的图标 fa-align-justify-->
|
|
|
</el-col>
|
|
|
<el-col :span="4" class="userinfo">
|
|
|
<el-dropdown trigger="hover" >
|
|
|
<span class="el-dropdown-link userinfo-inner">{{sysUserName}}<img :src="this.sysUserAvatar"/></span>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
<el-dropdown-item>我的消息</el-dropdown-item>
|
|
|
<el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>
|
|
|
<el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>
|
|
|
<el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
<!-- <el-col :span="4" class="userinfo">-->
|
|
|
<!-- <el-dropdown trigger="hover" >-->
|
|
|
<!-- <span class="el-dropdown-link userinfo-inner">{{sysUserName}}<img :src="this.sysUserAvatar"/></span>-->
|
|
|
<!-- <el-dropdown-menu slot="dropdown">-->
|
|
|
<!-- <el-dropdown-item>我的消息</el-dropdown-item>-->
|
|
|
<!-- <el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>-->
|
|
|
<!-- <el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>-->
|
|
|
<!-- <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>-->
|
|
|
<!-- </el-dropdown-menu>-->
|
|
|
<!-- </el-dropdown>-->
|
|
|
<!-- </el-col>-->
|
|
|
</el-col>
|
|
|
</el-col>
|
|
|
<el-col>
|
|
|
<el-dialog title="修改密码" :visible.sync="dialogFormVisible">
|
|
|
<el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">
|
|
|
<el-form-item label="用户名" prop="name">
|
|
|
<span>{{sysUserName}}</span>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="新密码" prop="newpwd">
|
|
|
<el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="确认密码" prop="renewpwd">
|
|
|
<el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>
|
|
|
</el-form-item>
|
|
|
<!-- <el-col>-->
|
|
|
<!-- <el-dialog title="修改密码" :visible.sync="dialogFormVisible">-->
|
|
|
<!-- <el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">-->
|
|
|
<!-- <el-form-item label="用户名" prop="name">-->
|
|
|
<!-- <span>{{sysUserName}}</span>-->
|
|
|
<!-- </el-form-item>-->
|
|
|
<!-- <el-form-item label="新密码" prop="newpwd">-->
|
|
|
<!-- <el-input type="password" v-model="resetForm.newpwd" autocomplete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三"></el-input>-->
|
|
|
<!-- </el-form-item>-->
|
|
|
<!-- <el-form-item label="确认密码" prop="renewpwd">-->
|
|
|
<!-- <el-input type="password" v-model="resetForm.renewpwd" auto-complete="off"></el-input>-->
|
|
|
<!-- </el-form-item>-->
|
|
|
<!-- <el-form-item>-->
|
|
|
<!-- <el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>-->
|
|
|
<!-- </el-form-item>-->
|
|
|
|
|
|
</el-form>
|
|
|
</el-dialog>
|
|
|
</el-col>
|
|
|
<!-- </el-form>-->
|
|
|
<!-- </el-dialog>-->
|
|
|
<!-- </el-col>-->
|
|
|
<el-col :span="24" class="main">
|
|
|
<aside :class="collapsed?'menu-collapsed':'menu-expanded'">
|
|
|
<!--导航菜单-->
|
...
|
...
|
@@ -99,54 +100,54 @@ |
|
|
},
|
|
|
components: {ElFormItem,TabMenu},
|
|
|
data() {
|
|
|
var validatePass = (rule, value, callback) => {
|
|
|
if (!value) {
|
|
|
callback(new Error('请输入新密码'));
|
|
|
}else {
|
|
|
var ls=0;
|
|
|
if(value.match(/([a-z])+/)){
|
|
|
ls++;
|
|
|
} if(value.match(/([0-9])+/)){
|
|
|
ls++;
|
|
|
} if(value.match(/([A-Z])+/)){
|
|
|
ls++;
|
|
|
} if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){
|
|
|
ls++;
|
|
|
} if (value.toString().length < 8 || value.toString().length > 20) {
|
|
|
callback(new Error('密码长度为8 - 20个字符'));
|
|
|
ls=0;
|
|
|
} if(value.match(/([\u4E00-\u9FA5])+/)){
|
|
|
callback(new Error('不能包含中文字符'));
|
|
|
ls=0;
|
|
|
}
|
|
|
switch (ls) {
|
|
|
case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
|
|
|
case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
|
|
|
case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break;
|
|
|
case 3:
|
|
|
case 4: this.passwordPercent = 100;break;
|
|
|
default: this.passwordPercent = 0;break;
|
|
|
}
|
|
|
callback();
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
var validatePass2 = (rule, value, callback) => {
|
|
|
if (value === '') {
|
|
|
callback(new Error('请再次输入密码'));
|
|
|
} else if (value !== this.resetForm.newpwd) {
|
|
|
callback(new Error('两次输入密码不一致!'));
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
|
};
|
|
|
// var validatePass = (rule, value, callback) => {
|
|
|
// if (!value) {
|
|
|
// callback(new Error('请输入新密码'));
|
|
|
// }else {
|
|
|
// var ls=0;
|
|
|
// if(value.match(/([a-z])+/)){
|
|
|
// ls++;
|
|
|
// } if(value.match(/([0-9])+/)){
|
|
|
// ls++;
|
|
|
// } if(value.match(/([A-Z])+/)){
|
|
|
// ls++;
|
|
|
// } if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){
|
|
|
// ls++;
|
|
|
// } if (value.toString().length < 8 || value.toString().length > 20) {
|
|
|
// callback(new Error('密码长度为8 - 20个字符'));
|
|
|
// ls=0;
|
|
|
// } if(value.match(/([\u4E00-\u9FA5])+/)){
|
|
|
// callback(new Error('不能包含中文字符'));
|
|
|
// ls=0;
|
|
|
// }
|
|
|
// switch (ls) {
|
|
|
// case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
|
|
|
// case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
|
|
|
// case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break;
|
|
|
// case 3:
|
|
|
// case 4: this.passwordPercent = 100;break;
|
|
|
// default: this.passwordPercent = 0;break;
|
|
|
// }
|
|
|
// callback();
|
|
|
// }
|
|
|
//
|
|
|
// };
|
|
|
//
|
|
|
// var validatePass2 = (rule, value, callback) => {
|
|
|
// if (value === '') {
|
|
|
// callback(new Error('请再次输入密码'));
|
|
|
// } else if (value !== this.resetForm.newpwd) {
|
|
|
// callback(new Error('两次输入密码不一致!'));
|
|
|
// } else {
|
|
|
// callback();
|
|
|
// }
|
|
|
// };
|
|
|
return {
|
|
|
sysName:'',
|
|
|
collapsed:false,
|
|
|
sysUserName: '',
|
|
|
// sysUserName: '',
|
|
|
sysUserId:'',
|
|
|
sysUserAvatar: '',
|
|
|
// sysUserAvatar: '',
|
|
|
isRouterAlive: true,
|
|
|
form: {
|
|
|
name: '',
|
...
|
...
|
@@ -158,19 +159,19 @@ |
|
|
resource: '',
|
|
|
desc: ''
|
|
|
},
|
|
|
dialogFormVisible:false,
|
|
|
resetForm: {
|
|
|
newpwd: '',
|
|
|
renewpwd: '',
|
|
|
},
|
|
|
resetFormRules: {
|
|
|
newpwd: [
|
|
|
{ required: true, validator: validatePass, trigger: 'blur' }
|
|
|
],
|
|
|
renewpwd: [
|
|
|
{ required: true, validator: validatePass2, trigger: 'blur' }
|
|
|
]
|
|
|
},
|
|
|
// dialogFormVisible:false,
|
|
|
// resetForm: {
|
|
|
// newpwd: '',
|
|
|
// renewpwd: '',
|
|
|
// },
|
|
|
// resetFormRules: {
|
|
|
// newpwd: [
|
|
|
// { required: true, validator: validatePass, trigger: 'blur' }
|
|
|
// ],
|
|
|
// renewpwd: [
|
|
|
// { required: true, validator: validatePass2, trigger: 'blur' }
|
|
|
// ]
|
|
|
// },
|
|
|
editForm: {
|
|
|
userId: '',
|
|
|
password: '',
|
...
|
...
|
@@ -188,53 +189,53 @@ |
|
|
})
|
|
|
})
|
|
|
},
|
|
|
editPass:function(){
|
|
|
this.dialogFormVisible=true;
|
|
|
},
|
|
|
updateCache:function(){
|
|
|
resetToken().then( res =>{
|
|
|
let response = res.data;
|
|
|
if (response.code === '200'){
|
|
|
this.$notify({
|
|
|
title: '成功',
|
|
|
message: '缓存更新成功',
|
|
|
type: 'success'
|
|
|
});
|
|
|
}else{
|
|
|
this.$notify.error({
|
|
|
title: '失败',
|
|
|
message: '缓存更新失败'
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
submitEdit(formName){
|
|
|
this.$refs[formName].validate((valid) => {
|
|
|
if (valid) {
|
|
|
this.editForm.userId=this.sysUserId;
|
|
|
this.editForm.password=this.resetForm.renewpwd;
|
|
|
editPass(this.editForm).then(res=>{
|
|
|
let response=res.data;
|
|
|
if(response.code=='200'){
|
|
|
this.$notify({
|
|
|
title: '密码修改成功',
|
|
|
message: '密码修改成功,退出请重新登录',
|
|
|
type: 'success'
|
|
|
});
|
|
|
this.dialogFormVisible=false;
|
|
|
}else{
|
|
|
this.$notify.error({
|
|
|
title: '密码修改失败',
|
|
|
message: '密码修改失败!!!'
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
console.log('error submit!!');
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
// editPass:function(){
|
|
|
// this.dialogFormVisible=true;
|
|
|
// },
|
|
|
// updateCache:function(){
|
|
|
// resetToken().then( res =>{
|
|
|
// let response = res.data;
|
|
|
// if (response.code === '200'){
|
|
|
// this.$notify({
|
|
|
// title: '成功',
|
|
|
// message: '缓存更新成功',
|
|
|
// type: 'success'
|
|
|
// });
|
|
|
// }else{
|
|
|
// this.$notify.error({
|
|
|
// title: '失败',
|
|
|
// message: '缓存更新失败'
|
|
|
// });
|
|
|
// }
|
|
|
// })
|
|
|
// },
|
|
|
// submitEdit(formName){
|
|
|
// this.$refs[formName].validate((valid) => {
|
|
|
// if (valid) {
|
|
|
// this.editForm.userId=this.sysUserId;
|
|
|
// this.editForm.password=this.resetForm.renewpwd;
|
|
|
// editPass(this.editForm).then(res=>{
|
|
|
// let response=res.data;
|
|
|
// if(response.code=='200'){
|
|
|
// this.$notify({
|
|
|
// title: '密码修改成功',
|
|
|
// message: '密码修改成功,退出请重新登录',
|
|
|
// type: 'success'
|
|
|
// });
|
|
|
// this.dialogFormVisible=false;
|
|
|
// }else{
|
|
|
// this.$notify.error({
|
|
|
// title: '密码修改失败',
|
|
|
// message: '密码修改失败!!!'
|
|
|
// });
|
|
|
// }
|
|
|
// });
|
|
|
// } else {
|
|
|
// console.log('error submit!!');
|
|
|
// return false;
|
|
|
// }
|
|
|
// });
|
|
|
// },
|
|
|
onSubmit() {
|
|
|
console.log('submit!');
|
|
|
},
|
...
|
...
|
@@ -248,31 +249,32 @@ |
|
|
this.reload()
|
|
|
},
|
|
|
//退出登录
|
|
|
logout: function () {
|
|
|
var _this = this;
|
|
|
this.$confirm('确认退出吗?', '提示', {
|
|
|
//type: 'warning'
|
|
|
}).then(() => {
|
|
|
sessionStorage.removeItem('user');
|
|
|
sessionStorage.removeItem('menu');
|
|
|
//退出后初始化原来的路由
|
|
|
let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu'));
|
|
|
console.log(sysRoutes);
|
|
|
_this.$router.options.routes = sysRoutes;
|
|
|
|
|
|
_this.$router.push('/login');
|
|
|
}).catch(() => {
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
},
|
|
|
// logout: function () {
|
|
|
// var _this = this;
|
|
|
// this.$confirm('确认退出吗?', '提示', {
|
|
|
// //type: 'warning'
|
|
|
// }).then(() => {
|
|
|
// sessionStorage.removeItem('user');
|
|
|
// sessionStorage.removeItem('menu');
|
|
|
// //退出后初始化原来的路由
|
|
|
// let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu'));
|
|
|
// console.log(sysRoutes);
|
|
|
// _this.$router.options.routes = sysRoutes;
|
|
|
//
|
|
|
// _this.$router.push('/login');
|
|
|
// }).catch(() => {
|
|
|
//
|
|
|
// });
|
|
|
//
|
|
|
//
|
|
|
// },
|
|
|
//折叠导航栏
|
|
|
collapse:function(){
|
|
|
this.collapsed=!this.collapsed;
|
|
|
},
|
|
|
showMenu(i,status){
|
|
|
this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none';
|
|
|
this.$refs.menuColl
|
|
|
apsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none';
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
...
|
...
|
@@ -282,7 +284,8 @@ |
|
|
user = JSON.parse(user);
|
|
|
this.sysUserName = user.username || '';
|
|
|
this.sysUserId=user.userId||'';
|
|
|
this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg';
|
|
|
|
|
|
this.sysUserAvatar = user.userface || '~img/faceDefault.jpg';
|
|
|
}
|
|
|
//操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
|
|
|
var userRouters = sessionStorage.getItem('menu');
|
...
|
...
|
@@ -312,19 +315,19 @@ |
|
|
.userinfo {
|
|
|
text-align: right;
|
|
|
padding-right: 125px;
|
|
|
padding-top: 71px;
|
|
|
padding-top: 21px;
|
|
|
float: right;
|
|
|
.userinfo-inner {
|
|
|
cursor: pointer;
|
|
|
color:rgb(180,150,121);
|
|
|
img {
|
|
|
width: 40px;
|
|
|
height: 40px;
|
|
|
border-radius: 20px;
|
|
|
margin: 10px 0px 10px 10px;
|
|
|
float: right;
|
|
|
}
|
|
|
}
|
|
|
/*.userinfo-inner {*/
|
|
|
/* cursor: pointer;*/
|
|
|
/* color:rgb(180,150,121);*/
|
|
|
/* img {*/
|
|
|
/* width: 40px;*/
|
|
|
/* height: 40px;*/
|
|
|
/* border-radius: 20px;*/
|
|
|
/* margin: 10px 0px 10px 10px;*/
|
|
|
/* float: right;*/
|
|
|
/* }*/
|
|
|
/*}*/
|
|
|
}
|
|
|
.logo {
|
|
|
//width:230px;
|
...
|
...
|
@@ -345,14 +348,14 @@ |
|
|
}
|
|
|
}
|
|
|
.logo-width{
|
|
|
width:230px;
|
|
|
width:380px;
|
|
|
}
|
|
|
.logo-collapse-width{
|
|
|
width:60px
|
|
|
}
|
|
|
.tools{
|
|
|
padding: 0px 23px;
|
|
|
width:14px;
|
|
|
/*padding: 0px 13px;*/
|
|
|
/*width:14px;*/
|
|
|
height: 60px;
|
|
|
line-height: 60px;
|
|
|
cursor: pointer;
|
...
|
...
|
|