Bläddra i källkod

Merge remote-tracking branch 'origin/master'

lihao16 1 år sedan
förälder
incheckning
1c86186858

BIN
inspur-ui/src/assets/icons/btn_startplay.png


BIN
inspur-ui/src/assets/icons/btn_stopplay.png


+ 105 - 46
inspur-ui/src/views/party_work/meeting/info.vue

@@ -31,7 +31,7 @@
       style="width: 85%; display: flex;align-items: center;justify-content: space-between; margin-top: 15px;">
       <div class="display-row" style="display: flex;align-items: center;">
         <div class="text-fontsize-14">请选择会议设备</div>
-        <el-select v-model="deviceId" placeholder="请选择会议设备" style="margin-left: 8px;" :popper-append-to-body="false">
+        <el-select v-model="deviceId" placeholder="请选择会议设备" style="margin-left: 8px;" :popper-append-to-body="false" class="elselect">
           <el-option v-for="device in deviceList" :label="device.deviceName" :value="device.id" />
         </el-select>
       </div>
@@ -55,8 +55,8 @@
       </div>
     </div>
 
-    <div class="display-row" style="margin-top: 16px;height: 85%">
-      <div style="width: 85%;height: 100%;" class="screen_nocontent display-center">
+    <div class="display-row" style="margin-top: 16px;height: 83vh">
+      <div style="width: 85%;height: 83vh;" class="screen_nocontent display-center">
         <div v-if="fileType == 1 && null == pageSrc" class="display-cloumn display-center">
           <el-image :src="iconScreen" class="icon-40"></el-image>
           <div class="text-fontsize-18" style="margin-top: 8px;">此处展示投屏画面</div>
@@ -65,9 +65,16 @@
           <el-image :src="iconScreen" class="icon-40"></el-image>
           <div class="text-fontsize-18" style="margin-top: 8px;">此处展示投屏画面</div>
         </div>
-        <div v-else style="height: 100%;width: 100%;" class="display-center">
-          <iframe v-if="fileType == 2" :src="material" style="width: 100%; height: 100%;"></iframe>
-          <el-image v-else :src="pageSrc.fileUrl" style="height: 97%;" />
+        <div v-else style="height: 83vh;width: 100%;overflow: hidden;" class="display-center">
+          <iframe v-if="fileType == 2" :src="material" ref="iframe" style="width: 100%; height: 83vh;"></iframe>
+          <el-image v-else :src="pageSrc.fileUrl" @load="handleImageLoad"
+            :style="{ height: imageHeight +'%',transform: 'translateY(' + imageOffset + 'px)'}" />
+          <!-- <div v-else class="image-container" @mousedown="startMove" @mousemove="doMove" @mouseup="endMove"
+            style="height: 97%;" :style="{ transform: `scale(${scale}) translate(${position.x}px, ${position.y}px)` }">
+            <el-image :src="pageSrc.fileUrl" />
+          </div> -->
+
+
         </div>
       </div>
       <div style="width: 15%;height: 100%;" class="display-cloumn">
@@ -77,11 +84,12 @@
             style="display: flex;justify-content: space-between;align-items: center;margin: 0 16px;">
             <div class="display-row" style="display: flex;align-items: center;">
               <div class="text-fontsize-18">会议资料</div>
-              <!-- <el-image :src="iconFresh" fit="contaion" class="icon" style="margin-left: 8px;"></el-image> -->
+              <el-image :src="iconFresh" fit="contaion" class="icon" @click="getMeetingInfo()"
+                style="margin-left: 8px;"></el-image>
             </div>
             <div class="display-row">
-              <el-button class="playBtn" @click="beginPlay()">开始播放</el-button>
-              <el-button class="playBtn" @click="endPlay()">结束播放</el-button>
+              <el-image :src="iconStartPlay" class="icon-40" @click="beginPlay()">开始播放</el-image>
+              <el-image :src="iconStopPlay" class="icon-40" style="margin-left:10px" @click="endPlay()">结束播放</el-image>
             </div>
 
           </div>
@@ -178,12 +186,13 @@
                 <div class="text-fontsize-14 single-line" style="padding:10px 0 ;">{{item.fileName}}</div>
               </div>
             </div>
+
             <div v-if="timerRunning == false" class="display-cloumn display-center" style="width: 30%;">
-              <el-image :src="iconStartRecord" class="icon-40" />
+              <el-image :src="iconStartRecord" class="icon-40" @click="startTimer" />
               <div class="text-fontsize-16" style="margin-top:12px ;">录音</div>
             </div>
             <div v-else class="display-cloumn display-center" style="width: 30%;">
-              <el-image :src="iconStopRecord" class="icon-40" />
+              <el-image :src="iconStopRecord" class="icon-40" @click="pauseTimer" />
               <div class="text-fontsize-16" style="margin-top:12px ;">{{formatTime}}</div>
             </div>
           </div>
