From 9fa55a79a532aad9ffde85e270cdf52b55f16248 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期五, 19 九月 2025 16:25:58 +0800 Subject: [PATCH] fix: bug --- src/views/FinanceManage/components/BalanceDetailDialog.vue | 95 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 76 insertions(+), 19 deletions(-) diff --git a/src/views/FinanceManage/components/BalanceDetailDialog.vue b/src/views/FinanceManage/components/BalanceDetailDialog.vue index a81d09f..bb8418f 100644 --- a/src/views/FinanceManage/components/BalanceDetailDialog.vue +++ b/src/views/FinanceManage/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, + useFormDialog, + defineOperationBtns, } 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 { EnumUserWalletTransactionTypeText, EnumUserWalletTransactionType } 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