| import React, { useState, useRef, useEffect } from 'react'; | 
| import { | 
|     ProForm, | 
|     ProFormDigit, | 
|     ProFormSelect, | 
| } from '@ant-design/pro-components'; | 
| import { FormattedMessage, useIntl } from '@umijs/max'; | 
| import { Form, Modal } from 'antd'; | 
| import Http from '@/utils/http'; | 
|   | 
| const AssignRole = (props) => { | 
|     const intl = useIntl(); | 
|     const [form] = Form.useForm(); | 
|     const { } = props; | 
|   | 
|     useEffect(() => { | 
|         form.resetFields(); | 
|         form.setFieldsValue({ | 
|             ...props.values, | 
|             roleIds: props.values.userRoleIds | 
|         }) | 
|     }, [form, props]) | 
|   | 
|     const handleCancel = () => { | 
|         props.onCancel(); | 
|     }; | 
|   | 
|     const handleOk = () => { | 
|         form.submit(); | 
|     } | 
|   | 
|     const handleFinish = async (values) => { | 
|         props.onSubmit({ ...values }); | 
|     } | 
|   | 
|     return ( | 
|         <> | 
|             <Modal | 
|                 title={intl.formatMessage({ id: "page.assign.role", defaultMessage: "分配角色" })} | 
|                 width={600} | 
|                 forceRender | 
|                 destroyOnClose | 
|                 open={props.open} | 
|                 onCancel={handleCancel} | 
|                 onOk={handleOk} | 
|             > | 
|                 <ProForm | 
|                     form={form} | 
|                     submitter={false} | 
|                     onFinish={handleFinish} | 
|                     layout="horizontal" | 
|                     grid={true} | 
|                 > | 
|                     <ProFormDigit | 
|                         name="id" | 
|                         disabled | 
|                         hidden={true} | 
|                     /> | 
|                     <ProFormSelect | 
|                         name="roleIds" | 
|                         mode="multiple" | 
|                         label={intl.formatMessage({ id: "system.role", defaultMessage: "角色" })} | 
|                         colProps={{ md: 24, xl: 24 }} | 
|                         rules={[{ required: true, type: 'array', message: '角色不能为空!' }]} | 
|                         request={async ({ keyWords }) => { | 
|                             const resp = await Http.doPostForm('api/role/query', { condition: keyWords }); | 
|                             return resp.data; | 
|                         }} | 
|                     /> | 
|                 </ProForm> | 
|             </Modal> | 
|         </> | 
|     ) | 
| } | 
|   | 
| export default AssignRole; |