From e213f4fbc54d69a5c478a5c44857c0eb1a2a54ae Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 26 十二月 2025 09:18:50 +0800
Subject: [PATCH] feat: init

---
 packages/components/src/Card/ReserveServiceCard.vue                                           |  132 +++++-----
 apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue                   |   64 +----
 packages/constants/index.ts                                                                   |    1 
 packages/hooks/standardOrder.ts                                                               |   72 +++++
 packages/services/apiV2/index.ts                                                              |    4 
 apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue |    9 
 packages/services/apiV2/typings.d.ts                                                          |  196 +++++++++++++++
 packages/components/src/Card/TaskPrice.vue                                                    |    5 
 packages/constants/standardOrder.ts                                                           |   36 +++
 packages/services/apiV2/taskUser.ts                                                           |   51 ++++
 apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue             |   48 +++
 apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue       |   60 +---
 12 files changed, 507 insertions(+), 171 deletions(-)

diff --git a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
index 75be597..38cc784 100644
--- a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManage/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.status"
+    v-model="queryState.appointmentStatus"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -11,35 +11,40 @@
     <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
     <ProTabPane
       :title="`寰呯‘璁"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
+      :pane-key="EnumStandardOrderAppointmentStatus.WaitSure"
     ></ProTabPane>
     <ProTabPane
       :title="`寰呮湇鍔"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
+      :pane-key="EnumStandardOrderAppointmentStatus.WaitServe"
     ></ProTabPane>
     <ProTabPane
       :title="`宸插畬鎴恅"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
+      :pane-key="EnumStandardOrderAppointmentStatus.Completed"
     ></ProTabPane>
-    <ProTabPane :title="`宸插彇娑坄" :pane-key="40"></ProTabPane>
+    <ProTabPane
+      :title="`宸插彇娑坄"
+      :pane-key="EnumStandardOrderAppointmentStatus.Cancelled"
+    ></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.status"
+    :key="queryState.appointmentStatus"
   >
     <template #renderItem="{ item }">
       <ReserveServiceCard
-        :name="item.name"
+        :serviceName="item.serviceName"
         :begin-time="item.beginTime"
+        :serviceFee="item.serviceFee"
         :end-time="item.endTime"
-        :billing-method="item.billingMethod"
-        :benefits="item.benefits"
-        :service-fee="item.serviceFee"
-        :settlement-cycle="item.settlementCycle"
-        :address-name="item.addressName"
+        :supplierEnterpriseName="item.supplierEnterpriseName"
+        :address-detail="item.addressDetail"
+        :appointmentStatus="item.appointmentStatus"
         @click="goDetail(item)"
       >
+        <template #serviceCustome>
+          {{ `鏈嶅姟浜哄憳锛�${item.serverNames}` }}
+        </template>
       </ReserveServiceCard>
     </template>
   </InfiniteLoading>
@@ -47,40 +52,15 @@
 
 <script setup lang="ts">
 import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
