chencc 1 год назад
Родитель
Сommit
70777abd0e

+ 3 - 0
src/main.js

@@ -21,6 +21,9 @@ import TinymceEditor from '@/components/TinymceEditor/index.vue';
 // import SvgIcon from '@/components/FormGenerator/components/SvgIcon'; // svg component
 import HeaderTitle from '@/components/header-title';
 import authSelection from '@/components/authSelection';
+import permissionccc from '@/utils/permissionccc.js'
+
+Vue.directive('permissionccc',permissionccc)
 Vue.component('HeaderTitle', HeaderTitle);
 Vue.component('authSelection', authSelection);
 

+ 5 - 0
src/utils/permission.js

@@ -73,6 +73,10 @@ export function hasAnyPermission(value) {
   return arrayHasAny(store.state.user?.authorities, value);
 }
 
+
+
+
+
 export default {
   install(Vue) {
     // 添加全局方法
@@ -111,4 +115,5 @@ export default {
       }
     });
   }
+  // authorities
 };

+ 19 - 0
src/utils/permissionccc.js

@@ -0,0 +1,19 @@
+import store from '@/store';
+export default {
+  inserted(el, binding) {
+    const { value } = binding;
+    const permissions = store.state.user.authorities;
+
+    if (value && value instanceof Array && value.length > 0) {
+      const hasPermission = permissions.some((perm) => {
+        return value.includes(perm);
+      });
+
+      if (!hasPermission) {
+        el.parentNode && el.parentNode.removeChild(el);
+      }
+    } else {
+      throw new Error(`需要指定权限标识! 如 v-permission="['sys:user:add']"`);
+    }
+  }
+};

+ 4 - 4
src/views/material/BOMmanage/detailsPop.vue

@@ -7,16 +7,16 @@
         <div class="radio_box rx-cc">
           
           <el-radio-group size="small" v-model="currentNodeData.bomType" @change="bomChange">
-            <el-radio-button :label="4">EBOM </el-radio-button>
-            <el-radio-button :label="1">PBOM </el-radio-button>
+            <el-radio-button :label="4" v-permissionccc="['main:bomcategory:ebom']">EBOM </el-radio-button>
+            <el-radio-button :label="1" >PBOM </el-radio-button>
 
             <!-- v-if="
                 searchObj.isProduct ||
                 [1, 9].includes(searchObj.rootPathIdParent)
               " -->
-            <el-radio-button :label="2">MBOM
+            <el-radio-button :label="2" v-permissionccc="['main:bomcategory:mbom']">MBOM
             </el-radio-button>
-            <el-radio-button :label="3">ABOM
+            <el-radio-button :label="3" v-permissionccc="['main:bomcategory:abom']">ABOM
             </el-radio-button>
           </el-radio-group>
 

+ 1 - 0
src/views/material/BOMmanage/index.vue

@@ -4,6 +4,7 @@
       <BOMSearch @search="reload" :statusOpt="statusOpt" :categoryCode="where.categoryCode" />
 
       <!--  -->
+      
       <el-tabs v-model="activeName" type="border-card"  @tab-click="handleClick">
         <el-tab-pane label="EBOM" name="4"> </el-tab-pane>
         <el-tab-pane label="PBOM" name="1"> </el-tab-pane>