From d7116672ea36e413309f4cd0e85eaa5fff5d5b8b Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 26 十二月 2025 16:06:48 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 apps/housekeepingMiniApp/src/styles/index.scss                                       |    5 +
 apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue          |   58 +++++++++++++++++--
 packages/hooks/standardOrder.ts                                                      |    9 ++
 apps/housekeepingMiniApp/src/subpackages/mine/mineReserveServiceDetail/InnerPage.vue |   17 ++++-
 apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue      |   30 +++++----
 packages/constants/standardOrder.ts                                                  |    6 ++
 6 files changed, 100 insertions(+), 25 deletions(-)

diff --git a/apps/housekeepingMiniApp/src/styles/index.scss b/apps/housekeepingMiniApp/src/styles/index.scss
index 9b655fc..4264804 100644
--- a/apps/housekeepingMiniApp/src/styles/index.scss
+++ b/apps/housekeepingMiniApp/src/styles/index.scss
@@ -77,6 +77,11 @@
   padding-top: 16px;
 }
 
+.common-infinite-scroll-list-no-padding {
+  @include listScrollViewWithNoPadding;
+  padding-top: 16px;
+}
+
 .id-imgUrl-wrapper {
   display: flex;
   gap: 40px;
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue
index 6c7104c..095b100 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/mineOrderDetail/InnerPage.vue
@@ -1,6 +1,13 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
-    <ContentScrollView hasPaddingTop>
+    <InfiniteLoading
+      commonMode
+      :refetch="refetch"
+      :isLoading="isLoading"
+      :isError="isError"
+      :showMoreText="false"
+      scrollViewClassName="common-page-infinite-scroll-list"
+    >
       <MineServiceDetailView
         :contactName="detail?.name"
         :contactPhoneNumber="detail?.contactPhoneNumber"
@@ -25,13 +32,21 @@
           }}
         </template>
       </MineServiceDetailView>
-    </ContentScrollView>
-    <PageFooter class="order-settle-bar">
+    </InfiniteLoading>
+    <PageFooter
+      class="order-settle-bar"
+      v-if="
+        detail?.partAEnterpriseOrderStatus ===
+        EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus.Wait
+      "
+    >
       <div class="order-settle-price-wrapper">
         <div class="order-settle-price-label">鏀粯锛�</div>
         <nut-price :price="detail.payAmount" size="large" />
       </div>
-      <PageFooterBtn type="primary" class="business-card-btn">绔嬪嵆涓嬪崟</PageFooterBtn>
+      <PageFooterBtn type="primary" class="business-card-btn" @click="payStandardOrder"
+        >绔嬪嵆涓嬪崟</PageFooterBtn
+      >
     </PageFooter>
   </LoadingLayout>
 </template>
@@ -39,9 +54,14 @@
 <script setup lang="ts">
 import { MineServiceDetailView } from '@12333/components';
 import Taro from '@tarojs/taro';
-import * as standardServiceServices from '@12333/services/apiV2/standardService';
+import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
 import { useStandardOrder } from '@12333/hooks';
