From fa5fdadf07cb644db13fe69001881098865ae4f2 Mon Sep 17 00:00:00 2001 From: sc Date: Wed, 16 Jun 2021 10:46:29 +0800 Subject: [PATCH] =?UTF-8?q?ADD=20v-auth=20=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/directives/auth.js | 22 ++++++++++++++++++++++ src/main.js | 5 ++++- src/views/other/directive.vue | 15 +++++++++++++++ src/views/userCenter/index.vue | 12 ++++++------ 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 src/directives/auth.js create mode 100644 src/views/other/directive.vue diff --git a/src/directives/auth.js b/src/directives/auth.js new file mode 100644 index 00000000..660bcc87 --- /dev/null +++ b/src/directives/auth.js @@ -0,0 +1,22 @@ +import permission from '@/utils/permission' + +export default { + mounted(el, binding) { + const { value } = binding + if(Array.isArray(value)){ + let ishas = false; + value.forEach(item => { + if(permission(item)){ + ishas = true; + } + }) + if (!ishas){ + el.parentNode.removeChild(el) + } + }else{ + if(!permission(value)){ + el.parentNode.removeChild(el); + } + } + } +}; diff --git a/src/main.js b/src/main.js index 4d2734a8..042cfedf 100644 --- a/src/main.js +++ b/src/main.js @@ -17,6 +17,7 @@ import scUpload from './components/scUpload' import scUploadMultiple from './components/scUpload/multiple' import scFormTable from './components/scFormTable' import scTableSelect from './components/scTableSelect' +import auth from './directives/auth' const app = createApp(App); @@ -24,7 +25,7 @@ app.config.globalProperties.$CONFIG = config; app.config.globalProperties.$TOOL = tool; app.config.globalProperties.$HTTP = http; app.config.globalProperties.$API = api; -app.config.globalProperties.$HAS = permission; +app.config.globalProperties.$AUTH = permission; app.use(store); app.use(router); @@ -37,4 +38,6 @@ app.component('scUploadMultiple', scUploadMultiple); app.component('scFormTable', scFormTable); app.component('scTableSelect', scTableSelect); +app.directive('auth', auth) + app.mount('#app'); diff --git a/src/views/other/directive.vue b/src/views/other/directive.vue new file mode 100644 index 00000000..1013d139 --- /dev/null +++ b/src/views/other/directive.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/userCenter/index.vue b/src/views/userCenter/index.vue index 403c21d5..af13b64b 100644 --- a/src/views/userCenter/index.vue +++ b/src/views/userCenter/index.vue @@ -32,12 +32,12 @@

当前账号权限

- user.add - user.edit - user.delete - list.add - list.edit - list.delete + user.add + user.edit + user.delete + list.add + list.edit + list.delete