import React from 'react';
import {
Table,
Input,
Select,
Button,
Avatar,
Space,
Tag
} from 'tdesign-react';
export default function render() {
const { t } = this;
const { users = [], oakLoading, editableRowKeys = [] } = this.state;
const { relations, entity, entityId } = this.props;
const relationArr =
typeof relations === 'object'
? relations
: relations && JSON.parse(relations);
return (
this.onRowEdit(params)}
onRowValidate={(params) => this.onRowValidate(params)}
columns={[
{
colKey: 'avatar',
title: '头像',
cell: ({ row, rowIndex, col, colIndex }) => {
const { avatar } = row;
return avatar ? (
) : (
未设置
);
},
},
{
colKey: 'name',
title: '姓名',
edit: {
component: Input,
props: {
clearable: true,
autofocus: true,
autoWidth: true,
},
rules: [{ required: true, message: '不能为空' }],
showEditIcon: false,
},
},
{
colKey: 'nickname',
title: '昵称',
edit: {
component: Input,
props: {
clearable: true,
autofocus: true,
autoWidth: true,
},
rules: [{ required: true, message: '不能为空' }],
showEditIcon: false,
},
},
{
colKey: 'mobile',
title: '手机号',
},
{
colKey: 'relations',
title: '权限',
cell: ({ row, rowIndex, col, colIndex }) => {
return (
{row.relations?.map((ele, index) => (
{t(entity + ':r.' + ele)}
))}
);
},
edit: {
component: Select,
// props, 透传全部属性到 Select 组件
// props 为函数时,参数有:col, row, rowIndex, colIndex, editedRow。一般用于实现编辑组件之间的联动
props: ({ editedRow }) => {
return {
multiple: true,
minCollapsedNum: 1,
autoWidth: true,
options:
relationArr &&
relationArr.map((ele, index) => ({
value: ele,
label: t(entity + ':r.' + ele),
})),
};
},
showEditIcon: false,
rules: [
{ required: true, message: '请至少选择一个权限' },
],
},
},
{
title: '操作',
colKey: 'operate',
cell: ({ row }) => {
const editable = editableRowKeys.includes(row.id);
return (
{!editable && (
)}
{editable && (
)}
{editable && (
)}
);
},
},
]}
data={users}
/>
);
}