"use client"; import React, { useState, useRef, useMemo, Fragment } from "react"; import { Switch, Space, Checkbox, Button, Toast } 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"; 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[superSingle.key].enable = value; 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); }} >

    赠送微信

  • ); }; export default function spacePaymentSetting() { const router = useRouter(); const searchParams = useSearchParams(); const [formData, setFormData] = useState({ spacePrice: 0, ironFanPrice: 0, openSuper: true, 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 }, ], }); const [spacePriceAble, setSpacePriceAble] = useState(false); const [tiefenPriceAble, setTiefenPriceAble] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [superSingleCheckeds, setSuperSingleCheckeds] = useState([]); const listItemWithCheckboxMemo = useMemo(() => { return superSingles.map((item) => ( )); }, [formData, superSingleCheckeds]); const handleSubmit = async () => { const { spacePrice, ironFanPrice, openSuper, superSingle } = formData; if (!spacePrice || !ironFanPrice) { Toast.show({ icon: "fail", content: "请完善内容后提交", position: "top", }); return; } const _spacePrice = parseInt(spacePrice * 100, 10); if (isNaN(_spacePrice) || _spacePrice < 0) { 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; } if (openSuper) { Object.values(superSingle).forEach((it) => { if (it.enable) { const superFanPrice = it.price; if (!superFanPrice) { Toast.show({ icon: "fail", content: "请填写超粉价格", position: "top", }); } else { const _superFanPrice = parseInt(superFanPrice * 100, 10); if ( openSuper && (isNaN(_superFanPrice) || _superFanPrice < 100 || _superFanPrice > 388800) ) { Toast.show({ icon: "fail", content: "请输入有效的超粉价格", position: "top", }); return; } if (openSuper && _superFanPrice <= _ironFanPrice) { Toast.show({ icon: "fail", content: "请输入大于铁粉价格的超粉价格", position: "top", }); return; } } } }); } // if ( // openSuper && // superFanExpiration !== 0 && // superFanExpiration !== 1 && // superFanExpiration !== 2 && // superFanExpiration !== 3 && // superFanExpiration !== 4 // ) { // Toast.show({ // icon: "error", // content: "请选择超粉有效期", // position: "top", // }); // return; // } if (isSubmitting) 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 = { id: parseInt(searchParams.get("zid"), 10), admission_price: parseInt(spacePrice * 100, 10), ironfanship_price: parseInt(ironFanPrice * 100, 10), is_superfanship_enabled: openSuper ? 1 : 0, // superfanship_price: parseInt(superFanPrice * 100, 10), // superfanship_valid_period: superFanExpiration, // is_superfanship_give_wechat: unlockWechat ? 1 : 0, superfan_price_list, }; console.log("body", body); const _data = await requireAPI( "POST", "/api/zone/update", { body, }, true ); if (_data.ret === -1) { Toast.show({ icon: "error", 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(); }} />

    空间付费设置

    {/* 内容 */}

    解锁空间价格 *

    (成为空间成员,可查看免费帖)

    ¥ {!spacePriceAble ? ( {formData.spacePrice} ) : ( setFormData((old) => ({ ...old, spacePrice: value })) } /> )}

    setSpacePriceAble(true)} > 点击编辑

    铁粉价格 *

    (累计空间内消费达标可成为,铁粉可查看相关帖)

    ¥ {!tiefenPriceAble ? ( {formData.ironFanPrice} ) : ( setFormData((old) => ({ ...old, ironFanPrice: value })) } /> )}

    setTiefenPriceAble(true)} > 点击编辑

    超粉功能 *

    是否启用

    { setFormData((old) => ({ ...old, openSuper: value, })); }} style={{ "--checked-color": "#FF669E", "--height": "24px", "--width": "36px", }} />

    超粉单次开通类型 *

    { setSuperSingleCheckeds(values); }} >
      {listItemWithCheckboxMemo}
    ); }