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