| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 | | <template> |  |   <LoadingLayout :loading="state.loading"> |  |     <AppContainer> |  |       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns"> |  |       </ProTableV2> |  |     </AppContainer> |  |     <FinanceDetailDialog v-bind="dialogProps" /> |  |   </LoadingLayout> |  | </template> |  |   |  | <script setup lang="ts"> |  | import { |  |   OperationBtnType, |  |   ProTableV2, |  |   LoadingLayout, |  |   AppContainer, |  |   useTable, |  |   useFormDialog, |  | } from '@bole-core/components'; |  | import { useAccess } from '@/hooks'; |  | import { ModelValueType } from 'element-plus'; |  | import * as userServices from '@/services/api/user'; |  | import FinanceDetailDialog from './components/FinanceDetailDialog.vue'; |  |   |  | defineOptions({ |  |   name: 'FinanceManageList', |  | }); |  |   |  | const operationBtnMap: Record<string, OperationBtnType> = { |  |   detailBtn: { emits: { onClick: (role) => openDialog(role) } }, |  | }; |  |   |  | const { column, operationBtns } = useAccess({ |  |   operationBtnMap, |  | }); |  |   |  | const router = useRouter(); |  | const BaseState = { |  |   loading: true, |  | }; |  |   |  | const state = reactive({ ...BaseState }); |  |   |  | onMounted(async () => { |  |   await getList(); |  |   state.loading = false; |  | }); |  |   |  | const { |  |   getDataSource: getList, |  |   proTableProps, |  |   paginationState, |  |   extraParamState, |  |   reset, |  | } = useTable( |  |   async ({ pageIndex, pageSize }, extraParamState) => { |  |     try { |  |       let params: API.GetPersonalUserTransactionsQuery = { |  |         pageModel: { |  |           rows: pageSize, |  |           page: pageIndex, |  |           orderInput: extraParamState.orderInput, |  |         }, |  |         type: EnumUserWalletTransactionType.Income, |  |       }; |  |       let res = await userServices.getPersonalUserTransactions(params, { |  |         showLoading: !state.loading, |  |       }); |  |       return res; |  |     } catch (error) {} |  |   }, |  |   { |  |     defaultExtraParams: { |  |       orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }], |  |     }, |  |     columnsRenderProps: { |  |       transDate: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' }, |  |     }, |  |   } |  | ); |  |   |  | const { dialogProps, handleEdit, editForm } = useFormDialog({ |  |   defaultFormParams: { |  |     id: '', |  |   }, |  | }); |  |   |  | function openDialog(row) { |  |   handleEdit({ |  |     id: row.id, |  |   }); |  | } |  | </script> | 
 |