Browse Source

feat: 去抖动接口对接成功

WANGKANG 10 months ago
parent
commit
fc73169c50
2 changed files with 99 additions and 43 deletions
  1. 5 0
      src/api/modules/demo/videoStable.ts
  2. 94 43
      src/views/demo/videoStable/index.vue

+ 5 - 0
src/api/modules/demo/videoStable.ts

@@ -1,6 +1,7 @@
 import http from '@/api'
 // @ts-expect-error
 import { VideoStableVO, VideoStableForm, VideoStableQuery } from '@/api/interface/demo/videoStable'
+
 /**
  * @name 查询视频去抖动列表
  * @param query 参数
@@ -69,3 +70,7 @@ export const importVideoStableDataApi = (data: any) => {
 export const exportVideoStableApi = (data: any) => {
   return http.downloadPost('/demo/videoStable/export', data)
 }
+
+export const startVideoStableApi = (id: String | Number) => {
+  return http.get('/demo/videoStable/start/' + id)
+}

+ 94 - 43
src/views/demo/videoStable/index.vue

@@ -4,7 +4,7 @@
       <!-- 表格 header 按钮 -->
       <template #tableHeader="scope">
         <el-button type="primary" v-auth="['demo:videoStable:add']" icon="CirclePlus" @click="openDialog(1, '视频去抖动新增')"> 新增 </el-button>
-        <el-button type="primary" v-auth="['demo:videoStable:import']" icon="Upload" plain @click="batchAdd"> 导入 </el-button>
+        <el-button type="primary" v-auth="['demo:videoStable:import']" icon="Upload" plain @click="batchAdd"> 导入</el-button>
         <el-button type="primary" v-auth="['demo:videoStable:export']" icon="Download" plain @click="downloadFile"> 导出 </el-button>
         <el-button
           type="danger"
@@ -19,6 +19,8 @@
       </template>
       <!-- 表格操作 -->
       <template #operation="scope">
+        <el-button type="primary" link icon="View" @click="startVideoStable(scope.row)" v-if="scope.row.status !== '2'"> 开始去抖动 </el-button>
+        <el-button type="primary" link icon="View" @click="compareVideoStable(scope.row)" v-if="scope.row.status == '2'"> 图片对比 </el-button>
         <el-button type="primary" link icon="View" v-auth="['demo:videoStable:query']" @click="openDialog(3, '视频去抖动查看', scope.row)">
           查看
         </el-button>
@@ -37,7 +39,7 @@
 import { ref, reactive } from 'vue'
 import { useHandleData } from '@/hooks/useHandleData'
 import { useDownload } from '@/hooks/useDownload'
-import { ElMessageBox } from 'element-plus'
+import { ElMessageBox, ElMessage } from 'element-plus'
 import ProTable from '@/components/ProTable/index.vue'
 import ImportExcel from '@/components/ImportExcel/index.vue'
 import FormDialog from '@/components/FormDialog/index.vue'
@@ -50,9 +52,21 @@ import {
   importTemplateApi,
   importVideoStableDataApi,
   exportVideoStableApi,
-  getVideoStableApi
+  getVideoStableApi,
+  startVideoStableApi
 } from '@/api/modules/demo/videoStable'
 
+const startVideoStable = async (params: any) => {
+  const res = await startVideoStableApi(params.id)
+  if (res.code === 200) {
+    ElMessage.success('开始去抖动成功')
+    proTable.value?.getTableList()
+  } else {
+    ElMessage.error('开始去抖动失败')
+  }
+}
+const compareVideoStable = (params: any) => {}
+
 // ProTable 实例
 const proTable = ref<ProTableInstance>()
 
@@ -130,7 +144,7 @@ const columns = reactive<ColumnProps<any>[]>([
     width: 120
   },
   {
-    prop: 'inputPath',
+    prop: 'inPath',
     label: '输入图片集路径',
     search: {
       el: 'input'
@@ -194,7 +208,7 @@ let itemsOptions: ProForm.ItemsOptions[] = []
 const setItemsOptions = () => {
   itemsOptions = [
     {
-      label: '视频名称',
+      label: '任务名称',
       prop: 'name',
       rules: [{ required: true, message: '视频名称不能为空', trigger: 'blur' }],
       compOptions: {
@@ -202,77 +216,114 @@ const setItemsOptions = () => {
       }
     },
     {
-      label: '任务状态 0未开始 1进行中 2已结束',
-      prop: 'status',
-      rules: [{ required: true, message: '任务状态 0未开始 1进行中 2已结束不能为空', trigger: 'blur' }],
-      compOptions: {
-        placeholder: '请输入任务状态 0未开始 1进行中 2已结束'
-      }
-    },
-    {
-      label: '输入图片集路径',
-      prop: 'inputPath',
+      label: '输入路径',
+      prop: 'inPath',
       rules: [{ required: true, message: '输入图片集路径不能为空', trigger: 'blur' }],
       compOptions: {
-        type: 'textarea',
+        type: 'block_size',
         clearable: true,
         placeholder: '请输入内容'
       }
     },
     {
-      label: '去抖动的图片集路径',
+      label: '输出路径',
       prop: 'outPath',
       rules: [{ required: true, message: '去抖动的图片集路径不能为空', trigger: 'blur' }],
       compOptions: {
-        type: 'textarea',
+        type: 'block_size',
         clearable: true,
         placeholder: '请输入内容'
       }
     },
     {
-      label: '开始时间',
-      prop: 'startTime',
-      rules: [{ required: true, message: '开始时间不能为空', trigger: 'change' }],
+      label: '备注',
+      prop: 'remarks',
+      rules: [
+        {
+          required: false,
+          message: '备注不能为空',
+          trigger: 'blur'
+        }
+      ],
       compOptions: {
-        elTagName: 'date-picker',
-        type: 'date',
-        placeholder: '请选择开始时间'
+        placeholder: '请输入备注'
       }
     },
     {
-      label: '结束时间',
-      prop: 'endTime',
-      rules: [{ required: true, message: '结束时间不能为空', trigger: 'change' }],
+      label: 'block_size',
+      prop: 'block_size',
+      rules: [{ required: true, message: 'block_size不能为空', trigger: 'blur' }],
       compOptions: {
-        elTagName: 'date-picker',
-        type: 'date',
-        placeholder: '请选择结束时间'
+        type: 'input',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 50
       }
     },
     {
-      label: '耗时',
-      prop: 'costSecond',
-      rules: [{ required: true, message: '耗时不能为空', trigger: 'blur' }],
+      label: 'radius',
+      prop: 'radius',
+      rules: [{ required: true, message: 'radius不能为空', trigger: 'blur' }],
       compOptions: {
-        placeholder: '请输入耗时'
+        type: 'block_size',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 500
       }
     },
     {
-      label: '日志',
-      prop: 'log',
-      rules: [{ required: true, message: '日志不能为空', trigger: 'blur' }],
+      label: 'buffer_size',
+      prop: 'buffer_size',
+      rules: [{ required: true, message: 'buffer_size不能为空', trigger: 'blur' }],
       compOptions: {
-        type: 'textarea',
+        type: 'block_size',
         clearable: true,
-        placeholder: '请输入内容'
+        placeholder: '请输入内容',
+        value: 200
       }
     },
     {
-      label: '备注',
-      prop: 'remarks',
-      rules: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
+      label: 'cornerquality',
+      prop: 'cornerquality',
+      rules: [{ required: true, message: 'cornerquality不能为空', trigger: 'blur' }],
       compOptions: {
-        placeholder: '请输入备注'
+        type: 'block_size',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 0.2
+      }
+    },
+    {
+      label: 'cornerminDistance',
+      prop: 'cornerminDistance',
+      rules: [{ required: true, message: 'cornerminDistance不能为空', trigger: 'blur' }],
+      compOptions: {
+        type: 'block_size',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 5
+      }
+    },
+    {
+      label: 'lklevel',
+      prop: 'lklevel',
+      rules: [{ required: true, message: 'lklevel不能为空', trigger: 'blur' }],
+      compOptions: {
+        type: 'block_size',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 3
+      }
+    },
+    {
+      label: 'lkwinSiz',
+      prop: 'lkwinSiz',
+      rules: [{ required: true, message: 'lkwinSiz不能为空', trigger: 'blur' }],
+      compOptions: {
+        type: 'block_size',
+        clearable: true,
+        placeholder: '请输入内容',
+        value: 15
       }
     }
   ]