From 4259deb19122a4807d50c99ed4a95405ebe4a47c Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 10 四月 2026 08:40:18 +0800
Subject: [PATCH] #

---
 rsf-design/src/views/manager/task/index.vue |  151 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 126 insertions(+), 25 deletions(-)

diff --git a/rsf-design/src/views/manager/task/index.vue b/rsf-design/src/views/manager/task/index.vue
index 261a216..b78d431 100644
--- a/rsf-design/src/views/manager/task/index.vue
+++ b/rsf-design/src/views/manager/task/index.vue
@@ -44,10 +44,7 @@
       />
     </ElCard>
 
-    <TaskFlowStepDialog
-      v-model:visible="flowStepDialogVisible"
-      :task-row="activeTaskRow"
-    />
+    <TaskFlowStepDialog v-model:visible="flowStepDialogVisible" :task-row="activeTaskRow" />
 
     <TaskDetailDrawer
       v-model:visible="detailDrawerVisible"
@@ -76,6 +73,7 @@
     fetchPickTask,
     fetchRemoveTask,
     fetchTaskAutoRunFlag,
+    fetchTaskDetail,
     fetchTaskItemPage,
     fetchTaskPage,
     fetchTopTask,
@@ -174,6 +172,12 @@
       showOverflowTooltip: true
     },
     {
+      prop: 'platOrderCode',
+      label: t('pages.task.expand.platOrderCode'),
+      minWidth: 150,
+      showOverflowTooltip: true
+    },
+    {
       prop: 'platWorkCode',
       label: t('pages.orders.transfer.detail.relatedCode'),
       minWidth: 150,
@@ -183,6 +187,12 @@
       prop: 'platItemId',
       label: t('pages.orders.delivery.table.platItemId'),
       minWidth: 100,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'projectCode',
+      label: t('pages.task.expand.projectCode'),
+      minWidth: 140,
       showOverflowTooltip: true
     },
     {
@@ -215,9 +225,57 @@
       align: 'right'
     },
     {
+      prop: 'workQty',
+      label: t('pages.task.expand.workQty'),
+      width: 100,
+      align: 'right'
+    },
+    {
+      prop: 'qty',
+      label: t('pages.task.expand.qty'),
+      width: 100,
+      align: 'right'
+    },
+    {
+      prop: 'spec',
+      label: t('pages.task.expand.spec'),
+      minWidth: 140,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'model',
+      label: t('pages.task.expand.model'),
+      minWidth: 140,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'createByText',
+      label: t('table.createBy'),
+      minWidth: 120,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'createTimeText',
+      label: t('table.createTime'),
+      minWidth: 180,
+      showOverflowTooltip: true
+    },
+    {
       prop: 'updateByText',
       label: t('pages.orders.delivery.detail.updateBy'),
       minWidth: 120,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'statusText',
+      label: t('table.status'),
+      minWidth: 120,
+      showOverflowTooltip: true
+    },
+    {
+      prop: 'memo',
+      label: t('table.remark'),
+      minWidth: 180,
       showOverflowTooltip: true
     },
     {
@@ -257,11 +315,15 @@
       }
 
       if (action.key === 'complete') {
-        await confirmTaskAction(t('pages.task.messages.completeConfirm', { code: row.taskCode || '' }))
+        await confirmTaskAction(
+          t('pages.task.messages.completeConfirm', { code: row.taskCode || '' })
+        )
         await fetchCompleteTask(row.id)
         ElMessage.success(t('pages.task.messages.completeSuccess'))
       } else if (action.key === 'remove') {
-        await confirmTaskAction(t('pages.task.messages.removeConfirm', { code: row.taskCode || '' }))
+        await confirmTaskAction(
+          t('pages.task.messages.removeConfirm', { code: row.taskCode || '' })
+        )
         await fetchRemoveTask(row.id)
         ElMessage.success(t('pages.task.messages.removeSuccess'))
       } else if (action.key === 'check') {
@@ -338,9 +400,13 @@
   async function loadAutoRunConfig() {
     autoRunLoading.value = true
     try {
-      const response = await guardRequestWithMessage(fetchTaskAutoRunFlag(), { val: false }, {
-        timeoutMessage: t('pages.task.messages.autoRunTimeout')
-      })
+      const response = await guardRequestWithMessage(
+        fetchTaskAutoRunFlag(),
+        { val: false },
+        {
+          timeoutMessage: t('pages.task.messages.autoRunTimeout')
+        }
+      )
       const rawValue = response?.val
       autoRunEnabled.value =
         rawValue === true || rawValue === 'true' || rawValue === 1 || rawValue === '1'
@@ -354,7 +420,11 @@
     try {
       await fetchUpdateTaskAutoRunFlag(enabled)
       autoRunEnabled.value = enabled
-      ElMessage.success(enabled ? t('pages.task.messages.autoRunOnSuccess') : t('pages.task.messages.autoRunOffSuccess'))
+      ElMessage.success(
+        enabled
+          ? t('pages.task.messages.autoRunOnSuccess')
+          : t('pages.task.messages.autoRunOffSuccess')
+      )
     } catch (error) {
       ElMessage.error(error?.message || t('pages.task.messages.autoRunUpdateFailed'))
     } finally {
@@ -369,28 +439,59 @@
 
     detailLoading.value = true
     try {
-      const taskItemResponse = await guardRequestWithMessage(
-        fetchTaskItemPage({
-          taskId: activeTaskRow.value.id,
-          current: detailPagination.current,
-          pageSize: detailPagination.size
+      const [taskDetailResult, taskItemResult] = await Promise.allSettled([
+        guardRequestWithMessage(fetchTaskDetail(activeTaskRow.value.id), activeTaskRow.value, {
+          timeoutMessage: t('pages.task.messages.detailTimeout')
         }),
-        {
-          records: [],
-          total: 0,
-          current: detailPagination.current,
-          size: detailPagination.size
-        },
-        { timeoutMessage: t('pages.task.messages.itemsTimeout') }
-      )
+        guardRequestWithMessage(
+          fetchTaskItemPage({
+            taskId: activeTaskRow.value.id,
+            current: detailPagination.current,
+            pageSize: detailPagination.size
+          }),
+          {
+            records: [],
+            total: 0,
+            current: detailPagination.current,
+            size: detailPagination.size
+          },
+          { timeoutMessage: t('pages.task.messages.itemsTimeout') }
+        )
+      ])
 
+      const taskDetailResponse =
+        taskDetailResult.status === 'fulfilled' ? taskDetailResult.value : activeTaskRow.value
+      const taskItemResponse =
+        taskItemResult.status === 'fulfilled'
+          ? taskItemResult.value
+          : {
+              records: [],
+              total: 0,
+              current: detailPagination.current,
+              size: detailPagination.size
+            }
+
+      activeTaskRow.value = {
+        ...activeTaskRow.value,
+        ...taskDetailResponse
+      }
       detailData.value = normalizeTaskRow(activeTaskRow.value)
-      detailTableData.value = Array.isArray(taskItemResponse?.records)
+      detailTableData.value = Array.isArray(taskItemResponse.records)
         ? taskItemResponse.records.map((record) => normalizeTaskItemRow(record))
         : []
-      updatePaginationState(detailPagination, taskItemResponse, detailPagination.current, detailPagination.size)
+      updatePaginationState(
+        detailPagination,
+        taskItemResponse,
+        detailPagination.current,
+        detailPagination.size
+      )
+
+      if (taskDetailResult.status === 'rejected' && taskItemResult.status === 'rejected') {
+        throw taskDetailResult.reason || taskItemResult.reason
+      }
     } catch (error) {
       detailTableData.value = []
+      detailData.value = normalizeTaskRow(activeTaskRow.value)
       ElMessage.error(error?.message || t('pages.task.messages.detailLoadFailed'))
     } finally {
       detailLoading.value = false

--
Gitblit v1.9.1