From 9c2cb0c24dabf68ca5f4703340ed2b1f13ddf969 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 13 八月 2025 19:37:15 +0800
Subject: [PATCH] fix: 灵工管理

---
 apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue         |   60 ++++++----
 apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue             |   30 +++--
 apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue                       |   11 +
 packages/services/apiV2/enterpriseEmployee.ts                                     |   30 +++++
 apps/bMiniApp/project.private.config.json                                         |    2 
 apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue       |   81 ++++++++----
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue |   47 ++++---
 apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue        |    6 
 apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue                |   26 ++++
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue           |    2 
 packages/services/apiV2/typings.d.ts                                              |   25 ++++
 apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue       |   31 ++++-
 packages/components/src/Card/FlexJobCard.vue                                      |    4 
 apps/bMiniApp/src/pages/home/index.vue                                            |    2 
 14 files changed, 253 insertions(+), 104 deletions(-)

diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index 56374b3..0251a20 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": "id=700a3a67-5da5-49d2-a65a-08ddd661238b",
+                    "query": "enterpriseEmployeeId=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 4fdb0ed..5bf9aba 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/JobDetailContent.vue
@@ -37,7 +37,17 @@
     fullHeight
   >
     <ProTabPane :title="`绠�鍘哷" pane-key="1">
-      <curriculumView />
+      <curriculumView
+        :userExpectJobs="userExpectJobs"
+        :freeTime="freeTime"
+        :jobSeekingStatus="jobSeekingStatus"
+        :userCredentials="userCredentials"
+        :workSeniority="workSeniority"
+        :workExperience="workExperience"
+        :photos="photos"
+        :height="height"
+        :weight="weight"
+      />
     </ProTabPane>
     <ProTabPane :title="`缁忓巻`" pane-key="2">
       <experienceView />
@@ -73,6 +83,20 @@
   contactPhoneNumber?: string;
   identity?: string;
   userId?: string;
+
+  userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
+  freeTime?: API.EnumPersonalFreeTime;
+  jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
+  userCredentials?: API.GetUserResumeQueryResultCredential[];
+  workSeniority?: string;
+  workExperience?: string;
+  photos?: string[];
+  /** 韬珮 */
+  height?: number;
+  /** 浣撻噸 */
+  weight?: number;
+
+  taskInfoUsers?: API.GetUserResumeQueryResultExperience[];
 };
 
 const tab = ref('1');
diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
index b06b8f9..7946288 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/curriculumView.vue
@@ -5,18 +5,22 @@
         <div class="curriculum-list">
           <CurriculumViewItem label="鏈熸湜宀椾綅锛�">
             <div class="curriculum-position-list">
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
-              <div class="curriculum-position-list-item">瀹㈡埧鏈嶅姟鍛�</div>
+              <div
+                v-for="userExpectJob in userExpectJobs"
+                :key="userExpectJob.expectJobCode"
+                class="curriculum-position-list-item"
+              >
+                {{ userExpectJob.expectJobContent }}
+              </div>
             </div>
           </CurriculumViewItem>
-          <CurriculumViewItem label="绌洪棽鏃堕棿锛�" text="涓嶉檺"> </CurriculumViewItem>
-          <CurriculumViewItem label="姹傝亴鐘舵�侊細" text="绉瀬鎵惧伐浣�"> </CurriculumViewItem>
+          <CurriculumViewItem label="绌洪棽鏃堕棿锛�" :text="EnumPersonalFreeTimeText[freeTime]">
+          </CurriculumViewItem>
+          <CurriculumViewItem
+            label="姹傝亴鐘舵�侊細"
+            :text="EnumPersonalJobSeekingStatusText[jobSeekingStatus]"
+          >
+          </CurriculumViewItem>
         </div>
       </CellChunk>
       <CellChunk title="璧勬牸璇佷功">
@@ -25,31 +29,34 @@
           :column-num="3"
           :border="false"
           :gutter="20"
-          v-if="list.length > 0"
+          v-if="_userCredentials.length > 0"
           class="pro-img-grid"
         >
-          <nut-grid-item v-for="(item, index) in list" :key="item" class="pro-img-grid-item">
+          <nut-grid-item
+            v-for="(item, index) in _userCredentials"
+            :key="item"
+            class="pro-img-grid-item"
+          >
             <div class="pro-img-grid-img-item">
