From cb4bcf7c64236b7c47e0500f4097a925543d850f Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 23 十月 2025 13:15:44 +0800
Subject: [PATCH] fix: bug
---
src/views/BalanceManage/BalanceManage.vue | 35 +++++
src/views/BalanceManage/components/WithdrawalRecordView.vue | 139 +++++++++++++++++++++++
src/views/BalanceManage/components/PaymentRecordView.vue | 118 +++++++++++++++++++
src/views/BalanceManage/components/RechargeRecordView.vue | 14 +-
4 files changed, 297 insertions(+), 9 deletions(-)
diff --git a/src/views/BalanceManage/BalanceManage.vue b/src/views/BalanceManage/BalanceManage.vue
index fd6b997..2946d2b 100644
--- a/src/views/BalanceManage/BalanceManage.vue
+++ b/src/views/BalanceManage/BalanceManage.vue
@@ -68,8 +68,22 @@
</RewardInfoCard>
</RewardInfoCardList>
<ProTabs v-model="state.tabType" hasBorder class="reward-tabs">
- <ProTabPane lazy label="娑堣垂璁板綍" name="Consume">
- <ConsumeRecordView></ConsumeRecordView>
+ <ProTabPane lazy label="鎷ㄤ粯璁板綍" name="Payment">
+ <PaymentRecordView></PaymentRecordView>
+ </ProTabPane>
+ <template v-if="sceneThree || sceneFour">
+ <ProTabPane lazy label="濂栧姳鍙戞斁璁板綍" name="RewardGrant">
+ <RewardGrantRecordView></RewardGrantRecordView>
+ </ProTabPane>
+ <ProTabPane lazy label="鍏呭�艰褰�" name="Recharge">
+ <RechargeRecordView ref="rechargeRecordRef"></RechargeRecordView>
+ </ProTabPane>
+ <ProTabPane lazy label="娑堣垂璁板綍" name="Consume">
+ <ConsumeRecordView></ConsumeRecordView>
+ </ProTabPane>
+ </template>
+ <ProTabPane lazy label="鎻愮幇璁板綍" name="Withdrawal" v-if="sceneTwo || sceneFour">
+ <WithdrawalRecordView ref="withdrawalRecordRef"></WithdrawalRecordView>
</ProTabPane>
</ProTabs>
</AppContainer>
@@ -84,6 +98,10 @@
import RewardInfoCardContentItem from '@/components/Reward/RewardInfoCardContentItem.vue';
import { setOSSLink, downloadFileByUrl, toThousand, addStarForString } from '@/utils';
import ConsumeRecordView from './components/ConsumeRecordView.vue';
+import RechargeRecordView from './components/RechargeRecordView.vue';
+import RewardGrantRecordView from './components/RewardGrantRecordView.vue';
+import WithdrawalRecordView from './components/WithdrawalRecordView.vue';
+import PaymentRecordView from './components/PaymentRecordView.vue';
import { useQuery } from '@tanstack/vue-query';
import { useUser } from '@/hooks';
@@ -99,6 +117,19 @@
const { user } = useUser();
const state = reactive({ ...BaseState });
+const sceneOne = computed(() => {
+ return !userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw;
+});
+const sceneTwo = computed(() => {
+ return !userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw;
+});
+const sceneThree = computed(() => {
+ return userDetail.value?.suportPlatRecharge && !userDetail.value?.suportWithDraw;
+});
+const sceneFour = computed(() => {
+ return userDetail.value?.suportPlatRecharge && userDetail.value?.suportWithDraw;
+});
+
const { isLoading, data: detail } = useQuery({
queryKey: ['userServices/getUserAmountShow'],
queryFn: async () => {
diff --git a/src/views/BalanceManage/components/PaymentRecordView.vue b/src/views/BalanceManage/components/PaymentRecordView.vue
new file mode 100644
index 0000000..94e1377
--- /dev/null
+++ b/src/views/BalanceManage/components/PaymentRecordView.vue
@@ -0,0 +1,118 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <Table v-bind="{ ...proTableProps, ...columnsProps }">
+ <template #operationBtn-checkBtn="{ data, row }">
+ <PreviewBtnV2
+ class="pro-table-operation-btn"
+ :url="convertApi2FormUrlBySeparator(row.financeToFileUrl ?? '')"
+ preview-btn-text="鏌ョ湅鍑瘉"
+ />
+ </template>
+ </Table>
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import { AppContainer, useTable, PreviewBtnV2 } from '@bole-core/components';
+import { OrderInputType } from '@bole-core/core';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import { FinanceStatusEnum, FinanceStatusEnumText } from '@/constants';
+import { useDefineColumns, useUser } from '@/hooks';
+import { convertApi2FormUrlBySeparator } from '@/utils';
+
+defineOptions({
+ name: 'PaymentRecordView',
+});
+
+const columnsProps = useDefineColumns({
+ columns: [
+ {
+ id: '1',
+ enCode: 'financeToTime',
+ name: '鎷ㄤ粯鏃堕棿',
+ },
+ {
+ id: '2',
+ enCode: 'financeToAmount',
+ name: '鎷ㄤ粯閲戦',
+ },
+ {
+ id: '3',
+ enCode: 'batchNo',
+ name: '鎷ㄤ粯鎵规',
+ },
+ {
+ id: '4',
+ enCode: 'applyMonth',
+ name: '鎷ㄤ粯鏈堜唤',
+ },
+ {
+ id: '5',
+ enCode: 'financeToStatus',
+ name: '鎷ㄤ粯鐘舵��',
+ },
+ ],
+ operationBtns: [
+ {
+ data: {
+ enCode: 'checkBtn',
+ name: '鏌ョ湅鍑瘉',
+ },
+ },
+ ],
+});
+
+const { userDetail } = useUser();
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.QueryParkCustomerBountyApplyInput = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ orderInput: extraParamState.orderInput,
+ },
+ id: userDetail.value?.userId ?? '',
+ };
+ let res = await parkBountyApplyServices.getParkCustomerBountyFinanceList(params, {
+ showLoading: !state.loading,
+ });
+
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ orderInput: [{ property: 'financeToTime', order: OrderInputType.Desc }],
+ },
+ columnsRenderProps: {
+ financeToStatus: { type: 'enum', valueEnum: FinanceStatusEnumText },
+ financeToTime: { type: 'date', format: 'YYYY-MM-DD' },
+ applyMonth: { type: 'date', format: 'YYYY骞碝M鏈�' },
+ financeToAmount: { type: 'money' },
+ },
+ }
+);
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/BalanceManage/components/RechargeRecordView.vue b/src/views/BalanceManage/components/RechargeRecordView.vue
index 21c2153..1db603d 100644
--- a/src/views/BalanceManage/components/RechargeRecordView.vue
+++ b/src/views/BalanceManage/components/RechargeRecordView.vue
@@ -35,14 +35,14 @@
defineOperationBtns,
} from '@bole-core/components';
import { OrderInputType } from '@bole-core/core';
-// import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
import { useUser } from '@/hooks';
-// import {
-// EnterprisePrechargeInComeStatusEnum,
-// EnterprisePrechargeInComeStatusEnumText,
-// EnterpriseRechargeStatusEnum,
-// EnterpriseRechargeStatusEnumText,
-// } from '@/constants';
+import {
+ EnterprisePrechargeInComeStatusEnum,
+ EnterprisePrechargeInComeStatusEnumText,
+ EnterpriseRechargeStatusEnum,
+ EnterpriseRechargeStatusEnumText,
+} from '@/constants';
import { convertApi2FormUrlBySeparator } from '@/utils';
defineOptions({
diff --git a/src/views/BalanceManage/components/WithdrawalRecordView.vue b/src/views/BalanceManage/components/WithdrawalRecordView.vue
new file mode 100644
index 0000000..78d4948
--- /dev/null
+++ b/src/views/BalanceManage/components/WithdrawalRecordView.vue
@@ -0,0 +1,139 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <Table v-bind="{ ...proTableProps, ...columnsProps }">
+ <template #checkStatus="{ data, row }">
+ <div style="display: flex; justify-content: center; align-items: center">
+ {{ EnterpriseRechargeStatusEnumTextWithdrawal[row.checkStatus] }}
+ <el-tooltip
+ placement="top"
+ v-if="row.checkStatus === EnterpriseRechargeStatusEnum.CheckReject && row.checkRemark"
+ :content="row.checkRemark"
+ >
+ <el-icon color="#ff0000"><WarningFilled /></el-icon>
+ </el-tooltip>
+ </div>
+ </template>
+ <template #operationBtn-checkBtn="{ data, row }">
+ <PreviewBtnV2
+ class="pro-table-operation-btn"
+ :url="convertApi2FormUrlBySeparator(row.checkFileUrl ?? '')"
+ preview-btn-text="鏌ョ湅鍑瘉"
+ />
+ </template>
+ </Table>
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import { AppContainer, useTable, PreviewBtnV2, TextOverTooltip } from '@bole-core/components';
+import { OrderInputType } from '@bole-core/core';
+import * as parkBountyApplyServices from '@/services/api/ParkBountyApply';
+import { useDefineColumns, useUser } from '@/hooks';
+import { convertApi2FormUrlBySeparator } from '@/utils';
+import {
+ EnterpriseRechargeStatusEnumTextWithdrawal,
+ EnterpriseRechargeStatusEnum,
+} from '@/constants';
+
+defineOptions({
+ name: 'WithdrawalRecordView',
+});
+
+const columnsProps = useDefineColumns({
+ columns: [
+ {
+ id: '1',
+ enCode: 'creationTime',
+ name: '鐢宠鏃堕棿',
+ },
+ {
+ id: '2',
+ enCode: 'amount',
+ name: '鎻愮幇閲戦',
+ },
+ {
+ id: '3',
+ enCode: 'checkStatus',
+ name: '瀹℃牳鐘舵��',
+ },
+ {
+ id: '4',
+ enCode: 'checkTime',
+ name: '瀹℃牳鏃堕棿',
+ },
+ {
+ id: '5',
+ enCode: 'remainAmount',
+ name: '璧勯噾浣欓',
+ },
+ ],
+ operationBtns: [
+ {
+ data: {
+ enCode: 'checkBtn',
+ name: '鏌ョ湅鍑瘉',
+ },
+ },
+ ],
+});
+
+const route = useRoute();
+const router = useRouter();
+const id = route.params.id as string;
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+const { userDetail } = useUser();
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.GetEnterpriseDrawWithListInput = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ orderInput: extraParamState.orderInput,
+ },
+ };
+ let res = await parkBountyApplyServices.getEnterpriseDrawWithList(params, {
+ showLoading: !state.loading,
+ });
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
+ },
+ columnsRenderProps: {
+ creationTime: { type: 'date', format: 'YYYY-MM-DD' },
+ checkTime: { type: 'date', format: 'YYYY-MM-DD' },
+ amount: { type: 'money' },
+ remainAmount: { type: 'money' },
+ checkStatus: { type: 'enum', valueEnum: EnterpriseRechargeStatusEnumTextWithdrawal },
+ },
+ }
+);
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+
+defineExpose({
+ getList,
+});
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
--
Gitblit v1.9.1