初始化

This commit is contained in:
zgj_jj
2022-11-18 18:10:05 +08:00
parent ada2ec8518
commit b160e37bc2
2 changed files with 39 additions and 39 deletions
+16 -16
View File
@@ -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
View File
@@ -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)
})
});