82 lines
1.3 KiB
TypeScript
82 lines
1.3 KiB
TypeScript
import { h } from 'vue';
|
|
import { ElAvatar, ElTag } from 'element-plus';
|
|
|
|
export const columns = [
|
|
{
|
|
type: 'selection',
|
|
},
|
|
{
|
|
label: '用户名',
|
|
prop: 'username',
|
|
},
|
|
{
|
|
label: '头像',
|
|
prop: 'avatar',
|
|
render(record) {
|
|
return h(ElAvatar, {
|
|
size: 48,
|
|
src: record.row.avatar,
|
|
shape: 'square',
|
|
fit: 'fill',
|
|
});
|
|
},
|
|
width: 100,
|
|
},
|
|
{
|
|
label: '手机号',
|
|
prop: 'mobile',
|
|
},
|
|
{
|
|
label: '邮箱',
|
|
prop: 'email',
|
|
},
|
|
{
|
|
label: '性别',
|
|
prop: 'gender',
|
|
render(record) {
|
|
return h(
|
|
ElTag,
|
|
{
|
|
type: record.row.gender === 1 ? 'success' : 'danger',
|
|
},
|
|
{
|
|
default: () => (record.row.gender === 1 ? '男' : '女'),
|
|
},
|
|
);
|
|
},
|
|
},
|
|
{
|
|
label: '角色',
|
|
prop: 'role',
|
|
render(record) {
|
|
return h(
|
|
ElTag,
|
|
{},
|
|
{
|
|
default: () => record.row.roles[0].name,
|
|
},
|
|
);
|
|
},
|
|
},
|
|
{
|
|
label: '状态',
|
|
prop: 'status',
|
|
render(record) {
|
|
return h(
|
|
ElTag,
|
|
{
|
|
type: record.row.status ==1 ? 'success' : 'danger',
|
|
},
|
|
{
|
|
default: () => (record.row.status ==1 ? '正常' : '禁用'),
|
|
},
|
|
);
|
|
},
|
|
},
|
|
{
|
|
label: '创建时间',
|
|
prop: 'createTime',
|
|
width: 180,
|
|
},
|
|
];
|