114 lines
2.7 KiB
Vue
114 lines
2.7 KiB
Vue
<docs>
|
||
---
|
||
order: 4
|
||
title:
|
||
en-US: Custom selection
|
||
zh-CN: 自定义选择项
|
||
---
|
||
|
||
## zh-CN
|
||
通过 `rowSelection.selections` 自定义选择项,默认不显示下拉选项,设为 `true` 时显示默认选择项。
|
||
|
||
## en-US
|
||
Use `rowSelection.selections` custom selections, default no select dropdown, show default selections via setting to `true`.
|
||
|
||
</docs>
|
||
|
||
<template>
|
||
<a-table :row-selection="rowSelection" :columns="columns" :data-source="data" />
|
||
</template>
|
||
<script lang="ts">
|
||
import { defineComponent, computed, ref, unref } from 'vue';
|
||
import { Table } from 'ant-design-vue';
|
||
|
||
interface DataType {
|
||
key: string | number;
|
||
name: string;
|
||
age: number;
|
||
address: string;
|
||
}
|
||
|
||
const columns = [
|
||
{
|
||
title: 'Name',
|
||
dataIndex: 'name',
|
||
},
|
||
{
|
||
title: 'Age',
|
||
dataIndex: 'age',
|
||
},
|
||
{
|
||
title: 'Address',
|
||
dataIndex: 'address',
|
||
},
|
||
];
|
||
|
||
const data: DataType[] = [];
|
||
for (let i = 0; i < 46; i++) {
|
||
data.push({
|
||
key: i,
|
||
name: `Edward King ${i}`,
|
||
age: 32,
|
||
address: `London, Park Lane no. ${i}`,
|
||
});
|
||
}
|
||
|
||
export default defineComponent({
|
||
setup() {
|
||
const selectedRowKeys = ref<DataType['key'][]>([]); // Check here to configure the default column
|
||
|
||
const onSelectChange = (changableRowKeys: string[]) => {
|
||
console.log('selectedRowKeys changed: ', changableRowKeys);
|
||
selectedRowKeys.value = changableRowKeys;
|
||
};
|
||
|
||
const rowSelection = computed(() => {
|
||
return {
|
||
selectedRowKeys: unref(selectedRowKeys),
|
||
onChange: onSelectChange,
|
||
hideDefaultSelections: true,
|
||
selections: [
|
||
Table.SELECTION_ALL,
|
||
Table.SELECTION_INVERT,
|
||
Table.SELECTION_NONE,
|
||
{
|
||
key: 'odd',
|
||
text: 'Select Odd Row',
|
||
onSelect: changableRowKeys => {
|
||
let newSelectedRowKeys = [];
|
||
newSelectedRowKeys = changableRowKeys.filter((_key, index) => {
|
||
if (index % 2 !== 0) {
|
||
return false;
|
||
}
|
||
return true;
|
||
});
|
||
selectedRowKeys.value = newSelectedRowKeys;
|
||
},
|
||
},
|
||
{
|
||
key: 'even',
|
||
text: 'Select Even Row',
|
||
onSelect: changableRowKeys => {
|
||
let newSelectedRowKeys = [];
|
||
newSelectedRowKeys = changableRowKeys.filter((_key, index) => {
|
||
if (index % 2 !== 0) {
|
||
return true;
|
||
}
|
||
return false;
|
||
});
|
||
selectedRowKeys.value = newSelectedRowKeys;
|
||
},
|
||
},
|
||
],
|
||
};
|
||
});
|
||
return {
|
||
data,
|
||
columns,
|
||
selectedRowKeys,
|
||
rowSelection,
|
||
};
|
||
},
|
||
});
|
||
</script>
|