Просмотр исходного кода

Merge branch 'master' of http://git.tjyourong.com.cn/ctop/adsp-vue

朱鑫波 3 лет назад
Родитель
Сommit
8b59089c26

+ 7 - 1
src/views/modules/Statistics/change-face/change-face.vue

@@ -59,7 +59,10 @@
                 :pagination="false"
             >
                 <span slot="input_video_url" slot-scope="text, record">
-                    <video :src="record.input_video_url" style="width:100px" controls></video>
+                    <div style="width:100px;height:177px;margin-left:25px;">
+                        <video v-if="record.input_video_url" :src="record.input_video_url" style="width:100px" controls></video>
+                        <img v-else style="width:100px" src="@/assets/noImg.png">
+                    </div>
                 </span>
                 <span slot="input_image_url" slot-scope="text, record">
                     <img v-if="text" :src="text" style="width:60px">
@@ -173,6 +176,7 @@ export default {
         ...mapGetters(['userInfo']),
         // 分页操作按钮
         onShowSizeChange(current, pageSize) {
+            this.dataSource = [];
             this.defaultCurrent = current;
             const defaultData = [...this.dataAllList];
             this.dataSource = [...defaultData.slice(2 * current - 2, 2 * current)];
@@ -187,6 +191,7 @@ export default {
             const paramsData = {
                 videoMd5: this.faceShowList.projectId ? this.faceShowList.code : this.faceShowList.videoCode
             };
+            this.dataSource = [];
             // http://192.168.1.204:8000
             // http://faceswap.tjyourong.com.cn
             postAction('http://faceswap.tjyourong.com.cn/jeecg-boot/task/query', paramsData).then(result => {
@@ -341,6 +346,7 @@ export default {
             this.imageUrl = '';
             this.urlResult = '';
             this.md5Result = '';
+            this.defaultCurrent = 1;
             this.$emit('closeface');
         },
         getBase64(img, callback) {

+ 82 - 11
src/views/modules/material/videoMaterial.vue

@@ -1765,22 +1765,29 @@ a {
         size="middle"
         bordered
         :columns="settlementColumns"
-        :dataSource="dataSource"
+        :dataSource="dataSourceFace"
         :pagination="false"
+        :loading="controlLoading"
       >
           <span slot="input_video_url" slot-scope="text, record">
-              <video :src="record.input_video_url" style="width:100px" controls></video>
+            <div style="width:100px;height:177px;margin-left:25px;">
+              <video v-if="record.input_video_url" :src="record.input_video_url" style="width:100px" controls></video>
+              <img v-else style="width:100px" src="@/assets/noImg.png">
+            </div>
           </span>
           <span slot="output_video_url" slot-scope="text, record">
-              <video :src="record.output_video_url" style="width:100px" controls></video>
+            <div style="width:100px;height:177px;margin-left:25px;">
+              <video v-if="record.output_video_url" :src="record.output_video_url" style="width:100px" controls></video>
+              <img v-else style="width:100px" src="@/assets/noImg.png">
+            </div>
           </span>
           <span slot="input_image_url" slot-scope="text, record">
               <img v-if="text" :src="text" style="width:100px">
-              <img v-if="!text" src="@/assets/noImg.png" style="width:60px">
+              <img v-else src="@/assets/noImg.png" style="width:100px">
           </span>
           <span slot="actions" slot-scope="text, record">
-              <a :disabled="record.status !== 'finished'" @click="handlePushData(record)">推送</a>
-              <a-divider type="vertical"/>
+              <!-- <a :disabled="record.status !== 'finished'" @click="handlePushData(record)">推送</a>
+              <a-divider type="vertical"/> -->
               <a @click="handleDownLoadData(record)" :disabled="record.status !== 'finished'">下载</a>
           </span>
       </a-table>
@@ -1834,6 +1841,7 @@ export default {
 
   data() {
     return {
+      controlLoading: false,
       defaultCurrent: 1,
       settlementColumns: [
           {
@@ -2056,7 +2064,7 @@ export default {
       videoVisibleChange: '',
       allDetailData: null,
       dataAllList: [],
-      dataSource: [],
+      dataSourceFace: [],
       totalAll: 0
     }
   },
@@ -2175,37 +2183,100 @@ export default {
     },
   },
   methods: {
+    // TODO 推送操作
+    handlePushData(list) {
+      const paramsData = {
+          projectId: this.faceShowList.projectId, // 项目选择
+          ascription: {
+              planId: 'e9ca23d68d884d4ebb19d07889727dae',
+              shotId: 'e9ca23d68d884d4ebb19d07889727dae',
+              clipId: 'e9ca23d68d884d4ebb19d07889727dae'
+          },
+          status: '1',
+          code: list.output_video_md5,
+          url: list.output_video_url && list.output_video_url.split(':')[1],
+          type: 'VIDEO',
+          userId: this.userInfo().id,
+          modalityTagList: this.departValueInfoModality, // 形式标签
+          senceTagList: this.departValueInfoSence, // 场景标签
+          modTagList: this.departValueInfoMod // 基调标签
+      };
+      const that = this;
+      this.$confirm({
+            title: '提示',
+            content: '是否进行推送操作',
+            onOk() {
+                fileInsertV2(paramsData).then(res => {
+                    if (res.code === 0) {
+                        that.handlePolicyOperationCancel();
+                        that.$emit('sureface');
+                        that.$message.success('素材已经同步到未审核列表,请进入查看');
+                    }
+                    else {
+                        that.$message.error(res.message);
+                    }
+                });
+            }
+        });
+    },
+    // 下载操作
+    handleDownLoadData(list) {
+        const randomTime = new Date().getTime() + '_check.mp4';
+        fetch(list.output_video_url)
+            .then(res => res.blob())
+            .then(blob => {
+                const a = document.createElement('a');
+                document.body.appendChild(a);
+                a.style.display = 'none';
+                // 使用获取到的blob对象创建的url
+                const url = window.URL.createObjectURL(blob);
+                a.href = url;
+                // 指定下载的文件名
+                a.download = randomTime;
+                a.click()
+                document.body.removeChild(a);
+                // 移除blob对象的url
+                window.URL.revokeObjectURL(url);
+            });
+    },
     onShowSizeChange(current, pageSize) {
+        this.dataSourceFace = [];
         this.defaultCurrent = current;
         const defaultData = [...this.dataAllList];
-        this.dataSource = [...defaultData.slice(2 * current - 2, 2 * current)];
+        this.dataSourceFace = [...defaultData.slice(2 * current - 2, 2 * current)];
     },
     handlePolicyOperationSure() {
+      this.defaultCurrent = 1;
       this.faceShowStatus = false;
     },
     handlePolicyOperationCancel() {
+      this.defaultCurrent = 1;
       this.faceShowStatus = false;
     },
     handleAllChangeFace() {
       this.faceShowStatus = true;
+      this.controlLoading = true;
+      this.dataSourceFace = [];
       postAction('http://faceswap.tjyourong.com.cn/jeecg-boot/task/query', {}).then(result => {
             if (result.code === 0) {
               const defaultData = result.data;
               defaultData.forEach(item => {
-                item.create_time = item.create_time.replace('T', ' ');
+                item.create_time = item.create_time ? item.create_time.replace('T', ' ') : '-';
               });
               this.dataAllList = defaultData;
-              this.dataSource = defaultData.slice(0, 2);
+              this.dataSourceFace = defaultData.slice(0, 2);
               this.totalAll = defaultData.length ? defaultData.length : 0;
             }
             else {
                 this.dataAllList = [];
-                this.dataSource = [];
+                this.dataSourceFace = [];
                 this.totalAll = 0;
                 this.$message.error(result.message);
             }
         }).catch(error => {
             console.log(error, 'eeee');
+        }).finally(() => {
+          this.controlLoading = false;
         });
     },
     handleChangeFace(data) {