Parcourir la source

ppt、数据源配置化

cxmo il y a 1 an
Parent
commit
aa9eee0549

+ 1 - 0
src/components/lzTable.vue

@@ -18,6 +18,7 @@
               {{data[item]}}
               <span v-if="data['IndexCode']&&(item==='Frequency'||item==='Unit')">
                 <img
+                  v-permission="permissionBtn.dataSourcePermission.bcyfData_edit"
                   src="~@/assets/img/set_m/edit.png"
                   alt="edit"
                   style="width: 14px; height: 14px; margin-left: 5px;cursor:pointer;"

+ 69 - 1
src/utils/buttonConfig.js

@@ -124,4 +124,72 @@ export const cloudDisk = {
 }
 /*
  * -----------------------------------------------------------------------------智能PPT------------------------------------------------
- */
+ */
+/*
+*--------中文PPT----------- 
+*/
+export const pptPermission ={
+    /*---------对PPT操作--------- */
+    ppt_del:'ppt:del',
+    ppt_copy:'ppt:copy',
+    ppt_toEn:'ppt:toEn',//转英文PPT
+    ppt_toReport:'ppt:toReport',//转报告
+    ppt_download:'ppt:download',
+    ppt_show:'ppt:show',//演示
+    ppt_publish:'ppt:publish',
+    /*--------页面按钮操作-------- */
+    ppt_save:'ppt:save',//添加PPT按钮,同时也控制编辑权限
+    ppt_merge:'ppt:merge',//合并PPT
+}
+/*
+*--------英文PPT---------- 
+*/
+export const enPPTPermission={
+    /*---------对PPT操作--------- */
+    pptEn_del:'pptEn:del',
+    pptEn_copy:'pptEn:copy',
+    pptEn_toReport:'pptEn:toReport',//转报告
+    pptEn_download:'pptEn:download',
+    pptEn_show:'pptEn:show',//演示
+    pptEn_publish:'pptEn:publish',
+    /*--------页面按钮操作-------- */
+    pptEn_save:'pptEn:save',//添加PPT按钮,同时也控制编辑权限
+    pptEn_merge:'pptEn:merge',//合并PPT
+}
+
+/*
+ * ---------------------------------------------------------------------------数据源------------------------------------------------
+ */
+export const dataSourcePermission = {
+    /*--------手工指标列表---- */
+    manualData_del:'manualData:del',
+    manualData_add:'manualData:add',//新增编辑
+    /*--------手工数据录入---- */
+    manualDataWrite_edit:'manualDataWrite:edit',//编辑按钮,直接编辑没有禁
+    manualDataWrite_export:'manualDataWrite:export',//导出
+    manualDataWrite_import:'manualDataWrite:import',//导入
+    manualDataWrite_copy:'manualDataWrite:copy',//复制
+    /*--------期货数据库没有要控制的东西---- */
+    /*--------隆众原始数据库---- */
+    longzhongData_export:'longzhongData:export',
+    /*--------钢联原始数据库---- */
+    glData_export:'glData:export',
+    /*--------钢联化工数据库---- */
+    mysteelData_refresh:'mysteelData:refresh',//一键刷新
+    mysteelData_export:'mysteelData:export',
+    mysteelData_add:'mysteelData:add',
+    /*--------SMM原始数据库---- */
+    smmData_export:'smmData:export',
+    /*--------百川盈孚---- */
+    bcyfData_edit:'bcyfData:edit',//编辑指标按钮
+    bcyfData_export:'bcyfData:export',
+    /*--------卓创数据(红桃3)---- */
+    hongtao3Data_export:'hongtao3Data:export',
+    /*--------中国煤炭市场网)---- */
+    zgmtData_export:'zgmtData:export',
+    /*--------EIA  STEO报告---- */
+    eiaData_export:'eiaData:export',
+    /*--------国家统计局---- */
+    gjtjjData_export:'gjtjjData:export'
+
+}

+ 1 - 0
src/views/dataEntry_manage/coal/index.vue