-              <PreviewImage :src="item" class="pro-img-grid-img" :urls="list" />
+              <PreviewImage :src="item" class="pro-img-grid-img" :urls="_userCredentials" />
             </div>
           </nut-grid-item>
         </nut-grid>
       </CellChunk>
       <CellChunk title="宸ヤ綔缁忛獙">
-        <CurriculumViewItem label="宸ヤ綔骞撮檺锛�" text="鏃犲伐浣滅粡楠岋紝鐢ㄦ埛鑷繁濉啓">
+        <CurriculumViewItem label="宸ヤ綔骞撮檺锛�" :text="workSeniority ? `${workSeniority}骞碻 : ''">
         </CurriculumViewItem>
-        <CurriculumViewItem label="宸ヤ綔缁忛獙锛�" text="瀹㈡埧鏈嶅姟鍛橈紝鐢ㄦ埛鑷繁濉啓">
-        </CurriculumViewItem>
+        <CurriculumViewItem label="宸ヤ綔缁忛獙锛�" :text="workExperience"> </CurriculumViewItem>
       </CellChunk>
       <CellChunk title="璇︾粏淇℃伅">
         <CurriculumViewItem
           label="韬珮锛�"
-          text="175 cm"
+          :text="`${height} cm`"
           :label-width="labelWidth"
         ></CurriculumViewItem>
         <CurriculumViewItem
           label="浣撻噸锛�"
-          text="80 kg"
+          :text="`${weight} kg`"
           :label-width="labelWidth"
         ></CurriculumViewItem>
         <CurriculumViewItem label="涓汉鐓х墖锛�">
@@ -58,12 +65,12 @@
             :column-num="2"
             :border="false"
             :gutter="20"
-            v-if="list.length > 0"
+            v-if="_photos.length > 0"
             class="pro-img-grid"
           >
-            <nut-grid-item v-for="(item, index) in list" :key="item" class="pro-img-grid-item">
+            <nut-grid-item v-for="(item, index) in _photos" :key="item" class="pro-img-grid-item">
               <div class="pro-img-grid-img-item">
-                <PreviewImage :src="item" class="pro-img-grid-img" :urls="list" />
+                <PreviewImage :src="item" class="pro-img-grid-img" :urls="_photos" />
               </div>
             </nut-grid-item>
           </nut-grid>
@@ -77,19 +84,37 @@
 import CurriculumViewItem from './CurriculumViewItem.vue';
 import { PreviewImage } from '@12333/components';
 import Taro from '@tarojs/taro';
+import { EnumPersonalFreeTimeText, EnumPersonalJobSeekingStatusText } from '@12333/constants';
+import { setOSSLink } from '@12333/utils';
 
 defineOptions({
   name: 'curriculumView',
 });
 
-const labelWidth = Taro.pxTransform(120);
+type Props = {
+  userExpectJobs?: API.GetUserResumeQueryResultExpectJob[];
+  freeTime?: API.EnumPersonalFreeTime;
+  jobSeekingStatus?: API.EnumPersonalJobSeekingStatus;
+  userCredentials?: API.GetUserResumeQueryResultCredential[];
+  workSeniority?: string;
+  workExperience?: string;
+  photos?: string[];
+  /** 韬珮 */
+  height?: number;
+  /** 浣撻噸 */
+  weight?: number;
+};
 
-const list = ref([
-  'https://storage.360buyimg.com/jdc-article/NutUItaro34.jpg',
-  'https://storage.360buyimg.com/jdc-article/NutUItaro2.jpg',
-  'https://storage.360buyimg.com/jdc-article/welcomenutui.jpg',
-  'https://storage.360buyimg.com/jdc-article/fristfabu.jpg',
-]);
+const props = withDefaults(defineProps<Props>(), {
+  userExpectJobs: () => [],
+  userCredentials: () => [],
+  photos: () => [],
+});
+
+const _userCredentials = computed(() => props.userCredentials.map((x) => setOSSLink(x.img)));
+const _photos = computed(() => props.photos.map((x) => setOSSLink(x)));
+
+const labelWidth = Taro.pxTransform(120);
 </script>
 
 <style lang="scss">
diff --git a/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
index 6cd3d6e..b901e3c 100644
--- a/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
+++ b/apps/bMiniApp/src/components/JobDetailContent/components/experienceView.vue
@@ -1,24 +1,43 @@
 <template>
   <ContentScrollView>
     <Cell title="宀椾綅缁忓巻">
