pyt
2025-02-26 403da33c30fc628c1608b96d95efdc12e70c3b06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { PageContainer, ProTable } from '@ant-design/pro-components';
import { buildProTableDataSource, sendRequest, showDelConfirm } from '@/utils/antdUtils';
import { Button, Space } from 'antd';
import { useRef, useState } from 'react';
import { Access, history, useAccess } from 'umi';
import { getList, del, edit, add } from './service'
import AddAndEdit from './components/addAndEdit'
const Role = () => {
 
    const actionRef = useRef();
    const addViewRef = useRef();
    const [modalVisible, handleModalVisibles] = useState(false);
    const access = useAccess();
 
    const columns = [
        {
            title: '角色名称',
            dataIndex: 'name',
        },
        {
            title: '操作',
            hideInSearch: true,
            render: (text, record) => {
                return (
                    <Space>
                        {
                            record.roleId != 1 &&
                            <Access accessible={access['/system_setting/role_management/edit']}>
                                <Button
                                    type="link"
                                    onClick={() => {
                                        addViewRef.current.refreshData(record);
                                        handleModalVisibles(true)
                                    }}
                                >
                                    编辑
                                </Button>
                            </Access>
                        }
                        {
                            record.roleId != 1 &&
                            <Access accessible={access['/system_setting/role_management/del']}>
                                <Button
                                    type="link"
                                    onClick={() => {
 
                                        showDelConfirm(async () => {
                                            let status = await sendRequest(del, record.id)
                                            if (status) {
                                                actionRef.current.reload();
                                            }
                                        }, '确认删除所选信息吗?');
                                    }}
                                >
                                    删除
                                </Button>
                            </Access>
                        }
                        <Access accessible={access['/system_setting/role_management/detail'] || false}>
                            <Button
                                type="link"
                                onClick={() => {
                                    addViewRef.current.refreshData(record, true);
                                    handleModalVisibles(true)
                                }}
                            >
                                查看详情
                            </Button>
                        </Access>
                    </Space >
                );
            },
        },
    ]
 
    return <PageContainer title='角色管理'>
        <ProTable
            rowKey='id'
            actionRef={actionRef}
            columns={columns}
            pagination={{
                showSizeChanger: true,
                showQuickJumper: true,
                defaultPageSize: 10,
            }}
            request={(params) => buildProTableDataSource(getList, params)}
            toolBarRender={(action, selectRows) => [
                <Access accessible={access['/system_setting/role_management/add']}>
                    <Space>
                        <Button
                            type="primary"
                            onClick={() => {
                                addViewRef.current.refreshData({});
                                handleModalVisibles(true)
                            }}
                        >
                            添加
                        </Button>
                    </Space>
                </Access>
            ]}
        />
        <AddAndEdit
            ref={addViewRef}
            visible={modalVisible}
            onSave={async (fileds) => {
                let success = await sendRequest(add, fileds);
                if (success) {
                    handleModalVisibles(false);
                    actionRef.current.reload();
                }
                addViewRef.current.clean();
            }}
            onUpdate={async (fileds) => {
                let success = await sendRequest(edit, fileds);
                if (success) {
                    handleModalVisibles(false);
                    actionRef.current.reload();
                }
                addViewRef.current.clean();
            }}
            onCancel={() => handleModalVisibles(false)}
        />
    </PageContainer>
};
 
export default Role;