@@ -4,6 +4,7 @@
       <div class="left-top">
         <!-- <el-button type="primary" plain size="medium" @click="exportClick" :loading="btnload">导出Excel</el-button> -->
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.zgmtData_export"
           style="width: 100%"
           type="primary"
           plain

+ 5 - 1
src/views/dataEntry_manage/dataEntry.vue

@@ -7,16 +7,19 @@
           v-if="role != 'special_researcher'"
         >
           <el-button
+            v-permission="permissionBtn.dataSourcePermission.manualDataWrite_import"
             type="primary"
             style="width: 47%"
             @click="isShowinsert = true"
             >导入excel数据</el-button
           >
-          <el-button type="primary" style="width: 47%" @click="copyExcelNew"
+          <el-button v-permission="permissionBtn.dataSourcePermission.manualDataWrite_copy"
+          type="primary" style="width: 47%" @click="copyExcelNew"
             >复制excel数据</el-button
           >
           <a style="width: 100%" :href="exportUrl" download>
             <el-button
+              v-permission="permissionBtn.dataSourcePermission.manualDataWrite_export"
               type="primary"
               style="width: 100%; margin-top: 14px"
               plain
@@ -68,6 +71,7 @@
         element-loading-spinner="el-icon-loading"
       >
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.manualDataWrite_edit"
           type="primary"
           style="
             font-size: 16px;

+ 6 - 3
src/views/dataEntry_manage/targetList.vue

@@ -5,7 +5,8 @@
 			<el-button type="primary" size="medium" style="marginRight:20px;" @click="insertData(2)">新增指标</el-button>
 			<el-button type="primary" size="medium" style="marginRight:20px;" @click="handleImport">导入数据</el-button>
 			<el-button size="medium" @click="handleExport">导出数据</el-button> -->
-			<el-button type="primary" size="medium" @click="insertData(2)">新增指标</el-button>
+			<el-button v-permission="permissionBtn.dataSourcePermission.manualData_add"
+                type="primary" size="medium" @click="insertData(2)">新增指标</el-button>
 			<!-- <el-button type="primary" size="medium" @click="handleImport">导入新指标</el-button> -->
 			<el-input
 				placeholder="关键字搜索"
@@ -98,8 +99,10 @@
 				<el-table-column label="操作" align="center">
 					<template slot-scope="scope">
 						<div style="color:#4099ef; font-size:24px;">
-							<span class="editsty" @click="editHandle(scope.row)" style="marginRight:20px;">编辑</span>
-							<span class="deletesty" @click="delHandle(scope.row)">删除</span>
+							<span v-permission="permissionBtn.dataSourcePermission.manualData_add"
+                                class="editsty" @click="editHandle(scope.row)" style="marginRight:20px;">编辑</span>
+							<span v-permission="permissionBtn.dataSourcePermission.manualData_del"
+                                class="deletesty" @click="delHandle(scope.row)">删除</span>
 						</div>
 					</template>
 				</el-table-column>

+ 2 - 0
src/views/dataEntry_manage/thirdBase/BAIINFOTargetbase.vue

@@ -3,6 +3,7 @@
     <div class="left-cont minHeight" id="left">
       <div class="left-top">
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.bcyfData_export"
           style="width: 100%"
           type="primary"
           plain
@@ -80,6 +81,7 @@
                 v-if="data.Button.AddButton"
               />
               <img
+                v-permission="permissionBtn.dataSourcePermission.bcyfData_edit"
                 src="~@/assets/img/set_m/edit.png"
                 v-if="data.Button.OpButton"
                 alt=""

+ 2 - 1
src/views/dataEntry_manage/thirdBase/NationalDataBase.vue

@@ -32,7 +32,8 @@
           </template>
         </el-menu>
       </div>
-      <el-button type="primary" :disabled="isDisabled" @click="handleExport"
+      <el-button v-permission="permissionBtn.dataSourcePermission.gjtjjData_export"
+        type="primary" :disabled="isDisabled" @click="handleExport"
         >导出</el-button
       >
     </div>