-      <nut-steps direction="vertical" progress-dot :current="3" class="job-detail-content-steps">
-        <nut-step title="2024.12.24" content="鎮ㄧ殑璁㈠崟宸茬粡鎵撳寘瀹屾垚锛屽晢鍝佸凡鍙戝嚭"></nut-step>
-        <nut-step title="2024.12.24" content="鎮ㄧ殑璁㈠崟姝e湪閰嶉�侀�斾腑"></nut-step>
-        <nut-step title="2024.12.24">
+      <nut-steps
+        v-if="taskInfoUsers.length > 0"
+        direction="vertical"
+        progress-dot
+        :current="3"
+        class="job-detail-content-steps"
+      >
+        <nut-step
+          v-for="(taskInfoUser, index) in taskInfoUsers"
+          :key="index"
+          :title="taskInfoUser.signContractTime"
+        >
           <template #content>
-            <p>鏀惰揣鍦板潃涓猴細</p>
-            <p>鍖椾含甯傜粡娴庢妧鏈紑鍙戝尯绉戝垱鍗佷竴琛�18鍙烽櫌浜笢澶у帵</p>
+            <p>鍦▄{ taskInfoUser.enterpriseName }}锛�</p>
+            <p>鍋氳繃{{ taskInfoUser.name }}</p>
           </template>
         </nut-step>
       </nut-steps>
+      <NoData v-else />
     </Cell>
   </ContentScrollView>
 </template>
 
 <script setup lang="ts">
+import NoData from '../../NoData/NoData.vue';
+
 defineOptions({
   name: 'experienceView',
 });
+
+type Props = {
+  taskInfoUsers?: API.GetUserResumeQueryResultExperience[];
+};
+
+const props = withDefaults(defineProps<Props>(), {
+  taskInfoUsers: () => [],
+});
 </script>
 
 <style lang="scss">
