修复问题1029

This commit is contained in:
al 2024-10-29 18:55:18 +08:00
parent 1c47975ea2
commit adb617d041
5 changed files with 108 additions and 73 deletions

View File

@ -14,9 +14,10 @@ export default function CreateImagePost() {
const [priceEdit, setPriceEdit] = useState(false); const [priceEdit, setPriceEdit] = useState(false);
const [postCount, setPostCount] = useState(null); const [postCount, setPostCount] = useState(null);
const [isBlockModalVisible, setIsBlockModalVisible] = useState(false); const [isBlockModalVisible, setIsBlockModalVisible] = useState(false);
const [oldPhotos, setOldPhotos] = useState([]);
// //
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
price: 0, price: "",
content: "", content: "",
paidText: "", paidText: "",
imageAssets: [], imageAssets: [],
@ -25,7 +26,7 @@ export default function CreateImagePost() {
isFreeForIronfan: false, isFreeForIronfan: false,
}); });
const [priceEditData, setPriceEditData] = useState({ const [priceEditData, setPriceEditData] = useState({
price: 0, price: "",
imageVisibleRange: 1, imageVisibleRange: 1,
isCreatingPaidText: false, isCreatingPaidText: false,
isFreeForIronfan: false, isFreeForIronfan: false,
@ -48,6 +49,11 @@ export default function CreateImagePost() {
}); });
return; return;
} }
const ttt = _data.data.streamer.album.images.map((item) => ({
url: item.urls[0],
id: item.id,
}));
setOldPhotos(ttt);
setPostCount(_data.data); setPostCount(_data.data);
if (_data.data.rejected_count >= 5) setIsBlockModalVisible(true); if (_data.data.rejected_count >= 5) setIsBlockModalVisible(true);
} catch (error) { } catch (error) {
@ -214,37 +220,46 @@ export default function CreateImagePost() {
</div> </div>
<div className="mt-2"> <div className="mt-2">
<p className="text-base font-medium text-white">动态内容</p> <p className="text-base font-medium text-white">动态内容</p>
<TextArea <div className="h-32">
placeholder="请遵守平台准则,严禁发布违规内容" <TextArea
value={formData.content} placeholder="请遵守平台准则,严禁发布违规内容"
onChange={(value) => value={formData.content}
setFormData((old) => ({ ...old, content: value })) autoSize={{ minRows: 6, maxRows: 15 }}
} onChange={(value) =>
style={{ "--font-size": "14px" }} setFormData((old) => ({ ...old, content: value }))
className="h-32 bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2" }
/> style={{ "--font-size": "14px" }}
className="h-full bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2"
/>
</div>
{formData.isCreatingPaidText && formData.price > 0 && ( {formData.isCreatingPaidText && formData.price > 0 && (
<> <div className="mt-2">
<span className="text-base font-medium text-white">付费文案</span> <span className="text-base font-medium text-white">付费文案</span>
<TextArea <div className="h-32">
placeholder="仅在用户解锁后展示,请勿发布违规内容" <TextArea
onChange={(value) => placeholder="仅在用户解锁后展示,请勿发布违规内容"
setFormData((old) => ({ ...old, paidText: value })) onChange={(value) =>
} setFormData((old) => ({ ...old, paidText: value }))
value={formData.paidText} }
style={{ "--font-size": "14px" }} autoSize={{ minRows: 6, maxRows: 15 }}
className="h-32 bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2" value={formData.paidText}
/> style={{ "--font-size": "14px" }}
</> className="h-full bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2"
/>
</div>
</div>
)} )}
</div> </div>
<UploadImgs <div className="mt-4">
type={1} <UploadImgs
assets={formData.imageAssets} type={1}
getImgs={(imgs) => { existImages={oldPhotos}
setFormData((old) => ({ ...old, imageAssets: imgs })); assets={formData.imageAssets}
}} getImgs={(imgs) => {
/> setFormData((old) => ({ ...old, imageAssets: imgs }));
}}
/>
</div>
<div <div
color="#FF669E" color="#FF669E"
radius="999" radius="999"

View File

@ -17,7 +17,7 @@ export default function CreateVideoPost() {
const [isBlockModalVisible, setIsBlockModalVisible] = useState(false); const [isBlockModalVisible, setIsBlockModalVisible] = useState(false);
// //
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
price: 0, price: "",
content: "", content: "",
paidText: "", paidText: "",
imageAssets: [], imageAssets: [],
@ -26,7 +26,7 @@ export default function CreateVideoPost() {
isFreeForIronfan: false, isFreeForIronfan: false,
}); });
const [priceEditData, setPriceEditData] = useState({ const [priceEditData, setPriceEditData] = useState({
price: 0, price: "",
blurCover: true, blurCover: true,
isCreatingPaidText: false, isCreatingPaidText: false,
isFreeForIronfan: false, isFreeForIronfan: false,
@ -152,7 +152,7 @@ export default function CreateVideoPost() {
}} }}
/> />
</div> </div>
<p className="text-base text-center leading-9">图文动态空间内</p> <p className="text-base text-center leading-9">视频动态空间内</p>
{isSubmitting ? ( {isSubmitting ? (
<DotLoading /> <DotLoading />
) : ( ) : (
@ -202,6 +202,7 @@ export default function CreateVideoPost() {
onChange={(value) => onChange={(value) =>
setFormData((old) => ({ ...old, content: value })) setFormData((old) => ({ ...old, content: value }))
} }
autoSize={{ minRows: 6, maxRows: 15 }}
style={{ "--font-size": "14px" }} style={{ "--font-size": "14px" }}
className="h-32 bg-[#FFFFFF1A] text-white rounded-2xl mt-2 mb-4 p-2" className="h-32 bg-[#FFFFFF1A] text-white rounded-2xl mt-2 mb-4 p-2"
/> />
@ -213,6 +214,7 @@ export default function CreateVideoPost() {
onChange={(value) => onChange={(value) =>
setFormData((old) => ({ ...old, paidText: value })) setFormData((old) => ({ ...old, paidText: value }))
} }
autoSize={{ minRows: 6, maxRows: 15 }}
value={formData.paidText} value={formData.paidText}
style={{ "--font-size": "14px" }} style={{ "--font-size": "14px" }}
className="h-32 bg-[#FFFFFF1A] text-white rounded-2xl mt-2 mb-4 p-2" className="h-32 bg-[#FFFFFF1A] text-white rounded-2xl mt-2 mb-4 p-2"

View File

@ -15,7 +15,7 @@ export default function EditSpacePost() {
const [priceEdit, setPriceEdit] = useState(false); const [priceEdit, setPriceEdit] = useState(false);
// //
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
price: 0, price: "",
content: "", content: "",
paidText: "", paidText: "",
imageAssets: [], imageAssets: [],
@ -24,7 +24,7 @@ export default function EditSpacePost() {
isFreeForIronfan: false, isFreeForIronfan: false,
}); });
const [priceEditData, setPriceEditData] = useState({ const [priceEditData, setPriceEditData] = useState({
price: 0, price: "",
imageVisibleRange: 1, imageVisibleRange: 1,
isCreatingPaidText: false, isCreatingPaidText: false,
isFreeForIronfan: false, isFreeForIronfan: false,
@ -43,7 +43,6 @@ export default function EditSpacePost() {
blurCover: data?.is_blurring_cover == 1, blurCover: data?.is_blurring_cover == 1,
}; };
// const imgs = getExistImgs(data); // const imgs = getExistImgs(data);
setFormData({ setFormData({
content: data?.paid_text content: data?.paid_text
? data?.text.slice(0, data?.text.length - data?.paid_text.length) ? data?.text.slice(0, data?.text.length - data?.paid_text.length)
@ -252,32 +251,41 @@ export default function EditSpacePost() {
)} )}
<div className="mt-2"> <div className="mt-2">
<p className="text-base font-medium text-white">动态内容</p> <p className="text-base font-medium text-white">动态内容</p>
<TextArea <div className="h-32">
placeholder="请遵守平台准则,严禁发布违规内容" <TextArea
value={formData.content} placeholder="请遵守平台准则,严禁发布违规内容"
onChange={(value) => value={formData.content}
setFormData((old) => ({ ...old, content: value })) onChange={(value) =>
} setFormData((old) => ({ ...old, content: value }))
style={{ "--font-size": "14px" }} }
className="h-32 bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2" autoSize={{ minRows: 6, maxRows: 15 }}
/> style={{ "--font-size": "14px" }}
className="h-full bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2"
/>
</div>
{!!formData.isCreatingPaidText && formData.price > 0 && ( {!!formData.isCreatingPaidText && formData.price > 0 && (
<> <div className="mt-2">
<span className="text-base font-medium text-white">付费文案</span> <span className="text-base font-medium text-white">付费文案</span>
<TextArea <div className="h-32">
placeholder="仅在用户解锁后展示,请勿发布违规内容" <TextArea
onChange={(value) => placeholder="仅在用户解锁后展示,请勿发布违规内容"
setFormData((old) => ({ ...old, paidText: value })) onChange={(value) =>
} setFormData((old) => ({
value={formData.paidText} ...old,
style={{ "--font-size": "14px" }} paidText: value,
className="h-32 bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2" }))
/> }
</> autoSize={{ minRows: 6, maxRows: 15 }}
value={formData.paidText && formData.paidText.slice(2)}
style={{ "--font-size": "14px" }}
className="bg-[#FFFFFF1A] rounded-2xl mt-2 mb-4 p-2 h-full"
/>
</div>
</div>
)} )}
</div> </div>
{data?.m_type && ( {data?.m_type && (
<div> <div className="mt-2">
<UploadImgs <UploadImgs
type={data?.m_type} type={data?.m_type}
existImages={getExistImgs} existImages={getExistImgs}

View File

@ -208,6 +208,9 @@ export default function EditStreamerMedia() {
URL.revokeObjectURL(url); URL.revokeObjectURL(url);
}); });
}; };
useEffect(() => {
setFormData((old) => ({ ...old, imageAssets: oldPhotos }));
}, [oldPhotos]);
return ( return (
<div> <div>
{/* 头部标题 */} {/* 头部标题 */}

View File

@ -175,26 +175,33 @@ export default function PostItem({
{(data?.status === 0 || data?.status === 1) && ( {(data?.status === 0 || data?.status === 1) && (
<div className="flex flex-col items-start mt-2"> <div className="flex flex-col items-start mt-2">
<div className="py-1 px-2 rounded bg-[#3B69B8]"> <div className="py-1 px-2 rounded bg-[#3B69B8]">
<span className="text-white text-sm">审核中</span> <span className="text-sm">审核中</span>
</div> </div>
</div> </div>
)} )}
{data?.status === 3 && type == "space" && ( {data?.status === 3 &&
<p (type == "space" ? (
className="py-1 px-2 inline-block bg-[#F53030] rounded" <p
onClick={() => { className="py-1 px-2 inline-block bg-[#F53030] rounded"
router.push( onClick={() => {
`/space/editSpacePost?data=${encodeURIComponent( router.push(
JSON.stringify(data) `/space/editSpacePost?data=${encodeURIComponent(
)}` JSON.stringify(data)
); )}`
}} );
> }}
<span className="text-white text-sm"> >
审核未通过<span className="underline">重新编辑</span> <span className="text-sm">
</span> 审核未通过<span className="underline">重新编辑</span>
</p> </span>
)} </p>
) : (
<p className="py-1 px-2 inline-block bg-[#F53030] rounded">
<span className="text-sm">
审核未通过请删除后重新提交{type}
</span>
</p>
))}
<div> <div>
{!data?.is_zone_moment_unlocked ? ( {!data?.is_zone_moment_unlocked ? (
<span <span