lilishop-uniapp/utils/tools.js

104 lines
2.5 KiB
JavaScript
Raw Normal View History

2021-05-13 11:03:32 +08:00
/**
* 解析url参数
* @example ?id=12345&a=b
* @return Object {id:12345,a:b}
*/
function urlParse(url) {
2021-06-07 11:15:47 +08:00
let obj = {};
let reg = /[?&][^?&]+=[^?&]+/g;
let arr = url.match(reg);
if (arr) {
arr.forEach((item) => {
let tempArr = item.substring(1).split("=");
let key = decodeURIComponent(tempArr[0]);
let val = decodeURIComponent(tempArr.splice(1).join("="));
obj[key] = val;
});
}
return obj;
}
2021-05-13 11:03:32 +08:00
const getNetworkType = () => {
2021-06-07 11:15:47 +08:00
uni.getNetworkType({
success: (res) => {
if (res.networkType === "none") {
uni.showToast({
title: "网络好像有点问题,请检查后重试!",
duration: 2000,
icon: "none",
});
let pages = getCurrentPages();
if (pages.length) {
let route = pages[pages.length - 1].route;
if (route !== "pages/empty/empty") {
uni.navigateTo({
url: `/pages/empty/empty?type=wifi`,
});
}
} else {
uni.navigateTo({
url: `/pages/empty/empty?type=wifi`,
});
}
}
},
});
};
2021-05-13 11:03:32 +08:00
const throttle = (fn, that, gapTime) => {
2021-06-07 11:15:47 +08:00
// export function throttle(fn, gapTime) {
if (gapTime == null || gapTime == undefined) {
gapTime = 1800;
}
let _lastTime = that.lastTime;
let _nowTime = +new Date();
if (_nowTime - _lastTime > gapTime || !_lastTime) {
fn.apply(that, arguments); //将this和参数传给原函数
that.lastTime = _nowTime;
}
};
2021-05-13 11:03:32 +08:00
/**
* 计算传秒数的倒计时
* @param seconds
* @returns {{day : *, hours : *, minutes : *, seconds : *}}
*/
const countTimeDown = (seconds) => {
2021-06-07 11:15:47 +08:00
const leftTime = (time) => {
if (time < 10) time = "0" + time;
return time + "";
};
return {
day: leftTime(parseInt(seconds / 60 / 60 / 24, 10)),
hours: leftTime(parseInt((seconds / 60 / 60) % 24, 10)),
minutes: leftTime(parseInt((seconds / 60) % 60, 10)),
seconds: leftTime(parseInt(seconds % 60, 10)),
};
};
2021-05-13 11:03:32 +08:00
/**
* 计算当前时间到第二天0点的倒计时[]
* @returns {number}
*/
const theNextDayTime = () => {
2021-06-07 11:15:47 +08:00
const nowDate = new Date();
const time =
new Date(
nowDate.getFullYear(),
nowDate.getMonth(),
nowDate.getDate() + 1,
0,
0,
0
).getTime() - nowDate.getTime();
return parseInt(time / 1000);
};
2021-05-13 11:03:32 +08:00
export {
2021-06-07 11:15:47 +08:00
getNetworkType,
throttle,
countTimeDown,
theNextDayTime,
};