+ 1 - 0
src/views/dataEntry_manage/thirdBase/SCITargetbase.vue

@@ -3,6 +3,7 @@
     <div class="left-cont minHeight" id="left">
       <div class="left-top">
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.hongtao3Data_export"
           style="width: 100%"
           type="primary"
           plain

+ 1 - 0
src/views/dataEntry_manage/thirdBase/elaSteoBase.vue

@@ -3,6 +3,7 @@
     <div class="left-cont minHeight">
       <div class="left-top">
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.eiaData_export"
           style="width: 100%"
           type="primary"
           plain

+ 1 - 0
src/views/dataEntry_manage/thirdBase/glTargetbase.vue

@@ -4,6 +4,7 @@
       <div class="left-top">
         <!-- <el-button type="primary" plain size="medium" @click="exportClick" :loading="btnload">导出Excel</el-button> -->
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.glData_export"
           style="width: 100%"
           type="primary"
           plain

+ 1 - 0
src/views/dataEntry_manage/thirdBase/lzTargetbase.vue

@@ -3,6 +3,7 @@
     <div class="left-cont minHeight">
       <div class="left-top">
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.longzhongData_export"
           style="width: 100%;margin-bottom: 10px;"
           type="primary"
           plain

+ 1 - 0
src/views/dataEntry_manage/thirdBase/smmTargetbase.vue

@@ -3,6 +3,7 @@
     <div class="left-cont minHeight" id="left">
       <div class="left-top">
         <el-button
+          v-permission="permissionBtn.dataSourcePermission.smmData_export"
           style="width: 100%"
           type="primary"
           plain

+ 4 - 1
src/views/dataEntry_manage/thirdBase/steelChemicalbase.vue

@@ -3,10 +3,12 @@
     <div class="left-cont minHeight" id="left">
       <div class="left-top">
         <div>
-          <el-button type="primary" size="medium" @click="addTargetHandle"
+          <el-button v-permission="permissionBtn.dataSourcePermission.mysteelData_add"
+          type="primary" size="medium" @click="addTargetHandle"
             >新增指标</el-button
           >
           <el-button
+          v-permission="permissionBtn.dataSourcePermission.mysteelData_export"
             type="primary"
             plain
             size="medium"
@@ -129,6 +131,7 @@
     >
       <template v-if="rightShow">
         <el-button
+        v-permission="permissionBtn.dataSourcePermission.mysteelData_refresh"
           type="primary"
           size="medium"
           @click="edbRefreshHandle"

+ 48 - 8
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -9,8 +9,10 @@
       </span>
     <div class="list-wrap ppt-page-wrap" id="left" v-show="!isSlideLeft">
       <div class="add-btn">
-        <el-button type="primary" @click="handleChooseCatalog('add')">添加ppt</el-button>
-        <el-button type="primary" plain @click="handleOpenMergeDialog">合并ppt</el-button>
+        <el-button type="primary" v-permission="permissionBtn.pptPermission.ppt_save"
+            @click="handleChooseCatalog('add')">添加ppt</el-button>
+        <el-button v-permission="permissionBtn.pptPermission.ppt_merge"
+            type="primary" plain @click="handleOpenMergeDialog">合并ppt</el-button>
       </div>
       <div class="select-wrap">
         <el-select
@@ -59,6 +61,7 @@
                   style="display: flex; align-items: center"
                 >
                   <i class="el-icon-document-copy"
+                    v-permission="permissionBtn.pptPermission.ppt_copy"
                     style="display:inline-block;width: 14px; height: 14px; margin-right: 8px;color:#409eff;"
                     v-show="(data.copyIconShow&&data.PptVersion===2)||checkNode(data)"
                     @click.stop="handleCopy(data)"
@@ -120,17 +123,21 @@
                     </el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
-                <el-dropdown @command="handleOperateCommand" trigger="click">
+                <el-dropdown @command="handleOperateCommand" trigger="click" v-if="checkDropDownShow(data.PptVersion===2?'ppt':'catalog')">
                   <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:'copy',item:data}" v-if="(data.PptVersion&&data.PptVersion===2)||(data.GroupId&&!data.OnlyOld)">复制</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'edit',item:data}" v-if="data.GroupId">重命名</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'del',item:data}">删除</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.pptPermission.ppt_copy"