@@ -196,9 +205,9 @@
       <span>
         <div class="display-cloumn">
           <!-- <div class="line-grey" /> -->
-          <div style="display: flex;flex-wrap: wrap;overflow: auto;margin-left:5px;" >
+          <div style="display: flex;flex-wrap: wrap;overflow: auto;margin-left:5px;">
             <div v-for="(item, index) in photoList" :key="index" class="imageDiv">
-              <div class="display-cloumn"  :style="{ backgroundColor: item.isSelected ? '#FFF3F3' : 'white' }">
+              <div class="display-cloumn" :style="{ backgroundColor: item.isSelected ? '#FFF3F3' : 'white' }">
                 <div style="margin-left: 10px;">
                   <input type="checkbox" align="left" :value="index" v-model="selectedItems">
                 </div>
@@ -325,7 +334,7 @@
 
                 <div class="display-cloumn display-center" style="margin-left:32px">
                   <el-image :src="iconYjsc" class="icon-40" @click="summaryGenerate" />
-                  <div class="text-fontsize-14" style="color: #545454;margin-top: 5px;">一键生成</div>
+                  <div class="text-fontsize-14" style="color: #545454;margin-top: 5px;">生成会议纪要</div>
                 </div>
               </div>
 
@@ -577,6 +586,8 @@
   import iconStopRecordRedImg from '@/assets/icons/icon_stoprecord_red.png'
   import imgEmptyImg from '@/assets/images/img_empty.png'
   import dialogimgEmptyImg from '@/assets/images/dialog_img_empty.png'
