104 lines
2.5 KiB
JavaScript
104 lines
2.5 KiB
JavaScript
|
|
/**
|
|
* 解析url参数
|
|
* @example ?id=12345&a=b
|
|
* @return Object {id:12345,a:b}
|
|
*/
|
|
function urlParse(url) {
|
|
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;
|
|
}
|
|
|
|
const getNetworkType = () => {
|
|
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`,
|
|
});
|
|
}
|
|
}
|
|
},
|
|
});
|
|
};
|
|
|
|
const throttle = (fn, that, gapTime) => {
|
|
// 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;
|
|
}
|
|
};
|
|
|
|
/**
|
|
* 计算传秒数的倒计时【天、时、分、秒】
|
|
* @param seconds
|
|
* @returns {{day : *, hours : *, minutes : *, seconds : *}}
|
|
*/
|
|
const countTimeDown = (seconds) => {
|
|
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)),
|
|
};
|
|
};
|
|
|
|
/**
|
|
* 计算当前时间到第二天0点的倒计时[秒]
|
|
* @returns {number}
|
|
*/
|
|
const theNextDayTime = () => {
|
|
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);
|
|
};
|
|
|
|
export {
|
|
getNetworkType,
|
|
throttle,
|
|
countTimeDown,
|
|
theNextDayTime,
|
|
};
|