-import { useInfiniteLoading } from '@12333/hooks';
-import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
-import * as taskServices from '@12333/services/apiV2/task';
+import { useGetStandardOrders } from '@12333/hooks';
+import { EnumStandardOrderAppointmentStatus } from '@12333/constants';
 import Taro from '@tarojs/taro';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const queryState = reactive({
-  status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
-});
-
-const userStore = useUserStore();
-
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetTaskInfosQuery = {
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      },
-    };
-
-    return taskServices.getOpenTaskInfos(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['taskServices/getOpenTaskInfos', queryState],
-  }
-);
+const { queryState, infiniteLoadingProps } = useGetStandardOrders();
 
 function goDetail(item: any) {
   Taro.navigateTo({
diff --git a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
index 20f5aae..24fff87 100644
--- a/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/appointmentManage/appointmentManageDetail/InnerPage.vue
@@ -1,7 +1,7 @@
 <template>
   <!-- <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch"> -->
   <ContentScrollView hasPaddingTop>
-    <MineServiceDetailView />
+    <MineServiceDetailView :addressDetail="detail?.addressDetail" />
   </ContentScrollView>
   <PageFooter>
     <PageFooterBtn type="primary" class="business-card-btn" @click="goCancel"
@@ -17,8 +17,7 @@
 <script setup lang="ts">
 import { MineServiceDetailView } from '@12333/components';
 import Taro from '@tarojs/taro';
-import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { RouterPath } from '@/constants';
+import { useStandardOrder } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
@@ -27,6 +26,10 @@
 const route = Taro.useRouter();
 const id = route.params?.id as string;
 
+const { detail } = useStandardOrder({
+  id: id,
+});
+
 function goCancel() {}
 
 function goConfirm() {}
diff --git a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
index ca9d581..1d64964 100644
--- a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManage/InnerPage.vue
@@ -1,6 +1,6 @@
 <template>
   <ProTabs
-    v-model="queryState.status"
+    v-model="queryState.payStatus"
     name="home-tab"
     :showPaneContent="false"
     class="home-tabs"
@@ -9,36 +9,29 @@
     title-scroll
   >
     <ProTabPane :title="`鍏ㄩ儴`" :pane-key="0"></ProTabPane>
-    <ProTabPane
-      :title="`寰呮敮浠榒"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitHire"
-    ></ProTabPane>
-    <ProTabPane
-      :title="`宸叉敮浠榒"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.WaitSignContract"
-    ></ProTabPane>
-    <ProTabPane
-      :title="`宸插畬鎴恅"
-      :pane-key="GetPersonalApplyTaskInfosQueryStatus.HireRefuse"
-    ></ProTabPane>
+    <ProTabPane :title="`寰呮敮浠榒" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
+    <ProTabPane :title="`宸叉敮浠榒" :pane-key="EnumStandardOrderPayStatus.Completed"></ProTabPane>
+    <ProTabPane :title="`宸插畬鎴恅" :pane-key="EnumStandardOrderPayStatus.Cancelled"></ProTabPane>
   </ProTabs>
   <InfiniteLoading
     scrollViewClassName="common-infinite-scroll-list home-list"
     v-bind="infiniteLoadingProps"
-    :key="queryState.status"
+    :key="queryState.payStatus"
   >
     <template #renderItem="{ item }">
       <ReserveServiceCard
-        :name="item.name"
+        :serviceName="item.serviceName"
         :begin-time="item.beginTime"
+        :serviceFee="item.serviceFee"
         :end-time="item.endTime"
-        :billing-method="item.billingMethod"
-        :benefits="item.benefits"
-        :service-fee="item.serviceFee"
-        :settlement-cycle="item.settlementCycle"
-        :address-name="item.addressName"
+        :supplierEnterpriseName="item.supplierEnterpriseName"
+        :address-detail="item.addressDetail"
+        :appointmentStatus="item.appointmentStatus"
         @click="goOrderDetail(item)"
       >
+        <template #serviceCustome>
+          {{ `鏈嶅姟浜哄憳锛�${item.serverNames}` }}
+        </template>
       </ReserveServiceCard>
     </template>
   </InfiniteLoading>
@@ -46,40 +39,15 @@
 
 <script setup lang="ts">
 import { ProTabs, ProTabPane, ReserveServiceCard } from '@12333/components';
-import { useUserStore } from '@/stores/modules/user';
-import { useInfiniteLoading } from '@12333/hooks';
-import { EnumPagedListOrder, GetPersonalApplyTaskInfosQueryStatus } from '@12333/constants';
-import * as taskServices from '@12333/services/apiV2/task';
+import { useGetStandardOrders } from '@12333/hooks';
+import { EnumStandardOrderPayStatus } from '@12333/constants';
 import Taro from '@tarojs/taro';
 
 defineOptions({
   name: 'InnerPage',
 });
 
-const queryState = reactive({
-  status: 0 as any as GetPersonalApplyTaskInfosQueryStatus,
-});
-
-const userStore = useUserStore();
-
-const { infiniteLoadingProps } = useInfiniteLoading(
-  ({ pageParam }) => {
-    let params: API.GetTaskInfosQuery = {
-      pageModel: {
-        rows: 20,
-        page: pageParam,
-        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
-      },
-    };
-
-    return taskServices.getOpenTaskInfos(params, {
-      showLoading: false,
-    });
-  },
-  {
-    queryKey: ['taskServices/getOpenTaskInfos', queryState],
-  }
-);
+const { queryState, infiniteLoadingProps } = useGetStandardOrders();
 
 function goOrderDetail(item: any) {
   Taro.navigateTo({
diff --git a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
index 637daf2..54203d0 100644
--- a/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
+++ b/apps/bStandardMiniApp/src/subpackages/orderManage/orderManageDetail/InnerPage.vue
@@ -4,11 +4,12 @@
     <MineServiceDetailView />
   </ContentScrollView>
   <PageFooter class="order-settle-bar">
-    <div class="order-settle-price-wrapper">
-      <div class="order-settle-price-label">鏀粯锛�</div>
-      <nut-price :price="155" size="large" />
-    </div>
-    <PageFooterBtn type="primary" class="business-card-btn">绔嬪嵆涓嬪崟</PageFooterBtn>
+    <PageFooterBtn class="business-card-btn" @click="cancelStandardOrderAppointment"
+      >鍙栨秷棰勭害</PageFooterBtn
+    >
+    <PageFooterBtn type="primary" class="business-card-btn" @click="handleSubmit"
+      >纭棰勭害</PageFooterBtn
+    >
   </PageFooter>
   <!-- </LoadingLayout> -->
 </template>
@@ -16,8 +17,10 @@
 <script setup lang="ts">
 import { MineServiceDetailView } from '@12333/components';
 import Taro from '@tarojs/taro';
-import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { useCheckReceiveTaskUserSubmit } from '@12333/hooks';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
+import { Message } from '@12333/utils';
+import { goBack } from '@/utils';
+import { useStandardOrder } from '@12333/hooks';
 
 defineOptions({
   name: 'InnerPage',
@@ -25,6 +28,37 @@
 
 const route = Taro.useRouter();
 const id = route.params?.id as string;
+
+const { detail } = useStandardOrder({
+  id: id,
+});
+
+async function cancelStandardOrderAppointment() {
+  try {
+    await Message.confirm({ message: '纭瑕佸彇娑堥绾﹀悧锛�' });
+    let params: API.CancelStandardOrderAppointmentCommand = {
+      id: id,
+    };
+    let res = await standardOrderServices.cancelStandardOrderAppointment(params);
+    if (res) {
+      Message.success('鎿嶄綔鎴愬姛');
+      goBack();
+    }
+  } catch (error) {}
+}
+
+async function handleSubmit() {
+  try {
+    let params: API.SureStandardOrderAppointmentCommand = {
+      id: id,
+    };
+    let res = await standardOrderServices.sureStandardOrderAppointment(params);
+    if (res) {
+      Message.success('鎿嶄綔鎴愬姛');
+      goBack();
+    }
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss">
diff --git a/packages/components/src/Card/ReserveServiceCard.vue b/packages/components/src/Card/ReserveServiceCard.vue
index 711023d..9af2e80 100644
--- a/packages/components/src/Card/ReserveServiceCard.vue
+++ b/packages/components/src/Card/ReserveServiceCard.vue
@@ -1,44 +1,44 @@
 <template>
   <div class="reserve-service-card-wrapper" :class="{ 'un-read': unRead }">
     <div class="reserve-service-card-title-wrapper">
-      <div class="reserve-service-card-title">{{ name }}</div>
+      <div class="reserve-service-card-title">{{ serviceName }}</div>
       <slot name="title-right">
-        <TaskPrice
-          v-if="releaseStatus !== EnumTaskReleaseStatus.Stopped"
-          :value="toThousand(serviceFee ?? 0)"
-          :unit="BillingMethodEnumUnit[billingMethod]"
-          :billingMethod="billingMethod"
-        />
+        <TaskPrice :value="toThousand(serviceFee ?? 0)" unit="鍏�" />
       </slot>
     </div>
     <div class="reserve-service-card-item-list">
       <div class="reserve-service-card-item">
-        鏈嶅姟鏃堕棿锛歿{ dayjs(beginTime).format('YYYY骞碝M鏈圖鏃�') }} 13:00-15:00
+        鏈嶅姟鏃堕棿锛歿{
+          `${dayjs(beginTime).format('YYYY骞碝M鏈圖鏃� HH:mm:ss')} - ${dayjs(endTime).format(
+            'YYYY骞碝M鏈圖鏃� HH:mm:ss'
+          )}`
+        }}
       </div>
-      <div class="reserve-service-card-item">鏈嶅姟鍦板潃锛歿{ addressName }}</div>
+      <div class="reserve-service-card-item">鏈嶅姟鍦板潃锛歿{ addressDetail }}</div>
     </div>
 
     <div class="reserve-service-card-footer">
       <div class="reserve-service-card-left">
-        <div class="reserve-service-card-footer-address">鏈嶅姟鏈烘瀯锛氭垜鏄満鏋勫悕绉�</div>
+        <div class="reserve-service-card-footer-address">
+          <slot name="serviceCustome"> 鏈嶅姟鏈烘瀯锛歿{ supplierEnterpriseName }} </slot>
+        </div>
       </div>
-      <div class="reserve-service-card-status">寰呯‘璁�</div>
+      <div class="reserve-service-card-status">
+        <slot name="status">
+          {{ EnumStandardOrderAppointmentStatusText[appointmentStatus] }}
+        </slot>
+      </div>
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
 import {
-  EnumBillingMethod,
-  EnumSettlementCycle,
-  EnumTaskCheckReceiveStatus,
-  EnumTaskRecommendStatus,
-  EnumTaskReleaseStatus,
-  EnumTaskSettlementStatus,
-  EnumTaskStatus,
-  EnumUserGender,
-  BillingMethodEnumUnit,
-  EnumTaskUserHireStatus,
+  EnumStandardOrderAppointmentStatus,
+  EnumEnterpriseCooperationServiceFeeCollectType,
+  EnumStandardOrderSettlementStatus,
+  EnumStandardOrderPayStatus,
+  EnumStandardOrderAppointmentStatusText,
 } from '@12333/constants';
 import dayjs from 'dayjs';
 import { toThousand } from '@12333/utils';
@@ -51,51 +51,61 @@
 type Props = {
   /** Id */
   id?: string;
-  /** 浠诲姟鍚嶇О */
-  name: string;
-  /** 浠诲姟鍗曞彿 */
+  /** 璁㈠崟鍙� */
   code?: string;
-  billingMethod?: EnumBillingMethod;
+  /** 鏈嶅姟鍚� */
+  serviceName?: string;
+  /** 鏈嶅姟鍗曞彿 */
+  serviceCode?: string;
+  /** 鏈嶅姟鍥剧墖 */
+  serviceFile?: string;
+  /** 鐪佸競鍖�+璇︾粏鍦板潃+闂ㄧ墝鍙� */
+  addressDetail?: string;
+  /** 鏈嶅姟璧峰鏃堕棿 */
+  beginTime?: string;
+  /** 鏈嶅姟鎴鏃堕棿 */
+  endTime?: string;
+  /** 涓嬪崟鐢ㄦ埛Id */
+  createdUserId?: string;
+  /** 涓嬪崟鐢ㄦ埛 */
+  createdUserName?: string;
+  /** 鑱旂郴鐢佃瘽 */
+  createdUserContactPhoneNumber?: string;
+  /** 涓嬪崟鏃堕棿 */
+  createdTime?: string;
+  appointmentStatus?: EnumStandardOrderAppointmentStatus;
+  /** 鐢叉柟浼佷笟Id */
+  partyAEnterpriseId?: string;
+  /** 鐢叉柟浼佷笟 */
+  partyAEnterpriseName?: string;
+  /** 渚涘簲鍟咺d */
+  supplierEnterpriseId?: string;
+  /** 渚涘簲鍟� */
+  supplierEnterpriseName?: string;
+  /** 鏈嶅姟浜哄憳 */
+  serverNames?: string;
+  /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
+  serverContactPhoneNumbers?: string;
+  payStatus?: EnumStandardOrderPayStatus;
+  /** 鏀粯瀹屾垚鏃堕棿 */
+  payCompletedTime?: string;
+  /** 瀹炰粯閲戦 */
+  payAmount?: number;
+  /** 瀹炴敹閲戦 */
+  receiveAmount?: number;
+  serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
   /** 鏈嶅姟璐� */
   serviceFee?: number;
-  settlementCycle?: EnumSettlementCycle;
-  /** 绂忓埄 */
-  benefits?: API.GetTaskInfoQueryResultBenefit[];
-  genderLimit?: EnumUserGender;
-  /** 璧勬牸璇佷功绫诲瀷 */
-  credentialLimits?: API.GetTaskInfoQueryResultCredentialLimit[];
-  /** 浠诲姟鍦扮偣鎵�灞炵渷浠界紪鍙� */
-  provinceCode?: string;
-  /** 浠诲姟鍦扮偣鎵�灞炵渷浠� */
-  provinceContent?: string;
-  /** 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙� */
-  cityCode?: string;
-  /** 浠诲姟鍦扮偣鎵�灞炲煄甯� */
-  cityContent?: string;
-  /** 浠诲姟鍦扮偣鍚嶇О */
-  addressName?: string;
-  /** 浠诲姟鍦扮偣璇︾粏鍦板潃 */
-  addressDetail?: string;
-  /** 缁忓害 */
-  longitude?: number;
-  /** 绾害 */
-  latitude?: number;
-  /** 鎶ュ悕浜烘暟 */
-  userCount?: number;
-  status?: EnumTaskStatus;
-  /** 浠诲姟寮�濮嬫椂闂� */
-  beginTime?: string;
-  /** 浠诲姟缁撴潫鏃堕棿 */
-  endTime?: string;
-  releaseStatus?: EnumTaskReleaseStatus;
-  checkReceiveStatus?: EnumTaskCheckReceiveStatus;
-  settlementStatus?: EnumTaskSettlementStatus;
-  recommendStatus?: EnumTaskRecommendStatus;
-  /** 鍒涘缓鏃堕棿 */
-  createdTime?: string;
-  hireStatus?: EnumTaskUserHireStatus;
+  settlementStatus?: EnumStandardOrderSettlementStatus;
+  /** 缁撶畻鍗曞彿 */
+  settlementCode?: string;
+  /** 缁撶畻鏃堕棿 */
+  settlementTime?: string;
+  /** 缁撶畻閲戦 */
+  settlementAmount?: number;
 
   unRead?: boolean;
+  showActions?: boolean;
 };
 
 const props = withDefaults(defineProps<Props>(), {
diff --git a/packages/components/src/Card/TaskPrice.vue b/packages/components/src/Card/TaskPrice.vue
index 0f93364..6a77f96 100644
--- a/packages/components/src/Card/TaskPrice.vue
+++ b/packages/components/src/Card/TaskPrice.vue
@@ -1,6 +1,9 @@
 <template>
   <div class="task-price">
-    <div class="task-price-decimal" v-if="billingMethod !== EnumBillingMethod.Face">
+    <div
+      class="task-price-decimal"
+      v-if="!!billingMethod || billingMethod !== EnumBillingMethod.Face"
+    >
       {{ value }}
     </div>
     <div class="task-price-unit">{{ unit }}</div>
diff --git a/packages/constants/index.ts b/packages/constants/index.ts
index 5de30ac..5248118 100644
--- a/packages/constants/index.ts
+++ b/packages/constants/index.ts
@@ -15,3 +15,4 @@
 export * from './apiEnum';
 export * from './enterpriseEmployee';
 export * from './enterpriseWallet';
+export * from './standardOrder';
diff --git a/packages/constants/standardOrder.ts b/packages/constants/standardOrder.ts
new file mode 100644
index 0000000..044ebc4
--- /dev/null
+++ b/packages/constants/standardOrder.ts
@@ -0,0 +1,36 @@
+import {
+  EnumGetStandardOrdersQueryScene,
+  EnumStandardOrderAppointmentStatus,
+  EnumStandardOrderPayStatus,
+  EnumStandardOrderSettlementStatus,
+  EnumStandardServiceReleaseStatus,
+} from './apiEnum';
+
+export const EnumStandardServiceReleaseStatusText = {
+  [EnumStandardServiceReleaseStatus.InProcess]: '鍙戝竷涓�',
+  [EnumStandardServiceReleaseStatus.Stopped]: '宸插仠姝�',
+};
+
+export const EnumStandardOrderAppointmentStatusText = {
+  [EnumStandardOrderAppointmentStatus.WaitSure]: '寰呯‘璁�',
+  [EnumStandardOrderAppointmentStatus.WaitServe]: '寰呮湇鍔�',
+  [EnumStandardOrderAppointmentStatus.Completed]: '宸插畬鎴�',
+  [EnumStandardOrderAppointmentStatus.Cancelled]: '宸插彇娑�',
+};
+
+export const EnumStandardOrderPayStatusText = {
+  [EnumStandardOrderPayStatus.Wait]: '寰呮敮浠�',
+  [EnumStandardOrderPayStatus.Completed]: '宸叉敮浠�',
+  [EnumStandardOrderPayStatus.Cancelled]: '宸插彇娑�',
+};
+
+export const EnumStandardOrderSettlementStatusText = {
+  [EnumStandardOrderSettlementStatus.Wait]: '寰呯粨绠�',
+  [EnumStandardOrderSettlementStatus.Completed]: '宸插畬鎴�',
+};
+
+export const EnumGetStandardOrdersQuerySceneText = {
+  [EnumGetStandardOrdersQueryScene.Appointment]: '棰勭害璁㈠崟',
+  [EnumGetStandardOrdersQueryScene.Pay]: '鏀粯璁㈠崟',
+  [EnumGetStandardOrdersQueryScene.Settlement]: '缁撶畻璁㈠崟',
+};
diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index d18be38..b241843 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -1,7 +1,10 @@
 import { useQuery, useQueryClient } from '@tanstack/vue-query';
 import * as standardServiceServices from '@12333/services/apiV2/standardService';
-import { computed, MaybeRef, unref } from 'vue';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
+import { computed, MaybeRef, reactive, unref } from 'vue';
 import { groupBy } from 'lodash';
+import { useInfiniteLoading } from '@12333/hooks';
+import { EnumStandardOrderAppointmentStatus, EnumStandardOrderPayStatus } from '@12333/constants';
 
 type UseStandardServiceDetailOptions = {
   id: MaybeRef<string>;
@@ -95,3 +98,70 @@
     standardServiceListForCategoryMap,
   };
 }
+
+export function useGetStandardOrders() {
+  const queryState = reactive({
+    appointmentStatus: 0 as any as EnumStandardOrderAppointmentStatus,
+    payStatus: 0 as any as EnumStandardOrderPayStatus,
+  });
+
+  const { infiniteLoadingProps } = useInfiniteLoading(
+    ({ pageParam }) => {
+      let params: API.GetStandardOrdersQuery = {
+        pageModel: {
+          rows: 20,
+          page: pageParam,
+        },
+      };
+
+      if (queryState.appointmentStatus) {
+        params.appointmentStatus = queryState.appointmentStatus;
+      }
+      if (queryState.payStatus) {
+        params.payStatus = queryState.payStatus;
+      }
+
+      return standardOrderServices.getStandardOrders(params, {
+        showLoading: false,
+      });
+    },
+    {
+      queryKey: ['standardOrderServices/getStandardOrders', queryState],
+    }
+  );
+
+  return {
+    queryState,
+    infiniteLoadingProps,
+  };
+}
+
+type UseStandardOrderOptions = {
+  id: MaybeRef<string>;
+  onSuccess?: (data: API.GetStandardOrderQueryResult) => any;
+};
+
+export function useStandardOrder({ id, onSuccess }: UseStandardOrderOptions) {
+  const {
+    isLoading,
+    isError,
+    data: detail,
+    refetch,
+  } = useQuery({
+    queryKey: ['standardOrderServices/getStandardOrder', id],
+    queryFn: async () => {
+      const params: API.APIgetStandardOrderParams = {
+        id: unref(id),
+      };
+      return await standardOrderServices.getStandardOrder(params, {
+        showLoading: false,
+      });
+    },
+    placeholderData: () => ({} as API.GetStandardOrderQueryResult),
+    onSuccess(data) {
+      onSuccess?.(data);
+    },
+  });
+
+  return { detail, isLoading, isError, refetch };
+}
diff --git a/packages/services/apiV2/index.ts b/packages/services/apiV2/index.ts
index 74abc28..10b88c6 100644
--- a/packages/services/apiV2/index.ts
+++ b/packages/services/apiV2/index.ts
@@ -14,11 +14,11 @@
 import * as logRecords from './logRecords';
 import * as dictionary from './dictionary';
 import * as taskCheckReceive from './taskCheckReceive';
+import * as taskUser from './taskUser';
 import * as standardOrder from './standardOrder';
 import * as standardService from './standardService';
 import * as userResume from './userResume';
 import * as auth from './auth';
-import * as taskUser from './taskUser';
 import * as enterpriseInsuranceProduct from './enterpriseInsuranceProduct';
 import * as eventUtils from './eventUtils';
 import * as enterpriseCooperationWallet from './enterpriseCooperationWallet';
@@ -45,11 +45,11 @@
   logRecords,
   dictionary,
   taskCheckReceive,
+  taskUser,
   standardOrder,
   standardService,
   userResume,
   auth,
-  taskUser,
   enterpriseInsuranceProduct,
   eventUtils,
   enterpriseCooperationWallet,
diff --git a/packages/services/apiV2/taskUser.ts b/packages/services/apiV2/taskUser.ts
index a66d30a..e7816d9 100644
--- a/packages/services/apiV2/taskUser.ts
+++ b/packages/services/apiV2/taskUser.ts
@@ -41,6 +41,42 @@
   });
 }
 
+/** 鏌ヨ浠诲姟瀹夋帓鐏靛伐璇︽儏 GET /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee */
+export async function getArrangeTaskEnterpriseEmployee(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APIgetArrangeTaskEnterpriseEmployeeParams,
+  options?: API.RequestConfig
+) {
+  return request<API.GetArrangeTaskEnterpriseEmployeeQueryResult>(
+    '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployee',
+    {
+      method: 'GET',
+      params: {
+        ...params,
+      },
+      ...(options || {}),
+    }
+  );
+}
+
+/** 鏌ヨ浠诲姟瀹夋帓鐏靛伐鍒楄〃 POST /api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees */
+export async function getArrangeTaskEnterpriseEmployees(
+  body: API.GetArrangeTaskEnterpriseEmployeesQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetArrangeTaskEnterpriseEmployeesQueryResult>(
+    '/api/flexjob/taskUser/getArrangeTaskEnterpriseEmployees',
+    {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json-patch+json',
+      },
+      data: body,
+      ...(options || {}),
+    }
+  );
+}
+
 /** B绔煡璇汉鍛樺畨鎺掑垎椤靛垪琛ㄤ俊鎭� POST /api/flexjob/taskUser/getArrangeTaskUsers */
 export async function getArrangeTaskUsers(
   body: API.GetArrangeTaskUsersQuery,
@@ -104,6 +140,21 @@
   });
 }
 
