fix:全局变量接口地址改为store状态管理变量的bug修复。消息页修改支持下拉加载

master
blak-kong 2 years ago
parent 68ef3c869d
commit 6dbbe576f3

@ -5,6 +5,7 @@ module.exports = {
defineConstants: {
},
mini: {
debugReact: true,
webpackChain: (chain, webpack) => {
chain.merge({
plugin: {

@ -27,6 +27,12 @@ export default defineAppConfig({
"backgroundColor": "#ffffff",
"borderStyle": "black",
"list": [
{
pagePath: "pages/index/index",
text: "主页",
iconPath: "img/tabar/1.png",
selectedIconPath: "img/tabar/11.png",
},
{
pagePath: "pages/activity/activity",
text: "活动",
@ -39,12 +45,6 @@ export default defineAppConfig({
iconPath: "img/tabar/2.png",
selectedIconPath: "img/tabar/22.png",
},
{
pagePath: "pages/index/index",
text: "主页",
iconPath: "img/tabar/1.png",
selectedIconPath: "img/tabar/11.png",
},
{
pagePath: "pages/shop/shop",
text: "商城",
@ -68,6 +68,7 @@ export default defineAppConfig({
navigationStyle: 'custom',
navigationBarBackgroundColor: '#fff',
navigationBarTitleText: 'WeChat',
navigationBarTextStyle: 'black'
navigationBarTextStyle: 'black',
// enablePullDownRefresh: true
}
})

@ -5,8 +5,6 @@ import "./app.less";
// // html5
// import "@tarojs/taro/html5.css";
import Taro from "@tarojs/taro";
import { Provider } from "react-redux";
import store from "./store";

@ -16,6 +16,12 @@ export default class Index extends Component {
backgroundColor: "#ffffff",
borderStyle: "black",
list: [
{
pagePath: "pages/index/index",
text: "主页",
iconPath: "/img/tabar/1.png",
selectedIconPath: "/img/tabar/11.png",
},
{
pagePath: "pages/activity/activity",
text: "活动",
@ -28,12 +34,6 @@ export default class Index extends Component {
iconPath: "/img/tabar/2.png",
selectedIconPath: "/img/tabar/22.png",
},
{
pagePath: "pages/index/index",
text: "主页",
iconPath: "/img/tabar/1.png",
selectedIconPath: "/img/tabar/11.png",
},
{
pagePath: "pages/shop/shop",
text: "商城",

@ -33,7 +33,7 @@ export default class Activity extends Component<any, any> {
componentDidShow() {
const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx);
tabbar?.setSelected(0);
tabbar?.setSelected(1);
}
componentDidHide() {}

@ -14,8 +14,6 @@ import {
import "taro-ui/dist/style/components/button.scss"; // 按需引入
import "./detect.less";
const app = Taro.getApp();
import type CustomTabBar from "../../custom-tab-bar";
export default class Detect extends Component<any, any> {
pageCtx = Taro.getCurrentInstance().page;
@ -33,7 +31,7 @@ export default class Detect extends Component<any, any> {
componentDidShow() {
const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx);
tabbar?.setSelected(1);
tabbar?.setSelected(2);
}
componentDidHide() {}

@ -68,7 +68,7 @@ export default class Entry extends Component<any, any> {
let list = detail.filter((item: any) => item.fileSuffix === "images");
let welcomeList = list.map((item) => {
return {
image: item.fileUrl,
image: item.filePath,
title: item.title,
desc: item.content,
};
@ -152,6 +152,7 @@ export default class Entry extends Component<any, any> {
style={{
top: menu.top + "px",
height: "calc(" + (100 % -menu.height) + "px)",
display: current === index ? "block" : "none",
}}
>
<View>

@ -76,7 +76,7 @@ class Index extends Component<any, any> {
componentDidShow() {
const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx);
tabbar?.setSelected(2);
tabbar?.setSelected(0);
this.showInit();
}
@ -128,8 +128,8 @@ class Index extends Component<any, any> {
GetNoReadMessageNum = async () => {
let res = await GetNoReadMessageNum();
if (res.data.code === 200) {
console.log("GetNoReadMessageNum", res);
Taro.setStorageSync("messageCount", res.data.data);
this.setState({ messagecount: res.data.data });
}
};

@ -12,8 +12,8 @@ import {
SwiperItem,
} from "@tarojs/components";
import { Toast } from "@antmjs/vantui";
const Toast_ = Toast.createOnlyToast();
// import { Toast } from "@antmjs/vantui";
// const Toast_ = Toast.createOnlyToast();
/*** redux ***/
import { connect } from "react-redux";
@ -22,9 +22,7 @@ import { userRefresh } from "../../store/features/userInfo";
import "taro-ui/dist/style/components/button.scss"; // 按需引入
import "./initiate.less";
import { go } from "../../utils/traoAPI";
import { getGlobalData, setGlobalData } from "../../utils/global";
import { go, msg } from "../../utils/traoAPI";
class Initiate extends Component<any, any> {
constructor(props) {
@ -54,7 +52,7 @@ class Initiate extends Component<any, any> {
const menu = Taro.getMenuButtonBoundingClientRect();
this.setState({ menu });
if (!getGlobalData("token")) {
if (!Taro.getStorageSync("token")) {
await this.WCUserLogin();
Taro.setStorageSync("isWelcome", true);
await this.initData();
@ -89,9 +87,7 @@ class Initiate extends Component<any, any> {
this.setState({ url });
}
} else {
Toast_.fail({
message: "获取首页视频失败!",
});
msg("获取首页视频失败!");
}
}
@ -108,7 +104,6 @@ class Initiate extends Component<any, any> {
const { code } = await Taro.login();
const { data } = await WCUserLogin({ code });
if (data.code === 200) {
// setGlobalData("token", data.data.token);
Taro.setStorageSync("token", data.data.token);
Taro.setStorageSync("mobile", data.data.mobile);
this.props.userRefresh(data.data);
@ -190,8 +185,6 @@ class Initiate extends Component<any, any> {
</SwiperItem>
</Swiper>
</View>
<Toast_ />
</Block>
);
}
@ -199,6 +192,7 @@ class Initiate extends Component<any, any> {
const mapStateToProps = (state) => ({
mobile: state.userInfo.mobile,
token: state.global.token,
});
const mapDispatchToProps = (dispatch) => ({
userRefresh(value) {

@ -44,7 +44,6 @@ class Login extends Component<any, any> {
};
render() {
let { name } = this.state;
return (
<Block>
<Image

@ -52,3 +52,10 @@ page {
margin-top: 20rpx;
}
}
// 上拉加载
.upDragBox {
margin-top: 10rpx;
text-align: center;
}

@ -1,16 +1,27 @@
import { MpSplashDetail, WCUserLogin } from "../../utils/Interface";
import { Component, PropsWithChildren, useEffect, useState } from "react";
import Taro from "@tarojs/taro";
import { Block, View, Text, Image, Button } from "@tarojs/components";
import "./message.less";
import {
Block,
View,
Text,
Image,
Button,
ScrollView,
} from "@tarojs/components";
/** 自定义组件 **/
import Navbar from "../../components/navbar/navbar";
/** 自定义组件 **/
// import { PullToRefresh, IPullToRefreshProps } from "@antmjs/vantui";
import { Loading } from "@antmjs/vantui";
import "@antmjs/vantui/es/loading/index.css";
import { GetHasBeenRead, GetMessageList } from "../../utils/Interface";
import "./message.less";
export default class Message extends Component<any, any> {
constructor(props) {
super(props);
@ -19,6 +30,13 @@ export default class Message extends Component<any, any> {
list: [],
pageNum: 1,
pageSize: 10,
scrollTop: 0,
// downText: "下拉刷新",
pullText: "上拉加载更多",
isBottom: false, // 是否触底
start_p: {},
scrollY: true,
dargState: 0, //刷新状态 0不作操做 1刷新 -1加载更多
};
}
@ -64,40 +82,241 @@ export default class Message extends Component<any, any> {
}
};
// onRefresh: IPullToRefreshProps["onRefresh"] = () => {
// return new Promise((resolve) => {
// setTimeout(() => {
// resolve(undefined);
// }, 1000);
// });
// };
// _onscroll = (e) => this.setTop(e.detail.scrollTop);
// setTop = (value) => {
// console.log("setTop", value);
// };
/*** 上拉加载 ***/
reduction = () => {
//还原初始设置
const time = 0.5;
this.setState({
// dargState: 0,
scrollY: true,
});
setTimeout(() => {
this.setState({
pullText: "上拉加载更多",
// downText: "下拉刷新",
});
}, time * 1000);
};
touchStart = (e) => {
this.setState({
start_p: e.touches[0],
});
};
touchmove = (e) => {
let move_p = e.touches[0], //移动时的位置
deviationX = 0.3, //左右偏移量(超过这个偏移量不执行下拉操做)
deviationY = 70, //拉动长度(低于这个值的时候不执行)
maxY = 100; //拉动的最大高度
let start_x = this.state.start_p.clientX,
start_y = this.state.start_p.clientY,
move_x = move_p.clientX,
move_y = move_p.clientY;
//获得偏移数值
let dev = Math.abs(move_x - start_x) / Math.abs(move_y - start_y);
if (dev < deviationX) {
//当偏移数值大于设置的偏移数值时则不执行操做
let pY = Math.abs(move_y - start_y) / 3.5; //拖动倍率(使拖动的时候有粘滞的感受--试了不少次 这个倍率恰好)
if (move_y - start_y > 0) {
//下拉操做
if (pY >= deviationY) {
this.setState({ dargState: 1, downText: "释放刷新" });
} else {
// this.setState({ dargState: 0, downText: "下拉刷新" });
}
if (pY >= maxY) {
pY = maxY;
}
this.setState({
scrollY: false, //拖动的时候禁用
});
}
if (start_y - (move_y + 100) > 0) {
//上拉操做
// console.log("上拉操做");
if (pY >= deviationY) {
this.setState({ dargState: -1, pullText: "释放加载更多" });
} else {
// this.setState({ dargState: 0, pullText: "上拉加载更多" });
}
}
}
};
pull = () => {
//上拉
console.log("上拉");
// this.props.onPull()
};
down = () => {
//下拉
console.log("下拉");
// this.props.onDown()
};
ScrollToUpper = () => {
//滚动到顶部事件
console.log("滚动到顶部事件");
// this.props.Upper()
};
ScrollToLower = () => {
//滚动到底部事件
console.log("滚动到底部事件");
// this.props.Lower()
};
touchEnd = (e) => {
if (this.state.dargState === 1) {
this.down();
} else if (this.state.dargState === -1) {
this.pull();
}
this.reduction();
};
/*** 上拉加载 ***/
// onPullDownRefresh = (e) => {
// console.log("onPullDownRefresh", e);
// };
render() {
let { list } = this.state;
let { list, scrollTop, dargState, pullText } = this.state;
return (
<Block>
<Navbar isBack={true}></Navbar>
{/* <View> */}
{/* <PullToRefresh disable={scrollTop > 0} onRefresh={this.onRefresh}>
<ScrollView
onTouchMove={this.touchmove}
onTouchEnd={this.touchEnd}
onTouchStart={this.touchStart}
onScrollToUpper={this.ScrollToUpper}
onScrollToLower={this.ScrollToLower}
className="dragUpdata"
scrollY={this.state.scrollY}
scrollWithAnimation
>
<View style={{ padding: "0 12px" }}>
{new Array(20).fill(1).map((_, index) => (
<View
style={{
padding: 12,
background: "#fff",
marginBottom: 12,
}}
key={`PullToRefresh${index}`}
>
{index}
</View>
))}
</View>
</ScrollView>
</PullToRefresh>
<View className="upDragBox">
{dargState === 0 ? (
"上拉加载更多"
) : (
<Loading size="24px">...</Loading>
)}
</View>
</View> */}
<View style="padding-top: 13rpx">
<ScrollView
onTouchMove={this.touchmove}
onTouchEnd={this.touchEnd}
onTouchStart={this.touchStart}
onScrollToUpper={this.ScrollToUpper}
onScrollToLower={this.ScrollToLower}
className="dragUpdata"
scrollY={this.state.scrollY}
scrollWithAnimation
>
<View style={{ padding: "0 12px" }}>
<View className="message">
{list.map((item: any) => {
return (
<View
className="infobox1"
onClick={this.godetail}
key={item.id}
>
<View className="info1 flex aitems sb">
<View className="left flex aitems">
<View className="icon">
<Image
src={require("../../img/logos.png")}
mode="aspectFill"
/>
</View>
<View className="tip1"></View>
</View>
<View className="right">{item.createTime}</View>
</View>
<View className="info2">
<View className="content">
<Text>
[]: {item.content ? item.content : ""}
</Text>
</View>
</View>
</View>
);
})}
</View>
</View>
</ScrollView>
<View className="upDragBox">
{dargState === 0 ? (
"上拉加载更多"
) : (
<Loading size="24px">...</Loading>
)}
</View>
</View>
{/*
<View className="message" style="padding-top: 13rpx">
{list.map((item: any, key: number) => {
{list.map((item: any) => {
return (
<Block>
<View className="infobox1" onClick={this.godetail} key={key}>
<View className="info1 flex aitems sb">
<View className="left flex aitems">
<View className="icon">
<Image
src={require("../../img/logos.png")}
mode="aspectFill"
/>
</View>
<View className="tip1"></View>
<View className="infobox1" onClick={this.godetail} key={item.id}>
<View className="info1 flex aitems sb">
<View className="left flex aitems">
<View className="icon">
<Image
src={require("../../img/logos.png")}
mode="aspectFill"
/>
</View>
<View className="right">{item.createTime}</View>
<View className="tip1"></View>
</View>
<View className="info2">
<View className="content">
<Text>
[]: {item.content ? item.content : ""}
</Text>
</View>
<View className="right">{item.createTime}</View>
</View>
<View className="info2">
<View className="content">
<Text>
[]: {item.content ? item.content : ""}
</Text>
</View>
</View>
</Block>
</View>
);
})}
</View>
</View> */}
<View style="height: 100rpx;"></View>

@ -2,6 +2,13 @@
padding: 30rpx;
word-break: break-all;
box-sizing: border-box;
table {
border-collapse: collapse; /* 边框合并 */
}
td {
text-align: center; /* 字体居中 */
border: 1px solid #ccc; /* 边框样式 */
}
}
pre {

@ -44,9 +44,10 @@ export default class PrivacyPolicy extends Component<any, any> {
<View className="nodes">
<RichText
nodes={
"<pre style=' white-space: pre-wrap;word-wrap: break-word;'>" +
nodes +
"</pre>"
nodes
// "<pre style=' white-space: pre-wrap;word-wrap: break-word;'>" +
// nodes +
// "</pre>"
}
/>
</View>

@ -63,7 +63,7 @@ export default class Register extends Component<any, any> {
// skipby: options.skipby
// })
// }
// if (!app.globalData.token) {
// if (!Taro.getStorageSync("token")) {
// await this.WCUserLogin();
// }

@ -5,8 +5,8 @@ import Taro from "@tarojs/taro";
// 引入 Swiper, SwiperItem 组件
import { View, Block, Textarea, Image } from "@tarojs/components";
import { Toast } from "@antmjs/vantui";
const Toast_ = Toast.createOnlyToast();
// import { Toast } from "@antmjs/vantui";
// const Toast_ = Toast.createOnlyToast();
import { go, loading, msg } from "../../utils/traoAPI";
@ -343,7 +343,7 @@ class User extends Component<any, any> {
close={this.closeCustomerService}
confirm={this.confirmCustomerService}
/>
<Toast_ />
{/* <Toast_ /> */}
</Block>
);
}

@ -97,7 +97,7 @@ class UserInfo extends Component<any, any> {
}
async onLoad() {
if (!getGlobalData("token")) {
if (!Taro.getStorageSync("token")) {
// await this.WCUserLogin();
}
const menu = Taro.getMenuButtonBoundingClientRect();

@ -89,7 +89,7 @@ class UserInfoDetail extends Component<any, any> {
}
async onLoad() {
if (!getGlobalData("token")) {
if (!Taro.getStorageSync("token")) {
// await this.WCUserLogin();
}
const menu = Taro.getMenuButtonBoundingClientRect();

@ -0,0 +1,20 @@
import Taro from "@tarojs/taro";
import { createSlice } from "@reduxjs/toolkit";
// 全局变量
const globalReducer = createSlice({
name: "global", // store的名字
initialState: {
domain: "http://110.41.134.131:8080", // 请求地址
token: "",
},
reducers: {
setToken(state, { payload }) {
// Taro.setStorageSync.setItem("token", payload);
state.token = payload;
},
},
});
export const { setToken } = globalReducer.actions;
export default globalReducer.reducer;

@ -1,8 +1,6 @@
import Taro from "@tarojs/taro";
import { createSlice } from "@reduxjs/toolkit";
import { RefreshWxUserInfo } from "../../utils/Interface";
const userInfoReducer = createSlice({
name: "userInfo", // store的名字
initialState: {

@ -3,6 +3,7 @@ import { configureStore } from "@reduxjs/toolkit";
import counterReducer from "./features/counter";
import navigationReducer from "./features/navigation";
import userInfoReducer from "./features/userInfo";
import globalReducer from "./features/global";
const store = configureStore({
reducer: {
@ -10,6 +11,7 @@ const store = configureStore({
counter: counterReducer,
navigation: navigationReducer,
userInfo: userInfoReducer,
global: globalReducer,
},
});

@ -173,6 +173,24 @@ export const GetIntegralRule = (data) => {
method: "get",
});
};
export const GetIsAttentionOfficialAccount = (data) => {
// 查询用户是否关注公众号
return Ajax({
url: "/hzwx/noRemind/isAttentionOfficialAccount",
data,
method: "get",
});
};
export const GetOfficialAccount = (data) => {
// 查询用户是否关闭提醒关注公众号
return Ajax({
url: "/hzwx/noRemind/getOfficialAccount",
data,
method: "get",
});
};
//
///////////

@ -0,0 +1,109 @@
import Taro from "@tarojs/taro";
/*
* @param {string} tempFilePath 图片路径
* @returns 图片信息
*/
async function getImgInfo(tempFilePath) {
try {
let image = await new Promise((resolve, reject) => {
Taro.getImageInfo({
src: tempFilePath,
success(res) {
let imgInfo = {
type: res.type,
height: res.height,
width: res.width,
path: res.path,
};
resolve(imgInfo);
},
fail(err) {
reject(err);
},
});
});
return image;
} catch (err) {
console.log(err);
}
}
/**
* 图片压缩
* @param {object} file 图片信息widthheighttypepath
* @param {string} canvasId canvas的id名
* @param {object} config 限制最大宽高
* @returns 压缩完成后的图片path
*/
async function contraction(
file,
canvasId,
config = { maxWidth: 2048, maxHeight: 1536 }
// config = { maxWidth: 1024, maxHeight: 768 }
) {
try {
let ctxInfo = await new Promise((resolve, reject) => {
// 获取图片原始宽高
let width = file.width;
let height = file.height;
// 计算图片当前大小和目标大小的比例:目标大小 / 图片当前大小
// 根据比例调整图片的尺寸:
// 新宽度 = 原始宽度 * √(目标大小 / 图片当前大小)
// 新高度 = 原始高度 * √(目标大小 / 图片当前大小)
// 宽高同比例调整
// 宽度 > 最大限宽 -> 重置尺寸
if (width > config.maxWidth) {
const ratio = config.maxWidth / width;
width = config.maxWidth;
height = height * ratio;
}
// 高度 > 最大限高度 -> 重置尺寸
if (height > config.maxHeight) {
const ratio = config.maxHeight / height;
width = width * ratio;
height = config.maxHeight;
}
// 获取canvas元素
const query = this.createSelectorQuery();
let dom = query.select(`#${canvasId}`);
dom.fields({ node: true, size: true }).exec((res) => {
// Canvas 对象
const canvas = res[0].node;
// 渲染上下文
const ctx = canvas.getContext("2d");
// 根据设备像素比处理尺寸 = 大小 * 设备像素
const dpr = Taro.getSystemInfoSync().pixelRatio;
canvas.width = width * dpr;
canvas.height = height * dpr;
ctx.scale(dpr, dpr);
//创建img对象
let img = canvas.createImage();
img.src = file.path; // 给图片添加路径
//图片加载完毕
img.onload = function () {
// 将图片绘制到 canvas
ctx.drawImage(img, 0, 0, width, height);
// 生成图片
Taro.canvasToTempFilePath({
canvas,
x: 0,
y: 0,
destWidth: width,
destHeight: height,
success(res) {
resolve(res); // 生成临时文件路径
},
});
};
});
});
return ctxInfo;
} catch (err) {
console.log(err);
}
}

@ -1,21 +1,25 @@
import { back, showModal } from "./traoAPI";
import { WCUserLogin } from "./Interface";
import { getGlobalData, setGlobalData } from "./global";
// import { getGlobalData, setGlobalData } from "./global";
import Taro from "@tarojs/taro";
import formdata from "./wx-formdata/formData";
import store from "../store";
const global = store.getState().global;
const global_requestUrlList = []; // 全局正在请求的url地址防止多次点击
export const Ajax = (params) => {
const app = Taro.getApp();
// const domain = getGlobalData("domain")
const domain = getGlobalData("domain") || "http://192.168.10.147:80";
const domain = global.domain;
// console.log("Ajaxdomain", app, domain);
// Taro.showLoading({
// title: '请求中...',
// mask: true
// });
// 防止多次点击
const requestUrlList = getGlobalData("requestUrlList") || [];
const requestUrlList = global_requestUrlList;
const whiteList = []; // 白名单
if (
requestUrlList.indexOf(params.url) > -1 &&
@ -30,7 +34,6 @@ export const Ajax = (params) => {
url: domain + params.url,
method: params.method || "GET",
header: {
// Authorization: "Bearer " + getGlobalData("token") || "",
Authorization: "Bearer " + Taro.getStorageSync("token"),
...params.header,
},
@ -43,8 +46,7 @@ export const Ajax = (params) => {
content: "登录已过期,请重新登录",
showCancel: false,
}).then((res) => {
setGlobalData("token", null);
sessionStorage.setItem("token", null);
Taro.clearStorage(); // 清空所有缓存
Taro.reLaunch({
// url: "/pages/login/login",
@ -80,7 +82,7 @@ export const Ajax = (params) => {
}).then(() => {
reject(res);
if (res.data.code == 403 || res.data.msg === "登录状态已过期") {
setGlobalData("token", null);
sessionStorage.setItem("token", null);
Taro.reLaunch({
// url: "/pages/login/login",
url: "/pages/initiate/initiate",
@ -104,7 +106,7 @@ export const Ajax = (params) => {
},
complete() {
Taro.hideLoading();
const requestUrlList = getGlobalData("requestUrlList");
const requestUrlList = global_requestUrlList;
const newRequestUrlList = requestUrlList.splice(
requestUrlList.indexOf(params.url),
1
@ -116,7 +118,7 @@ export const Ajax = (params) => {
export const AjaxuploadFile = (params) => {
const app = Taro.getApp();
const domain = getGlobalData("domain");
const domain = global.domain;
// Taro.showLoading({
// title: "请求中...",
// mask: true,
@ -168,10 +170,10 @@ export const AjaxuploadFile = (params) => {
export const AjaxFormData = (params) => {
const app = Taro.getApp();
const domain = getGlobalData("domain");
const domain = global.domain;
// 防止多次点击
const requestUrlList = getGlobalData("requestUrlList") || [];
const requestUrlList = global_requestUrlList;
const whiteList = ["/Api/MessageList"];
if (
requestUrlList.indexOf(params.url) > -1 &&
@ -186,7 +188,6 @@ export const AjaxFormData = (params) => {
url: domain + params.url,
method: params.method || "GET",
header: {
// Authorization: "Bearer " + getGlobalData("token") || "",
Authorization: "Bearer " + Taro.getStorageSync("token"),
...params.header,
"content-type": params.data.contentType,
@ -200,7 +201,7 @@ export const AjaxFormData = (params) => {
content: "登录已过期,请重新登录",
showCancel: false,
}).then((res) => {
setGlobalData("token", null);
sessionStorage.setItem("token", null);
Taro.clearStorage(); // 清空所有缓存
Taro.reLaunch({
url: "/pages/initiate/initiate",
@ -230,7 +231,7 @@ export const AjaxFormData = (params) => {
}).then(() => {
reject(res);
if (res.data.code == 403 || res.data.msg === "登录状态已过期") {
setGlobalData("token", null);
sessionStorage.setItem("token", null);
Taro.reLaunch({
url: "/pages/initiate/initiate",
});
@ -253,7 +254,7 @@ export const AjaxFormData = (params) => {
},
complete() {
Taro.hideLoading();
const requestUrlList = getGlobalData("requestUrlList");
const requestUrlList = global_requestUrlList;
const newRequestUrlList = requestUrlList.splice(
requestUrlList.indexOf(params.url),
1

Loading…
Cancel
Save