From c0bed77a5d5bef586937f1425d490a21ce62a781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8F=9C?= <43331987+JiaLiBai@users.noreply.github.com> Date: Sun, 13 Jul 2025 17:40:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=96=E7=95=A5=E6=A8=A1=E6=9D=BF=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=86=B2=E7=AA=81=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ems/dzjk/clpz/xftg/AddTemplate.vue | 63 +++++++++++++------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/src/views/ems/dzjk/clpz/xftg/AddTemplate.vue b/src/views/ems/dzjk/clpz/xftg/AddTemplate.vue index 4acb3f2..3daea59 100644 --- a/src/views/ems/dzjk/clpz/xftg/AddTemplate.vue +++ b/src/views/ems/dzjk/clpz/xftg/AddTemplate.vue @@ -41,8 +41,8 @@ start: '00:00', step: '01:00', end: '23:00', + minTime: formInline.startTime }"> - @@ -174,7 +174,7 @@ export default { }, watch: { "formInline.startTime":{ - handler(newVal,oldVal){ + handler(newVal){ if(newVal && this.formInline.endTime){ const endTime = parseInt((this.formInline.endTime).split(':')[0] || 0) const startTime =parseInt(newVal.split(':')[0]) @@ -248,32 +248,53 @@ export default { this.$nextTick(() => {this.cancelAddTime()}) }) }, - deleteRow(index, table){ + deleteRow(index){ this.tableData.splice(index,1) }, saveDialog() { this.$refs.addTempForm.validate(valid => { if (!valid) return - const {templateName,sdcLimit,sdcDown,sdcUp} = this.formData - const {siteId,updateStrategyId} =this.$home - const {tableData} = this - if(this.mode==='edit'){ - editStrategyTemp({siteId,strategyId:updateStrategyId,templateId:this.editTempId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ - if(response?.code === 200){ - this.closeDialog() - this.$emit('update') - this.$emit('updateTimeSetting') + //校验时间选择范围是否冲突 + let status = true + this.tableData.forEach((outer,outerIndex)=>{ + const {startTime, endTime}=outer + const outerStart = parseInt(startTime),outerEnd = parseInt(endTime) + if(outerStart>outerEnd){ + status = false + }else{ + this.tableData.forEach((inner,innerIndex)=>{ + if(innerIndex !== outerIndex){ + const {startTime:innerStartTime, endTime:innerEndTime}=inner + const innerStart = parseInt(innerStartTime),innerEnd = parseInt(innerEndTime) + if((innerStartouterEnd) || !((innerStart=outerEnd && innerEnd>outerEnd))){ + status=false + } + } + }) } }) - }else{ - addStrategyTemp({siteId,strategyId:updateStrategyId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ - if(response?.code === 200){ - this.closeDialog() - this.$emit('update') - } - }) - } - + if(!status){ + return this.$message.error('时间选择范围冲突'); + } + const {templateName,sdcLimit,sdcDown,sdcUp} = this.formData + const {siteId,updateStrategyId} =this.$home + const {tableData} = this + if(this.mode==='edit'){ + editStrategyTemp({siteId,strategyId:updateStrategyId,templateId:this.editTempId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ + if(response?.code === 200){ + this.closeDialog() + this.$emit('update') + this.$emit('updateTimeSetting') + } + }) + }else{ + addStrategyTemp({siteId,strategyId:updateStrategyId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ + if(response?.code === 200){ + this.closeDialog() + this.$emit('update') + } + }) + } }) }, closeDialog(){