浏览代码

MyETA新增一些权限按钮

cxmo 1 年之前
父节点
当前提交
953cae5927

+ 62 - 43
src/utils/buttonConfig.js

@@ -11,48 +11,6 @@ export const checkPermissionBtn = (button_code)=>{
     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])
-}
 /*
  * -----------------------------------------------------------------------------研报管理------------------------------------------------
  */
@@ -341,8 +299,16 @@ export const myETAPermission = {
     myChart_copyTo:'myChart:copyTo',
     myChart_share:'myChart:share',
     myChart_move:'myChart:move',//移出,同时也控制列表项的移出
+    myChart_copyData:'myChart:copyData',//复制数据
+    myChart_checkData:'myChart:checkData',//查看数据
+    myChart_editLimit:'myChart:editLimit',//编辑上下限
     /*-----------页面按钮--------- */
     myChart_selectChart:'myChart:selectChart',//选择图表
+    myChart_classifyOpt_copy:'myChart:classifyOpt:copy',//复制
+    myChart_classifyOpt_show:'myChart:classifyOpt:show',//可见权限
+    myChart_classifyOpt_edit:'myChart:classifyOpt:edit',//添加我的分类
+    myChart_classifyOpt_rename:'myChart:classifyOpt:rename',//重命名
+    myChart_classifyOpt_delete:'myChart:classifyOpt:delete',//删除
 }
 /*
  * --------------------------------------------------------------------------ETA表格------------------------------------------------
@@ -527,4 +493,57 @@ export const outlinkConfigPermission = {
     outlinkListConfig_add:'outlinkListConfig:add',//添加
     outlinkListConfig_edit:'outlinkListConfig:edit',//编辑
     outlinkListConfig_del:'outlinkListConfig:del',//删除
-}
+}
+
+
+//创建了新的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"/>
+ * computed:{ 
+ *  //是否显示公共图库的下拉按钮
+    isShowDropPublic(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_copy')
+    },
+ * }
+*/
+/** 
+ * 根据权限判断按钮是否展示
+ * 适用于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])
+}
+/* export const getBtnCode = (btnMapName,btnKey)=>{
+    return (btnMap[btnMapName]&&btnMap[btnMapName][btnKey])||''
+} */

+ 3 - 3
src/views/dataEntry_manage/chartSetting.vue

@@ -124,7 +124,7 @@
                     alt=""
                     style="width: 14px; height: 14px; margin-right: 8px"
                     @click.stop="addNode(node, data)"
-                    v-if="data.Button.AddButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
+                    v-if="data.Button.AddButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_add')"
                   />
                   <!-- 编辑子项 -->
                   <img
@@ -132,7 +132,7 @@
                     alt=""
                     style="width: 15px; height: 14px; margin-right: 8px"
                     @click.stop="editNode(node, data)"
-                    v-if="data.Button.OpButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
+                    v-if="data.Button.OpButton&&permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_add')"
                   />
                   <!-- 删除子项 -->
                   <img
@@ -149,7 +149,7 @@
             <div
               class="noDepart"
               @click="addLevelOneHandle"
-              v-if="CanOpClassify&&permissionBtn.isShowBtn('chartLibPermission','chartLib_add')"
+              v-if="CanOpClassify&&permissionBtn.isShowBtn('chartLibPermission','chartLib_classifyOpt_add')"
             >
               <img
                 src="~@/assets/img/set_m/add_ico.png"

+ 26 - 4
src/views/mychart_manage/components/chartDetailDia.vue

@@ -217,6 +217,7 @@
                     size="mini"
                     type="number"
                     placeholder="上限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[leftIndex].MaxData"
                   />
                   <el-input
@@ -224,6 +225,7 @@
                     size="mini"
                     type="number"
                     placeholder="下限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[leftIndex].MinData"
                   />
                 </div>
@@ -233,6 +235,7 @@
                     size="mini"
                     type="number"
                     placeholder="上限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[rightIndex].MaxData"
                   />
                   <el-input
@@ -240,6 +243,7 @@
                     size="mini"
                     type="number"
                     placeholder="下限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[rightIndex].MinData"
                   />
                 </div>
@@ -251,6 +255,7 @@
                     size="mini"
                     type="number"
                     placeholder="上限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[rightTwoIndex].MaxData"
                   />
                   <el-input
@@ -258,6 +263,7 @@
                     size="mini"
                     type="number"
                     placeholder="下限"
+                    :disabled="!isAllowEditLimit"
                     v-model="tableData[rightTwoIndex].MinData"
                   />
                 </div>
@@ -270,6 +276,7 @@
                       size="mini"
                       type="number"
                       placeholder="上限"
+                      :disabled="!isAllowEditLimit"
                       v-model="chartLimit.max"
                       @change="changeLimit"
                     />
@@ -278,6 +285,7 @@
                       size="mini"
                       type="number"
                       placeholder="下限"
+                      :disabled="!isAllowEditLimit"
                       v-model="chartLimit.min"
                       @change="changeLimit"
                     />
