From 1bbd7061dac79cacf5513234a04cac8ba0be5c6f Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 21 三月 2025 09:15:36 +0800 Subject: [PATCH] feat: 接口对接 --- apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue | 111 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 89 insertions(+), 22 deletions(-) diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue index c72c92e..a29d411 100644 --- a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue +++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue @@ -1,6 +1,6 @@ <template> <ProTabs - v-model="queryState.mineHireType" + v-model="queryState.flexTaskReleaseStatus" name="home-tab" :showPaneContent="false" class="home-tabs" @@ -8,15 +8,41 @@ title-gutter="12" title-scroll > - <ProTabPane :title="`鍙戝竷涓�(${1})`" :pane-key="0"></ProTabPane> - <ProTabPane :title="`宸插仠姝�(${1})`" :pane-key="10"></ProTabPane> + <ProTabPane + :title="`${ + FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Releasing] + }(${releaseing})`" + :pane-key="FlexTaskReleaseStatusEnum.Releasing" + ></ProTabPane> + <ProTabPane + :title="`${FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Stoping]}(${stoping})`" + :pane-key="FlexTaskReleaseStatusEnum.Stoping" + ></ProTabPane> </ProTabs> <InfiniteLoading scrollViewClassName="common-infinite-scroll-list home-list" v-bind="infiniteLoadingProps" + :key="queryState.flexTaskReleaseStatus" > <template #renderItem="{ item }"> - <JobApplicationCard @edit="goEdit" @detail="goDetail"> </JobApplicationCard> + <JobApplicationCard + :taskName="item.taskName" + :startDate="item.startDate" + :endDate="item.endDate" + :creationTime="item.creationTime" + :address="item.address" + :fee="item.fee" + :applyWorkerCount="item.applyWorkerCount" + :unit="SalaryTimeTypeEnumUnit[item.feeType]" + :releaseStatus="item.releaseStatus" + @edit="goEdit(item)" + @copy="goEdit(item, true)" + @detail="goDetail(item)" + @publish="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Releasing)" + @stop="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Stoping)" + @delete="handleDelete(item)" + > + </JobApplicationCard> </template> </InfiniteLoading> </template> @@ -26,54 +52,95 @@ import { RouterPath } from '@/constants'; import { useInfiniteLoading } from '@12333/hooks'; import { OrderInputType } from '@12333/constants'; +import { + FlexTaskReleaseStatusEnum, + FlexTaskReleaseStatusEnumText, + SalaryTimeTypeEnumUnit, +} from '@12333/constants/task'; import * as flexWorkerServices from '@12333/services/api/FlexWorker'; -import { TaskStatus } from '@/constants/task'; import Taro from '@tarojs/taro'; +import { Message } from '@12333/utils'; defineOptions({ name: 'InnerPage', }); const queryState = reactive({ - mineHireType: TaskStatus.All, + flexTaskReleaseStatus: FlexTaskReleaseStatusEnum.Releasing, }); -const { infiniteLoadingProps } = useInfiniteLoading( +const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading( ({ pageParam }) => { - let params: API.GetFlexTaskListInput = { + let params: API.GetFlexTaskListByStatusInput = { + releaseStatus: queryState.flexTaskReleaseStatus, pageModel: { rows: 20, page: pageParam, - orderInput: [{ property: 'isRecommend', order: OrderInputType.Desc }], + orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }], }, }; - return flexWorkerServices.getFlexTaskByArrange(params, { + return flexWorkerServices.getFlexTaskList(params, { showLoading: false, }); }, { - queryKey: ['flexWorkerServices/getFlexTaskByArrange'], + queryKey: ['flexWorkerServices/getFlexTaskList', queryState], } ); -function goPage(routeName: string) { - Taro.navigateTo({ - url: routeName, - }); +const releaseing = computed(() => { + return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.releaseing ?? 0; +}); +const stoping = computed(() => { + return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.stoping ?? 0; +}); + +async function handleChangeStatus( + item: API.GetFlexTaskListOutput, + releaseStatus: FlexTaskReleaseStatusEnum +) { + try { + let params: API.UpdateTaskReleaseStatusInput = { + taskId: item.taskId, + releaseStatus: releaseStatus, + }; + let res = await flexWorkerServices.updateFlexTaskReleaseStatus(params); + if (res) { + Message.success('鎿嶄綔鎴愬姛'); + invalidateQueries(); + } + } catch (error) {} } -function goEdit() { - goPage(RouterPath.publishTask); +async function handleDelete(item: API.GetFlexTaskListOutput) { + try { + await Message.confirm({ + message: '纭畾瑕佸垹闄ゅ悧锛�', + }); + let params: API.APIdeleteFlexTaskParams = { + id: item.taskId, + }; + let res = await flexWorkerServices.deleteFlexTask(params); + if (res) { + Message.success('鍒犻櫎鎴愬姛'); + invalidateQueries(); + } + } catch (error) {} } -function goDetail() { - goPage(RouterPath.jobApplicationDetail); + +function goEdit(item: API.GetFlexTaskListOutput, isCopy = false) { + Taro.navigateTo({ + url: `${RouterPath.publishTask}?taskId=${item.taskId}&isCopy=${isCopy}`, + }); +} +function goDetail(item: API.GetFlexTaskListOutput) { + Taro.navigateTo({ + url: `${RouterPath.jobApplicationDetail}?taskId=${item.taskId}`, + }); } </script> <style lang="scss"> @import '@/styles/common.scss'; - -// .jobApplicationManage-page-wrapper { -// } </style> -- Gitblit v1.9.1