+/** 鏌ヨ寰呭畨鎺掍换鍔″垎椤靛垪琛� POST /api/flexjob/taskUser/getWaitArrangeTasks */
+export async function getWaitArrangeTasks(
+  body: API.GetWaitArrangeTasksQuery,
+  options?: API.RequestConfig
+) {
+  return request<API.GetWaitArrangeTasksQueryResult>('/api/flexjob/taskUser/getWaitArrangeTasks', {
+    method: 'POST',
+    headers: {
+      'Content-Type': 'application/json-patch+json',
+    },
+    data: body,
+    ...(options || {}),
+  });
+}
+
 /** 浠诲姟瀹夋帓 PUT /api/flexjob/taskUser/setTaskUserArrange */
 export async function setTaskUserArrange(
   body: API.SetTaskUserArrangeCommand,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index aeea194..9966d2e 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -104,6 +104,11 @@
     maxDeep?: number;
   }
 
+  interface APIgetArrangeTaskEnterpriseEmployeeParams {
+    /** 鐏靛伐Id */
+    id?: string;
+  }
+
   interface APIgetCheckReceiveTaskUserSubmitParams {
     /** 鎻愪氦Id锛堢敤浜嶣绔鎴风锛� */
     submitId?: string;
@@ -2189,6 +2194,42 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetArrangeTaskEnterpriseEmployeeQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetArrangeTaskEnterpriseEmployeeQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
+  interface FriendlyResultGetArrangeTaskEnterpriseEmployeesQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetArrangeTaskEnterpriseEmployeesQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetArrangeTaskUsersQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -3773,6 +3814,24 @@
     timestamp?: number;
   }
 