@@ -289,6 +297,7 @@
                       size="mini"
                       type="number"
                       placeholder="下限"
+                      :disabled="!isAllowEditLimit"
                       v-model="chartLimit.x_min"
                       @change="changeLimit"
                     />
@@ -297,6 +306,7 @@
                       size="mini"
                       type="number"
                       placeholder="上限"
+                      :disabled="!isAllowEditLimit"
                       v-model="chartLimit.x_max"
                       @change="changeLimit"
                     />
@@ -441,11 +451,11 @@
                     </el-select>
                   </div>
                   <div class="copy-excel">
-                    <span class="editsty" @click="copyCode(props.row)">
+                    <span class="editsty" @click="copyCode(props.row)" v-if="isAllowCopyData">
                       <i class="el-icon-document-copy" />&nbsp;复制数据</span
                     >
                     <span 
-                      class="editsty" 
+                      class="editsty" v-if="isAllowCheckData"
                       @click="viewTarget(props.row)"
                       style="display:block;margin-top:15px;"
                     >&nbsp;查看数据</span>
@@ -482,10 +492,10 @@
               width="110"
             >
               <template slot-scope="scope">
-                <span class="editsty" @click="copyCode(scope.row)">
+                <span class="editsty" @click="copyCode(scope.row)" v-if="isAllowCopyData">
                   <i class="el-icon-document-copy" />&nbsp;复制数据</span
                 >
-                <span 
+                <span v-if="isAllowCheckData"
                   class="editsty"
                   @click="viewTarget(scope.row)"
                 >查看数据</span>
@@ -612,6 +622,18 @@ export default {
     linkUrl() {
       const LINK_CHART_URL = this.$setting.dynamicOutLinks.ChartViewUrl+'/chartshow';
       return `${LINK_CHART_URL}?code=${this.chartInfo.UniqueCode}&fromType=share?&lang=${this.currentLang}`
+    },
+    //是否允许编辑上下限
+    isAllowEditLimit(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_editLimit')
+    },
+    //是否允许复制数据
+    isAllowCopyData(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_copyData')
+    },
+    //是否允许查看数据
+    isAllowCheckData(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_checkData')
     }
   },
   watch: {

+ 22 - 6
src/views/mychart_manage/index.vue

@@ -64,7 +64,7 @@
               </span>
              
               <div class="right-item right-item-box" >
-                <el-dropdown @command="handleCommand" trigger="click">
+                <el-dropdown @command="handleCommand" trigger="click" v-if="isShowDropPublic">
                   <span class="el-dropdown-link"> 
                     <i class="el-icon-more" style="font-size: 16px;transform: rotate(90deg);cursor: pointer"/>
                   </span>
@@ -106,7 +106,8 @@
                 {{ item.MyChartClassifyName }}
               </div>
               <div class="right-item right-item-box">
-                <el-dropdown style="margin-right: 10px" @command="handleCommand" trigger="click">
+                <el-dropdown v-if="isShowGroupBtn"
+                    style="margin-right: 10px" @command="handleCommand" trigger="click">
                   <span class="el-dropdown-link  el-dropdown-link-img">
                     <!-- <i class="el-icon-user" style="font-size: 16px; cursor: pointer"/> -->
                      <img src="~@/assets/img/chart_m/Group.png" v-if="item.IsPublic === 0">
@@ -131,20 +132,22 @@
                     所有人可见</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
-                <el-dropdown @command="handleCommand" trigger="click">
+                <el-dropdown @command="handleCommand" trigger="click" v-if="isShowDropMine">
                   <span class="el-dropdown-link"> 
                     <i class="el-icon-more" style="font-size: 16px;transform: rotate(90deg);cursor: pointer"/>
                   </span>
                   <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item :command="{key:'edit'}">重命名</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'del'}">删除</el-dropdown-item>
+                    <el-dropdown-item v-if="permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_rename')"
+                        :command="{key:'edit'}">重命名</el-dropdown-item>
+                    <el-dropdown-item v-if="permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_delete')"
+                        :command="{key:'del'}">删除</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
               </div>
             </li>
           </draggable>
         </div>
-        <div class="noclassify" @click="addClassify">
+        <div class="noclassify" @click="addClassify" v-permission="permissionBtn.myETAPermission.myChart_classifyOpt_edit">
           <img
             src="~@/assets/img/set_m/add_ico.png"
             alt=""
@@ -379,6 +382,19 @@ export default {
       let id = Number(localStorage.getItem('AdminId'));
       return id;
     },
+    //是否显示公共图库的下拉按钮
+    isShowDropPublic(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_copy')
+    },
+    //是否显示我的图库的下拉按钮
+    isShowDropMine(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_rename')
+            || this.permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_delete')
+    },
+    //是否显示可见权限
+    isShowGroupBtn(){
+        return this.permissionBtn.isShowBtn('myETAPermission','myChart_classifyOpt_show')
+    }
   },
   watch: {
     // 左侧选中分类