From afdc0faf165dbc0c90e45043b4f500a3d53ba20f Mon Sep 17 00:00:00 2001
From: zym2525 <540361168@qq.com>
Date: 星期二, 11 三月 2025 21:02:24 +0800
Subject: [PATCH] fix: some
---
packages/components/src/utils/common.ts | 29 +++
packages/components/src/components/Card/OrderCard.vue | 28 ++
apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue | 1
apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.config.ts | 3
packages/components/src/views/Order/components/ElectricOrder.vue | 11 +
packages/components/src/views/Order/components/GasOrder.vue | 78 ++++++++
packages/components/src/views/Order/components/PhoneOrder.vue | 11 +
apps/taro/src/subpackages/order/order/InnerPage.vue | 21 +
packages/components/src/views/Order/OrderApplyRefundView.vue | 98 ++++++++++
apps/taro/src/app.config.ts | 6
apps/taro/src/pages/mine/index.vue | 2
apps/taro/src/constants/router.ts | 5
apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue | 14 +
apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.config.ts | 3
apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue | 17 +
apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.vue | 14 +
packages/components/src/styles/nut.scss | 2
apps/taro/src/subpackages/userAccount/userAccountList/InnerPage.vue | 11 +
packages/components/src/index.ts | 3
packages/core/src/lifeRechargeConstants.ts | 31 +++
packages/core/src/lifeRechargeServices.ts | 44 ++++
packages/components/src/views/userAccount/UserAccountListView.vue | 75 ++++++++
22 files changed, 492 insertions(+), 15 deletions(-)
diff --git a/apps/taro/src/app.config.ts b/apps/taro/src/app.config.ts
index f14357e..c23c86c 100644
--- a/apps/taro/src/app.config.ts
+++ b/apps/taro/src/app.config.ts
@@ -64,7 +64,11 @@
},
{
root: 'subpackages/order',
- pages: ['order/order'],
+ pages: ['order/order', 'orderApplyRefund/orderApplyRefund'],
+ },
+ {
+ root: 'subpackages/userAccount',
+ pages: ['userAccountList/userAccountList'],
},
],
// preloadRule: {
diff --git a/apps/taro/src/constants/router.ts b/apps/taro/src/constants/router.ts
index f62f6dc..f84a6d2 100644
--- a/apps/taro/src/constants/router.ts
+++ b/apps/taro/src/constants/router.ts
@@ -11,8 +11,11 @@
phoneBillRecharge = '/subpackages/recharge/phoneBillRecharge/phoneBillRecharge',
electricBillRecharge = '/subpackages/recharge/electricBillRecharge/electricBillRecharge',
gasBillRecharge = '/subpackages/recharge/gasBillRecharge/gasBillRecharge',
- order = '/subpackages/order/order/order',
selectPayType = '/subpackages/recharge/selectPayType/selectPayType',
rechargeResult = '/subpackages/recharge/rechargeResult/rechargeResult',
rechargeElectricResult = '/subpackages/recharge/rechargeElectricResult/rechargeElectricResult',
+
+ order = '/subpackages/order/order/order',
+ orderApplyRefund = '/subpackages/order/orderApplyRefund/orderApplyRefund',
+ userAccountList = '/subpackages/userAccount/userAccountList/userAccountList',
}
diff --git a/apps/taro/src/pages/mine/index.vue b/apps/taro/src/pages/mine/index.vue
index 8068ee3..f13595d 100644
--- a/apps/taro/src/pages/mine/index.vue
+++ b/apps/taro/src/pages/mine/index.vue
@@ -20,6 +20,7 @@
<ContentScrollView>
<List class="mine-list-wrapper">
<ListItem title="璁㈠崟绠$悊" @click="goOrderManage"></ListItem>
+ <ListItem title="鎴峰彿绠$悊" @click="goUserAccountList"></ListItem>
<ListItem v-if="isLogin" title="閫�鍑虹櫥褰�" @click="goLogout"></ListItem>
</List>
</ContentScrollView>
@@ -72,6 +73,7 @@
});
const goOrderManage = useAccessLogin(() => goPage(RouterPath.order));
+const goUserAccountList = useAccessLogin(() => goPage(RouterPath.userAccountList));
async function goLogout() {
try {
diff --git a/apps/taro/src/subpackages/order/order/InnerPage.vue b/apps/taro/src/subpackages/order/order/InnerPage.vue
index eac44ba..876a457 100644
--- a/apps/taro/src/subpackages/order/order/InnerPage.vue
+++ b/apps/taro/src/subpackages/order/order/InnerPage.vue
@@ -1,16 +1,19 @@
<template>
<ProTabs v-model="orderType" name="user-home-tabs" class="user-home-tabs" flexTitle fullHeight>
<ProTabPane title="璇濊垂璁㈠崟" pane-key="1">
- <PhoneOrder />
+ <PhoneOrder @goApplyRefund="goApplyRefund" @goRefundDetail="goRefundDetail" />
</ProTabPane>
<ProTabPane title="鐢佃垂璁㈠崟" pane-key="2">
- <ElectricOrder />
+ <ElectricOrder @goApplyRefund="goApplyRefund" @goRefundDetail="goRefundDetail" />
+ </ProTabPane>
+ <ProTabPane title="鐕冩皵璁㈠崟" pane-key="3">
+ <GasOrder @goApplyRefund="goApplyRefund" @goRefundDetail="goRefundDetail" />
</ProTabPane>
</ProTabs>
</template>
<script setup lang="ts">
-import { PhoneOrder, ElectricOrder } from '@life-payment/components';
+import { PhoneOrder, ElectricOrder, GasOrder } from '@life-payment/components';
import Taro from '@tarojs/taro';
defineOptions({
@@ -19,9 +22,17 @@
const orderType = ref('1');
-function goPay() {
+function goApplyRefund(orderNo: string) {
Taro.navigateTo({
- url: RouterPath.selectPayType,
+ url: `${RouterPath.orderApplyRefund}?orderNo=${orderNo}`,
+ // events: {
+ // submitApplyRefund: function () {},
+ // },
+ });
+}
+function goRefundDetail(orderNo: string) {
+ Taro.navigateTo({
+ url: `${RouterPath.orderApplyRefund}?orderNo=${orderNo}`,
});
}
</script>
diff --git a/apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue b/apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue
new file mode 100644
index 0000000..3ac3541
--- /dev/null
+++ b/apps/taro/src/subpackages/order/orderApplyRefund/InnerPage.vue
@@ -0,0 +1,17 @@
+<template>
+ <ContentScrollView :paddingH="false">
+ <OrderApplyRefundView :orderNo="orderNo" />
+ </ContentScrollView>
+</template>
+
+<script setup lang="ts">
+import Taro from '@tarojs/taro';
+import { OrderApplyRefundView } from '@life-payment/components';
+
+defineOptions({
+ name: 'InnerPage',
+});
+
+const router = Taro.useRouter();
+const orderNo = router.params?.orderNo ?? '';
+</script>
diff --git a/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.config.ts b/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue b/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue
new file mode 100644
index 0000000..cb04f8d
--- /dev/null
+++ b/apps/taro/src/subpackages/order/orderApplyRefund/orderApplyRefund.vue
@@ -0,0 +1,14 @@
+<template>
+ <PageLayout title="鐢宠閫�娆�" class="orderApplyRefund-page-wrapper" hasBorder>
+ <InnerPage />
+ </PageLayout>
+</template>
+
+<script setup lang="ts">
+import { PageLayout } from '@/components';
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'orderApplyRefund',
+});
+</script>
diff --git a/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue b/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
index 16153e9..879f00b 100644
--- a/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
+++ b/apps/taro/src/subpackages/recharge/selectPayType/selectPayType.vue
@@ -19,5 +19,6 @@
const TitleText = {
[LifeRechargeConstants.LifePayOrderTypeEnum.璇濊垂璁㈠崟]: '璇濊垂鍏呭��',
[LifeRechargeConstants.LifePayOrderTypeEnum.鐢佃垂璁㈠崟]: '鐢佃垂鍏呭��',
+ [LifeRechargeConstants.LifePayOrderTypeEnum.鐕冩皵璁㈠崟]: '鐕冩皵鍏呭��',
};
</script>
diff --git a/apps/taro/src/subpackages/userAccount/userAccountList/InnerPage.vue b/apps/taro/src/subpackages/userAccount/userAccountList/InnerPage.vue
new file mode 100644
index 0000000..e5178a1
--- /dev/null
+++ b/apps/taro/src/subpackages/userAccount/userAccountList/InnerPage.vue
@@ -0,0 +1,11 @@
+<template>
+ <UserAccountListView />
+</template>
+
+<script setup lang="ts">
+import { UserAccountListView } from '@life-payment/components';
+
+defineOptions({
+ name: 'InnerPage',
+});
+</script>
diff --git a/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.config.ts b/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.config.ts
new file mode 100644
index 0000000..305fdb1
--- /dev/null
+++ b/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.config.ts
@@ -0,0 +1,3 @@
+export default definePageConfig({
+ disableScroll: true,
+});
diff --git a/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.vue b/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.vue
new file mode 100644
index 0000000..e306716
--- /dev/null
+++ b/apps/taro/src/subpackages/userAccount/userAccountList/userAccountList.vue
@@ -0,0 +1,14 @@
+<template>
+ <PageLayout title="鎴峰彿绠$悊" class="userAccountList-page-wrapper" hasBorder>
+ <InnerPage> </InnerPage>
+ </PageLayout>
+</template>
+
+<script setup lang="ts">
+import { PageLayout } from '@/components';
+import InnerPage from './InnerPage.vue';
+
+defineOptions({
+ name: 'userAccountList',
+});
+</script>
diff --git a/packages/components/src/components/Card/OrderCard.vue b/packages/components/src/components/Card/OrderCard.vue
index 3cf98d9..c3cbc55 100644
--- a/packages/components/src/components/Card/OrderCard.vue
+++ b/packages/components/src/components/Card/OrderCard.vue
@@ -3,14 +3,29 @@
<div class="order-card-title">
<div class="order-card-title-top">
<div class="order-card-title-text">{{ title }}</div>
- <div class="order-card-title-status">{{ status }}</div>
+ <div class="order-card-title-status">
+ {{ LifeRechargeConstants.LifePayOrderFrontStatusEnumText[status] }}
+ </div>
</div>
<div class="order-card-title-ordernum-wrapper">
<div class="order-card-title-ordernum">
{{ `璁㈠崟缂栧彿锛�${orderNo}` }}
</div>
<slot name="actions">
- <div class="order-card-action">鐢宠閫�娆�</div>
+ <div
+ class="order-card-action"
+ v-if="status === LifeRechargeConstants.LifePayOrderFrontStatusEnum.鏀粯鎴愬姛"
+ @click="emit('goApplyRefund', orderNo)"
+ >
+ 鐢宠閫�娆�
+ </div>
+ <div
+ class="order-card-action"
+ v-if="status === LifeRechargeConstants.LifePayOrderFrontStatusEnum.閫�娆惧け璐�"
+ @click="emit('goRefundDetail', orderNo)"
+ >
+ 璇︽儏
+ </div>
</slot>
</div>
</div>
@@ -21,15 +36,22 @@
</template>
<script setup lang="ts">
+import { LifeRechargeConstants } from '@life-payment/core-vue';
+
defineOptions({
name: 'OrderCard',
});
type Props = {
title: string;
- status: string;
+ status: LifeRechargeConstants.LifePayOrderFrontStatusEnum;
orderNo: string;
};
const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+ (e: 'goApplyRefund', orderNo: string): void;
+ (e: 'goRefundDetail', orderNo: string): void;
+}>();
</script>
diff --git a/packages/components/src/index.ts b/packages/components/src/index.ts
index dd86493..ebf1041 100644
--- a/packages/components/src/index.ts
+++ b/packages/components/src/index.ts
@@ -6,4 +6,7 @@
export { default as RechargeResultView } from './views/RechargeResultView/RechargeResultView.vue';
export { default as PhoneOrder } from './views/Order/components/PhoneOrder.vue';
export { default as ElectricOrder } from './views/Order/components/ElectricOrder.vue';
+export { default as GasOrder } from './views/Order/components/GasOrder.vue';
+export { default as OrderApplyRefundView } from './views/Order/OrderApplyRefundView.vue';
+export { default as UserAccountListView } from './views/userAccount/UserAccountListView.vue';
export * from './utils';
diff --git a/packages/components/src/styles/nut.scss b/packages/components/src/styles/nut.scss
index 4839c5a..e94c6e9 100644
--- a/packages/components/src/styles/nut.scss
+++ b/packages/components/src/styles/nut.scss
@@ -127,7 +127,7 @@
.bole-input-textarea:not(.nut-input--disabled) {
color: boleGetCssVar('text-color', 'primary') !important;
- height: 100rpx;
+ height: 200px;
}
.bole-input-text-placeholder {
diff --git a/packages/components/src/utils/common.ts b/packages/components/src/utils/common.ts
index 12782a6..8ec6d2a 100644
--- a/packages/components/src/utils/common.ts
+++ b/packages/components/src/utils/common.ts
@@ -149,3 +149,32 @@
}
return '';
}
+
+export function convertOrderFrontStatus(
+ payStatus?: LifeRechargeConstants.LifePayStatusEnum,
+ lifePayOrderStatus?: LifeRechargeConstants.LifePayOrderStatusEnum
+) {
+ if (
+ (lifePayOrderStatus === LifeRechargeConstants.LifePayOrderStatusEnum.寰呯‘璁� &&
+ payStatus === LifeRechargeConstants.LifePayStatusEnum.宸叉敮浠�) ||
+ payStatus === LifeRechargeConstants.LifePayStatusEnum.寰呴��娆�
+ ) {
+ return LifeRechargeConstants.LifePayOrderFrontStatusEnum.鏀粯鎴愬姛;
+ }
+ if (lifePayOrderStatus === LifeRechargeConstants.LifePayOrderStatusEnum.宸查��娆�) {
+ return LifeRechargeConstants.LifePayOrderFrontStatusEnum.宸查��娆�;
+ }
+ if (lifePayOrderStatus === LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧緟瀹℃牳) {
+ return LifeRechargeConstants.LifePayOrderFrontStatusEnum.閫�娆惧緟瀹℃牳;
+ }
+ if (lifePayOrderStatus === LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧け璐�) {
+ return LifeRechargeConstants.LifePayOrderFrontStatusEnum.閫�娆惧け璐�;
+ }
+ if (
+ lifePayOrderStatus === LifeRechargeConstants.LifePayOrderStatusEnum.宸插畬鎴� &&
+ payStatus === LifeRechargeConstants.LifePayStatusEnum.宸叉敮浠�
+ ) {
+ return LifeRechargeConstants.LifePayOrderFrontStatusEnum.鍏呭�兼垚鍔�;
+ }
+ return;
+}
diff --git a/packages/components/src/views/Order/OrderApplyRefundView.vue b/packages/components/src/views/Order/OrderApplyRefundView.vue
new file mode 100644
index 0000000..5380d0a
--- /dev/null
+++ b/packages/components/src/views/Order/OrderApplyRefundView.vue
@@ -0,0 +1,98 @@
+<template>
+ <NutForm
+ :model-value="form"
+ ref="formRef"
+ :rules="rules"
+ label-position="top"
+ class="order-bill-recharge phone"
+ >
+ <NutFormItem class="bole-form-item" prop="refundApplyRemark" required>
+ <NutTextarea
+ placeholder="璇峰~鍐欐偍闇�瑕佸厖鍊肩殑鎵嬫満鍙风爜"
+ placeholderClass="bole-input-text-placeholder"
+ autoSize
+ class="bole-input-textarea"
+ v-model="form.refundApplyRemark"
+ :max-length="200"
+ limit-show
+ >
+ </NutTextarea>
+ </NutFormItem>
+ <div class="common-content">
+ <nut-button class="recharge-button" type="primary" @click="handleSubmit">
+ <div class="recharge-button-inner">
+ <div class="recharge-button-text">鎻愪氦</div>
+ </div>
+ </nut-button>
+ </div>
+ </NutForm>
+</template>
+
+<script setup lang="ts">
+import {
+ Form as NutForm,
+ FormItem as NutFormItem,
+ Input as NutInput,
+ Textarea as NutTextarea,
+} from '@nutui/nutui-taro';
+import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
+import { reactive, ref, computed } from 'vue';
+import {
+ useLifeRechargeContext,
+ LifeRechargeConstants,
+ RefundUserLifePayOrderInput,
+} from '@life-payment/core-vue';
+import { useQueryClient } from '@tanstack/vue-query';
+
+defineOptions({
+ name: 'OrderApplyRefundView',
+});
+
+type Props = {
+ orderNo: string;
+};
+
+const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+ (e: 'submitApplyRefund'): void;
+}>();
+
+const form = reactive({
+ refundApplyRemark: '',
+});
+
+const rules = reactive<FormRules>({
+ refundApplyRemark: [{ required: true, message: '璇疯緭鍏ラ��娆惧師鍥�' }],
+});
+
+const { blLifeRecharge } = useLifeRechargeContext();
+
+const formRef = ref<any>(null);
+
+function handleSubmit() {
+ if (!formRef.value) return;
+ formRef.value.validate().then(({ valid, errors }: any) => {
+ if (valid) {
+ refundUserLifePayOrder();
+ }
+ });
+}
+
+const queryClient = useQueryClient();
+
+async function refundUserLifePayOrder() {
+ try {
+ let params: RefundUserLifePayOrderInput = {
+ id: props.orderNo,
+ userId: blLifeRecharge.accountModel.userId,
+ refundApplyRemark: form.refundApplyRemark,
+ };
+ let res = await blLifeRecharge.services.refundUserLifePayOrder(params);
+ emit('submitApplyRefund');
+ queryClient.invalidateQueries({
+ queryKey: ['blLifeRecharge/getUserLifePayOrderPage'],
+ });
+ } catch (error) {}
+}
+</script>
diff --git a/packages/components/src/views/Order/components/ElectricOrder.vue b/packages/components/src/views/Order/components/ElectricOrder.vue
index 3d1347b..d4ebfae 100644
--- a/packages/components/src/views/Order/components/ElectricOrder.vue
+++ b/packages/components/src/views/Order/components/ElectricOrder.vue
@@ -6,8 +6,10 @@
<template #renderItem="{ item }">
<OrderCard
title="鐢佃垂鍏呭��"
- :status="orderStatusEnum(item?.payStatus, item?.lifePayOrderStatus)"
+ :status="convertOrderFrontStatus(item?.payStatus, item?.lifePayOrderStatus)"
:order-no="item?.orderNo"
+ @goApplyRefund="emit('goApplyRefund', $event)"
+ @goRefundDetail="emit('goRefundDetail', $event)"
>
<OrderCardItem
label="鍏呭�煎湴鍖�:"
@@ -63,7 +65,7 @@
import { useGetUserLifePayOrderPage } from '../../../hooks';
import { BlLifeRecharge } from '@life-payment/core-vue';
import dayjs from 'dayjs';
-import { toThousand, orderStatusEnum } from '../../../utils';
+import { toThousand, convertOrderFrontStatus } from '../../../utils';
defineOptions({
name: 'ElectricOrder',
@@ -73,6 +75,11 @@
// const props = withDefaults(defineProps<Props>(), {});
+const emit = defineEmits<{
+ (e: 'goApplyRefund', orderNo: string): void;
+ (e: 'goRefundDetail', orderNo: string): void;
+}>();
+
const { infiniteLoadingProps } = useGetUserLifePayOrderPage({
lifePayOrderType: BlLifeRecharge.constants.LifePayOrderTypeEnum.鐢佃垂璁㈠崟,
});
diff --git a/packages/components/src/views/Order/components/GasOrder.vue b/packages/components/src/views/Order/components/GasOrder.vue
new file mode 100644
index 0000000..d8f3aa6
--- /dev/null
+++ b/packages/components/src/views/Order/components/GasOrder.vue
@@ -0,0 +1,78 @@
+<template>
+ <InfiniteLoading
+ scrollViewClassName="life-page-infinite-scroll-list"
+ v-bind="infiniteLoadingProps"
+ >
+ <template #renderItem="{ item }">
+ <OrderCard
+ title="鐕冩皵鍏呭��"
+ :status="convertOrderFrontStatus(item?.payStatus, item?.lifePayOrderStatus)"
+ :order-no="item?.orderNo"
+ @goApplyRefund="emit('goApplyRefund', $event)"
+ @goRefundDetail="emit('goRefundDetail', $event)"
+ >
+ <OrderCardItem
+ label="鍏呭�艰处鍙�:"
+ :value="JSON.parse(item?.orderParamDetailJsonStr)?.gasAccount"
+ />
+ <OrderCardItem
+ label="涓嬪崟鏃堕棿:"
+ :value="item?.creationTime && dayjs(item?.creationTime).format('YYYY-MM-DD HH:mm:ss')"
+ />
+ <template v-if="item.payStatus !== BlLifeRecharge.constants.LifePayStatusEnum.宸查��娆�">
+ <OrderCardItem
+ label="鍏呭�奸噾棰�:"
+ :value="`锟�${toThousand(item?.rechargeAmount)}`"
+ danger
+ />
+ <OrderCardItem label="浼樻儬閲戦:" :value="`锟�${toThousand(item?.discountAmount)}`" />
+ </template>
+ <OrderCardItem label="瀹炰粯閲戦:" :value="`锟�${toThousand(item?.payAmount)}`" danger />
+ <OrderCardItem
+ label="鏀粯鏃堕棿:"
+ :value="item?.payTime && dayjs(item?.payTime).format('YYYY-MM-DD HH:mm:ss')"
+ />
+ <OrderCardItem
+ v-if="item.payStatus !== BlLifeRecharge.constants.LifePayStatusEnum.宸查��娆�"
+ label="瀹屾垚鏃堕棿:"
+ :value="item?.finishTime && dayjs(item?.finishTime).format('YYYY-MM-DD HH:mm:ss')"
+ />
+ <template v-else>
+ <OrderCardItem label="閫�娆鹃噾棰�:" :value="`锟�${toThousand(item?.payAmount)}`" danger />
+ <OrderCardItem
+ label="閫�娆炬椂闂�:"
+ :value="item?.refundTime && dayjs(item?.refundTime).format('YYYY-MM-DD HH:mm:ss')"
+ >
+ </OrderCardItem>
+ </template>
+ </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 dayjs from 'dayjs';
+import { BlLifeRecharge } from '@life-payment/core-vue';
+import { toThousand, convertOrderFrontStatus } from '../../../utils';
+
+defineOptions({
+ name: 'GasOrder',
+});
+
+// type Props = {};
+
+// const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+ (e: 'goApplyRefund', orderNo: string): void;
+ (e: 'goRefundDetail', orderNo: string): void;
+}>();
+
+const { infiniteLoadingProps } = useGetUserLifePayOrderPage({
+ lifePayOrderType: BlLifeRecharge.constants.LifePayOrderTypeEnum.鐕冩皵璁㈠崟,
+});
+</script>
diff --git a/packages/components/src/views/Order/components/PhoneOrder.vue b/packages/components/src/views/Order/components/PhoneOrder.vue
index db8ebc4..873946c 100644
--- a/packages/components/src/views/Order/components/PhoneOrder.vue
+++ b/packages/components/src/views/Order/components/PhoneOrder.vue
@@ -6,8 +6,10 @@
<template #renderItem="{ item }">
<OrderCard
title="璇濊垂鍏呭��"
- :status="orderStatusEnum(item?.payStatus, item?.lifePayOrderStatus)"
+ :status="convertOrderFrontStatus(item?.payStatus, item?.lifePayOrderStatus)"
:order-no="item?.orderNo"
+ @goApplyRefund="emit('goApplyRefund', $event)"
+ @goRefundDetail="emit('goRefundDetail', $event)"
>
<OrderCardItem
label="鍏呭�艰处鍙�:"
@@ -55,7 +57,7 @@
import { useGetUserLifePayOrderPage } from '../../../hooks';
import dayjs from 'dayjs';
import { BlLifeRecharge } from '@life-payment/core-vue';
-import { toThousand, orderStatusEnum } from '../../../utils';
+import { toThousand, convertOrderFrontStatus } from '../../../utils';
defineOptions({
name: 'PhoneOrder',
@@ -65,6 +67,11 @@
// const props = withDefaults(defineProps<Props>(), {});
+const emit = defineEmits<{
+ (e: 'goApplyRefund', orderNo: string): void;
+ (e: 'goRefundDetail', orderNo: string): void;
+}>();
+
const { infiniteLoadingProps } = useGetUserLifePayOrderPage({
lifePayOrderType: BlLifeRecharge.constants.LifePayOrderTypeEnum.璇濊垂璁㈠崟,
});
diff --git a/packages/components/src/views/userAccount/UserAccountListView.vue b/packages/components/src/views/userAccount/UserAccountListView.vue
new file mode 100644
index 0000000..68ee021
--- /dev/null
+++ b/packages/components/src/views/userAccount/UserAccountListView.vue
@@ -0,0 +1,75 @@
+<template>
+ <InfiniteLoading
+ scrollViewClassName="life-page-infinite-scroll-list"
+ v-bind="infiniteLoadingProps"
+ >
+ <template #renderItem="{ item }">
+ <AccountCard
+ :title="TitleMap[item.lifePayType]"
+ :content="
+ item.lifePayType === LifeRechargeConstants.LifePayOrderTypeEnum.璇濊垂璁㈠崟
+ ? item.content
+ : `${item.city}-${item.content}`
+ "
+ :remark="item.remark"
+ :style="{
+ marginBottom: Taro.pxTransform(20),
+ backgroundColor: '#ffffff',
+ }"
+ >
+ <template #action>
+ <div class="account-card-action" @click="handleEditUserAccount">缂栬緫</div>
+ <div class="account-card-action" @click="handleEditUserAccount">鍒犻櫎</div>
+ </template>
+ </AccountCard>
+ </template>
+ </InfiniteLoading>
+</template>
+
+<script setup lang="ts">
+import InfiniteLoading from '../../components/InfiniteLoading/InfiniteLoading.vue';
+import {
+ BlLifeRecharge,
+ useLifeRechargeContext,
+ QueryUserAccountListInput,
+ LifeRechargeConstants,
+} from '@life-payment/core-vue';
+import { useInfiniteLoading } from '../../hooks/infiniteLoading';
+import { OrderInputType } from '../../constants';
+import AccountCard from '../../components/Card/AccountCard.vue';
+import Taro from '@tarojs/taro';
+
+defineOptions({
+ name: 'UserAccountListView',
+});
+
+const { blLifeRecharge } = useLifeRechargeContext();
+
+const TitleMap = {
+ [LifeRechargeConstants.LifePayOrderTypeEnum.璇濊垂璁㈠崟]: '鎵嬫満鍙�',
+ [LifeRechargeConstants.LifePayOrderTypeEnum.鐢佃垂璁㈠崟]: '鐢佃垂鎴峰彿',
+ [LifeRechargeConstants.LifePayOrderTypeEnum.鐕冩皵璁㈠崟]: '鐕冩皵鎴峰彿',
+};
+
+const { infiniteLoadingProps } = useInfiniteLoading(
+ ({ pageParam }) => {
+ let params: QueryUserAccountListInput = {
+ pageModel: {
+ rows: 20,
+ page: pageParam,
+ orderInput: [{ property: 'id', order: OrderInputType.Desc }],
+ },
+ userId: blLifeRecharge.accountModel.userId,
+ };
+
+ return blLifeRecharge.services.getUserAccountList(params, {
+ showLoading: false,
+ });
+ },
+ {
+ queryKey: ['blLifeRecharge/getUserAccountList', blLifeRecharge.accountModel.userId],
+ }
+);
+
+function handleEditUserAccount() {}
+</script>
diff --git a/packages/core/src/lifeRechargeConstants.ts b/packages/core/src/lifeRechargeConstants.ts
index f052615..2d07787 100644
--- a/packages/core/src/lifeRechargeConstants.ts
+++ b/packages/core/src/lifeRechargeConstants.ts
@@ -35,8 +35,39 @@
宸插け璐� = 20,
宸插畬鎴� = 30,
+
+ 閫�娆惧緟瀹℃牳 = 40,
+
+ 宸查��娆� = 50,
+
+ 閫�娆惧け璐� = 60,
}
+ export const LifePayOrderStatusEnumText = {
+ [LifePayOrderStatusEnum.寰呯‘璁: '寰呯‘璁�',
+ [LifePayOrderStatusEnum.宸插け璐: '宸插け璐�',
+ [LifePayOrderStatusEnum.宸插畬鎴怾: '宸插畬鎴�',
+ [LifePayOrderStatusEnum.閫�娆惧緟瀹℃牳]: '閫�娆惧緟瀹℃牳',
+ [LifePayOrderStatusEnum.宸查��娆綸: '宸查��娆�',
+ [LifePayOrderStatusEnum.閫�娆惧け璐: '閫�娆惧け璐�',
+ };
+
+ export enum LifePayOrderFrontStatusEnum {
+ 鏀粯鎴愬姛 = 10,
+ 閫�娆惧緟瀹℃牳 = 40,
+ 宸查��娆� = 50,
+ 閫�娆惧け璐� = 60,
+ 鍏呭�兼垚鍔� = 100,
+ }
+
+ export const LifePayOrderFrontStatusEnumText = {
+ [LifePayOrderFrontStatusEnum.鏀粯鎴愬姛]: '鏀粯鎴愬姛',
+ [LifePayOrderFrontStatusEnum.閫�娆惧緟瀹℃牳]: '閫�娆惧緟瀹℃牳',
+ [LifePayOrderFrontStatusEnum.宸查��娆綸: '宸查��娆�',
+ [LifePayOrderFrontStatusEnum.閫�娆惧け璐: '閫�娆惧け璐�',
+ [LifePayOrderFrontStatusEnum.鍏呭�兼垚鍔焆: '鍏呭�兼垚鍔�',
+ };
+
export enum IspCode {
/**涓浗绉诲姩 */
yidong = 'yidong',
diff --git a/packages/core/src/lifeRechargeServices.ts b/packages/core/src/lifeRechargeServices.ts
index 865a7e2..200ad7e 100644
--- a/packages/core/src/lifeRechargeServices.ts
+++ b/packages/core/src/lifeRechargeServices.ts
@@ -169,6 +169,18 @@
});
}
+ /** 鑾峰彇鎴戠殑鎴峰彿鍒楄〃 POST /api/LifePay/GetUserAccountList */
+ async getUserAccountList(body: QueryUserAccountListInput, options?: RequestConfig) {
+ return this.request<UserAccountListOutputPageOutput>('/api/LifePay/GetUserAccountList', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+ }
+
/** 娣诲姞鎴栦慨鏀规垜鐨勬埛鍙� POST /api/LifePay/AddUpdateUserAccount */
async addUpdateUserAccount(body: AddUpdateUserAccountInput, options?: RequestConfig) {
return this.request<number>('/api/LifePay/AddUpdateUserAccount', {
@@ -197,6 +209,18 @@
async getGasParValue(options?: RequestConfig) {
return this.request<GasParValueResponse>('/api/LifePay/GetGasParValue', {
method: 'GET',
+ ...(options || {}),
+ });
+ }
+
+ /** 鐢ㄦ埛鍙戣捣鐢熸椿缂磋垂閫�娆� POST /api/LifePay/RefundUserLifePayOrder */
+ async refundUserLifePayOrder(body: RefundUserLifePayOrderInput, options?: RequestConfig) {
+ return this.request<number>('/api/LifePay/RefundUserLifePayOrder', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
...(options || {}),
});
}
@@ -522,3 +546,23 @@
rate?: number;
comments?: string;
}
+
+export interface RefundUserLifePayOrderInput {
+ id?: string;
+ /** 鐢ㄦ埛Id */
+ userId?: string;
+ refundApplyRemark?: string;
+}
+
+export interface QueryUserAccountListInput {
+ pageModel?: Pagination;
+ /** 鐢ㄦ埛Id */
+ userId?: string;
+ lifePayOrderType?: LifeRechargeConstants.LifePayOrderTypeEnum;
+}
+
+export interface UserAccountListOutputPageOutput {
+ pageModel?: Pagination;
+ objectData?: any;
+ data?: UserAccountListOutput[];
+}
--
Gitblit v1.9.1