import React, { useCallback, useEffect, useState } from "react"; import { Modal, Skeleton, Select, Form, message } from "antd"; import * as API from '../../api'; interface Props{ visible:boolean; row?:API.Item; contractTypesList:any[], roleList:any[], onRefresh: () => void; onCancel?: () => void; } function AddModel({visible, row, contractTypesList, roleList, onCancel, onRefresh}:Props) { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const {id, roles, typeName } = row || {}; useEffect(() => { if (id) { form.setFieldsValue({ contractType: contractTypesList.filter((item:API.TypesItem) => item.name === typeName).map((i:any) => ({label: i.name, value: i.id}))[0], roleCode: roles?.length && roles.map((i:any) => ({label: i.roleName, value: i.roleCode})), }); } }, [row]); /** * @description: 表单提交 * @param {any} feildValue * @return {*} */ const handleSave = (feildValue: any) => { setLoading(true); const { roleCode, contractType } = feildValue; const _roleCode = roleCode.length && roleCode.map((item:any) => ({roleCode: item.value, roleName: item.label })); const params = {roles: _roleCode, typeId: contractType.value, typeName: contractType.label }; API.addContractAuth({ ...params, contractAuthId: id }) .then(res => { message.success("操作成功"); _onCancel(); setLoading(false); onRefresh(); }) .catch(err => { message.error(err?.message); setLoading(false); }); }; /** * @description: 关闭弹框 * @param {*} * @return {*} */ const _onCancel = () => { onCancel && onCancel(); form.resetFields(); }; return (
); } export default AddModel;