初始化
This commit is contained in:
@@ -1,31 +1,31 @@
|
||||
import store from '@/store'
|
||||
import store from '@/store';
|
||||
|
||||
function checkPermission(el, binding) {
|
||||
const { value } = binding
|
||||
const roles = store.getters && store.getters.roles
|
||||
const { value } = binding;
|
||||
const all_permission = '*:*:*';
|
||||
if (value == all_permission) return;
|
||||
const permissions = store.getters && store.getters.permissions;
|
||||
|
||||
if (value && value instanceof Array) {
|
||||
if (value.length > 0) {
|
||||
const permissionRoles = value
|
||||
if (value && value instanceof Array && value.length > 0) {
|
||||
const permissionFlag = value;
|
||||
|
||||
const hasPermission = roles.some(role => {
|
||||
return permissionRoles.includes(role)
|
||||
})
|
||||
const hasPermissions = permissions.some(permission => {
|
||||
return all_permission === permission || permissionFlag.includes(permission);
|
||||
});
|
||||
|
||||
if (!hasPermission) {
|
||||
el.parentNode && el.parentNode.removeChild(el)
|
||||
}
|
||||
if (!hasPermissions) {
|
||||
el.parentNode && el.parentNode.removeChild(el);
|
||||
}
|
||||
} else {
|
||||
throw new Error(`need roles! Like v-permission="['admin','editor']"`)
|
||||
throw new Error(`请设置操作权限标签值`);
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
inserted(el, binding) {
|
||||
checkPermission(el, binding)
|
||||
checkPermission(el, binding);
|
||||
},
|
||||
update(el, binding) {
|
||||
checkPermission(el, binding)
|
||||
checkPermission(el, binding);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
+23
-23
@@ -1,24 +1,24 @@
|
||||
import Vue from 'vue'
|
||||
import Vue from 'vue';
|
||||
|
||||
import Cookies from 'js-cookie'
|
||||
import Cookies from 'js-cookie';
|
||||
|
||||
import 'normalize.css/normalize.css' // a modern alternative to CSS resets
|
||||
import 'normalize.css/normalize.css'; // a modern alternative to CSS resets
|
||||
|
||||
import Element from 'element-ui'
|
||||
import './styles/element-variables.scss'
|
||||
import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖
|
||||
import Element from 'element-ui';
|
||||
import './styles/element-variables.scss';
|
||||
import enLang from 'element-ui/lib/locale/lang/en';// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖
|
||||
|
||||
import '@/styles/index.scss' // global css
|
||||
import '@/styles/index.scss'; // global css
|
||||
|
||||
import App from './App'
|
||||
import store from './store'
|
||||
import router from './router'
|
||||
import App from './App';
|
||||
import store from './store';
|
||||
import router from './router';
|
||||
import permission from '@/directive/permission/index.js';
|
||||
import './icons'; // icon
|
||||
import './permission'; // permission control
|
||||
import './utils/error-log'; // error log
|
||||
|
||||
import './icons' // icon
|
||||
import './permission' // permission control
|
||||
import './utils/error-log' // error log
|
||||
|
||||
import * as filters from './filters' // global filters
|
||||
import * as filters from './filters'; // global filters
|
||||
|
||||
/**
|
||||
* If you don't want to use mock-server
|
||||
@@ -29,25 +29,25 @@ import * as filters from './filters' // global filters
|
||||
* please remove it before going online ! ! !
|
||||
*/
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
const { mockXHR } = require('../mock')
|
||||
mockXHR()
|
||||
const { mockXHR } = require('../mock');
|
||||
mockXHR();
|
||||
}
|
||||
|
||||
Vue.use(Element, {
|
||||
size: Cookies.get('size') || 'medium', // set element-ui default size
|
||||
locale: enLang // 如果使用中文,无需设置,请删除
|
||||
})
|
||||
});
|
||||
|
||||
// register global utility filters
|
||||
Object.keys(filters).forEach(key => {
|
||||
Vue.filter(key, filters[key])
|
||||
})
|
||||
|
||||
Vue.config.productionTip = false
|
||||
Vue.filter(key, filters[key]);
|
||||
});
|
||||
Vue.use(permission);
|
||||
Vue.config.productionTip = false;
|
||||
|
||||
new Vue({
|
||||
el: '#app',
|
||||
router,
|
||||
store,
|
||||
render: h => h(App)
|
||||
})
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user