From bfb3b8ead34656a6160dd23aaa4648dfc63e282c Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 14 八月 2025 13:25:38 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue         |   45 ++++++++++++--
 packages/hooks/user.ts                                                            |   13 ++-
 apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue             |    9 +-
 packages/services/apiV2/taskUser.ts                                               |   18 ++++++
 apps/bMiniApp/project.config.json                                                 |    4 
 apps/bMiniApp/project.private.config.json                                         |    2 
 apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue       |    4 
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue |    3 
 apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue        |    2 
 apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue                |    1 
 packages/services/apiV2/index.ts                                                  |    4 
 packages/services/apiV2/typings.d.ts                                              |   29 +++++++++
 packages/components/src/Card/FlexJobCard.vue                                      |    2 
 apps/bMiniApp/src/pages/home/index.vue                                            |    2 
 packages/components/src/Card/JobApplicationCard.vue                               |    5 +
 15 files changed, 111 insertions(+), 32 deletions(-)

diff --git a/apps/bMiniApp/project.config.json b/apps/bMiniApp/project.config.json
index 7bc8fee..e4afad4 100644
--- a/apps/bMiniApp/project.config.json
+++ b/apps/bMiniApp/project.config.json
@@ -3,8 +3,8 @@
     "description": "",
     "setting": {
         "urlCheck": false,
-        "es6": true,
-        "enhance": true,
+        "es6": false,
+        "enhance": false,
         "postcss": false,
         "preloadBackgroundData": false,
         "minified": false,
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index d16cb0a..a315cda 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -11,7 +11,7 @@
                 {
                     "name": "鐏靛伐璇︽儏",
                     "pathName": "subpackages/flexJob/flexJobDetail/flexJobDetail",
-                    "query": "enterpriseEmployeeId=700a3a67-5da5-49d2-a65a-08ddd661238b",
+                    "query": "userId=700a3a67-5da5-49d2-a65a-08ddd661238b",
                     "launchMode": "default",
                     "scene": null
                 },
diff --git a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
index 5bf9aba..3b301d6 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -82,7 +82,6 @@
   taskCount?: number;
   contactPhoneNumber?: string;
   identity?: string;
-  userId?: string;
 
   userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
   freeTime?: API.EnumPersonalFreeTime;
diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
index 7946288..6b4a5f0 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -51,12 +51,12 @@
       <CellChunk title="璇︾粏淇℃伅">
         <CurriculumViewItem
           label="韬珮锛�"
-          :text="`${height} cm`"
+          :text="height && `${height} cm`"
           :label-width="labelWidth"
         ></CurriculumViewItem>
         <CurriculumViewItem
           label="浣撻噸锛�"
-          :text="`${weight} kg`"
+          :text="weight && `${weight} kg`"
           :label-width="labelWidth"
         ></CurriculumViewItem>
         <CurriculumViewItem label="涓汉鐓х墖锛�">
diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index af9b8e4..b348543 100644
--- a/apps/bMiniApp/src/pages/home/index.vue
+++ b/apps/bMiniApp/src/pages/home/index.vue
@@ -175,7 +175,7 @@
 
 function goFlexJobDetail(item: API.GetUserResumesQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`,
+    url: `${RouterPath.flexJobDetail}?userId=${item.id}`,
   });
 }
 
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
index 307de77..8596c2d 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -13,7 +13,6 @@
         :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
         :identity="userResumeInfo.identity"
         :isCollapse="isCollapse"
-        :userId="enterpriseEmployeeId"
         :userExpectJobs="userResumeInfo.userExpectJobs"
         :freeTime="userResumeInfo.freeTime"
         :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -62,10 +61,10 @@
 });
 
 const router = Taro.useRouter();
-const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
+const userId = router.params?.userId ?? '';
 
 const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
-  userId: enterpriseEmployeeId,
+  userId: userId,
 });
 
 const { isCollapse, toggle } = useToggle();
@@ -73,7 +72,7 @@
 const handleContact = useAccessLogin(async () => {
   try {
     if (!isCollapse.value) {
-      await userResumeServices.contactUserResume({ id: enterpriseEmployeeId });
+      await userResumeServices.contactUserResume({ id: userId });
       toggle();
     }
   } catch (error) {}
@@ -82,7 +81,7 @@
 async function handleAttention() {
   try {
     let params: API.CollectUserResumeCommand = {
-      id: enterpriseEmployeeId,
+      id: userId,
       isCollected: !userResumeInfo.value.isCollected,
     };
     let res = await userResumeServices.collectUserResume(params);
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
index 3275278..98269b8 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -11,7 +11,6 @@
       :taskCount="userResumeInfo.taskCount"
       :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
       :identity="userResumeInfo.identity"
-      :userId="enterpriseEmployeeId"
       :userExpectJobs="userResumeInfo.userExpectJobs"
       :freeTime="userResumeInfo.freeTime"
       :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -25,11 +24,29 @@
       :isCollapse="true"
     >
       <template #footer>
-        <PageFooterBtn type="primary" plain @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)"
-          >璋㈢粷</PageFooterBtn
+        <template v-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Wait">
+          <PageFooterBtn
+            type="primary"
+            plain
+            @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)"
+            >璋㈢粷</PageFooterBtn
+          >
+          <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)"
+            >褰曠敤</PageFooterBtn
+          >
+        </template>
+        <PageFooterBtn
+          v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Refuse"
+          type="primary"
+          plain
+          disabled
+          >宸茶阿缁�</PageFooterBtn
         >
-        <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)"
-          >褰曠敤</PageFooterBtn
+        <PageFooterBtn
+          v-else-if="taskUserHireStatusResult.hireStatus === EnumTaskUserHireStatus.Pass"
+          type="primary"
+          disabled
+          >宸插綍鐢�</PageFooterBtn
         >
       </template>
     </JobDetailContent>
@@ -51,9 +68,23 @@
 const router = Taro.useRouter();
 const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
 const id = router.params?.id ?? '';
+const taskInfoId = router.params?.taskInfoId ?? '';
 
 const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
-  userId: enterpriseEmployeeId,
+  enterpriseEmployeeId: enterpriseEmployeeId,
+});
+
+const { data: taskUserHireStatusResult, refetch: taskUserHireStatusRefetch } = useQuery({
+  queryKey: ['taskUserServices/getTaskUserHireStatus', taskInfoId, userResumeInfo.value.id],
+  queryFn: () => {
+    let params: API.APIgetTaskUserHireStatusParams = {
+      taskInfoId: taskInfoId,
+      userId: userResumeInfo.value.id,
+    };
+    return taskUserServices.getTaskUserHireStatus(params, { showLoading: false });
+  },
+  enabled: computed(() => !!userResumeInfo.value.id && !!taskInfoId),
+  placeholderData: () => ({} as API.GetTaskUserHireStatusQueryResult),
 });
 
 async function setTaskUserHire(hireStatus: EnumTaskUserHireStatus) {
@@ -65,7 +96,7 @@
     let res = await taskUserServices.setTaskUserHire(params);
     if (res) {
       Message.success('鎿嶄綔鎴愬姛');
-      refetch({
+      taskUserHireStatusRefetch({
         type: 'inactive',
       });
     }
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
index ebde239..b42f953 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -11,7 +11,6 @@
       :taskCount="userResumeInfo.taskCount"
       :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
       :identity="userResumeInfo.identity"
-      :userId="enterpriseEmployeeId"
       :userExpectJobs="userResumeInfo.userExpectJobs"
       :freeTime="userResumeInfo.freeTime"
       :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
@@ -45,7 +44,7 @@
 const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
 
 const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
-  userId: enterpriseEmployeeId,
+  enterpriseEmployeeId: enterpriseEmployeeId,
 });
 </script>
 
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
index 45182b1..db2d068 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -54,7 +54,7 @@
 
 function goToJobDetail(item: API.GetTaskUsersQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}`,
+    url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}&taskInfoId=${id}`,
   });
 }
 </script>
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index 2d5cbb8..bd54ca4 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -14,7 +14,7 @@
       {{ workExperience }}
     </div>
     <div class="flexJob-card-done-detail" v-if="showDoneDetail">
-      <div class="flexJob-card-done-detail-item">{{ workSeniority }}骞�</div>
+      <div class="flexJob-card-done-detail-item">{{ workSeniority && `${workSeniority}骞碻 }}</div>
       <!-- <div class="flexJob-card-done-detail-item">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div> -->
     </div>
     <div class="flexJob-card-footer">
