From 18ef2ccc8426829dd7f5d6cd555d840f8b10c809 Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Fri, 23 May 2025 14:26:03 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/claimAndRefund/receive.js | 6 +- src/api/cost/cost.js | 4 +- .../picking/apply/component/AddPicking1.vue | 5 ++ .../claimAndreturn/picking/outbound/index.vue | 87 ++++++++++++++++--- .../csotSettlement/component/monthRecord.vue | 7 +- 5 files changed, 92 insertions(+), 17 deletions(-) diff --git a/src/api/claimAndRefund/receive.js b/src/api/claimAndRefund/receive.js index 192c997..ef48f65 100644 --- a/src/api/claimAndRefund/receive.js +++ b/src/api/claimAndRefund/receive.js @@ -279,20 +279,22 @@ export function getDetailsByTypeId(query) { } // 领料出库 编码出库 保存 -export function submitOut(params) { +export function submitOut(params, headers = {}) { return request({ url: '/material/base/leaseOutDetails/submitOutRfid', method: 'post', data: params, + headers: headers }) } // 领料出库 数量出库 保存 -export function submitNumOut(params) { +export function submitNumOut(params, headers = {}) { return request({ url: '/material/base/leaseOutDetails/submitOutRfid', method: 'post', data: params, + headers: headers }) } diff --git a/src/api/cost/cost.js b/src/api/cost/cost.js index 05b0759..3f33109 100644 --- a/src/api/cost/cost.js +++ b/src/api/cost/cost.js @@ -73,7 +73,9 @@ export const submitFeeBearApi = (params) => { } /** 获取月结记录接口*/ export const getMonthRecordApi = (params) => { - return request.post('/material/sltAgreementInfo/getSltInfoMonth', params) + return request.get('/material/sltAgreementInfo/getSltInfoMonth', { + params + }) } /** 确认结算接口所有结算*/ diff --git a/src/views/claimAndreturn/picking/apply/component/AddPicking1.vue b/src/views/claimAndreturn/picking/apply/component/AddPicking1.vue index c10ff3e..3f036bd 100644 --- a/src/views/claimAndreturn/picking/apply/component/AddPicking1.vue +++ b/src/views/claimAndreturn/picking/apply/component/AddPicking1.vue @@ -993,6 +993,9 @@ export default { if (item.preNum == '') { this.$message.error('请填写预领数量') throw new Error() + }else if (item.preNum < 0) { + this.$message.error('预领数量不能小于0') + throw new Error() } }) } catch (e) { @@ -1171,6 +1174,7 @@ export default { num, companyId, unitCn: unitName, + preNum: 1, typeCn: deviceTypeList[z].pathLabels[2], guigeCn: deviceTypeList[z].pathLabels[3], }) @@ -1180,6 +1184,7 @@ export default { num, companyId, unitCn: unitName, + preNum: 1, typeCn: deviceTypeList[z].pathLabels[2], guigeCn: deviceTypeList[z].pathLabels[3], } diff --git a/src/views/claimAndreturn/picking/outbound/index.vue b/src/views/claimAndreturn/picking/outbound/index.vue index 7d8267f..377701a 100644 --- a/src/views/claimAndreturn/picking/outbound/index.vue +++ b/src/views/claimAndreturn/picking/outbound/index.vue @@ -645,6 +645,9 @@ export default { timeTemp: '', // 存储时间 showSelect: true, rowTemp: {}, // 临时存储行数据 + + submitToken: null, // 提交令牌 + isSubmittingNumOut: false, // 标识是否正在提交 queryRules: { createTime: [ { @@ -670,10 +673,18 @@ export default { this.getUnitList() this.getProList() this.equipmentType() - this.getList() }, methods: { + + generateUUID() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + const r = Math.random() * 16 | 0; + const v = c === 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }); + }, + setRowClassName({ row }) { // 如果 maWholeVos 为空,则添加一个 class 来隐藏展开箭头 if (!row.maWholeVos) { @@ -791,6 +802,10 @@ export default { this.outNum = row.outNum this.outQuery.typeId = row.typeId this.outObj = row + // 生成唯一 token + this.submitToken = this.generateUUID(); + // // 将 token 存储到 sessionStorage + sessionStorage.setItem('X-Submit-Token', this.submitToken); this.handleOutQuery() }, //数量出库 @@ -822,6 +837,11 @@ export default { this.$set(obj, 'maModel', row.maModel) // 以大代小 规格 this.$set(obj, 'maName', row.maName) // 以大代小 类型 this.outNumList = [obj] + // 生成唯一 token + this.submitToken = this.generateUUID(); + // // 将 token 存储到 sessionStorage + sessionStorage.setItem('X-Submit-Token', this.submitToken); + console.log("token222222",sessionStorage) }, handleOutQuery() { this.outQuery.pageNum = 1 @@ -853,8 +873,15 @@ export default { }, //编码出库保存 saveCodeOut() { + // 如果正在提交,直接返回 + if (this.isSubmittingNumOut){ + this.$modal.msgError('操作正在进行中,请稍后'); + return; + } + this.isSubmittingNumOut = true; this.$refs.codeOutForm.validate(async (valid) => { if (!valid) { + this.isSubmittingNumOut = false; return false } else { if (this.maCodeList.length <= this.outObj.outNum) { @@ -873,43 +900,77 @@ export default { maModel: this.outObj.maModel, maName: this.outObj.maName, createTime: this.codeOutForm.createTime, + token: this.submitToken, // remark: this.outCodeList.find((v) => v.maId == item).remark, } return obj }) console.log(params, '编码出库时参数') - // console.log(params) - submitOut(params).then((response) => { - this.$modal.msgSuccess('出库成功') - this.openCode = false - this.handleDialogQuery() - this.handleQuery() - }) + const headers = { + 'X-Submit-Token': this.submitToken + }; + + try { + const response = await submitOut(params, headers); + this.$modal.msgSuccess('出库成功'); + this.openCode = false; + this.handleDialogQuery(); + this.handleQuery(); + sessionStorage.removeItem('X-Submit-Token'); + } catch (error) { + this.$modal.msgError('出库失败'+response.msg); + } finally { + // 请求完成,重置 token + this.isSubmittingNumOut = false; + } } else { - this.$modal.msgError('所选机具编码已超出出库数量!') + this.$modal.msgError('所选机具编码已超出出库数量!'); + this.isSubmittingNumOut = false; } } }) }, //数量出库保存 saveNumOut() { - this.$refs.numOutForm.validate(async (valid) => { + // 如果正在提交,直接返回 + if (this.isSubmittingNumOut){ + this.$modal.msgError('操作正在进行中,请稍后'); + return; + } + this.isSubmittingNumOut = true; + this.$refs.numOutForm.validate(async (valid) => { if (!valid) { + this.isSubmittingNumOut = false; return false } else{ this.outNumList[0].carCode = this.numOutForm.carCode this.outNumList[0].remark = this.numOutForm.remark this.outNumList[0].createTime = this.numOutForm.createTime this.outNumList[0].leaseType = this.leaseType + this.outNumList[0].token = this.submitToken let param = this.outNumList - // console.log(param, '数量出库时参数') - submitNumOut(param).then((response) => { + + const headers = { + // 将 token 放入请求头 + 'X-Submit-Token': this.submitToken + }; + + try { + const response = await submitNumOut(param, headers); this.$modal.msgSuccess('出库成功') this.openNum = false this.handleDialogQuery() this.handleQuery() - }) + sessionStorage.removeItem('X-Submit-Token'); + + } catch (error) { + this.$modal.msgError('出库失败'+response.msg); + } finally { + // 请求完成,提交标志位 + this.isSubmittingNumOut = false; + // this.submitToken = null; + } } }) diff --git a/src/views/cost/csotSettlement/component/monthRecord.vue b/src/views/cost/csotSettlement/component/monthRecord.vue index 516c2f3..451787f 100644 --- a/src/views/cost/csotSettlement/component/monthRecord.vue +++ b/src/views/cost/csotSettlement/component/monthRecord.vue @@ -283,7 +283,7 @@ export default { async getMonthRecordList() { this.monthRecordParams.agreementId = this.agreementId // 调后台 Api 获取数据 - const res = await getMonthRecordApi([this.monthRecordParams]) + const res = await getMonthRecordApi(this.monthRecordParams) this.monthRecordList = res.data }, /** 查询 */ @@ -362,6 +362,11 @@ export default { }, /** 时间变化 */ onChangeTime(val) { + if (!val) { + this.monthRecordParams.startTime = '' + this.monthRecordParams.endTime = '' + return + } let startTime = '' if (val.split('-')[1] == 1) { startTime = `${val.split('-')[0] * 1 - 1}-12-21`