zhengyiming
8 天以前 7acb0415dd0ab0427ec5bd651fc9730c34a7bd6c
packages/components/src/Card/TaskCard.vue
@@ -3,7 +3,10 @@
    <div class="task-card-title-wrapper">
      <div class="task-card-title">{{ name }}</div>
      <slot name="title-right">
        <TaskPrice :value="serviceFee ?? 0" :unit="BillingMethodEnumUnit[billingMethod]" />
        <TaskPrice
          :value="toThousand(serviceFee ?? 0)"
          :unit="BillingMethodEnumUnit[billingMethod]"
        />
      </slot>
    </div>
    <slot>
@@ -12,7 +15,14 @@
          {{ EnumSettlementCycleText[settlementCycle] }}
        </div>
        <div class="task-card-welfare-list-item">{{ TaskUtils.getGenderText(genderLimit) }}</div>
        <div class="task-card-welfare-list-item">包三餐</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年MM月DD日') }}至{{
@@ -23,11 +33,16 @@
    <div class="task-card-footer">
      <div class="task-card-left">
        <div class="task-card-footer-tag">H</div>
        <div class="task-card-footer-address">{{ '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.stop="emit('apply', id)"
            >报名</nut-button
          >
        </slot>
      </div>
    </div>
@@ -52,7 +67,7 @@
import TaskPrice from './TaskPrice.vue';
import { CommonTaskCardProps } from './card';
import dayjs from 'dayjs';
import { TaskUtils } from '@12333/utils';
import { TaskUtils, toThousand } from '@12333/utils';
defineOptions({
  name: 'TaskCard',
@@ -70,7 +85,27 @@
  /** 服务费 */
  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;
@@ -90,7 +125,9 @@
  showActions: true,
});
function handleSign() {}
const emit = defineEmits<{
  (e: 'apply', id: string): void;
}>();
</script>
<style lang="scss">