From 5b01e3e6a695a8c9ba508fb4570b0b66e154ba0f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 02 十二月 2025 14:57:53 +0800
Subject: [PATCH] feat: 页面

---
 src/views/EmploymentManage/EmploymentManageArrange.vue |   72 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 14 deletions(-)

diff --git a/src/views/EmploymentManage/EmploymentManageArrange.vue b/src/views/EmploymentManage/EmploymentManageArrange.vue
index c88f40b..2973c98 100644
--- a/src/views/EmploymentManage/EmploymentManageArrange.vue
+++ b/src/views/EmploymentManage/EmploymentManageArrange.vue
@@ -13,6 +13,15 @@
             />
           </QueryFilterItem>
           <QueryFilterItem>
+            <FieldRadio
+              v-model="extraParamState.applyStatus"
+              :value-enum="EnumGetArrangeTaskUsersQueryApplyStatusText"
+              buttonStyle
+              showAllBtn
+              @change="getList()"
+            />
+          </QueryFilterItem>
+          <QueryFilterItem>
             <SearchInput
               v-model="extraParamState.searchWord"
               style="width: 250px"
@@ -24,11 +33,7 @@
           </QueryFilterItem>
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="EmploymentArrangeColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
       </ProTableV2>
     </AppContainer>
   </LoadingLayout>
@@ -50,18 +55,18 @@
 import { EmploymentArrangeColumns } from './constants';
 import { Message } from '@bole-core/core';
 import * as taskUserServices from '@/services/api/taskUser';
-import { EnumTaskUserArrangeStatusText } from '@/constants';
+import {
+  EnumTaskUserArrangeStatusText,
+  EnumGetArrangeTaskUsersQueryApplyStatusText,
+} from '@/constants';
+import { hiddenIDNumberForEnd4 } from '@/utils';
 
 defineOptions({
   name: 'EmploymentManageArrange',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'arrangeBtn',
-      name: '瀹夋帓',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  arrangeBtn: {
     emits: {
       onClick: (role) => handleArrange(role),
     },
@@ -70,7 +75,20 @@
         row.arrangeStatus === EnumTaskUserArrangeStatus.Complete,
     },
   },
-]);
+  cancelRecruitBtn: {
+    emits: {
+      onClick: (role) => setTaskUserHire(role, EnumTaskUserHireStatus.Cancel),
+    },
+    extraProps: {
+      hide: (row: API.GetArrangeTaskUsersQueryResultItem) =>
+        row.arrangeStatus === EnumTaskUserArrangeStatus.Complete,
+    },
+  },
+};
+
+const { column, operationBtns } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const route = useRoute();
@@ -105,6 +123,7 @@
         id: id,
         keywords: extraParamState.searchWord,
         arrangeStatus: extraParamState.arrangeStatus,
+        applyStatus: extraParamState.applyStatus,
       };
 
       let res = await taskUserServices.getArrangeTaskUsers(params, {
@@ -120,11 +139,17 @@
       searchWord: '',
       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       arrangeStatus: '' as any as EnumTaskUserArrangeStatus,
+      applyStatus: '' as any as EnumGetArrangeTaskUsersQueryApplyStatus,
     },
     queryKey: ['taskUserServices/getArrangeTaskUsers'],
     columnsRenderProps: {
       gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
       arrangeStatus: { type: 'enum', valueEnum: EnumTaskUserArrangeStatusText },
+      identity: {
+        formatter: (row: API.GetArrangeTaskUsersQueryResultItem) => {
+          return hiddenIDNumberForEnd4(row.identity);
+        },
+      },
     },
   }
 );
@@ -132,7 +157,8 @@
 async function handleArrange(row: API.GetArrangeTaskUsersQueryResultItem) {
   try {
     let res = await taskUserServices.setTaskUserArrange({
-      id: row.id,
+      enterpriseEmployeeId: row.id,
+      taskInfoId: id,
       arrangeStatus: EnumTaskUserArrangeStatus.Complete,
     });
     if (res) {
@@ -141,4 +167,22 @@
     }
   } catch (error) {}
 }
+
+async function setTaskUserHire(
+  row: API.GetArrangeTaskUsersQueryResultItem,
+  hireStatus: EnumTaskUserHireStatus
+) {
+  try {
+    await Message.tipMessage(`纭瑕佸彇娑堝綍鐢ㄥ悧锛焋);
+    let params: API.SetTaskUserHireCommand = {
+      id: row.id,
+      hireStatus: hireStatus,
+    };
+    let res = await taskUserServices.setTaskUserHire(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
 </script>

--
Gitblit v1.9.1