From fe5fc18b6b1810a61df6ed7d94957f449ca05488 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 24 二月 2025 13:13:06 +0800
Subject: [PATCH] feat: 订单

---
 packages/components/src/views/electricBillRecharge/electricBillRecharge.vue |   11 --
 packages/components/src/components/Card/OrderCardItem.vue                   |   19 ----
 packages/components/src/components/NoData/NoData.vue                        |    2 
 packages/components/src/components/Card/OrderCard.vue                       |   33 -------
 packages/components/src/styles/orderCard.scss                               |   45 +++++++++++
 packages/components/src/views/Order/components/ElectricOrder.vue            |   46 +++++++----
 packages/services/api/typings.d.ts                                          |   12 +-
 packages/components/src/views/Order/components/PhoneOrder.vue               |   24 ++++-
 packages/components/src/styles/index.scss                                   |    1 
 packages/services/api/AliPayNotify.ts                                       |   32 ++++----
 packages/components/src/styles/rechargeGrid.scss                            |    8 ++
 11 files changed, 126 insertions(+), 107 deletions(-)

diff --git a/packages/components/src/components/Card/OrderCard.vue b/packages/components/src/components/Card/OrderCard.vue
index 14ed16e..d8a2e32 100644
--- a/packages/components/src/components/Card/OrderCard.vue
+++ b/packages/components/src/components/Card/OrderCard.vue
@@ -6,7 +6,7 @@
         <div class="order-card-title-status">{{ status }}</div>
       </div>
       <div class="order-card-title-ordernum">
-        {{ `璁㈠崟缂栧彿锛�${'JF202502191515350002'}` }}
+        {{ `璁㈠崟缂栧彿锛�${orderNo}` }}
       </div>
     </div>
     <div class="order-card-content">
@@ -23,37 +23,8 @@
 type Props = {
   title: string;
   status: string;
+  orderNo: string;
 };
 
 const props = withDefaults(defineProps<Props>(), {});
 </script>
-<style lang="scss">
-.order-card {
-  border: 1px solid #e8e8e8;
-  border-radius: 12px;
-  padding: 20px;
-
-  .order-card-title {
-    display: flex;
-    flex-direction: column;
-    border-bottom: 1px solid #e8e8e8;
-    padding-bottom: 20px;
-    margin-bottom: 20px;
-
-    .order-card-title-top {
-      display: flex;
-      justify-content: space-between;
-      color: #333333;
-      font-size: 28px;
-      line-height: 40px;
-      font-weight: 600;
-      margin-bottom: 12px;
-    }
-
-    .order-card-title-ordernum {
-      font-size: 24px;
-      color: #999999;
-    }
-  }
-}
-</style>
diff --git a/packages/components/src/components/Card/OrderCardItem.vue b/packages/components/src/components/Card/OrderCardItem.vue
index fc4dd47..dd2dd35 100644
--- a/packages/components/src/components/Card/OrderCardItem.vue
+++ b/packages/components/src/components/Card/OrderCardItem.vue
@@ -27,21 +27,4 @@
 });
 </script>
 
-<style lang="scss">
-.order-card-item {
-  display: flex;
-  font-size: 28px;
-  line-height: 40px;
-  margin-bottom: 15px;
-
-  .order-card-item-label {
-    color: #333333;
-  }
-
-  .order-card-item-value {
-    color: #666666;
-    flex: 1;
-    min-width: 0;
-  }
-}
-</style>
+<style lang="scss"></style>
diff --git a/packages/components/src/components/NoData/NoData.vue b/packages/components/src/components/NoData/NoData.vue
index ce0511e..1744782 100644
--- a/packages/components/src/components/NoData/NoData.vue
+++ b/packages/components/src/components/NoData/NoData.vue
@@ -8,7 +8,7 @@
 <script lang="ts">
 import { defineComponent } from 'vue';
 
