购物车步进器增加防抖
parent
a0f1417f42
commit
861bf1eb07
|
@ -180,6 +180,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import * as API_Trade from "@/api/trade";
|
||||
import { debounce } from "@/utils/tools.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -370,7 +371,8 @@ export default {
|
|||
/**
|
||||
* 点击步进器回调
|
||||
*/
|
||||
numChange(val, nums) {
|
||||
numChange: debounce(function (val, nums) {
|
||||
// 需要防抖的内容
|
||||
// #ifdef MP-WEIXIN
|
||||
if (nums && nums == "1") {
|
||||
val.num++;
|
||||
|
@ -381,8 +383,7 @@ export default {
|
|||
}
|
||||
// #endif
|
||||
this.updateSkuNumFun(val.goodsSku.id, val.num);
|
||||
},
|
||||
|
||||
}, 1000),
|
||||
/**
|
||||
* 去结算
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
/**
|
||||
* 解析url参数
|
||||
* @example ?id=12345&a=b
|
||||
|
@ -9,7 +8,7 @@ function urlParse(url) {
|
|||
let reg = /[?&][^?&]+=[^?&]+/g;
|
||||
let arr = url.match(reg);
|
||||
if (arr) {
|
||||
arr.forEach((item) => {
|
||||
arr.forEach(item => {
|
||||
let tempArr = item.substring(1).split("=");
|
||||
let key = decodeURIComponent(tempArr[0]);
|
||||
let val = decodeURIComponent(tempArr.splice(1).join("="));
|
||||
|
@ -21,28 +20,28 @@ function urlParse(url) {
|
|||
|
||||
const getNetworkType = () => {
|
||||
uni.getNetworkType({
|
||||
success: (res) => {
|
||||
success: res => {
|
||||
if (res.networkType === "none") {
|
||||
uni.showToast({
|
||||
title: "网络好像有点问题,请检查后重试!",
|
||||
duration: 2000,
|
||||
icon: "none",
|
||||
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`,
|
||||
url: `/pages/empty/empty?type=wifi`
|
||||
});
|
||||
}
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: `/pages/empty/empty?type=wifi`,
|
||||
url: `/pages/empty/empty?type=wifi`
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -64,8 +63,8 @@ const throttle = (fn, that, gapTime) => {
|
|||
* @param seconds
|
||||
* @returns {{day : *, hours : *, minutes : *, seconds : *}}
|
||||
*/
|
||||
const countTimeDown = (seconds) => {
|
||||
const leftTime = (time) => {
|
||||
const countTimeDown = seconds => {
|
||||
const leftTime = time => {
|
||||
if (time < 10) time = "0" + time;
|
||||
return time + "";
|
||||
};
|
||||
|
@ -73,7 +72,7 @@ const countTimeDown = (seconds) => {
|
|||
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)),
|
||||
seconds: leftTime(parseInt(seconds % 60, 10))
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -94,10 +93,26 @@ const theNextDayTime = () => {
|
|||
).getTime() - nowDate.getTime();
|
||||
return parseInt(time / 1000);
|
||||
};
|
||||
|
||||
export {
|
||||
getNetworkType,
|
||||
throttle,
|
||||
countTimeDown,
|
||||
theNextDayTime,
|
||||
// 防抖
|
||||
const debounce = (fn, delay) => {
|
||||
// 时间期限
|
||||
var delays = delay || 200;
|
||||
var timer;
|
||||
// 闭包
|
||||
return function() {
|
||||
// 考虑作用域,上下文环境,apply需要用到this对象
|
||||
var th = this;
|
||||
// 接收的参数用 ES6 中的 rest 参数统一存储到变量 args 中。arguments就是传入的参数数组,而且个数可以不确定的传回给fn(不确定函数到底有多少个参数,用arguments来接收)
|
||||
var args = arguments;
|
||||
// 判断还在定时,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
timer = setTimeout(function() {
|
||||
timer = null;
|
||||
// 执行方法
|
||||
fn.apply(th, args);
|
||||
}, delays);
|
||||
};
|
||||
};
|
||||
export { getNetworkType, throttle, countTimeDown, theNextDayTime, debounce };
|
||||
|
|
Loading…
Reference in New Issue