wupengfei
2025-03-10 6887129e91d32557c2b57178180329f46df09d12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<template>
  <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
    <ContentScrollView style="background-color: transparent">
      <Cell :title="'客房服务员'" titleSize="large">
        <template #title-right>
          <img :src="IconAttentioActive" class="taskDetail-attention-icon" />
        </template>
        <div class="taskDetail-time">2025年2月5日 至 2025年3月5日</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>
          <TaskPrice :value="212" />
        </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>
          <div class="taskDetail-address-info-wrapper">
            <div class="taskDetail-address-info">宁波市鄞州区东钱湖大堰路188号宁波柏悦酒店</div>
            <RectRight :size="8" class="taskDetail-address-info-icon" />
          </div>
        </div>
      </Cell>
      <Cell :show-title="false">
        <CellChunk title="福利信息">
          <div class="taskDetail-welfare-list">
            <TaskDetailWelfareItem :icon="IconAttentioActive" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconAttentioActive" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconAttentioActive" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconAttentioActive" text="高温补贴" />
            <TaskDetailWelfareItem :icon="IconAttentioActive" text="高温补贴" />
          </div>
        </CellChunk>
        <CellChunk title="报名条件">
          <div class="taskDetail-limit-list">
            <div class="taskDetail-limit-list-item">
              <div class="taskDetail-limit-list-item-label">年龄:</div>
              <div class="taskDetail-limit-list-item-text">18-45岁</div>
            </div>
            <div class="taskDetail-limit-list-item">
              <div class="taskDetail-limit-list-item-label">性别:</div>
              <div class="taskDetail-limit-list-item-text">不限</div>
            </div>
            <div class="taskDetail-limit-list-item">
              <div class="taskDetail-limit-list-item-label">资格证书:</div>
              <div class="taskDetail-limit-list-item-text">健康证</div>
            </div>
          </div>
        </CellChunk>
        <CellChunk title="发布者信息">
          <CompanyDesc @click="goCompanyDetail"></CompanyDesc>
        </CellChunk>
      </Cell>
      <Cell>
        <template #title>
          <div class="safe-cell-title-wrapper">
            <img :src="IconSafe" class="safe-cell-title-icon" />
            <div class="safe-cell-title">安全提示</div>
          </div>
        </template>
        <div class="safe-cell-content">
          该信息由用户自主发布,如遇虚假信息、诈骗、传销等违法违规行为,请立即
          <div class="safe-cell-content-btn" @click="goComplaint">投诉举报</div>
        </div>
      </Cell>
    </ContentScrollView>
    <PageFooter>
      <PageFooterAction
        :icon="IconShare"
        text="分享"
        :isFlex="false"
        openType="share"
      ></PageFooterAction>
      <PageFooterAction :icon="IconPhone" text="手机" :isFlex="false"></PageFooterAction>
      <PageFooterBtn type="primary">报名(5人已报名)</PageFooterBtn>
    </PageFooter>
  </LoadingLayout>
</template>
 
<script setup lang="ts">
import Taro from '@tarojs/taro';
import { useQuery } from '@tanstack/vue-query';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import { useToggle } from 'senin-mini/hooks';
import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
import IconAttention from '@/assets/task/icon-attention.png';
import IconAttentioActive from '@/assets/task/icon-attention-active.png';
import { RectRight } from '@nutui/icons-vue-taro';
import IconShare from '@/assets/task/icon-share.png';
import IconPhone from '@/assets/task/icon-phone.png';
import IconSafe from '@/assets/task/icon-safe.png';
import IconLocaltion from '@/assets/task/icon-localtion.png';
import './taskDetail.scss';
import CompanyDesc from '../components/CompanyDesc.vue';
 
defineOptions({
  name: 'InnerPage',
});
 
const router = Taro.useRouter();
const taskId = router.params?.id ?? '';
 
const {
  isLoading,
  isError,
  data: detail,
  refetch,
} = useQuery({
  queryKey: ['flexWorkerServices/getOrdeForDetail', taskId],
  queryFn: async () => {
    return await flexWorkerServices.getOrdeForDetail(
      { id: taskId },
      {
        showLoading: false,
      }
    );
  },
  placeholderData: () => ({} as API.OrderInfoDto),
  onSuccess(data) {
    if (data.isExistTradeChatRecord) setTrue();
  },
});
 
const { isCollapse, setTrue } = useToggle();
 
function goComplaint() {
  Taro.navigateTo({
    url: `${RouterPath.complaint}?id=${taskId}`,
  });
}
 
function goCompanyDetail() {
  Taro.navigateTo({
    url: `${RouterPath.companyDetail}?id=${taskId}`,
  });
}
</script>