-const NoDataImage = `'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/mini/assets/no-data.png`;
+const NoDataImage = 'https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/mini/assets/no-data.png';
 
 export default defineComponent({
   name: 'NoData',
diff --git a/packages/components/src/styles/index.scss b/packages/components/src/styles/index.scss
index 37b4cc0..a83adac 100644
--- a/packages/components/src/styles/index.scss
+++ b/packages/components/src/styles/index.scss
@@ -6,6 +6,7 @@
 @use './rechargeGrid.scss' as *;
 @use './components.scss' as *;
 @use './loading.scss' as *;
+@use './orderCard.scss' as *;
 
 :root,
 page {
diff --git a/packages/components/src/styles/orderCard.scss b/packages/components/src/styles/orderCard.scss
new file mode 100644
index 0000000..e841a8e
--- /dev/null
+++ b/packages/components/src/styles/orderCard.scss
@@ -0,0 +1,45 @@
+.order-card {
+  border: 1px solid #e8e8e8;
+  border-radius: 12px;
+  padding: 20px;
+
+  .order-card-title {
+    display: flex;
+    flex-direction: column;
+    border-bottom: 1px solid #e8e8e8;
+    padding-bottom: 20px;
+    margin-bottom: 20px;
+
+    .order-card-title-top {
+      display: flex;
+      justify-content: space-between;
+      color: #333333;
+      font-size: 28px;
+      line-height: 40px;
+      font-weight: 600;
+      margin-bottom: 12px;
+    }
+
+    .order-card-title-ordernum {
+      font-size: 24px;
+      color: #999999;
+    }
+  }
+}
+
+.order-card-item {
+  display: flex;
+  font-size: 28px;
+  line-height: 40px;
+  margin-bottom: 15px;
+
+  .order-card-item-label {
+    color: #333333;
+  }
+
+  .order-card-item-value {
+    color: #666666;
+    flex: 1;
+    min-width: 0;
+  }
+}
diff --git a/packages/components/src/styles/rechargeGrid.scss b/packages/components/src/styles/rechargeGrid.scss
index 6bff098..b23d556 100644
--- a/packages/components/src/styles/rechargeGrid.scss
+++ b/packages/components/src/styles/rechargeGrid.scss
@@ -130,4 +130,12 @@
       }
     }
   }
+
+  &.electric {
+    .nut-dialog {
+      .nut-dialog__content {
+        max-height: 700px;
+      }
+    }
+  }
 }
diff --git a/packages/components/src/views/Order/components/ElectricOrder.vue b/packages/components/src/views/Order/components/ElectricOrder.vue
index 1ab4dc3..9f8a997 100644
--- a/packages/components/src/views/Order/components/ElectricOrder.vue
+++ b/packages/components/src/views/Order/components/ElectricOrder.vue
@@ -1,24 +1,36 @@
 <template>
