import { PlusOutlined } from "@ant-design/icons"; import { type ProFormInstance, ProFormSelect, StepsForm, } from "@ant-design/pro-components"; import { Alert, Button, Modal, Result, message } from "antd"; import { useRef, useState } from "react"; import { useIntl } from "react-intl"; import { get, post } from "../../request"; import type { ICourseMemberData, ICourseMemberResponse, } from "../../api/Course"; import type { IUserListResponse } from "../../api/Auth"; interface IFormData { userId: string; role: string; } interface IWidget { courseId?: string; onCreated?: Function; } const CourseInviteWidget = ({ courseId, onCreated }: IWidget) => { const intl = useIntl(); const [visible, setVisible] = useState(false); const [curr, setCurr] = useState(); const [userId, setUserId] = useState(); const formRef = useRef(undefined); return ( <> setVisible(false)} open={visible} footer={false} destroyOnClose > formRef={formRef} onFinish={async (values) => { console.log(values); setVisible(false); message.success("提交成功"); }} formProps={{ validateMessages: { required: "此项为必填项", }, }} > { setUserId(values.userId); const url = `/v2/course-member/${courseId}?user_uid=${values.userId}`; console.info("api request", url, values); const json = await get(url); if (json.ok) { setCurr(json.data); } else { setCurr(undefined); } return true; }} > { console.log("keyWord", keyWords); const json = await get( `/v2/user?view=key&key=${keyWords}` ); const userList = json.data.rows.map((item) => { return { value: item.id, label: `${item.userName}-${item.nickName}`, }; }); console.log("json", userList); return userList; }} placeholder={intl.formatMessage({ id: "forms.message.user.required", })} rules={[ { required: true, message: intl.formatMessage({ id: "forms.message.user.required", }), }, ]} /> { if (typeof courseId !== "undefined" && userId) { const url = "/v2/course-member"; const data: ICourseMemberData = { user_id: userId, role: values.role, course_id: courseId, status: "invited", }; console.info("api request", url, data); const json = await post< ICourseMemberData, ICourseMemberResponse >(url, data); console.info("add member api response", json); if (json.ok) { if (typeof onCreated !== "undefined") { onCreated(); } } else { console.error(json.message); return false; } } else { return false; } return true; }} > {curr ? ( ) : ( <> )} ); }; export default CourseInviteWidget;