瀏覽代碼

ETA图库新增一些权限按钮,优化了判断权限的方法

cxmo 1 年之前
父節點
當前提交
6a68826e27
共有 2 個文件被更改,包括 69 次插入7 次删除
  1. 47 0
      src/utils/buttonConfig.js
  2. 22 7
      src/views/dataEntry_manage/chartSetting.vue

+ 47 - 0
src/utils/buttonConfig.js

@@ -10,6 +10,49 @@ export const checkPermissionBtn = (button_code)=>{
     const buttonCodes = store.state.permissionButton.permissionButtons.map(item=>item.ButtonCode)
     return buttonCodes.includes(button_code)
 }
+
+//创建了新的ManageBtn记得添加到这里
+const btnMap  = {
+    reportManageBtn,enReportManageBtn,
+    classifyBtn,enClassifyBtn,authorManage,
+    enChartPermission,cloudDisk,
+    pptPermission,enPPTPermission,
+    dataSourcePermission,
+    edbDataPermission,predictEdbPermission,chartLibPermission,
+    myETAPermission,etaTablePermission,
+    sandboxPermission,semanticPermission,
+    statisticPermission,stockPlantPermission,
+    productPricePermission,sysDepartPermission,
+    operateAuthPermission,baseConfigPermission,
+    outlinkConfigPermission
+}
+
+/**
+ *自定义指令使用示例:
+ * <el-checkbox v-model="isOnlyMe"
+ *  v-permission="permissionBtn.chartLibPermission.chartLib_isOnlyMine"
+ *  >只看我的</el-checkbox>
+ */
+/**
+ * 函数使用示例:
+ *  <span v-if="data.Button.OpButton
+ *      &&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')">
+ *  </span>
+ *  <el-input 
+ *      :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
+ *      v-model="tableData[leftIndex].MaxData"/>
+*/
+/** 
+ * 根据权限判断按钮是否展示
+ * 适用于dom本身就有v-if/show条件限制的情况,可以防止自定义指令冲突
+ * 适用于限制表单,组件disabled的情况
+ * @param {String} btnMapName 按钮所属的模块名
+ * @param {String} btnKey 按钮对应的key
+ * @returns Boolean
+ */
+export const isShowBtn = (btnMapName,btnKey)=>{
+    return btnMap[btnMapName]&&checkPermissionBtn(btnMap[btnMapName][btnKey])
+}
 /*
  * -----------------------------------------------------------------------------研报管理------------------------------------------------
  */
