From 5694090781fb8badc7ab31d9a4a38de1856d5eda Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 08 八月 2025 16:30:54 +0800
Subject: [PATCH] feat: 接口对接

---
 apps/bMiniApp/.eslintrc-auto-import.json                                              |   24 ++
 packages/constants/task.ts                                                            |   12 +
 apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue                           |   62 +---
 apps/bMiniApp/auto-imports.d.ts                                                       |   27 ++
 apps/bMiniApp/src/hooks/task.ts                                                       |   86 +++++++
 packages/services/apiV2/auth.ts                                                       |   23 +
 packages/services/apiV2/index.ts                                                      |   28 +-
 apps/bMiniApp/src/pages/mine/index.vue                                                |    2 
 packages/services/apiV2/task.ts                                                       |   31 +-
 packages/services/apiV2/typings.d.ts                                                  |  149 +++++++------
 apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue |   93 ++-----
 packages/constants/apiEnum.ts                                                         |   14 -
 packages/components/src/Card/JobApplicationCard.vue                                   |   55 +---
 13 files changed, 354 insertions(+), 252 deletions(-)

diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json
index e7293cf..be7295f 100644
--- a/apps/bMiniApp/.eslintrc-auto-import.json
+++ b/apps/bMiniApp/.eslintrc-auto-import.json
@@ -98,6 +98,28 @@
     "useIsLogin": true,
     "useLoginedJump": true,
     "useSwitchTab": true,
-    "useUser": true
+    "useUser": true,
+    "HomeOrderType": true,
+    "useTaskList": true,
+    "EnumBillingMethod": true,
+    "EnumClientType": true,
+    "EnumMenuType": true,
+    "EnumMenuVisitLevel": true,
+    "EnumPagedListOrder": true,
+    "EnumRealAccess": true,
+    "EnumResourceController": true,
+    "EnumResourceMethod": true,
+    "EnumRoleWebApiDataPower": true,
+    "EnumSettlementCycle": true,
+    "EnumSmsAccess": true,
+    "EnumSmsTemplateType": true,
+    "EnumTaskCheckReceiveStatus": true,
+    "EnumTaskRecommendStatus": true,
+    "EnumTaskReleaseStatus": true,
+    "EnumTaskSettlementStatus": true,
+    "EnumTaskStatus": true,
+    "EnumUserGender": true,
+    "EnumUserStatus": true,
+    "EnumUserType": true
   }
 }
diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts
index 1ce3144..a2bb986 100644
--- a/apps/bMiniApp/auto-imports.d.ts
+++ b/apps/bMiniApp/auto-imports.d.ts
@@ -8,6 +8,27 @@
   const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
   const BackType: typeof import('./src/constants/enum')['BackType']
   const EffectScope: typeof import('vue')['EffectScope']
+  const EnumBillingMethod: typeof import('./src/constants/apiEnum')['EnumBillingMethod']
+  const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
+  const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
+  const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
+  const EnumPagedListOrder: typeof import('./src/constants/apiEnum')['EnumPagedListOrder']
+  const EnumRealAccess: typeof import('./src/constants/apiEnum')['EnumRealAccess']
+  const EnumResourceController: typeof import('./src/constants/apiEnum')['EnumResourceController']
+  const EnumResourceMethod: typeof import('./src/constants/apiEnum')['EnumResourceMethod']
+  const EnumRoleWebApiDataPower: typeof import('./src/constants/apiEnum')['EnumRoleWebApiDataPower']
+  const EnumSettlementCycle: typeof import('./src/constants/apiEnum')['EnumSettlementCycle']
+  const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
+  const EnumSmsTemplateType: typeof import('./src/constants/apiEnum')['EnumSmsTemplateType']
+  const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
+  const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
+  const EnumTaskReleaseStatus: typeof import('./src/constants/apiEnum')['EnumTaskReleaseStatus']
+  const EnumTaskSettlementStatus: typeof import('./src/constants/apiEnum')['EnumTaskSettlementStatus']
+  const EnumTaskStatus: typeof import('./src/constants/apiEnum')['EnumTaskStatus']
+  const EnumUserGender: typeof import('./src/constants/apiEnum')['EnumUserGender']
+  const EnumUserStatus: typeof import('./src/constants/apiEnum')['EnumUserStatus']
+  const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
+  const HomeOrderType: typeof import('./src/hooks/task')['HomeOrderType']
   const OssAssets: typeof import('./src/constants/img')['OssAssets']
   const RouterPath: typeof import('./src/constants/router')['RouterPath']
   const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
@@ -87,6 +108,7 @@
   const useRouter: typeof import('vue-router')['useRouter']
   const useSlots: typeof import('vue')['useSlots']
   const useSwitchTab: typeof import('./src/hooks/router')['useSwitchTab']
