<template>
|
<div class="mochaitmo_Box">
|
<div class="left_tree">
|
<el-card class="el-card-define">
|
<div class="card_tree">
|
<el-menu
|
active-text-color="#ffd04b"
|
class="el-menu-vertical-demo"
|
:default-active="activeIndex"
|
background-color="transparent"
|
text-color="#fff"
|
@select="handleselect"
|
>
|
<customElMenu :menuData="menuList"></customElMenu>
|
</el-menu>
|
</div>
|
</el-card>
|
</div>
|
<div class="right_page">
|
<el-card class="el-card-define">
|
<div>
|
<menu-settings v-if="setMenuFlag == 'menuSettings'"></menu-settings>
|
<user-management
|
v-if="setMenuFlag == 'userInfoManage'"
|
></user-management>
|
<org-manage v-if="setMenuFlag == 'orgManage'"></org-manage>
|
<resource-manage
|
v-if="setMenuFlag == 'resourceManage'"
|
></resource-manage>
|
<role-manage v-if="setMenuFlag == 'roleManage'"></role-manage>
|
<authority-manage
|
v-if="setMenuFlag == 'authorityManage'"
|
></authority-manage>
|
<user-role-authorization
|
v-if="setMenuFlag == 'userRoleAuthorization'"
|
></user-role-authorization>
|
<menu-role-authorization
|
v-if="setMenuFlag == 'menuRoleAuthorization'"
|
></menu-role-authorization>
|
<role-menu-authorization
|
v-if="setMenuFlag == 'roleMenuAuthorization'"
|
>
|
</role-menu-authorization>
|
<role-res-authorization
|
v-if="setMenuFlag == 'roleResAuthorization'"
|
></role-res-authorization>
|
<log-log v-if="setMenuFlag == 'logLog'"> </log-log>
|
<operation-log v-if="setMenuFlag == 'operationLog'"></operation-log>
|
<eventlog-manage
|
v-if="setMenuFlag == 'eventlogManage'"
|
></eventlog-manage>
|
<tokentool v-if="setMenuFlag == 'tokentool'"></tokentool>
|
<blackwhite-list
|
v-if="setMenuFlag == 'blackwhiteList'"
|
></blackwhite-list>
|
<database-monitoring
|
v-if="setMenuFlag == 'dataIfream'"
|
></database-monitoring>
|
<system-monitoring
|
v-if="setMenuFlag == 'systemMonitoring'"
|
></system-monitoring>
|
<parameter-configuration
|
v-if="setMenuFlag == 'parameterConfiguration'"
|
></parameter-configuration>
|
</div>
|
</el-card>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import menuSettings from '@/views/maintenance/menuSettings.vue'; //菜单管理
|
import userManagement from '@/views/maintenance/userManagement.vue'; //用户管理
|
import orgManage from '@/views/userManage/orgManage.vue'; //单位管理
|
import resourceManage from '@/views/userManage/resourceManage.vue'; //资源管理
|
import roleManage from '@/views/userManage/roleManage.vue'; //角色管理
|
import authorityManage from '@/views/userManage/authorityManage.vue'; //权限管理
|
import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //用户角色授权
|
import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //菜单权限授权
|
import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //角色菜单授权
|
import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //角色资源授权
|
import logLog from '@/views/maintenance/logLog.vue'; //登录日志
|
import operationLog from '@/views/maintenance/operationLog.vue'; //操作日志
|
import eventlogManage from '@/views/maintenance/eventlogManage.vue'; //资源日志
|
import tokentool from '@/views/maintenance/tokentool.vue'; //令牌管理
|
import blackwhiteList from '@/views/maintenance/blackwhiteList.vue'; //黑白名单
|
import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //数据库监控
|
import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //系统监控
|
import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //系统配置
|
import { selectMenuRecursive } from '../../api/api';
|
import customElMenu from '../../components/customElMenu.vue';
|
export default {
|
components: {
|
menuSettings,
|
userManagement,
|
orgManage,
|
resourceManage,
|
roleManage,
|
authorityManage,
|
userRoleAuthorization,
|
menuRoleAuthorization,
|
roleMenuAuthorization,
|
roleResAuthorization,
|
logLog,
|
operationLog,
|
eventlogManage,
|
tokentool,
|
blackwhiteList,
|
databaseMonitoring,
|
systemMonitoring,
|
parameterConfiguration,
|
customElMenu,
|
},
|
data() {
|
return {
|
setMenuFlag: 'menuSettings',
|
oriData: [], //原始树数据
|
dirData: [], //el树数据
|
newData: [], //拖动后数据
|
lang: 'zh',
|
activeIndex: 'menuSettings',
|
menuList: [],
|
editTitle: '',
|
showPopover: false,
|
showEditInfoWrapper: false,
|
showEdit: false,
|
editMenu: false,
|
editCatalogue: false,
|
editUnit: false,
|
itemdetail: {},
|
formLabelWidth: '70px',
|
};
|
},
|
|
mounted() {
|
this.getTreeData();
|
},
|
methods: {
|
//获取树
|
async getTreeData() {
|
const res = await selectMenuRecursive({ name: '运维管理' });
|
|
if (res.code == 200) {
|
if (res.result.length != 0) {
|
let menuList = res.result.filter((value) => {
|
return value.type == 1;
|
});
|
this.menuList = this.treeData(menuList);
|
} else {
|
alert('暂无菜单栏数据');
|
}
|
} else {
|
console.log('接口报错');
|
}
|
|
// this.treeList = this.treeData(data.result);
|
},
|
treeData(source) {
|
let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆
|
// console.log(cloneData);
|
if (cloneData.length != 0) {
|
return cloneData.filter((father) => {
|
// 循环所有项
|
let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据
|
branchArr.length > 0 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值
|
// 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
|
// 由此循环多次后,就能形成相应的树形数据结构
|
return father.pid == 1; // 返回一级菜单
|
});
|
} else {
|
alert('暂无菜单栏数据');
|
}
|
},
|
|
handleselect(index, indexPath, e) {
|
var data = e.$attrs.perms;
|
this.$store.state.currentPerms = data.perms;
|
var index = data.url;
|
if (index != null) {
|
if (index.indexOf('http') != -1) {
|
this.$store.commit('getIframe', data.url);
|
index = 'dataIfream';
|
}
|
}
|
this.setMenuFlag = index;
|
},
|
//树点击
|
handleNodeClick(data) {
|
this.$store.state.currentPerms = data.perms;
|
var index = data.url;
|
if (index != null) {
|
if (index.indexOf('http') != -1) {
|
this.$store.commit('getIframe', data.url);
|
}
|
}
|
|
switch (data.cnName) {
|
case '菜单管理':
|
this.setMenuFlag = '1';
|
break;
|
case '用户管理':
|
this.setMenuFlag = '2';
|
break;
|
case '单位管理':
|
this.setMenuFlag = '3';
|
break;
|
case '资源管理':
|
this.setMenuFlag = '4';
|
break;
|
case '角色管理':
|
this.setMenuFlag = '5';
|
break;
|
case '权限管理':
|
this.setMenuFlag = '6';
|
break;
|
case '用户角色授权':
|
this.setMenuFlag = '7';
|
break;
|
case '菜单权限授权':
|
this.setMenuFlag = '8';
|
break;
|
case '角色菜单授权':
|
this.setMenuFlag = '9';
|
break;
|
case '角色资源授权':
|
this.setMenuFlag = '10';
|
break;
|
case '登录日志':
|
this.setMenuFlag = '11';
|
break;
|
case '操作日志':
|
this.setMenuFlag = '12';
|
break;
|
case '资源日志':
|
this.setMenuFlag = '13';
|
break;
|
case '令牌管理':
|
this.setMenuFlag = '14';
|
break;
|
case '黑/白名单':
|
this.setMenuFlag = '15';
|
break;
|
case '数据库监控':
|
this.setMenuFlag = '16';
|
break;
|
case '系统监控':
|
this.setMenuFlag = '17';
|
break;
|
case '系统配置':
|
this.setMenuFlag = '18';
|
break;
|
}
|
},
|
},
|
};
|
</script>
|
|
<style lang="less" scoped>
|
.mochaitmo_Box {
|
width: calc(100% - 20px);
|
height: calc(100% - 20px);
|
margin: 0;
|
padding: 10px;
|
position: absolute;
|
.left_tree {
|
width: 270px;
|
height: 100%;
|
position: relative;
|
float: left;
|
border-radius: 5px;
|
}
|
.el-card-define {
|
min-height: 85%;
|
background: #303030;
|
border: 1px solid gray;
|
padding: 1px;
|
}
|
.el-tree {
|
background-color: transparent;
|
}
|
.card_tree {
|
height: 730px;
|
overflow-y: auto;
|
}
|
.el-card__body,
|
.el-main {
|
padding: 10px;
|
}
|
.right_page {
|
width: calc(100% - 280px);
|
height: 100%;
|
background: #303030;
|
position: relative;
|
float: right;
|
}
|
/deep/.el-menu {
|
border: transparent !important;
|
}
|
/deep/.el-submenu__title:hover {
|
background: rgba(255, 255, 255, 0.3) !important;
|
}
|
/deep/ .el-submenu .el-menu-item:hover {
|
background: rgba(255, 255, 255, 0.3) !important;
|
}
|
}
|
</style>
|