diff --git a/packages/components/src/Card/JobApplicationCard.vue b/packages/components/src/Card/JobApplicationCard.vue
index f4cf8b8..4c75837 100644
--- a/packages/components/src/Card/JobApplicationCard.vue
+++ b/packages/components/src/Card/JobApplicationCard.vue
@@ -2,7 +2,7 @@
   <div class="job-application-card-wrapper">
     <div class="job-application-card-title-wrapper">
       <div class="job-application-card-title">{{ name }}</div>
-      <TaskPrice :value="serviceFee" :unit="unit" v-if="mode === 'taskManage'" />
+      <TaskPrice :value="toThousand(serviceFee ?? 0)" :unit="unit" v-if="mode === 'taskManage'" />
       <div v-else class="job-application-card-title-more" @click.stop="handleMore">
         <img :src="IconMore" class="more-btn-icon" />
       </div>
@@ -32,7 +32,7 @@
       </div>
       <slot name="footer-actions">
         <div class="job-application-card-fee">
-          <TaskPrice :value="serviceFee" :unit="unit" />
+          <TaskPrice :value="toThousand(serviceFee)" :unit="unit" />
         </div>
       </slot>
     </div>
@@ -48,6 +48,7 @@
 import { TaskPrice } from '@12333/components';
 import { EnumTaskStatus, EnumTaskReleaseStatus, EnumTaskReleaseStatusText } from '@12333/constants';
 import dayjs from 'dayjs';
