123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <script lang="ts" setup>
- import type { VxeGridProps } from '#/adapter/vxe-table';
- import { Page } from '@vben/common-ui';
- import { Button } from 'ant-design-vue';
- import { useVbenVxeGrid } from '#/adapter/vxe-table';
- import { getExampleTableApi } from '#/api';
- interface RowType {
- category: string;
- color: string;
- id: string;
- price: string;
- productName: string;
- releaseDate: string;
- }
- const gridOptions: VxeGridProps<RowType> = {
- checkboxConfig: {
- highlight: true,
- labelField: 'name',
- },
- columns: [
- { title: '序号', type: 'seq', width: 50 },
- { align: 'left', title: 'Name', type: 'checkbox', width: 100 },
- { field: 'category', sortable: true, title: 'Category' },
- { field: 'color', sortable: true, title: 'Color' },
- { field: 'productName', sortable: true, title: 'Product Name' },
- { field: 'price', sortable: true, title: 'Price' },
- { field: 'releaseDate', formatter: 'formatDateTime', title: 'DateTime' },
- ],
- exportConfig: {},
- height: 'auto',
- keepSource: true,
- proxyConfig: {
- ajax: {
- query: async ({ page, sort }) => {
- return await getExampleTableApi({
- page: page.currentPage,
- pageSize: page.pageSize,
- sortBy: sort.field,
- sortOrder: sort.order,
- });
- },
- },
- sort: true,
- },
- sortConfig: {
- defaultSort: { field: 'category', order: 'desc' },
- remote: true,
- },
- toolbarConfig: {
- custom: true,
- export: true,
- // import: true,
- refresh: { code: 'query' },
- zoom: true,
- },
- };
- const [Grid, gridApi] = useVbenVxeGrid({
- gridOptions,
- });
- </script>
- <template>
- <Page auto-content-height>
- <Grid table-title="数据列表" table-title-help="提示">
- <template #toolbar-tools>
- <Button class="mr-2" type="primary" @click="() => gridApi.query()">
- 刷新当前页面
- </Button>
- <Button type="primary" @click="() => gridApi.reload()">
- 刷新并返回第一页
- </Button>
- </template>
- </Grid>
- </Page>
- </template>
|