diff --git a/app/noticeDetail/components/MessageList/index.jsx b/app/noticeDetail/components/MessageList/index.jsx
index c83eb11..b318fc6 100644
--- a/app/noticeDetail/components/MessageList/index.jsx
+++ b/app/noticeDetail/components/MessageList/index.jsx
@@ -5,7 +5,7 @@ import React, {
useImperativeHandle,
} from "react";
import { formatDate } from "../../../../utils/tools";
-// import ScrollNotice from "../ScrollNotice";
+import ScrollNotice from "../ScrollNotice";
import { useRouter } from "next/navigation";
import requireAPI from "@/utils/requireAPI";
import { connect } from "react-redux";
@@ -217,7 +217,7 @@ const MessageList = ({ mid, changeNoticeCount, refInstance, noticeCount }) => {
return (
{/* 广告轮播 */}
- {/* {!!scollNotice.length &&
} */}
+ {!!scollNotice.length &&
}
{/* 官方消息 */}
diff --git a/app/space/setting/spacePaymentSetting/page.jsx b/app/space/setting/spacePaymentSetting/page.jsx
index 89d1bbd..a72f6d2 100644
--- a/app/space/setting/spacePaymentSetting/page.jsx
+++ b/app/space/setting/spacePaymentSetting/page.jsx
@@ -1,7 +1,7 @@
"use client";
import React, { useState, useEffect, useRef, useMemo, Fragment } from "react";
-import { Switch, Space, Checkbox, Button, Toast, Radio } from "antd-mobile";
+import { Switch, Space, Checkbox, Button, Toast, Form } from "antd-mobile";
import { useRouter, useSearchParams } from "next/navigation";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faAngleLeft } from "@fortawesome/free-solid-svg-icons";
@@ -10,11 +10,11 @@ import requireAPI from "@/utils/requireAPI";
import { get } from "@/utils/storeInfo";
import { getStreamerInfo } from "@/api/space";
const superSingles = [
- { key: 0, text: "永久" },
- { key: 1, text: "按月生效" },
- { key: 2, text: "按季度生效" },
- { key: 3, text: "按半年生效" },
- { key: 4, text: "按年生效" },
+ { key: 0, index: 0, text: "永久" },
+ { key: 4, index: 1, text: "按年生效" },
+ { key: 3, index: 2, text: "按半年生效" },
+ { key: 2, index: 3, text: "按季度生效" },
+ { key: 1, index: 4, text: "按月生效" },
];
// const superSingles = [
// { key: 0, text: "永久" },
@@ -25,62 +25,61 @@ const superSingles = [
// ];
const ListItemWithCheckbox = ({
superSingle,
- formData,
- setFormData,
+ superSinglesContr,
+ setSuperSinglesContr,
superSingleCheckeds,
+ index,
}) => {
return (
{}}>
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;
+ newFormData.superSingle[index].enable = value;
+ // newFormData.superSingle[index].price = 0;
+ // newFormData.superSingle[index].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);
+ const newSuperSinglesContr = [...superSinglesContr];
+ newSuperSinglesContr[index].enable = value;
+ // newSuperSinglesContr[index].price = 0;
+ // newSuperSinglesContr[index].wechatFree = false;
+ setSuperSinglesContr(newSuperSinglesContr);
}}
>
{superSingle.text}
- */}
+
¥
{
- const newFormData = { ...formData };
- newFormData.superSingle[superSingle.key].price = value;
- setFormData(newFormData);
+ const newSuperSinglesContr = [...superSinglesContr];
+ newSuperSinglesContr[index].price = value;
+ setSuperSinglesContr(newSuperSinglesContr);
}}
/>
@@ -88,126 +87,107 @@ const ListItemWithCheckbox = ({
|
{
- const newFormData = { ...formData };
- newFormData.superSingle[superSingle.key].wechatFree = value;
- setFormData(newFormData);
+ const newSuperSinglesContr = [...superSinglesContr];
+ newSuperSinglesContr[index].wechatFree = value;
+ setSuperSinglesContr(newSuperSinglesContr);
}}
>
赠送微信
- {/*
{
- const newFormData = { ...formData };
- newFormData.superSingle[superSingle.key].wechatFree = value;
- setFormData(newFormData);
- }}
- >
- 赠送微信
- */}
);
};
-export default function spacePaymentSetting() {
+
+export default function SpacePaymentSetting() {
+ const [form] = Form.useForm();
const router = useRouter();
const searchParams = useSearchParams();
- const [formData, setFormData] = useState({
- spacePrice: "",
- ironFanPrice: "",
- 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 [openSuper, setOpenSuper] = useState(false);
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 [superSingleCheckeds, setSuperSingleCheckeds] = useState([]);
+
+ const [superSinglesContr, setSuperSinglesContr] = useState([
+ { enable: false, price: 0, wechatFree: false, key: 0 },
+ { enable: false, price: 0, wechatFree: false, key: 4 },
+ { enable: false, price: 0, wechatFree: false, key: 3 },
+ { enable: false, price: 0, wechatFree: false, key: 2 },
+ { enable: false, price: 0, wechatFree: false, key: 1 },
+ ]);
+ const [spacePriceInfo, setSpacePriceInfo] = useState(null);
useEffect(() => {
const account = get("account");
getStreamerInfo(Number(account.mid)).then((res) => {
- // 旧版本
- const haveChecked = res.is_superfanship_enabled;
- if (haveChecked) {
- setSuperSingleChecked(res.superfanship_valid_period);
- }
- const newFormData = {
- spacePrice: `${res.admission_price / 100}`,
- ironFanPrice: res.ironfanship_price / 100,
- openSuper: !!res.is_superfanship_enabled,
- superSingle: formData.superSingle.map((it, index) => {
- if (index == res.superfanship_valid_period) {
- return {
- enable: !!res.is_superfanship_enabled,
- price: res.superfanship_price / 100,
- wechatFree: !!res.is_superfanship_give_wechat,
- };
- } else {
- return it;
- }
- }),
- spaceIntro: res.profile,
- };
- setFormData(newFormData);
// 新版本
- // const haveChecked = res.superfan_price_list
- // .map((it, index) => ({ ...it, index }))
- // .filter((it) => it.enable);
+ const priceList = res.superfan_price_list ?? [
+ { enable: false, price: 0, is_superfanship_give_wechat: false, key: 0 },
+ { enable: false, price: 0, is_superfanship_give_wechat: false, key: 4 },
+ { enable: false, price: 0, is_superfanship_give_wechat: false, key: 3 },
+ { enable: false, price: 0, is_superfanship_give_wechat: false, key: 2 },
+ { enable: false, price: 0, is_superfanship_give_wechat: false, key: 1 },
+ ];
+ const haveChecked = priceList
+ .map((it, index) => ({ ...it, index }))
+ .filter((it) => it.enable);
// if (haveChecked.length > 0) {
// setSuperSingleChecked(haveChecked[0].period);
// }
- // setSuperSingleCheckeds(
- // res.superfan_price_list
- // .map((it, index) => ({ ...it, index }))
- // .filter((it) => it.enable)
- // .map((it) => superSingles[it.index].key)
- // );
- // setFormData({
- // spacePrice: res.admission_price / 100,
- // ironFanPrice: res.ironfanship_price / 100,
- // openSuper: !!res.is_superfanship_enabled,
- // superSingle: res.superfan_price_list.map((it) => ({
- // enable: !!it.enable,
- // price: it.price / 100,
- // wechatFree: !!it.is_superfanship_give_wechat,
- // })),
- // spaceIntro: res.profile,
- // });
+ setSuperSingleCheckeds(
+ priceList
+ .map((it, index) => ({ ...it, index }))
+ .filter((it) => it.enable)
+ .map((it) => superSingles[it.index].index)
+ );
+ setOpenSuper(!!res.is_superfanship_enabled);
+ setSuperSinglesContr(
+ priceList.map((it, index) => ({
+ enable: !!it.enable,
+ price: it.price / 100,
+ wechatFree: !!it.is_superfanship_give_wechat,
+ key: index ? 5 - index : index,
+ }))
+ );
+ setSpacePriceInfo(res);
});
}, []);
+
+ useEffect(() => {
+ if (!spacePriceInfo) return;
+ form.setFieldsValue({
+ spacePrice: spacePriceInfo.admission_price / 100,
+ ironFanPrice: spacePriceInfo.ironfanship_price / 100,
+ });
+ }, [form, spacePriceInfo]);
const listItemWithCheckboxMemo = useMemo(() => {
return superSingles.map((item, index) => (
));
- }, [formData, superSingleChecked]);
- const handleSubmit = async () => {
- const { spacePrice, ironFanPrice, openSuper, superSingle } = formData;
+ }, [superSingleCheckeds, superSinglesContr]);
+ const handleSubmit = async (newFormData) => {
+ const { spacePrice, ironFanPrice } = newFormData;
+ const superSingle = [...superSinglesContr];
const openSuperEveryFalse = Object.values(superSingle).every(
(it) => !it.enable
);
- if (!spacePrice || !ironFanPrice || (openSuper && openSuperEveryFalse)) {
+ if (openSuper && openSuperEveryFalse) {
Toast.show({
icon: "fail",
- content: "请完善内容后提交",
+ content: "请完善档位内容后提交",
position: "top",
});
return;
@@ -233,57 +213,9 @@ export default function spacePaymentSetting() {
}
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;
+ Object.values(superSingle).forEach((it) => {
+ if (it.enable) {
+ const superFanPrice = it.price;
if (!superFanPrice) {
Toast.show({
icon: "fail",
@@ -319,7 +251,55 @@ export default function spacePaymentSetting() {
}
}
}
- }
+ });
+ // 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;
// if (
@@ -340,20 +320,21 @@ export default function spacePaymentSetting() {
if (isSubmitting) return;
// 旧版本
- const superfanList = 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,
- }));
- const superfanObj = superfanList.filter((it) => it.enable)[0];
- // 新版本
- // const superfan_price_list = superSingle.map((it, index) => ({
+ // const superfanList = 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,
// }));
+ // const superfanObj = superfanList.filter((it) => it.enable)[0];
+ // 新版本
+
+ const superfan_price_list = superSinglesContr.map((it, index) => ({
+ period: it.key,
+ enable: it.enable ? 1 : 0,
+ price: parseInt(it.price * 100, 10),
+ is_superfanship_give_wechat: it.wechatFree ? 1 : 0,
+ }));
setIsSubmitting(true);
try {
const body = {
@@ -362,13 +343,12 @@ export default function spacePaymentSetting() {
ironfanship_price: parseInt(ironFanPrice * 100, 10),
is_superfanship_enabled: openSuper ? 1 : 0,
// 旧版本
- superfanship_price: superfanObj.price,
- superfanship_valid_period: superfanObj.period,
- is_superfanship_give_wechat: superfanObj.is_superfanship_give_wechat,
+ // superfanship_price: superfanObj.price,
+ // superfanship_valid_period: superfanObj.period,
+ // is_superfanship_give_wechat: superfanObj.is_superfanship_give_wechat,
// 新版本
- // superfan_price_list,
+ superfan_price_list,
};
- // console.log("body", body);
const _data = await requireAPI(
"POST",
"/api/zone/update",
@@ -397,6 +377,7 @@ export default function spacePaymentSetting() {
setIsSubmitting(false);
}
};
+ const messageEle = (message) =>
{message}
;
return (
{/* 头部标题 */}
@@ -415,10 +396,35 @@ export default function spacePaymentSetting() {
{/* 内容 */}
-
+
{listItemWithCheckboxMemo}
+ */}
+
{
+ setSuperSingleCheckeds(values);
+ }}
+ >
+ {listItemWithCheckboxMemo}
+
+
+
+ )}
+
+
+
+
+
);