From 83d4c07a67e7588e3938237cfad9eaa6be5ea6c5 Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Mon, 12 Dec 2022 19:00:47 +0800
Subject: [PATCH] initial v1.3.1

---
 src/components/task/use-format-task.ts |   40 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 39 insertions(+), 1 deletions(-)

diff --git a/src/components/task/use-format-task.ts b/src/components/task/use-format-task.ts
index 167a581..486b85c 100644
--- a/src/components/task/use-format-task.ts
+++ b/src/components/task/use-format-task.ts
@@ -1,6 +1,7 @@
 import { DEFAULT_PLACEHOLDER } from '/@/utils/constants'
 import { Task } from '/@/api/wayline'
-import { TaskStatusColor, TaskStatusMap, TaskTypeMap, OutOfControlActionMap } from '/@/types/task'
+import { TaskStatusColor, TaskStatusMap, TaskTypeMap, OutOfControlActionMap, MediaStatusMap, MediaStatusColorMap, MediaStatus } from '/@/types/task'
+import { isNil } from 'lodash'
 
 export function useFormatTask () {
   function formatTaskType (task: Task) {
@@ -26,10 +27,47 @@
     return statusObj
   }
 
+  function formatMediaTaskStatus (task: Task) {
+    const statusObj = {
+      text: '',
+      color: '',
+      number: '',
+      status: MediaStatus.Empty,
+    }
+    const { media_count, uploaded_count, uploading } = task
+    if (isNil(media_count) || isNaN(media_count)) {
+      return statusObj
+    }
+    const expectedFileCount = media_count || 0
+    const uploadedFileCount = uploaded_count || 0
+    if (media_count === 0) {
+      statusObj.text = MediaStatusMap[MediaStatus.Empty]
+      statusObj.color = MediaStatusColorMap[MediaStatus.Empty]
+    } else if (media_count === uploaded_count) {
+      statusObj.text = MediaStatusMap[MediaStatus.Success]
+      statusObj.color = MediaStatusColorMap[MediaStatus.Success]
+      statusObj.number = `(${uploadedFileCount}/${expectedFileCount})`
+      statusObj.status = MediaStatus.Success
+    } else {
+      if (uploading) {
+        statusObj.text = MediaStatusMap[MediaStatus.Uploading]
+        statusObj.color = MediaStatusColorMap[MediaStatus.Uploading]
+        statusObj.status = MediaStatus.Uploading
+      } else {
+        statusObj.text = MediaStatusMap[MediaStatus.ToUpload]
+        statusObj.color = MediaStatusColorMap[MediaStatus.ToUpload]
+        statusObj.status = MediaStatus.ToUpload
+      }
+      statusObj.number = `(${uploadedFileCount}/${expectedFileCount})`
+    }
+    return statusObj
+  }
+
   return {
     formatTaskType,
     formatTaskTime,
     formatLostAction,
     formatTaskStatus,
+    formatMediaTaskStatus,
   }
 }

--
Gitblit v1.9.3