+  import iconStartPlayImg from '@/assets/icons/btn_startplay.png'
+  import iconStopPlayImg from '@/assets/icons/btn_stopplay.png'
 
   export default {
     dicts: ['sys_asr_status', 'sys_attendance_type'],
@@ -601,6 +612,8 @@
         iconStopRecordRed: iconStopRecordRedImg,
         imgEmpty: imgEmptyImg,
         dialogimgEmpty: dialogimgEmptyImg,
+        iconStartPlay: iconStartPlayImg,
+        iconStopPlay: iconStopPlayImg,
         meetingId: null,
         form: {},
         fileList: [],
@@ -612,7 +625,7 @@
         single: true,
         // 非多个禁用
         multiple: true,
-        totalPage: null,
+        totalPage: 0,
         currentPage: 1,
         pageSrc: null,
         // 学习资料网站
@@ -639,14 +652,26 @@
         faceSignUrl: null,
         faceSignList: [],
         scaleList: [{
+          value: '25',
+          label: '25%'
+        }, {
           value: '50',
           label: '50%'
+        }, {
+          value: '75',
+          label: '75%'
         }, {
           value: '100',
           label: '100%'
+        }, {
+          value: '125',
+          label: '125%'
         }, {
           value: '150',
           label: '150%'
+        }, {
+          value: '175',
+          label: '175%'
         }, {
           value: '200',
           label: '200%'
@@ -695,17 +720,21 @@
         faceSign: {},
         dialogMeetVisible: false,
         isMeetPlay: false,
+        imageHeight: 100,
+        imageOffset: 0,
+        imageHeightPx: 0,
+        imageHeightPxChange: 0,
       }
     },
     watch: {
       selectedItems(newValue, oldValue) {
         // 当message变化时,会执行这里的代码
         console.log(`message changed from ${oldValue} to ${newValue}`);
-        for(let j = 0;j<this.photoList.length;j++){
-          this.photoList[j].isSelected  = false;
+        for (let j = 0; j < this.photoList.length; j++) {
+          this.photoList[j].isSelected = false;
         }
-        for(let i =0;i<newValue.length;i++){
-          this.photoList[newValue[i]].isSelected  = true;
+        for (let i = 0; i < newValue.length; i++) {
+          this.photoList[newValue[i]].isSelected = true;
         }
 
       }
@@ -1015,6 +1044,7 @@
         // if (!this.validDeviceId()) {
         //   return;
         // }
+        this.currentPage = 0;
         this.material = url;
         let param = {
           material: url,
@@ -1130,7 +1160,7 @@
           this.scaleId = null;
           return;
         }
-        if (this.totalPage == null) {
+        if (this.totalPage == 0) {
           this.$message({
             message: '请先选择文件开始文件播放',
             type: 'warning'
@@ -1146,6 +1176,10 @@
         }
         imageScale(param).then(response => {
           console.log('缩放:', response);
+
+          this.imageHeight = 100 * (this.scaleId / 100);
+          this.this.imageHeightPxChange = this.imageHeightPx * (this.scaleId / 100);
+
           this.$message({
             message: "缩放成功",
             type: 'success'
@@ -1159,14 +1193,16 @@
         if (!this.validDeviceId()) {
           return;
         }
-
-        if (this.totalPage == null) {
-          this.$message({
-            message: '请先选择文件开始文件播放',
-            type: 'warning'
-          });
-          return;
+        if (this.fileType == 1) {
+          if (this.totalPage == 0) {
+            this.$message({
+              message: '请先选择文件开始文件播放',
+              type: 'warning'
+            });
+            return;
+          }
         }
+
         if (this.moveId == null) {
           this.$message({
             message: '请先选择移动距离',
@@ -1179,10 +1215,12 @@
           meetingId: this.meetingId,
           distance: this.moveId,
           deviceId: this.deviceId,
-          imageIndex: this.currentPage
+          imageIndex: this.currentPage,
+          fileType:this.fileType
         }
         imageMove(param).then(response => {
           console.log('上移:', response);
+          this.imageOffset = this.imageOffset - ((this.moveId / 100) * this.imageHeightPxChange);
           this.$message({
             message: '上移成功',
             type: 'success'
@@ -1194,14 +1232,16 @@
         if (!this.validDeviceId()) {
           return;
         }
-
-        if (this.totalPage == null) {
-          this.$message({
-            message: '请先选择文件开始文件播放',
-            type: 'warning'
-          });
-          return;
+        if (this.fileType == 1) {
+          if (this.totalPage == 0) {
+            this.$message({
+              message: '请先选择文件开始文件播放',
+              type: 'warning'
+            });
+            return;
+          }
         }
+
         if (this.moveId == null) {
           this.$message({
             message: '请先选择移动距离',
@@ -1214,10 +1254,12 @@
           meetingId: this.meetingId,
           distance: this.moveId,
           deviceId: this.deviceId,
-          imageIndex: this.currentPage
+          imageIndex: this.currentPage,
+          fileType:this.fileType
         }
         imageMove(param).then(response => {
           console.log('下移:', response);
+          this.imageOffset = this.imageOffset + (this.moveId / 100) * this.imageHeightPxChange;
           this.$message({
             message: '下移成功',
             type: 'success'
@@ -1263,7 +1305,7 @@
         if (!this.validDeviceId()) {
           return;
         }
-        if (this.totalPage == null) {
+        if (this.totalPage == 0) {
           this.$message({
             message: '请先选择文件开始文件播放',
             type: 'warning'
@@ -1287,11 +1329,11 @@
           return;
         }
         this.endFilePlay();
-        this.currentPage = null;
+        this.currentPage = 0;
         this.pageSrc = null;
         this.imageList = [];
         // this.fileList = [];
-        this.totalPage = null;
+        this.totalPage = 0;
         this.currentPage = 1;
       },
       rsWord() {
@@ -1364,7 +1406,7 @@
         }
         this.isMeetPlay = true;
       },
-      endPlay(){
+      endPlay() {
         if (this.fileList[this.selectedFileIndex].fileType == 1) {
           this.fileType = 1;
           this.endShowFile();
@@ -1373,12 +1415,17 @@
           this.endShowUrl(this.fileList[this.selectedFileIndex].fileUrl);
         }
         this.isMeetPlay = false;
+        this.imageOffset = 0;
+        this.imageHeight = 100;
+        this.imageHeightPxChange = this.imageHeightPx;
+        this.scaleId = null;
+        this.moveId = null;
 
       },
       deleteDialogPhoto() {
         console.log('selectedItems:', this.selectedItems);
 
-        if(this.selectedItems != null && this.selectedItems.length > 0) {
+        if (this.selectedItems != null && this.selectedItems.length > 0) {
           this.deletePhoto(this.selectedItems);
         } else {
           this.$message({
@@ -1387,6 +1434,14 @@
           });
         }
       },
+
+      handleImageLoad(event) {
+        this.imageHeightPx = event.target.offsetHeight;
+        this.imageHeightPxChange = this.imageHeightPx;
+        console.log('Image height:', this.imageHeightPx);
+      }
+
+
     }
   }
 </script>
@@ -1395,8 +1450,8 @@
     /* margin-left: 40px;
     margin-right: 30px;
     margin-bottom: 10px; */
-    margin-left:5px;
-    margin-rignt:5px;
+    margin-left: 5px;
+    margin-rignt: 5px;
     display: flex;
     align-items: center;
     margin-bottom: 10px;
@@ -1613,8 +1668,8 @@
   } */
 
   .no-border th,
-  .no-border td{
-     border-bottom: none !important;
+  .no-border td {
+    border-bottom: none !important;
   }
 
   .custom-text-color {
@@ -1639,7 +1694,7 @@
   .playBtn {
     background: #FFE59E;
     color: #CA0001;
-    padding:10px;
+    padding: 5px;
   }
 
   .more {
@@ -1657,4 +1712,8 @@
     color: #FFE59E !important;
     border-color: transparent !important;
   }
+
+  .el-select .el-input__inner::placeholder{
+    color: #FFFFFF;
+  }
 </style>