"use client"; import React, { useState, useRef, useMemo, Fragment } from "react"; import { Switch, Space, Checkbox, Button, Toast, TextArea, Radio, } from "antd-mobile"; import { useRouter, useSearchParams } from "next/navigation"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft } from "@fortawesome/free-solid-svg-icons"; import OwnInput from "@/components/OwnInput"; import requireAPI from "@/utils/requireAPI"; // getStreamerInfo const superSingles = [ { key: 0, text: "永久" }, { key: 1, text: "按年生效" }, { key: 2, text: "按半年生效" }, { key: 3, text: "按季度生效" }, { key: 4, text: "按月生效" }, ]; const ListItemWithCheckbox = ({ superSingle, formData, setFormData, superSingleCheckeds, }) => { const checkboxRef = useRef(null); return (
  • { checkboxRef.current?.toggle(); }} >
    e.stopPropagation()}> { const newFormData = { ...formData }; newFormData.superSingle.forEach((el) => { el.enable = 0; }); newFormData.superSingle[superSingle.key].enable = value; // newFormData.superSingle[superSingle.key].price = 0; // newFormData.superSingle[superSingle.key].wechatFree = false; setFormData(newFormData); }} > {superSingle.text} {/* { const newFormData = { ...formData }; newFormData.superSingle[superSingle.key].enable = value; newFormData.superSingle[superSingle.key].price = 0; newFormData.superSingle[superSingle.key].wechatFree = false; setFormData(newFormData); }} > {superSingle.text} */}
    ¥ { const newFormData = { ...formData }; newFormData.superSingle[superSingle.key].price = value; setFormData(newFormData); }} />
    | { const newFormData = { ...formData }; newFormData.superSingle[superSingle.key].wechatFree = value; setFormData(newFormData); }} >

    赠送微信

    {/* { const newFormData = { ...formData }; newFormData.superSingle[superSingle.key].wechatFree = value; setFormData(newFormData); }} >

    赠送微信

    */}
  • ); }; export default function CreateProfile() { const router = useRouter(); const searchParams = useSearchParams(); const [formData, setFormData] = useState({ spacePrice: "", ironFanPrice: "", openSuper: false, superSingle: [ { enable: false, price: 0, wechatFree: false }, { enable: false, price: 0, wechatFree: false }, { enable: false, price: 0, wechatFree: false }, { enable: false, price: 0, wechatFree: false }, { enable: false, price: 0, wechatFree: false }, ], spaceIntro: "", }); const [spacePriceAble, setSpacePriceAble] = useState(false); const [tiefenPriceAble, setTiefenPriceAble] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); // const [superSingleCheckeds, setSuperSingleCheckeds] = useState([]); const [superSingleChecked, setSuperSingleChecked] = useState(null); const listItemWithCheckboxMemo = useMemo(() => { return superSingles.map((item) => ( )); }, [formData, superSingleChecked]); const handleSubmit = async () => { const { spaceIntro, spacePrice, ironFanPrice, openSuper, superSingle } = formData; const openSuperEveryFalse = Object.values(superSingle).every( (it) => !it.enable ); if ( !spaceIntro || !spacePrice || !ironFanPrice || (openSuper && openSuperEveryFalse) ) { Toast.show({ icon: "fail", content: "请完善内容后提交", position: "top", }); return; } const _spacePrice = parseInt(spacePrice * 100, 10); if (isNaN(_spacePrice) || _spacePrice < 0 || _spacePrice > 388800) { Toast.show({ icon: "fail", content: "请输入有效的解锁空间价格", position: "top", }); return; } const _ironFanPrice = parseInt(ironFanPrice * 100, 10); if (isNaN(_ironFanPrice) || _ironFanPrice < 100 || _ironFanPrice > 388800) { Toast.show({ icon: "fail", content: "请输入有效的铁粉价格", position: "top", }); return; } let isPrice = false; if (openSuper) { // Object.values(superSingle).forEach((it) => { // if (it.enable) { // const superFanPrice = it.price; // if (!superFanPrice) { // Toast.show({ // icon: "fail", // content: "请填写超粉价格", // position: "top", // }); // isPrice = true; // return; // } else { // const _superFanPrice = parseInt(superFanPrice * 100, 10); // if ( // openSuper && // (isNaN(_superFanPrice) || // _superFanPrice < 100 || // _superFanPrice > 388800) // ) { // isPrice = true; // Toast.show({ // icon: "fail", // content: "请输入有效的超粉价格", // position: "top", // }); // return; // } // if (openSuper && _superFanPrice <= _ironFanPrice) { // isPrice = true; // Toast.show({ // icon: "fail", // content: "请输入大于铁粉价格的超粉价格", // position: "top", // }); // return; // } // } // } // }); if (superSingleChecked == null) { Toast.show({ icon: "fail", content: "请选择铁粉类型", position: "top", }); } else { const superChecked = superSingle.filter( (_, index) => index == superSingleChecked )[0]; if (superChecked) { const superFanPrice = superChecked.price; if (!superFanPrice) { Toast.show({ icon: "fail", content: "请填写超粉价格", position: "top", }); isPrice = true; return; } else { const _superFanPrice = parseInt(superFanPrice * 100, 10); if ( openSuper && (isNaN(_superFanPrice) || _superFanPrice < 100 || _superFanPrice > 388800) ) { isPrice = true; Toast.show({ icon: "fail", content: "请输入有效的超粉价格", position: "top", }); return; } if (openSuper && _superFanPrice <= _ironFanPrice) { isPrice = true; Toast.show({ icon: "fail", content: "请输入大于铁粉价格的超粉价格", position: "top", }); return; } } } } } if (isPrice) return; const superfan_price_list = superSingle.map((it, index) => ({ period: index, enable: it.enable ? 1 : 0, price: parseInt(it.price * 100, 10), is_superfanship_give_wechat: it.wechatFree ? 1 : 0, })); setIsSubmitting(true); try { const body = { profile: spaceIntro, admission_price: parseInt(spacePrice * 100, 10), ironfanship_price: parseInt(ironFanPrice * 100, 10), is_superfanship_enabled: openSuper ? 1 : 0, superfan_price_list, }; const _data = await requireAPI( "POST", "/api/zone/create", { body, }, true ); if (_data.ret === -1) { Toast.show({ icon: "fail", content: _data.msg, position: "top", }); return; } Toast.show({ icon: "success", content: "开通空间成功!空间简介将在审核完成后生效。", position: "top", }); router.back(); } catch (error) { console.error(error); } finally { setIsSubmitting(false); } }; return (
    {/* 头部标题 */}
    { router.back(); }} />

    开通空间

    {/* 内容 */}

    空间介绍 *