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;
|