import React, { useCallback, useEffect, useRef, useState } from "react"; import styles from "./index.module.scss"; import { Button, DatePicker, Form, FormInstance, Input, Modal, Radio, } from "antd"; import MyPopconfirm from "@/components/MyPopconfirm"; import ZupOne from "@/components/ZupOne"; import { MessageFu } from "@/utils/message"; import { A7_APIgetInfoBook, A7_APIsaveBook } from "@/store/action/A7school"; import dayjs from "dayjs"; import TextArea from "antd/es/input/TextArea"; type Props = { fId: number; closeFu: () => void; addTableFu: () => void; upTableFu: () => void; }; function A7tab2M({ fId, closeFu, addTableFu, upTableFu }: Props) { // 设置表单初始数据(区分编辑和新增) const FormBoxRef = useRef(null); const getInfoFu = useCallback(async (id: number) => { const res = await A7_APIgetInfoBook(id); if (res.code === 0) { const data = res.data; if (data.type === "link") setIsLink(true); FormBoxRef.current?.setFieldsValue({ ...data, myTime: dayjs(data.publishDate), }); // 设置封面图 ZupOneRef1.current?.setFileComFileFu({ fileName: "", filePath: data.thumb, }); // 设置附件 ZupOneRef2.current?.setFileComFileFu({ fileName: data.fileName, filePath: data.filePath, }); } }, []); useEffect(() => { if (fId > 0) getInfoFu(fId); else { FormBoxRef.current?.setFieldsValue({ myTime: dayjs(Date.now()), }); } }, [fId, getInfoFu]); // 附件的ref const ZupOneRef1 = useRef(null); const ZupOneRef2 = useRef(null); // 附件 是否 已经点击过确定 const [fileCheck, setFileCheck] = useState(false); // 附件和链接的选择 const [isLink, setIsLink] = useState(false); // 没有通过校验 const onFinishFailed = useCallback(() => { setFileCheck(true); }, []); // 通过校验点击确定 const onFinish = useCallback( async (values: any) => { setFileCheck(true); // 没有传 封面图 或者 附件 const coverUrl1 = ZupOneRef1.current?.fileComFileResFu(); const coverUrl2 = ZupOneRef2.current?.fileComFileResFu(); if (!coverUrl1.filePath) return; if (!isLink) { if (!coverUrl2.filePath) return; } // 发布日期 const publishDate = dayjs(values.myTime).format("YYYY-MM-DD"); const obj = { ...values, id: fId > 0 ? fId : null, fileName: coverUrl2?.fileName || "", filePath: coverUrl2?.filePath || "", thumb: coverUrl1.filePath, publishDate, type: isLink ? "link" : "file", }; const res = await A7_APIsaveBook(obj); if (res.code === 0) { MessageFu.success(fId > 0 ? "编辑成功!" : "新增成功!"); fId > 0 ? addTableFu() : upTableFu(); closeFu(); } }, [addTableFu, closeFu, fId, isLink, upTableFu] ); return ( 0 ? "编辑" : "新增"}刊物`} footer={ [] // 设置footer为空,去掉 取消 确定默认按钮 } >
e.target.value.replace(/\s+/g, "")} > {/* 刊物封面 */}
* 刊物封面:
* 刊物内容:
setIsLink(false)} > 附件 setIsLink(true)} > 链接
{/* 刊物附件 | 链接 */} {isLink ? ( e.target.value.replace(/\s+/g, "")} >