Merge remote-tracking branch 'origin/anln_refund_1.2' into anln_refund_1.4
This commit is contained in:
commit
177f5a0385
app
components
BottomNav
InOtherApp
PostItem
VideoPlayer
Websocket
WithAuth
store
utils
|
@ -52,7 +52,7 @@ function Login({ handleLogin }) {
|
|||
const showMobal = useRef();
|
||||
const [iframePageUrl, setIframePageUrl] = useState(null);
|
||||
useEffect(() => {
|
||||
const userAgent = navigator.userAgent;
|
||||
const userAgent = window && window.navigator?.userAgent;
|
||||
//区分设备类型
|
||||
if (/Android/i.test(userAgent)) {
|
||||
setDeviceType("Android");
|
||||
|
|
|
@ -5,7 +5,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|||
import { faAngleRight } from "@fortawesome/free-solid-svg-icons";
|
||||
import { Avatar, Toast, Space } from "antd-mobile";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { get } from "@/utils/storeInfo";
|
||||
import { get, save } from "@/utils/storeInfo";
|
||||
import requireAPI from "@/utils/requireAPI";
|
||||
import OwnIcon from "@/components/OwnIcon";
|
||||
import OwnImage from "@/components/OwnImage";
|
||||
|
@ -65,6 +65,7 @@ const My = () => {
|
|||
});
|
||||
return;
|
||||
}
|
||||
save("account", account.data.account);
|
||||
const statuses = await requireAPI(
|
||||
"POST",
|
||||
"/api/streamer_auth_approval/get_statuses",
|
||||
|
@ -118,13 +119,13 @@ const My = () => {
|
|||
subTitle:
|
||||
account.data.account.role == 3 ? "创作者功能" : "完善资料后解锁",
|
||||
},
|
||||
// {
|
||||
// url: `my/refund/refundList`,
|
||||
// iconUrl: "/icons/32DP/wallet.png",
|
||||
// title: "退款审核",
|
||||
// subTitle:
|
||||
// account.data.account.role == 3 ? "创作者功能" : "完善资料后解锁",
|
||||
// },
|
||||
{
|
||||
url: `my/refund/refundList`,
|
||||
iconUrl: "/icons/32DP/refund.png",
|
||||
title: "退款审核",
|
||||
subTitle:
|
||||
account.data.account.role == 3 ? "创作者功能" : "完善资料后解锁",
|
||||
},
|
||||
// ...currentOld,
|
||||
];
|
||||
if (isInJoinProgress) {
|
||||
|
|
|
@ -142,7 +142,11 @@ export default function RefundDetail() {
|
|||
<Radio.Group
|
||||
className="flex flex-col"
|
||||
onChange={setIndex}
|
||||
value={data && data?.refunds_status === 4 ? 2 : selectedIndex}
|
||||
value={
|
||||
data && [2, 3, 4].includes(data?.refunds_status)
|
||||
? 2
|
||||
: selectedIndex
|
||||
}
|
||||
disabled={!checkAble}
|
||||
>
|
||||
<div className="flex flex-row items-start mt-4 pr-6">
|
||||
|
@ -216,7 +220,9 @@ export default function RefundDetail() {
|
|||
}}
|
||||
>
|
||||
{data && data?.refunds_status === 4
|
||||
? "系统已自动提交"
|
||||
? "超时自动提交"
|
||||
: data && data?.refunds_status === 3
|
||||
? "2小时无条件退款"
|
||||
: !checkAble
|
||||
? "您已提交"
|
||||
: isLoading
|
||||
|
|
|
@ -66,7 +66,7 @@ export default function PendingReview({ currentIndex }) {
|
|||
roundedFull
|
||||
/>
|
||||
<div className="ml-2 flex flex-col gap-1">
|
||||
<div className="flex flex-row items-center flex-1 ">
|
||||
<div className="flex flex-row flex-wrap items-center flex-1 ">
|
||||
<div style={{ maxWidth: 100 }} className="truncate">
|
||||
<span className="mr-2 text-base text-white font-medium whitespace-nowrap">
|
||||
{item.account.name}
|
||||
|
@ -99,9 +99,9 @@ export default function PendingReview({ currentIndex }) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-col justify-center items-center">
|
||||
<div className="flex flex-col justify-center items-start">
|
||||
<div className="px-4 py-1 rounded-full bg-[#FFFFFF1A] flex-row items-center">
|
||||
<span className="text-white text-sm">
|
||||
<span className="text-white text-sm whitespace-nowrap">
|
||||
{item?.refunds_status === 4
|
||||
? "已自动退款"
|
||||
: item?.refunds_status === -1
|
||||
|
|
|
@ -136,6 +136,7 @@ export default function JoinGuild() {
|
|||
<div className="mt-2 px-4 py-3 h-12 rounded-[0.8rem] bg-[#FFFFFF1a] flex justify-between items-center">
|
||||
<OwnInput
|
||||
type="text"
|
||||
maxLength={20}
|
||||
placeholder="请输入联络人"
|
||||
value={formData.contact_name}
|
||||
onChange={(value) =>
|
||||
|
@ -155,6 +156,7 @@ export default function JoinGuild() {
|
|||
<div className="mt-2 px-4 py-3 h-12 rounded-[0.8rem] bg-[#FFFFFF1a] flex justify-between items-center">
|
||||
<OwnInput
|
||||
type="text"
|
||||
maxLength={20}
|
||||
placeholder="请输入您的联系方式"
|
||||
value={formData.contact_way}
|
||||
onChange={(value) =>
|
||||
|
|
|
@ -128,6 +128,7 @@ export default function JoinStreamer() {
|
|||
<OwnInput
|
||||
type="text"
|
||||
placeholder="请输入可搜索到您的昵称"
|
||||
maxLength={20}
|
||||
value={formData.name}
|
||||
onChange={(value) =>
|
||||
setFormData((old) => ({ ...old, name: value }))
|
||||
|
@ -168,6 +169,7 @@ export default function JoinStreamer() {
|
|||
<OwnInput
|
||||
type="text"
|
||||
placeholder="请输入您的联系方式"
|
||||
maxLength={20}
|
||||
value={formData.contact}
|
||||
onChange={(value) =>
|
||||
setFormData((old) => ({ ...old, contact: value }))
|
||||
|
|
|
@ -63,7 +63,7 @@ export default function NoticeItem({ leftIcon, hasLink, data }) {
|
|||
// }
|
||||
if (links.length > 1) {
|
||||
links[1]?.action === "app_router_path";
|
||||
router.push(links[1]?.params);
|
||||
router.push("/" + links[1]?.params);
|
||||
} else {
|
||||
links[0]?.action === "outward";
|
||||
router.push(links[0]?.params);
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
import React, { useEffect, useState, useRef, useCallback } from "react";
|
||||
import { Toast, Swiper, Image } from "antd-mobile";
|
||||
import LoadingMask from "@/components/LoadingMask";
|
||||
import { useRouter } from "next/navigation";
|
||||
import requireAPI from "@/utils/requireAPI";
|
||||
import OwnImage from "@/components/OwnImage";
|
||||
import { goToPage } from "@/utils/tools";
|
||||
export default function Banner() {
|
||||
const [bannerList, setBannerList] = useState([]);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const router = useRouter();
|
||||
const ref = useRef(null);
|
||||
useEffect(() => {
|
||||
const getBannerList = async () => {
|
||||
setIsLoading(true);
|
||||
try {
|
||||
const _data = await requireAPI(
|
||||
"POST",
|
||||
"/api/activity_banner/list",
|
||||
null,
|
||||
true
|
||||
);
|
||||
if (_data.ret === -1) {
|
||||
Toast.show({
|
||||
icon: "fail",
|
||||
content: _data.msg,
|
||||
position: "top",
|
||||
});
|
||||
return;
|
||||
}
|
||||
setBannerList(_data.data.list);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
setIsLoading(false);
|
||||
}
|
||||
};
|
||||
getBannerList();
|
||||
}, []);
|
||||
const items = useCallback(
|
||||
(item, index) => (
|
||||
<Swiper.Item key={index}>
|
||||
<div
|
||||
className="w-full h-[200px]"
|
||||
onClick={() => {
|
||||
const links = item?.hyperlinks;
|
||||
if (links.length > 1) {
|
||||
router.push(
|
||||
links.filter((it) => it.inward_action_type === "h5")[0]?.url
|
||||
);
|
||||
} else {
|
||||
router.push(links[0]?.url);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<OwnImage
|
||||
className={"w-full h-full"}
|
||||
outClassName={"w-full h-full"}
|
||||
src={item.image.images[0].urls[0]}
|
||||
fit="cover"
|
||||
position="center"
|
||||
/>
|
||||
</div>
|
||||
</Swiper.Item>
|
||||
),
|
||||
[]
|
||||
);
|
||||
return (
|
||||
<div className="flex-1 mt-6">
|
||||
<Swiper
|
||||
allowTouchMove
|
||||
ref={ref}
|
||||
loop
|
||||
autoplay
|
||||
style={{ "--border-radius": "8px" }}
|
||||
>
|
||||
{bannerList.map((item, index) => items(item, index))}
|
||||
</Swiper>
|
||||
</div>
|
||||
);
|
||||
}
|
|
@ -5,6 +5,7 @@ import { useRouter } from "next/navigation";
|
|||
import requireAPI from "@/utils/requireAPI";
|
||||
import OwnImage from "@/components/OwnImage";
|
||||
import OwnIcon from "@/components/OwnIcon";
|
||||
import Banner from "../Banner";
|
||||
export default function HostList() {
|
||||
const [hostList, setHostList] = useState([]);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
|
@ -38,6 +39,10 @@ export default function HostList() {
|
|||
}, []);
|
||||
return (
|
||||
<div className="flex-1 mt-6">
|
||||
{/* Banner预留位置 */}
|
||||
<div className="my-4">
|
||||
<Banner />
|
||||
</div>
|
||||
<div className="flex flex-row justify-between items-center">
|
||||
<p className="text-xl font-medium">猜你想看</p>
|
||||
{/* <div
|
||||
|
@ -64,9 +69,16 @@ export default function HostList() {
|
|||
style={{ "--padding-left": 0 }}
|
||||
>
|
||||
<div
|
||||
onClick={() =>
|
||||
router.push(`space/person_space_introduce/${item.mid}`)
|
||||
}
|
||||
onClick={() => {
|
||||
const links = item?.hyperlinks;
|
||||
if (links.length > 1) {
|
||||
router.push(
|
||||
links.filter((it) => it.inward_action_type === "h5")[0]?.url
|
||||
);
|
||||
} else {
|
||||
router.push(links[0]?.url);
|
||||
}
|
||||
}}
|
||||
className="grid grid-cols-[48px,calc(100vw-48px-2rem)]"
|
||||
>
|
||||
<div className="relative">
|
||||
|
@ -90,34 +102,37 @@ export default function HostList() {
|
|||
<span className="text-base text-white font-medium whitespace-nowrap truncate max-w-[30%]">
|
||||
{item.title}
|
||||
</span>
|
||||
|
||||
<div className="flex flex-row items-center py-0.5 px-2 ml-1 bg-[#FFFFFF1A] rounded-full">
|
||||
{item?.gender === 1 ? (
|
||||
<OwnIcon
|
||||
src="/icons/info/female.png"
|
||||
className="w-[14px] h-full"
|
||||
outClassName="mr-1"
|
||||
/>
|
||||
) : (
|
||||
<OwnIcon
|
||||
src="/icons/info/male.png"
|
||||
className="w-[14px] h-full"
|
||||
outClassName="mr-1"
|
||||
/>
|
||||
)}
|
||||
<span className="text-white text-xs font-medium ml-0.5">
|
||||
{item.age}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-row items-center py-0.5 px-2 ml-1 bg-[#FFFFFF1A] rounded-full">
|
||||
<OwnIcon
|
||||
src="/icons/info/location.png"
|
||||
className="w-[14px] h-full"
|
||||
/>
|
||||
<span className="text-white text-xs font-medium ml-0.5">
|
||||
{item.city}
|
||||
</span>
|
||||
</div>
|
||||
{item.age && (
|
||||
<>
|
||||
<div className="flex flex-row items-center py-0.5 px-2 ml-1 bg-[#FFFFFF1A] rounded-full">
|
||||
{item?.gender === 1 ? (
|
||||
<OwnIcon
|
||||
src="/icons/info/female.png"
|
||||
className="w-[14px] h-full"
|
||||
outClassName="mr-1"
|
||||
/>
|
||||
) : (
|
||||
<OwnIcon
|
||||
src="/icons/info/male.png"
|
||||
className="w-[14px] h-full"
|
||||
outClassName="mr-1"
|
||||
/>
|
||||
)}
|
||||
<span className="text-white text-xs font-medium ml-0.5">
|
||||
{item.age}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-row items-center py-0.5 px-2 ml-1 bg-[#FFFFFF1A] rounded-full">
|
||||
<OwnIcon
|
||||
src="/icons/info/location.png"
|
||||
className="w-[14px] h-full"
|
||||
/>
|
||||
<span className="text-white text-xs font-medium ml-0.5">
|
||||
{item.city}
|
||||
</span>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
<p className="text-sm text-[#FFFFFF80] whitespace-nowrap truncate w-full">
|
||||
{item.text}
|
||||
|
@ -127,7 +142,6 @@ export default function HostList() {
|
|||
</List.Item>
|
||||
))}
|
||||
</List>
|
||||
{/* Banner预留位置 */}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -175,6 +175,7 @@ export default function PersonSpaceIntroduce() {
|
|||
<OwnImage
|
||||
rounded="rounded"
|
||||
className="h-full"
|
||||
outClassName="h-full"
|
||||
fit="cover"
|
||||
src={data?.streamer_ext?.shorts?.videos[0]?.cover_urls[0]}
|
||||
/>
|
||||
|
|
|
@ -59,7 +59,7 @@ export default function SpaceRefund() {
|
|||
if (isSubmitting) return;
|
||||
setIsSubmitting(true);
|
||||
try {
|
||||
const _data = await requireAPI("POST", "/api/zone/refund", {
|
||||
const _data = await requireAPI("POST", "/api/zone/refund_v2", {
|
||||
body: {
|
||||
zid: Number(searchParams.get("id")),
|
||||
contact_name: name,
|
||||
|
@ -166,6 +166,7 @@ export default function SpaceRefund() {
|
|||
联系方式
|
||||
</p>
|
||||
<Input
|
||||
maxLength={20}
|
||||
placeholder="请输入联系方式"
|
||||
onChange={(value) => setContact(value)}
|
||||
value={contact}
|
||||
|
@ -184,6 +185,7 @@ export default function SpaceRefund() {
|
|||
</p>
|
||||
<div className="flex flex-row items-center">
|
||||
<TextArea
|
||||
maxLength={200}
|
||||
placeholder="请输入退款原因"
|
||||
onChange={(value) => setRemark(value)}
|
||||
value={remark}
|
||||
|
@ -202,7 +204,7 @@ export default function SpaceRefund() {
|
|||
1、当前退款内容为本空间的成员身份,退款后您将无法再次加入本空间;
|
||||
</p>
|
||||
<p>
|
||||
2、平台将在24小时内处理您的退款申请,为了退款进程的顺利,请您详细填写您的退款原因;
|
||||
2、空间创建者将在一个工作日内处理您的退款申请,为了退款进程的顺利,请您详细填写您的退款原因;
|
||||
</p>
|
||||
<p>
|
||||
3、一旦退款成功,退款金额将原路返回您的支付账户,请确保您的支付账户可正常接受款项;
|
||||
|
|
|
@ -17,7 +17,7 @@ function BottomNav({ changeNoticeCount, changeInviter, noticeCount }) {
|
|||
useEffect(() => {
|
||||
const currentInviter = searchParams.get("inviter");
|
||||
if (currentInviter) {
|
||||
console.log("Current Inviter: " + currentInviter);
|
||||
// console.log("Current Inviter: " + currentInviter);
|
||||
changeInviter(currentInviter);
|
||||
}
|
||||
}, [pathname]);
|
||||
|
|
|
@ -6,7 +6,7 @@ export default function InOtherApp() {
|
|||
//区分是否在微信/微博/qq/支付宝/钉钉内置浏览器中打开
|
||||
const [isInOtherApp, setIsInOtherApp] = useState(false);
|
||||
useEffect(() => {
|
||||
const userAgent = navigator.userAgent.toLowerCase();
|
||||
const userAgent = window && window.navigator?.userAgent.toLowerCase();
|
||||
let temIsInOtherApp =
|
||||
userAgent.match(/MicroMessenger/i) == "micromessenger" ||
|
||||
userAgent.match(/WeiBo/i) == "weibo" ||
|
||||
|
|
|
@ -284,6 +284,7 @@ export default function PostItem({
|
|||
{type == "post" ? (
|
||||
<div
|
||||
className="flex items-center"
|
||||
style={{ display: !isOwn ? "flex" : "none" }}
|
||||
onClick={() =>
|
||||
router.push("/space/person_space_introduce/" + data.mid)
|
||||
}
|
||||
|
@ -324,8 +325,7 @@ export default function PostItem({
|
|||
/>
|
||||
</>
|
||||
) : (
|
||||
data?.streamer_ext?.zones?.length !== 0 &&
|
||||
!isOwn && (
|
||||
data?.streamer_ext?.zones?.length !== 0 && (
|
||||
<div className="text-[#FFFFFFB2] font-medium text-xs flex items-center">
|
||||
<span className="mr-1">查看TA的空间</span>
|
||||
<FontAwesomeIcon
|
||||
|
|
|
@ -14,7 +14,7 @@ export default function VideoPlayer({ video }) {
|
|||
const [showController, setShowController] = useState(false);
|
||||
const [screenState, setScreenState] = useState(false);
|
||||
const isSliding = useRef(null);
|
||||
const userAgent = navigator.userAgent;
|
||||
const userAgent = window && window.navigator?.userAgent;
|
||||
// const currentTime = useMemo(()=>{
|
||||
// const videoPlayer = document.getElementById("videoPlayer");
|
||||
// if (videoPlayer) {
|
||||
|
|
|
@ -61,7 +61,7 @@ const WebSocketComponent = ({ getData, authInfo }) => {
|
|||
// 可以在这里发送消息到服务器,例如:socket.send('Hello Server!');
|
||||
retryInterval = 1000;
|
||||
sendMessageQueue();
|
||||
socketRef.current.send(JSON.stringify({ t: 1 }));
|
||||
socketRef.current?.send(JSON.stringify({ t: 1 }));
|
||||
};
|
||||
// 处理收到的消息
|
||||
socketRef.current.onmessage = (event) => {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
"use client";
|
||||
import { checkAuth } from "@/utils/auth";
|
||||
import { useRouter, usePathname, useSearchParams } from "next/navigation";
|
||||
import { useEffect } from "react";
|
||||
|
@ -10,7 +11,7 @@ export default function WithAuth(WrappedComponent) {
|
|||
const pathname = usePathname();
|
||||
const searchParams = useSearchParams();
|
||||
useEffect(() => {
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
const ua = window && window.navigator?.userAgent.toLowerCase();
|
||||
if (
|
||||
(ua.indexOf("mqqbrowser") > -1 || ua.indexOf("quark") > -1) &&
|
||||
ua.indexOf("iphone") > -1
|
||||
|
|
|
@ -22,7 +22,7 @@ const reducer = (state = initialState, action) => {
|
|||
case "ChANGENOTICECOUNT":
|
||||
return { ...state, noticeCount: action.data };
|
||||
case "ChANGEINVITER":
|
||||
console.log("ChANGEINVITER-------", action.data);
|
||||
// console.log("ChANGEINVITER-------", action.data);
|
||||
return { ...state, inviter: action.data };
|
||||
default:
|
||||
return state;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
"use client";
|
||||
import { getCookie } from "cookies-next";
|
||||
import { get } from "./storeInfo";
|
||||
export default function baseRequest() {
|
||||
|
@ -7,7 +8,7 @@ export default function baseRequest() {
|
|||
const mid = getCookie("mid");
|
||||
const b_ts = new Date().getTime();
|
||||
let b_dt = 0;
|
||||
if (/(iPad|iPhone|iPod)/gi.test(navigator.userAgent)) {
|
||||
if (/(iPad|iPhone|iPod)/gi.test(window && window.navigator?.userAgent)) {
|
||||
b_dt = 1;
|
||||
}
|
||||
const baseRequest = {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
"use client";
|
||||
import { Toast } from "antd-mobile";
|
||||
//格式化时间戳
|
||||
export function formatDeadline(timestamp) {
|
||||
|
@ -135,7 +136,7 @@ export function getVideoBase64(url) {
|
|||
canvas.height = video.height;
|
||||
|
||||
// 判断是否为 iOS 系统
|
||||
if (/(iPad|iPhone|iPod)/gi.test(navigator.userAgent)) {
|
||||
if (/(iPad|iPhone|iPod)/gi.test(window && window.navigator?.userAgent)) {
|
||||
// 在 iOS 系统中,需要手动触发视频加载,然后设置自动播放和静音属性
|
||||
video.load();
|
||||
// video.autoplay = true;
|
||||
|
@ -182,17 +183,26 @@ export function getcountLines(str) {
|
|||
}
|
||||
|
||||
// 跳转页面
|
||||
// export function goToPage(link) {
|
||||
// let linkArr = link.split("?");
|
||||
// const params = linkArr[1]?.split("&");
|
||||
// console.log("params", params);
|
||||
// if (params == "") return "/my/" + linkArr[0];
|
||||
// }
|
||||
export function goToPage(link) {
|
||||
let linkArr = link.split("?");
|
||||
const params = linkArr[1]?.split("&");
|
||||
|
||||
if (!params) return linkArr[0];
|
||||
// if (linkArr[0].includes("/")) {
|
||||
// const path = linkArr[0].replace(/^\/+|\/+$/g, "");
|
||||
// const pathNames = path.split("/").filter((it) => it != "");
|
||||
// return [pathNames[0], { screen: pathNames[1] }];
|
||||
// }
|
||||
const query = params
|
||||
.map((it) => ({ [it.split("=")[0]]: it.split("=")[1] }))
|
||||
.reduce((acc, cur) => ({ ...acc, ...cur }), {});
|
||||
return [linkArr[0], query];
|
||||
}
|
||||
|
||||
// 尝试使用浏览器打开URL
|
||||
export function openUrlWithBrowser(url) {
|
||||
try {
|
||||
const userAgent = navigator.userAgent;
|
||||
const userAgent = window && window.navigator?.userAgent;
|
||||
//区分设备类型
|
||||
if (/Android/i.test(userAgent)) {
|
||||
var intentUrl =
|
||||
|
|
|
@ -226,7 +226,7 @@ export const toggleFullScreen = (videoEleId, controllerId, getState) => {
|
|||
// IE/Edge
|
||||
video.msRequestFullscreen();
|
||||
}
|
||||
console.log("toggleFullScreen", video);
|
||||
// console.log("toggleFullScreen", video);
|
||||
if (!video || !controller) return;
|
||||
// video.style.transform =
|
||||
// "translateX(50vw) translateY(-24.4vh) rotate(90deg) !important";
|
||||
|
@ -260,7 +260,7 @@ export const toggleFullScreen = (videoEleId, controllerId, getState) => {
|
|||
|
||||
getState((old) => !old);
|
||||
} else {
|
||||
console.log("toggleFullScreen", video);
|
||||
// console.log("toggleFullScreen", video);
|
||||
if (!video || !controller) return;
|
||||
// video.style.transform =
|
||||
// "translateX(50vw) translateY(-24.4vh) rotate(90deg) !important";
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
"use client";
|
||||
import { getCookies } from "cookies-next";
|
||||
|
||||
export default function webviewBaseRequest() {
|
||||
|
@ -5,7 +6,7 @@ export default function webviewBaseRequest() {
|
|||
const b_ts = new Date().getTime();
|
||||
const baseRequest = {
|
||||
b_mid: parseInt(cookies.b_mid),
|
||||
b_did: window && window.navigator?.userAgent.slice(0,65),
|
||||
b_did: window && window.navigator?.userAgent.slice(0, 65),
|
||||
b_ver: cookies.b_ver,
|
||||
b_dt: parseInt(cookies.b_dt),
|
||||
b_model: cookies.b_model,
|
||||
|
|
Loading…
Reference in New Issue