123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <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>
|