+                        :command="{key:'copy',item:data}" v-if="(data.PptVersion&&data.PptVersion===2)||(data.GroupId&&!data.OnlyOld)">复制</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.pptPermission.ppt_save"
+                        :command="{key:'edit',item:data}" v-if="data.GroupId">重命名</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.pptPermission.ppt_del"
+                        :command="{key:'del',item:data}">删除</el-dropdown-item>
                     <el-dropdown-item :command="{key:'openShare',item:data}" v-if="data.PptVersion && !data.IsGrant">设置共享</el-dropdown-item>
                     <el-dropdown-item :command="{key:'cancelShare',item:data}" v-if="data.PptVersion && data.IsGrant">取消共享</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'transform',item:data}">转英文PPT</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.pptPermission.ppt_toEn"
+                        :command="{key:'transform',item:data}">转英文PPT</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
                 </span>
@@ -540,6 +547,27 @@ export default {
           i.label = labelName
         }
       })
+      //crm14.1 根据权限按钮对pptToolList做进一步的filter
+      const {checkPermissionBtn,pptPermission} = this.permissionBtn
+      const authMap = {
+          'publish':checkPermissionBtn(pptPermission.ppt_publish),
+          'present':checkPermissionBtn(pptPermission.ppt_show),
+          'download':checkPermissionBtn(pptPermission.ppt_download),
+          'transform':checkPermissionBtn(pptPermission.ppt_toReport),
+          'transEn':checkPermissionBtn(pptPermission.ppt_toEn),
+          'edit':checkPermissionBtn(pptPermission.ppt_save),
+          'copy':checkPermissionBtn(pptPermission.ppt_copy),
+          'delete':checkPermissionBtn(pptPermission.ppt_del),
+      }
+      let authArr = []
+      for(let k in authMap){
+          if(authMap[k]){
+            authArr.push(k)
+          }
+      }
+      this.pptToolList = toolList.filter((i)=>{
+          return authArr.includes(i.key)
+        })
     },
     //判断公共目录按钮是否显示
     checkNode(data){
@@ -1203,7 +1231,19 @@ export default {
       })
       if(res.Ret!==200) return
       this.$message.success('批量转英文PPT成功')
-    }
+    },
+    //如果下拉框一个选项都没有,就不显示下拉框按钮
+    checkDropDownShow(type){
+        const {pptPermission,checkPermissionBtn} = this.permissionBtn
+        if(type==='catalog'){
+            return checkPermissionBtn(pptPermission.ppt_copy)||
+                   checkPermissionBtn(pptPermission.ppt_save)||
+                   checkPermissionBtn(pptPermission.ppt_del)||
+                   checkPermissionBtn(pptPermission.ppt_toEn)
+        }
+        //如果是PPT,会有设置共享按钮,下拉框至少会有一个选项
+        return true
+    },
   },
   mounted(){
     this.getCatalogsList('load')

+ 44 - 6
src/views/ppt_manage/newVersion/pptEnCatalog.vue

@@ -9,8 +9,10 @@
       </span>
     <div class="list-wrap ppt-page-wrap" id="left" v-show="!isSlideLeft">
       <div class="add-btn">
-        <el-button type="primary" @click="handleChooseCatalog('add')">添加ppt</el-button>
-        <el-button type="primary" plain @click="handleOpenMergeDialog">合并ppt</el-button>
+        <el-button type="primary" v-permission="permissionBtn.enPPTPermission.pptEn_save"
+        @click="handleChooseCatalog('add')">添加ppt</el-button>
+        <el-button v-permission="permissionBtn.enPPTPermission.pptEn_merge"
+            type="primary" plain @click="handleOpenMergeDialog">合并ppt</el-button>
       </div>
       <div class="select-wrap">
         <el-select
@@ -58,6 +60,7 @@
                   style="display: flex; align-items: center"
                 >
                   <i class="el-icon-document-copy"
+                    v-permission="permissionBtn.enPPTPermission.pptEn_copy"
                     style="display:inline-block;width: 14px; height: 14px; margin-right: 8px;color:#409eff;"
                     v-show="(data.copyIconShow&&data.PptId)||checkNode(data)"
                     @click.stop="handleCopy(data)"
@@ -117,14 +120,17 @@
                     </el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
-                <el-dropdown @command="handleOperateCommand" trigger="click">
+                <el-dropdown @command="handleOperateCommand" trigger="click" v-if="checkDropDownShow(data.PptId?'ppt':'catalog')">
                   <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:'copy',item:data}" v-if="data.GroupId||data.PptId">复制</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'edit',item:data}" v-if="data.GroupId">重命名</el-dropdown-item>
