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/modules/task-detail-drawer.vue |  199 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 139 insertions(+), 60 deletions(-)

diff --git a/rsf-design/src/views/manager/task/modules/task-detail-drawer.vue b/rsf-design/src/views/manager/task/modules/task-detail-drawer.vue
index 293108f..d67ff02 100644
--- a/rsf-design/src/views/manager/task/modules/task-detail-drawer.vue
+++ b/rsf-design/src/views/manager/task/modules/task-detail-drawer.vue
@@ -5,70 +5,127 @@
     size="85%"
     @update:model-value="handleVisibleChange"
   >
-    <div class="flex h-full flex-col gap-4">
-      <div class="grid gap-4 xl:grid-cols-[1.45fr_1fr]">
-        <ElCard shadow="never" class="border border-[var(--el-border-color-lighter)]">
-          <template #header>
-            <div class="flex items-center justify-between">
-              <span class="font-medium text-[var(--art-text-gray-900)]">{{ t('pages.task.detail.baseInfo') }}</span>
-              <ElTag size="small" effect="plain" type="primary">
-                {{ detail.taskCode || '--' }}
-              </ElTag>
+    <ElScrollbar class="h-full">
+      <div class="flex min-h-full min-w-0 flex-col gap-4 pr-2">
+        <div class="grid shrink-0 gap-4 xl:grid-cols-[1.45fr_1fr]">
+          <ElCard
+            shadow="never"
+            class="task-detail-card border border-[var(--el-border-color-lighter)]"
+          >
+            <template #header>
+              <div class="flex items-center justify-between">
+                <span class="font-medium text-[var(--art-text-gray-900)]">{{
+                  t('pages.task.detail.baseInfo')
+                }}</span>
+                <ElTag size="small" effect="plain" type="primary">
+                  {{ detail.taskCode || '--' }}
+                </ElTag>
+              </div>
+            </template>
+
+            <ElDescriptions :column="2" border size="small" class="compact-descriptions">
+              <ElDescriptionsItem :label="t('pages.task.detail.taskId')">{{
+                detail.taskId ?? '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.taskStatus')">{{
+                detail.taskStatusLabel || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.taskType')">{{
+                detail.taskTypeLabel || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.warehType')">{{
+                detail.warehTypeLabel || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.priority')">{{
+                detail.sort ?? '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.status')">{{
+                detail.statusText || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.robotCode')">{{
+                detail.robotCode || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.createBy')">{{
+                detail.createByText || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.createTime')">{{
+                detail.createTimeText || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.updateBy')">{{
+                detail.updateByText || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.updateTime')">{{
+                detail.updateTimeText || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.memo')" :span="2">{{
+                detail.memo || '--'
+              }}</ElDescriptionsItem>
+            </ElDescriptions>
+          </ElCard>
+
+          <ElCard
+            shadow="never"
+            class="task-detail-card border border-[var(--el-border-color-lighter)]"
+          >
+            <template #header>
+              <div class="flex items-center justify-between">
+                <span class="font-medium text-[var(--art-text-gray-900)]">{{
+                  t('pages.task.detail.pathInfo')
+                }}</span>
+                <ElButton text type="primary" @click="$emit('flow-step')">{{
+                  t('pages.task.detail.flowStep')
+                }}</ElButton>
+              </div>
+            </template>
+
+            <ElDescriptions :column="1" border size="small" class="compact-descriptions">
+              <ElDescriptionsItem :label="t('pages.task.detail.orgLoc')">{{
+                detail.orgLoc || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.orgSite')">{{
+                detail.orgSiteLabel || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.targLoc')">{{
+                detail.targLoc || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.targSite')">{{
+                detail.targSiteLabel || '--'
+              }}</ElDescriptionsItem>
+              <ElDescriptionsItem :label="t('pages.task.detail.barcode')">{{
+                detail.barcode || '--'
+              }}</ElDescriptionsItem>
+            </ElDescriptions>
+          </ElCard>
+        </div>
+
+        <div class="shrink-0 flex items-center justify-between">
+          <div>
+            <div class="text-sm font-medium text-[var(--art-text-gray-900)]">{{
+              t('pages.task.detail.items')
+            }}</div>
+            <div class="mt-1 text-xs text-[var(--art-text-gray-500)]">
+              {{ t('pages.task.detail.itemsHint') }}
             </div>
