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