From 7af4ab328e56300f7dca75de6c532d16464d2f10 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 12 八月 2025 16:30:35 +0800
Subject: [PATCH] feat: mine

---
 apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue       |   30 +-
 packages/constants/task.ts                                                            |   29 ++
 apps/cMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue                           |   27 +
 apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue                             |   63 +++-
 packages/services/apiV2/taskUser.ts                                                   |   32 ++
 apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue                             |   67 +++-
 apps/bMiniApp/project.private.config.json                                             |    7 
 apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue            |   44 +--
 packages/hooks/taskUser.ts                                                            |   39 +++
 packages/hooks/index.ts                                                               |    1 
 packages/components/src/Card/FlexJobTopView.vue                                       |   27 +
 apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue               |    2 
 packages/services/apiV2/task.ts                                                       |   54 ++++
 packages/services/apiV2/typings.d.ts                                                  |  248 ++++++++++++++++++
 apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue |    4 
 packages/components/src/Card/FlexJobCard.vue                                          |   27 +
 apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue           |    6 
 packages/constants/apiEnum.ts                                                         |   26 +
 18 files changed, 599 insertions(+), 134 deletions(-)

diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index c3f7281..08d5725 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -91,6 +91,13 @@
                     "query": "",
                     "launchMode": "default",
                     "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "subpackages/jobApplicationManage/jobApplicationDetail/jobApplicationDetail",
+                    "query": "id=04c75425-e783-4dbf-0f16-08ddd626b756",
+                    "launchMode": "default",
+                    "scene": null
                 }
             ]
         }
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
index e10ac35..307e0d0 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/JobDetail.vue
@@ -67,7 +67,7 @@
 // const props = withDefaults(defineProps<Props>(), {});
 const router = Taro.useRouter();
 
