From a9477569424eade1c5c61c0a9b91f581dc62b213 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 19 九月 2025 15:48:19 +0800
Subject: [PATCH] fix: bug

---
 src/views/FinanceManage/components/BalanceDetailDialog.vue |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/src/views/FinanceManage/components/BalanceDetailDialog.vue b/src/views/FinanceManage/components/BalanceDetailDialog.vue
index a81d09f..330e4b8 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),
+    },
   },
 ]);
 
@@ -113,27 +150,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