@@ -273,9 +316,13 @@ export const chartLibPermission = {
     chartLib_refresh:'chartLib:refresh',
     chartLib_addMy:'chartLib:addMy',//加入我的图库
     chartLib_share:'chartLib:share',
+    chartLib_editLimit:'chartLib:editLimit',//编辑上下限
     /*------------页面按钮---------- */
     chartLib_add:'chartLib:add',
     chartLib_switchEn:'chartLib:switchEn',
+    chartLib_isOnlyMine:'chartLib:isOnlyMine',//只看我的
+    chartLib_classifyOpt_add:'chartLib:classifyOpt:add',//新增/编辑分类
+	chartLib_classifyOpt_delete:'chartLib:classifyOpt:delete',//删除分类
 }
 
 /*

+ 22 - 7
src/views/dataEntry_manage/chartSetting.vue

@@ -32,7 +32,9 @@
         <ul class="left-tab">
           <li :class="['tab',{'act': leftShowLabel===tab}]" v-for="tab in ['目录','坐标轴']" :key="tab" @click="leftShowLabel=tab">{{tab}}</li>
           <li >
-            <el-checkbox v-model="isOnlyMe"  @change="onlyMeHandler">只看我的</el-checkbox>
+            <el-checkbox v-model="isOnlyMe" 
+                v-permission="permissionBtn.chartLibPermission.chartLib_isOnlyMine"
+                @change="onlyMeHandler">只看我的</el-checkbox>
           </li>
         </ul>
 
@@ -92,7 +94,7 @@
                   placeholder="请输入值"
                   class="label-input"
                   v-model="new_label"
-                  v-if="data.isEdit"
+                  v-if="data.isEdit&&permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_add')"
                   @blur="changeValue(node, data)"
                 />
                 <span
@@ -116,27 +118,30 @@
                     style="width: 14px; height: 14px; margin-right: 8px"
                     v-if="data.Button.MoveButton"
                   />
+                  <!-- 添加子项 -->
                   <img
                     src="~@/assets/img/set_m/add.png"
                     alt=""
                     style="width: 14px; height: 14px; margin-right: 8px"
                     @click.stop="addNode(node, data)"
-                    v-if="data.Button.AddButton"
+                    v-if="data.Button.AddButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
                   />
+                  <!-- 编辑子项 -->
                   <img
                     src="~@/assets/img/set_m/edit.png"
                     alt=""
                     style="width: 15px; height: 14px; margin-right: 8px"
                     @click.stop="editNode(node, data)"
-                    v-if="data.Button.OpButton"
+                    v-if="data.Button.OpButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
                   />
+                  <!-- 删除子项 -->
                   <img
                     slot="reference"
                     src="~@/assets/img/set_m/del.png"
                     alt=""
                     style="width: 14px; height: 14px"
                     @click.stop="removeNode(node, data)"
-                    v-if="data.Button.DeleteButton"
+                    v-if="data.Button.DeleteButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_delete')"
                   />
                 </span>
               </span>
@@ -144,7 +149,7 @@
             <div
               class="noDepart"
               @click="addLevelOneHandle"
-              v-if="CanOpClassify"
+              v-if="CanOpClassify&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
             >
               <img
                 src="~@/assets/img/set_m/add_ico.png"
@@ -370,6 +375,7 @@
                         size="mini"
                         type="number"
                         placeholder="上限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[leftIndex].MaxData"
                       />
                       <el-input
@@ -377,6 +383,7 @@
                         size="mini"
                         type="number"
                         placeholder="下限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[leftIndex].MinData"
                       />
                     </div>
@@ -389,6 +396,7 @@
                         size="mini"
                         type="number"
                         placeholder="上限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[rightIndex].MaxData"
                       />
                       <el-input
@@ -396,6 +404,7 @@
                         size="mini"
                         type="number"
                         placeholder="下限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[rightIndex].MinData"
                       />
                     </div>
@@ -407,6 +416,7 @@
                         size="mini"
                         type="number"
                         placeholder="上限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[rightTwoIndex].MaxData"
                       />
                       <el-input
@@ -414,6 +424,7 @@
                         size="mini"
                         type="number"
                         placeholder="下限"
+                        :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                         v-model="tableData[rightTwoIndex].MinData"
                       />
                     </div>
@@ -426,6 +437,7 @@
                           size="mini"
                           type="number"
                           placeholder="上限"
+                          :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                           v-model="chartLimit.max"
                           @change="changeLimit"
                         />
@@ -434,6 +446,7 @@
                           size="mini"
                           type="number"
                           placeholder="下限"
+                          :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                           v-model="chartLimit.min"
                           @change="changeLimit"
                         />
@@ -445,6 +458,7 @@
                           size="mini"
                           type="number"
                           placeholder="下限"
+                          :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                           v-model="chartLimit.x_min"
                           @change="changeLimit"
                         />
@@ -453,6 +467,7 @@
                           size="mini"
                           type="number"
                           placeholder="上限"
+                          :disabled="!permissionBtn.isShowBtn('chartLibPermission','chartLib:editLimit')"
                           v-model="chartLimit.x_max"
                           @change="changeLimit"
                         />
@@ -1068,7 +1083,7 @@ export default {
     /* 双击label出现input修改框 */
     editNodeLabel(node, data) {
       //目录名称可以双击修改 指标不能
-      if (!data.ChartInfoId && data.Button.OpButton) {
+      if (!data.ChartInfoId && data.Button.OpButton&&this.permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_add')) {
         this.$set(data, 'isEdit', true);
         this.new_label = data.ChartClassifyName;
         this.$nextTick(() => {