From fbb9fdb5b11cd5ecd3ff19f41738bbd3b0afb82c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 07 十一月 2025 11:04:21 +0800
Subject: [PATCH] fix: s

---
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue |  215 +++++++++++++++++++++--------------------------------
 1 files changed, 85 insertions(+), 130 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index a0435bc..7ecb2b6 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'"
@@ -21,91 +21,34 @@
           >
             {{ GetTaskInfoQueryResultHireButtonText[detail.hireButton] }}
           </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
-            :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">{{ 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"
-          ></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 #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
@@ -120,11 +63,22 @@
         :isFlex="false"
         @click="handleCall"
       ></PageFooterAction>
-      <PageFooterBtn v-if="from === 'sign'" type="primary" disabled>
+      <PageFooterBtn
+        v-if="from === 'sign' && !!detail?.applyButton"
+        type="primary"
+        :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
+        @click="handleSign"
+      >
         {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
       </PageFooterBtn>
       <PageFooterBtn
-        v-if="from === 'hire'"
+        v-if="
+          from === 'hire' &&
+          !(
+            isContainCheckIn &&
+            detail?.hireButton === GetTaskInfoQueryResultHireButton.ApplyCheckReceive
+          )
+        "
         type="primary"
         :disabled="detail?.hireButton !== GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
         @click="handleHire"
@@ -154,29 +108,27 @@
 import * as taskServices from '@12333/services/apiV2/task';
 import * as taskUserServices from '@12333/services/apiV2/taskUser';
 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,
   GetPersonalHireTaskInfosQueryStatusColor,
   GetTaskInfoQueryResultHireButtonText,
   GetTaskInfoQueryResultHireButton,
+  GetTaskInfoQueryResultApplyButton,
+  EnumTaskCheckReceiveMethod,
 } from '@12333/constants';
 import { useAccessLogin } from '@/hooks';
+import { useTaskInfo } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
@@ -185,31 +137,12 @@
 /**
  * TODO 缂哄皯 鎶曡瘔涓炬姤鎺ュ彛
  */
-
+const { userDetail } = useUser();
 const router = Taro.useRouter();
 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();
 
@@ -222,23 +155,28 @@
 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 = useAccessLogin(async () => {
-  try {
-    let params: API.ApplyTaskCommand = {
-      ids: [id],
-    };
-    let res = await taskUserServices.applyTask(params);
-    if (res) {
-      Message.success('鎶ュ悕鎴愬姛');
-      refetch({ type: 'inactive' });
-    }
-  } catch (error) {}
-});
+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 handleAttention = useAccessLogin(async () => {
   try {
@@ -270,8 +208,25 @@
 });
 
 function handleHire() {
-Taro.navigateTo({
-  url: `${RouterPath.taskSubmitCheck}?id=${id}`,
-})
+  Taro.navigateTo({
+    url: `${RouterPath.taskSubmitCheck}?id=${id}`,
+  });
 }
+const handleSign = useAccessReal(() => {
+  Taro.navigateTo({
+    url: `${RouterPath.mineAgreementSignDetail}?id=${detail.value?.enterpriseEmployeeId}`,
+  });
+});
+
+function goMap() {
+  Taro.openLocation({
+    latitude: detail.value?.latitude,
+    longitude: detail.value?.longitude,
+    scale: 18,
+  });
+}
+
+Taro.useDidShow(() => {
+  refetch();
+});
 </script>

--
Gitblit v1.9.1