Przeglądaj źródła

设置研报审批去掉

shanbinzhang 7 miesięcy temu
rodzic
commit
eab6cbd255

+ 8 - 8
src/views/approve_manage/approveList.vue

@@ -1,11 +1,11 @@
 <template>
     <!-- 审批管理列表页 -->
     <div class="approve-list-wrap approve-page-wrap" v-if="isETAApprove || IsBIApprove">
-        <div class="head-tab">
+        <!-- <div class="head-tab">
             <el-radio-group v-model="activeMainTab" style="margin-bottom: 10px;" @input="handleMainClick">
                 <el-radio-button v-for="item in mainTabs" :key="item.name" :label="item.name">{{ item.label }}</el-radio-button>
             </el-radio-group>
-        </div>
+        </div> -->
         <div class="head-tab">
             <el-tabs v-model="activeTab" @tab-click="handleClick">
                 <el-tab-pane :label="$t('AprrovalPage.be_processed_tab')" name="pending"></el-tab-pane>
@@ -356,11 +356,11 @@ export default {
             }
         },
         afterGetBaseConfig(){  //执行完reportApproveConfig中getBaseConfig之后执行  mounted之后执行
-           if(this.isETAApprove) 
-            this.mainTabs.push({
-                    label:this.$t('AprrovalPage.research_approval_btn'),
-                    name:'report' 
-            });
+        //    if(this.isETAApprove) 
+        //     this.mainTabs.push({
+        //             label:this.$t('AprrovalPage.research_approval_btn'),
+        //             name:'report' 
+        //     });
            if(this.IsBIApprove)
            this.mainTabs.push({
                 label:this.$t('SystemManage.BaseConfig.bIDashboard_approval'),
@@ -387,7 +387,7 @@ export default {
         },
     },
     mounted(){
-        this.getClassifyTree();
+        // this.getClassifyTree();
         this.getBIClassifyTree();
     },
     components: { RejectDialog }

+ 8 - 8
src/views/approve_manage/approveSetting.vue

@@ -1,11 +1,11 @@
 <template>
     <!-- 审批流配置列表 -->
     <div class="approve-setting-wrap approve-page-wrap" v-if="isETAApprove || IsBIApprove">
-        <div style="margin-bottom: 10px;">
+        <!-- <div style="margin-bottom: 10px;">
             <el-radio-group v-model="activeMainTab" style="margin-bottom: 10px;" @input="handleTabClick">
                     <el-radio-button v-for="item in mainTabs" :key="item.name" :label="item.name">{{ item.label }}</el-radio-button>
             </el-radio-group>
-        </div>
+        </div> -->
         <div class="head-box">
             <el-input v-model="Keyword" @input="handleCurrentChange(1)"
                 :placeholder="$t('SystemManage.ReportApprove.placeholder02')" prefix-icon="el-icon-search" clearable style="width:360px;"></el-input>
@@ -226,11 +226,11 @@ export default {
             }).catch(()=>{})
         },
         afterGetBaseConfig(){ //执行完reportApproveConfig中getBaseConfig之后执行  mounted之后执行
-            if(this.isETAApprove) 
-                this.mainTabs.push({
-                        label:this.$t('AprrovalPage.research_approval_btn'),
-                        name:'report' 
-                });
+            // if(this.isETAApprove) 
+            //     this.mainTabs.push({
+            //             label:this.$t('AprrovalPage.research_approval_btn'),
+            //             name:'report' 
+            //     });
            if(this.IsBIApprove)
                 this.mainTabs.push({
                     label:this.$t('SystemManage.BaseConfig.bIDashboard_approval'),
@@ -248,7 +248,7 @@ export default {
         },
     },
     mounted(){
-        this.getClassifyTree();
+        // this.getClassifyTree();
         this.getBIClassifyTree();
     },
 };

+ 0 - 1
src/views/ppt_manage/newVersion/components/catalog/addPptBaseDia.vue

@@ -64,7 +64,6 @@
         </el-form-item>
         
        
-
         <el-form-item prop="cooperationType" :label="$t('ReportManage.ReportList.label_coop')">
           <el-radio-group
             v-model="formData.cooperationType"

+ 137 - 30
src/views/ppt_manage/newVersion/components/catalog/mergePPTDialog.vue

@@ -5,7 +5,7 @@
       :visible.sync="mergePptShow" 
       :close-on-click-modal="false" 
       :modal-append-to-body="false"
-      @close="cancelHandle" v-dialogDrag center width="40%" top="8vh">
+      @close="cancelHandle" v-dialogDrag center width="650px" top="8vh">
       <div slot="title" style="display: flex; alignitems: center">
         <span style="fontsize: 16px">{{$t('Slides.ppt_merge_btn')}}</span>
       </div>
@@ -63,19 +63,71 @@
               </div>  
             </div>
           </div>
-          <div class="input-item">
-            <h3>{{$t('Slides.please_selecdirectory_into')}}</h3>
-            <div class="select-catalog-wrap select-wrap">
-              <el-radio-group v-model="selectedCatalogId">
-                <el-radio v-for="item in MyPrivateList" :key="item.GroupId" 
-                :label="item.GroupId">{{item.GroupName}}</el-radio>
+          
+          <el-form
+            :model="pptInfo"
+            :rules="rules"
+            ref="baseinfoForm"
+            class="ppt-baseInfo"
+            label-width="100px"
+          >
+            <el-form-item prop="classify" :label="$t('ReportManage.ReportList.label_report_classify')">
+              <el-cascader
+                ref="cascader"
+                :options="classifyOptions"
+                v-model="pptInfo.classify"
+                :props="{
+                  value: 'Id',
+                  label: 'ClassifyName',
+                  children: 'Child'
+                }"
+                :placeholder="$t('ReportManage.ReportList.please_select_category')"
+                size="medium"
+                style="width: 400px"
+              />
+            </el-form-item>
+
+            <el-form-item prop="title" :label="$t('ReportManage.ReportList.label_report_tit')">
+              <el-input
+                :placeholder="$t('ReportManage.ReportList.input_title_please')"
+                v-model="pptInfo.title"
+                style="width:400px"
+              >
+              </el-input>
+
+            </el-form-item>
+            
+            <el-form-item prop="cooperationType" :label="$t('ReportManage.ReportList.label_coop')">
+              <el-radio-group
+                v-model="pptInfo.cooperationType"
+                :disabled="pptInfo.type===2"
+                @change="pptInfo.cooperationUsers=[]"
+              >
+                <el-radio :label="1"><!-- 个人 -->{{$t('ReportManage.ReportList.coop_own')}}</el-radio>
+                <el-radio :label="2"><!-- 多人协作 -->{{$t('ReportManage.ReportList.coop_more')}}</el-radio>
               </el-radio-group>
