修复部分问题

This commit is contained in:
al 2024-07-23 20:56:25 +08:00
parent 8983e84cf9
commit cff0265b23
16 changed files with 172 additions and 144 deletions

View File

@ -122,7 +122,7 @@ body{
}
.adm-jumbo-tabs-tab-active{
color:#fff!important;
font-weight: bold;
/* font-weight: bold; */
}
.adm-jumbo-tabs-tab-description{
background: none;
@ -146,6 +146,10 @@ body{
.adm-floating-panel-header{
background-color: #07050A!important;
}
.adm-floating-panel-header .adm-floating-panel-bar{
background-color: #ffffff!important;
width: 30px!important;
}
.adm-tab-bar .adm-tab-bar-item-icon{
height:32px;
}

View File

@ -10,7 +10,7 @@
color: #a0a0a0;
} */
.custom-tabs .adm-tabs .adm-tabs-tab {
font-weight: bold;
/* font-weight: bold; */
font-size: 24px;
}

View File

@ -172,11 +172,11 @@ export default function MessageDetail({}) {
const onSend = useCallback(
async (message, lastId, oldArr) => {
if (message == "") {
Toast.show({
icon: "error",
content: "不可发送空内容",
position: "top",
});
// Toast.show({
// icon: "error",
// content: "不可发送空内容",
// position: "top",
// });
return;
}

View File

@ -106,7 +106,7 @@ const My = () => {
style={{ "--size": "76px", "--border-radius": "50%" }}
/>
<div>
<p className="text-2xl font-bold">{userInfo.name}</p>
<p className="text-2xl">{userInfo.name}</p>
<div className="h-4 flex items-center text-xs bg-[#ffffff18] rounded-full px-2 py-2.5 mt-1 w-max">
<Image
src="/icons/info/ID.png"

View File

@ -1,6 +1,6 @@
"use client";
import React, { useEffect, useRef, useState } from "react";
import React, { useEffect, useState } from "react";
import {
JumboTabs,
List,
@ -11,7 +11,7 @@ import {
} from "antd-mobile";
// import { useRouter } from "next/navigation";
import { useRouter } from "next/navigation";
import { useSearchParams, usePathname, useParams } from "next/navigation";
import { useSearchParams } from "next/navigation";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faAngleLeft } from "@fortawesome/free-solid-svg-icons";
import styles from "./index.module.scss";
@ -24,9 +24,6 @@ export default function Relationship() {
// const router = useRouter();
const router = useRouter();
const searchParams = useSearchParams();
const pathname = usePathname();
const params = useParams();
const [scrollHeight, setScrollHeight] = useState(0);
const [data, setData] = useState([]);
const [offset, setOffset] = useState(0);
// 获取屏幕高度
@ -35,7 +32,7 @@ export default function Relationship() {
if (currentKey) {
setOffset(0);
setData([]);
getData(currentKey, offset).then((res) => {
getData(currentKey, 0).then((res) => {
setData(res);
});
}
@ -48,7 +45,7 @@ export default function Relationship() {
async function loadMore(key) {
const append = await getData(key, offset);
setData((val) => [...val, ...append]);
setHasMore(append.length > 0);
// setHasMore(append.length > 0);
}
const getData = async (key, currentOffset) => {
// api/account_relation/list_is_followed
@ -67,8 +64,8 @@ export default function Relationship() {
}
if (!followIds.data.list.length) return [];
const followsMids = followIds.data.list.map((item) => item.obj_mid);
const streamers = await requireAPI("POST", `/api/streamer/${
key == "follow" ? "list_ext_by_mids" : "list_others_by_mids"
const streamers = await requireAPI("POST", `/api${
key == "follow" ? "/streamer/list_ext_by_mids" : "/account/list_others_by_mids"
}`, {
body: { mids: followsMids, offset: 0, limit: 12 },
}, true);
@ -87,6 +84,7 @@ export default function Relationship() {
}));
setOffset(streamers.data.offset);
setHasMore(streamers.data.more)
return [...followsDataList];
// setMore(temData.data.more);
};

View File

@ -140,6 +140,7 @@ export default function EditPassword() {
console.error(error);
}
};
return (
<div>
<div className="p-4 fixed top-0 z-10 w-full">
@ -222,10 +223,10 @@ export default function EditPassword() {
</p>
<Input
placeholder="请输入8-15位新密码"
placeholderTextColor="#FFFFFF80"
underlineColorAndroid="transparent"
onChange={(value) => setNewPassword(value)}
value={newPassword}
type="password"
autoComplete="off"
style={{
"--placeholder-color": "#FFFFFF80",
"--font-size": "16px",
@ -239,8 +240,10 @@ export default function EditPassword() {
</p>
<Input
placeholder="请再次输入新密码"
onChangeText={(value) => setConfirmPassword(value)}
onChange={(value) => setConfirmPassword(value)}
value={confirmPassword}
type="password"
autoComplete="off"
style={{
"--placeholder-color": "#FFFFFF80",
"--font-size": "16px",
@ -253,7 +256,7 @@ export default function EditPassword() {
shape="rounded"
size="middle"
block
// onClick={handleSubmit}
onClick={handleUpdatePassword}
style={{ "--background-color": "#FF669E", color: "#FFFFFF" }}
>
确认修改

View File

@ -333,10 +333,10 @@ export default function PersonSpace() {
)}
</ul>
{streamerInfo?.streamer_ext?.bio && (
<p>
<div>
<span className="text-[#ffffff88]">个性签名</span>
{streamerInfo?.streamer_ext?.bio}
</p>
<p className="break-words">{streamerInfo?.streamer_ext?.bio}</p>
</div>
)}
</div>
</div>
@ -470,6 +470,12 @@ export default function PersonSpace() {
>
{isFollow ? "已关注" : "关注"}
</div>
<div
className="text-base bg-[#FFFFFF1A] py-1 px-6 rounded-full"
// onClick={() => handleFollow(isFollow, Number(mid), setIsFollow)}
>
私聊
</div>
<div
className="bg-primary px-10 py-1 text-base rounded-full"
onClick={() => setVisible(true)}

View File

@ -194,8 +194,9 @@ export default function PersonSpace() {
ct: streamerInfo?.streamer_ext?.ct,
user_id: streamerInfo?.streamer_ext?.user_id,
name: streamerInfo?.streamer_ext?.name,
visitor_role:streamerInfo?.visitor_role,
avatar:
streamerInfo?.streamer_ext?.cover?.images[0]?.urls[0],
streamerInfo?.streamer_ext?.avatar?.images[0]?.urls[0],
})
)
)
@ -221,7 +222,7 @@ export default function PersonSpace() {
src={streamerInfo?.streamer_ext?.avatar?.images[0]?.urls[0]}
/>
<div>
<p className="text-2xl mb-1 font-bold">
<p className="text-2xl mb-1">
{streamerInfo?.streamer_ext?.name}
</p>
<div className="flex">
@ -398,14 +399,14 @@ export default function PersonSpace() {
<PostItemSkeleton />
</>
)}
{!postList.length && !loading && (
{/* {!postList.length && !loading && (
<div
className={`flex flex-col items-center mt-20`}
style={{ height: `${scrollHeight}px` }}
>
<Empty type="nodata" />
</div>
)}
)} */}
{postList.map((item, index) => (
<List.Item key={item.id + "_" + index} className="!p-0">
<PostItem
@ -438,52 +439,30 @@ export default function PersonSpace() {
}}
/>
</div>
<ul className="flex justify-around mt-8 px-4 py-2 fixed bottom-0 z-[999] bg-deepBg w-full border-t-2 border-[#FFFFFF1A]">
<li
className="flex flex-col items-center"
onClick={() => setMaskVisible({ visible: true, type: "weChat" })}
>
<div className="w-9 h-9 flex items-center justify-center bg-[#1d1d1d71] rounded-full mb-1">
<Image
src="/images/wechat.png"
width={22}
height={22}
className="w-4 h-full"
placeholder=""
/>
</div>
<p className="text-xs">查看微信</p>
</li>
<li
className="flex flex-col items-center"
onClick={() => setMaskVisible({ visible: true, type: "ironFan" })}
>
<div className="w-9 h-9 flex items-center justify-center bg-[#1d1d1d71] rounded-full mb-1">
<Image
src="/icons/tiefen.png"
width={22}
height={22}
className="w-4 h-full"
placeholder=""
/>
</div>
<p className="text-xs">
{streamerInfo?.is_ironfanship_unlocked === 1
? "已是铁粉"
: "成为铁粉"}
</p>
{/* <p className="text-[#ffffff54] text-[10px]">0/299</p> */}
</li>
{!!streamerInfo?.is_superfanship_enabled && (
{streamerInfo?.visitor_role != 3 && (
<ul className="flex justify-around mt-8 px-4 py-2 fixed bottom-0 z-[999] bg-deepBg w-full border-t-2 border-[#FFFFFF1A]">
<li
className="flex flex-col items-center"
onClick={() => {
setCurrentKey("chaofen");
}}
onClick={() => setMaskVisible({ visible: true, type: "weChat" })}
>
<div className="w-9 h-9 flex items-center justify-center bg-[#1d1d1d71] rounded-full mb-1">
<Image
src="/icons/chaofen.png"
src="/images/wechat.png"
width={22}
height={22}
className="w-4 h-full"
placeholder=""
/>
</div>
<p className="text-xs">查看微信</p>
</li>
<li
className="flex flex-col items-center"
onClick={() => setMaskVisible({ visible: true, type: "ironFan" })}
>
<div className="w-9 h-9 flex items-center justify-center bg-[#1d1d1d71] rounded-full mb-1">
<Image
src="/icons/tiefen.png"
width={22}
height={22}
className="w-4 h-full"
@ -491,13 +470,37 @@ export default function PersonSpace() {
/>
</div>
<p className="text-xs">
{streamerInfo?.is_superfanship_unlocked === 1
? "尊贵超粉"
: "成为粉"}
{streamerInfo?.is_ironfanship_unlocked === 1
? "已是铁粉"
: "成为粉"}
</p>
{/* <p className="text-[#ffffff54] text-[10px]">0/299</p> */}
</li>
)}
</ul>
{!!streamerInfo?.is_superfanship_enabled && (
<li
className="flex flex-col items-center"
onClick={() => {
setCurrentKey("chaofen");
}}
>
<div className="w-9 h-9 flex items-center justify-center bg-[#1d1d1d71] rounded-full mb-1">
<Image
src="/icons/chaofen.png"
width={22}
height={22}
className="w-4 h-full"
placeholder=""
/>
</div>
<p className="text-xs">
{streamerInfo?.is_superfanship_unlocked === 1
? "尊贵超粉"
: "成为超粉"}
</p>
</li>
)}
</ul>
)}
{maskVisible.type == "weChat" && (
<AddWeChat
visible={maskVisible.visible}

View File

@ -177,46 +177,46 @@ export default function Space() {
{dataList?.length > 0 ? (
<div className="px-4 pb-8">
<ul className="grid grid-cols-2 gap-2 overflow-y-auto">
{dataList?.map((item) => (
<li key={item.id}>
<VisitingCard data={item} />
</li>
))}
<li onClick={() => router.push("/search")}>
<div
// onPress={() => navigation.navigate("Stream")}
// onClick={}
className="w-full h-52"
>
<div className="h-full flex flex-col rounded-lg overflow-hidden bg-[#FFFFFF1A]">
{/* <div className="w-full z-0"></div>
{dataList?.map((item) => (
<li key={item.id}>
<VisitingCard data={item} />
</li>
))}
<li onClick={() => router.push("/search")}>
<div
// onPress={() => navigation.navigate("Stream")}
// onClick={}
className="w-full h-52"
>
<div className="h-full flex flex-col rounded-lg overflow-hidden bg-[#FFFFFF1A]">
{/* <div className="w-full z-0"></div>
<div
className="w-full z-0 h-[42px]"
></div> */}
<div className="flex flex-col w-full h-full px-[22px] py-[30px]">
<p className="text-white font-medium text-lg">
发现更多
</p>
<p className="text-[#FFFFFF40] font-sm">
缘分就在不经意间
</p>
<Image
width={32}
height={32}
className="mt-4"
src="/icons/rightarrow_border.png"
/>
{/* <Image
<div className="flex flex-col w-full h-full px-[22px] py-[30px]">
<p className="text-white font-medium text-lg">
发现更多
</p>
<p className="text-[#FFFFFF40] font-sm">
缘分就在不经意间
</p>
<Image
width={32}
height={32}
className="mt-4"
src="/icons/rightarrow_border.png"
/>
{/* <Image
width={32}
height={32}
className="absolute bottom-0 right-0"
src="/icons/magnifier.png"
/> */}
</div>
</div>
</div>
</div>
</li>
</ul>
</li>
</ul>
</div>
) : (
<div
@ -333,16 +333,16 @@ const VisitingCard = ({ data }) => {
{data?.streamer_ext?.name}
</span>
<ul className="flex ml-2">
{data.visitor_role === 3 && (
<li className="text-[10px] bg-primary rounded px-1 mr-1 whitespace-nowrap">
创建者
</li>
)}
{data?.admission_price !== 0 && (
<li className="text-[10px] bg-primary rounded px-1 mr-1 whitespace-nowrap">
付费
</li>
)}
{data.visitor_role === 3 && (
<li className="text-[10px] bg-primary rounded px-1 mr-1 whitespace-nowrap">
创建者
</li>
)}
</ul>
</div>
</div>

View File

@ -1,18 +1,19 @@
"use client";
import React, { useEffect, useState, useRef } from "react";
import { Image, ImageViewer, Dialog } from "antd-mobile";
import { useRouter, useParams, redirect } from "next/navigation";
import { Image, ImageViewer, Dialog, Toast } from "antd-mobile";
import { useRouter, useParams } from "next/navigation";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {
faAngleLeft,
faAngleRight,
faClose,
faSave,
// faSave,
} from "@fortawesome/free-solid-svg-icons";
import AddWeChat from "@/components/AddWeChat";
import { getStreamerInfo } from "@/api/space";
import baseRequest from "@/utils/baseRequest";
import requireAPI from "@/utils/requireAPI"
export default function PersonSpaceIntroduce() {
const base = baseRequest();
const router = useRouter();
@ -70,13 +71,13 @@ export default function PersonSpaceIntroduce() {
您的浏览器不支持 Video 标签
</video>
</div>
<div
{/* <div
className="flex w-12 h-12 justify-center items-center bg-[#33333348] rounded-full"
key="closeBtn"
// onClick={handleSeeAllPhotos}
>
<FontAwesomeIcon icon={faSave} size="2xl" />
</div>
</div> */}
</div>
),
bodyStyle: {
@ -104,7 +105,7 @@ export default function PersonSpaceIntroduce() {
});
return;
}
redirect("/space/" + mid);
router.push("/space/" + mid);
} catch (error) {
console.error(error);
}

View File

@ -129,7 +129,7 @@ export default function Setting() {
style={{ "--size": "52px", "--border-radius": "50%" }}
/>
<div>
<p className="text-xl font-bold">{streamerInfo?.name}</p>
<p className="text-xl">{streamerInfo?.name}</p>
<ul className="flex">
<li className="h-4 mr-1 flex items-center text-xs bg-[#ffffff18] rounded-full px-2 py-2.5 mt-1 w-max">
<Image
@ -180,13 +180,13 @@ export default function Setting() {
<Divider />
</li>
)}
<li onClick={handleShowDialog}>
{streamerInfo?.visitor_role != 3 && <li onClick={handleShowDialog}>
<div className="flex justify-between">
<span className="text-base text-white">退出空间</span>
<FontAwesomeIcon icon={faAngleRight} size="xl" />
</div>
<Divider />
</li>
</li>}
</ul>
</div>
</div>

View File

@ -162,7 +162,7 @@ export default function AddWeChat({
</p>
</div>
)}
{!streamerDetailData?.is_unlock_wechat && streamerDetailData?.wechat_order_status === 2 && (
{(!streamerDetailData?.is_unlock_wechat || streamerDetailData?.wechat_order_status === 2) && (
<div
className="bg-primary px-4 py-2 rounded-full flex items-center justify-center"
onClick={unlockWechat}

View File

@ -7,6 +7,7 @@ import baseRequest from "@/utils/baseRequest";
export default function PaySpacePost({
type = "ironFan",
status = 0,
is_ironfan_visible=false,
data = {},
isCreator,
}) {
@ -38,7 +39,7 @@ export default function PaySpacePost({
{data.price / 100}
</span>
<span
className={`text-sm font-medium text-[${
className={`text-sm text-[${
data.is_ironfan_visible === 1 ? "#FF669E" : "#FFD685"
}]`}
>
@ -90,7 +91,7 @@ export default function PaySpacePost({
: "/icons/money_gold.png"
}
/>
<span className="font-bold">{data.price / 100}</span>
<p className="flex justify-center items-center"><span className="text-base font-semibold ml-1">{data.price / 100}</span><span className="text-sm"></span></p>
</div>
<div className="flex items-center">
{!data.is_zone_moment_unlocked ? (
@ -142,10 +143,10 @@ export default function PaySpacePost({
/>
</div>
</div>
{status === 0 && (
{is_ironfan_visible && (
<p
className="text-xs mt-2"
style={{ color: type === "ironFan" ? "#ff669e54" : "#FFD68554" }}
className="text-xs mt-2 text-[#FFFFFF40]"
// style={{ color: type === "ironFan" ? "#ff669e54" : "#FFD68554" }}
>
空间内任何消费满{data.ironfanship_price}元即可成为铁粉
</p>

View File

@ -3,7 +3,7 @@
import React, { useEffect, useState } from "react";
import { Image, ImageViewer, Dialog } from "antd-mobile";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faAngleUp, faClose, faSave } from "@fortawesome/free-solid-svg-icons";
import { faAngleUp, faClose} from "@fortawesome/free-solid-svg-icons";
import { saveFile } from "@/utils/tools/handleFuns";
import { useRouter } from "next/navigation";
import baseRequest from "@/utils/baseRequest";
@ -95,13 +95,13 @@ export default function Photos({ isUnlocked, mediaAmount, media, type, data }) {
您的浏览器不支持 Video 标签
</video>
</div>
<div
{/* <div
className="flex w-12 h-12 justify-center items-center bg-[#33333348] rounded-full"
key="closeBtn"
onClick={() => saveFile(video.mp4)}
>
<FontAwesomeIcon icon={faSave} size="2xl" />
</div>
</div> */}
</div>
),
bodyStyle: {

View File

@ -9,6 +9,8 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faAngleRight } from "@fortawesome/free-solid-svg-icons";
import { handleFollow, thumbsUp } from "@/api/public";
import { get } from "@/utils/storeInfo";
import { Inter } from "next/font/google";
const inter = Inter({ subsets: ["latin"] });
export default function PostItem({
type,
follow,
@ -84,7 +86,7 @@ export default function PostItem({
className="flex justify-between items-center"
onClick={() => handleFollow(isFollow, data?.mid, setIsFollow)}
>
<span className="font-bold text-md">{data.streamer_ext?.name}</span>
<span className="text-md">{data.streamer_ext?.name}</span>
{type == "post" && (
<span className="rounded-full bg-[#FFFFFF1A] px-2 py-1 text-xs text-white font-medium">
{isFollow ? "已关注" : "关注"}
@ -93,28 +95,37 @@ export default function PostItem({
</div>
<div>
{!data?.is_zone_moment_unlocked ? (
<>
<span>
<pre
dangerouslySetInnerHTML={{
__html: findLinksInText(data.text),
}}
className={`mb-2 mt-2 ${!isOpenText ? "text-ellipsis-7" : ""}`}
className={`mb-2 mt-2 ${
!isOpenText ? "text-ellipsis-7" : ""
} ${inter.className}`}
// style={{
// WebkitLineClamp: data?.text_visible_range < 999?data?.text_visible_range:7,
// }}
></pre>
</>
</span>
) : (
<div>
<pre
className={`mb-2 mt-2 ${!isOpenText ? "text-ellipsis-7" : ""}`}
dangerouslySetInnerHTML={{
__html: findLinksInText(data.text),
}}
style={{
WebkitLineClamp: data?.text_visible_range < 999?data?.text_visible_range:7,
}}
></pre>
<span>
<pre
className={`mb-2 mt-2 ${
!isOpenText ? "text-ellipsis-7" : ""
} ${inter.className}`}
dangerouslySetInnerHTML={{
__html: findLinksInText(data.text),
}}
style={{
WebkitLineClamp:
data?.text_visible_range < 999
? data?.text_visible_range
: 7,
}}
></pre>
</span>
</div>
)}
{!(
@ -144,6 +155,7 @@ export default function PostItem({
type={data.is_ironfan_visible ? "ironFan" : "superFan"}
price={data.price / 100}
status={data.is_ironfanship_unlocked}
is_ironfan_visible={data.is_ironfan_visible==1}
ironfanship_price={data.ironfanship_price / 100}
is_zone_moment_unlocked={data.is_zone_moment_unlocked}
data={data}
@ -202,7 +214,7 @@ export default function PostItem({
? `${
getDays === 0 ? "今日" : "new" === 1 ? "昨日" : "前天"
}`
: date.getMonth() + 1 + "" + date.getDate() + "日"}
: date.getMonth() + 1 + "-" + date.getDate()}
</span>
<span>
{(date.getHours() > 9

View File

@ -1,5 +1,5 @@
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faClose, faSave } from "@fortawesome/free-solid-svg-icons";
import { faClose} from "@fortawesome/free-solid-svg-icons";
import { Dialog,Toast } from "antd-mobile";
import html2canvas from "html2canvas";
import {checkRole} from "../auth"
@ -30,13 +30,13 @@ export const handleShowVideos = (video) => {
您的浏览器不支持 Video 标签
</video>
</div>
<div
{/* <div
className="flex w-12 h-12 justify-center items-center bg-[#33333348] rounded-full"
key="closeBtn"
// onClick={handleSeeAllPhotos}
>
<FontAwesomeIcon icon={faSave} size="2xl" />
</div>
</div> */}
</div>
),
bodyStyle: {