import { DictValueEnumObj } from '@/components/DictTag'; import KFModal from '@/components/KFModal'; import { ProForm, ProFormDigit, ProFormRadio, ProFormText, ProFormTextArea, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl } from '@umijs/max'; import { Form } from 'antd'; import Tree, { DataNode } from 'antd/es/tree'; import React, { useEffect, useState } from 'react'; export type RoleFormData = Record & Partial; export type RoleFormProps = { onCancel: (flag?: boolean, formVals?: RoleFormData) => void; onSubmit: (values: RoleFormData) => Promise; open: boolean; values: Partial; menuTree: DataNode[]; menuCheckedKeys: string[]; statusOptions: DictValueEnumObj; }; const RoleForm: React.FC = (props) => { const [form] = Form.useForm(); const { menuTree, menuCheckedKeys } = props; const [menuIds, setMenuIds] = useState([]); const { statusOptions } = props; useEffect(() => { form.resetFields(); form.setFieldsValue({ roleId: props.values.roleId, roleName: props.values.roleName, roleKey: props.values.roleKey, roleSort: props.values.roleSort, dataScope: props.values.dataScope, menuCheckStrictly: props.values.menuCheckStrictly, deptCheckStrictly: props.values.deptCheckStrictly, status: props.values.status, delFlag: props.values.delFlag, createBy: props.values.createBy, createTime: props.values.createTime, updateBy: props.values.updateBy, updateTime: props.values.updateTime, remark: props.values.remark, }); }, [form, props]); const intl = useIntl(); const handleOk = () => { form.submit(); }; const handleCancel = () => { props.onCancel(); }; const handleFinish = async (values: Record) => { props.onSubmit({ ...values, menuIds } as RoleFormData); }; return ( ); }; export default RoleForm;