+  interface FriendlyResultGetWaitArrangeTasksQueryResult {
+    /** 璺熻釜Id */
+    traceId?: string;
+    /** 鐘舵�佺爜 */
+    code?: number;
+    /** 閿欒鐮� */
+    errorCode?: string;
+    data?: GetWaitArrangeTasksQueryResult;
+    /** 鎵ц鎴愬姛 */
+    success?: boolean;
+    /** 閿欒淇℃伅 */
+    msg?: any;
+    /** 闄勫姞鏁版嵁 */
+    extras?: any;
+    /** 鏃堕棿鎴� */
+    timestamp?: number;
+  }
+
   interface FriendlyResultGetWxmpSettingsQueryResult {
     /** 璺熻釜Id */
     traceId?: string;
@@ -4682,6 +4741,66 @@
     quickQuery?: string;
   }
 
+  interface GetArrangeTaskEnterpriseEmployeeQueryResult {
+    /** 鐏靛伐Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    gender?: EnumUserGender;
+    /** 骞撮緞 */
+    age?: number;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 鐢靛瓙鍚堝悓 */
+    contractUrl?: string;
+    /** 鍗忚璧峰鏃堕棿 */
+    contractBegin?: string;
+    /** 鍗忚缁堟鏃堕棿 */
+    contractEnd?: string;
+    /** 宸插畨鎺掍换鍔� */
+    taskInfos?: GetWaitArrangeTasksQueryResultItem[];
+  }
+
+  interface GetArrangeTaskEnterpriseEmployeesQuery {
+    /** 鍏抽敭瀛楋紙濮撳悕銆佽韩浠借瘉鍙枫�佹墜鏈哄彿锛� */
+    keywords?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetArrangeTaskEnterpriseEmployeesQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetArrangeTaskEnterpriseEmployeesQueryResultItem[];
+  }
+
+  interface GetArrangeTaskEnterpriseEmployeesQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 澶村儚 */
+    avatar?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 韬唤璇佸彿 */
+    identity?: string;
+    /** 鎵嬫満鍙� */
+    contactPhoneNumber?: string;
+    gender?: EnumUserGender;
+    /** 骞撮緞 */
+    age?: number;
+    /** 鏄惁瀹炲悕 */
+    isReal?: boolean;
+    realMethod?: EnumUserRealMethod;
+    /** 宸插畨鎺� */
+    arrangeTaskCount?: number;
+  }
+
   interface GetArrangeTaskUsersQuery {
     /** 浠诲姟Id */
     id?: string;
@@ -7957,6 +8076,18 @@
     serviceId?: string;
     /** 鏈嶅姟鍚� */
     serviceName?: string;
+    /** 鏈嶅姟鍗曞彿 */
+    serviceCode?: string;
+    /** 鏈嶅姟鍥剧墖 */
+    serviceFile?: string;
+    /** 涓嬪崟鐢ㄦ埛Id */
+    createdUserId?: string;
+    /** 涓嬪崟鐢ㄦ埛 */
+    createdUserName?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    createdUserContactPhoneNumber?: string;
+    /** 涓嬪崟鏃堕棿 */
+    createdTime?: string;
     /** 鐢叉柟浼佷笟Id */
     partyAEnterpriseId?: string;
     /** 鐢叉柟浼佷笟 */
@@ -8003,12 +8134,8 @@
     supplierEnterpriseId?: string;
     /** 渚涘簲鍟� */
     supplierEnterpriseName?: string;
-    /** 鏈嶅姟浜哄憳Id */
-    serverId?: string;
-    /** 鏈嶅姟浜哄憳濮撳悕 */
-    serverName?: string;
-    /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
-    serverContactPhoneNumber?: string;
+    /** 鏈嶅姟浜哄憳 */
+    servers?: GetStandardOrderQueryResultServer[];
     /** 澶囨敞 */
     remark?: string;
     payAccess?: EnumUserBankCardAccess;
@@ -8022,6 +8149,8 @@
     payAmount?: number;
     /** 鏀粯鏃堕棿 */
     payTime?: string;
+    /** 鏀粯瀹屾垚鏃堕棿 */
+    payCompletedTime?: string;
     settlementStatus?: EnumStandardOrderSettlementStatus;
     serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
     /** 鏈嶅姟璐� */
@@ -8032,6 +8161,15 @@
     settlementAmount?: number;
   }
 