-  <!-- <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps">
-    <template #renderItem="{ item }"> -->
-  <OrderCard title="鐢佃垂鍏呭��" status="寰呮敮浠�">
-    <OrderCardItem label="鍏呭�煎湴鍖�:" :value="'18888888888'" />
-    <OrderCardItem label="鍏呭�兼埛鍙�:" :value="'18888888888'" />
-    <OrderCardItem label="涓嬪崟鏃堕棿:" :value="'2025-02-19  17:15:54'" />
-    <OrderCardItem label="鍏呭�奸噾棰�:" :value="'18888888888'" />
-    <OrderCardItem label="浼樻儬閲戦:" :value="'18888888888'" />
-    <OrderCardItem label="瀹炰粯閲戦:" :value="'18888888888'" />
-    <OrderCardItem label="鏀粯鏃堕棿:" :value="'2025-02-19  17:15:54'" />
-    <OrderCardItem label="瀹屾垚鏃堕棿:" :value="'2025-02-19  17:15:54'" />
-  </OrderCard>
-  <!-- </template>
-  </InfiniteLoading> -->
+  <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps">
+    <template #renderItem="{ item }">
+      <OrderCard title="鐢佃垂鍏呭��" status="寰呮敮浠�" :order-no="item?.orderNo">
+        <OrderCardItem label="鍏呭�煎湴鍖�:" :value="'18888888888'" />
+        <OrderCardItem label="鍏呭�兼埛鍙�:" :value="'18888888888'" />
+        <OrderCardItem
+          label="涓嬪崟鏃堕棿:"
+          :value="dayjs(item?.creationTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
+        <OrderCardItem label="鍏呭�奸噾棰�:" :value="item?.rechargeAmount" />
+        <OrderCardItem label="浼樻儬閲戦:" :value="item?.discountAmount" />
+        <OrderCardItem label="瀹炰粯閲戦:" :value="item?.payAmount" />
+        <OrderCardItem
+          label="鏀粯鏃堕棿:"
+          :value="dayjs(item?.payTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
+        <OrderCardItem
+          label="瀹屾垚鏃堕棿:"
+          :value="dayjs(item?.finishTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
+      </OrderCard>
+    </template>
+  </InfiniteLoading>
 </template>
 
 <script setup lang="ts">
 import InfiniteLoading from '../../../components/InfiniteLoading/InfiniteLoading.vue';
 import OrderCard from '../../../components/Card/OrderCard.vue';
 import OrderCardItem from '../../../components/Card/OrderCardItem.vue';
