diff --git a/src/views/EquipmentServicing/index.vue b/src/views/EquipmentServicing/index.vue index 3f478588..e7afc676 100644 --- a/src/views/EquipmentServicing/index.vue +++ b/src/views/EquipmentServicing/index.vue @@ -60,7 +60,7 @@ > - + @@ -90,7 +90,7 @@ - + diff --git a/src/views/EquipmentSharedLease/order/index.vue b/src/views/EquipmentSharedLease/order/index.vue index dd8d78f8..e9ce65f2 100644 --- a/src/views/EquipmentSharedLease/order/index.vue +++ b/src/views/EquipmentSharedLease/order/index.vue @@ -162,7 +162,7 @@ - 出租方姓名: + 出租单位: {{ item.sellerName }} diff --git a/src/views/EquipmentSharedOrder/order/index.vue b/src/views/EquipmentSharedOrder/order/index.vue index 84ba9eef..2b3f869e 100644 --- a/src/views/EquipmentSharedOrder/order/index.vue +++ b/src/views/EquipmentSharedOrder/order/index.vue @@ -130,7 +130,7 @@ - 出租方姓名: + 出租单位: {{ item.sellerName }} diff --git a/src/views/material/ma/supplier/index.vue b/src/views/material/ma/supplier/index.vue index e4778bd7..6c1fd2fb 100644 --- a/src/views/material/ma/supplier/index.vue +++ b/src/views/material/ma/supplier/index.vue @@ -283,7 +283,9 @@ @@ -313,6 +315,8 @@ loadingTwo: false, + isSubmitting: false, // 新增:标记是否正在提交 + submitDebounce: null, // 防抖计时器 // 是否显示项目部Id showName: false, @@ -637,36 +641,64 @@ this.handleQuery(); }, - //** 提交按钮 */ - submitForm() { - this.$refs["form"].validate(async valid => { - if (valid) { + //** 提交按钮 */ + submitForm() { + // 1. 第一层拦截:正在提交中,直接返回 + if (this.isSubmitting) return; + + // 2. 第二层拦截:防抖,500ms内只允许触发一次 + if (this.submitDebounce) { + clearTimeout(this.submitDebounce); + } + this.submitDebounce = setTimeout(async () => { + try { + // 3. 提前锁定提交状态(关键:移到validate之前) + this.isSubmitting = true; + + // 执行表单验证 + const valid = await new Promise((resolve) => { + this.$refs["form"].validate((valid) => { + resolve(valid); + }); + }); + + if (valid) { + // 核心业务逻辑 if (this.form.supplierId != undefined) { - const reqData = new FormData(); - if(this.businessLicenseListTemp.length!=0){ - await this.getImaUploadEdit(), + const reqData = new FormData(); + if (this.businessLicenseListTemp.length != 0) { + await this.getImaUploadEdit(); + await this.editFacturerTemp(this.form); + await this.deleteFile(); + } else { await this.editFacturerTemp(this.form); await this.deleteFile(); - }else{ - await this.editFacturerTemp(this.form); - await this.deleteFile(); } - } else { - if(this.businessLicenseListTemp.length!=0){ - await this.getImaUpload(), + if (this.businessLicenseListTemp.length != 0) { + await this.getImaUpload(); + await this.addFacturerTemp(this.form); + } else { await this.addFacturerTemp(this.form); - }else{ - await this.addFacturerTemp(this.form); } + } + this.uploadKey = Date.now(); + this.$message.success('提交成功!'); } - } - }); - this.uploadKey = Date.now(); - }, + } catch (error) { + console.error('提交失败:', error); + this.$message.error('提交失败,请重试!'); + } finally { + // 4. 最终解锁,恢复可点击状态 + this.isSubmitting = false; + this.submitDebounce = null; // 清空防抖计时器 + } + }, 500); // 防抖间隔:500ms,可根据需求调整 + }, - async getImaUpload(){ + + async getImaUpload(){ this.businessLicenseFileList = [] const reqData = new FormData() const {fileTwo} = await this.getFileData() diff --git a/src/views/search/order/index.vue b/src/views/search/order/index.vue index 8b4ad01c..84c08bf6 100644 --- a/src/views/search/order/index.vue +++ b/src/views/search/order/index.vue @@ -128,7 +128,7 @@ - 出租方姓名: + 出租单位: {{ item.sellerName }} diff --git a/src/views/system/approval/index.vue b/src/views/system/approval/index.vue index 1b879413..5b96cd20 100644 --- a/src/views/system/approval/index.vue +++ b/src/views/system/approval/index.vue @@ -45,24 +45,25 @@ stripe height="546" > - - - - + + + + + - - + + - - + +