Former-commit-id: 08ddfbafd3c54264f302efc6bcb235f5229e76f8
Former-commit-id: ff58ed1f19552efdda3dbe1a1ddaea6353313fb9
1.0
wanggang 5 years ago
parent ab0ee40a8a
commit a3adaa057d

@ -13,9 +13,30 @@
</li>
</ul>
<ul class="navbar-nav ml-auto">
</ul>
</nav>
<aside class="main-sidebar sidebar-dark-primary elevation-4">
<div class="brand-link" href="/">
</div>
<div class="sidebar">
<nav class="mt-2">
<ul class="nav nav-pills nav-sidebar flex-column nav-flat" data-widget="treeview" role="menu" data-accordion="nav-icon false">
<template v-if="getArea()==='default'">
<li class="nav-header">智慧校园</li>
<li class="nav-item">
<router-link to="/" :class="getLinkClass('default','/')">首页</router-link>
</li>
</template>
<template v-else>
<li v-for="item in getMenus()">
<router-link :to="getPath(item.number)" :class="getLinkClass(item.number,getPath(item.number))">{{item.name}}</router-link>
</li>
</template>
</ul>
</nav>
</div>
</aside>
<div class="content-wrapper">
<section class="content">
<div class="container-fluid">
@ -38,6 +59,7 @@
data: function () {
return {
url: config.baseUrl + 'Site/Layout',
viewPath:'/components/views/areas/'
}
},
mounted: function () {
@ -49,6 +71,14 @@
});
},
methods: {
getArea: function () {
var path = this.$route.path === '/' ? (this.viewPath+'default/index.html') : this.$route.path;
path = path.substr(this.viewPath.length);
return path === '/' ? 'default' : path.substr(0, path.indexOf('/'));
},
getPath: function (area) {
return this.viewPath + area + '/index.html';
},
getModules: function () {
var numbers = Enumerable.from(store.state.layout.user.claims).where(o => o.type === store.state.layout.user.roleClaimType).select(o => o.value).toArray();
var modules = Enumerable.from(store.state.layout.modules)
@ -56,8 +86,16 @@
.orderBy(o => o.order).toArray();
return modules;
},
getPath: function (area) {
return '/components/views/' + area + '/index.html';
getMenus: function (area) {
area = area||this.getArea();
var module = Enumerable.from(store.state.layout.modules).firstOrDefault(o => o.number === area);
var numbers = Enumerable.from(store.state.layout.user.claims).where(o => o.type === store.state.layout.user.roleClaimType).select(o => o.value).toArray();
var permissions = Enumerable.from(module.permissionCategories)
.selectMany(o => o.permissions)
.where(o => Enumerable.from(numbers).any(n => n === o.number))
.orderBy(o => o.order)
.toArray()
return permissions;
},
getLinkClass: function (area) {
var cls = 'nav-link';
@ -66,7 +104,7 @@
cls += ' active';
}
else {
if (path.indexOf('/components/views/'+area) === 0) {
if (path.indexOf(this.viewPath+area) === 0) {
cls += ' active';
}
}

Loading…
Cancel
Save