12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <template>
- <PageWrapper
- title="可展开表格"
- content="不可与scroll共用。TableAction组件可配置stopButtonPropagation来阻止操作按钮的点击事件冒泡,以便配合Table组件的expandRowByClick"
- >
- <BasicTable @register="registerTable">
- <template #expandedRowRender="{ record }">
- <span>No: {{ record.no }} </span>
- </template>
- <template #bodyCell="{ column, record }">
- <template v-if="column.key === 'action'">
- <TableAction
- stopButtonPropagation
- :actions="[
- {
- label: '删除',
- icon: 'ic:outline-delete-outline',
- onClick: handleDelete.bind(null, record),
- },
- ]"
- :dropDownActions="[
- {
- label: '启用',
- popConfirm: {
- title: '是否启用?',
- confirm: handleOpen.bind(null, record),
- },
- },
- ]"
- />
- </template>
- </template>
- </BasicTable>
- </PageWrapper>
- </template>
- <script lang="ts">
- import { defineComponent } from 'vue';
- import { BasicTable, useTable, TableAction } from '/@/components/Table';
- import { PageWrapper } from '/@/components/Page';
- import { getBasicColumns } from './tableData';
- import { demoListApi } from '/@/api/demo/table';
- export default defineComponent({
- components: { BasicTable, TableAction, PageWrapper },
- setup() {
- const [registerTable] = useTable({
- api: demoListApi,
- title: '可展开表格演示',
- titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
- columns: getBasicColumns(),
- rowKey: 'id',
- canResize: false,
- expandRowByClick: true,
- actionColumn: {
- width: 160,
- title: 'Action',
- dataIndex: 'action',
- // slots: { customRender: 'action' },
- },
- });
- function handleDelete(record: Recordable) {
- console.log('点击了删除', record);
- }
- function handleOpen(record: Recordable) {
- console.log('点击了启用', record);
- }
- return {
- registerTable,
- handleDelete,
- handleOpen,
- };
- },
- });
- </script>
|