From 9c8b6d1cf6b43c6652b5183cd0183e8e257001f7 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 11 九月 2025 17:41:31 +0800
Subject: [PATCH] feat: 页面

---
 apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue |  125 ++++++++++++++++++++++++++---------------
 1 files changed, 79 insertions(+), 46 deletions(-)

diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index bc00fd5..4511852 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -4,10 +4,24 @@
       <Cell :title="detail?.name ?? ''" titleSize="large">
         <template #title-right>
           <img
+            v-if="from === 'apply'"
             :src="detail.isCollected ? IconAttentioActive : IconAttention"
             class="taskDetail-attention-icon"
             @click="handleAttention"
           />
+          <div
+            v-if="from === 'sign'"
+            :style="{ color: GetPersonalApplyTaskInfosQueryStatusColor[detail.applyButton] }"
+          >
+            {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
+          </div>
+          <div
+            v-if="from === 'hire'"
+            :style="{ color: GetPersonalHireTaskInfosQueryStatusColor[detail.hireButton] }"
+          >
+            {{ 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鏃�') }} 鑷�
@@ -27,7 +41,7 @@
             :unit="BillingMethodEnumUnit[detail.billingMethod]"
           />
         </div>
-        <div class="taskDetail-address-wrapper">
+        <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>
@@ -78,6 +92,7 @@
             @click="goCompanyDetail"
             :enterpriseName="detail?.enterpriseName ?? ''"
             :taskCount="detail?.taskCount ?? 0"
+            :isReal="detail?.isReal ?? false"
           ></CompanyDesc>
         </CellChunk>
       </Cell>
@@ -107,40 +122,28 @@
         :isFlex="false"
         @click="handleCall"
       ></PageFooterAction>
-      <template v-if="from === 'mine'">
-        <PageFooterBtn
-          v-if="detail.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
-          color="#999999"
-          disabled
-          >寰呯‘璁�</PageFooterBtn
-        >
-        <!-- <PageFooterBtn
-        v-if="detail.applyButton === GetTaskInfoQueryResultApplyButton.WaitSignContract"
-        >鍘荤绾�</PageFooterBtn
-      > -->
-        <PageFooterBtn
-          v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.InProcess"
-          color="#999999"
-          disabled
-          >杩涜涓�</PageFooterBtn
-        >
-        <!-- <PageFooterBtn
-        v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
-        >鐢宠楠屾敹</PageFooterBtn
-      > -->
-        <PageFooterBtn
-          v-if="detail.hireButton === GetTaskInfoQueryResultHireButton.Completed"
-          color="#999999"
-          disabled
-          >宸插畬鎴�</PageFooterBtn
-        >
-      </template>
-      <template v-else>
+      <PageFooterBtn
+        v-if="from === 'sign'"
+        type="primary"
+        :disabled="detail?.applyButton === GetTaskInfoQueryResultApplyButton.WaitHire"
+        @click="handleSign"
+      >
+        {{ GetTaskInfoQueryResultApplyButtonText[detail.applyButton] }}
+      </PageFooterBtn>
+      <PageFooterBtn
+        v-if="from === 'hire'"
+        type="primary"
+        :disabled="detail?.hireButton !== GetTaskInfoQueryResultHireButton.ApplyCheckReceive"
+        @click="handleHire"
+      >
+        {{ GetTaskInfoQueryResultHireButtonText[detail.hireButton] }}
+      </PageFooterBtn>
+      <template v-if="from === 'apply'">
         <PageFooterBtn
           v-if="detail?.releaseStatus === EnumTaskReleaseStatus.InProcess"
           type="primary"
           @click="handleApply"
-          :disabled="detail?.hireStatus"
+          :disabled="!!detail?.hireStatus"
           >{{ `鎶ュ悕锛�${detail?.applyCount ?? 0}浜哄凡鎶ュ悕锛塦 }}</PageFooterBtn
         >
 
@@ -157,6 +160,7 @@
 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 IconAttention from '@/assets/task/icon-attention.png';
@@ -174,9 +178,12 @@
   EnumSettlementCycleText,
   BillingMethodEnumUnit,
   EnumTaskReleaseStatus,
-  EnumTaskUserHireStatus,
-  GetTaskInfoQueryResultApplyButton,
+  GetPersonalApplyTaskInfosQueryStatusColor,
+  GetTaskInfoQueryResultApplyButtonText,
+  GetPersonalHireTaskInfosQueryStatusColor,
+  GetTaskInfoQueryResultHireButtonText,
   GetTaskInfoQueryResultHireButton,
+  GetTaskInfoQueryResultApplyButton,
 } from '@12333/constants';
 import { useAccessLogin } from '@/hooks';
 
@@ -187,7 +194,7 @@
 /**
  * TODO 缂哄皯 鎶曡瘔涓炬姤鎺ュ彛
  */
-
+const { userDetail } = useUser();
 const router = Taro.useRouter();
 const id = router.params?.id ?? '';
 const from = router.params?.from ?? '';
@@ -229,18 +236,21 @@
   }
 });
 
-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,4 +280,27 @@
     });
   }
 });
+
+function handleHire() {
+  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