+import { useGetUserLifePayOrderPage } from '../../../hooks';
+import { BlLifeRecharge } from '../../../utils';
+import dayjs from 'dayjs';
 
 defineOptions({
   name: 'ElectricOrder',
@@ -28,7 +40,7 @@
 
 // const props = withDefaults(defineProps<Props>(), {});
 
-const infiniteLoadingProps = {};
+const { infiniteLoadingProps } = useGetUserLifePayOrderPage({
+  lifePayOrderType: BlLifeRecharge.constants.LifePayOrderTypeEnum.鐢佃垂璁㈠崟,
+});
 </script>
-
-<style lang="scss"></style>
diff --git a/packages/components/src/views/Order/components/PhoneOrder.vue b/packages/components/src/views/Order/components/PhoneOrder.vue
index 782d440..2385c36 100644
--- a/packages/components/src/views/Order/components/PhoneOrder.vue
+++ b/packages/components/src/views/Order/components/PhoneOrder.vue
@@ -1,14 +1,23 @@
 <template>
   <InfiniteLoading scrollViewClassName="common-infinite-scroll-list" v-bind="infiniteLoadingProps">
     <template #renderItem="{ item }">
-      <OrderCard title="璇濊垂鍏呭��" status="寰呮敮浠�">
+      <OrderCard title="璇濊垂鍏呭��" status="寰呮敮浠�" :order-no="item?.orderNo">
         <OrderCardItem label="鍏呭�艰处鍙�:" :value="'18888888888'" />
-        <OrderCardItem label="涓嬪崟鏃堕棿:" :value="'18888888888'" />
-        <OrderCardItem label="鍏呭�奸噾棰�:" :value="'18888888888'" />
-        <OrderCardItem label="浼樻儬閲戦:" :value="'18888888888'" />
-        <OrderCardItem label="瀹炰粯閲戦:" :value="'18888888888'" />
-        <OrderCardItem label="鏀粯鏃堕棿:" :value="'2025-02-19  17:15:54'" />
-        <OrderCardItem label="瀹屾垚鏃堕棿:" :value="'2025-02-19  17:15:54'" />
+        <OrderCardItem
+          label="涓嬪崟鏃堕棿:"
+          :value="dayjs(item?.creationTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
+        <OrderCardItem label="鍏呭�奸噾棰�:" :value="item?.rechargeAmount" />
+        <OrderCardItem label="浼樻儬閲戦:" :value="item?.discountAmount" />
+        <OrderCardItem label="瀹炰粯閲戦:" :value="item?.payAmount" />
+        <OrderCardItem
+          label="鏀粯鏃堕棿:"
+          :value="dayjs(item?.payTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
+        <OrderCardItem
+          label="瀹屾垚鏃堕棿:"
+          :value="dayjs(item?.finishTime).format('YYYY-MM-DD HH:mm:ss')"
+        />
       </OrderCard>
     </template>
   </InfiniteLoading>
@@ -20,6 +29,7 @@
 import OrderCardItem from '../../../components/Card/OrderCardItem.vue';
 import { useGetUserLifePayOrderPage } from '../../../hooks';
 import { BlLifeRecharge } from '../../../utils';
+import dayjs from 'dayjs';
 
 defineOptions({
   name: 'PhoneOrder',
diff --git a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
index c92e80a..7348fbb 100644
--- a/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
+++ b/packages/components/src/views/electricBillRecharge/electricBillRecharge.vue
@@ -168,14 +168,3 @@
   emit('goPay');
 }
 </script>
-<style lang="scss">
-.order-bill-recharge {
-  &.electric {
-    .nut-dialog {
-      .nut-dialog__content {
-        max-height: 700px;
-      }
-    }
-  }
-}
-</style>
diff --git a/packages/services/api/AliPayNotify.ts b/packages/services/api/AliPayNotify.ts
index 359d1a0..34d3943 100644
--- a/packages/services/api/AliPayNotify.ts
+++ b/packages/services/api/AliPayNotify.ts
@@ -2,23 +2,8 @@
 // @ts-ignore
 import { request } from '@/utils/request';
 
-/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/AliPayNotify/AliRechargeNotify */
-export async function aliRechargeNotify(
-  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
-  params: API.APIaliRechargeNotifyParams,
-  options?: API.RequestConfig
-) {
-  return request<any>('/api/AliPayNotify/AliRechargeNotify', {
-    method: 'GET',
-    params: {
-      ...params,
-    },
-    ...(options || {}),
-  });
-}
-
 /** 鏀粯瀹濆厖鍊煎洖璋冮�氱煡 POST /api/AliPayNotify/AliRechargeNotify */
-export async function aliRechargeNotify_2(options?: API.RequestConfig) {
+export async function aliRechargeNotify(options?: API.RequestConfig) {
   return request<any>('/api/AliPayNotify/AliRechargeNotify', {
     method: 'POST',
     ...(options || {}),
@@ -47,3 +32,18 @@
     ...(options || {}),
   });
 }
+
+/** 姝ゅ鍚庣娌℃湁鎻愪緵娉ㄩ噴 GET /api/AliPayNotify/TestAliRechargeNotify */
+export async function testAliRechargeNotify(
+  // 鍙犲姞鐢熸垚鐨凱aram绫诲瀷 (闈瀊ody鍙傛暟swagger榛樿娌℃湁鐢熸垚瀵硅薄)
+  params: API.APItestAliRechargeNotifyParams,
+  options?: API.RequestConfig
+) {
+  return request<any>('/api/AliPayNotify/TestAliRechargeNotify', {
+    method: 'GET',
+    params: {
+      ...params,
+    },
+    ...(options || {}),
+  });
+}
diff --git a/packages/services/api/typings.d.ts b/packages/services/api/typings.d.ts
index c913d8b..cf2fcde 100644
--- a/packages/services/api/typings.d.ts
+++ b/packages/services/api/typings.d.ts
@@ -917,12 +917,6 @@
     id?: string;
   }
 
-  interface APIaliRechargeNotifyParams {
-    outTradeNo?: string;
-    tradeNo?: string;
-    success?: boolean;
-  }
-
   interface APIapiDefinitionParams {
     includeTypes?: boolean;
   }
@@ -1889,6 +1883,12 @@
     id?: string;
   }
 
+  interface APItestAliRechargeNotifyParams {
+    outTradeNo?: string;
+    tradeNo?: string;
+    success?: boolean;
+  }
+
   interface APItestCallBackParams {
     type?: number;
   }

--
Gitblit v1.9.1