diff --git a/apps/bMiniApp/src/pages/home/index.vue b/apps/bMiniApp/src/pages/home/index.vue
index 8912acb..af9b8e4 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}?id=${item.id}`,
+    url: `${RouterPath.flexJobDetail}?enterpriseEmployeeId=${item.id}`,
   });
 }
 
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
index 4b3bde8..307de77 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetail/flexJobDetail.vue
@@ -13,7 +13,17 @@
         :contactPhoneNumber="userResumeInfo.contactPhoneNumber"
         :identity="userResumeInfo.identity"
         :isCollapse="isCollapse"
-        :userId="userId"
+        :userId="enterpriseEmployeeId"
+        :userExpectJobs="userResumeInfo.userExpectJobs"
+        :freeTime="userResumeInfo.freeTime"
+        :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
+        :userCredentials="userResumeInfo.userCredentials"
+        :workSeniority="userResumeInfo.workSeniority"
+        :workExperience="userResumeInfo.workExperience"
+        :photos="userResumeInfo.photos"
+        :height="userResumeInfo.height"
+        :weight="userResumeInfo.weight"
+        :taskInfoUsers="userResumeInfo.taskInfoUsers"
       >
         <template #footer>
           <PageFooterAction
@@ -23,7 +33,7 @@
             openType="share"
           ></PageFooterAction>
           <PageFooterAction
-            :icon="IconAttentionActive"
+            :icon="userResumeInfo.isCollected ? IconAttentionActive : IconAttention"
             text="鏀惰棌"
             :isFlex="false"
             @click="handleAttention"
@@ -52,10 +62,10 @@
 });
 
 const router = Taro.useRouter();
-const userId = router.params?.id ?? '';
+const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
 
 const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
-  userId,
+  userId: enterpriseEmployeeId,
 });
 
 const { isCollapse, toggle } = useToggle();
@@ -63,7 +73,7 @@
 const handleContact = useAccessLogin(async () => {
   try {
     if (!isCollapse.value) {
-      await userResumeServices.contactUserResume({ id: userId });
+      await userResumeServices.contactUserResume({ id: enterpriseEmployeeId });
       toggle();
     }
   } catch (error) {}
@@ -72,17 +82,13 @@
 async function handleAttention() {
   try {
     let params: API.CollectUserResumeCommand = {
-      id: userId,
-      // isCollected: userResumeInfo.value.i,
+      id: enterpriseEmployeeId,
+      isCollected: !userResumeInfo.value.isCollected,
     };
     let res = await userResumeServices.collectUserResume(params);
     if (res) {
-      Message.success('鏀惰棌鎴愬姛');
+      refetch({ type: 'inactive' });
     }
   } catch (error) {}
 }
 </script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
diff --git a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
index b239454..3275278 100644
--- a/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJob/flexJobDetailFromTask/InnerPage.vue
@@ -1,9 +1,36 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
-    <JobDetailContent :isCollapse="true">
+    <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"
+      :userId="enterpriseEmployeeId"
+      :userExpectJobs="userResumeInfo.userExpectJobs"
+      :freeTime="userResumeInfo.freeTime"
+      :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
+      :userCredentials="userResumeInfo.userCredentials"
+      :workSeniority="userResumeInfo.workSeniority"
+      :workExperience="userResumeInfo.workExperience"
+      :photos="userResumeInfo.photos"
+      :height="userResumeInfo.height"
+      :weight="userResumeInfo.weight"
+      :taskInfoUsers="userResumeInfo.taskInfoUsers"
+      :isCollapse="true"
+    >
       <template #footer>
-        <PageFooterBtn type="primary" plain @click="taskWorkerHireRefuse(10)">璋㈢粷</PageFooterBtn>
-        <PageFooterBtn type="primary" @click="taskWorkerHireRefuse(20)">褰曠敤</PageFooterBtn>
+        <PageFooterBtn type="primary" plain @click="setTaskUserHire(EnumTaskUserHireStatus.Refuse)"
+          >璋㈢粷</PageFooterBtn
+        >
+        <PageFooterBtn type="primary" @click="setTaskUserHire(EnumTaskUserHireStatus.Pass)"
+          >褰曠敤</PageFooterBtn
+        >
       </template>
     </JobDetailContent>
   </LoadingLayout>
@@ -14,33 +41,22 @@
 import { useQuery } from '@tanstack/vue-query';
 import * as taskUserServices from '@12333/services/apiV2/taskUser';
 import { Message } from '@12333/utils';
+import { useUserResume } from '@12333/hooks';
+import { EnumTaskUserHireStatus } from '@12333/constants';
 
 defineOptions({
   name: 'InnerPage',
 });
 
 const router = Taro.useRouter();
+const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
 const id = router.params?.id ?? '';
 
-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),
+const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
+  userId: enterpriseEmployeeId,
 });
 
-async function taskWorkerHireRefuse(hireStatus: FlexTaskWorkerHireEnum) {
+async function setTaskUserHire(hireStatus: EnumTaskUserHireStatus) {
   try {
     let params: API.SetTaskUserHireCommand = {
       id: id,
@@ -56,7 +72,3 @@
   } catch (error) {}
 }
 </script>
-
-<style lang="scss">
-@import '@/styles/common.scss';
-</style>
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
index f1ba77d..ebde239 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobDetailFromManage/InnerPage.vue
@@ -1,6 +1,29 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
-    <JobDetailContent :isCollapse="true">
+    <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"
+      :userId="enterpriseEmployeeId"
+      :userExpectJobs="userResumeInfo.userExpectJobs"
+      :freeTime="userResumeInfo.freeTime"
+      :jobSeekingStatus="userResumeInfo.jobSeekingStatus"
+      :userCredentials="userResumeInfo.userCredentials"
+      :workSeniority="userResumeInfo.workSeniority"
+      :workExperience="userResumeInfo.workExperience"
+      :photos="userResumeInfo.photos"
+      :height="userResumeInfo.height"
+      :weight="userResumeInfo.weight"
+      :taskInfoUsers="userResumeInfo.taskInfoUsers"
+      :isCollapse="true"
+    >
       <!-- <template #footer>
         <PageFooterBtn type="primary" plain>瑙g害</PageFooterBtn>
         <PageFooterBtn type="primary">绛剧害</PageFooterBtn>
@@ -12,31 +35,17 @@
 <script setup lang="ts">
 import Taro from '@tarojs/taro';
 import { useQuery } from '@tanstack/vue-query';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { useUserResume } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
 });
 
 const router = Taro.useRouter();
-const taskId = router.params?.id ?? '';
+const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
 
-const {
-  isLoading,
-  isError,
-  data: detail,
-  refetch,
-} = useQuery({
-  queryKey: ['flexWorkerServices/getOrdeForDetail', taskId],
-  queryFn: async () => {
-    return await flexWorkerServices.getOrdeForDetail(
-      { id: taskId },
-      {
-        showLoading: false,
-      }
-    );
-  },
-  placeholderData: () => ({} as API.OrderInfoDto),
+const { isLoading, isError, userResumeInfo, refetch } = useUserResume({
+  userId: enterpriseEmployeeId,
 });
 </script>
 
diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
index 15b3dfa..c47dcb3 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -102,7 +102,7 @@
 
 function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetailFromManage}?userId=${item.id}`,