+  const useTaskList: typeof import('./src/hooks/task')['useTaskList']
   const useTemplateRef: typeof import('vue')['useTemplateRef']
   const useUser: typeof import('./src/hooks/user')['useUser']
   const watch: typeof import('vue')['watch']
@@ -105,6 +127,9 @@
   // @ts-ignore
   export type { RouterPath, RouterPath } from './src/constants/router'
   import('./src/constants/router')
+  // @ts-ignore
+  export type { HomeOrderType } from './src/hooks/task'
+  import('./src/hooks/task')
 }
 // for vue template auto import
 import { UnwrapRef } from 'vue'
@@ -113,6 +138,7 @@
     readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
     readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
     readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+    readonly HomeOrderType: UnwrapRef<typeof import('./src/hooks/task')['HomeOrderType']>
     readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
     readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
     readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
@@ -190,6 +216,7 @@
     readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
     readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
     readonly useSwitchTab: UnwrapRef<typeof import('./src/hooks/router')['useSwitchTab']>
+    readonly useTaskList: UnwrapRef<typeof import('./src/hooks/task')['useTaskList']>
     readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
     readonly useUser: UnwrapRef<typeof import('./src/hooks/user')['useUser']>
     readonly watch: UnwrapRef<typeof import('vue')['watch']>
diff --git a/apps/bMiniApp/src/hooks/task.ts b/apps/bMiniApp/src/hooks/task.ts
new file mode 100644
index 0000000..f5c6f5f
--- /dev/null
+++ b/apps/bMiniApp/src/hooks/task.ts
@@ -0,0 +1,86 @@
+import { useInfiniteLoading } from '@12333/hooks';
+import {
+  EnumPagedListOrder,
+  EnumSettlementCycle,
+  EnumTaskRecommendStatus,
+  EnumTaskReleaseStatus,
+  EnumTaskStatus,
+  EnumUserGender,
+} from '@12333/constants';
+import _ from 'lodash';
+import { trim } from '@12333/utils';
+import { MaybeRef } from 'vue';
+import * as taskServices from '@12333/services/apiV2/task';
+
+export enum HomeOrderType {
+  Recommend = 'Recommend',
+  LastShelfTime = 'LastShelfTime',
+}
+
+type UseTaskListOptions = {
+  cityCode?: MaybeRef<string>;
+  enabled?: MaybeRef<boolean>;
+};
+
+export function useTaskList(options: UseTaskListOptions = {}) {
+  const { cityCode = '', enabled = true } = options;
+
+  const searchValue = ref('');
+
+  const queryMenuState = reactive({
+    genderLimit: '' as any as EnumUserGender,
+    settlementCycle: '' as any as EnumSettlementCycle,
+    benefitCodes: '',
+    status: '' as any as EnumTaskStatus,
+    releaseStatus: '' as any as EnumTaskReleaseStatus,
+  });
+
+  const queryState = reactive({
+    searchValueTrim: '',
+    orderType: HomeOrderType.Recommend,
+  });
+
+  const handleSearch = _.debounce(function () {
+    queryState.searchValueTrim = trim(searchValue.value);
+  }, 300);
+
+  const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
+    ({ pageParam }) => {
+      let params: API.GetTaskInfosQuery = {
+        pageModel: {
+          rows: 20,
+          page: pageParam,
+          orderInput: [
+            queryState.orderType === HomeOrderType.Recommend
+              ? { property: 'recommendStatus', order: EnumPagedListOrder.Desc }
+              : { property: 'createdTime', order: EnumPagedListOrder.Desc },
+          ],
+        },
+        keywords: queryState.searchValueTrim,
+        cityCode: unref(cityCode),
+        settlementCycle: queryMenuState.settlementCycle,
+        benefitCodes: [queryMenuState.benefitCodes].filter(Boolean),
+        genderLimit: queryMenuState.genderLimit,
+        status: queryMenuState.status,
+        releaseStatus: queryMenuState.releaseStatus,
+      };
+
+      return taskServices.getTaskInfos(params, {
+        showLoading: false,
+      });
+    },
+    {
+      queryKey: ['taskServices/getTaskInfos', queryState, queryMenuState, cityCode],
+      enabled: enabled,
+    }
+  );
+
+  return {
+    searchValue,
+    queryState,
+    queryMenuState,
+    handleSearch,
+    infiniteLoadingProps,
+    invalidateQueries,
+  };
+}
diff --git a/apps/bMiniApp/src/pages/mine/index.vue b/apps/bMiniApp/src/pages/mine/index.vue
index 0f60b4c..c5c3a21 100644
--- a/apps/bMiniApp/src/pages/mine/index.vue
+++ b/apps/bMiniApp/src/pages/mine/index.vue
@@ -42,7 +42,7 @@
             <div class="mine-go-login" v-else>鍘荤櫥褰�</div>
           </div>
         </template>
