From 7cf04da7eaba7cad9c3b5e5f674d2e038ebcd305 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 九月 2025 17:36:56 +0800
Subject: [PATCH] Merge branch 'master' into dev-v1.1

---
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue |  125 ++++++++++++++++++++++++++++++++---------
 1 files changed, 98 insertions(+), 27 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
index b52155b..32e45c9 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.mineHireType"
+    v-model="queryState.signContractStatus"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -8,29 +8,66 @@
     title-gutter="12"
     title-scroll
   >
-    <ProTabPane :title="`宸茬绾" :pane-key="FlexWorkerEleSignEnum.HasSign"></ProTabPane>
-    <ProTabPane :title="`寰呯绾" :pane-key="FlexWorkerEleSignEnum.WaitSign"></ProTabPane>
-    <ProTabPane :title="`宸茶В绾" :pane-key="FlexWorkerEleSignEnum.CancelSign"></ProTabPane>
+    <ProTabPane
+      :title="`鐏靛伐寰呯绾"
+      :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.UserWait"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`浼佷笟寰呯绾"
+      :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.EnterpriseWait"
+    ></ProTabPane>
+    <ProTabPane
+      :title="`宸茬绾"
+      :pane-key="EnumGetEnterpriseEmployeesQuerySignContractStatus.Pass"
+    ></ProTabPane>
+    <!-- <ProTabPane :title="`宸茶В绾" :pane-key="EnumTaskUserSignContractStatus.Stop"></ProTabPane> -->
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.mineHireType"
+    :key="queryState.signContractStatus"
   >
     <template #renderItem="{ item }">
-      <FlexJobCard :show-done-detail="false" :show-footer-left="false" @click="goDetail(item)">
+      <FlexJobCard
+        :show-done-detail="false"
+        :show-footer-left="false"
+        :name="item.name"
+        :gender="item.gender"
+        :age="item.age"
+        :isReal="item.userIsReal"
+        :personalIdentityContent="item.personalIdentityContent"
+        :educationalBackgroundContent="item.educationalBackgroundContent"
+        :taskCount="item.taskCount"
+        :avatar="item.avatar"
+        :workExperience="item.workExperience"
+        :workSeniority="item.workSeniority"
+        @click="goDetail(item)"
+      >
         <template #footerRight>
-          <template v-if="queryState.mineHireType === FlexWorkerEleSignEnum.HasSign">
+          <template
+            v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass"
+          >
             <nut-button
               class="flexJobManage-card-plain-button"
               type="default"
               plain
-              @click.stop="handleUnContract"
+              @click.stop="handleUnsign(item)"
               >瑙g害</nut-button
             >
-            <nut-button type="primary" @click.stop="checkContract">鏌ョ湅鍚堢害</nut-button>
+            <nut-button type="primary" @click.stop="checkContract(item)">鏌ョ湅鍚堢害</nut-button>
           </template>
-          <nut-button v-else type="primary" @click.stop="goSignContract(item)">绛剧害</nut-button>
+          <nut-button
+            v-if="item.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"
+            type="primary"
+            @click.stop="goFlexJobSign(item)"
+            >閭�璇风绾�</nut-button
+          >
+          <nut-button
+            v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait"
+            type="primary"
+            @click.stop="goEnterpriseSign(item)"
+            >浼佷笟绛剧害</nut-button
+          >
         </template>
       </FlexJobCard>
     </template>
@@ -41,52 +78,86 @@
 import { FlexJobCard, ProTabs, ProTabPane } from '@12333/components';
 import { RouterPath } from '@/constants';
 import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
-import { FlexWorkerEleSignEnum } from '@/constants/task';
+import {
+  EnumTaskUserHireStatus,
+  EnumTaskUserSignContractStatus,
+  EnumPagedListOrder,
+  EnumGetEnterpriseEmployeesQuerySignContractStatus,
+} from '@12333/constants';
+import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
 import Taro from '@tarojs/taro';
+import { Message, openDocument, setOSSLink } from '@12333/utils';
 
 defineOptions({
   name: 'InnerPage',
 });
 
 const queryState = reactive({
-  mineHireType: FlexWorkerEleSignEnum.HasSign,
+  signContractStatus: EnumGetEnterpriseEmployeesQuerySignContractStatus.UserWait,
 });
 
-const { infiniteLoadingProps } = useInfiniteLoading(
+const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.GetFlexSignWorkerListInput = {
-      signStatus: queryState.mineHireType,
+    let params: API.GetEnterpriseEmployeesQuery = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
+      hireStatus: EnumTaskUserHireStatus.Pass,
+      signContractStatus: queryState.signContractStatus,
     };
-
-    return flexWorkerServices.getFlexSignWorkerList(params, {
+    return enterpriseEmployeeServices.getEnterpriseEmployees(params, {
       showLoading: false,
     });
   },
   {
-    queryKey: ['flexWorkerServices/getFlexSignWorkerList', queryState],
+    queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployees', queryState],
   }
 );
 
-function goDetail(item: API.GetNewestWorkerListOutput) {
+function checkContract(item: API.GetEnterpriseEmployeesQueryResultItem) {
+  if (!item.contractUrl) {
+    Message.warning('鍗忚鏃犳硶鏌ョ湅锛岃绋嶅悗鍐嶈瘯');
+    return;
+  }
+  openDocument(setOSSLink(item.contractUrl));
+}
+
+function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetailFromManage}?userId=${item.userId}`,
+    url: `${RouterPath.flexJobDetailFromManage}?enterpriseEmployeeId=${item.id}`,
   });
 }
 
-function checkContract() {}
-function handleUnContract() {}
-function goSignContract(item: API.GetNewestWorkerListOutput) {
+async function handleUnsign(item: API.GetEnterpriseEmployeesQueryResultItem) {
+  try {
+    await Message.confirm({ message: '纭畾瑕佽В绾﹀悧锛�' });
+    let params: API.StopElectronSignCommand = {
+      ids: [item.id],
+    };
+    let res = await enterpriseEmployeeServices.stopElectronSign(params);
+    if (res) {
+      Message.success('瑙g害鎴愬姛');
+      invalidateQueries();
+    }
+  } catch (error) {}
+}
+function goFlexJobSign(item: API.GetEnterpriseEmployeesQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobSign}`,
+    url: `${RouterPath.flexJobSign}?enterpriseEmployeeId=${item.id}`,
   });
 }
+
+async function goEnterpriseSign(item: API.GetEnterpriseEmployeesQueryResultItem) {
+  try {
+    let res = await enterpriseEmployeeServices.enterpriseUserElectronSign({ id: item.id });
+    if (res) {
+      const encodedUrl = encodeURIComponent(res.signContractLongUrl);
+      Taro.navigateTo({ url: `${RouterPath.extraPage}?url=${encodedUrl}` });
+    }
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1