"use client"; import React, { useState, useEffect } from "react"; import { DotLoading, Popup, Toast, TextArea, Switch } from "antd-mobile"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft } from "@fortawesome/free-solid-svg-icons"; import requireAPI from "@/utils/requireAPI"; import { useRouter, useParams } from "next/navigation"; import { multiUploadImage } from "@/utils/upload"; import UploadImgs from "@/components/UploadImgs"; export default function EditPost() { const params = useParams(); const [isSubmitting, setIsSubmitting] = useState(false); const [oldPhotos, setOldPhotos] = useState([]); const [data, setData] = useState(null); //价格 const [formData, setFormData] = useState({ content: "", imageAssets: [], videoAssets: [], }); const router = useRouter(); useEffect(() => { getData(); }, []); const getData = async () => { const ids = [parseInt(params.zid, 10)]; try { const body = { ids, }; const _data = await requireAPI( "POST", "/api/moment/list_by_ids_from_creater", { body, }, true ); if (_data.ret === -1) { Toast.show({ icon: "fail", content: _data.msg, position: "top", }); return; } setData(_data.data.list[0]); const { text, media_component } = _data.data.list[0]; setFormData({ content: text, imageAssets: media_component.images.map((it) => ({ url: it.urls[0], id: it.id, })), videoAssets: media_component.videos.map((it) => ({ url: it.cover_urls[0], id: it.id, })), }); } catch (error) { console.error(error); } finally { setIsSubmitting(false); } }; //发布内容 const handleSubmit = async () => { if (formData.content == "") { Toast.show({ icon: "fail", content: "动态内容不能为空", position: "top", }); return; } if ( formData.imageAssets.length === 0 && formData.videoAssets.length === 0 ) { Toast.show({ icon: "fail", content: "请上传图片或视频", position: "top", }); return; } //提交数据 if (isSubmitting) return; setIsSubmitting(true); const { content, imageAssets, videoAssets } = formData; const type = formData.imageAssets.length > 0 ? 1 : 2; const newMedia = [...(type == 1 ? imageAssets : videoAssets)].filter( (it) => it.id == undefined ); const media = await multiUploadImage(newMedia, type); // const media = await multiUploadImage(imageAssets); if (type == 1) { media.image_ids = [ ...imageAssets.filter((it) => it.id != undefined).map((it) => it.id), ...media.image_ids, ]; } else { media.video_ids = [ ...videoAssets.filter((it) => it.id != undefined).map((it) => it.id), ...media.video_ids, ]; } try { const body = { id: parseInt(params.zid, 10), text: content, media_component: media, status: 2, }; const data = await requireAPI( "POST", "/api/moment/update", { body, }, true, 100000 ); if (data.ret === -1) { Toast.show({ icon: "fail", content: data.msg, position: "top", }); return; } //提交成功后显示Toast并返回上一页 Toast.show({ icon: "success", content: "提交成功,等待审核!", position: "top", }); router.back(); } catch (error) { console.error(error); } finally { setIsSubmitting(false); } }; return (
广场动态
{isSubmitting ? (文案违规原因: {data.text_audit_opinion}
)} {data.image_audit_opinion && (图片/视频违规原因: {data.image_audit_opinion}
)} {data.manually_review_opinion && (运营追加: {data.manually_review_opinion}
)}动态内容
图片 (添加图片后不可添加视频)
视频 (添加视频后不可添加图片)