-        <div class="mine-business-card">
+        <div class="mine-business-card" v-if="isLogin">
           <div class="mine-business-card-item" @click="goBusinessCard">
             <img class="mine-business-card-item-icon" :src="IconBusinessCard" alt="" />
             <div class="mine-business-card-item-text">鎴戠殑鐢靛瓙鍚嶇墖</div>
diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
index a29d411..715026f 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.flexTaskReleaseStatus"
+    v-model="queryMenuState.releaseStatus"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -9,37 +9,35 @@
     title-scroll
   >
     <ProTabPane
-      :title="`${
-        FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Releasing]
-      }(${releaseing})`"
-      :pane-key="FlexTaskReleaseStatusEnum.Releasing"
+      :title="`鍙戝竷涓�(${releaseing})`"
+      :pane-key="EnumTaskReleaseStatus.InProcess"
     ></ProTabPane>
     <ProTabPane
-      :title="`${FlexTaskReleaseStatusEnumText[FlexTaskReleaseStatusEnum.Stoping]}(${stoping})`"
-      :pane-key="FlexTaskReleaseStatusEnum.Stoping"
+      :title="`宸插仠姝�(${stoping})`"
+      :pane-key="EnumTaskReleaseStatus.Stopped"
     ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.flexTaskReleaseStatus"
+    :key="queryMenuState.releaseStatus"
   >
     <template #renderItem="{ item }">
       <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]"
+        :name="item.name"
+        :beginTime="item.beginTime"
+        :endTime="item.endTime"
+        :createdTime="item.createdTime"
+        :addressName="item.addressName"
+        :serviceFee="item.serviceFee"
+        :userCount="item.userCount"
+        :unit="BillingMethodEnumUnit[item.billingMethod]"
         :releaseStatus="item.releaseStatus"
         @edit="goEdit(item)"
         @copy="goEdit(item, true)"
         @detail="goDetail(item)"
-        @publish="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Releasing)"
-        @stop="handleChangeStatus(item, FlexTaskReleaseStatusEnum.Stoping)"
+        @publish="handleChangeStatus(item, EnumTaskReleaseStatus.InProcess)"
+        @stop="handleChangeStatus(item, EnumTaskReleaseStatus.Stopped)"
         @delete="handleDelete(item)"
       >
       </JobApplicationCard>
@@ -50,44 +48,17 @@
 <script setup lang="ts">
 import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components';
 import { RouterPath } from '@/constants';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import {
-  FlexTaskReleaseStatusEnum,
-  FlexTaskReleaseStatusEnumText,
-  SalaryTimeTypeEnumUnit,
-} from '@12333/constants/task';
+import { EnumTaskReleaseStatus, BillingMethodEnumUnit } from '@12333/constants';
 import * as flexWorkerServices from '@12333/services/api/FlexWorker';
 import Taro from '@tarojs/taro';
 import { Message } from '@12333/utils';
+import * as taskServices from '@12333/services/apiV2/task';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const queryState = reactive({
-  flexTaskReleaseStatus: FlexTaskReleaseStatusEnum.Releasing,
-});
-
-const { infiniteLoadingProps, invalidateQueries } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetFlexTaskListByStatusInput = {
-      releaseStatus: queryState.flexTaskReleaseStatus,
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
-      },
-    };
-
-    return flexWorkerServices.getFlexTaskList(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['flexWorkerServices/getFlexTaskList', queryState],
-  }
-);
+const { queryMenuState, infiniteLoadingProps, invalidateQueries } = useTaskList();
 
 const releaseing = computed(() => {
   return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.releaseing ?? 0;
@@ -97,15 +68,15 @@
 });
 
 async function handleChangeStatus(
-  item: API.GetFlexTaskListOutput,
-  releaseStatus: FlexTaskReleaseStatusEnum
+  item: API.GetTaskInfosQueryResultItem,
+  releaseStatus: EnumTaskReleaseStatus
 ) {
   try {
-    let params: API.UpdateTaskReleaseStatusInput = {
-      taskId: item.taskId,
+    let params: API.SetTaskInfoReleaseStatusCommand = {
+      ids: [item.id],
       releaseStatus: releaseStatus,
     };
-    let res = await flexWorkerServices.updateFlexTaskReleaseStatus(params);
+    let res = await taskServices.setTaskInfoReleaseStatus(params);
     if (res) {
       Message.success('鎿嶄綔鎴愬姛');
       invalidateQueries();
@@ -113,15 +84,15 @@
   } catch (error) {}
 }
 
-async function handleDelete(item: API.GetFlexTaskListOutput) {
+async function handleDelete(item: API.GetTaskInfosQueryResultItem) {
   try {
     await Message.confirm({
       message: '纭畾瑕佸垹闄ゅ悧锛�',
     });
-    let params: API.APIdeleteFlexTaskParams = {
-      id: item.taskId,
+    let params: API.DeleteTaskInfoCommand = {
+      ids: [item.id],
     };
-    let res = await flexWorkerServices.deleteFlexTask(params);
+    let res = await taskServices.deleteTaskInfo(params);
     if (res) {
       Message.success('鍒犻櫎鎴愬姛');
       invalidateQueries();
@@ -129,14 +100,14 @@
   } catch (error) {}
 }
 
-function goEdit(item: API.GetFlexTaskListOutput, isCopy = false) {
+function goEdit(item: API.GetTaskInfosQueryResultItem, isCopy = false) {
   Taro.navigateTo({
-    url: `${RouterPath.publishTask}?taskId=${item.taskId}&isCopy=${isCopy}`,
+    url: `${RouterPath.publishTask}?taskId=${item.id}&isCopy=${isCopy}`,
   });
 }
-function goDetail(item: API.GetFlexTaskListOutput) {
+function goDetail(item: API.GetTaskInfosQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.jobApplicationDetail}?taskId=${item.taskId}`,
+    url: `${RouterPath.jobApplicationDetail}?taskId=${item.id}`,
   });
 }
 </script>
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index dd4535c..9944fd9 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.status"
+    v-model="queryMenuState.status"
     name="task-tab"
     :showPaneContent="false"
     class="task-tabs"
