ant-design-vue/components/table/demo/row-selection.vue

101 lines
2.1 KiB
Vue
Raw Normal View History

2021-09-01 07:04:46 +00:00
<docs>
---
order: 2
title:
en-US: selection
zh-CN: 可选择
---
## zh-CN
第一列是联动的选择框
默认点击 checkbox 触发选择行为需要 `点击行` 触发可参考例子https://codesandbox.io/s/row-selection-on-click-tr58v
## en-US
Rows can be selectable by making first column as a selectable column.
selection happens when clicking checkbox defaultly. You can see https://codesandbox.io/s/row-selection-on-click-tr58v if you need row-click selection behavior.
</docs>
<template>
<a-table :row-selection="rowSelection" :columns="columns" :data-source="data">
<template #name="{ text }">
<a>{{ text }}</a>
</template>
</a-table>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { ColumnProps } from 'ant-design-vue/es/table/interface';
type Key = ColumnProps['key'];
interface DataType {
key: Key;
name: string;
age: number;
address: string;
}
const columns = [
{
title: 'Name',
dataIndex: 'name',
slots: { customRender: 'name' },
},
{
title: 'Age',
dataIndex: 'age',
},
{
title: 'Address',
dataIndex: 'address',
},
];
const data: DataType[] = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
{
key: '4',
name: 'Disabled User',
age: 99,
address: 'Sidney No. 1 Lake Park',
},
];
export default defineComponent({
setup() {
const rowSelection = {
onChange: (selectedRowKeys: Key[], selectedRows: DataType[]) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
},
getCheckboxProps: (record: DataType) => ({
disabled: record.name === 'Disabled User', // Column configuration not to be checked
name: record.name,
}),
};
return {
data,
columns,
rowSelection,
};
},
});
</script>