+import { toThousand } from '@12333/utils';
 
 defineOptions({
   name: 'JobApplicationCard',
diff --git a/packages/hooks/user.ts b/packages/hooks/user.ts
index 476e815..190eaf1 100644
--- a/packages/hooks/user.ts
+++ b/packages/hooks/user.ts
@@ -3,22 +3,25 @@
 import { useQuery, useQueryClient } from '@tanstack/vue-query';
 
 type UseUserResumeOptions = {
-  userId: MaybeRef<string>;
+  userId?: MaybeRef<string>;
+  enterpriseEmployeeId?: MaybeRef<string>;
 };
 
-export function useUserResume({ userId }: UseUserResumeOptions) {
+export function useUserResume(options: UseUserResumeOptions = {}) {
+  const { userId, enterpriseEmployeeId } = options;
+
   const { data, refetch, isLoading, isError } = useQuery({
-    queryKey: ['userResumeServices/getUserResume', userId],
+    queryKey: ['userResumeServices/getUserResume', userId, enterpriseEmployeeId],
     queryFn: async () => {
       return await userResumeServices.getUserResume(
-        { userId: unref(userId) },
+        { userId: unref(userId), enterpriseEmployeeId: unref(enterpriseEmployeeId) },
         {
           showLoading: false,
         }
       );
     },
     placeholderData: () => ({} as API.GetUserResumeQueryResult),
-    enabled: computed(() => !!unref(userId)),
+    enabled: computed(() => !!unref(userId) || !!unref(enterpriseEmployeeId)),
   });
 
   return {
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index 2300abd..679903f 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -3,12 +3,12 @@
 // API 鏇存柊鏃堕棿锛�
 // API 鍞竴鏍囪瘑锛�
 import * as enterpriseEmployee from './enterpriseEmployee';
+import * as user from './user';
 import * as role from './role';
 import * as enterprise from './enterprise';
 import * as task from './task';
 import * as taskCheckReceive from './taskCheckReceive';
 import * as dictionary from './dictionary';
-import * as user from './user';
 import * as userResume from './userResume';
 import * as auth from './auth';
 import * as resource from './resource';
@@ -16,12 +16,12 @@
 import * as menu from './menu';
 export default {
   enterpriseEmployee,
+  user,
   role,
   enterprise,
   task,
   taskCheckReceive,
   dictionary,
-  user,
   userResume,
   auth,
   resource,
diff --git a/packages/services/apiV2/taskUser.ts b/packages/services/apiV2/taskUser.ts
index af03cc7..a23742d 100644
--- a/packages/services/apiV2/taskUser.ts
+++ b/packages/services/apiV2/taskUser.ts
@@ -41,6 +41,24 @@
   });
 }
 
+/** 鏌ヨ搴旇仒鎶ュ悕浜哄憳褰曠敤鐘舵�� GET /api/flexjob/taskUser/getTaskUserHireStatus */
+export async function getTaskUserHireStatus(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetTaskUserHireStatusParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetTaskUserHireStatusQueryResult>(
+    '/api/flexjob/taskUser/getTaskUserHireStatus',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
 /** B绔煡璇㈠簲鑱樻姤鍚嶅垎椤靛垪琛ㄤ俊鎭� POST /api/flexjob/taskUser/getTaskUsers */
 export async function getTaskUsers(body: API.GetTaskUsersQuery, options?: API.RequestConfig) {
   return request<API.GetTaskUsersQueryResult>('/api/flexjob/taskUser/getTaskUsers', {
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index a9b5c77..2fd750a 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -133,6 +133,13 @@
     id?: string;
   }
 
+  interface APIgetTaskUserHireStatusParams {
+    /** 浠诲姟Id */
+    taskInfoId?: string;
+    /** 鐢ㄦ埛Id锛圕绔敤鎴峰彲涓嶅~锛� */
+    userId?: string;
+  }
+
   interface APIgetUserInfoRolesParams {
     /** 鐢ㄦ埛Id */
     userInfoId?: string;
@@ -903,6 +910,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetTaskInfosQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetTaskUserHireStatusQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetTaskUserHireStatusQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -2584,6 +2609,10 @@
     stoppedReleaseCount?: number;
   }
 
+  interface GetTaskUserHireStatusQueryResult {
+    hireStatus?: EnumTaskUserHireStatus;
+  }
+
   interface GetTaskUsersQuery {
     /** 浠诲姟Id */
     id?: string;

--
Gitblit v1.9.1