+  interface GetStandardOrderQueryResultServer {
+    /** Id */
+    id?: string;
+    /** 濮撳悕 */
+    name?: string;
+    /** 鑱旂郴鐢佃瘽 */
+    contactPhoneNumber?: string;
+  }
+
   interface GetStandardOrdersQuery {
     scene?: EnumGetStandardOrdersQueryScene;
     /** 鍏抽敭瀛楋紙璁㈠崟鍙�/鏈嶅姟鍚嶏級 */
@@ -8065,6 +8203,14 @@
     serviceName?: string;
     /** 鏈嶅姟鍗曞彿 */
     serviceCode?: string;
+    /** 鏈嶅姟鍥剧墖 */
+    serviceFile?: string;
+    /** 鐪佸競鍖�+璇︾粏鍦板潃+闂ㄧ墝鍙� */
+    addressDetail?: string;
+    /** 鏈嶅姟璧峰鏃堕棿 */
+    beginTime?: string;
+    /** 鏈嶅姟鎴鏃堕棿 */
+    endTime?: string;
     /** 涓嬪崟鐢ㄦ埛Id */
     createdUserId?: string;
     /** 涓嬪崟鐢ㄦ埛 */
@@ -8082,8 +8228,10 @@
     supplierEnterpriseId?: string;
     /** 渚涘簲鍟� */
     supplierEnterpriseName?: string;
-    /** 渚涘簲鍟嗚仈绯荤數璇� */
-    supplierContactPhoneNumber?: string;
+    /** 鏈嶅姟浜哄憳 */
+    serverNames?: string;
+    /** 鏈嶅姟浜哄憳鑱旂郴鐢佃瘽 */
+    serverContactPhoneNumbers?: string;
     payStatus?: EnumStandardOrderPayStatus;
     /** 鏀粯瀹屾垚鏃堕棿 */
     payCompletedTime?: string;
@@ -8091,6 +8239,7 @@
     payAmount?: number;
     /** 瀹炴敹閲戦 */
     receiveAmount?: number;
+    serviceFeeCollectType?: EnumEnterpriseCooperationServiceFeeCollectType;
     /** 鏈嶅姟璐� */
     serviceFee?: number;
     settlementStatus?: EnumStandardOrderSettlementStatus;
@@ -9119,6 +9268,37 @@
     pageModel?: PagedListQueryPageModel;
   }
 