-                    <el-dropdown-item :command="{key:'del',item:data}">删除</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.enPPTPermission.pptEn_copy"
+                        :command="{key:'copy',item:data}" v-if="data.GroupId||data.PptId">复制</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.enPPTPermission.pptEn_save"
+                        :command="{key:'edit',item:data}" v-if="data.GroupId">重命名</el-dropdown-item>
+                    <el-dropdown-item v-permission="permissionBtn.enPPTPermission.pptEn_del"
+                        :command="{key:'del',item:data}">删除</el-dropdown-item>
                     <el-dropdown-item :command="{key:'openShare',item:data}" v-if="data.PptId && !data.IsGrant">设置共享</el-dropdown-item>
                     <el-dropdown-item :command="{key:'cancelShare',item:data}" v-if="data.PptId && data.IsGrant">取消共享</el-dropdown-item>
                   </el-dropdown-menu>
@@ -509,6 +515,28 @@ export default {
           i.label = labelName
         }
       })
+
+      //crm14.1 根据权限按钮对pptToolList做进一步的filter
+      const {checkPermissionBtn,enPPTPermission} = this.permissionBtn
+      const authMap = {
+          'publish':checkPermissionBtn(enPPTPermission.pptEn_publish),
+          'present':checkPermissionBtn(enPPTPermission.pptEn_show),
+          'download':checkPermissionBtn(enPPTPermission.pptEn_download),
+          'transform':checkPermissionBtn(enPPTPermission.pptEn_toReport),
+          'edit':checkPermissionBtn(enPPTPermission.pptEn_save),
+          'copy':checkPermissionBtn(enPPTPermission.pptEn_copy),
+          'delete':checkPermissionBtn(enPPTPermission.pptEn_del),
+      }
+      let authArr = []
+      for(let k in authMap){
+          if(authMap[k]){
+            authArr.push(k)
+          }
+      }
+      this.pptToolList = toolList.filter((i)=>{
+          return authArr.includes(i.key)
+        })
+
     },
     //判断公共目录按钮是否显示
     checkNode(data){
@@ -1100,6 +1128,16 @@ export default {
         }
       })
 
+    },
+    checkDropDownShow(type){
+        const {enPPTPermission,checkPermissionBtn} = this.permissionBtn
+        if(type==='catalog'){
+            return checkPermissionBtn(enPPTPermission.pptEn_copy)||
+                   checkPermissionBtn(enPPTPermission.pptEn_save)||
+                   checkPermissionBtn(enPPTPermission.pptEn_del)
+        }
+        //如果是PPT,会有设置共享按钮,下拉框至少会有一个选项
+        return true
     }
   },
   mounted(){

+ 3 - 0
src/vuex/modules/permissionButton.js

@@ -31,6 +31,9 @@ const permissionButtons = {
                     {button_code:'authorManage:cnReport'},
                     {button_code:'authorManage:enReport'},
                     {button_code:'authorManage:cnReport:edit'},
+                    //ppt test
+                    {button_code:'ppt:show'},
+                    {button_code:'pptEn:show'},
                 ]
                 commit('SET_PERMISSION_BUTTONS',buttons)
                 resolve('获取权限按钮成功')