From 2b7fccce78fe4d57d73f4cf350cbe16b75a72fd4 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 08 八月 2025 14:34:36 +0800
Subject: [PATCH] fix: 任务详情

---
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue |   89 ++++++++++++++++++++++++++++++--------------
 1 files changed, 61 insertions(+), 28 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index 56f23c6..b599bbe 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -1,26 +1,38 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
     <ContentScrollView style="background-color: transparent">
-      <Cell :title="'瀹㈡埧鏈嶅姟鍛�'" titleSize="large">
+      <Cell :title="detail?.name ?? ''" titleSize="large">
         <template #title-right>
-          <img :src="IconAttentioActive" class="taskDetail-attention-icon" />
+          <img
+            :src="detail.isCollected ? IconAttentioActive : IconAttention"
+            class="taskDetail-attention-icon"
+          />
         </template>
-        <div class="taskDetail-time">2025骞�2鏈�5鏃� 鑷� 2025骞�3鏈�5鏃�</div>
+        <div class="taskDetail-time">
+          {{ dayjs(detail?.beginTime).format('YYYY骞碝M鏈圖D鏃�') }} 鑷�
+          {{ dayjs(detail?.endTime).format('YYYY骞碝M鏈圖D鏃�') }}
+        </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 class="task-card-welfare-list-item">
+              {{ TaskUtils.getGenderText(detail.genderLimit) }}
+            </div> -->
           </div>
-          <TaskPrice :value="212" />
+          <TaskPrice
+            :value="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>
@@ -28,31 +40,44 @@
       <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="楂樻俯琛ヨ创" />
+            <TaskDetailWelfareItem
+              v-for="benefit in detail.benefits"
+              :key="benefit.benefitCode"
+              :icon="IconAttentioActive"
+              :text="benefit.benefitContent"
+            />
           </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 class="taskDetail-limit-list-item-text">
+                {{ detail.ageMinLimit ?? 0 }}-{{ detail.ageMaxLimit ?? 0 }}宀�
+              </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 class="taskDetail-limit-list-item-text">
+                {{ TaskUtils.getGenderText(detail.genderLimit) }}
+              </div>
             </div>
             <div class="taskDetail-limit-list-item">
-              <div class="taskDetail-limit-list-item-label">璧勬牸璇佷功锛�</div>
-              <div class="taskDetail-limit-list-item-text">鍋ュ悍璇�</div>
+              <template v-if="detail?.credentialLimits?.length > 0">
+                <div class="taskDetail-limit-list-item-label">璧勬牸璇佷功锛�</div>
+                <div class="taskDetail-limit-list-item-text">
+                  {{ TaskUtils.getCredentialLimit(detail?.credentialLimits) }}
+                </div>
+              </template>
             </div>
           </div>
         </CellChunk>
         <CellChunk title="鍙戝竷鑰呬俊鎭�">
-          <CompanyDesc @click="goCompanyDetail"></CompanyDesc>
+          <CompanyDesc
+            @click="goCompanyDetail"
+            :enterpriseName="detail?.enterpriseName ?? ''"
+            :taskCount="detail?.taskCount ?? 0"
+          ></CompanyDesc>
         </CellChunk>
       </Cell>
       <Cell>
@@ -84,7 +109,7 @@
 <script setup lang="ts">
 import Taro from '@tarojs/taro';
 import { useQuery } from '@tanstack/vue-query';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import * as taskServices from '@12333/services/apiV2/task';
 import { useToggle } from 'senin-mini/hooks';
 import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
 import IconAttention from '@/assets/task/icon-attention.png';
@@ -96,10 +121,18 @@
 import IconLocaltion from '@/assets/task/icon-localtion.png';
 import './taskDetail.scss';
 import CompanyDesc from '../components/CompanyDesc.vue';
+import dayjs from 'dayjs';
+import { TaskUtils } from '@12333/utils';
+import { EnumSettlementCycleText, BillingMethodEnumUnit } from '@12333/constants';
+import { useAccessLogin } from '@/hooks';
 
 defineOptions({
   name: 'InnerPage',
 });
+
+/**
+ * TODO 缂哄皯宸叉姤鍚嶄汉鏁� 鎵嬫満 鎶曡瘔涓炬姤鎺ュ彛
+ */
 
 const router = Taro.useRouter();
 const taskId = router.params?.id ?? '';
@@ -110,32 +143,32 @@
   data: detail,
   refetch,
 } = useQuery({
-  queryKey: ['flexWorkerServices/getOrdeForDetail', taskId],
+  queryKey: ['taskServices/getTaskInfo', taskId],
   queryFn: async () => {
-    return await flexWorkerServices.getOrdeForDetail(
+    return await taskServices.getTaskInfo(
       { id: taskId },
       {
         showLoading: false,
       }
     );
   },
-  placeholderData: () => ({} as API.OrderInfoDto),
+  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
   onSuccess(data) {
-    if (data.isExistTradeChatRecord) setTrue();
+    // if (data.isExistTradeChatRecord) setTrue();
   },
 });
 
 const { isCollapse, setTrue } = useToggle();
 
-function goComplaint() {
+const goComplaint = useAccessLogin(() => {
   Taro.navigateTo({
     url: `${RouterPath.complaint}?id=${taskId}`,
   });
-}
+});
 
-function goCompanyDetail() {
+const goCompanyDetail = useAccessLogin(() => {
   Taro.navigateTo({
     url: `${RouterPath.companyDetail}?id=${taskId}`,
   });
-}
+});
 </script>

--
Gitblit v1.9.1