-            </div>
-          </div>
-          <div class="input-item">
-            <h3>{{$t('Slides.ppt_title_input')}}</h3>
-            <el-input  :placeholder="$t('Slides.input_ppt_title')" v-model="pptInfo.Title" required ></el-input>
-          </div>
+
+              <el-button 
+                type="text" 
+                v-if="pptInfo.cooperationType===2"
+                style="margin-left: 20px"
+                @click="isChooseCooperaUser = true"
+              ><!-- 选择协作人 -->{{$t('ReportManage.ReportList.choose_cooper')}}</el-button>
+              
+              <div class="choosed-cooper" v-if="pptInfo.cooperationUsers.length">
+                <el-tag
+                  v-for="(item,index) in pptInfo.cooperationUsers"
+                  :key="item.NodeId"
+                  size="mini"
+                  effect="dark"
+                  closable
+                  @close="removeCooper(index)"
+                >
+                  {{ item.NodeName }}
+                </el-tag>
+              </div>
+            </el-form-item>
+          </el-form>  
         </div>
       </div>
       <div slot="footer" class="foot-container">
@@ -83,6 +135,14 @@
         <el-button @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
     </el-dialog>
+
+
+    <!-- 选择协作人弹窗 -->
+    <chooseCooperaUserDia
+      :isShow.sync="isChooseCooperaUser"
+      :users="pptInfo.cooperationUsers"
+      @save="getChooseCooperaUser"
+    />
   </div>
    
 </template>
@@ -91,8 +151,11 @@
 import {pptInterface} from '@/api/api.js';
 import {pptEnInterface} from '@/api/modules/pptEnApi.js';
 import {etaBaseConfigInterence} from '@/api/modules/etaBaseConfigApi.js';
+import { classifylist } from '@/api/modules/reportV2.js';
 import {changeCatalogArr,createRandomCode} from '../../utils/untils';