-const taskId = router.params?.taskId;
+const id = router.params?.id;
 
 const {
   isLoading,
@@ -75,10 +75,10 @@
   data: detail,
   refetch,
 } = useQuery({
-  queryKey: ['taskServices/getTaskInfo', taskId],
+  queryKey: ['taskServices/getTaskInfo', id],
   queryFn: async () => {
     return await taskServices.getTaskInfo(
-      { id: taskId },
+      { id: id },
       {
         showLoading: false,
       }
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
index 0bd03d2..adc2bdc 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/components/SignList.vue
@@ -4,14 +4,22 @@
       <FlexJobCard
         :name="item.name"
         :age="item.age"
-        :genderType="item.genderType"
+        :gender="item.gender"
+        :avatar="item.avatar"
+        :isReal="item.isReal"
+        :personalIdentityContent="item.personalIdentityContent"
+        :educationalBackgroundContent="item.educationalBackgroundContent"
+        :taskCount="item.taskCount"
+        :workSeniority="item.workSeniority"
         :workExperience="item.workExperience"
       >
         <template #footerLeft>
-          <div class="flexJob-card-footer-text">{{ FlexTaskWorkerHireEnum[item.hireStatus] }}</div>
+          <div class="flexJob-card-footer-text">
+            {{ EnumTaskUserHireStatusText[item.hireStatus] }}
+          </div>
         </template>
         <template #footerRight>
-          <nut-button type="primary" @click="goToJobDetail(item.userId)">鏌ョ湅璇︽儏</nut-button>
+          <nut-button type="primary" @click="goToJobDetail(item.id)">鏌ョ湅璇︽儏</nut-button>
         </template>
       </FlexJobCard>
     </template>
@@ -19,11 +27,9 @@
 </template>
 
 <script setup lang="ts">
-import { OrderInputType } from '@12333/constants';
+import { EnumTaskUserHireStatusText } from '@12333/constants';
 import { RouterPath } from '@/constants';
-import { FlexTaskWorkerHireEnum } from '@12333/constants/task';
-import { useInfiniteLoading } from '@12333/hooks';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { useTaskUserList } from '@12333/hooks';
 import { FlexJobCard } from '@12333/components';
 import Taro from '@tarojs/taro';
 
@@ -36,27 +42,11 @@
 // const props = withDefaults(defineProps<Props>(), {});
 
 const router = Taro.useRouter();
-const taskId = router.params?.taskId ?? '';
+const id = router.params?.id ?? '';
 
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetFlexTaskWorkerApplyListInput = {
-      flexTaskId: taskId,
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
-      },
-    };
-
-    return flexWorkerServices.getFlexTaskWorkerApplyList(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['flexWorkerServices/getFlexTaskWorkerApplyList'],
-  }
-);
+const { infiniteLoadingProps } = useTaskUserList({
+  id: id,
+});
 
 function goToJobDetail(id: string) {
   Taro.navigateTo({
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
index d2afb15..170b4a4 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
@@ -107,12 +107,12 @@
 
 function goEdit(item: API.GetTaskInfosQueryResultItem, isCopy = false) {
   Taro.navigateTo({
-    url: `${RouterPath.publishTask}?taskId=${item.id}&isCopy=${isCopy}`,
+    url: `${RouterPath.publishTask}?id=${item.id}&isCopy=${isCopy}`,
   });
 }
 function goDetail(item: API.GetTaskInfosQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.jobApplicationDetail}?taskId=${item.id}`,
+    url: `${RouterPath.jobApplicationDetail}?id=${item.id}`,
   });
 }
 </script>
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
index 6aaee7d..87a0c9d 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineCertificateAddOrEdit/InnerPage.vue
@@ -18,18 +18,20 @@
       >
         <nut-switch v-model="form.isForever" />
       </nut-form-item>
-      <nut-form-item label="寮�濮嬫棩鏈�:" class="bole-form-item" prop="startDate">
-        <ChooseInputWithDatePicker
-          v-model="form.startDate"
-          placeholder="璇烽�夋嫨寮�濮嬫棩鏈�"
-        ></ChooseInputWithDatePicker>
-      </nut-form-item>
-      <nut-form-item label="缁撴潫鏃ユ湡:" class="bole-form-item" prop="endDate">
-        <ChooseInputWithDatePicker
-          v-model="form.endDate"
-          placeholder="璇烽�夋嫨缁撴潫鏃ユ湡"
-        ></ChooseInputWithDatePicker>
-      </nut-form-item>
+      <template v-if="!form.isForever">
+        <nut-form-item label="寮�濮嬫棩鏈�:" class="bole-form-item" prop="startDate">
+          <ChooseInputWithDatePicker
+            v-model="form.startDate"
+            placeholder="璇烽�夋嫨寮�濮嬫棩鏈�"
+          ></ChooseInputWithDatePicker>
+        </nut-form-item>
+        <nut-form-item label="缁撴潫鏃ユ湡:" class="bole-form-item" prop="endDate">
+          <ChooseInputWithDatePicker
+            v-model="form.endDate"
+            placeholder="璇烽�夋嫨缁撴潫鏃ユ湡"
+          ></ChooseInputWithDatePicker>
+        </nut-form-item>
+      </template>
       <nut-form-item label="鍙戣瘉鍗曚綅:" class="bole-form-item" prop="issueUnit">
         <nut-input v-model="form.issueUnit" placeholder="璇疯緭鍏�"> </nut-input>
       </nut-form-item>
@@ -159,8 +161,8 @@
       typeCode: form.typeCode,
       code: form.code,
       isForever: form.isForever,
-      startDate: dayjs(form.startDate).format('YYYY-MM-DD 00:00:00'),
-      endDate: dayjs(form.endDate).format('YYYY-MM-DD 23:59:59'),
+      startDate: form.isForever ? '' : dayjs(form.startDate).format('YYYY-MM-DD 00:00:00'),
+      endDate: form.isForever ? '' : dayjs(form.endDate).format('YYYY-MM-DD 23:59:59'),
       issueUnit: form.issueUnit,
       img: form.img?.[0]?.path,
       backImg: form.backImg?.[0]?.path,
diff --git a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
index 07085f8..e4d1581 100644
--- a/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/curriculum/mineDetailedInfo/InnerPage.vue
@@ -73,7 +73,7 @@
   try {
     let params: API.SaveUserResumeDetailCommand = {
       weight: form.weight,
-      height: form.weight,
+      height: form.height,
       photos: form.photos?.length ? form.photos.map((x) => x.path) : [],
     };
     let res = await userResumeServices.saveUserResumeDetail(params);
diff --git a/apps/cMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue
index 6853486..122a79d 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineCancel/InnerPage.vue
@@ -4,7 +4,16 @@
     v-bind="infiniteLoadingProps"
   >
     <template #renderItem="{ item }">
-      <TaskCard>
+      <TaskCard
+        :name="item.name"
+        :begin-time="item.beginTime"
+        :end-time="item.endTime"
+        :billing-method="item.billingMethod"
+        :benefits="item.benefits"
+        :service-fee="item.serviceFee"
+        :settlement-cycle="item.settlementCycle"
+        :address-name="item.addressName"
+      >
         <template #actions>
           <div class="task-card-actions-text">{{ '宸插彇娑�' }}</div>
         </template>
@@ -15,33 +24,29 @@
 
 <script setup lang="ts">
 import { TaskCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
 import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { EnumPagedListOrder } from '@12333/constants';
+import * as taskServices from '@12333/services/apiV2/task';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const userStore = useUserStore();
-
 const { infiniteLoadingProps } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
+    let params: API.GetPersonalCancelTaskInfosQuery = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
     };
-
-    return flexWorkerServices.getFlexTaskByArrange(params, {
+    return taskServices.getPersonalCancelTaskInfos(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['flexWorkerServices/getFlexTaskByArrange'],
+    queryKey: ['taskServices/getPersonalCancelTaskInfos'],
   }
 );
 </script>
diff --git a/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
index 15ab8a5..69b284a 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.mineHireType"
+    v-model="queryState.status"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -9,20 +9,38 @@
     title-scroll
   >
     <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
-    <ProTabPane :title="`杩涜涓璥" :pane-key="10"></ProTabPane>
-    <ProTabPane :title="`寰呴獙鏀禶" :pane-key="20"></ProTabPane>
-    <ProTabPane :title="`宸插畬鎴恅" :pane-key="30"></ProTabPane>
+    <ProTabPane
+      :title="`杩涜涓璥"
+      :pane-key="GetPersonalHireTaskInfosQueryStatus.InProcess"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`宸插畬鎴恅"
+      :pane-key="GetPersonalHireTaskInfosQueryStatus.Completed"
+    ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.mineHireType"
+    :key="queryState.status"
   >
     <template #renderItem="{ item }">
-      <TaskCard @click="goTaskDetail(item)">
+      <TaskCard
+        :name="item.name"
+        :begin-time="item.beginTime"
+        :end-time="item.endTime"
+        :billing-method="item.billingMethod"
+        :benefits="item.benefits"
+        :service-fee="item.serviceFee"
+        :settlement-cycle="item.settlementCycle"
+        :address-name="item.addressName"
+        @click="goTaskDetail(item)"
+      >
         <template #actions>
-          <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }">
-            {{ TaskStatusText[10] }}
+          <div
+            class="task-card-actions-text"
+            :style="{ color: GetPersonalHireTaskInfosQueryStatusColor[item.status] }"
+          >
+            {{ GetPersonalHireTaskInfosQueryStatusText[item.status] }}
           </div>
         </template>
       </TaskCard>
@@ -32,11 +50,14 @@
 
 <script setup lang="ts">
 import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
-import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants';
 import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import {
+  EnumPagedListOrder,
+  GetPersonalHireTaskInfosQueryStatus,
+  GetPersonalHireTaskInfosQueryStatusText,
+  GetPersonalHireTaskInfosQueryStatusColor,
+} from '@12333/constants';
+import * as taskServices from '@12333/services/apiV2/task';
 import Taro from '@tarojs/taro';
 
 defineOptions({
@@ -44,35 +65,31 @@
 });
 
 const queryState = reactive({
-  mineHireType: TaskStatus.All,
+  status: 0 as any as GetPersonalHireTaskInfosQueryStatus,
 });
-
-const userStore = useUserStore();
 
 const { infiniteLoadingProps } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
+    let params: API.GetPersonalHireTaskInfosQuery = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [
-          queryState.mineHireType === TaskStatus.All
-            ? { property: 'creationTime', order: OrderInputType.Desc }
-            : { property: 'lastShelfTime', order: OrderInputType.Desc },
-        ],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
     };
-
-    return flexWorkerServices.getFlexTaskByArrange(params, {
+    if (Number(queryState.status)) {
+      params.status = queryState.status;
+    }
+    return taskServices.getPersonalHireTaskInfos(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
+    queryKey: ['taskServices/getPersonalHireTaskInfos', queryState],
   }
 );
 
-function goTaskDetail(item: API.GetFlexTaskListOutput) {
+function goTaskDetail(item: API.GetPersonalHireTaskInfosQueryResultItem) {
   Taro.navigateTo({
     url: `${RouterPath.taskDetail}?id=${item.id}`,
   });
diff --git a/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
index 659e8ea..0e86abd 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.mineSignType"
+    v-model="queryState.status"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -9,19 +9,38 @@
     title-scroll
   >
     <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
-    <ProTabPane :title="`寰呯‘璁" :pane-key="10"></ProTabPane>
-    <ProTabPane :title="`寰呯绾" :pane-key="20"></ProTabPane>
+    <ProTabPane
+      :title="`寰呯‘璁"
+      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`寰呯绾"
+      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
+    ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.mineSignType"
+    :key="queryState.status"
   >
     <template #renderItem="{ item }">
-      <TaskCard @click="goTaskDetail(item)">
+      <TaskCard
+        :name="item.name"
+        :begin-time="item.beginTime"
+        :end-time="item.endTime"
+        :billing-method="item.billingMethod"
+        :benefits="item.benefits"
+        :service-fee="item.serviceFee"
+        :settlement-cycle="item.settlementCycle"
+        :address-name="item.addressName"
+        @click="goTaskDetail(item)"
+      >
         <template #actions>
-          <div class="task-card-actions-text" :style="{ color: TaskStatusColor[10] }">
-            {{ TaskStatusText[10] }}
+          <div
+            class="task-card-actions-text"
+            :style="{ color: GetPersonalApplyTaskInfosQueryStatusColor[item.status] }"
+          >
+            {{ GetPersonalApplyTaskInfosQueryStatusText[item.status] }}
           </div>
         </template>
       </TaskCard>
@@ -32,10 +51,14 @@
 <script setup lang="ts">
 import { TaskCard, ProTabs, ProTabPane } from '@12333/components';
 import { useUserStore } from '@/stores/modules/user';
-import { TaskStatusText, TaskStatusColor, TaskStatus } from '@/constants';
 import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import {
+  EnumPagedListOrder,
+  GetPersonalApplyTaskInfosQueryStatus,
+  GetPersonalApplyTaskInfosQueryStatusText,
+  GetPersonalApplyTaskInfosQueryStatusColor,
+} from '@12333/constants';
+import * as taskServices from '@12333/services/apiV2/task';
 import Taro from '@tarojs/taro';
 
 defineOptions({
@@ -43,35 +66,33 @@
 });
 
 const queryState = reactive({
-  mineSignType: TaskStatus.All,
+  status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
 });
 
 const userStore = useUserStore();
 
 const { infiniteLoadingProps } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
+    let params: API.GetPersonalApplyTaskInfosQuery = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [
-          queryState.mineSignType === TaskStatus.All
-            ? { property: 'creationTime', order: OrderInputType.Desc }
-            : { property: 'lastShelfTime', order: OrderInputType.Desc },
-        ],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
     };
-
-    return flexWorkerServices.getFlexTaskByArrange(params, {
+    if (Number(queryState.status)) {
+      params.status = queryState.status;
+    }
+    return taskServices.getPersonalApplyTaskInfos(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
+    queryKey: ['taskServices/getPersonalApplyTaskInfos', queryState],
   }
 );
 
-function goTaskDetail(item: API.GetFlexTaskListOutput) {
+function goTaskDetail(item: API.GetPersonalApplyTaskInfosQueryResultItem) {
   Taro.navigateTo({
     url: `${RouterPath.taskDetail}?id=${item.id}`,
   });
diff --git a/packages/components/src/Card/FlexJobCard.vue b/packages/components/src/Card/FlexJobCard.vue
index bcdc7ac..36fca70 100644
--- a/packages/components/src/Card/FlexJobCard.vue
+++ b/packages/components/src/Card/FlexJobCard.vue
@@ -3,19 +3,21 @@
     <FlexJobTopView
       :name="name"
       :age="age"
-      :genderType="genderType"
-      :isRealName="isRealName"
-      :arrangeCount="arrangeCount"
-      :educationalLevel="educationalLevel"
+      :avatar="avatar"
+      :gender="gender"
+      :isReal="isReal"
+      :personalIdentityContent="personalIdentityContent"
+      :educationalBackgroundContent="educationalBackgroundContent"
+      :taskCount="taskCount"
     />
     <div class="flexJob-card-done-list">
       {{ 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">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div>
+      <!-- <div class="flexJob-card-done-detail-item">{{ '鍦ㄣ�屽畞娉㈤浄杩.閰掑簵銆嶏紝鍋氳繃瀹㈡埧鏈嶅姟鍛�' }}</div> -->
     </div>
     <div class="flexJob-card-footer">
       <div class="flexJob-card-footer-left-wrapper">
@@ -40,7 +42,7 @@
 <script setup lang="ts">
 import { CommonTaskCardProps } from './card';
 import FlexJobTopView from './FlexJobTopView.vue';
-import { Gender } from '@12333/constants';
+import { EnumUserGender, Gender } from '@12333/constants';
 
 defineOptions({
   name: 'FlexJobCard',
@@ -52,12 +54,15 @@
   showDoneDetail?: boolean;
 
   name?: string;
-  genderType?: Gender;
+  avatar?: string;
+  gender?: EnumUserGender;
   age?: number;
-  isRealName?: boolean;
-  educationalLevel?: string;
+  isReal?: boolean;
+  personalIdentityContent?: string;
+  educationalBackgroundContent?: string;
+  taskCount?: number;
   workExperience?: string;
-  arrangeCount?: number;
+  workSeniority?: string;
 };
 
 const props = withDefaults(defineProps<Props>(), {
diff --git a/packages/components/src/Card/FlexJobTopView.vue b/packages/components/src/Card/FlexJobTopView.vue
index 4461f81..754b80d 100644
--- a/packages/components/src/Card/FlexJobTopView.vue
+++ b/packages/components/src/Card/FlexJobTopView.vue
@@ -1,24 +1,28 @@
 <template>
   <div :class="['flexJob-card-top-wrapper', size]">
-    <Avatar :src="avatarUrl" :size="size === 'small' ? 50 : 60" class="flexJob-card-top-avatar" />
+    <Avatar :src="avatar" :size="size === 'small' ? 50 : 60" class="flexJob-card-top-avatar" />
     <div class="flexJob-card-top-info">
       <div class="flexJob-card-top-info-item">
         <div class="flexJob-card-top-info-name">{{ name }}</div>
         <div class="flexJob-card-top-info-gender">
           <img
-            v-if="genderType === EnumUserGender.Male"
+            v-if="gender === EnumUserGender.Male"
             :src="IconMale"
             class="flexJob-card-top-info-gender-icon"
           />
           <img v-else :src="IconFemale" class="flexJob-card-top-info-gender-icon" />
         </div>
-        <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isRealName }">
-          {{ isRealName ? '宸插疄鍚�' : '鏈疄鍚�' }}
+        <div class="flexJob-card-top-info-auth" :class="{ 'is-real-name': isReal }">
+          {{ isReal ? '宸插疄鍚�' : '鏈疄鍚�' }}
         </div>
       </div>
       <slot name="detail">
         <div class="flexJob-card-top-info-detail">
-          {{ `${age}宀� | ${educationalLevel} |  ${educationalLevel} | 涓婂矖${arrangeCount}娆 }}
+          {{
+            `${age ? '' : `${age}宀亅`}${personalIdentityContent ?? ''} |  ${
+              educationalBackgroundContent ?? ''
+            } | 涓婂矖${taskCount ?? 0}娆
+          }}
         </div>
       </slot>
     </div>
@@ -38,18 +42,19 @@
 type Props = {
   size?: 'normal' | 'small';
 
-  avatarUrl?: string;
+  avatar?: string;
   name?: string;
-  genderType?: EnumUserGender;
+  gender?: EnumUserGender;
   age?: number;
-  educationalLevel?: string;
-  arrangeCount?: number;
-  isRealName?: boolean;
+  isReal?: boolean;
+  personalIdentityContent?: string;
+  educationalBackgroundContent?: string;
+  taskCount?: number;
 };
 
 const props = withDefaults(defineProps<Props>(), {
   size: 'normal',
-  avatarUrl: AvatarImage,
+  avatar: AvatarImage,
 });
 </script>
 
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index aec9be0..a2b8be0 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -91,7 +91,7 @@
   Dictionary = 0,
   /**浠诲姟 */
   Task = 1,
-  /**浠诲姟闆囦剑 */
+  /**浠诲姟浜哄憳 */
   TaskUser = 2,
   /**鐢ㄦ埛璁よ瘉 */
   Auth = 3,
@@ -195,6 +195,14 @@
   Complete = 20,
 }
 
+/** 浠诲姟鐢ㄦ埛瀹夋帓鐘舵�� */
+export enum EnumTaskUserArrangeStatus {
+  /**鏈畨鎺� */
+  Wait = 10,
+  /**宸插畨鎺� */
+  Complete = 20,
+}
+
 /** 浠诲姟褰曠敤鐘舵�� */
 export enum EnumTaskUserHireStatus {
   /**寰呭綍鐢� */
@@ -250,3 +258,19 @@
   /**杩愯惀 */
   Operation = 100,
 }
+
+/** 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃-鐘舵�� */
+export enum GetPersonalApplyTaskInfosQueryStatus {
+  /**寰呯‘璁� */
+  WaitHire = 10,
+  /**寰呯绾� */
+  WaitSignContract = 20,
+}
+
+/** 鎴戠殑宸插綍鐢ㄥ垎椤靛垪琛�-鐘舵�� */
+export enum GetPersonalHireTaskInfosQueryStatus {
+  /**杩涜涓� */
+  InProcess = 10,
+  /**宸插畬鎴� */
+  Completed = 20,
+}
diff --git a/packages/constants/task.ts b/packages/constants/task.ts
index 6e1fd23..245bba6 100644
--- a/packages/constants/task.ts
+++ b/packages/constants/task.ts
@@ -6,6 +6,9 @@
   EnumTaskCheckReceiveStatus,
   EnumPersonalFreeTime,
   EnumPersonalJobSeekingStatus,
+  EnumTaskUserHireStatus,
+  GetPersonalApplyTaskInfosQueryStatus,
+  GetPersonalHireTaskInfosQueryStatus,
 } from './apiEnum';
 
 export const EnumBillingMethodText = {
@@ -62,3 +65,29 @@
   [EnumPersonalJobSeekingStatus.Whatever]: '闅忎究鐪嬬湅',
   [EnumPersonalJobSeekingStatus.Not]: '鏆傛椂涓嶆壘浠诲姟',
 };
+
+export const EnumTaskUserHireStatusText = {
+  [EnumTaskUserHireStatus.Wait]: '寰呭綍鐢�',
+  [EnumTaskUserHireStatus.Pass]: '宸插綍鐢�',
+  [EnumTaskUserHireStatus.Refuse]: '宸茶阿缁�',
+};
+
+export const GetPersonalApplyTaskInfosQueryStatusText = {
+  [GetPersonalApplyTaskInfosQueryStatus.WaitHire]: '寰呯‘璁�',
+  [GetPersonalApplyTaskInfosQueryStatus.WaitSignContract]: '寰呯绾�',
+};
+
+export const GetPersonalApplyTaskInfosQueryStatusColor = {
+  [GetPersonalApplyTaskInfosQueryStatus.WaitHire]: '#FF7D00',
+  [GetPersonalApplyTaskInfosQueryStatus.WaitSignContract]: '#3A71FF',
+};
+
+export const GetPersonalHireTaskInfosQueryStatusText = {
+  [GetPersonalHireTaskInfosQueryStatus.InProcess]: '杩涜涓�',
+  [GetPersonalHireTaskInfosQueryStatus.Completed]: '宸插畬鎴�',
+};
+
+export const GetPersonalHireTaskInfosQueryStatusColor = {
+  [GetPersonalHireTaskInfosQueryStatus.InProcess]: '#2A9E1B',
+  [GetPersonalHireTaskInfosQueryStatus.Completed]: '#9FA4AC',
+};
diff --git a/packages/hooks/index.ts b/packages/hooks/index.ts
index 8459cc4..517d13d 100644
--- a/packages/hooks/index.ts
+++ b/packages/hooks/index.ts
@@ -6,3 +6,4 @@
 export * from './identify';
 export * from './enterprise';
 export * from './task';
+export * from './taskUser';
diff --git a/packages/hooks/taskUser.ts b/packages/hooks/taskUser.ts
new file mode 100644
index 0000000..d028288
--- /dev/null
+++ b/packages/hooks/taskUser.ts
@@ -0,0 +1,39 @@
+import { useInfiniteLoading } from '@12333/hooks';
+import { EnumPagedListOrder } from '@12333/constants';
+import _ from 'lodash';
+import { MaybeRef, unref } from 'vue';
+import * as taskUserServices from '@12333/services/apiV2/taskUser';
+
+type UseTaskListOptions = {
+  id?: MaybeRef<string>;
+};
+
+export function useTaskUserList(options: UseTaskListOptions = {}) {
+  const { id } = options;
+
+  const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
+    ({ pageParam }) => {
+      let params: API.GetTaskUsersQuery = {
+        pageModel: {
+          rows: 20,
+          page: pageParam,
+          orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+        },
+        id: unref(id),
+      };
+
+      return taskUserServices.getTaskUsers(params, {
+        showLoading: false,
+      });
+    },
+    {
+      queryKey: ['taskUserServices/getTaskUsers', id],
+      enabled: !!unref(id),
+    }
+  );
+
+  return {
+    infiniteLoadingProps,
+    invalidateQueries,
+  };
+}
diff --git a/packages/services/apiV2/task.ts b/packages/services/apiV2/task.ts
index 5dd6235..b6c19fa 100644
--- a/packages/services/apiV2/task.ts
+++ b/packages/services/apiV2/task.ts
@@ -14,6 +14,60 @@
   });
 }
 
+/** 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃 POST /api/flexjob/task/getPersonalApplyTaskInfos */
+export async function getPersonalApplyTaskInfos(
+  body: API.GetPersonalApplyTaskInfosQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalApplyTaskInfosQueryResult>(
+    '/api/flexjob/task/getPersonalApplyTaskInfos',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鎴戠殑宸插彇娑堝垎椤靛垪琛� POST /api/flexjob/task/getPersonalCancelTaskInfos */
+export async function getPersonalCancelTaskInfos(
+  body: API.GetPersonalCancelTaskInfosQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalCancelTaskInfosQueryResult>(
+    '/api/flexjob/task/getPersonalCancelTaskInfos',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鎴戠殑宸插綍鐢ㄥ垎椤靛垪琛� POST /api/flexjob/task/getPersonalHireTaskInfos */
+export async function getPersonalHireTaskInfos(
+  body: API.GetPersonalHireTaskInfosQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetPersonalHireTaskInfosQueryResult>(
+    '/api/flexjob/task/getPersonalHireTaskInfos',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** 鏌ヨ浠诲姟璇︽儏 GET /api/flexjob/task/getTaskInfo */
 export async function getTaskInfo(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
diff --git a/packages/services/apiV2/taskUser.ts b/packages/services/apiV2/taskUser.ts
index 0b1d1b5..af03cc7 100644
--- a/packages/services/apiV2/taskUser.ts
+++ b/packages/services/apiV2/taskUser.ts
@@ -26,7 +26,22 @@
   });
 }
 
-/** 鏌ヨ搴旇仒鎶ュ悕鍒嗛〉鍒楄〃淇℃伅 POST /api/flexjob/taskUser/getTaskUsers */
+/** B绔煡璇汉鍛樺畨鎺掑垎椤靛垪琛ㄤ俊鎭� POST /api/flexjob/taskUser/getArrangeTaskUsers */
+export async function getArrangeTaskUsers(
+  body: API.GetArrangeTaskUsersQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetArrangeTaskUsersQueryResult>('/api/flexjob/taskUser/getArrangeTaskUsers', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(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', {
     method: 'POST',
@@ -38,6 +53,21 @@
   });
 }
 
+/** 浠诲姟瀹夋帓 PUT /api/flexjob/taskUser/setTaskUserArrange */
+export async function setTaskUserArrange(
+  body: API.SetTaskUserArrangeCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/flexjob/taskUser/setTaskUserArrange', {
+    method: 'PUT',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 浠诲姟褰曠敤 PUT /api/flexjob/taskUser/setTaskUserHire */
 export async function setTaskUserHire(
   body: API.SetTaskUserHireCommand,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index fe6ab58..7051bdc 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -283,7 +283,7 @@
     Dictionary = 0,
     /**浠诲姟 */
     Task = 1,
-    /**浠诲姟闆囦剑 */
+    /**浠诲姟浜哄憳 */
     TaskUser = 2,
     /**鐢ㄦ埛璁よ瘉 */
     Auth = 3,
@@ -378,6 +378,13 @@
     Complete = 20,
   }
 
+  enum EnumTaskUserArrangeStatus {
+    /**鏈畨鎺� */
+    Wait = 10,
+    /**宸插畨鎺� */
+    Complete = 20,
+  }
+
   enum EnumTaskUserHireStatus {
     /**寰呭綍鐢� */
     Wait = 10,
@@ -455,6 +462,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetAliyunOSSAcsQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetArrangeTaskUsersQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetArrangeTaskUsersQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -545,6 +570,60 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetMenuQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetPersonalApplyTaskInfosQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalApplyTaskInfosQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetPersonalCancelTaskInfosQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalCancelTaskInfosQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetPersonalHireTaskInfosQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetPersonalHireTaskInfosQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1117,6 +1196,55 @@
     quickQuery?: string;
   }
 
+  interface GetArrangeTaskUsersQuery {
+    /** 浠诲姟Id */
+    id?: string;
+    /** 鍏抽敭瀛楋紙濮撳悕/韬唤璇�/鐢佃瘽锛� */
+    keywords?: string;
+    arrangeStatus?: EnumTaskUserArrangeStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetArrangeTaskUsersQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetArrangeTaskUsersQueryResultItem[];
+  }
+
+  interface GetArrangeTaskUsersQueryResultItem {
+    /** 浠诲姟浜哄憳Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    gender?: EnumUserGender;
+    /** 骞撮緞 */
+    age?: number;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 韬唤缂栧彿 */
+    personalIdentityCode?: string;
+    /** 韬唤 */
+    personalIdentityContent?: string;
+    /** 瀛﹀巻缂栧彿 */
+    educationalBackgroundCode?: string;
+    /** 瀛﹀巻 */
+    educationalBackgroundContent?: string;
+    /** 涓婂矖娆℃暟 */
+    taskCount?: number;
+    /** 宸ヤ綔璧勫巻 */
+    workSeniority?: string;
+    /** 宸ヤ綔缁忛獙 */
+    workExperience?: string;
+    arrangeStatus?: EnumTaskUserArrangeStatus;
+  }
+
   type GetCurrentLogierMenusQuery = Record<string, any>;
 
   interface GetDictionaryCategoriesQuery {
@@ -1514,6 +1642,111 @@
     name?: string;
   }
 
+  interface GetPersonalApplyTaskInfosQuery {
+    status?: GetPersonalApplyTaskInfosQueryStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetPersonalApplyTaskInfosQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetPersonalApplyTaskInfosQueryResultItem[];
+  }
+
+  interface GetPersonalApplyTaskInfosQueryResultItem {
+    /** 浠诲姟Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    settlementCycle?: EnumSettlementCycle;
+    /** 绂忓埄 */
+    benefits?: GetTaskInfoQueryResultBenefit[];
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+    status?: GetPersonalApplyTaskInfosQueryStatus;
+  }
+
+  enum GetPersonalApplyTaskInfosQueryStatus {
+    /**寰呯‘璁� */
+    WaitHire = 10,
+    /**寰呯绾� */
+    WaitSignContract = 20,
+  }
+
+  interface GetPersonalCancelTaskInfosQuery {
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetPersonalCancelTaskInfosQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetPersonalCancelTaskInfosQueryResultItem[];
+  }
+
+  interface GetPersonalCancelTaskInfosQueryResultItem {
+    /** 浠诲姟Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    settlementCycle?: EnumSettlementCycle;
+    /** 绂忓埄 */
+    benefits?: GetTaskInfoQueryResultBenefit[];
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+  }
+
+  interface GetPersonalHireTaskInfosQuery {
+    status?: GetPersonalHireTaskInfosQueryStatus;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetPersonalHireTaskInfosQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetPersonalHireTaskInfosQueryResultItem[];
+  }
+
+  interface GetPersonalHireTaskInfosQueryResultItem {
+    /** 浠诲姟Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+    billingMethod?: EnumBillingMethod;
+    /** 鏈嶅姟璐� */
+    serviceFee?: number;
+    settlementCycle?: EnumSettlementCycle;
+    /** 绂忓埄 */
+    benefits?: GetTaskInfoQueryResultBenefit[];
+    /** 浠诲姟鍦扮偣鍚嶇О */
+    addressName?: string;
+    status?: GetPersonalHireTaskInfosQueryStatus;
+  }
+
+  enum GetPersonalHireTaskInfosQueryStatus {
+    /**杩涜涓� */
+    InProcess = 10,
+    /**宸插畬鎴� */
+    Completed = 20,
+  }
+
   type GetPersonalLoginInfoQuery = Record<string, any>;
 
   interface GetPersonalLoginInfoQueryResult {
@@ -1717,8 +1950,6 @@
     releaseStatus?: EnumTaskReleaseStatus;
     recommendStatus?: EnumTaskRecommendStatus;
     checkReceiveStatus?: EnumTaskCheckReceiveStatus;
-    /** 褰曠敤鐘舵�� */
-    hireStatus?: EnumTaskUserHireStatus[];
     pageModel?: PagedListQueryPageModel;
   }
 
@@ -1774,7 +2005,6 @@
     recommendStatus?: EnumTaskRecommendStatus;
     /** 鍒涘缓鏃堕棿 */
     createdTime?: string;
-    hireStatus?: EnumTaskUserHireStatus;
   }
 
   interface GetTaskInfosQueryResultObjectData {
@@ -1801,7 +2031,7 @@
   }
 
   interface GetTaskUsersQueryResultItem {
-    /** 浠诲姟闆囦剑Id */
+    /** 浠诲姟浜哄憳Id */
     id?: string;
     /** 澶村儚 */
     avatar?: string;
@@ -2585,8 +2815,14 @@
     releaseStatus?: EnumTaskReleaseStatus;
   }
 
+  interface SetTaskUserArrangeCommand {
+    /** 浠诲姟浜哄憳Id */
+    id?: string;
+    arrangeStatus?: EnumTaskUserArrangeStatus;
+  }
+
   interface SetTaskUserHireCommand {
-    /** 浠诲姟闆囦剑Id */
+    /** 浠诲姟浜哄憳Id */
     id?: string;
     hireStatus?: EnumTaskUserHireStatus;
   }

--
Gitblit v1.9.1