From c2447e7d63e22bea1a8b6119a210b470f8aa17d4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 03 十二月 2025 15:06:00 +0800
Subject: [PATCH] feat: 通知

---
 packages/components/src/Card/TaskCard.vue |   35 ++++++++++++++++++++++++++++++-----
 1 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index 254b6c5..d8f6899 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -1,11 +1,13 @@
 <template>
-  <div class="task-card-wrapper">
+  <div class="task-card-wrapper" :class="{ 'un-read': unRead }">
     <div class="task-card-title-wrapper">
       <div class="task-card-title">{{ name }}</div>
       <slot name="title-right">
         <TaskPrice
+          v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
           :value="toThousand(serviceFee ?? 0)"
           :unit="BillingMethodEnumUnit[billingMethod]"
+          :billingMethod="billingMethod"
         />
       </slot>
     </div>
@@ -25,9 +27,7 @@
         </div>
       </div>
       <div class="task-card-time">
-        {{ dayjs(beginTime).format('YYYY骞碝M鏈圖D鏃�') }}鑷硔{
-          dayjs(endTime).format('YYYY骞碝M鏈圖D鏃�')
-        }}
+        {{ dayjs(beginTime).format('YYYY骞碝M鏈圖鏃�') }}鑷硔{ dayjs(endTime).format('YYYY骞碝M鏈圖鏃�') }}
       </div>
     </slot>
     <div class="task-card-footer">
@@ -37,7 +37,11 @@
       </div>
       <div class="task-card-actions" v-if="showActions">
         <slot name="actions">
-          <nut-button v-if="releaseStatus === EnumTaskReleaseStatus.InProcess" type="primary"
+          <nut-button
+            v-if="releaseStatus === EnumTaskReleaseStatus.InProcess"
+            type="primary"
+            @click="emit('apply', props.id)"
+            :disabled="!!hireStatus"
             >鎶ュ悕</nut-button
           >
         </slot>
@@ -60,6 +64,7 @@
   EnumUserGenderText,
   EnumSettlementCycleText,
   BillingMethodEnumUnit,
+  EnumTaskUserHireStatus,
 } from '@12333/constants';
 import TaskPrice from './TaskPrice.vue';
 import { CommonTaskCardProps } from './card';
@@ -116,10 +121,15 @@
   recommendStatus?: EnumTaskRecommendStatus;
   /** 鍒涘缓鏃堕棿 */
   createdTime?: string;
+  hireStatus?: EnumTaskUserHireStatus;
+
+  unRead?: boolean;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   showActions: true,
+
+  unRead: false,
 });
 
 const emit = defineEmits<{
@@ -136,6 +146,21 @@
   background-color: #fff;
   border-radius: 12px;
 
+  &.un-read {
+    position: relative;
+
+    &::before {
+      content: '';
+      position: absolute;
+      width: 12px;
+      height: 12px;
+      border-radius: 50%;
+      background-color: red;
+      right: 18px;
+      top: 12px;
+    }
+  }
+
   &:last-child {
     margin-bottom: 0;
   }

--
Gitblit v1.9.1