From fb243f3345c6f3ed7e7c8c2d98c39b5afc782b9a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 10:24:40 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp
---
packages/components/src/Card/TaskCard.vue | 103 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 94 insertions(+), 9 deletions(-)
diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index 27a75cb..4f071a2 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -1,27 +1,48 @@
<template>
<div class="task-card-wrapper">
<div class="task-card-title-wrapper">
- <div class="task-card-title">瀹㈡埧鏈嶅姟鍛�</div>
+ <div class="task-card-title">{{ name }}</div>
<slot name="title-right">
- <TaskPrice :value="212" />
+ <TaskPrice
+ v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
+ :value="toThousand(serviceFee ?? 0)"
+ :unit="BillingMethodEnumUnit[billingMethod]"
+ />
</slot>
</div>
<slot>
<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 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">涓婄彮鏃堕棿:07:00-15:30</div>
+ <div class="task-card-time">
+ {{ dayjs(beginTime).format('YYYY骞碝M鏈圖鏃�') }}鑷硔{ dayjs(endTime).format('YYYY骞碝M鏈圖鏃�') }}
+ </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" v-if="showActions">
<slot name="actions">
- <nut-button type="primary" @click.stop="handleSign">鎶ュ悕</nut-button>
+ <nut-button
+ v-if="releaseStatus === EnumTaskReleaseStatus.InProcess"
+ type="primary"
+ @click="emit('apply', props.id)"
+ :disabled="!!hireStatus"
+ >鎶ュ悕</nut-button
+ >
</slot>
</div>
</div>
@@ -29,8 +50,25 @@
</template>
<script setup lang="ts">
+import {
+ EnumBillingMethod,
+ EnumSettlementCycle,
+ EnumTaskCheckReceiveStatus,
+ EnumTaskRecommendStatus,
+ EnumTaskReleaseStatus,
+ EnumTaskSettlementStatus,
+ EnumTaskStatus,
+ EnumUserGender,
+ EnumBillingMethodText,
+ EnumUserGenderText,
+ EnumSettlementCycleText,
+ BillingMethodEnumUnit,
+ EnumTaskUserHireStatus,
+} 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',
@@ -38,13 +76,60 @@
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;
+ hireStatus?: EnumTaskUserHireStatus;
};
const props = withDefaults(defineProps<Props>(), {
showActions: true,
});
-function handleSign() {}
+const emit = defineEmits<{
+ (e: 'apply', id: string): void;
+}>();
</script>
<style lang="scss">
--
Gitblit v1.9.1