import React, { useCallback, useEffect, useRef, useState } from "react"; import styles from "./index.module.scss"; import { A1EditInfoType } from "@/pages/A1event/data"; import { Button, DatePicker, Form, FormInstance, Input, InputNumber, Select, } from "antd"; import { A3_APIgetInfo, A3_APIsave } from "@/store/action/A3holding"; import dayjs from "dayjs"; import { MessageFu } from "@/utils/message"; import classNames from "classnames"; import ZupAudio from "@/components/ZupAudio"; import ZRichTexts from "@/components/ZRichTexts"; import ZupTypes from "@/components/ZupTypes"; import MyPopconfirm from "@/components/MyPopconfirm"; import TextArea from "antd/es/input/TextArea"; import { A3Selct_1 } from "../data"; type Props = { editInfo: A1EditInfoType; selectAgeArr: { value: number | string; label: string }[]; closeFu: () => void; editTableFu: () => void; addTableFu: () => void; }; function A3add({ editInfo, selectAgeArr, closeFu, editTableFu, addTableFu, }: Props) { const [dirCode, setDirCode] = useState(""); // 表单的ref const FormBoxRef = useRef(null); // 富文本的ref const ZRichTextRef = useRef(null); // 标题的音频 const [nameAudio, setNameAudio] = useState({ fileName: "", filePath: "", }); // 多个图片的ref const ZupFilesRef2 = useRef(null); // 编辑/查看 进入页面 获取信息 const getInfoFu = useCallback(async (id: number) => { const res = await A3_APIgetInfo(id); if (res.code === 0) { const data = res.data; setDirCode(data.dirCode); // 展示图片 ZupFilesRef2.current?.setFileComFileFu({ type: "img", fileList: data.files || [], }); // 设置标题的 音频 if (data.fileName && data.filePath) { setNameAudio({ fileName: data.fileName, filePath: data.filePath, }); } // 设置富文本 ZRichTextRef.current?.ritxtShowFu(JSON.parse(data.rtf)); const obj = { ...data, myTime: dayjs(data.datePublish), }; FormBoxRef.current?.setFieldsValue(obj); } }, []); // 附件 是否 已经点击过确定 const [fileCheck, setFileCheck] = useState(false); // 没有通过校验 const onFinishFailed = useCallback(() => { setFileCheck(true); }, []); // 通过校验点击确定 const onFinish = useCallback( async (values: any) => { setFileCheck(true); // 图片的校验 const { sonFileIds: fileIds, coverUrl } = ZupFilesRef2.current?.fileComFileResFu(); if (fileIds.length <= 0) { return MessageFu.warning("请最少上传一张图片!"); } // 富文本校验不通过 const rtf = ZRichTextRef.current?.fatherBtnOkFu() || { flag: true }; if (rtf.flag) return MessageFu.warning("请输入完整正文!"); // 发布日期 const datePublish = dayjs(values.myTime).format("YYYY-MM-DD"); const obj = { ...values, id: editInfo.id > 0 ? editInfo.id : null, datePublish, thumb: coverUrl, rtf: JSON.stringify(rtf.val || ""), fileName: nameAudio.fileName, filePath: nameAudio.filePath, fileIds: fileIds.join(","), dirCode, }; const res = await A3_APIsave(obj); if (res.code === 0) { MessageFu.success(`${editInfo.txt}成功!`); editInfo.id > 0 ? editTableFu() : addTableFu(); closeFu(); } }, [addTableFu, closeFu, dirCode, editInfo, editTableFu, nameAudio] ); useEffect(() => { if (editInfo.id > 0) { getInfoFu(editInfo.id); } else { setDirCode(Date.now() + ""); FormBoxRef.current?.setFieldsValue({ myTime: dayjs(Date.now()), sort: 999, display: 1, }); } }, [editInfo.id, getInfoFu]); return (
e.target.value.replace(/\s+/g, "")} >