浏览代码

调接口

cxmo 1 年之前
父节点
当前提交
aef6f7e4d6

+ 3 - 0
src/api/modules/pptApi.js

@@ -23,6 +23,7 @@ export default{
      * FirstPage:{Title,ReportType,PptDate,ImgUrl} 封面信息
      * Content:string ppt具体内容,转字符串
      * GroupId:目录id
+     * CoverContent:string 封面页的具体内容,转字符串
      */
     addppt:params=>{
         return http.post('/pptv2/add',params)
@@ -32,6 +33,7 @@ export default{
      * PptId
      * FirstPage
      * Content
+     * CoverContent
      */
     editppt:params=>{
         return http.post('/pptv2/edit',params)
@@ -71,6 +73,7 @@ export default{
      * PptId
      * FirstPage
      * Content
+     * CoverContent
      */
     saveLog:params=>{
         return http.post('/pptv2/saveLog',params)

+ 3 - 0
src/api/modules/pptEnApi.js

@@ -16,6 +16,7 @@ export const pptEnInterface = {
      * FirstPage:{Title,ReportType,PptDate,ImgUrl} 封面信息
      * Content:string ppt具体内容,转字符串
      * GroupId:目录id
+     * CoverContent:string 封面页具体内容,转字符串
      */
     addppt:params=>{
         return http.post('/ppt_english/add',params)
@@ -25,6 +26,7 @@ export const pptEnInterface = {
      * PptId
      * FirstPage
      * Content
+     * CoverContent
      */
     editppt:params=>{
         return http.post('/ppt_english/edit',params)
@@ -56,6 +58,7 @@ export const pptEnInterface = {
      * PptId
      * FirstPage
      * Content
+     * CoverContent
      */
     saveLog:params=>{
         return http.post('/ppt_english/saveLog',params)

+ 4 - 2
src/views/ppt_manage/mixins/pptMixins.js

@@ -147,7 +147,8 @@ export default {
             ReportId,
             ModifyTime,
             PublishTime,
-            Editor
+            Editor,
+            CoverContent
         } = res.Data
         const pptDate = formatPPTDate(this.currentLang, PptDate)
         let legalContent = JSON.parse(Content)
@@ -155,6 +156,7 @@ export default {
             page.elements = checkPPTpageElemant(page)
             return page
         })
+        this.pptCoverContent = CoverContent
         this.result = {
             status: 200,
             content: legalContent,
@@ -168,7 +170,7 @@ export default {
             ReportId,
             ModifyTime,
             PublishTime,
-            Editor
+            Editor,
         }
       }else{
         this.result = {status:'',content:'获取ppt数据失败!'}

+ 6 - 3
src/views/ppt_manage/newVersion/components/CustomCover.vue

@@ -26,7 +26,6 @@
 </template>
 
 <script>
-const mock = [{"id":1234,"type":"text","left":624,"top":433,"width":227,"height":84,"fontSize":12,"content":"请输入内容","richContent":"<p><span style=\"font-size: 48px;\">😔😄😔</span></p>","realWidth":227,"realHeight":84,"percentageLeft":0.6446280991735537,"percentageTop":0.6390200708382527,"percentageWidth":0.23450413223140495,"percentageHeight":0.12396694214876035},{"id":5678,"type":"text","left":571,"top":313,"width":352,"height":96,"fontSize":12,"content":"请输入内容","richContent":"<p><span style=\"color: #ecf0f1; font-size: 24px;\">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</span></p>","realWidth":352,"realHeight":96,"percentageLeft":0.5898760330578512,"percentageTop":0.4619244391971665,"percentageWidth":0.36363636363636365,"percentageHeight":0.14167650531286896}]
 export default {
     name:'CoverNew',
     props: {
@@ -39,6 +38,11 @@ export default {
             default: ''
         }
     },
+    watch:{
+        CoverContent(newval){
+            this.setCoverContent()
+        }
+    },
     data() {
         return {
             coverList: [],
@@ -46,11 +50,10 @@ export default {
     },
     methods: {
         setCoverContent() {
-            //this.coverList = JSON.parse(this.CoverContent);
             try{
                 this.coverList = JSON.parse(this.CoverContent)
             }catch(e){
-                this.coverList = mock
+                this.coverList = []
             }
         }
     },

+ 5 - 4
src/views/ppt_manage/newVersion/components/catalog/mergePPTDialog.vue

@@ -105,7 +105,7 @@ export default {
       pptInfo:{
         Title:'',
         //ReportType:'',
-        BackgroundImg:'',//读取etaBaseConfig中封面页的第一个
+        ImgUrl:'',//读取etaBaseConfig中封面页的第一个
         //PptDate:(new Date().getFullYear())+'年'+(new Date().getMonth()+1)+'月',
         BackIndex:0,
         TemplateType:1
@@ -164,15 +164,16 @@ export default {
       await this.addNewPpt()
       if(this.PptId!==0){
         //this.$emit('merged',{PptId:this.PptId,catalogId:this.selectedCatalogId})
+        this.saveLoading.close()
         //跳转至ppt编辑页
+        const path = this.$parent.currentLang!=='en'?'/ppteditor':'/ppteneditor'
         this.$router.push({
-            path:'/ppteditor',
+            path,
             query:{
                 id:this.PptId
             }
         })
       }
-        
     },
     //检查填写的信息是否合法
     checkForm(){
@@ -347,7 +348,7 @@ export default {
         etaBaseConfigInterence.getBaseConfig().then(res=>{
                 if(res.Ret!==200) return
                 const {CnPptCoverImgs='',EnPptCoverImgs=''} = res.Data||{}
-                this.pptInfo.BackgroundImg = this.$parent.currentLang!=='en'?CnPptCoverImgs.split(',')[0]:EnPptCoverImgs.split(',')[0]
+                this.pptInfo.ImgUrl = this.$parent.currentLang!=='en'?CnPptCoverImgs.split(',')[0]:EnPptCoverImgs.split(',')[0]
         })
     }
   },

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

@@ -5,7 +5,7 @@
       <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> -->
-            <CustomCover :pageInfo="firstPage" v-show="firstPage"/>
+            <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>

+ 1 - 0
src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue

@@ -95,6 +95,7 @@ export default {
     },
     methods: {
         setCoverInfo() {
+            this.pageData.Title = this.firstPage.Title||''
             this.searchIndex = this.pptCoverList.findIndex(i=>i===this.firstPage.BackgroundImg)
             if(this.searchIndex===-1){
                 this.pageData.BackgroundImg = this.pptCoverList[0]

+ 4 - 4
src/views/ppt_manage/newVersion/components/editor/chooseCover/elMixin.js

@@ -170,10 +170,10 @@ export default{
           //更新percentage单位
           const width = $('.editor-area').width(),height = width*0.7
           const percentageShape = caclShapePercentage({layerWidth:width,layerHeight:height},this.elementInfo)
-          this.elementInfo.percentageLeft = percentageShape.percentageLeft
-          this.elementInfo.percentageTop = percentageShape.percentageTop
-          this.elementInfo.percentageWidth = percentageShape.percentageWidth
-          this.elementInfo.percentageHeight = percentageShape.percentageHeight
+          this.elementInfo.percentageLeft = Number(percentageShape.percentageLeft.toFixed(5))
+          this.elementInfo.percentageTop = Number(percentageShape.percentageTop.toFixed(5))
+          this.elementInfo.percentageWidth = Number(percentageShape.percentageWidth.toFixed(5))
+          this.elementInfo.percentageHeight = Number(percentageShape.percentageHeight.toFixed(5))
         },
         //显示右键菜单
         showContentMenu(e){

+ 11 - 8
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -490,7 +490,7 @@ export default {
     //保存修改的自定义封面页
     saveCover2(info){
         const {firstPage={},content=''} = info
-        //this.firstPage = firstPage //这段不变
+        this.firstPage = firstPage //这段不变
         this.CoverContent = content
     },
     //在指定位置添加一个有版式的空白页
@@ -1016,7 +1016,8 @@ export default {
       pptInterface.addppt({
         FirstPage:FirstPage,
         Content:Content,
-        GroupId:this.catalogId
+        GroupId:this.catalogId,
+        CoverContent:this.CoverContent
       }).then(res=>{
         if(res.Ret===200){
           this.$message.success('新增成功')
@@ -1035,7 +1036,8 @@ export default {
       pptInterface.editppt({
         PptId:parseInt(ppt_id),
         FirstPage:FirstPage,
-        Content:Content
+        Content:Content,
+        CoverContent:this.CoverContent
       }).then(res=>{
         if(res.Ret===200){
           if(type==='save'){
@@ -1073,7 +1075,8 @@ export default {
         pptInterface.saveLog({
           PptId:parseInt(ppt_id),
           FirstPage:FirstPage,
-          Content:Content
+          Content:Content,
+          CoverContent:this.CoverContent
         }).then((res)=>{})
       },10000)
     },
@@ -1081,9 +1084,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!'}
       }
@@ -1094,9 +1097,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/pptPresent.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/Cover.vue';
+import CustomCover from './components/CustomCover.vue';
 import IndexItem from './components/IndexItem.vue';
 import {countComponentName,setFullscreen,isFullscreen,exitFullscreen,calcScale,countStrSize} from './utils/untils';
 import pptmixin from '../mixins/pptMixins';
@@ -180,7 +183,7 @@ const reloadPPTWid = ()=>{
   window.dispatchEvent(resizeEvent)
 }
 export default {
-  components: { IndexItem, Cover ,ContextMenu, DrawingBoardTool},
+  components: { IndexItem, Cover ,ContextMenu, DrawingBoardTool, CustomCover},
   mixins:[pptmixin,mixins],
   data() {
     return {

+ 5 - 11
src/views/ppt_manage/newVersion/pptPublish.vue

@@ -22,7 +22,7 @@
           <!-- 封面 -->
           <div class="ppt-item" id="cover" style="background-size:20%;">
             <!-- <Cover :pageInfo="coverInfo.page"></Cover> -->
-            <CustomCover :pageInfo="coverInfo.page"></CustomCover>
+            <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">
@@ -123,11 +123,11 @@ export default {
   methods: {
     async transHandle(){
       //需要校验PPT
-     /*  const {result,hintText} = this.checkPPT()
+      const {result,hintText} = this.checkPPT()
       if(!result){
         this.$message.warning(hintText)
         return
-      } */
+      }
       this.loadingInstance = this.$loading({
         lock:true,
         fullscreen: true,
@@ -135,14 +135,7 @@ export default {
       });
       this.isPublish = true
       if(this.loadingAll){
-        //await this.pageToPptx() 
-        //mock本地生成封面调试
-        let pptx = pptInit(new pptxgen(),this.LayoutType,'ch')
-        let cover = pptx.addSlide()
-        let mockContent1 = JSON.stringify([{ "id": 1234, "type": "text", "left": 624, "top": 433, "width": 227, "height": 84, "fontSize": 12, "content": "请输入内容", "richContent": "<p><span style=\"font-size: 48px;\">😔😄😔</span></p>", "realWidth": 227, "realHeight": 84, "percentageLeft": 0.6446280991735537, "percentageTop": 0.6390200708382527, "percentageWidth": 0.23450413223140495, "percentageHeight": 0.12396694214876035 }, { "id": 5678, "type": "text", "left": 571, "top": 313, "width": 352, "height": 96, "fontSize": 12, "content": "请输入内容", "richContent": "<p><span style=\"color: #ecf0f1; font-size: 24px;\">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</span></p>", "realWidth": 352, "realHeight": 96, "percentageLeft": 0.5898760330578512, "percentageTop": 0.4619244391971665, "percentageWidth": 0.36363636363636365, "percentageHeight": 0.14167650531286896 }])
-        let mockContent2=''
-        cover = this.setPPTCover(cover,mockContent2,this.coverInfo.page.Title)
-        pptx.writeFile({ fileName: "test.pptx" })
+        await this.pageToPptx() 
       }
       this.isPublish = false
     },
@@ -438,6 +431,7 @@ export default {
         align:'center',
         fontFace:'SimHei'
       }) */
+      //自定义封面页的内容
       cover = this.setPPTCover(cover,this.pptCoverContent,this.coverInfo.page.Title)
       //遍历pptx.slides,重新给每一项的部分属性赋值,再推入pptx2.slides中
       //第一页不需要,因为是空白的