提交表单防抖

master
Eratosici 4 years ago
parent 4c19432334
commit 9d84f113e4

@ -0,0 +1,19 @@
// 防抖 防止表单重复提交
export const Debounce = (fn, t) => {
let delay = t || 300
let timer
return function () {
let args = arguments
if (timer) {
clearTimeout(timer)
}
let callNow = !timer
timer = setTimeout(() => {
timer = null
}, delay)
if (callNow) fn.apply(this, args)
}
}

@ -71,6 +71,7 @@
<script> <script>
import PicUpload from '@/components/pic-upload' import PicUpload from '@/components/pic-upload'
import ProdsSelect from '@/components/prods-select' import ProdsSelect from '@/components/prods-select'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -140,7 +141,7 @@ export default {
} }
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (!valid) { if (!valid) {
return return
@ -162,7 +163,7 @@ export default {
}) })
}) })
}) })
}, }),
// //
deleteRelation () { deleteRelation () {
this.dataForm.relation = null this.dataForm.relation = null

@ -22,7 +22,8 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
export default { import { Debounce } from '@/utils/debounce'
export default {
data () { data () {
return { return {
visible: false, visible: false,
@ -51,7 +52,7 @@
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -73,7 +74,7 @@
}) })
} }
}) })
})
} }
} }
}
</script> </script>

