Browse Source

同步英文PPT

cxmo 1 year ago
parent
commit
c2827fa7e3

+ 9 - 1
src/views/ppt_manage/mixins/pptEditorMixins.js

@@ -16,6 +16,7 @@ export default{
       copyPages:[],//选中的ppt页
       copyPagesMap:{},//选中的ppt页Id
       savePagesArr:[],//存储上一次选中的ppt页
+      CoverContent:'',//自定义封面页内容
     }
   },
   directives: {
@@ -384,7 +385,14 @@ export default{
           //啥也不干
         }
       });
-    }
+    },
+    //保存修改的自定义封面页
+    saveCover2(info){
+        const {firstPage={},content=''} = info
+        this.firstPage = firstPage
+        this.CoverContent = content
+        this.isShowChooseCover = false
+    },
   },
   mounted(){
     document.addEventListener("keydown",this.handlePasteKey)

+ 1 - 0
src/views/ppt_manage/mixins/pptMixins.js

@@ -171,6 +171,7 @@ export default {
             ModifyTime,
             PublishTime,
             Editor,
+            CoverContent
         }
       }else{
         this.result = {status:'',content:'获取ppt数据失败!'}

+ 4 - 2
src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue

@@ -3,7 +3,8 @@
     <div class="ppt-scroll">
       <template  v-for="(item,index) in loadArr">
           <div class="ppt-item" id="cover" v-if="index===0" :key="item.id">
-            <Cover :pageInfo="firstPage" v-show="firstPage"></Cover>
+            <!-- <Cover :pageInfo="firstPage" v-show="firstPage"></Cover> -->
+            <CustomCover :pageInfo="firstPage" :CoverContent="pptCoverContent" v-show="firstPage"/>
             <!-- <div class="ppt-info">
               <p>作者:{{pptItem.AdminRealName}}</p>
               <p>{{pptItem.PptxUrl?'发布':'保存'}}时间:{{$moment(pptTime).format('YYYY-MM-DD')}}</p>
@@ -53,6 +54,7 @@ import Highcharts from "highcharts/highstock";
 import HighchartszhCN  from '@/utils/highcahrts-zh_CN'
 HighchartszhCN(Highcharts)
 import addMyClassifyDia from '@/views/dataEntry_manage/components/addMyClassifyDia';
+import CustomCover from '../CustomCover.vue';
 export default {
   props:{
     pptItem:{ //ppt信息
@@ -60,7 +62,7 @@ export default {
     }
   },
   mixins:[pptmixin,mixins],
-  components:{Cover,addMyClassifyDia},
+  components:{Cover,addMyClassifyDia,CustomCover},
   data() {
     return {
         pageList:[],//ppt数组

+ 1 - 7
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -329,7 +329,6 @@ export default {
             BackIndex:0,//ETA基本配置上线后不用了
             TemplateType:1,//ETA基本配置上线后不用了
         },//封面信息
-        CoverContent:'',//自定义封面内容
         key_word:'',//搜索图表关键字
         chartList:[],//图表数组
         imgUrl:'',//黏贴图片上传后的地址
@@ -460,6 +459,7 @@ export default {
           this.firstPage.BackIndex = FirstPage.TemplateType-1
           this.currentItem = this.pageList[0]
           this.ReportId=ReportId
+          this.CoverContent = this.result.CoverContent
           //开启自动保存
           this.autoSave()
         }else{
@@ -487,12 +487,6 @@ export default {
         this.firstPage = info
         this.closeChooseCover()
     },
-    //保存修改的自定义封面页
-    saveCover2(info){
-        const {firstPage={},content=''} = info
-        this.firstPage = firstPage //这段不变
-        this.CoverContent = content
-    },
     //在指定位置添加一个有版式的空白页
     addPage(modelId,index) {
         let page = {

+ 25 - 11
src/views/ppt_manage/newVersion/pptEnEditor.vue

@@ -111,7 +111,7 @@
                 <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer?'ppt编辑':'图层编辑'}}</el-button>
             </div>
             <div class="richtext-tool"></div>
-            <div class="addppt-right-box" v-if="!isEditLayer">
+            <div class="addppt-right-box" v-show="!isEditLayer">
 
               <el-tabs v-model="tabsactive">
                 <el-tab-pane :label="tab" :name="tab" v-for="tab in panelTabs" :key="tab"></el-tab-pane>
@@ -185,7 +185,7 @@
               </div>
             </div>
             <!-- 图层编辑 -->
-            <div class="layer-edit-box" v-else>
+            <div class="layer-edit-box" v-show="isEditLayer">
               	<el-collapse v-model="activeNames" class="tool-list">
                   <el-collapse-item title="图层元素" name="el">
                     <div class="el-wrap">
@@ -224,12 +224,21 @@
     </div>
 
     <!-- 选择封面弹窗 -->
-    <choose-cover  v-if="isShowChooseCover"
+    <!-- <choose-cover  v-if="isShowChooseCover"
         :firstPage="firstPage"
         :pptCoverList="pptCoverList"
         :PptId="pptId"
         @close="closeChooseCover"
         @save="saveCover"
+    /> -->
+    <ChooseCoverNew 
+        :isShowChooseCover="isShowChooseCover"
+        :firstPage="firstPage"
+        :pptCoverList="pptCoverList"
+        :PptId="pptId"
+        :CoverContent="CoverContent"
+        @saveCover="saveCover2"
+        @close="isShowChooseCover=false"
     />
     <!-- 批量删除弹窗 -->
     <delete-page-dialog 
@@ -305,6 +314,7 @@ import InsertCharts from './components/editor/InsertCharts.vue';
 import setEnNameDia from '@/views/dataEntry_manage/components/setEnNameDia.vue';
 import ContextMenu from './components/ContextMenu.vue';
 import InsertSemantics from './components/editor/InsertSemantics.vue';
+import ChooseCoverNew from './components/editor/ChooseCoverNew.vue';
 export default {
   mixins:[pptmixin,//ppt页面共同逻辑
           mixins,//图表加载逻辑
@@ -324,7 +334,8 @@ export default {
     addMyClassifyDia,
     InsertCharts,
     ContextMenu,
-    InsertSemantics
+    InsertSemantics,
+    ChooseCoverNew
   },
   data() {
     return {
@@ -973,7 +984,8 @@ export default {
       pptEnInterface.addppt({
         FirstPage:FirstPage,
         Content:Content,
-        GroupId:this.catalogId
+        GroupId:this.catalogId,
+        CoverContent:this.CoverContent
       }).then(res=>{
         if(res.Ret===200){
           this.$message.success('新增成功')
@@ -990,7 +1002,8 @@ export default {
       pptEnInterface.editppt({
         PptId:parseInt(ppt_id),
         FirstPage:FirstPage,
-        Content:Content
+        Content:Content,
+        CoverContent:this.CoverContent
       }).then(res=>{
         if(res.Ret===200){
           if(type==='save'){
@@ -1021,7 +1034,8 @@ export default {
         pptEnInterface.saveLog({
           PptId:parseInt(ppt_id),
           FirstPage:FirstPage,
-          Content:Content
+          Content:Content,
+          CoverContent:this.CoverContent
         }).then((res)=>{})
       },10000)
     },
@@ -1029,9 +1043,9 @@ export default {
     save_checkPPT(){
       if(!this.firstPage.Title){
         return {result:false,hintText:'请输入封面标题!'}
-      }else if(!this.firstPage.ReportType){
+      }/* else if(!this.firstPage.ReportType){
         return {result:false,hintText:'请输入ppt类型!'}
-      }
+      } */
       if(this.pageList.length===0){
         return {result:false,hintText:'请至少添加一张PPT!'}
       }
@@ -1042,9 +1056,9 @@ export default {
       //检验首页
       if(!this.firstPage.Title){
         return {result:false,hintText:'请输入封面标题!'}
-      }else if(!this.firstPage.ReportType){
+      }/* else if(!this.firstPage.ReportType){
         return {result:false,hintText:'请输入ppt类型!'}
-      }
+      } */
       if(this.pageList.length===0){
         return {result:false,hintText:'请至少添加一张PPT!'}
       }

+ 6 - 3
src/views/ppt_manage/newVersion/pptEnPresent.vue

@@ -40,7 +40,8 @@
           <div class="ppt-wrap" @wheel.stop="normalMouseWheel">
             <!-- 封面 -->
             <div class="ppt-item" id="cover" v-if="currentIndex===0" style="background-size:20%;">
-              <Cover :pageInfo="coverInfo.page" v-show="coverInfo.page"></Cover>
+              <!-- <Cover :pageInfo="coverInfo.page" v-show="coverInfo.page"></Cover> -->
+              <CustomCover :pageInfo="coverInfo.page" :CoverContent="pptCoverContent" v-show="coverInfo.page"></CustomCover>
             </div>
             <!-- 封底 -->
             <div class="ppt-item" id="back" v-else-if="currentIndex===pageList.length+1" style="background-size:20%;">
@@ -98,7 +99,8 @@
           <div class="ppt-wrap">
             <!-- 封面 -->
             <div class="ppt-item" id="cover" v-if="currentIndex===0" style="background-size:20%;">
-              <Cover :pageInfo="coverInfo.page" v-show="coverInfo.page"></Cover>
+              <!-- <Cover :pageInfo="coverInfo.page" v-show="coverInfo.page"></Cover> -->
+              <CustomCover :pageInfo="coverInfo.page" :CoverContent="pptCoverContent" v-show="coverInfo.page"></CustomCover>
             </div>
             <!-- 封底 -->
             <div class="ppt-item" id="back" v-else-if="currentIndex===pageList.length+1" style="background-size:20%;">
@@ -166,6 +168,7 @@
 
 <script>
 import Cover from './components/CoverEn.vue';
+import CustomCover from './components/CustomCover.vue';
 import IndexItem from './components/IndexItem.vue';
 import {countComponentName,setFullscreen,isFullscreen,exitFullscreen,calcScale,countStrSize} from './utils/untils';
 import {pptCoverEn} from './utils/config'
@@ -181,7 +184,7 @@ const reloadPPTWid = ()=>{
   window.dispatchEvent(resizeEvent)
 }
 export default {
-  components: { IndexItem, Cover ,ContextMenu, DrawingBoardTool},
+  components: { IndexItem, Cover ,ContextMenu, DrawingBoardTool,CustomCover},
   mixins:[pptmixin,mixins],
   data() {
     return {

+ 8 - 4
src/views/ppt_manage/newVersion/pptEnPublish.vue

@@ -20,7 +20,8 @@
         <div class="ppt-wrap flex-center">
           <!-- 封面 -->
           <div class="ppt-item" id="cover" style="background-size:20%;">
-            <Cover :pageInfo="coverInfo.page"></Cover>
+            <!-- <Cover :pageInfo="coverInfo.page"></Cover> -->
+            <CustomCover :pageInfo="coverInfo.page" :CoverContent="pptCoverContent" v-show="coverInfo.page"></CustomCover>
           </div>
           <!-- 内容 -->
           <div class="ppt-item" v-for="(item,index) in pageList" :key="item.id">
@@ -47,6 +48,7 @@
 
 <script>
 import Cover from './components/CoverEn.vue';
+import CustomCover from './components/CustomCover.vue';
 import TransReport from './components/catalog/transReport.vue';
 import {countComponentName,pptInit,pptConfigInit,toTextProps,toJson,svg2Base64,getImgRealSize,calcScale,getShapeOptions,createRandomCode,getTableData} from './utils/untils';
 import {marginTop,modelConfig,pptSlideMaster,pptSlideMasterEn,pptCoverEn} from './utils/config';
@@ -65,7 +67,7 @@ import {uploadFileDirect} from "@/utils/common.js"
 HightchartsExport(Highcharts)
 HighchartszhCN(Highcharts)
 export default {
-  components: {Cover,TransReport},
+  components: {Cover,TransReport,CustomCover},
   mixins:[pptmixin,mixins],
   data() {
     return {
@@ -393,7 +395,7 @@ export default {
         size: { type: "contain" },
       })
       //生成的ppt需要可以在封面页更改标题和类型,所以封面信息手动写入
-      const coverInfo = [
+      /* const coverInfo = [
         //{text:'—————————————————————————————————\n',options:{fontSize:16*0.75,breakLine:true}},
         {text:this.coverInfo.page.Title,options:{fontSize:28*0.75,breakLine:true}},
         {text:`\n${this.pptCoverCompenyName||'ETA'}`,
@@ -411,7 +413,9 @@ export default {
         color:(this.pptCoverTextColor||'#ffffff').slice(1),
         align:'center',
         fontFace:'SimHei'
-      })
+      }) */
+      //自定义封面页的内容
+      cover = this.setPPTCover(cover,this.pptCoverContent,this.coverInfo.page.Title)
       //遍历pptx.slides,重新给每一项的部分属性赋值,再推入pptx2.slides中
       //第一页不需要,因为是空白的
       for(let i=1;i<pptx.slides.length;i++){