@@ -8,29 +8,29 @@
     title-gutter="8"
     title-scroll
   >
-    <ProTabPane :title="`寰呭畨鎺�(${notCount})`" pane-key="10"></ProTabPane>
-    <ProTabPane :title="`宸插畨鎺�(${hasCount})`" pane-key="20"></ProTabPane>
+    <ProTabPane :title="`寰呭畨鎺�(${notCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
+    <ProTabPane :title="`宸插畨鎺�(${hasCount})`" :pane-key="EnumTaskStatus.Complete"></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.status"
+    :key="queryMenuState.status"
   >
     <template #renderItem="{ item }">
       <JobApplicationCard
-        :taskName="item.taskName"
-        :startDate="item.startDate"
-        :endDate="item.endDate"
-        :address="item.address"
-        :creationTime="item.creationTime"
-        :fee="item.fee"
-        :unit="SalaryTimeTypeEnumUnit[item.feeType]"
+        :name="item.name"
+        :beginTime="item.beginTime"
+        :endTime="item.endTime"
+        :addressName="item.addressName"
+        :createdTime="item.createdTime"
+        :serviceFee="item.serviceFee"
+        :unit="BillingMethodEnumUnit[item.billingMethod]"
         @click="goSubmitTaskDetail(item)"
         mode="taskManage"
       >
         <template #footer-actions>
           <nut-button
-            v-if="item.isArrange"
+            v-if="item.status === EnumTaskStatus.Complete"
             type="primary"
             :color="Colors.Info"
             class="dark-btn"
@@ -49,38 +49,14 @@
 <script setup lang="ts">
 import { JobApplicationCard, ProTabs, ProTabPane } from '@12333/components';
 import Taro from '@tarojs/taro';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType, Colors } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
-import { SalaryTimeTypeEnumUnit } from '@12333/constants/task';
+import { EnumTaskStatus, BillingMethodEnumUnit, Colors } from '@12333/constants';
+import { useTaskList } from '@/hooks/task';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const queryState = reactive({
-  status: '10',
-});
-
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
-      isArrange: queryState.status === '20',
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
-      },
-    };
-
-    return flexWorkerServices.getFlexTaskByArrange(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['flexWorkerServices/getFlexTaskByArrange', queryState],
-  }
-);
+const { queryMenuState, infiniteLoadingProps } = useTaskList();
 
 const hasCount = computed(() => {
   return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.hasCount ?? 0;
@@ -89,15 +65,15 @@
   return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.notCount ?? 0;
 });
 
