import { Form, message } from "antd"; import { useIntl } from "react-intl"; import { ProForm, ProFormSelect, ProFormText, type RequestOptionsType, } from "@ant-design/pro-components"; import MDEditor from "@uiw/react-md-editor"; import { get, put } from "../../request"; import type { IAnthologyDataRequest, IAnthologyDataResponse, IAnthologyResponse, } from "../../api/Article"; import LangSelect from "../general/LangSelect"; import PublicitySelect from "../studio/PublicitySelect"; import { useState } from "react"; import type { DefaultOptionType } from "antd/lib/select"; import type { IApiResponseChannelList } from "../../api/Channel"; import { useAppSelector } from "../../hooks"; import { currentUser } from "../../reducers/current-user"; interface IFormData { title: string; subtitle: string; summary?: string; lang: string; status: number; defaultChannel?: string; } interface IWidget { anthologyId?: string; studioName?: string; onLoad?: Function; } const AnthologyInfoEditWidget = ({ studioName, anthologyId, onLoad, }: IWidget) => { const intl = useIntl(); const [channelOption, setChannelOption] = useState([]); const [currChannel, setCurrChannel] = useState(); const [data, setData] = useState(); const user = useAppSelector(currentUser); return anthologyId ? ( onFinish={async (values: IFormData) => { const url = `/v2/anthology/${anthologyId}`; console.log("url", url); console.log("values", values); const res = await put(url, { title: values.title, subtitle: values.subtitle, summary: values.summary, status: values.status, lang: values.lang, default_channel: values.defaultChannel, }); console.log(res); if (res.ok) { if (typeof onLoad !== "undefined") { onLoad(res.data); } message.success( intl.formatMessage({ id: "flashes.success", }) ); } else { message.error(res.message); } }} request={async () => { const url = `/v2/anthology/${anthologyId}`; console.log("url", url); const res = await get(url); console.log("文集get", res); if (res.ok) { setData(res.data); if (typeof onLoad !== "undefined") { onLoad(res.data); } if (res.data.default_channel) { const channel = { value: res.data.default_channel.id, label: res.data.default_channel.name, }; setCurrChannel(channel); setChannelOption([channel]); } return { title: res.data.title, subtitle: res.data.subtitle, summary: res.data.summary ? res.data.summary : undefined, lang: res.data.lang, status: res.data.status, defaultChannel: res.data.default_channel?.id, }; } else { return { title: "", subtitle: "", summary: "", lang: "", status: 0, defaultChannel: "", }; } }} > { console.log("keyWord", keyWords); if (typeof keyWords === "undefined") { return currChannel ? [currChannel] : []; } const url = `/v2/channel?view=studio&name=${studioName}`; console.log("url", url); const json = await get(url); const textbookList = json.data.rows.map((item) => { return { value: item.uid, label: `${item.studio.nickName}/${item.name}`, }; }); console.log("json", textbookList); return textbookList; }} /> ) : ( <> ); }; export default AnthologyInfoEditWidget;