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, InputNumber, Select } from 'antd' import dayjs from 'dayjs' import { MessageFu } from '@/utils/message' import classNames from 'classnames' import ZupOne from '@/components/ZupOne' import TextArea from 'antd/es/input/TextArea' import ZRichTexts from '@/components/ZRichTexts' import MyPopconfirm from '@/components/MyPopconfirm' import { A4Selct_1 } from '../data' import { A4_APIgetInfo, A4_APIsave } from '@/store/action/A4study' type Props = { editInfo: A1EditInfoType closeFu: () => void editTableFu: () => void addTableFu: () => void } function A4add({ editInfo, closeFu, editTableFu, addTableFu }: Props) { const [dirCode, setDirCode] = useState('') // 表单的ref const FormBoxRef = useRef(null) // 封面图的ref const ZupThumbRef = useRef(null) // 富文本的ref const ZRichTextRef = useRef(null) // 编辑/查看 进入页面 获取信息 const getInfoFu = useCallback(async (id: number) => { const res = await A4_APIgetInfo(id) if (res.code === 0) { const data = res.data setDirCode(data.dirCode) // 设置富文本 ZRichTextRef.current?.ritxtShowFu(JSON.parse(data.rtf)) const obj = { ...data, myTime: dayjs(data.datePublish), myTimeSta: dayjs(data.dateStart) } if (data.dateEnd) { obj.myTimeEnd = dayjs(data.dateEnd) } FormBoxRef.current?.setFieldsValue(obj) // 设置封面图 ZupThumbRef.current?.setFileComFileFu({ fileName: '', filePath: data.thumb }) } }, []) // 附件 是否 已经点击过确定 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 MessageFu.warning('请上传封面图!') // 发布日期 const datePublish = dayjs(values.myTime).format('YYYY-MM-DD') // 开始时间 const dateStart = dayjs(values.myTimeSta).format('YYYY-MM-DD HH:mm') // 结束时间(可能为空) let dateEnd = '' if (values.myTimeEnd) dateEnd = dayjs(values.myTimeEnd).format('YYYY-MM-DD HH:mm') // 富文本校验不通过 const rtf = ZRichTextRef.current?.fatherBtnOkFu() || { flag: true } if (rtf.flag) return MessageFu.warning('请输入完整正文!') const obj = { ...values, id: editInfo.id > 0 ? editInfo.id : null, datePublish, thumb: coverUrl1.filePath, rtf: JSON.stringify(rtf.val || ''), dirCode, dateStart, dateEnd } // if (obj) { // console.log(123, obj); // return; // } const res = await A4_APIsave(obj) if (res.code === 0) { MessageFu.success(`${editInfo.txt}成功!`) editInfo.id > 0 ? editTableFu() : addTableFu() closeFu() } }, [addTableFu, closeFu, dirCode, editInfo.id, editInfo.txt, editTableFu] ) 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 (