sxfad / react-admin

基于 Ant Design React 的管理系统架构
https://sxfad.github.io/react-admin
608 stars 169 forks source link

麻烦问下,表格 columns 里的操作列按钮,可以使用 Permission 组件 来控制按钮的显示嘛? #123

Closed goudanz closed 2 years ago

goudanz commented 2 years ago

目前控制其他按钮我是这么弄得。

<Permission code='select' useDisabled={hasPermission()}>
    <Button onClick={()=>submit()}>查看</Button>
</Permission>

但是现在想对表格行内操作列的按钮进行控制,这个支持嘛?

image image

zkboys commented 2 years ago

不支持,如果操作列需要权限控制,可以使用hasPermisson('SOME_CODE')函数,通过处理items实现:

const items = [
    {
        label: '查看',
        onClick: () => setRecord({...record, isDetail: true}) || setVisible(true),
        disabled: hasPermission('SOME_CODE'), // disabled范式
    },
    {
        label: '修改',
        onClick: () => setRecord(record) || setVisible(true),
    },
    // 没权限直接不显示
    hasPermission('SOME_CODE') && {
        label: '删除',
        color: 'red',
        confirm: {
            title: `您确定删除「${name}」吗?`,
            onConfirm: () => handleDelete(id),
        },
    },
].filter(Boolean);
goudanz commented 2 years ago

不支持,如果操作列需要权限控制,可以使用hasPermisson('SOME_CODE')函数,通过处理items实现:

const items = [
    {
        label: '查看',
        onClick: () => setRecord({...record, isDetail: true}) || setVisible(true),
        disabled: hasPermission('SOME_CODE'), // disabled范式
    },
    {
        label: '修改',
        onClick: () => setRecord(record) || setVisible(true),
    },
    // 没权限直接不显示
    hasPermission('SOME_CODE') && {
        label: '删除',
        color: 'red',
        confirm: {
            title: `您确定删除「${name}」吗?`,
            onConfirm: () => handleDelete(id),
        },
    },
].filter(Boolean);

好的,明白了。多谢您的解释。麻烦您了~