Browse Source

Merge branch 'ch/ETA_2.4' of eta_gn_front/eta_front into debug

leichen 3 months ago
parent
commit
cebd9ebf4f

+ 2 - 2
src/api/modules/reportV2.js

@@ -127,7 +127,7 @@ export const reportV2Interface = {
 	},
 
 	/**
-	 * * 获取报告的标签列表
+	 * * 获取报告记录列表
 	 * @param {*ReportId} params 
 	 * @param {*ReportChapterId} params 
 	 * @returns 
@@ -136,7 +136,7 @@ export const reportV2Interface = {
 		return http.get('/report_history/list',params)
 	},
 	/**
-	 * * 获取报告的标签列表
+	 * * 获取报告记录详情
 	 * @param {*ReportId} params 
 	 * @param {*id} params 
 	 * @returns 

BIN
src/assets/img/version_record.png


+ 29 - 4
src/views/ppt_manage/newVersion/components/layer/VersionRecord.vue

@@ -18,8 +18,13 @@
           <div class="list-wrap" v-infinite-scroll="handleLoadMore" :infinite-scroll-immediate="true">
               <div class="chart-item" v-for="item in list" :key="item.Id"  @mouseenter="showOperation(item.Id)"
               @mouseleave="hideOperation">
+              <div class="item-img">
+                <img src="~@/assets/img/version_record.png"/>
+              </div>
                   <div class="top">
-                    <div class="title">{{ item.Title }}</div>
+                    <el-tooltip class="item" effect="light" :content="item.Title" placement="top">
+                      <div class="title">{{ item.Title }}</div>
+                    </el-tooltip>
                     <div class="time">{{ item.CreateTime }}</div>
                   </div>
                   <div class="bottom">
@@ -90,7 +95,15 @@ export default {
       },
       // 预览
       preview(id){
-        this.$router.push({path:'/pptpublish', query:{id, isVersionRecord:'true'}})
+        // this.$router.push({path:'/pptpublish', query:{id, isVersionRecord:'true'}})
+        let { href } = this.$router.resolve({ 
+          path: '/pptpublish',
+          query:{
+            id,
+            isVersionRecord:'true'
+          }
+        });
+        window.open(href, '_blank');
       },
       // 删除弹窗
       deleteVersionRecord(Id){
@@ -143,7 +156,7 @@ div{
   }
   .main-box{
       padding: 20px;
-      height: calc(100vh - 180px);
+      height: calc(100vh - 340px);
       border-radius: 4px;
       display: flex;
       flex-direction: column;
@@ -158,14 +171,26 @@ div{
   }
 }
 .chart-item {
+  position: relative;
   width: 100%;
   max-height: 100px;
   margin: 10px 0;
   padding: 10px;
-  border: 1px solid #eaeaea;
   border-radius: 10px;
   font-size: 14px;
   text-align: center;
+  padding-left: 20px;
+  .item-img {
+    position: absolute;
+    top: 10px;
+    left: 0;
+    width: 8px;
+    height: 54px;
+    img {
+      width: 8px;
+      height: 54px;
+    }
+  }
   .top {
     display: flex;
     justify-content: space-between;

+ 14 - 6
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -166,9 +166,9 @@
                 <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer? $t('Slides.ppt_edit_btn'):$t('Slides.layer_editing')}}</el-button>
                 <el-button type="text" v-permission="permissionBtn.pptPermission.ppt_history" @click="handleVersionHistory"><i class="el-icon-time" style="margin-right:5px;"></i>{{$t('Slides.version_history')}}</el-button>
             </div>
-            <div class="richtext-tool"></div>
+            <div class="richtext-tool" v-if="!isVersionHistory"></div>
             <!-- 防止el-tabs未渲染时触发scrollToActiveTab 报错,v-if改为v-show-->
-            <div class="addppt-right-box" v-show="!isEditLayer&&!isEditTitle">
+            <div class="addppt-right-box" v-show="!isEditLayer&&!isEditTitle && !isVersionHistory">
               <el-tabs v-model="tabsactive">
                 <el-tab-pane :label="tab.label" :name="tab.val" v-for="tab in panelTabs" :key="tab.val"></el-tab-pane>
               </el-tabs>
@@ -237,7 +237,7 @@
               </div>
             </div>
             <!-- 图层编辑 -->
-            <div class="layer-edit-box" v-if="isEditLayer">
+            <div class="layer-edit-box" v-if="isEditLayer && !isVersionHistory">
               	<el-collapse v-model="activeNames" class="tool-list">
                   <el-collapse-item :title="$t('Slides.layer_element')" name="el">
                     <div class="el-wrap">
@@ -1147,10 +1147,18 @@ export default {
       this.isVersionHistory = true;
     },
     // 
-    async handleRestore(Id) {
-      let res = await pptInterface.getPptHistoryRevert({
-        Id
+    handleRestore(Id) {
+      this.$confirm('确认将报告恢复到该版本吗?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+      }).then(() => {
+        this.reportHistoryRevert(Id)
+      }).catch(() => {
       });
+    },
+    async reportHistoryRevert(Id) {
+      let res = await pptInterface.getPptHistoryRevert({Id});
       if (res.Ret !== 200) return;
       this.$message.success('恢复成功!');
       this.init()

+ 32 - 14
src/views/report_manage/reportV2/normalReport/components/VersionRecord.vue

@@ -16,20 +16,24 @@
       </div>
       <div class="main-box">
           <div class="list-wrap" v-infinite-scroll="handleLoadMore" :infinite-scroll-immediate="true">
-              <div class="chart-item" v-for="item in list" :key="item.SandboxId" @mouseenter="showOperation(item.Id)"
-              @mouseleave="hideOperation">
-                  <div class="top">
+              <div class="chart-item" v-for="item in list" :key="item.SandboxId" @mouseenter="showOperation(item.Id)" @mouseleave="hideOperation">
+                <div class="item-img">
+                  <img src="~@/assets/img/version_record.png"/>
+                </div>
+                <div class="top">
+                  <el-tooltip class="item" effect="light" :content="item.Title" placement="top">
                     <div class="title">{{ item.Title }}</div>
-                    <div class="time">{{ item.CreateTime }}</div>
-                  </div>
-                  <div class="bottom">
-                    <div class="name">{{item.AdminName}}</div>
-                    <div class="operation" v-show="item.showOperations">
-                      <span @click="preview(item.Id)">预览</span>
-                      <span @click="$emit('handleRestore', item.Id)">恢复</span>
-                      <span class="delete" @click="deleteVersionRecord(item.Id)">删除</span>
-                    </div>
+                  </el-tooltip>
+                  <div class="time">{{ item.CreateTime }}</div>
+                </div>
+                <div class="bottom">
+                  <div class="name">{{item.AdminName}}</div>
+                  <div class="operation" v-show="item.showOperations">
+                    <span @click="preview(item.Id)">预览</span>
+                    <span @click="$emit('handleRestore', item.Id)">恢复</span>
+                    <span class="delete" @click="deleteVersionRecord(item.Id)">删除</span>
                   </div>
+                </div>
               </div>
               <tableNoData :text="$t('Table.prompt_slogan')" style="width: 100%;" size="mini" v-if="list.length===0&&finished"/>
           </div>
@@ -124,6 +128,8 @@ export default {
           }).then((res) => {
               if(res.Ret !== 200) return
               this.$message.success('删除成功!');
+              this.page = 1;
+              this.list = [];
               this.getSandBoxList();
           });
       },
@@ -173,14 +179,26 @@ div{
   }
 }
 .chart-item {
+  position: relative;
   width: 100%;
   max-height: 100px;
   margin: 10px 0;
-  padding: 20px;
-  border: 1px solid #eaeaea;
+  padding: 10px;
   border-radius: 10px;
   font-size: 14px;
   text-align: center;
+  padding-left: 20px;
+  .item-img {
+    position: absolute;
+    top: 10px;
+    left: 0;
+    width: 8px;
+    height: 54px;
+    img {
+      width: 8px;
+      height: 54px;
+    }
+  }
   .top {
     display: flex;
     justify-content: space-between;

+ 3 - 1
src/views/report_manage/reportV2/normalReport/components/insertContent.vue

@@ -57,7 +57,9 @@ export default {
           this.$emit('handleRestore',data)
       },
       getSandBoxList(){
-        this.$refs.version.getSandBoxList() // 刷新版本列表
+        if (this.$refs.version) {
+          this.$refs.version.getSandBoxList() // 刷新版本列表
+        }
       }
   }
 }

+ 4 - 5
src/views/report_manage/reportV2/normalReport/editReport.vue

@@ -270,12 +270,11 @@ export default {
 				})
 				if(res.Ret !== 200) return
 				resolve(true)
+				this.lastsavetime = http.dateFormatter(new Date(), true);
+				type==='save' && this.$message.success(res.Msg);
 				if(type !== '')  {
 					this.$refs.insertContRef.getSandBoxList() // 刷新版本列表
 				}
-				this.lastsavetime = http.dateFormatter(new Date(), true);
-				type==='save' && this.$message.success(res.Msg);
-
 			})
 		},
 
@@ -391,11 +390,11 @@ export default {
 				}).then((res) => {
 					if (res.Ret === 200) {
 						resolve(true)
+						this.lastsavetime = http.dateFormatter(new Date(), true);
+						type==='save' && this.$message.success(res.Msg);
 						if(IsManualSave)  {
                             this.$refs.insertContRef.getSandBoxList() // 刷新版本列表
                         }
-						this.lastsavetime = http.dateFormatter(new Date(), true);
-						type==='save' && this.$message.success(res.Msg);
 					}
 				});
 				this.ischange = false;

+ 25 - 7
src/views/report_manage/reportV2/smartReport/components/VersionRecord.vue

@@ -16,10 +16,15 @@
       </div>
       <div class="main-box">
           <div class="list-wrap" v-infinite-scroll="handleLoadMore" :infinite-scroll-immediate="true">
-              <div class="chart-item" v-for="item in list" :key="item.SandboxId" @mouseenter="showOperation(item.Id)"
-              @mouseleave="hideOperation">
+              <div class="chart-item" v-for="item in list" :key="item.SandboxId" @mouseenter="showOperation(item.Id)" @mouseleave="hideOperation">
+                  <div class="item-img">
+                    <img src="~@/assets/img/version_record.png"/>
+                  </div>
                   <div class="top">
-                    <div class="title">{{ item.Title }}</div>
+                    <el-tooltip class="item" effect="light" :content="item.Title" placement="top">
+                      <div class="title">{{ item.Title }}</div>
+                    </el-tooltip>
+                    <!-- <div class="title">{{ item.Title }}</div> -->
                     <div class="time">{{ item.CreateTime }}</div>
                   </div>
                   <div class="bottom">
@@ -101,7 +106,6 @@ export default {
             path: '/smartReportDetail',
             query:{
                 id,
-                type:'preview',
                 isVersionRecord:'true'
             }
         });
@@ -124,6 +128,8 @@ export default {
           }).then((res) => {
               if(res.Ret !== 200) return
               this.$message.success('删除成功!');
+              this.page = 1;
+              this.list = [];
               this.getSandBoxList();
           });
       },
@@ -158,7 +164,7 @@ div{
   }
   .main-box{
       padding: 20px;
-      height: calc(100vh - 180px);
+      height: calc(100vh - 170px);
       border-radius: 4px;
       display: flex;
       flex-direction: column;
@@ -173,14 +179,26 @@ div{
   }
 }
 .chart-item {
+  position: relative;
   width: 100%;
   max-height: 100px;
   margin: 10px 0;
-  padding: 20px;
-  border: 1px solid #eaeaea;
+  padding: 10px;
   border-radius: 10px;
   font-size: 14px;
   text-align: center;
+  padding-left: 20px;
+  .item-img {
+    position: absolute;
+    top: 10px;
+    left: 0;
+    width: 8px;
+    height: 54px;
+    img {
+      width: 8px;
+      height: 54px;
+    }
+  }
   .top {
     display: flex;
     justify-content: space-between;

+ 3 - 3
src/views/report_manage/reportV2/smartReport/editReport.vue

@@ -504,10 +504,10 @@ export default {
                 })
                 if(res.Ret !== 200) return 
                 resolve(true)
-                if(type !== '')  {
+                type==='save' && this.$message.success(res.Msg);
+                if(type !== '' && this.$refs.version)  {
 					this.$refs.version.getSandBoxList() // 刷新版本列表
 				}
-                type==='save' && this.$message.success(res.Msg);
             })
 		},
 
@@ -1217,7 +1217,7 @@ export default {
                         if(!isAutoSave){
                             this.$message.success(this.$t('MsgPrompt.saved_msg'))
                         }
-                        if(IsManualSave)  {
+                        if(IsManualSave && this.$refs.version)  {
                             this.$refs.version.getSandBoxList() // 刷新版本列表
                         }
                     }

+ 3 - 3
src/views/report_manage/reportV2/smartReport/reportDetail.vue

@@ -167,10 +167,10 @@ export default {
             this.content=this.reportInfo.Content
             return 
         }
-        if(this.$route.query.isVersionRecord === 'false') {
-            this.getReportDetail()
-        } else {
+        if(this.$route.query.isVersionRecord === 'true') {
             this.getReportHistoryDetail()
+        } else {
+            this.getReportDetail()
         }
         this.getConfigSet()
     },