@@ -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';
}
}