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