From 7ee03902d4b869b2d594cbacb8ab768ee071f8a2 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期日, 19 十月 2025 16:42:30 +0800
Subject: [PATCH] feat: 1.2.0.1
---
src/views/ServiceChargeManage/components/BalanceDetailDialog.vue | 95 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 76 insertions(+), 19 deletions(-)
diff --git a/src/views/ServiceChargeManage/components/BalanceDetailDialog.vue b/src/views/ServiceChargeManage/components/BalanceDetailDialog.vue
index a81d09f..378155c 100644
--- a/src/views/ServiceChargeManage/components/BalanceDetailDialog.vue
+++ b/src/views/ServiceChargeManage/components/BalanceDetailDialog.vue
@@ -1,15 +1,16 @@
<template>
- <ProDialog title="浣欓鏄庣粏" v-model="visible" destroy-on-close draggable>
+ <ProDialog title="浣欓鏄庣粏" v-model="visible" destroy-on-close draggable width="1200px">
<ProDialogTableWrapper :height="500">
<ProTableQueryFilterBar @on-reset="reset">
<template #query>
<QueryFilterItem>
<FieldSelect
- v-model="extraParamState.status"
- :valueEnum="[]"
+ v-model="extraParamState.type"
+ :valueEnum="EnumUserWalletTransactionTypeText"
clearable
filterable
placeholder="浜ゆ槗绫诲瀷"
+ @change="getList()"
/>
</QueryFilterItem>
<QueryFilterItem tip-content="鏌ヨ鏃ユ湡">
@@ -25,9 +26,25 @@
</QueryFilterItem>
</template>
</ProTableQueryFilterBar>
- <ProTableV2 v-bind="proTableProps" :columns="columns" :showOperationColumn="false">
+ <ProTableV2 v-bind="proTableProps" :columns="columns" :operationBtns="operationBtns">
+ <template #income="{ row }">
+ <div style="color: #67c23a" v-if="row.type === EnumUserWalletTransactionType.Income">
+ {{ `+${toThousand(row.amount)}` }}
+ </div>
+ <div v-else>/</div>
+ </template>
+ <template #outcome="{ row }">
+ <div style="color: #f56c6c" v-if="row.type === EnumUserWalletTransactionType.Withdraw">
+ {{ toThousand(row.amount) }}
+ </div>
+ <div v-else>/</div>
+ </template>
+ <template #account="{ row }">
+ {{ `${row.receiveAccount} - ${row.receiveName}` }}
+ </template>
</ProTableV2>
</ProDialogTableWrapper>
+ <FinanceDetailDialog v-bind="dialogProps"></FinanceDetailDialog>
</ProDialog>
</template>
@@ -42,9 +59,14 @@
FieldSelect,
ProTableV2,
ProTableQueryFilterBar,
+ defineOperationBtns,
+ useFormDialog,
} from '@bole-core/components';
-import * as enterpriseServices from '@/services/api/enterprise';
+import * as userServices from '@/services/api/user';
import { ModelValueType } from 'element-plus';
+import { format, toThousand } from '@/utils';
+import { EnumUserWalletTransactionType, EnumUserWalletTransactionTypeText } from '@/constants';
+import FinanceDetailDialog from './FinanceDetailDialog.vue';
defineOptions({
name: 'FinanceDetailDialog',
@@ -65,33 +87,48 @@
const columns = defineColumns([
{
id: '1',
- enCode: 'name',
+ enCode: 'transDate',
name: '浜ゆ槗鏃堕棿',
},
{
id: '2',
- enCode: 'name',
+ enCode: 'income',
name: '鏀跺叆',
+ width: 100,
},
{
id: '3',
- enCode: 'name',
+ enCode: 'outcome',
name: '鏀嚭',
+ width: 100,
},
{
id: '4',
- enCode: 'name',
+ enCode: 'balance',
name: '璐︽埛浣欓',
+ width: 100,
},
{
- id: '4',
- enCode: 'name',
+ id: '5',
+ enCode: 'account',
name: '瀵规柟甯愬彿/鎴峰悕',
},
{
- id: '4',
- enCode: 'name',
+ id: '6',
+ enCode: 'purpose',
name: '鐢ㄩ��',
+ },
+]);
+
+const operationBtns = defineOperationBtns([
+ {
+ data: {
+ enCode: 'detailBtn',
+ name: '鏄庣粏',
+ },
+ emits: {
+ onClick: (role) => openDialog(role),
+ },
},
]);
@@ -99,6 +136,8 @@
() => visible.value,
(value) => {
if (value) {
+ extraParamState.type = '' as any as EnumUserWalletTransactionType;
+ extraParamState.creationTime = [] as unknown as ModelValueType;
getList();
}
}
@@ -113,27 +152,45 @@
} = useTable(
async ({ pageIndex, pageSize }, extraParamState) => {
try {
- let params: API.GetEnterprisesQuery = {
+ let params: API.GetPersonalUserTransactionsQuery = {
pageModel: {
rows: pageSize,
page: pageIndex,
orderInput: extraParamState.orderInput,
},
- // searchKeys: extraParamState.keyword,
+ createdTimeStart: format(extraParamState.creationTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ createdTimeEnd: format(extraParamState.creationTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ type: extraParamState.type,
+ userId: form.value.id,
};
- let res = await enterpriseServices.getEnterprises(params);
+ let res = await userServices.getPersonalUserTransactions(params);
return res;
} catch (error) {}
},
{
defaultExtraParams: {
- status: '',
+ type: '' as any as EnumUserWalletTransactionType,
creationTime: [] as unknown as ModelValueType,
- orderInput: [{ property: 'id', order: EnumPagedListOrder.Asc }],
+ orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
},
- columnsRenderProps: {},
+ columnsRenderProps: {
+ transDate: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ balance: { type: 'money' },
+ },
}
);
+
+const { dialogProps, handleEdit, editForm } = useFormDialog({
+ defaultFormParams: {
+ id: '',
+ },
+});
+
+function openDialog(row: API.GetPersonalUserTransactionsQueryResultItem) {
+ handleEdit({
+ id: row.id,
+ });
+}
</script>
<style lang="scss" scoped>
--
Gitblit v1.9.1