From 354fa08d53f4cd97014bfb0008c8c5f0326bbdd3 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 11 八月 2025 09:38:35 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue                            |   50 +++++-----------
 apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue                       |   17 +++--
 apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue                      |   16 ++---
 packages/components/src/Card/FlexJobTopView.vue                                       |    6 +-
 packages/constants/task.ts                                                            |    6 ++
 apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue                          |   16 +++++
 apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue               |    4 
 apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue                           |   15 +++--
 packages/components/src/Card/MyTaskCard.vue                                           |   10 +-
 apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue |    4 
 packages/hooks/task.ts                                                                |    5 +
 11 files changed, 77 insertions(+), 72 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
index 3a23ff1..11a4540 100644
--- a/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/jobApplicationManage/jobApplicationManage/InnerPage.vue
@@ -61,10 +61,10 @@
 const { queryMenuState, infiniteLoadingProps, invalidateQueries } = useTaskList();
 
 const releaseing = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.releaseing ?? 0;
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.inProcessReleaseCount ?? 0;
 });
 const stoping = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.stoping ?? 0;
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.stoppedReleaseCount ?? 0;
 });
 
 async function handleChangeStatus(
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
index 5334987..46667a7 100644
--- a/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
+++ b/apps/bMiniApp/src/subpackages/task/components/TaskCheckCard.vue
@@ -10,13 +10,13 @@
     >
       <template #actions>
         <nut-button
-          v-if="checkAcceptStatus === FlexTaskCheckAcceptStatusEnum.Wait"
+          v-if="checkAcceptStatus === EnumTaskCheckReceiveStatus.Wait"
           type="primary"
           class="task-check-card-phone-btn"
           >楠屾敹</nut-button
         >
         <div v-else class="task-check-card-phone-status" :style="{ color: Colors.Success }">
-          {{ FlexTaskCheckAcceptStatusEnumText[checkAcceptStatus] }}
+          {{ EnumTaskCheckReceiveStatusText[checkAcceptStatus] }}
         </div>
       </template>
     </TaskCheckPersonalView>
@@ -25,11 +25,12 @@
 
 <script setup lang="ts">
 import TaskCheckPersonalView from './TaskCheckPersonalView.vue';
-import { Colors, Gender } from '@12333/constants';
 import {
-  FlexTaskCheckAcceptStatusEnum,
-  FlexTaskCheckAcceptStatusEnumText,
-} from '@12333/constants/task';
+  Colors,
+  EnumUserGender,
+  EnumTaskCheckReceiveStatus,
+  EnumTaskCheckReceiveStatusText,
+} from '@12333/constants';
 
 defineOptions({
   name: 'TaskCheckCard',
@@ -38,10 +39,10 @@
 type Props = {
   avatarUrl?: string;
   name?: string;
-  genderType?: Gender;
+  genderType?: EnumUserGender;
   isRealName?: boolean;
   contactPhone?: string;
-  checkAcceptStatus?: API.FlexTaskCheckAcceptStatusEnum;
+  checkAcceptStatus?: EnumTaskCheckReceiveStatus;
 };
 
 const props = withDefaults(defineProps<Props>(), {});
diff --git a/apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue b/apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue
index 55a7923..c29a64e 100644
--- a/apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue
+++ b/apps/bMiniApp/src/subpackages/task/components/TaskCheckPersonalView.vue
@@ -19,7 +19,7 @@
 
 <script setup lang="ts">
 import { FlexJobTopView } from '@12333/components';
-import { Gender } from '@12333/constants';
+import { EnumUserGender } from '@12333/constants';
 
 defineOptions({
   name: 'TaskCheckPersonalView',
@@ -28,7 +28,7 @@
 type Props = {
   avatarUrl?: string;
   name?: string;
-  genderType?: Gender;
+  genderType?: EnumUserGender;
   isRealName?: boolean;
   contactPhone?: string;
 };
diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index db4237e..9d19582 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -217,7 +217,21 @@
   name: [{ required: true, message: '璇疯緭鍏ヤ换鍔″悕绉�' }],
   genderLimit: [{ required: true, message: '璇烽�夋嫨鎬у埆瑕佹眰' }],
   addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }],
-
+  billingMethod: [
+    {
+      required: true,
+      message: '璇烽�夋嫨鏀惰垂鏂瑰紡',
+      validator: () => {
+        if (!form.billingMethod) {
+          return Promise.reject('璇烽�夋嫨鏈嶅姟璐圭被鍨�');
+        }
+        if (!form.serviceFee) {
+          return Promise.reject('璇疯緭鍏ユ湇鍔¤垂');
+        }
+        return Promise.resolve(true);
+      },
+    },
+  ],
   weMapInfo: [
     { required: true, message: '璇疯缃伐浣滃湴鐐�', validator: FormValidator.validatorWeMap },
   ],
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue
index aba6805..639db70 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheck/InnerPage.vue
@@ -1,7 +1,7 @@
 <template>
-  <Calendar v-model="queryState.date"></Calendar>
+  <Calendar v-model="queryMenuState.time"></Calendar>
   <ProTabs
-    v-model="queryState.status"
+    v-model="queryMenuState.status"
     name="task-tab"
     :showPaneContent="false"
     class="task-tabs"
@@ -9,20 +9,21 @@
     title-gutter="8"
     title-scroll
   >
+    <ProTabPane title="寰呮彁浜�" pane-key="10"></ProTabPane>
     <ProTabPane title="寰呴獙鏀�" pane-key="10"></ProTabPane>
     <ProTabPane title="宸查獙鏀�" pane-key="20"></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.status"
+    :key="queryMenuState.status"
   >
     <template #renderItem="{ item }">
       <MyTaskCard
-        :taskName="item.taskName"
-        :startDate="item.startDate"
-        :endDate="item.endDate"
-        :address="item.address"
+        :name="item.name"
+        :beginTime="item.beginTime"
+        :endTime="item.endTime"
+        :addressName="item.addressName"
         @click="goSubmitTaskDetail(item)"
       />
     </template>
@@ -32,42 +33,21 @@
 <script setup lang="ts">
 import { MyTaskCard, ProTabs, ProTabPane, Calendar } from '@12333/components';
 import Taro from '@tarojs/taro';
-import { useInfiniteLoading } from '@12333/hooks';
-import { OrderInputType } from '@12333/constants';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import { useTaskList } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const queryState = reactive({
-  status: '10',
-  date: new Date(),
+const { queryMenuState, infiniteLoadingProps } = useTaskList({
+  defaultQueryMenuState: {
+    status: EnumTaskStatus.Wait,
+  },
 });
 
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetFlexTaskListInput = {
-      isOverCheck: queryState.status === '20',
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
-      },
-    };
-
-    return flexWorkerServices.getFlexTaskByIsOverCheck(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['flexWorkerServices/getFlexTaskByIsOverCheck', queryState],
-  }
-);
-
-function goSubmitTaskDetail(item: API.GetFlexTaskListOutput) {
+function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
   Taro.navigateTo({
-    url: `${RouterPath.taskCheckDetail}?taskId=${item.taskId}`,
+    url: `${RouterPath.taskCheckDetail}?taskId=${item.id}`,
   });
 }
 </script>
diff --git a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
index 5728029..a91b416 100644
--- a/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskCheckDetail/InnerPage.vue
@@ -2,8 +2,8 @@
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
     <ContentView>
       <MyTaskCard
-        :task-name="detail.taskName"
-        :address="address"
+        :namee="detail.name"
+        :addressName="detail.addressName"
         :showMyTaskArrow="false"
         :showTime="false"
       ></MyTaskCard>
@@ -32,7 +32,7 @@
 <script setup lang="ts">
 import Taro from '@tarojs/taro';
 import { useQuery } from '@tanstack/vue-query';
-import * as flexWorkerServices from '@12333/services/api/FlexWorker';
+import * as taskServices from '@12333/services/apiV2/task';
 import { useInfiniteLoading } from '@12333/hooks';
 import { OrderInputType } from '@12333/constants';
 import TaskCheckCard from '../components/TaskCheckCard.vue';
@@ -52,20 +52,16 @@
   data: detail,
   refetch,
 } = useQuery({
-  queryKey: ['flexWorkerServices/getFlexTaskDto', taskId],
+  queryKey: ['taskServices/getTaskInfo', taskId],
   queryFn: async () => {
-    return await flexWorkerServices.getFlexTaskDto(
+    return await taskServices.getTaskInfo(
       { id: taskId },
       {
         showLoading: false,
       }
     );
   },
-  placeholderData: () => ({} as API.GetFlexTaskDtoOutput),
-});
-
-const address = computed(() => {
-  return `${detail.value.provinceName} ${detail.value.cityName} ${detail.value.areaName} ${detail.value.address}`;
+  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
 });
 
 const queryState = reactive({
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index 195ea72..b877a4a 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -8,8 +8,11 @@
     title-gutter="8"
     title-scroll
   >
-    <ProTabPane :title="`寰呭畨鎺�(${notCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
-    <ProTabPane :title="`宸插畨鎺�(${hasCount})`" :pane-key="EnumTaskStatus.Complete"></ProTabPane>
+    <ProTabPane :title="`寰呭畨鎺�(${waitAssignCount})`" :pane-key="EnumTaskStatus.Wait"></ProTabPane>
+    <ProTabPane
+      :title="`宸插畨鎺�(${completedAssignCount})`"
+      :pane-key="EnumTaskStatus.Complete"
+    ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list"
@@ -62,11 +65,11 @@
   },
 });
 
-const hasCount = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.hasCount ?? 0;
+const completedAssignCount = computed(() => {
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.completedAssignCount ?? 0;
 });
-const notCount = computed(() => {
-  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.notCount ?? 0;
+const waitAssignCount = computed(() => {
+  return infiniteLoadingProps.value?.listData?.pages?.[0]?.objectData?.waitAssignCount ?? 0;
 });
 
 function goSubmitTaskDetail(item: API.GetTaskInfosQueryResultItem) {
diff --git a/packages/components/src/Card/FlexJobTopView.vue b/packages/components/src/Card/FlexJobTopView.vue
index 35f10ac..4461f81 100644
--- a/packages/components/src/Card/FlexJobTopView.vue
+++ b/packages/components/src/Card/FlexJobTopView.vue
@@ -6,7 +6,7 @@
         <div class="flexJob-card-top-info-name">{{ name }}</div>
         <div class="flexJob-card-top-info-gender">
           <img
-            v-if="genderType === Gender.Male"
+            v-if="genderType === EnumUserGender.Male"
             :src="IconMale"
             class="flexJob-card-top-info-gender-icon"
           />
@@ -28,7 +28,7 @@
 <script setup lang="ts">
 import IconMale from '@/assets/mine/icon-male.png';
 import IconFemale from '@/assets/mine/icon-female.png';
-import { AvatarImage, Gender } from '@12333/constants';
+import { AvatarImage, EnumUserGender } from '@12333/constants';
 import { Avatar } from '@12333/components';
 
 defineOptions({
@@ -40,7 +40,7 @@
 
   avatarUrl?: string;
   name?: string;
-  genderType?: Gender;
+  genderType?: EnumUserGender;
   age?: number;
   educationalLevel?: string;
   arrangeCount?: number;
diff --git a/packages/components/src/Card/MyTaskCard.vue b/packages/components/src/Card/MyTaskCard.vue
index 8283af6..d86170e 100644
--- a/packages/components/src/Card/MyTaskCard.vue
+++ b/packages/components/src/Card/MyTaskCard.vue
@@ -6,7 +6,7 @@
     </template>
     <div class="my-task-card-time" v-if="showTime">
       {{
-        `${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 v-else></div>
@@ -27,10 +27,10 @@
   showMyTaskArrow?: boolean;
   showTime?: boolean;
 
-  startDate?: string;
-  endDate?: string;
-  taskName?: string;
-  address?: string;
+  name?: string;
+  beginTime?: string;
+  endTime?: string;
+  addressName?: string;
 };
 
 const props = withDefaults(defineProps<Props>(), {
diff --git a/packages/constants/task.ts b/packages/constants/task.ts
index ef18f0a..bc23d2c 100644
--- a/packages/constants/task.ts
+++ b/packages/constants/task.ts
@@ -3,6 +3,7 @@
   EnumUserGender,
   EnumSettlementCycle,
   EnumTaskReleaseStatus,
+  EnumTaskCheckReceiveStatus,
 } from './apiEnum';
 
 export const EnumBillingMethodText = {
@@ -40,3 +41,8 @@
   [EnumTaskReleaseStatus.InProcess]: '鍙戝竷涓�',
   [EnumTaskReleaseStatus.Stopped]: '宸插仠姝�',
 };
+
+export const EnumTaskCheckReceiveStatusText = {
+  [EnumTaskCheckReceiveStatus.Wait]: '寰呴獙鏀�',
+  [EnumTaskCheckReceiveStatus.Completed]: '宸查獙鏀�',
+};
diff --git a/packages/hooks/task.ts b/packages/hooks/task.ts
index 3a07d88..57079fd 100644
--- a/packages/hooks/task.ts
+++ b/packages/hooks/task.ts
@@ -11,6 +11,7 @@
 import { trim } from '@12333/utils';
 import { MaybeRef, reactive, ref, unref } from 'vue';
 import * as taskServices from '@12333/services/apiV2/task';
+import dayjs from 'dayjs';
 
 export enum HomeOrderType {
   Recommend = 'Recommend',
@@ -28,6 +29,7 @@
     settlementCycle?: EnumSettlementCycle;
     benefitCodes?: string;
     enterpriseId?: string;
+    time?: Date;
   };
 };
 
@@ -43,6 +45,7 @@
     status: '' as any as EnumTaskStatus,
     releaseStatus: EnumTaskReleaseStatus.InProcess,
     enterpriseId: '',
+    time: '' as any as Date,
     ...defaultQueryMenuState,
   });
 
@@ -75,6 +78,8 @@
         status: queryMenuState.status,
         releaseStatus: queryMenuState.releaseStatus,
         enterpriseId: queryMenuState.enterpriseId,
+        beginTime: dayjs(queryMenuState.time).format('YYYY-MM-DD 00:00:00'),
+        endTime: dayjs(queryMenuState.time).format('YYYY-MM-DD 23:59:59'),
       };
 
       return taskServices.getTaskInfos(params, {

--
Gitblit v1.9.1