Browse Source

feat: 目标检测自动刷新

WANGKANG 7 months ago
parent
commit
6c957c7d00
2 changed files with 39 additions and 3 deletions
  1. 2 2
      src/api/modules/demo/TargetDetection.ts
  2. 37 1
      src/views/demo/TargetDetection/index.vue

+ 2 - 2
src/api/modules/demo/TargetDetection.ts

@@ -12,8 +12,8 @@ import { TargetDetectionVO, TargetDetectionForm, TargetDetectionQuery } from '@/
  * @param query 参数
  * @returns 返回列表
  */
-export const listTargetDetectionApi = (query: TargetDetectionQuery) => {
-  return http.get<TargetDetectionVO[]>('/demo/TargetDetection/list', query, { loading: true })
+export const listTargetDetectionApi = (query: TargetDetectionQuery, loading = true) => {
+  return http.get<TargetDetectionVO[]>('/demo/TargetDetection/list', query, { loading: loading })
 }
 
 /**

+ 37 - 1
src/views/demo/TargetDetection/index.vue

@@ -167,6 +167,42 @@ import ViewLog from '@/views/demo/components/ViewLog.vue'
 import { AlgorithmType2 } from '@/views/demo/utils'
 import { addAlgorithmModelTrackApi } from '@/api/modules/demo/AlgorithmModelTrack'
 
+import { Status } from '@/views/demo/utils'
+
+const timerRefreshTable = ref()
+const clearTimerRefreshTable = () => {
+  if (timerRefreshTable.value) {
+    clearInterval(timerRefreshTable.value)
+  }
+}
+const refreshTable = () => {
+  clearTimerRefreshTable()
+  timerRefreshTable.value = setInterval(async () => {
+    await proTable.value?.getTableList(false)
+    console.log('refresh table')
+    const tableData = proTable.value?.tableData
+    let flag = false
+    if (tableData) {
+      console.log(tableData)
+      for (const item of tableData) {
+        if (item.status === Status['运行中']) {
+          flag = true
+          break
+        }
+      }
+    }
+    if (!flag) {
+      clearTimerRefreshTable()
+    }
+  }, 5000)
+}
+
+onMounted(() => {
+  setTimeout(() => {
+    refreshTable()
+  }, 5000)
+})
+
 const enumsAlgorithmConfigTrack = ref<any>([])
 onMounted(async () => {
   const result = await enumAlgorithmConfigTrackApi()
@@ -287,7 +323,7 @@ const startTargetDetection = async (params: any) => {
   } else {
     ElMessage.error('任务开始失败,请检查!')
   }
-  proTable.value?.getTableList()
+  refreshTable()
 }
 
 const openModelDialog = async row => {