128 lines
2.3 KiB
Vue
128 lines
2.3 KiB
Vue
<docs>
|
||
---
|
||
order: 0
|
||
title:
|
||
en-US: Basic Usage
|
||
zh-CN: 基本用法
|
||
---
|
||
|
||
## zh-CN
|
||
|
||
简单的表格,最后一列是各种操作。
|
||
|
||
## en-US
|
||
|
||
Simple table with actions.
|
||
</docs>
|
||
|
||
<template>
|
||
<a-table :columns="columns" :data-source="data">
|
||
<template #headerCell="{ column }">
|
||
<template v-if="column.key === 'name'">
|
||
<span>
|
||
<smile-outlined />
|
||
Name
|
||
</span>
|
||
</template>
|
||
</template>
|
||
|
||
<template #bodyCell="{ column, record }">
|
||
<template v-if="column.key === 'name'">
|
||
<a>
|
||
{{ record.name }}
|
||
</a>
|
||
</template>
|
||
<template v-else-if="column.key === 'tags'">
|
||
<span>
|
||
<a-tag
|
||
v-for="tag in record.tags"
|
||
:key="tag"
|
||
:color="tag === 'loser' ? 'volcano' : tag.length > 5 ? 'geekblue' : 'green'"
|
||
>
|
||
{{ tag.toUpperCase() }}
|
||
</a-tag>
|
||
</span>
|
||
</template>
|
||
<template v-else-if="column.key === 'action'">
|
||
<span>
|
||
<a>Invite 一 {{ record.name }}</a>
|
||
<a-divider type="vertical" />
|
||
<a>Delete</a>
|
||
<a-divider type="vertical" />
|
||
<a class="ant-dropdown-link">
|
||
More actions
|
||
<down-outlined />
|
||
</a>
|
||
</span>
|
||
</template>
|
||
</template>
|
||
</a-table>
|
||
</template>
|
||
<script lang="ts">
|
||
import { SmileOutlined, DownOutlined } from '@ant-design/icons-vue';
|
||
import { defineComponent } from 'vue';
|
||
const columns = [
|
||
{
|
||
name: 'Name',
|
||
dataIndex: 'name',
|
||
key: 'name',
|
||
},
|
||
{
|
||
title: 'Age',
|
||
dataIndex: 'age',
|
||
key: 'age',
|
||
},
|
||
{
|
||
title: 'Address',
|
||
dataIndex: 'address',
|
||
key: 'address',
|
||
},
|
||
{
|
||
title: 'Tags',
|
||
key: 'tags',
|
||
dataIndex: 'tags',
|
||
},
|
||
{
|
||
title: 'Action',
|
||
key: 'action',
|
||
},
|
||
];
|
||
|
||
const data = [
|
||
{
|
||
key: '1',
|
||
name: 'John Brown',
|
||
age: 32,
|
||
address: 'New York No. 1 Lake Park',
|
||
tags: ['nice', 'developer'],
|
||
},
|
||
{
|
||
key: '2',
|
||
name: 'Jim Green',
|
||
age: 42,
|
||
address: 'London No. 1 Lake Park',
|
||
tags: ['loser'],
|
||
},
|
||
{
|
||
key: '3',
|
||
name: 'Joe Black',
|
||
age: 32,
|
||
address: 'Sidney No. 1 Lake Park',
|
||
tags: ['cool', 'teacher'],
|
||
},
|
||
];
|
||
|
||
export default defineComponent({
|
||
components: {
|
||
SmileOutlined,
|
||
DownOutlined,
|
||
},
|
||
setup() {
|
||
return {
|
||
data,
|
||
columns,
|
||
};
|
||
},
|
||
});
|
||
</script>
|