-import { EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText } from '@12333/constants';
+import {
+  EnumGetStandardOrdersQueryPartAEnterpriseOrderStatusText,
+  EnumGetStandardOrdersQueryScene,
+  EnumGetStandardOrdersQueryPartAEnterpriseOrderStatus,
+} from '@12333/constants';
+import { Message } from '@12333/utils';
 
 defineOptions({
   name: 'InnerPage',
@@ -50,11 +70,35 @@
 const route = Taro.useRouter();
 const id = route.params?.id as string;
 
-const { detail, isLoading, isError, refetch } = useStandardOrder({ id });
+const { detail, isLoading, isError, refetch } = useStandardOrder({
+  id,
+  scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder,
+  refetchInterval: 3000,
+});
 
 Taro.useDidShow(() => {
   refetch();
 });
+
+async function payStandardOrder() {
+  try {
+    let params: API.PayStandardOrderCommand = {
+      id: id,
+    };
+    let res = await standardOrderServices.payStandardOrder(params);
+    if (res) {
+      await Taro.requestPayment({
+        timeStamp: res.timestamp,
+        nonceStr: res.nonceStr,
+        package: res.package,
+        signType: res.signType as any,
+        paySign: res.paySign,
+      });
+      Message.success('鏀粯鎴愬姛');
+      refetch();
+    }
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss">
diff --git a/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveServiceDetail/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveServiceDetail/InnerPage.vue
index 4ff3173..8d77101 100644
--- a/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveServiceDetail/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/mine/mineReserveServiceDetail/InnerPage.vue
@@ -1,6 +1,13 @@
 <template>
   <LoadingLayout :loading="isLoading" :error="isError" :loadError="refetch">
-    <ContentScrollView hasPaddingTop>
+    <InfiniteLoading
+      commonMode
+      :refetch="refetch"
+      :isLoading="isLoading"
+      :isError="isError"
+      :showMoreText="false"
+      scrollViewClassName="common-page-infinite-scroll-list"
+    >
       <MineServiceDetailView
         :contactName="detail?.name"
         :contactPhoneNumber="detail?.contactPhoneNumber"
@@ -24,7 +31,7 @@
           {{ EnumStandardOrderAppointmentStatusText[detail?.appointmentStatus] }}
         </template>
       </MineServiceDetailView>
-    </ContentScrollView>
+    </InfiniteLoading>
     <PageFooter>
       <PageFooterBtn
         type="primary"
@@ -57,6 +64,7 @@
   EnumStandardOrderAppointmentStatusText,
   EnumStandardOrderAppointmentStatus,
   EnumTaskCheckReceiveStatus,
+  EnumGetStandardOrdersQueryScene,
 } from '@12333/constants';
 
 defineOptions({
@@ -66,7 +74,10 @@
 const route = Taro.useRouter();
 const id = route.params?.id as string;
 
-const { detail, isLoading, isError, refetch } = useStandardOrder({ id });
+const { detail, isLoading, isError, refetch } = useStandardOrder({
+  id,
+  scene: EnumGetStandardOrdersQueryScene.PartAEnterpriseOrder,
+});
 
 Taro.useDidShow(() => {
   refetch();
diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
index c81d8aa..5732f29 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
@@ -90,9 +90,9 @@
         </nut-form-item>
       </nut-form>
     </ContentScrollView>
-    <PageFooter>
-      <div class="addStandardOrder-price-wrapper">
-        <div class="addStandardOrder-price-text">鏀粯锛�</div>
+    <PageFooter class="order-settle-bar">
+      <div class="order-settle-price-wrapper">
+        <div class="order-settle-price-label">鏀粯锛�</div>
         <nut-price :price="totlePrice" size="large" />
       </div>
       <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm"
@@ -273,12 +273,12 @@
     };
     let res = await standardOrderServices.addStandardOrder(params);
     if (res) {
-      pay(res);
+      payStandardOrder(res);
     }
   } catch (error) {}
 }
 
-async function pay(orderId: string) {
+async function payStandardOrder(orderId: string) {
   try {
     let params: API.PayStandardOrderCommand = {
       id: orderId,
@@ -316,16 +316,18 @@
     }
   }
 
-  .addStandardOrder-price-wrapper {
-    display: flex;
-    flex: 2;
-    min-width: 0;
-    align-items: center;
-    padding-left: 28px;
+  .order-settle-bar {
+    .order-settle-price-wrapper {
+      height: 100%;
+      flex: 1;
+      min-width: 0;
+      display: flex;
+      align-items: center;
+      margin-left: 28px;
 
-    .addStandardOrder-price-text {
-      font-size: 32px;
-      color: boleGetCssVar('text-color', 'primary');
+      .order-settle-price-label {
+        color: boleGetCssVar('text-color', 'primary');
+      }
     }
   }
 }
diff --git a/packages/constants/standardOrder.ts b/packages/constants/standardOrder.ts
index 319cc5e..143d3ac 100644
--- a/packages/constants/standardOrder.ts
+++ b/packages/constants/standardOrder.ts
@@ -6,6 +6,7 @@
   EnumStandardOrderPayStatus,
   EnumStandardOrderSettlementStatus,
   EnumStandardServiceReleaseStatus,
+  EnumUserBankCardAccess,
 } from './apiEnum';
 
 export const EnumStandardServiceReleaseStatusText = {
@@ -46,3 +47,8 @@
   [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Wait]: '寰呮敹娆�',
   [EnumGetStandardOrdersQuerySupplierEnterpriseOrderStatus.Completed]: '宸插畬鎴�',
 };
+
+export const EnumUserBankCardAccessText = {
+  [EnumUserBankCardAccess.WeChatPay]: '寰俊鏀粯',
+  [EnumUserBankCardAccess.Bank]: '閾惰鏀粯',
+};
diff --git a/packages/hooks/standardOrder.ts b/packages/hooks/standardOrder.ts
index f523107..987b48d 100644
--- a/packages/hooks/standardOrder.ts
+++ b/packages/hooks/standardOrder.ts
@@ -155,9 +155,15 @@
   id: MaybeRef<string>;
   scene?: EnumGetStandardOrdersQueryScene;
   onSuccess?: (data: API.GetStandardOrderQueryResult) => any;
+  refetchInterval?: MaybeRef<number | false>;
 };
 
-export function useStandardOrder({ id, scene, onSuccess }: UseStandardOrderOptions) {
+export function useStandardOrder({
+  id,
+  scene,
+  onSuccess,
+  refetchInterval = false,
+}: UseStandardOrderOptions) {
   const {
     isLoading,
     isError,
@@ -178,6 +184,7 @@
     onSuccess(data) {
       onSuccess?.(data);
     },
+    refetchInterval: unref(refetchInterval),
   });
 
   return { detail, isLoading, isError, refetch };

--
Gitblit v1.10.0