import React, { useCallback, useEffect, useRef, useState } from "react"; import styles from "./index.module.scss"; import { Z0tableType } from "@/types"; import { Button, DatePicker, Form, FormInstance, Input, Select } from "antd"; import ZupOne from "@/components/ZupOne"; import dayjs from "dayjs"; import { A4_APIgetInfo, A4_APIsave } from "@/store/action/A4goods"; import { MessageFu } from "@/utils/message"; import MyPopconfirm from "@/components/MyPopconfirm"; import TextArea from "antd/es/input/TextArea"; import ZupTypes from "@/components/ZupTypes"; type Props = { editId: number; goodsList: Z0tableType[]; addTableFu: () => void; editTableFu: () => void; closeFu: () => void; }; function A4edit({ editId, goodsList, addTableFu, editTableFu, closeFu, }: Props) { const [dirCode, setDirCode] = useState(""); // 表单的ref const FormBoxRef = useRef(null); // 封面图的ref const ZupThumbRef = useRef(null); // 文件 类型的ref const ZupFilesRef = useRef(null); const getInfoFu = useCallback(async (id: number) => { const res = await A4_APIgetInfo(id); if (res.code === 0) { const data = res.data; const entity = data.entity; const file = data.file; setDirCode(entity.dirCode); FormBoxRef.current?.setFieldsValue({ ...entity, myTime: dayjs(entity.publishDate), }); // 设置封面图 ZupThumbRef.current?.setFileComFileFu({ fileName: "", filePath: entity.thumb, }); // 设置文件类型 const sonInfo = { type: entity.fileTypes, fileList: file, }; ZupFilesRef.current?.setFileComFileFu(sonInfo); } }, []); useEffect(() => { if (editId > 0) { getInfoFu(editId); } else { setDirCode(Date.now() + ""); FormBoxRef.current?.setFieldsValue({ myTime: dayjs(Date.now()), }); } }, [editId, getInfoFu]); // 附件 是否 已经点击过确定 const [fileCheck, setFileCheck] = useState(false); // 没有通过校验 const onFinishFailed = useCallback(() => { setFileCheck(true); }, []); // 通过校验点击确定 const onFinish = useCallback( async (values: any) => { setFileCheck(true); const coverUrl1 = ZupThumbRef.current?.fileComFileResFu(); // 没有传 封面图 if (!coverUrl1.filePath) return; // 附件组件的 type 数组 和 附件id数组 const { sonType, sonFileIds, sonIsOk } = ZupFilesRef.current?.fileComFileResFu(); if (sonIsOk) return; // 发布日期 const publishDate = dayjs(values.myTime).format("YYYY-MM-DD"); const obj = { ...values, id: editId > 0 ? editId : null, publishDate, thumb: coverUrl1.filePath, fileTypes: sonType ? sonType.join(",") : null, fileIds: sonFileIds ? sonFileIds.join(",") : null, }; const res = await A4_APIsave(obj); if (res.code === 0) { MessageFu.success(editId > 0 ? "编辑成功!" : "新增成功!"); editId > 0 ? editTableFu() : addTableFu(); closeFu(); } }, [addTableFu, closeFu, editId, editTableFu] ); return (
e.target.value.replace(/\s+/g, "")} >