+import chooseCooperaUserDia from '@/views/report_manage/reportV2/components/chooseCooperaUserDia.vue';
 export default {
+  components: { chooseCooperaUserDia },
   props:{
     mergePptShow:{
       type:Boolean,
@@ -105,7 +168,12 @@ export default {
         Title:'',
         ImgUrl:'',//读取etaBaseConfig中封面页的第一个
         BackIndex:0,
-        TemplateType:1
+        TemplateType:1,
+        classify: [],
+        title: "",
+        cooperationType: 1,//协作方式
+        cooperationUsers:[],
+
       },//PPT的标题信息
       publicList:[],
       privateList:[],
@@ -118,7 +186,27 @@ export default {
       showCatalog:false,
       selectedCatalogId:0,//选择的目录Id
       saveLoading:null,//加载loading
-      MyPrivateList:[]
+      MyPrivateList:[],
+
+      classifyOptions: [],
+      rules: {
+        classify: [
+          {
+            required: true,
+            message: '报告分类不能为空',
+            trigger: "change",
+          },
+        ],
+        title: [
+          {
+            required: true,
+            message: '报告标题不能为空',
+            trigger: "blur",
+          },
+        ],
+      },
+      //协作人弹窗
+      isChooseCooperaUser: false,
     };
   },
   watch:{
@@ -128,6 +216,7 @@ export default {
         this.getCatalogsList()
         this.getPrivateList()
         this.getBaseConfig()
+        this.getclassifylist();
       }
       if(!newValue){
         if(this.saveLoading){
@@ -137,6 +226,26 @@ export default {
     }
   },
   methods: {
+    // 获取分类
+    getclassifylist() {
+      //获取分类列表
+      let params = { CurrentIndex: 0, PageSize: 1000, KeyWord: "",Enabled:1 };
+
+      classifylist(params).then((res) => {
+        if (res.Ret == 200 && Array.isArray(res.Data.List)) {
+          this.classifyOptions = res.Data.List||[];
+        }
+      });
+    },
+
+    getChooseCooperaUser(val) {
+      this.pptInfo.cooperationUsers = val;
+    },
+    
+    removeCooper(index) {
+      this.pptInfo.cooperationUsers.splice(index,1)
+    },
+
     cancelHandle(){
       this.$emit('cancel')
     },
@@ -150,6 +259,7 @@ export default {
         this.$message.warning(msg)
         return
       }
+      await this.$refs.baseinfoForm.validate()
       this.saveLoading = this.$loading({
         fullscreen:true,
         lock: true,
@@ -181,9 +291,6 @@ export default {
       if(this.choosedIdArr.length!==2){
         return {result:false,msg: this.$t('Slides.please_select_two_msg')}
       }
-      if(!this.pptInfo.Title.length){
-        return {result:false,msg:this.$t('Slides.please_fill_title_msg')}
-      }
       if(this.selectedCatalogId===0){
         return {result:false,msg:this.$t('Slides.please_select_directory_msg') }
       }
@@ -323,17 +430,7 @@ export default {
         this.selectedCatalogId = this.MyPrivateList[0].GroupId
       }
     },
-    //模拟blur事件,隐藏展开的目录框
-    handleMouseDown(target){
-      //console.log(target)
-      const {path} = target
-      for(let i=0;i<path.length;i++){
-        if(path[i].className==="catalog-wrap")return
-      }
-      if(this.showCatalog){
-        this.showCatalog = false
-      }
-    },
+
     //重置data的值
     init(){
       Object.assign(this.$data,this.$options.data())
@@ -342,7 +439,7 @@ export default {
         etaBaseConfigInterence.getBaseConfig().then(res=>{
                 if(res.Ret!==200) return
                 const {CnPptCoverImgs='',EnPptCoverImgs=''} = res.Data||{}
-                this.pptInfo.ImgUrl = this.$parent.currentLang!=='en'?CnPptCoverImgs.split(',')[0]:EnPptCoverImgs.split(',')[0]
+                this.pptInfo.ImgUrl = CnPptCoverImgs.split(',')[0]
         })
     }
   },
@@ -597,6 +694,16 @@ export default {
         border: 1px solid #DCDFE6;
       }
     }
+
+    .ppt-baseInfo {
+      width: 100%;
+      margin-top: 30px;
+      .choosed-cooper {
+        display: flex;
+        flex-wrap: wrap;
+        gap: 10px;
+      }
+    }
   }
 }
 </style>

+ 54 - 171
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -33,7 +33,7 @@
         </el-select>
       </div>
       <div class="ppt-list-wrap">
-        <el-tabs v-model="default_tab">
+        <el-tabs v-model="treeName" @tab-click="handleTabClick">
           <el-tab-pane :label="tab.label" :name="tab.key" v-for="tab in panelTabs" :key="tab.key"></el-tab-pane>
         </el-tabs>
 
@@ -54,16 +54,6 @@
             @mouseover="data.copyIconShow=true" @mouseout="data.copyIconShow=false"
           >
             <span class="tree-label">{{ data.label }}</span>
-            <span
-              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)"
-                @click.stop="handleCopy(data)"
-              ></i> -->
-            </span>
           </span>
         </el-tree>
 
@@ -101,9 +91,10 @@
                         <div class="status">{{getReportStatus(1)}}</div>
                 </div>
                 <div class="item-opt">
-                    <span v-for="optItem in setListTool(item)" :key="optItem.key" @click.stop="handleListToolClick(optItem,item)">
-                        {{ getListMenuOptText(optItem.label) }}
-                    </span>
+
+                  <span v-for="optItem in getAuthToolList(item)" :key="optItem.key" @click.stop="handleListToolClick(optItem,item)" :style="optItem.key==='delete'&&'color:#f00'">
+                      {{ optItem.label }}
+                  </span>
                 </div>
                 <div class="item-foot" style="margin-bottom:0;">
                   <el-tooltip :content="$t('Slides.update_time')" placement='top' :enterable="false">
@@ -145,6 +136,7 @@
             </div>
             <div>
               报告状态:{{getReportStatus(1)}}
+
             </div>
           </div>
           <div class="tool-list-operation">
@@ -153,7 +145,7 @@
               <span v-for="item in pptToolList" :key="item.key" 
                 :class="{'delete':item.key==='delete'}"
                 @click="handleToolClick(item)">
-                {{getContentMenuOptText(item.label)}}
+                {{item.label}}
               </span>
             </div>
           </div>
@@ -161,46 +153,19 @@
       </div>
       
     </div>
-    <!-- 添加/编辑目录弹窗 -->
-    <!-- <modify-catalog
-      :catalogItem="catalogItem" 
-      :modifyCatalogShow="modifyCatalogShow"
-      @changeCatalog="changeCatalog"
-      @cancel="closeDialog('modifyCatalogShow')"
-    /> -->
-    <!-- 选择目录弹窗 -->
-    <!-- <choose-catalog 
-      :chooseCatalogShow="chooseCatalogShow"
-      :chooseCatalogType="chooseCatalogType"
-      @selectCatalog="selectCatalog"
-      @cancel="closeDialog('chooseCatalogShow')"
-    /> -->
+
     <!-- 新增ppt弹窗-->
     <addPptBaseDia
       :show.sync="isAddPptBaseShow"
     />
 
-    <!-- 转双周报弹窗 -->
-    <!-- <trans-report
-      v-if="pptItem"
-      :transReportShow="transReportShow"
-      :pptTitle="pptItem.Title"
-      @transSet="getTransSet"
-      @cancel="closeDialog('transReportShow')" 
-    /> -->
     <!-- 合并ppt弹窗 -->
     <merge-ppt-dialog
       :mergePptShow="mergePptShow"
       @merged="handleMergedPPT"
       @cancel="closeDialog('mergePptShow')"
     />
-
-    <!-- 共享用户弹窗 -->
-    <!-- <share-user-dialog
-      :isShow.sync="openShareUserDia"
-      :data="shareObj"
-      @successCallback="getCatalogsList"
-    /> -->
+    
   </div>
 </template>
 
@@ -253,6 +218,7 @@ export default {
   },
   data() {
     return {
+      toolList,
       publicList:[],//公共目录
       privateList:[],//我的目录
       catalogPPTList:[],//目录的ppt列表
@@ -262,7 +228,7 @@ export default {
       pptItem:null,
       isSlideLeft:false,//控制目录栏展开,收起
       selectNode:null,//当前选中的节点
-      treeName:'public',//当前操作的el-tree
+      treeName:'private',//当前操作的el-tree
       dragStartIndex:0,//ppt列表当前拖拽前的pptIndex
       dragPpt:null,//当前拖拽的ppt
       dragPrepPpt:null,//ppt拖拽后,在它前面的ppt
@@ -272,8 +238,6 @@ export default {
       searchTitle:'',
       mergePptShow:false,//合并ppt弹窗
 
-      default_tab: '1',
-
       //添加ppt弹窗
       isAddPptBaseShow:false
 
@@ -282,16 +246,16 @@ export default {
   computed:{
     panelTabs(){
       return [
-        { label: this.$t('Slides.my_ppt_tabs'), key: '1' },
-        { label: this.$t('Slides.share_ppt_tabs'), key: '2' },
-        { label: this.$t('Slides.public_ppt_tabs'), key: '3' },
+        { label: this.$t('Slides.my_ppt_tabs'), key: 'private' },
+        { label: this.$t('Slides.share_ppt_tabs'), key: 'shared' },
+        { label: this.$t('Slides.public_ppt_tabs'), key: 'public' },
       ]
     },
 
     // 登录账号id
     RoleId() {
       return  Number(localStorage.getItem('AdminId'))
-    }
+    },
 
   },
   watch:{
@@ -317,7 +281,7 @@ export default {
         })
       }
       if(data){
-        this.default_tab = search==='public'?'3':'1';
+        this.treeName = search;
         //选中该节点
         this.$refs[`${search}Tree`].setCurrentKey('ppt'+newVal)
         //展开该节点的父节点...
@@ -343,27 +307,6 @@ export default {
       return statusMap.get(state)||""
     },
 
-    //ppt列表操作栏
-    getListMenuOptText(e){
-        if(e==='预览发布') return this.$t('Slides.list_ppt_item_publish')
-        if(e==='演示') return this.$t('Slides.list_ppt_item_preview')
-        if(e==='下载') return this.$t('Slides.list_ppt_item_download')
-        if(e==='编辑') return this.$t('Slides.list_ppt_item_edit')
-    },
-    //ppt详情操作栏
-    getContentMenuOptText(e){
-      if(e==='查看报告') return this.$t('Slides.view_report_btn')
-      if(e==='编辑') return this.$t('Slides.edit_lable_name')
-      if(e==='转报告') return this.$t('Slides.convert_to_report')
-      if(e==='预览发布') return this.$t('Slides.operations_preview')
-      if(e==='演示') return this.$t('Slides.operations_presentation')
-      if(e==='转英文PPT') return this.$t('Slides.operations_english')
-      if(e==='复制') return this.$t('Slides.operations_copy')
-      if(e==='下载') return this.$t('Slides.operations_download')
-      if(e==='删除') return this.$t('Table.delete_btn')
-      return e
-    },
-
     //关闭弹窗
     closeDialog(name){
       this[name] = false
@@ -377,10 +320,11 @@ export default {
         if(!isSetKey) return
         this.$nextTick(()=>{
            //选中节点
-          this.$refs[`${this.treeName}Tree`].setCurrentKey(item.nodeKeyId)
+          this.$refs.publicTree.setCurrentKey(item.nodeKeyId)
           //找到该节点的父节点,展开,获取父节点id
-          const node = this.$refs[`${this.treeName}Tree`].getCurrentNode()
-          !this[`${this.treeName}ExpandKeys`].includes(node.catalogId)&&this[`${this.treeName}ExpandKeys`].push(node.catalogId)
+          const node = this.$refs.publicTree.getCurrentNode()
+          if(!node) return
+          !this.publicExpandKeys.includes(node.catalogId)&&this.publicExpandKeys.push(node.catalogId)
           this.pptItem.catalogId = node.catalogId||''
           this.selectNode = item
         })
@@ -398,60 +342,11 @@ export default {
         })
       }
     },
-    //设置列表的操作按钮
-    setListTool(itemData){
-      let list = []
-      const {checkPermissionBtn,pptPermission} = this.permissionBtn
-      const authMap = {
-          'publish':checkPermissionBtn(pptPermission.ppt_publish),
-          'present':checkPermissionBtn(pptPermission.ppt_show),
-          'download':checkPermissionBtn(pptPermission.ppt_download),
-          'edit':checkPermissionBtn(pptPermission.ppt_save),
-      }
-      //私有目录显示编辑,其他不显示
-      list = toolList.filter((i)=>{
-          return ['publish','present','download','edit'].includes(i.key)
-        })
 
-      const sortMap = {
-        'present':0,
-        'edit':1,
-        'publish':2,
-        'download':3
-      }
-      list.sort((a,b)=>{
-        return sortMap[a.key] - sortMap[b.key]
-      })
-      return list
-    },
     //设置操作按钮
     setToolList(pptDetail={}){
-      console.log(pptDetail)
-      //公共目录:显示除 删除, 编辑 外的全部按钮
-      if(this.treeName==='public'){
-        this.pptToolList = toolList.filter((i)=>{
-          return ['publish','present','download','copy','transform','transEn'].includes(i.key)
-        })
-      }
+      this.pptToolList = this.getAuthToolList(this.pptItem)
 
-      //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),
-          'edit':checkPermissionBtn(pptPermission.ppt_save),
-          'delete':checkPermissionBtn(pptPermission.ppt_del),
-      }
-      let authArr = []
-      for(let k in authMap){
-          if(authMap[k]){
-            authArr.push(k)
-          }
-      }
-      this.pptToolList = this.pptToolList.filter((i)=>{
-          return authArr.includes(i.key)
-        })
       //若有人在编辑,则显示编辑中
       if(this.pptToolList.find(i=>i.key==='edit')){
         const {Editor={}} = pptDetail
@@ -467,9 +362,25 @@ export default {
       }
     },
 
+    //获取展示权限按钮
+    getAuthToolList(item) {
+      const {checkPermissionBtn,pptPermission} = this.permissionBtn
+      const btnAuthMap = {
+          'cancel':checkPermissionBtn(pptPermission.ppt_publish)&&item.source==='gn',
+          'submit':checkPermissionBtn(pptPermission.ppt_publish)&&item.source==='gn',
+          'publish':checkPermissionBtn(pptPermission.ppt_publish)&&item.source!=='gn',
+          'present':checkPermissionBtn(pptPermission.ppt_show),
+          'download':checkPermissionBtn(pptPermission.ppt_download),
+          'edit':checkPermissionBtn(pptPermission.ppt_save),
+          'delete':checkPermissionBtn(pptPermission.ppt_del),
+          // &&item.AdminId===this.RoleId
+      }
+
+      return toolList.filter((i)=>btnAuthMap[i.key]) 
+    },
+
     //点击目录
-    nodeChange(data,node,treeName){
-      this.treeName = treeName
+    nodeChange(data,node){
 
       if(data.PptId){
         //是PPT,进入PPT详情
@@ -498,8 +409,7 @@ export default {
           if(res.Ret===200){
             this.$message.success(this.$t('MsgPrompt.delete_msg'));
             this.getCatalogsList()
-            const catalog = this[`${this.treeName}List`].find(i=>i.GroupId===data.catalogId)
-            this.$refs[`${this.treeName}Tree`].setCurrentKey(data.catalogId)
+            this.$refs.publicTree.setCurrentKey(data.catalogId)
             
             this.changeModel('list',{})
 
@@ -560,7 +470,7 @@ export default {
       //要跳转页面的:预览发布,编辑,演示
       if(urlMap[item.key]){
         if(this.pptItem.PptVersion===2){
-          if(!this.pptItem.overLimit||item.key!=='publish'){
+          if(!this.pptItem.overLimit){
             if(item.key==='edit'){
                 if(item.label.length>2){
                     this.$message.warning(this.$t('Slides.no_duplicated_edit_msg') )
@@ -578,21 +488,8 @@ export default {
                 const res = await pptInterface.pptEditLock({PptId:Number(this.pptItem.PptId),Status:1})
                 if(res.Ret!==200) return
             }
-            // window.open(urlMap[item.key],'_blank');
-            window.open(href,'_blank');
-          }else if(item.key==='publish'){
-            //this.$message.warning('该PPT页数超过60页或图表数量超过100张,无法发布,请修改后重试')
-            /* if(!this.pptItem.overLimitHint.chartNum){
-              this.$message.warning(this.$t('Slides.exceed_ppt_msg') )
-              return
-            }
-            if(!this.pptItem.overLimitHint.pageNum){
-              this.$message.warning(this.$t('Slides.exceed_sixty_ppt_msg') )
-              return
-            } */
-            // window.open(urlMap[item.key],'_blank');
             window.open(href,'_blank');
-          }     
+          }    
         }else{
           if(item.key==='publish'){
             sessionStorage.setItem('ppt_id',this.pptItem.PptId);
@@ -794,7 +691,6 @@ export default {
       this.treeName='private'
       this.changeModel('ppt',pptItem)
       this.mergePptShow = false
-      this.default_tab='1'
     },
     //合并PPT成功后,PPT页数和图表数校验
     handleIsLegal(isLegalObj){
@@ -803,16 +699,18 @@ export default {
     },
 
     //获取所有目录
-    async getCatalogsList(type){
+    async getCatalogsList(){
       const res = await pptInterface.getCatalogsList()
-      const currentKey = this.$refs[`${this.treeName}Tree`].getCurrentKey()
+      const currentKey = this.$refs.publicTree.getCurrentKey()
       if(res.Ret===200){
         const {PublicList,PrivateList,GrantList} = res.Data
-        this.publicList = changeCatalogArr(PublicList)
-        this.privateList = changeCatalogArr(PrivateList)
-        this.sharedList = changeCatalogArr(GrantList)
+        this.publicList = 
+          this.treeName==='public' ? changeCatalogArr(PublicList)
+          : this.treeName==='private' ? changeCatalogArr(PrivateList)
+          : changeCatalogArr(GrantList)
+
         this.$nextTick(()=>{
-          this.$refs[`${this.treeName}Tree`].setCurrentKey(currentKey)
+          this.$refs.publicTree.setCurrentKey(currentKey)
           if(this.selectNode&&this.selectNode.GroupId){
             this.changeModel('list',this.selectNode)
           }else if(!this.selectNode){
@@ -831,29 +729,13 @@ export default {
     },
 
     //切换tab时,展开选中tab的全部目录
-    handleTabClick(activeTab){
-    
+    handleTabClick(){
+      this.getCatalogsList()
     },
 
-    //如果下拉框一个选项都没有,就不显示下拉框按钮
-    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)
-        }
-        if(type==='ppt'){
-            return  checkPermissionBtn(pptPermission.ppt_copy)||
-                    checkPermissionBtn(pptPermission.ppt_del)||
-                    checkPermissionBtn(pptPermission.ppt_setShare)||
-                    checkPermissionBtn(pptPermission.ppt_toEn)
-        }
-    },
   },
   mounted(){
-    this.getCatalogsList('load')
+    this.getCatalogsList()
   }
 };
 </script>
@@ -1076,6 +958,7 @@ export default {
             background-color: pink;
             position:relative;
             background: no-repeat top/cover url('~@/assets/img/ppt_m/bg3.jpg');
+            overflow: hidden;
             span{
               display: inline-block;
               width: 100%;

+ 8 - 0
src/views/ppt_manage/newVersion/utils/config.js

@@ -609,6 +609,14 @@ export const pptCoverEn = [
 export const pptBaseSize = {width:906,height:906*0.7}
 //ppt列表操作项
 export const toolList = [
+    {
+        label:'撤销',
+        key:'cancel'
+    },
+    {
+        label:'提交',
+        key:'submit'
+    },
     {
         label:'预览发布',
         key:'publish'

+ 2 - 8
src/views/report_manage/reportV2/components/chapterEditWrapper.vue

@@ -33,7 +33,7 @@
           </el-tooltip>
         </li>
         
-        <template v-if="!isApprove||!hasApproveFlow">
+        <template v-if="!isApprove">
             <li 
                 class="action-item" 
                 :class="{'disabled':puiblishLoading}"
@@ -49,7 +49,7 @@
                 </el-tooltip>
             </li>
         </template>
-        <template v-if="isApprove&&hasApproveFlow">
+        <template v-if="isApprove">
             <li 
                 class="action-item" 
                 :class="{'disabled':puiblishLoading}"
@@ -640,12 +640,6 @@ export default {
 
       if(res.Data.PrePublishTime) this.$parent.taskTime = res.Data.PrePublishTime;
 
-      if(type!=='notCheck') {
-        let classify = [res.Data.ClassifyIdFirst,res.Data.ClassifyIdSecond,res.Data.ClassifyIdThird]
-        this.$emit('checkClassifyNameArr',classify)
-      }
-
-      // this.reportVarietyOpts = res.Data.PermissionList||[];
       this.userOpts = res.Data.GrandAdminList||[];
 
     },

+ 2 - 2
src/views/report_manage/reportV2/components/reportEditHeader.vue

@@ -49,7 +49,7 @@
 
         <!-- 单人报告 -->
         <template v-else>
-            <template v-if="!isApprove||!hasApproveFlow">
+            <template v-if="!isApprove">
                 <li 
                     class="action-item editsty" 
                     :class="{'disabled':checkLoading}"
@@ -60,7 +60,7 @@
                     <span>{{$t('ReportManage.ReportList.publish_btn')}}</span>
                 </li>
             </template>
-            <template v-if="isApprove&&hasApproveFlow">
+            <template v-if="isApprove">
                 <li 
                     class="action-item editsty" 
                     :class="{'disabled':checkLoading}"

+ 6 - 7
src/views/report_manage/reportV2/list.vue

@@ -53,10 +53,10 @@
                           style="width:100%;"
                           @change="filterChange"
                       >
-                        <el-option :label="$t('ReportManage.smart_unpublished')" :value="1" v-if="!isOtherApprove"></el-option>
+                          <el-option :label="$t('ReportManage.smart_unpublished')" :value="1"></el-option>
                           <el-option :label="$t('ReportManage.smart_published')" :value="2"></el-option>
-                          <el-option :label="$t('ReportManage.smart_pending')" :value="3" v-if="isApprove"></el-option>
-                          <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4" v-if="isApprove"></el-option>
+                          <el-option :label="$t('ReportManage.smart_pending')" :value="3" ></el-option>
+                          <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4"></el-option>
                           <el-option :label="$t('ReportManage.smart_rejected')" :value="5"></el-option>
                           <el-option :label="$t('ReportManage.smart_approved')" :value="6"></el-option>
                         </el-select>
@@ -170,7 +170,7 @@
             align="center"
             min-width="100"
           ></el-table-column>
-          <el-table-column :label="$t('ReportManage.smart_status_table')" align="center" v-if="isApprove">
+          <el-table-column :label="$t('ReportManage.smart_status_table')" align="center">
             <template slot-scope="scope">
                 <span v-if="scope.row.State == '1'">{{$t('ReportManage.smart_unpublished')}}</span>
                 <span v-if="scope.row.State == '2'">{{$t('ReportManage.smart_published')}}</span>
@@ -475,13 +475,12 @@ import {
 } from '@/api/modules/reportV2.js';
 import { departInterence } from "api/api.js";
 import {approveInterence} from '@/api/modules/approve.js';
-import reportApproveConfig from "@/mixins/reportApproveConfig.js";
+// import reportApproveConfig from "@/mixins/reportApproveConfig.js";
 import reportBaseInfo from './components/reportBaseInfoDia.vue';
 import reportPreview from './components/reportPreview.vue';
 export default {
   name:'reportV2',
   components: { reportBaseInfo,reportPreview },
-  mixins:[reportApproveConfig],
   computed: {
     exportUrlDl() {
       let url = process.env.VUE_APP_API_ROOT + "/report/report_view_record/export";
@@ -897,7 +896,7 @@ export default {
       let baseUrl= localStorage.getItem('dynamicOutLinks') ? JSON.parse(localStorage.getItem('dynamicOutLinks')).ReportViewUrl : '';
 			this.linkPdfUrl = item.ReportLayout===1 ? `${baseUrl}/reportshare_pdf` : `${baseUrl}/reportshare_smart_pdf`;
 
-      if(this.isApprove){
+      if(item.IsGN){
         this.handlePublic(1)
         return
       }

+ 0 - 7
src/views/report_manage/reportV2/smartReport/reportDetail.vue

@@ -117,13 +117,6 @@ export default {
 			}
 			return str
 		},
-        //是否开启审批流,若开启,导图按钮在非已审批的状态不显示
-        isApprove(){
-            const type = this.$setting.dynamicOutLinks.ApprovalFlow ||
-                        this.$store.state.dynamicOutLinks.ApprovalFlow ||
-                        JSON.parse(localStorage.getItem('dynamicOutLinks')).ApprovalFlow||''
-            return ['2','3'].includes(type)
-        }
     },
     props:{
         reportId:{//审批详情-预览报告

+ 4 - 4
src/views/system_manage/etaBaseConfig.vue

@@ -194,7 +194,7 @@
                             
                         </div>
                         <!-- 研报审批 -->
-                        <div v-if="isShowApprove">
+                        <!-- <div v-if="isShowApprove">
                             <div style="width:100%;margin-bottom: 20px;">
                                 <span style="color:#606266;">{{$t('SystemManage.BaseConfig.report_approval')}}</span> 
                                 <el-switch v-model="approve"></el-switch>
@@ -214,7 +214,7 @@
                                     </el-radio-group>
                                 </el-form-item>
                             </div>
-                        </div>
+                        </div> -->
 
                         
 
@@ -792,7 +792,7 @@ export default {
                 const {WatermarkChart='',UseXf='',IsReportApprove='',CnPptCoverImgs='',EnPptCoverImgs='',IsBIApprove=''} = res.Data
                 this.checkList = WatermarkChart==='true'?['研报图表']:[]
                 this.Iflytek = UseXf==='true'?true:false
-                this.approve = IsReportApprove==='true'?true:false
+                // this.approve = IsReportApprove==='true'?true:false
                 this.BIApprove = IsBIApprove==='true'?true:false
                 if(res.Data){
                     // this.$set(this,'formData',res.Data)
@@ -847,7 +847,7 @@ export default {
                     this.formData.LoginEmailTemplateContent = this.formData.LoginEmailTemplateContent.replace(/<p data-f-id=\"pbf\".*?<\/p>/g, "");
                     this.formData.WatermarkChart = ''+(this.checkList.includes('研报图表')?true:false)
                     this.formData.UseXf = ''+(this.Iflytek?true:false)
-                    this.formData.IsReportApprove = ''+(this.approve?true:false)
+                    // this.formData.IsReportApprove = ''+(this.approve?true:false)
                     this.formData.IsBIApprove = ''+(this.BIApprove?true:false)
                     const CnPptCoverImgs = this.formData.CnPptCoverImgs.join(',')
                     const EnPptCoverImgs = this.formData.EnPptCoverImgs.join(',')