-function goSubmitTaskDetail(item: API.GetFlexTaskListOutput) {
+function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.flexJobDetail}?taskId=${item.taskId}`,
+    url: `${RouterPath.flexJobDetail}?taskId=${item.id}`,
   });
 }
 
-function goBatchTaskList(item: API.GetFlexTaskListOutput, status: string) {
+function goBatchTaskList(item: API.GetTaskInfosQueryResultItem, status: string) {
   Taro.navigateTo({
-    url: `${RouterPath.batchTaskList}?taskId=${item.taskId}&detail=${status}`,
+    url: `${RouterPath.batchTaskList}?taskId=${item.id}&detail=${status}`,
   });
 }
 </script>
diff --git a/packages/components/src/Card/JobApplicationCard.vue b/packages/components/src/Card/JobApplicationCard.vue
index 2b77b39..f4cf8b8 100644
--- a/packages/components/src/Card/JobApplicationCard.vue
+++ b/packages/components/src/Card/JobApplicationCard.vue
@@ -1,8 +1,8 @@
 <template>
   <div class="job-application-card-wrapper">
     <div class="job-application-card-title-wrapper">
-      <div class="job-application-card-title">{{ taskName }}</div>
-      <TaskPrice :value="fee" :unit="unit" v-if="mode === 'taskManage'" />
+      <div class="job-application-card-title">{{ name }}</div>
+      <TaskPrice :value="serviceFee" :unit="unit" v-if="mode === 'taskManage'" />
       <div v-else class="job-application-card-title-more" @click.stop="handleMore">
         <img :src="IconMore" class="more-btn-icon" />
       </div>
@@ -10,29 +10,29 @@
     <div class="job-application-card-line">
       <div class="job-application-card-time">
         {{
-          `${dayjs(startDate).format('YYYY骞碝M鏈圖D鏃�')}鑷�${dayjs(endDate).format('YYYY骞碝M鏈圖D鏃�')}`
+          `${dayjs(beginTime).format('YYYY骞碝M鏈圖D鏃�')}鑷�${dayjs(endTime).format('YYYY骞碝M鏈圖D鏃�')}`
         }}
       </div>
       <div class="job-application-card-status" v-if="mode === 'normal'">
-        {{ FlexTaskReleaseStatusEnumText[releaseStatus] }}
+        {{ EnumTaskReleaseStatusText[releaseStatus] }}
       </div>
     </div>
     <div class="job-application-card-line">
       <div class="job-application-card-company">
         <div class="job-application-card-company-tag">H</div>
-        <div class="job-application-card-company-address">{{ address }}</div>
+        <div class="job-application-card-company-address">{{ addressName }}</div>
       </div>
       <div class="job-application-card-people" v-if="mode === 'normal'">
-        {{ `鎶ュ悕浜烘暟锛�${applyWorkerCount}` }}
+        {{ `鎶ュ悕浜烘暟锛�${userCount}` }}
       </div>
     </div>
     <div class="job-application-card-line">
       <div class="job-application-card-publish-time">
-        {{ `鍙戝竷鏃ユ湡锛�${dayjs(creationTime).format('YYYY-MM-DD')}` }}
+        {{ `鍙戝竷鏃ユ湡锛�${dayjs(createdTime).format('YYYY-MM-DD')}` }}
       </div>
       <slot name="footer-actions">
         <div class="job-application-card-fee">
-          <TaskPrice :value="fee" :unit="unit" />
+          <TaskPrice :value="serviceFee" :unit="unit" />
         </div>
       </slot>
     </div>
@@ -46,6 +46,7 @@
 import { ActionSheet } from '@nutui/nutui-taro';
 import { Portal } from 'senin-mini/components';
 import { TaskPrice } from '@12333/components';
+import { EnumTaskStatus, EnumTaskReleaseStatus, EnumTaskReleaseStatusText } from '@12333/constants';
 import dayjs from 'dayjs';
 
 defineOptions({
@@ -61,36 +62,20 @@
   Delete,
 }
 
-enum FlexTaskReleaseStatusEnum {
-  /**
-   * 鍙戝竷涓�
-   */
-  Releasing = 10,
-  /**
-   * 宸插仠姝�
-   */
-  Stoping = 20,
-}
-
-const FlexTaskReleaseStatusEnumText = {
-  [FlexTaskReleaseStatusEnum.Releasing]: '鍙戝竷涓�',
-  [FlexTaskReleaseStatusEnum.Stoping]: '宸插仠姝�',
-};
-
 type Props = CommonTaskCardProps & {
   showActions?: boolean;
-  status?: FlexTaskReleaseStatusEnum;
+  status?: EnumTaskStatus;
   mode?: 'taskManage' | 'normal';
 
-  taskName?: string;
-  startDate?: string;
-  endDate?: string;
-  address?: string;
-  creationTime?: string;
-  fee?: number;
-  applyWorkerCount?: number;
+  name?: string;
+  beginTime?: string;
+  endTime?: string;
+  addressName?: string;
+  createdTime?: string;
+  serviceFee?: number;
+  userCount?: number;
   unit?: string;
-  releaseStatus?: API.FlexTaskReleaseStatusEnum;
+  releaseStatus?: EnumTaskReleaseStatus;
 };
 
 const props = withDefaults(defineProps<Props>(), {
@@ -119,13 +104,13 @@
       value: ManageActions.Detail,
     }
   );
-  if (props.releaseStatus === FlexTaskReleaseStatusEnum.Stoping) {
+  if (props.releaseStatus === EnumTaskReleaseStatus.Stopped) {
     _menuList.push({
       name: '鍙戝竷',
       value: ManageActions.Publish,
     });
   }
-  if (props.releaseStatus === FlexTaskReleaseStatusEnum.Releasing) {
+  if (props.releaseStatus === EnumTaskReleaseStatus.InProcess) {
     _menuList.push({
       name: '鍋滄鍙戝竷',
       value: ManageActions.Stop,
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index d4ebf8b..f260f44 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -125,20 +125,6 @@
   AliyunSms = 10,
 }
 
-/** 鐭俊妯℃澘绫诲瀷 */
-export enum EnumSmsTemplateType {
-  /**鐧诲綍 */
-  Login = 0,
-  /**娉ㄥ唽 */
-  Register = 1,
-  /**淇敼瀵嗙爜 */
-  UpdatePassword = 2,
-  /**缁戝畾鎵嬫満鍙风爜 */
-  BindPhoneNumber = 3,
-  /**淇敼鎵嬫満鍙风爜 */
-  UpdatePhoneNumber = 4,
-}
-
 /** 浠诲姟缁撶畻鐘舵�� */
 export enum EnumTaskCheckReceiveStatus {
   /**寰呴獙鏀� */
diff --git a/packages/constants/task.ts b/packages/constants/task.ts
index ccc95e1..ef18f0a 100644
--- a/packages/constants/task.ts
+++ b/packages/constants/task.ts
@@ -1,4 +1,9 @@
-import { EnumBillingMethod, EnumUserGender, EnumSettlementCycle } from './apiEnum';
+import {
+  EnumBillingMethod,
+  EnumUserGender,
+  EnumSettlementCycle,
+  EnumTaskReleaseStatus,
+} from './apiEnum';
 
 export const EnumBillingMethodText = {
   [EnumBillingMethod.Month]: '鎸夋湀',
@@ -30,3 +35,8 @@
   [EnumBillingMethod.Hour]: '鍏�/灏忔椂',
   [EnumBillingMethod.Piece]: '鍏�/浠�',
 };
+
+export const EnumTaskReleaseStatusText = {
+  [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�',
+  [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�',
+};
diff --git a/packages/services/apiV2/auth.ts b/packages/services/apiV2/auth.ts
index 00b5ddb..f783319 100644
--- a/packages/services/apiV2/auth.ts
+++ b/packages/services/apiV2/auth.ts
@@ -53,7 +53,7 @@
 
 /** 瀵嗙爜鐧诲綍 POST /api/user/auth/passwordLogin */
 export async function passwordLogin(body: API.PasswordLoginCommand, options?: API.RequestConfig) {
-  return request<API.PasswordLoginCommandCallback>('/api/user/auth/passwordLogin', {
+  return request<API.LoginCommandCallback>('/api/user/auth/passwordLogin', {
     method: 'POST',
     headers: {
       'Content-Type': 'application/json-patch+json',
@@ -63,9 +63,24 @@
   });
 }
 
-/** 鍙戦�侀獙璇佺爜 POST /api/user/auth/sendVerifyCode */
-export async function sendVerifyCode(body: API.SendVerifyCodeCommand, options?: API.RequestConfig) {
-  return request<string>('/api/user/auth/sendVerifyCode', {
+/** 鍙戦�佺櫥褰曟垨娉ㄥ唽鐭俊 POST /api/user/auth/sendLoginOrRegisterVerifyCode */
+export async function sendLoginOrRegisterVerifyCode(
+  body: API.SendLoginOrRegisterVerifyCodeCommand,
+  options?: API.RequestConfig
+) {
+  return request<string>('/api/user/auth/sendLoginOrRegisterVerifyCode', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
+/** 鐭俊鐧诲綍 POST /api/user/auth/smsLogin */
+export async function smsLogin(body: API.SmsLoginCommand, options?: API.RequestConfig) {
+  return request<API.LoginCommandCallback>('/api/user/auth/smsLogin', {
     method: 'POST',
     headers: {
       'Content-Type': 'application/json-patch+json',
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index dcda25c..3671cc8 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -2,21 +2,21 @@
 /* eslint-disable */
 // API 鏇存柊鏃堕棿锛�
 // API 鍞竴鏍囪瘑锛�
-import * as dictionary from './dictionary';
-import * as menu from './menu';
-import * as enterprise from './enterprise';
-import * as task from './task';
-import * as auth from './auth';
-import * as user from './user';
-import * as role from './role';
 import * as resource from './resource';
+import * as user from './user';
+import * as dictionary from './dictionary';
+import * as auth from './auth';
+import * as task from './task';
+import * as enterprise from './enterprise';
+import * as role from './role';
+import * as menu from './menu';
 export default {
-  dictionary,
-  menu,
-  enterprise,
-  task,
-  auth,
-  user,
-  role,
   resource,
+  user,
+  dictionary,
+  auth,
+  task,
+  enterprise,
+  role,
+  menu,
 };
diff --git a/packages/services/apiV2/task.ts b/packages/services/apiV2/task.ts
index 23c1be7..5dd6235 100644
--- a/packages/services/apiV2/task.ts
+++ b/packages/services/apiV2/task.ts
@@ -2,6 +2,18 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
+/** 鍒犻櫎浠诲姟 DELETE /api/flexjob/task/deleteTaskInfo */
+export async function deleteTaskInfo(body: API.DeleteTaskInfoCommand, options?: API.RequestConfig) {
+  return request<number>('/api/flexjob/task/deleteTaskInfo', {
+    method: 'DELETE',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 鏌ヨ浠诲姟璇︽儏 GET /api/flexjob/task/getTaskInfo */
 export async function getTaskInfo(
   // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
@@ -19,17 +31,14 @@
 
 /** 鏌ヨ浠诲姟鍒嗛〉鍒楄〃 POST /api/flexjob/task/getTaskInfos */
 export async function getTaskInfos(body: API.GetTaskInfosQuery, options?: API.RequestConfig) {
-  return request<API.PagedListQueryResultGetTaskInfosQueryResultItem>(
-    '/api/flexjob/task/getTaskInfos',
-    {
-      method: 'POST',
-      headers: {
-        'Content-Type': 'application/json-patch+json',
-      },
-      data: body,
-      ...(options || {}),
-    }
-  );
+  return request<API.GetTaskInfosQueryResult>('/api/flexjob/task/getTaskInfos', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
 }
 
 /** 淇濆瓨浠诲姟 POST /api/flexjob/task/saveTaskInfo */
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index dc7dd0d..4e963e9 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -122,6 +122,10 @@
     ids: string[];
   }
 
+  interface DeleteTaskInfoCommand {
+    ids: string[];
+  }
+
   enum EnumBillingMethod {
     /**鎸夋湀 */
     Month = 10,
@@ -233,19 +237,6 @@
   enum EnumSmsAccess {
     /**闃块噷浜戠煭淇� */
     AliyunSms = 10,
-  }
-
-  enum EnumSmsTemplateType {
-    /**鐧诲綍 */
-    Login = 0,
-    /**娉ㄥ唽 */
-    Register = 1,
-    /**淇敼瀵嗙爜 */
-    UpdatePassword = 2,
-    /**缁戝畾鎵嬫満鍙风爜 */
-    BindPhoneNumber = 3,
-    /**淇敼鎵嬫満鍙风爜 */
-    UpdatePhoneNumber = 4,
   }
 
   enum EnumTaskCheckReceiveStatus {
@@ -422,6 +413,24 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: GetTaskInfoQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetTaskInfosQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetTaskInfosQueryResult;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -621,6 +630,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultLoginCommandCallback {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: LoginCommandCallback;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultPagedListQueryResultGetDictionaryCategoriesQueryResultItem {
     /** 璺熻釜Id */
     traceId?: string;
@@ -701,42 +728,6 @@
     /** 閿欒鐮� */
     errorCode?: string;
     data?: PagedListQueryResultGetRolesQueryResultItem;
-    /** 鎵ц鎴愬姛 */
-    success?: boolean;
-    /** 閿欒淇℃伅 */
-    msg?: any;
-    /** 闄勫姞鏁版嵁 */
-    extras?: any;
-    /** 鏃堕棿鎴� */
-    timestamp?: number;
-  }
-
-  interface FriendlyResultPagedListQueryResultGetTaskInfosQueryResultItem {
-    /** 璺熻釜Id */
-    traceId?: string;
-    /** 鐘舵�佺爜 */
-    code?: number;
-    /** 閿欒鐮� */
-    errorCode?: string;
-    data?: PagedListQueryResultGetTaskInfosQueryResultItem;
-    /** 鎵ц鎴愬姛 */
-    success?: boolean;
-    /** 閿欒淇℃伅 */
-    msg?: any;
-    /** 闄勫姞鏁版嵁 */
-    extras?: any;
-    /** 鏃堕棿鎴� */
-    timestamp?: number;
-  }
-
-  interface FriendlyResultPasswordLoginCommandCallback {
-    /** 璺熻釜Id */
-    traceId?: string;
-    /** 鐘舵�佺爜 */
-    code?: number;
-    /** 閿欒鐮� */
-    errorCode?: string;
-    data?: PasswordLoginCommandCallback;
     /** 鎵ц鎴愬姛 */
     success?: boolean;
     /** 閿欒淇℃伅 */
@@ -1155,7 +1146,7 @@
     /** 浼佷笟Id */
     enterpriseId?: string;
     /** 浼佷笟鍏ㄧО */
-    enterpriseName?: string;
+    enterpriseEnterpriseName?: string;
     /** 鍦ㄦ嫑宀椾綅鏁伴噺 */
     taskCount?: number;
     /** 浠诲姟鍚嶇О */
@@ -1204,7 +1195,9 @@
   interface GetTaskInfoQueryResultBenefit {
     /** 绂忓埄缂栧彿 */
     benefitCode?: string;
-    /** 绂忓埄 */
+    /** 绂忓埄鍥炬爣 */
+    benefitField2?: string;
+    /** 绂忓埄鍚嶇О */
     benefitContent?: string;
   }
 
@@ -1219,6 +1212,8 @@
     pageModel?: PagedListQueryPageModel;
     /** 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛� */
     keywords?: string;
+    /** 浼佷笟Id */
+    enterpriseId?: string;
     /** 鍙戝竷鏃堕棿-寮�濮� */
     beginTime?: string;
     /** 鍙戝竷鏃堕棿-缁撴潫 */
@@ -1232,6 +1227,24 @@
     status?: EnumTaskStatus;
     releaseStatus?: EnumTaskReleaseStatus;
     recommendStatus?: EnumTaskRecommendStatus;
+  }
+
+  interface GetTaskInfosQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetTaskInfosQueryResultItem[];
+    count?: GetTaskInfosQueryResultCount;
+  }
+
+  interface GetTaskInfosQueryResultCount {
+    /** 寰呭畨鎺掓暟閲� */
+    waitAssignCount?: number;
+    /** 宸插畨鎺掓暟閲� */
+    completedAssignCount?: number;
+    /** 鍙戝竷涓暟閲� */
+    inProcessReleaseCount?: number;
+    /** 宸插仠姝㈡暟閲� */
+    stoppedReleaseCount?: number;
   }
 
   interface GetTaskInfosQueryResultItem {
@@ -1294,6 +1307,13 @@
 
   type GetUserResumeQueryResult = Record<string, any>;
 
+  interface LoginCommandCallback {
+    /** 鐢ㄦ埛璁块棶浠ょ墝 */
+    accessToken?: string;
+    /** 鍒锋柊浠ょ墝 */
+    refreshToken?: string;
+  }
+
   interface PagedListQueryPageModel {
     /** 琛屾暟 */
     rows?: number;
@@ -1339,12 +1359,6 @@
     data?: GetRolesQueryResultItem[];
   }
 
-  interface PagedListQueryResultGetTaskInfosQueryResultItem {
-    pageModel?: PagedListQueryResultPageModel;
-    /** 鏁版嵁 */
-    data?: GetTaskInfosQueryResultItem[];
-  }
-
   interface PagedListQueryResultPageModel {
     /** 琛屾暟 */
     rows?: number;
@@ -1365,13 +1379,6 @@
     password: string;
     type?: EnumUserType;
     clientType?: EnumClientType;
-  }
-
-  interface PasswordLoginCommandCallback {
-    /** 鐢ㄦ埛璁块棶浠ょ墝 */
-    accessToken?: string;
-    /** 鍒锋柊浠ょ墝 */
-    refreshToken?: string;
   }
 
   interface SaveDictionaryCategoryCommand {
@@ -1642,10 +1649,9 @@
     data?: any;
   }
 
-  interface SendVerifyCodeCommand {
+  interface SendLoginOrRegisterVerifyCodeCommand {
     /** 鎵嬫満鍙风爜 */
-    phoneNumber?: string;
-    templateCode?: EnumSmsTemplateType;
+    phoneNumber: string;
   }
 
   interface SetDictionaryDataIsDisabledCommand {
@@ -1722,5 +1728,14 @@
     status?: EnumUserStatus;
   }
 
+  interface SmsLoginCommand {
+    /** 鎵嬫満鍙风爜 */
+    phoneNumber: string;
+    /** 楠岃瘉鐮� */
+    verifyCode: string;
+    type?: EnumUserType;
+    clientType?: EnumClientType;
+  }
+
   type SyncHumanResourcesAreaDictionaryDataCommand = Record<string, any>;
 }

--
Gitblit v1.9.1