From ec76c13fac4f9937e62e6244624c3fb98c398538 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 12 九月 2025 15:55:32 +0800
Subject: [PATCH] feat: 支付宝充值
---
src/views/ServiceChargeManage/ServiceChargeDetail.vue | 127 +++++++++++++++++++++++++++++++----------
1 files changed, 95 insertions(+), 32 deletions(-)
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index d73de36..de7d1ff 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -34,12 +34,14 @@
<ProFormCol>
<ProFormColItem :span="8">
<ProFormItemV2 label="缁撶畻閲戦:" prop="settlementAmount">
- <ProFormText v-model="form.settlementAmount"> </ProFormText>
+ <ProFormInputNumber v-model="form.settlementAmount" format-value="money">
+ </ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
<ProFormColItem :span="8">
<ProFormItemV2 label="瀹炲彂閲戦:" prop="actualSettlementAmount">
- <ProFormText v-model="form.actualSettlementAmount"> </ProFormText>
+ <ProFormInputNumber v-model="form.actualSettlementAmount" format-value="money">
+ </ProFormInputNumber>
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
@@ -67,7 +69,7 @@
</el-steps>
</div>
</ChunkCell> -->
- <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1">
+ <ChunkCell title="缁撶畻鍚嶅崟" style="flex: 1" class="settlement-user-list-chunk">
<ProTableQueryFilterBar @on-reset="reset">
<template #query>
<QueryFilterItem>
@@ -88,7 +90,7 @@
:auto-height="false"
ref="proTable"
:tableProps="{
- maxHeight: '400px',
+ maxHeight: '250px',
}"
>
</ProTableV2>
@@ -127,6 +129,7 @@
QueryFilterItem,
ProTableQueryFilterBar,
useFormDialog,
+ XLSXUtils,
} from '@bole-core/components';
import { SettlementListColumns } from './constants';
import { useQuery } from '@tanstack/vue-query';
@@ -162,31 +165,87 @@
const form = reactive({
name: '',
- settlementAmount: '',
- actualSettlementAmount: '',
+ settlementAmount: 0,
+ actualSettlementAmount: 0,
code: '',
settlementOrderName: '',
settlementOrderTime: '',
+ settlementTaskUsers: [] as API.GetSettlementTaskUsersQueryResultItem[],
});
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+// onMounted(async () => {
+// await getList();
+// state.loading = false;
+// });
+
+// const { isLoading } = useQuery({
+// queryKey: ['taskServices/getSettlementTask', id],
+// queryFn: async () => {
+// return await taskServices.getSettlementTask(
+// { id: id },
+// {
+// showLoading: false,
+// }
+// );
+// },
+// placeholderData: () => ({} as API.GetSettlementTaskQueryResult),
+// onSuccess(data) {
+// form.name = data.name;
+// form.settlementAmount = data.settlementAmount ?? 0;
+// form.actualSettlementAmount = data.actualSettlementAmount ?? 0;
+// form.code = data.code;
+// form.settlementOrderName = setOssFileName(data.settlementOrderName);
+// form.settlementOrderTime = data.settlementOrderTime ?? '';
+// },
+// enabled: !!id,
+// });
const { isLoading } = useQuery({
- queryKey: ['taskServices/getSettlementTask', id],
+ queryKey: ['taskUserServices/getSettlementTaskUsers', id, url],
queryFn: async () => {
- return await taskServices.getSettlementTask(
- { id: id },
+ return await taskUserServices.getSettlementTaskUsers(
+ { taskInfoId: id, settlementOrderUrl: url },
{
showLoading: false,
}
);
},
- placeholderData: () => ({} as API.GetSettlementTaskQueryResult),
- onSuccess(data) {
- form.name = data.name;
- form.settlementAmount = toThousand(data.settlementAmount);
- form.actualSettlementAmount = toThousand(data.actualSettlementAmount);
- form.code = data.code;
- form.settlementOrderName = setOssFileName(data.settlementOrderName);
- form.settlementOrderTime = data.settlementOrderTime;
+ placeholderData: () => ({} as API.GetSettlementTaskUsersQueryResult),
+ onSuccess(res) {
+ form.settlementTaskUsers = res?.data ?? [];
+ if (res?.detail) {
+ form.name = res?.detail?.name;
+ form.settlementAmount = res?.detail?.settlementAmount ?? 0;
+ form.actualSettlementAmount = res?.detail?.actualSettlementAmount ?? 0;
+ form.code = res?.detail?.code;
+ form.settlementOrderName = setOssFileName(res?.detail?.settlementOrderName);
+ form.settlementOrderTime = res?.detail?.settlementOrderTime ?? '';
+ }
+ if (res?.errors?.length > 0) {
+ Message.tipMessage('瀛樺湪瀵煎叆閿欒鐨勬暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res.errors,
+ fileName: '缁撶畻瀵煎叆-閿欒鏁版嵁',
+ workbookHeaderMap: {
+ name: '濮撳悕',
+ identity: '韬唤璇佸彿',
+ taskName: '浠诲姟鍚嶇О',
+ settlementAmount: '缁撶畻閲戦',
+ actualSettlementAmount: '瀹炲彂閲戦',
+ receiveAccount: '鏀舵璐︽埛',
+ bank: '鎵�灞為摱琛�',
+ bankBranch: '寮�鎴锋敮琛屽悕绉�',
+ errorMessage: '閿欒淇℃伅',
+ },
+ });
+ });
+ }
+ getList();
},
enabled: !!id,
});
@@ -200,13 +259,9 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let params: API.APIgetSettlementTaskUsersParams = {
- taskInfoId: id,
- settlementOrderUrl: url,
- };
- let res = await taskUserServices.getSettlementTaskUsers(params);
+ let list = [...form.settlementTaskUsers];
if (extraParamState.keywords) {
- res.data = res.data?.filter((item) => {
+ list = list?.filter((item) => {
return (
item.name.includes(extraParamState.keywords) ||
item.contactPhoneNumber.includes(extraParamState.keywords) ||
@@ -214,13 +269,14 @@
);
});
}
+
return Promise.resolve({
pageModel: {
rows: pageSize,
page: pageIndex,
- totalCount: res.data.length,
+ totalCount: list.length,
},
- data: paginateList(res.data, pageIndex, pageSize),
+ data: paginateList(list, pageIndex, pageSize),
});
} catch (error) {
console.log('error: ', error);
@@ -264,9 +320,12 @@
let params: API.SureTaskSettlementOrderCommand = {
taskInfoId: id,
settlementOrderUrl: url,
- taskInfoUsers: proTableProps.value.tableData.map(
- (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser)
- ),
+ taskInfoUsers:
+ proTableProps.value.tableData?.length > 0
+ ? proTableProps.value.tableData.map(
+ (x) => ({ ...x } as API.SureTaskSettlementOrderCommandUser)
+ )
+ : [],
};
let res = await taskServices.sureTaskSettlementOrder(params);
if (res) {
@@ -282,10 +341,6 @@
name: 'ServiceChargeManageList',
});
}
-
-onMounted(() => {
- getList();
-});
</script>
<style lang="scss" scoped>
@@ -295,6 +350,14 @@
margin: 0 auto;
padding: 24px 0;
}
+
+.settlement-user-list-chunk {
+ :deep() {
+ .no-data img {
+ width: 280px;
+ }
+ }
+}
</style>
<style lang="scss">
.text-over-tooltip-content {
--
Gitblit v1.9.1