<template> <BasicTable @register="registerTable" :rowSelection="{ type: 'checkbox', selectedRowKeys: checkedKeys, onChange: onSelectChange }"> <template #form-custom> custom-slot </template> <template #headerTop> <a-alert type="info" show-icon> <template #message> <template v-if="checkedKeys.length > 0"> <span>已选中{{ checkedKeys.length }}条记录(可跨页)</span> <a-button type="link" @click="checkedKeys = []" size="small">清空</a-button> </template> <template v-else> <span>未选中任何项目</span> </template> </template> </a-alert> </template> <template #toolbar> <a-button type="primary" @click="getFormValues">获取表单数据</a-button> </template> </BasicTable> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; import { BasicTable, useTable } from '/@/components/Table'; import { getBasicColumns, getFormConfig } from './tableData'; import { Alert } from 'ant-design-vue'; import { demoListApi } from '/@/api/demo/table'; export default defineComponent({ components: { BasicTable, AAlert: Alert }, setup() { const checkedKeys = ref<Array<string | number>>([]); const [registerTable, { getForm }] = useTable({ title: '开启搜索区域', api: demoListApi, columns: getBasicColumns(), useSearchForm: true, formConfig: getFormConfig(), showTableSetting: true, tableSetting: { fullScreen: true }, showIndexColumn: false, rowKey: 'id', }); function getFormValues() { console.log(getForm().getFieldsValue()); } function onSelectChange(selectedRowKeys: (string | number)[]) { console.log(selectedRowKeys); checkedKeys.value = selectedRowKeys; } return { registerTable, getFormValues, checkedKeys, onSelectChange, }; }, }); </script>