From 08740aaf0861ee8c11a8bf6a97a1219f7d198043 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 25 八月 2025 09:39:08 +0800
Subject: [PATCH] feat: 签约

---
 apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue |   52 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
index da05e70..30a32f4 100644
--- a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
@@ -14,49 +14,62 @@
     v-bind="infiniteLoadingProps"
   >
     <template #renderItem="{ item }">
-      <SignCard @click="handleCheck(item)" v-model:checked-id="checkedId" :id="item.id"></SignCard>
+      <SignCard
+        :templateId="item.templateId"
+        :name="item.name"
+        @click="handleCheck(item)"
+        v-model:checked-id="checkedId"
+        :id="item.id"
+      ></SignCard>
     </template>
   </InfiniteLoading>
 
   <PageFooter>
-    <PageFooterBtn type="primary">閭�璇风绾�</PageFooterBtn>
+    <PageFooterBtn type="primary" @click="handleInvite">閭�璇风绾�</PageFooterBtn>
   </PageFooter>
 </template>
 
 <script setup lang="ts">
 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 electronSignServices from '@12333/services/apiV2/electronSign';
+import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
 import _ from 'lodash';
-import { trim } from '@12333/utils';
+import { Message, trim } from '@12333/utils';
 import { SignCard } from '@12333/components';
+import Taro from '@tarojs/taro';
+import { goBack } from '@/utils';
 
 defineOptions({
   name: 'InnerPage',
 });
 
+const router = Taro.useRouter();
+const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
+
 const searchValue = ref('');
 const queryState = reactive({
-  searchValueTrim: '',
+  keywords: '',
 });
 
 const checkedId = ref('');
 
 const handleSearch = _.debounce(function () {
-  queryState.searchValueTrim = trim(searchValue.value);
+  queryState.keywords = trim(searchValue.value);
 }, 300);
 
 const { infiniteLoadingProps } = useInfiniteLoading(
   ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
+    let params: API.GetEnterpriseContractTemplatesQuery = {
       pageModel: {
         rows: 20,
         page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
       },
+      keywords: queryState.keywords,
     };
 
-    return flexWorkerServices.getFlexTaskByArrange(params, {
+    return electronSignServices.getEnterpriseContractTemplates(params, {
       showLoading: false,
     });
   },
@@ -65,9 +78,26 @@
   }
 );
 
-function handleCheck(item: API.OrderInfoDto) {
+function handleCheck(item: API.GetEnterpriseContractTemplatesQueryResultItem) {
   checkedId.value = item.id;
 }
+
+async function handleInvite() {
+  try {
+    let params: API.InviteElectronSignCommand = {
+      id: enterpriseEmployeeId,
+      contractTemplateId: checkedId.value,
+    };
+    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
+    if (res) {
+      Message.success('绛剧害鎴愬姛', {
+        onClosed() {
+          goBack();
+        },
+      });
+    }
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss">

--
Gitblit v1.9.1