@ -60,6 +60,7 @@
<script> <script>
import { treeDataTranslate, idList } from '@/utils' import { treeDataTranslate, idList } from '@/utils'
import PicUpload from '@/components/pic-upload' import PicUpload from '@/components/pic-upload'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -133,7 +134,7 @@ export default {
this.dataForm.parentId = val[val.length - 1] this.dataForm.parentId = val[val.length - 1]
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
if (this.selectedCategory.length === 1) { if (this.selectedCategory.length === 1) {
this.dataForm.grade = 0 this.dataForm.grade = 0
} }
@ -175,7 +176,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -91,6 +91,7 @@ import ProdTransport from './prod-transport'
import SkuTag from './sku-tag' import SkuTag from './sku-tag'
import SkuTable from './sku-table' import SkuTable from './sku-table'
import TinyMce from '@/components/tiny-mce' import TinyMce from '@/components/tiny-mce'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
@ -186,7 +187,7 @@ export default {
this.dataForm.categoryId = val[val.length - 1] this.dataForm.categoryId = val[val.length - 1]
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (!valid) { if (!valid) {
return return
@ -229,7 +230,7 @@ export default {
}) })
}) })
}) })
}, }),
paramSetPriceAndStocks (param) { paramSetPriceAndStocks (param) {
// //
// param.skuList = this.$refs.prodSpec.getTableSpecData() // param.skuList = this.$refs.prodSpec.getTableSpecData()

@ -49,6 +49,7 @@
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -86,7 +87,7 @@ export default {
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -106,7 +107,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -49,6 +49,7 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -78,7 +79,7 @@ export default {
this.visible = true this.visible = true
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
if (this.dataList[0].prodPropValues) { if (this.dataList[0].prodPropValues) {
let temp = [] let temp = []
for (const key in this.dataList[0].prodPropValues) { for (const key in this.dataList[0].prodPropValues) {
@ -132,7 +133,7 @@ export default {
} }
}) })
}) })
}, }),
clearProdPropValues () { clearProdPropValues () {
if (this.dataList[0].prodPropValues.length === 1) { if (this.dataList[0].prodPropValues.length === 1) {
return return

@ -51,6 +51,7 @@
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -101,7 +102,7 @@ export default {
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate(valid => { this.$refs['dataForm'].validate(valid => {
if (valid) { if (valid) {
let param = this.dataForm let param = this.dataForm
@ -122,7 +123,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -44,8 +44,16 @@
<script> <script>
import TinyMce from '@/components/tiny-mce' import TinyMce from '@/components/tiny-mce'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
var validateTitle = (rule, value, callback) => {
if (!value.trim()) {
this.dataForm.title = ''
} else {
callback()
}
}
return { return {
visible: false, visible: false,
roleList: [], roleList: [],
@ -58,7 +66,8 @@ export default {
}, },
dataRule: { dataRule: {
title: [ title: [
{required: true, message: '公告标题不能为空', trigger: 'blur'} {required: true, message: '公告标题不能为空', trigger: 'blur'},
{ validator: validateTitle, trigger: 'blur' }
] ]
} }
} }
@ -84,7 +93,7 @@ export default {
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -105,7 +114,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -71,6 +71,7 @@
<script> <script>
import { isMobile } from '@/utils/validate' import { isMobile } from '@/utils/validate'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
@ -185,7 +186,7 @@ export default {
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
for (let i = 0; i < this.provinceList.length; i++) { for (let i = 0; i < this.provinceList.length; i++) {
if (this.provinceList[i].areaId === this.dataForm.provinceId) { if (this.provinceList[i].areaId === this.dataForm.provinceId) {
// //
@ -234,7 +235,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -204,6 +204,7 @@
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
import AddOrUpdate from './transcity-add-or-update' import AddOrUpdate from './transcity-add-or-update'
export default { export default {
data () { data () {
@ -363,7 +364,7 @@ export default {
return num < 0 ? 0 : num return num < 0 ? 0 : num
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
for (let i = 1; i < this.dataForm.transfees.length; i++) { for (let i = 1; i < this.dataForm.transfees.length; i++) {
@ -408,7 +409,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -36,6 +36,7 @@
<script> <script>
import { treeDataTranslate } from '@/utils' import { treeDataTranslate } from '@/utils'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -95,7 +96,7 @@ export default {
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
if (!this.dataForm.areaName.trim()) { if (!this.dataForm.areaName.trim()) {
@ -120,7 +121,7 @@ export default {
}) })
} }
}) })
}, }),
handleChange (val) { handleChange (val) {
this.dataForm.parentId = val[val.length - 1] this.dataForm.parentId = val[val.length - 1]
} }

@ -70,6 +70,7 @@
<script> <script>
import { treeDataTranslate, idList } from '@/utils' import { treeDataTranslate, idList } from '@/utils'
import Icon from '@/icons' import Icon from '@/icons'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
var validateUrl = (rule, value, callback) => { var validateUrl = (rule, value, callback) => {
@ -157,7 +158,7 @@
this.dataForm.icon = iconName this.dataForm.icon = iconName
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -186,7 +187,7 @@
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -29,6 +29,7 @@
<script> <script>
import { treeDataTranslate } from '@/utils' import { treeDataTranslate } from '@/utils'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -86,7 +87,7 @@
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -111,7 +112,7 @@
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -28,7 +28,8 @@
</template> </template>
<script> <script>
export default { import { Debounce } from '@/utils/debounce'
export default {
data () { data () {
return { return {
visible: false, visible: false,
@ -77,7 +78,7 @@
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -105,7 +106,7 @@
}) })
} }
}) })
})
} }
} }
}
</script> </script>

@ -40,6 +40,7 @@
<script> <script>
import { isEmail, isMobile } from '@/utils/validate' import { isEmail, isMobile } from '@/utils/validate'
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
var validatePassword = (rule, value, callback) => { var validatePassword = (rule, value, callback) => {
@ -137,7 +138,7 @@
}) })
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -165,7 +166,7 @@
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -87,6 +87,7 @@
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -179,7 +180,7 @@ export default {
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
for (let i = 0; i < this.provinceList.length; i++) { for (let i = 0; i < this.provinceList.length; i++) {
if (this.provinceList[i].areaId === this.dataForm.provinceId) { if (this.provinceList[i].areaId === this.dataForm.provinceId) {
// //
@ -218,7 +219,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

@ -37,6 +37,7 @@
</template> </template>
<script> <script>
import { Debounce } from '@/utils/debounce'
export default { export default {
data () { data () {
return { return {
@ -78,7 +79,7 @@ export default {
} }
}, },
// //
dataFormSubmit () { dataFormSubmit: Debounce(function () {
this.$refs['dataForm'].validate(valid => { this.$refs['dataForm'].validate(valid => {
if (valid) { if (valid) {
this.$http({ this.$http({
@ -102,7 +103,7 @@ export default {
}) })
} }
}) })
} })
} }
} }
</script> </script>

Loading…
Cancel
Save