From 2b7fccce78fe4d57d73f4cf350cbe16b75a72fd4 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 08 八月 2025 14:34:36 +0800
Subject: [PATCH] fix: 任务详情

---
 packages/components/src/Card/TaskCard.vue |   83 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 69 insertions(+), 14 deletions(-)

diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index 7285ced..098b45c 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -1,23 +1,33 @@
 <template>
   <div class="task-card-wrapper">
     <div class="task-card-title-wrapper">
-      <div class="task-card-title">瀹㈡埧鏈嶅姟鍛�</div>
-      <TaskPrice :value="212" />
+      <div class="task-card-title">{{ name }}</div>
+      <slot name="title-right">
+        <TaskPrice :value="serviceFee ?? 0" :unit="BillingMethodEnumUnit[billingMethod]" />
+      </slot>
     </div>
-    <div class="task-card-welfare-list">
-      <div class="task-card-welfare-list-item">鏃ョ粨</div>
-      <div class="task-card-welfare-list-item">鐢峰コ涓嶉檺</div>
-      <div class="task-card-welfare-list-item">鍖呬笁椁�</div>
-    </div>
-    <div class="task-card-time">涓婄彮鏃堕棿:07:00-15:30</div>
+    <slot>
+      <div class="task-card-welfare-list">
+        <div class="task-card-welfare-list-item">
+          {{ EnumSettlementCycleText[settlementCycle] }}
+        </div>
+        <div class="task-card-welfare-list-item">{{ TaskUtils.getGenderText(genderLimit) }}</div>
+        <div class="task-card-welfare-list-item">鍖呬笁椁�</div>
+      </div>
+      <div class="task-card-time">
+        {{ dayjs(beginTime).format('YYYY骞碝M鏈圖D鏃�') }}鑷硔{
+          dayjs(endTime).format('YYYY骞碝M鏈圖D鏃�')
+        }}
+      </div>
+    </slot>
     <div class="task-card-footer">
       <div class="task-card-left">
         <div class="task-card-footer-tag">H</div>
-        <div class="task-card-footer-address">瀹佹尝闆疯开妫厭搴�</div>
+        <div class="task-card-footer-address">{{ 'address' }}</div>
       </div>
-      <div class="task-card-actions">
+      <div class="task-card-actions" v-if="showActions">
         <slot name="actions">
-          <nut-button type="primary">鎶ュ悕</nut-button>
+          <nut-button type="primary" @click.stop="handleSign">鎶ュ悕</nut-button>
         </slot>
       </div>
     </div>
@@ -25,17 +35,62 @@
 </template>
 
 <script setup lang="ts">
+import {
+  EnumBillingMethod,
+  EnumSettlementCycle,
+  EnumTaskCheckReceiveStatus,
+  EnumTaskRecommendStatus,
+  EnumTaskReleaseStatus,
+  EnumTaskSettlementStatus,
+  EnumTaskStatus,
+  EnumUserGender,
+  EnumBillingMethodText,
+  EnumUserGenderText,
+  EnumSettlementCycleText,
+  BillingMethodEnumUnit,
+} from '@12333/constants';
 import TaskPrice from './TaskPrice.vue';
+import { CommonTaskCardProps } from './card';
+import dayjs from 'dayjs';
+import { TaskUtils } from '@12333/utils';
 
 defineOptions({
   name: 'TaskCard',
 });
 
-type Props = {
-  title?: string;
+type Props = CommonTaskCardProps & {
+  showActions?: boolean;
+  /** Id */
+  id?: string;
+  /** 浠诲姟鍚嶇О */
+  name: string;
+  /** 浠诲姟鍗曞彿 */
+  code?: string;
+  billingMethod?: EnumBillingMethod;
+  /** 鏈嶅姟璐� */
+  serviceFee?: number;
+  settlementCycle?: EnumSettlementCycle;
+  genderLimit?: EnumUserGender;
+  /** 鎶ュ悕浜烘暟 */
+  userCount?: number;
+  status?: EnumTaskStatus;
+  /** 浠诲姟寮�濮嬫椂闂� */
+  beginTime?: string;
+  /** 浠诲姟缁撴潫鏃堕棿 */
+  endTime?: string;
+  releaseStatus?: EnumTaskReleaseStatus;
+  checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+  settlementStatus?: EnumTaskSettlementStatus;
+  recommendStatus?: EnumTaskRecommendStatus;
+  /** 鍒涘缓鏃堕棿 */
+  createdTime?: string;
 };
 
-const props = withDefaults(defineProps<Props>(), {});
+const props = withDefaults(defineProps<Props>(), {
+  showActions: true,
+});
+
+function handleSign() {}
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1