-          </template>
-
-          <ElDescriptions :column="2" border>
-            <ElDescriptionsItem :label="t('pages.task.detail.taskStatus')">{{ detail.taskStatusLabel || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.taskType')">{{ detail.taskTypeLabel || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.warehType')">{{ detail.warehTypeLabel || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.priority')">{{ detail.sort ?? '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.status')">{{ detail.statusText || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.robotCode')">{{ detail.robotCode || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.createTime')">{{ detail.createTimeText || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.updateTime')">{{ detail.updateTimeText || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.memo')" :span="2">{{ detail.memo || '--' }}</ElDescriptionsItem>
-          </ElDescriptions>
-        </ElCard>
-
-        <ElCard shadow="never" class="border border-[var(--el-border-color-lighter)]">
-          <template #header>
-            <div class="flex items-center justify-between">
-              <span class="font-medium text-[var(--art-text-gray-900)]">{{ t('pages.task.detail.pathInfo') }}</span>
-              <ElButton text type="primary" @click="$emit('flow-step')">{{ t('pages.task.detail.flowStep') }}</ElButton>
-            </div>
-          </template>
-
-          <ElDescriptions :column="1" border>
-            <ElDescriptionsItem :label="t('pages.task.detail.orgLoc')">{{ detail.orgLoc || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.orgSite')">{{ detail.orgSiteLabel || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.targLoc')">{{ detail.targLoc || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.targSite')">{{ detail.targSiteLabel || '--' }}</ElDescriptionsItem>
-            <ElDescriptionsItem :label="t('pages.task.detail.barcode')">{{ detail.barcode || '--' }}</ElDescriptionsItem>
-          </ElDescriptions>
-        </ElCard>
-      </div>
-
-      <div class="flex items-center justify-between">
-        <div>
-          <div class="text-sm font-medium text-[var(--art-text-gray-900)]">{{ t('pages.task.detail.items') }}</div>
-          <div class="mt-1 text-xs text-[var(--art-text-gray-500)]">
-            {{ t('pages.task.detail.itemsHint') }}
+          </div>
+          <div class="flex items-center gap-2">
+            <ElButton :loading="loading" @click="$emit('refresh')">{{
+              t('common.actions.refresh')
+            }}</ElButton>
           </div>
         </div>
-        <div class="flex items-center gap-2">
-          <ElButton :loading="loading" @click="$emit('refresh')">{{ t('common.actions.refresh') }}</ElButton>
+
+        <div class="min-w-0">
+          <ArtTable
+            :loading="loading"
+            :data="data"
+            :columns="columns"
+            :pagination="pagination"
+            @pagination:size-change="$emit('size-change', $event)"
+            @pagination:current-change="$emit('current-change', $event)"
+          />
         </div>
       </div>
-
-      <ArtTable
-        :loading="loading"
-        :data="data"
-        :columns="columns"
-        :pagination="pagination"
-        @pagination:size-change="$emit('size-change', $event)"
-        @pagination:current-change="$emit('current-change', $event)"
-      />
-    </div>
+    </ElScrollbar>
   </ElDrawer>
 </template>
 
@@ -86,9 +143,31 @@
     pagination: { type: Object, default: () => ({ current: 1, size: 20, total: 0 }) }
   })
 
-  const emit = defineEmits(['update:visible', 'refresh', 'size-change', 'current-change', 'flow-step'])
+  const emit = defineEmits([
+    'update:visible',
+    'refresh',
+    'size-change',
+    'current-change',
+    'flow-step'
+  ])
 
   function handleVisibleChange(visible) {
     emit('update:visible', visible)
   }
 </script>
+
+<style scoped>
+  :deep(.task-detail-card .el-card__header) {
+    padding: 12px 16px;
+  }
+
+  :deep(.task-detail-card .el-card__body) {
+    padding: 12px 16px 16px;
+  }
+
+  :deep(.compact-descriptions .el-descriptions__label.el-descriptions__cell),
+  :deep(.compact-descriptions .el-descriptions__content.el-descriptions__cell) {
+    padding-top: 10px;
+    padding-bottom: 10px;
+  }
+</style>

--
Gitblit v1.9.1