wupengfei
5 天以前 f790bdf751063dd882b5ae654cb540d81bf16d1d
apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
@@ -1,23 +1,32 @@
<template>
  <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
    <ContentScrollView style="background-color: transparent">
      <Cell :title="'客房服务员'" titleSize="large">
        <div class="taskDetail-time">2025年2月5日 至 2025年3月5日</div>
      <Cell :title="detail.name" titleSize="large">
        <div class="taskDetail-time">
          {{
            `${dayjs(detail.beginTime).format('YYYY年MM月DD日')}至${dayjs(detail.endTime).format(
              'YYYY年MM月DD日'
            )}`
          }}
        </div>
        <div class="task-card-welfare-wrapper">
          <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[detail.settlementCycle] }}
            </div>
          </div>
          <TaskPrice :value="212" />
          <TaskPrice
            :value="toThousand(detail.serviceFee ?? 0)"
            :unit="BillingMethodEnumUnit[detail.billingMethod]"
          />
        </div>
        <div class="taskDetail-address-wrapper">
          <div class="taskDetail-address-title-wrapper">
            <img :src="IconLocaltion" class="taskDetail-address-title-icon" />
            <div class="taskDetail-address-title">宁波柏悦酒店</div>
            <div class="taskDetail-address-title">{{ detail?.addressName ?? '' }}</div>
          </div>
          <div class="taskDetail-address-info-wrapper">
            <div class="taskDetail-address-info">宁波市鄞州区东钱湖大堰路188号宁波柏悦酒店</div>
            <div class="taskDetail-address-info">{{ detail?.addressDetail ?? '' }}</div>
            <RectRight :size="8" class="taskDetail-address-info-icon" />
          </div>
        </div>
@@ -25,11 +34,12 @@
      <Cell :show-title="false">
        <CellChunk title="福利信息">
          <div class="taskDetail-welfare-list">
            <TaskDetailWelfareItem :icon="IconLocaltion" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconLocaltion" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconLocaltion" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconLocaltion" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconLocaltion" text="高温补贴" />
            <TaskDetailWelfareItem
              v-for="benefit in detail.benefits"
              :key="benefit.benefitCode"
              :icon="setOSSLink(benefit.benefitField2)"
              :text="benefit.benefitContent"
            />
          </div>
        </CellChunk>
      </Cell>
@@ -40,9 +50,13 @@
<script setup lang="ts">
import { useQuery } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
import * as orderServices from '@12333/services/api/Order';
import * as taskServices from '@12333/services/apiV2/task';
import IconLocaltion from '@/assets/flexJob/icon-localtion.png';
import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
import dayjs from 'dayjs';
import { setOSSLink, toThousand } from '@12333/utils';
import { RectRight } from '@nutui/icons-vue-taro';
import { BillingMethodEnumUnit, EnumSettlementCycleText } from '@12333/constants';
defineOptions({
  name: 'JobDetail',
@@ -53,7 +67,7 @@
// const props = withDefaults(defineProps<Props>(), {});
const router = Taro.useRouter();
const taskId = router.params?.id ?? 'c4cfe028-23e7-0be8-ee56-3a11e3743b9d';
const taskId = router.params?.taskId;
const {
  isLoading,
@@ -61,22 +75,22 @@
  data: detail,
  refetch,
} = useQuery({
  queryKey: ['orderServices/getOrdeForDetail', taskId],
  queryKey: ['taskServices/getTaskInfo', taskId],
  queryFn: async () => {
    return await orderServices.getOrdeForDetail(
    return await taskServices.getTaskInfo(
      { id: taskId },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.OrderInfoDto),
  onSuccess(data) {},
  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
});
</script>
<style lang="scss">
@import '@/styles/common.scss';
.jobApplicationDetail-page-wrapper {
  .taskDetail-time {
    font-size: 24px;