From 9e975eee3ebe9cc133435ca3fb2dbf8458efc748 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 11 八月 2025 18:10:11 +0800
Subject: [PATCH] fix: 修改登录

---
 packages/components/src/Card/TaskCard.vue |  124 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 108 insertions(+), 16 deletions(-)

diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index 01186b3..687f7f6 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -1,23 +1,48 @@
 <template>
   <div class="task-card-wrapper">
     <div class="task-card-title-wrapper">
-      <div class="task-card-title">瀹㈡埧鏈嶅姟鍛�</div>
-      <TaskPrice />
+      <div class="task-card-title">{{ name }}</div>
+      <slot name="title-right">
+        <TaskPrice
+          :value="toThousand(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"
+          v-if="benefits?.length > 0"
+          v-for="item in benefits"
+          :key="item.benefitCode"
+        >
+          {{ item.benefitContent }}
+        </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">{{ addressName }}</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
+            v-if="releaseStatus === EnumTaskReleaseStatus.InProcess"
+            type="primary"
+            @click.stop="emit('apply', id)"
+            >鎶ュ悕</nut-button
+          >
         </slot>
       </div>
     </div>
@@ -25,17 +50,84 @@
 </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, toThousand } 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;
+  /** 绂忓埄 */
+  benefits?: API.GetTaskInfoQueryResultBenefit[];
+  genderLimit?: EnumUserGender;
+  /** 璧勬牸璇佷功绫诲瀷 */
+  credentialLimits?: API.GetTaskInfoQueryResultCredentialLimit[];
+  /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */
+  provinceCode?: string;
+  /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */
+  provinceContent?: string;
+  /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */
+  cityCode?: string;
+  /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */
+  cityContent?: string;
+  /** 浠诲姟鍦扮偣鍚嶇О */
+  addressName?: string;
+  /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */
+  addressDetail?: string;
+  /** 缁忓害 */
+  longitude?: number;
+  /** 绾害 */
+  latitude?: number;
+  /** 鎶ュ悕浜烘暟 */
+  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,
+});
+
+const emit = defineEmits<{
+  (e: 'apply', id: string): void;
+}>();
 </script>
 
 <style lang="scss">
@@ -82,7 +174,7 @@
 
   .task-card-time {
     font-size: 24px;
-    color: boleGetCssVar('text-color', 'secondary');
+    color: boleGetCssVar('text-color', 'regular');
     line-height: 36px;
     margin-bottom: 6px;
   }
@@ -111,7 +203,7 @@
 
       .task-card-footer-address {
         font-size: 22px;
-        color: boleGetCssVar('text-color', 'secondary');
+        color: boleGetCssVar('text-color', 'regular');
         line-height: 36px;
         flex: 1;
         min-width: 0;

--
Gitblit v1.9.1