+  interface GetWaitArrangeTasksQuery {
+    /** 鐏靛伐Id */
+    enterpriseEmployeeId?: string;
+    /** 鍏抽敭瀛楋紙浠诲姟鍚嶃�佷换鍔″崟鍙凤級 */
+    keywords?: string;
+    pageModel?: PagedListQueryPageModel;
+  }
+
+  interface GetWaitArrangeTasksQueryResult {
+    pageModel?: PagedListQueryResultPageModel;
+    /** 鏁版嵁 */
+    data?: GetWaitArrangeTasksQueryResultItem[];
+  }
+
+  interface GetWaitArrangeTasksQueryResultItem {
+    /** Id */
+    id?: string;
+    /** 浠诲姟鍚嶇О */
+    name?: string;
+    /** 浠诲姟鍗曞彿 */
+    code?: string;
+    /** 鍙戝崟瀹㈡埛Id */
+    enterpriseId?: string;
+    /** 鍙戝崟瀹㈡埛 */
+    enterpriseName?: string;
+    /** 浠诲姟寮�濮嬫椂闂� */
+    beginTime?: string;
+    /** 浠诲姟缁撴潫鏃堕棿 */
+    endTime?: string;
+  }
+
   type GetWxmpSettingsQuery = Record<string, any>;
 
   interface GetWxmpSettingsQueryResult {

--
Gitblit v1.10.0