From 4abed72d97b7953326cf48d45c4d3a53058df599 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 12 九月 2025 11:06:49 +0800 Subject: [PATCH] feat: 页面 --- apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue | 91 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 68 insertions(+), 23 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/flexJobManage/flexJobManage/InnerPage.vue index 15b3dfa..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.userSignContractStatus" + v-model="queryState.signContractStatus" name="home-tab" :showPaneContent="false" class="home-tabs" @@ -8,14 +8,24 @@ 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="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.userSignContractStatus" + :key="queryState.signContractStatus" > <template #renderItem="{ item }"> <FlexJobCard @@ -34,25 +44,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="goEnterpriseSign(item)" + >浼佷笟绛剧害</nut-button + > </template> </FlexJobCard> </template> @@ -67,19 +82,21 @@ 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({ - userSignContractStatus: EnumTaskUserSignContractStatus.Pass, + signContractStatus: EnumGetEnterpriseEmployeesQuerySignContractStatus.UserWait, }); -const { infiniteLoadingProps } = useInfiniteLoading( +const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( ({ pageParam }) => { let params: API.GetEnterpriseEmployeesQuery = { pageModel: { @@ -88,9 +105,8 @@ orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], }, hireStatus: EnumTaskUserHireStatus.Pass, - userSignContractStatus: queryState.userSignContractStatus, + signContractStatus: queryState.signContractStatus, }; - return enterpriseEmployeeServices.getEnterpriseEmployees(params, { showLoading: false, }); @@ -100,19 +116,48 @@ } ); +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.id}`, + 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