Browse Source

批量充值提交按钮防止多次点击重复提交

Hongxilin
hongxilin 5 months ago
parent
commit
ae4bcf250d
  1. 37
      vue/gold-system/src/util/index.js
  2. 1
      vue/gold-system/src/views/consume/addConsume.vue
  3. 39
      vue/gold-system/src/views/recharge/addRecharge.vue
  4. 1
      vue/gold-system/src/views/refund/addRefund.vue

37
vue/gold-system/src/util/index.js

@ -1,37 +0,0 @@
// 防抖
function _debounce(fn, delay = 500) {
var timer = null;
return function () {
var _this = this;
var args = arguments;
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(_this, args);
}, delay);
};
}
// 节流
function _throttle(fn, delay = 1000) {
var lastTime, timer, delay;
return function () {
var _this = this;
var args = arguments;
var nowTime = Date.now();
if (lastTime && nowTime - lastTime < delay) {
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
lastTime = nowTime;
fn.apply(_this, args);
}, delay)
} else {
lastTime = nowTime;
fn.apply(_this, args);
}
}
}
export {
_debounce,
_throttle,
}

1
vue/gold-system/src/views/consume/addConsume.vue

@ -7,6 +7,7 @@ import axios from "axios";
import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import _ from 'lodash';
//
const adminData = ref({});

39
vue/gold-system/src/views/recharge/addRecharge.vue

@ -7,8 +7,8 @@ import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import { range, re } from "mathjs";
import { _debounce } from '../../util/index.js';
import * as xlsx from 'xlsx';
import _ from 'lodash';
//
const imageUrl = ref("");
@ -270,8 +270,6 @@ const deleteRecharge = function () {
//
// jwcode
const jwcodeList = ref([]);
// jwcode
const rangeNumber = ref(10);
// jwcode
const getJwcodeList = async function () {
try {
@ -292,30 +290,6 @@ const getJwcodeList = async function () {
//
}
};
//
const loadMore = (n) => {
return () => {
rangeNumber.value += 5;
};
};
//
const filterMethod = _debounce(function (filterVal) {
if (filterVal) {
const filterArr = jwcodeList.value.fliter((item) =>
item.toLowerCase().includes(filterVal.toLowerCase())
);
options.value = filterArr;
} else {
options.value = jwcodeList.value;
}
}, 500);
//
const visibleChange = function (flag) {
if (flag) {
filterMethod();
}
};
//
const batchRechargeVisible = ref(false);
const jwcodeSelectRef = ref(null);
@ -687,7 +661,8 @@ const batchAdd = async function () {
closeBatchRechargeVisible();
};
// 使 _.throttle trailing false
const throttledBatchAdd = _.throttle(batchAdd, 5000, { trailing: false });
//
const batchSettingObj = ref({});
//
@ -925,12 +900,6 @@ onMounted(async function () {
<span v-else>{{ scope.row.jwcode }}</span>
</template> -->
<template #default="scope">
<!-- <el-select v-if="scope.row.showInput" ref="jwcodeSelectRef" filterable clearable v-model="scope.row.jwcode"
placeholder="请选择精网号" style="widows: 110px;" :filter-method="filterMethod"
v-jwcodeLoadmore="loadMore(rangeNumber)" @visible-change="visibleChange">
<el-option v-for="item in jwcodeList.slice(0, rangeNumber)" :key="item" :label="item" :value="item">
</el-option>
</el-select> -->
<el-select-v2 v-if="scope.row.showInput" filterable clearable v-model="scope.row.jwcode"
placeholder="请选择精网号" style="widows: 110px;" :options="jwcodeList">
</el-select-v2>
@ -1055,7 +1024,7 @@ onMounted(async function () {
<el-row>
<div class="batch-btn">
<el-button @click="cancelBatch()"> 取消 </el-button>
<el-button type="primary" @click="batchAdd()"> 提交 </el-button>
<el-button type="primary" @click="throttledBatchAdd()"> 提交 </el-button>
</div>
</el-row>
</el-dialog>

1
vue/gold-system/src/views/refund/addRefund.vue

@ -7,6 +7,7 @@ import axios from "axios";
import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import _ from 'lodash';
const addRe = ref({
typeR: "0",

Loading…
Cancel
Save