fix[complex-table]: double-clicking the Confirm button triggers the request twice

pull/3996/head
codersjj 2022-05-11 20:26:33 +08:00
parent 0caa975ee2
commit a8c55f84f1
1 changed files with 7 additions and 2 deletions

View File

@ -128,7 +128,7 @@
<el-button @click="dialogFormVisible = false">
Cancel
</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">
<el-button :loading="confirmLoading" type="primary" @click="dialogStatus==='create'?createData():updateData()">
Confirm
</el-button>
</div>
@ -223,7 +223,8 @@ export default {
timestamp: [{ type: 'date', required: true, message: 'timestamp is required', trigger: 'change' }],
title: [{ required: true, message: 'title is required', trigger: 'blur' }]
},
downloadLoading: false
downloadLoading: false,
confirmLoading: false
}
},
created() {
@ -282,6 +283,7 @@ export default {
this.resetTemp()
this.dialogStatus = 'create'
this.dialogFormVisible = true
this.confirmLoading = false
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
@ -289,6 +291,7 @@ export default {
createData() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.confirmLoading = true
this.temp.id = parseInt(Math.random() * 100) + 1024 // mock a id
this.temp.author = 'vue-element-admin'
createArticle(this.temp).then(() => {
@ -309,6 +312,7 @@ export default {
this.temp.timestamp = new Date(this.temp.timestamp)
this.dialogStatus = 'update'
this.dialogFormVisible = true
this.confirmLoading = false
this.$nextTick(() => {
this.$refs['dataForm'].clearValidate()
})
@ -316,6 +320,7 @@ export default {
updateData() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.confirmLoading = true
const tempData = Object.assign({}, this.temp)
tempData.timestamp = +new Date(tempData.timestamp) // change Thu Nov 30 2017 16:41:05 GMT+0800 (CST) to 1512031311464
updateArticle(tempData).then(() => {