From 6244c26cd11f6446b39c0ad50c8223b379e5258a Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 07 十一月 2025 19:05:47 +0800
Subject: [PATCH] fix: bug

---
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue |  190 ++++++++++++++---------------------------------
 1 files changed, 56 insertions(+), 134 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index ea0fe2c..d7a1d9c 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -1,7 +1,7 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
     <ContentScrollView style="background-color: transparent">
-      <Cell :title="detail?.name ?? ''" titleSize="large">
+      <TaskDetailView :detail="detail">
         <template #title-right>
           <img
             v-if="from === 'apply'"
@@ -23,96 +23,32 @@
           </div>
           <div v-if="from === 'cancel'" :style="{ color: '#999999' }">宸插彇娑�</div>
         </template>
-        <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">
-              {{ EnumSettlementCycleText[detail.settlementCycle] }}
-            </div>
-            <!-- <div class="task-card-welfare-list-item">
-              {{ TaskUtils.getGenderText(detail.genderLimit) }}
-            </div> -->
-          </div>
-          <TaskPrice
-            v-if="detail.releaseStatus !== EnumTaskReleaseStatus.Stopped"
-            :value="toThousand(detail.serviceFee ?? 0)"
-            :unit="BillingMethodEnumUnit[detail.billingMethod]"
-          />
-        </div>
-        <div class="taskDetail-address-wrapper" @click="goMap">
-          <div class="taskDetail-address-title-wrapper">
-            <img :src="IconLocaltion" class="taskDetail-address-title-icon" />
-            <div class="taskDetail-address-title">{{ detail?.addressName ?? '' }}</div>
-          </div>
-          <div class="taskDetail-address-info-wrapper">
-            <div class="taskDetail-address-info">{{ detail?.addressDetail ?? '' }}</div>
-            <RectRight :size="8" class="taskDetail-address-info-icon" />
-          </div>
-        </div>
-      </Cell>
-      <Cell :show-title="false">
-        <CellChunk title="绂忓埄淇℃伅">
-          <div class="taskDetail-welfare-list">
-            <TaskDetailWelfareItem
-              v-for="benefit in detail.benefits"
-              :key="benefit.benefitCode"
-              :icon="setOSSLink(benefit.benefitField2)"
-              :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">
-                {{ 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">
-                {{ TaskUtils.getGenderText(detail.genderLimit) }}
-              </div>
-            </div>
-            <div class="taskDetail-limit-list-item">
-              <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"
-            :enterpriseName="detail?.enterpriseName ?? ''"
-            :taskCount="detail?.taskCount ?? 0"
-            :isReal="detail?.isReal ?? false"
-            :supplierEnterpriseName="detail?.supplierEnterpriseName ?? ''"
-          ></CompanyDesc>
-        </CellChunk>
-      </Cell>
-      <Cell title="浠诲姟鎻忚堪">
-        <div class="safe-cell-content">{{ detail?.description ?? '' }}</div>
-      </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 #companyDesc>
+          <CellChunk title="鍙戝竷鑰呬俊鎭�">
+            <CompanyDesc
+              @click="goCompanyDetail"
+              :enterpriseName="detail?.enterpriseName ?? ''"
+              :taskCount="detail?.taskCount ?? 0"
+              :isReal="detail?.isReal ?? false"
+              :supplierEnterpriseName="detail?.supplierEnterpriseName ?? ''"
+            ></CompanyDesc>
+          </CellChunk>
         </template>
-        <div class="safe-cell-content">
-          璇ヤ俊鎭敱鐢ㄦ埛鑷富鍙戝竷锛屽閬囪櫄鍋囦俊鎭�佽瘓楠椼�佷紶閿�绛夎繚娉曡繚瑙勮涓猴紝璇风珛鍗�
-          <div class="safe-cell-content-btn" @click="goComplaint">鎶曡瘔涓炬姤</div>
-        </div>
-      </Cell>
+        <template #footer>
+          <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>
+        </template>
+      </TaskDetailView>
     </ContentScrollView>
     <PageFooter>
       <PageFooterAction
@@ -139,7 +75,7 @@
         v-if="
           from === 'hire' &&
           !(
-            detail?.checkReceiveMethod === EnumTaskCheckReceiveMethod.CheckIn &&
+            isContainCheckIn &&
             detail?.hireButton === GetTaskInfoQueryResultHireButton.ApplyCheckReceive
           )
         "
@@ -171,23 +107,17 @@
 import { useQuery } from '@tanstack/vue-query';
 import * as taskServices from '@12333/services/apiV2/task';
 import * as taskUserServices from '@12333/services/apiV2/taskUser';
-import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
 import { useToggle } from 'senin-mini/hooks';
-import { TaskPrice, TaskDetailWelfareItem } from '@12333/components';
+import { TaskDetailView, Cell, CellChunk } 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';
-import dayjs from 'dayjs';
-import { TaskUtils, toThousand, setOSSLink, Message } from '@12333/utils';
+import { Message } from '@12333/utils';
 import {
-  EnumSettlementCycleText,
-  BillingMethodEnumUnit,
   EnumTaskReleaseStatus,
   GetPersonalApplyTaskInfosQueryStatusColor,
   GetTaskInfoQueryResultApplyButtonText,
@@ -198,6 +128,8 @@
   EnumTaskCheckReceiveMethod,
 } from '@12333/constants';
 import { useAccessLogin } from '@/hooks';
+import { useTaskInfo } from '@12333/hooks';
+import _ from 'lodash';
 
 defineOptions({
   name: 'InnerPage',
@@ -211,26 +143,7 @@
 const id = router.params?.id ?? '';
 const from = router.params?.from ?? '';
 
-const {
-  isLoading,
-  isError,
-  data: detail,
-  refetch,
-} = useQuery({
-  queryKey: ['taskServices/getTaskInfo', id],
-  queryFn: async () => {
-    return await taskServices.getTaskInfo(
-      { id: id },
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
-  onSuccess(data) {
-    // if (data.isExistTradeChatRecord) setTrue();
-  },
-});
+const { isLoading, isError, detail, refetch, isContainCheckIn } = useTaskInfo({ id });
 
 const { isCollapse, setTrue } = useToggle();
 
@@ -243,25 +156,34 @@
 const goCompanyDetail = useAccessLogin(() => {
   if (detail.value.enterpriseId) {
     Taro.navigateTo({
-      url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}`,
+      url: `${RouterPath.companyDetail}?id=${detail.value.enterpriseId}&supplierEnterpriseId=${
+        detail.value.supplierEnterpriseId ?? ''
+      }`,
     });
   }
 });
 
-const handleApply = useAccessReal(
-  async () => {
-    try {
-      let params: API.ApplyTaskCommand = {
-        ids: [id],
-      };
-      let res = await taskUserServices.applyTask(params);
-      if (res) {
-        Message.success('鎶ュ悕鎴愬姛');
-        refetch({ type: 'inactive' });
-      }
-    } catch (error) {}
-  },
-  { message: '瀹炲悕鎴愬姛鍚庢墠鍙姤鍚嶏紝璇峰墠寰�瀹炲悕璁よ瘉' }
+const handleApply = _.debounce(
+  useAccessReal(
+    async () => {
+      try {
+        let params: API.ApplyTaskCommand = {
+          ids: [id],
+        };
+        let res = await taskUserServices.applyTask(params);
+        if (res) {
+          Message.success('鎶ュ悕鎴愬姛');
+          refetch({ type: 'inactive' });
+        }
+      } catch (error) {}
+    },
+    { message: '瀹炲悕鎴愬姛鍚庢墠鍙姤鍚嶏紝璇峰墠寰�瀹炲悕璁よ瘉' }
+  ),
+  1000,
+  {
+    leading: true,
+    trailing: false,
+  }
 );
 
 const handleAttention = useAccessLogin(async () => {

--
Gitblit v1.9.1