From 4b5a4c322d5a777f2715e1574ab3ef7cbcf14d6d Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 13 八月 2025 18:46:01 +0800
Subject: [PATCH] fix: 验收管理

---
 apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue    |   30 +++++++++++++-
 packages/utils/common.ts                                              |    4 +
 apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue |   44 +++++++++++++++++----
 packages/services/apiV2/typings.d.ts                                  |   15 ++++++-
 apps/bMiniApp/src/pages/home/index.vue                                |    2 
 apps/bMiniApp/project.private.config.json                             |   14 +++---
 6 files changed, 86 insertions(+), 23 deletions(-)

diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index 57b2186..56374b3 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -9,6 +9,13 @@
         "miniprogram": {
             "list": [
                 {
+                    "name": "鐏靛伐璇︽儏",
+                    "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
+                    "query": "id=700a3a67-5da5-49d2-a65a-08ddd661238b",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
                     "name": "鐏靛伐绠$悊",
                     "pathName": "subpackages/flexJobManage/flexJobManage/flexJobManage",
                     "query": "",
@@ -61,13 +68,6 @@
                     "name": "楠屾敹绠$悊",
                     "pathName": "subpackages/task/taskCheck/taskCheck",
                     "query": "",
-                    "launchMode": "default",
-                    "scene": null
-                },
-                {
-                    "name": "鐏靛伐璇︽儏",
-                    "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
-                    "query": "id=c4cfe028-23e7-0be8-ee56-3a11e3743b9d",
                     "launchMode": "default",
                     "scene": null
                 },
diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
index 6552419..4fdb0ed 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -1,17 +1,28 @@
 <template>
   <ContentView style="background-color: transparent" class="job-detail-content">
-    <FlexJobTopView size="small" class="job-detail-content-top" />
+    <FlexJobTopView
+      :avatar="avatar"
+      :name="name"
+      :age="age"
+      :isReal="isReal"
+      :gender="gender"
+      :personalIdentityContent="personalIdentityContent"
+      :educationalBackgroundContent="educationalBackgroundContent"
+      :taskCount="taskCount"
+      size="small"
+      class="job-detail-content-top"
+    />
     <div class="job-detail-content-contact-info">
       <div class="job-detail-content-contact-info-item">
         <div class="job-detail-content-contact-info-item-label">鎵嬫満鍙凤細</div>
         <div class="job-detail-content-contact-info-item-text">
-          {{ isCollapse ? '13333333333' : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+          {{ isCollapse ? contactPhoneNumber : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
         </div>
       </div>
       <div class="job-detail-content-contact-info-item">
         <div class="job-detail-content-contact-info-item-label">韬唤璇佸彿锛�</div>
         <div class="job-detail-content-contact-info-item-text">
-          {{ isCollapse ? hiddenIDNumberForEnd6('330902199909123456') : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
+          {{ isCollapse ? hiddenIDNumberForEnd6(identity) : '绔嬪嵆鑱旂郴鍚庡彲鏌ョ湅' }}
         </div>
       </div>
     </div>
@@ -42,6 +53,7 @@
 import { hiddenIDNumberForEnd6 } from '@12333/utils';
 import curriculumView from './components/curriculumView.vue';
 import experienceView from './components/experienceView.vue';
+import { EnumUserGender } from '@12333/constants';
 
 defineOptions({
   name: 'JobDetailContent',
@@ -49,6 +61,18 @@
 
 type Props = {
   isCollapse: boolean;
+
+  avatar?: string;
+  name?: string;
+  gender?: EnumUserGender;
+  age?: number;
+  isReal?: boolean;
+  personalIdentityContent?: string;
+  educationalBackgroundContent?: string;
+  taskCount?: number;
+  contactPhoneNumber?: string;
+  identity?: string;
+  userId?: string;
 };
 
 const tab = ref('1');
diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index 6d98d86..8912acb 100644
--- a/apps/bMiniApp/src/pages/home/index.vue
+++ b/apps/bMiniApp/src/pages/home/index.vue
@@ -130,7 +130,7 @@
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+        orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
       },
       userExpectJobs: queryPositionState.userExpectJobs,
       gender: queryMenuState.genderLimit,
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
index ba4a7e5..4b3bde8 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -1,7 +1,20 @@
 <template>
   <PageLayoutWithBg class="flexJobDetail-page-wrapper" title="鐏靛伐璇︽儏" :need-auth="false">
     <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
-      <JobDetailContent :isCollapse="isCollapse">
+      <JobDetailContent
+        :avatar="userResumeInfo.avatar"
+        :name="userResumeInfo.name"
+        :age="userResumeInfo.age"
+        :isReal="userResumeInfo.isReal"
+        :gender="userResumeInfo.gender"
+        :personalIdentityContent="userResumeInfo.personalIdentityContent"
+        :educationalBackgroundContent="userResumeInfo.educationalBackgroundContent"
+        :taskCount="userResumeInfo.taskCount"
+        :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
+        :identity="userResumeInfo.identity"
+        :isCollapse="isCollapse"
+        :userId="userId"
+      >
         <template #footer>
           <PageFooterAction
             :icon="IconShare"
@@ -15,7 +28,7 @@
             :isFlex="false"
             @click="handleAttention"
           ></PageFooterAction>
-          <PageFooterBtn type="primary" @click="toggle">绔嬪嵆鑱旂郴</PageFooterBtn>
+          <PageFooterBtn type="primary" @click="handleContact">绔嬪嵆鑱旂郴</PageFooterBtn>
         </template>
       </JobDetailContent>
     </LoadingLayout>
@@ -25,31 +38,44 @@
 <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 userResumeServices from '@12333/services/apiV2/userResume';
 import IconShare from '@/assets/flexJob/icon-share.png';
 import IconAttention from '@/assets/flexJob/icon-attention-lg.png';
 import IconAttentionActive from '@/assets/flexJob/icon-attention-lg-active.png';
 import { useToggle } from 'senin-mini/hooks';
 import { Message } from '@12333/utils';
+import { useUserResume } from '@12333/hooks';
+import { useAccessLogin } from '@/hooks';
 
 defineOptions({
   name: 'flexJobDetail',
 });
 
 const router = Taro.useRouter();
-const taskId = router.params?.id ?? '';
+const userId = router.params?.id ?? '';
 
-const { isLoading, isError, data: detail, refetch } = useUserResume();
+const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
+  userId,
+});
 
 const { isCollapse, toggle } = useToggle();
 
+const handleContact = useAccessLogin(async () => {
+  try {
+    if (!isCollapse.value) {
+      await userResumeServices.contactUserResume({ id: userId });
+      toggle();
+    }
+  } catch (error) {}
+});
+
 async function handleAttention() {
   try {
-    let params: API.CollectFlexWorkerResumeInput = {
-      flexWorkerId: detail.value?.flexWorkerId,
-      userResumeId: detail.value?.userResumeId,
+    let params: API.CollectUserResumeCommand = {
+      id: userId,
+      // isCollected: userResumeInfo.value.i,
     };
-    let res = await flexWorkerServices.collectFlexWorkerResume(params);
+    let res = await userResumeServices.collectUserResume(params);
     if (res) {
       Message.success('鏀惰棌鎴愬姛');
     }
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index dfb52b9..db45e9b 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -1412,6 +1412,9 @@
   interface GetCheckReceiveTaskQuery {
     /** 浠诲姟Id */
     taskInfoId?: string;
+    checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    /** 鏃ユ湡锛圔绔皬绋嬪簭涓撶敤锛� */
+    date?: string;
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -1815,9 +1818,9 @@
     /** 鏄惁瀹炲悕 */
     isReal?: boolean;
     /** 鎴戠殑鏀惰棌 */
-    collectUsers?: number;
+    collectedUserCount?: number;
     /** 鑱旂郴璁板綍 */
-    contactRecords?: number;
+    contactedRecordCount?: number;
   }
 
   interface GetEnterpriseQueryResult {
@@ -2393,6 +2396,8 @@
     releaseStatus?: EnumTaskReleaseStatus;
     recommendStatus?: EnumTaskRecommendStatus;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
+    /** 鏄惁鏀惰棌 */
+    isCollected?: boolean;
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -2722,6 +2727,10 @@
     ageMax?: number;
     /** 璧勬牸璇佷功缂栧彿 */
     userCredentials?: string[];
+    /** 鏄惁宸叉敹钘� */
+    isCollected?: boolean;
+    /** 鏄惁宸茶仈绯� */
+    isContacted?: boolean;
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -2763,6 +2772,8 @@
     workSeniority?: string;
     /** 宸ヤ綔缁忛獙 */
     workExperience?: string;
+    /** 鍒涘缓鏃堕棿 */
+    createdTime?: string;
   }
 
   type GetUserResumeWorkExperienceQuery = Record<string, any>;
diff --git a/packages/utils/common.ts b/packages/utils/common.ts
index bd11db4..238407e 100644
--- a/packages/utils/common.ts
+++ b/packages/utils/common.ts
@@ -131,5 +131,7 @@
   return list.filter(Boolean).join(separator);
 }
 
-export const hiddenIDNumberForEnd6 = (realIDNumber: string) =>
+export const hiddenIDNumberForEnd6 = (realIDNumber: string) => {
+  if (!realIDNumber) return '';
   realIDNumber.replace(/^(\d+)(.{6})$/, '$1******');
+};

--
Gitblit v1.9.1