diff --git a/package.json b/package.json index 982f335..39c656c 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@better-scroll/core": "2.5.1", "@elysiajs/eden": "^1.4.5", "@iconify/vue": "5.0.0", - "@riwa/api-types": "http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz", + "@riwa/api-types": "http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz", "@sa/axios": "workspace:*", "@sa/color": "workspace:*", "@sa/hooks": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49e7183..9feb801 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 5.0.0 version: 5.0.0(vue@3.5.25(typescript@5.9.3)) '@riwa/api-types': - specifier: http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz - version: http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz(@elysiajs/eden@1.4.5(elysia@1.4.19(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3))) + specifier: http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz + version: http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz(@elysiajs/eden@1.4.5(elysia@1.4.19(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3))) '@sa/axios': specifier: workspace:* version: link:packages/axios @@ -1074,9 +1074,9 @@ packages: '@quansync/fs@0.1.6': resolution: {integrity: sha512-zoA8SqQO11qH9H8FCBR7NIbowYARIPmBz3nKjgAaOUDi/xPAAu1uAgebtV7KXHTc6CDZJVRZ1u4wIGvY5CWYaw==} - '@riwa/api-types@http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz': - resolution: {tarball: http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz} - version: 0.0.17 + '@riwa/api-types@http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz': + resolution: {tarball: http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz} + version: 0.0.23 peerDependencies: '@elysiajs/eden': ^1.4.5 @@ -5082,7 +5082,7 @@ snapshots: dependencies: quansync: 0.3.0 - '@riwa/api-types@http://192.168.1.36:9527/api/riwa-api-types-0.0.17.tgz(@elysiajs/eden@1.4.5(elysia@1.4.19(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))': + '@riwa/api-types@http://192.168.1.36:9527/api/riwa-api-types-0.0.23.tgz(@elysiajs/eden@1.4.5(elysia@1.4.19(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)))': dependencies: '@elysiajs/eden': 1.4.5(elysia@1.4.19(@sinclair/typebox@0.34.41)(exact-mirror@0.2.5(@sinclair/typebox@0.34.41))(file-type@21.1.1)(openapi-types@12.1.3)(typescript@5.9.3)) diff --git a/src/components/table/index.ts b/src/components/table/index.ts index 5bc490d..6b5c973 100644 --- a/src/components/table/index.ts +++ b/src/components/table/index.ts @@ -5,19 +5,23 @@ import type { InternalRowData } from 'naive-ui/es/data-table/src/interface'; import type { safeClient } from '@/service/api'; import type TableBase from './table-base.vue'; -type TableBaseColumn = DataTableColumn & { +export type TableBaseExpandColumn = { operations?: (row: T) => Array & { contentText: string }>; key: string; title: string; }; +type TableBaseColumn = DataTableColumn & TableBaseExpandColumn; + export type TableBaseColumns = Array>; export type TableInst = InstanceType; export interface Pagination { - limit: number; - offset: number; + pageIndex: number; + pageSize: number; + total?: number; + [key: string]: any; } export type TableFetchData = (page: Pagination) => ReturnType; diff --git a/src/components/table/table-base.vue b/src/components/table/table-base.vue index c6692ca..2f4eab6 100644 --- a/src/components/table/table-base.vue +++ b/src/components/table/table-base.vue @@ -29,8 +29,8 @@ async function loadData() { const page = pagination.value.page || 1; const pageSize = pagination.value.pageSize || 10; const { data } = await props.fetchData({ - limit: pageSize, - offset: (page - 1) * pageSize + pageIndex: page, + pageSize }); tableData.value = (data.value as any).data; @@ -41,6 +41,10 @@ function handlePageChange(curPage: number) { pagination.value.page = curPage; loadData(); } +function handlePageSizeChange(curPageSize: number) { + pagination.value.pageSize = curPageSize; + loadData(); +} onMounted(() => { loadData(); @@ -66,6 +70,7 @@ defineExpose({ :pagination="pagination" :bordered="false" :on-update:page="handlePageChange" + :on-update:page-size="handlePageSizeChange" /> diff --git a/src/views/deposit/fiat/index.vue b/src/views/deposit/fiat/index.vue index b3679cf..09a20dd 100644 --- a/src/views/deposit/fiat/index.vue +++ b/src/views/deposit/fiat/index.vue @@ -3,16 +3,16 @@ import { h, ref, useTemplateRef } from 'vue'; import { NInputNumber, useDialog, useMessage } from 'naive-ui'; import { client, safeClient } from '@/service/api'; import { DepositTypeEnum } from '@/enum'; -import type { TableBaseColumns, TableFetchData, TableInst } from '@/components/table'; +import type { Pagination, TableBaseColumns, TableFetchData, TableInst } from '@/components/table'; const dialog = useDialog(); const message = useMessage(); const tableInst = useTemplateRef('tableInst'); -const fetchData: TableFetchData = () => { +const fetchData: TableFetchData = (pagination: Pagination) => { return safeClient(() => client.api.admin.deposit.pending.get({ - query: {} + query: pagination }) ); };