+    url: `${RouterPath.flexJobDetailFromManage}?enterpriseEmployeeId=${item.id}`,
   });
 }
 
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
index 557ab87..45182b1 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -22,7 +22,7 @@
           </div>
         </template>
         <template #footerRight>
-          <nut-button type="primary" @click="goToJobDetail(item.id)">鏌ョ湅璇︽儏</nut-button>
+          <nut-button type="primary" @click="goToJobDetail(item)">鏌ョ湅璇︽儏</nut-button>
         </template>
       </FlexJobCard>
     </template>
@@ -52,9 +52,9 @@
   id: id,
 });
 
-function goToJobDetail(id: string) {
+function goToJobDetail(item: API.GetTaskUsersQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetailFromTask}?id=${id}`,
+    url: `${RouterPath.flexJobDetailFromTask}?enterpriseEmployeeId=${item.enterpriseEmployeeId}&id=${item.id}`,
   });
 }
 </script>
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index 3a2e09d..0dcd380 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -78,11 +78,12 @@
   return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0;
 });
 
-function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
-  Taro.navigateTo({
-    url: `${RouterPath.flexJobDetail}?taskId=${item.id}`,
-  });
-}
+//鏈夐棶棰�
+// function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
+//   Taro.navigateTo({
+//     url: `${RouterPath.taskManage}?taskId=${item.id}`,
+//   });
+// }
 
 function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: EnumTaskUserArrangeStatus) {
   Taro.navigateTo({
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index 36fca70..2d5cbb8 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -14,9 +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 }}骞�</div>
       <!-- <div class="flexJob-card-done-detail-item">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div> -->
     </div>
     <div class="flexJob-card-footer">
diff --git a/packages/services/apiV2/enterpriseEmployee.ts b/packages/services/apiV2/enterpriseEmployee.ts
index 1c915b2..cb2c49a 100644
--- a/packages/services/apiV2/enterpriseEmployee.ts
+++ b/packages/services/apiV2/enterpriseEmployee.ts
@@ -2,6 +2,21 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 缂栬緫鐏靛伐淇℃伅 POST /api/user/enterpriseEmployee/editEnterpriseEmployee */
+export async function editEnterpriseEmployee(
+  body: API.EditEnterpriseEmployeeCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/enterpriseEmployee/editEnterpriseEmployee', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨ鐏靛伐璇︽儏 GET /api/user/enterpriseEmployee/getEnterpriseEmployee */
 export async function getEnterpriseEmployee(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -37,3 +52,18 @@
     }
   );
 }
+
+/** 瀵煎叆鐏靛伐淇℃伅 POST /api/user/enterpriseEmployee/importEnterpriseEmployees */
+export async function importEnterpriseEmployees(
+  body: API.ImportEnterpriseEmployeesCommand,
+  options?: API.RequestConfig
+) {
+  return request<number>('/api/user/enterpriseEmployee/importEnterpriseEmployees', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index db45e9b..923570c 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -243,6 +243,24 @@
     ids: string[];
   }
 
+  interface EditEnterpriseEmployeeCommand {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    gender?: EnumUserGender;
+    /** 骞撮緞 */
+    age?: number;
+    /** 韬唤璇佷汉鍍忛潰 */
+    identityImg?: string;
+    /** 韬唤璇佸浗寰介潰 */
+    identityBackImg?: string;
+  }
+
   enum EnumBillingMethod {
     /**鎸夋湀 */
     Month = 10,
@@ -2672,6 +2690,8 @@
     photos?: string[];
     /** 缁忓巻 */
     taskInfoUsers?: GetUserResumeQueryResultExperience[];
+    /** 鏄惁宸叉敹钘� */
+    isCollected?: boolean;
   }
 
   interface GetUserResumeQueryResultCredential {
@@ -2785,6 +2805,11 @@
     workExperience?: string;
   }
 
+  interface ImportEnterpriseEmployeesCommand {
+    /** Excel鍦板潃 */
+    excelUrl?: string;
+  }
+
   interface LoginCommandCallback {
     /** 鐢ㄦ埛Id */
     id?: string;

--
Gitblit v1.9.1