From 9c8b6d1cf6b43c6652b5183cd0183e8e257001f7 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 11 九月 2025 17:41:31 +0800
Subject: [PATCH] feat: 页面

---
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue |   82 ++++++++++++++++++++++++++++++----------
 1 files changed, 61 insertions(+), 21 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue
index c47dcb3..601974b 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.userSignContractStatus"
+    v-model="queryState.status"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -8,14 +8,15 @@
     title-gutter="12"
     title-scroll
   >
-    <ProTabPane :title="`宸茬绾" :pane-key="EnumTaskUserSignContractStatus.Pass"></ProTabPane>
-    <ProTabPane :title="`寰呯绾" :pane-key="EnumTaskUserSignContractStatus.Wait"></ProTabPane>
-    <ProTabPane :title="`宸茶В绾" :pane-key="EnumTaskUserSignContractStatus.Refuse"></ProTabPane>
+    <ProTabPane :title="`鐏靛伐寰呯绾" :pane-key="Status.FlexJobWait"></ProTabPane>
+    <ProTabPane :title="`浼佷笟寰呯绾" :pane-key="Status.EnterpriseWait"></ProTabPane>
+    <ProTabPane :title="`宸茬绾" :pane-key="Status.Pass"></ProTabPane>
+    <!-- <ProTabPane :title="`宸茶В绾" :pane-key="EnumTaskUserSignContractStatus.Stop"></ProTabPane> -->
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.userSignContractStatus"
+    :key="queryState.status"
   >
     <template #renderItem="{ item }">
       <FlexJobCard
@@ -34,25 +35,30 @@
         @click="goDetail(item)"
       >
         <template #footerRight>
-          <span></span>
-          <!-- <template
-            v-if="queryState.userSignContractStatus === EnumTaskUserSignContractStatus.Pass"
+          <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-if="queryState.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"
+            v-if="item.userSignContractStatus === EnumTaskUserSignContractStatus.Wait"
             type="primary"
-            @click.stop="goSignContract(item)"
-            >绛剧害</nut-button
-          > -->
+            @click.stop="goFlexJobSign(item)"
+            >閭�璇风绾�</nut-button
+          >
+          <nut-button
+            v-if="item.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait"
+            type="primary"
+            @click.stop="goFlexJobSign(item)"
+            >浼佷笟绛剧害</nut-button
+          >
         </template>
       </FlexJobCard>
     </template>
@@ -70,16 +76,23 @@
 } 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 enum Status {
+  FlexJobWait = 1,
+  EnterpriseWait = 2,
+  Pass = 3,
+}
+
 const queryState = reactive({
-  userSignContractStatus: EnumTaskUserSignContractStatus.Pass,
+  status: Status.FlexJobWait,
 });
 
-const { infiniteLoadingProps } = useInfiniteLoading(
+const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
   ({ pageParam }) => {
     let params: API.GetEnterpriseEmployeesQuery = {
       pageModel: {
@@ -88,8 +101,16 @@
         orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
       hireStatus: EnumTaskUserHireStatus.Pass,
-      userSignContractStatus: queryState.userSignContractStatus,
     };
+    if (Number(queryState.status) === Status.FlexJobWait) {
+      params.userSignContractStatus = EnumTaskUserSignContractStatus.Wait;
+    }
+    if (Number(queryState.status) === Status.EnterpriseWait) {
+      params.enterpriseSignContractStatus = EnumTaskUserSignContractStatus.Wait;
+    }
+    if (Number(queryState.status) === Status.Pass) {
+      params.userSignContractStatus = EnumTaskUserSignContractStatus.Pass;
+    }
 
     return enterpriseEmployeeServices.getEnterpriseEmployees(params, {
       showLoading: false,
@@ -100,17 +121,36 @@
   }
 );
 
+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}?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}`,
   });
 }
 </script>

--
Gitblit v1.9.1