初始化

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) { function checkPermission(el, binding) {
const { value } = binding const { value } = binding;
const roles = store.getters && store.getters.roles const all_permission = '*:*:*';
if (value == all_permission) return;
const permissions = store.getters && store.getters.permissions;
if (value && value instanceof Array) { if (value && value instanceof Array && value.length > 0) {
if (value.length > 0) { const permissionFlag = value;
const permissionRoles = value
const hasPermission = roles.some(role => { const hasPermissions = permissions.some(permission => {
return permissionRoles.includes(role) return all_permission === permission || permissionFlag.includes(permission);
}) });
if (!hasPermission) { if (!hasPermissions) {
el.parentNode && el.parentNode.removeChild(el) el.parentNode && el.parentNode.removeChild(el);
}
} }
} else { } else {
throw new Error(`need roles! Like v-permission="['admin','editor']"`) throw new Error(`请设置操作权限标签值`);
} }
} }
export default { export default {
inserted(el, binding) { inserted(el, binding) {
checkPermission(el, binding) checkPermission(el, binding);
}, },
update(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 Element from 'element-ui';
import './styles/element-variables.scss' import './styles/element-variables.scss';
import enLang from 'element-ui/lib/locale/lang/en'// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖 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 App from './App';
import store from './store' import store from './store';
import router from './router' 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 * as filters from './filters'; // global filters
import './permission' // permission control
import './utils/error-log' // error log
import * as filters from './filters' // global filters
/** /**
* If you don't want to use mock-server * 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 ! ! ! * please remove it before going online ! ! !
*/ */
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
const { mockXHR } = require('../mock') const { mockXHR } = require('../mock');
mockXHR() mockXHR();
} }
Vue.use(Element, { Vue.use(Element, {
size: Cookies.get('size') || 'medium', // set element-ui default size size: Cookies.get('size') || 'medium', // set element-ui default size
locale: enLang // 如果使用中文,无需设置,请删除 locale: enLang // 如果使用中文,无需设置,请删除
}) });
// register global utility filters // register global utility filters
Object.keys(filters).forEach(key => { Object.keys(filters).forEach(key => {
Vue.filter(key, filters[key]) Vue.filter(key, filters[key]);
}) });
Vue.use(permission);
Vue.config.productionTip = false Vue.config.productionTip = false;
new Vue({ new Vue({
el: '#app', el: '#app',
router, router,
store, store,
render: h => h(App) render: h => h(App)
}) });