策略模板时间冲突校验

This commit is contained in:
白菜
2025-07-13 17:40:24 +08:00
parent d0a31f9ee8
commit c0bed77a5d

View File

@ -41,8 +41,8 @@
start: '00:00', start: '00:00',
step: '01:00', step: '01:00',
end: '23:00', end: '23:00',
minTime: formInline.startTime
}"> }">
<!-- minTime: formInline.startTime-->
</el-time-select> </el-time-select>
</el-form-item> </el-form-item>
<el-form-item label="冲放功率" prop="chargeDischargePower"> <el-form-item label="冲放功率" prop="chargeDischargePower">
@ -174,7 +174,7 @@ export default {
}, },
watch: { watch: {
"formInline.startTime":{ "formInline.startTime":{
handler(newVal,oldVal){ handler(newVal){
if(newVal && this.formInline.endTime){ if(newVal && this.formInline.endTime){
const endTime = parseInt((this.formInline.endTime).split(':')[0] || 0) const endTime = parseInt((this.formInline.endTime).split(':')[0] || 0)
const startTime =parseInt(newVal.split(':')[0]) const startTime =parseInt(newVal.split(':')[0])
@ -248,32 +248,53 @@ export default {
this.$nextTick(() => {this.cancelAddTime()}) this.$nextTick(() => {this.cancelAddTime()})
}) })
}, },
deleteRow(index, table){ deleteRow(index){
this.tableData.splice(index,1) this.tableData.splice(index,1)
}, },
saveDialog() { saveDialog() {
this.$refs.addTempForm.validate(valid => { this.$refs.addTempForm.validate(valid => {
if (!valid) return if (!valid) return
const {templateName,sdcLimit,sdcDown,sdcUp} = this.formData //校验时间选择范围是否冲突
const {siteId,updateStrategyId} =this.$home let status = true
const {tableData} = this this.tableData.forEach((outer,outerIndex)=>{
if(this.mode==='edit'){ const {startTime, endTime}=outer
editStrategyTemp({siteId,strategyId:updateStrategyId,templateId:this.editTempId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ const outerStart = parseInt(startTime),outerEnd = parseInt(endTime)
if(response?.code === 200){ if(outerStart>outerEnd){
this.closeDialog() status = false
this.$emit('update') }else{
this.$emit('updateTimeSetting') this.tableData.forEach((inner,innerIndex)=>{
if(innerIndex !== outerIndex){
const {startTime:innerStartTime, endTime:innerEndTime}=inner
const innerStart = parseInt(innerStartTime),innerEnd = parseInt(innerEndTime)
if((innerStart<outerStart && innerEnd>outerEnd) || !((innerStart<outerStart && innerEnd<=outerStart) || (innerStart>=outerEnd && innerEnd>outerEnd))){
status=false
}
}
})
} }
}) })
}else{ if(!status){
addStrategyTemp({siteId,strategyId:updateStrategyId,templateName,sdcLimit,sdcDown,sdcUp,timeConfigList:tableData}).then(response=>{ return this.$message.error('时间选择范围冲突');
if(response?.code === 200){ }
this.closeDialog() const {templateName,sdcLimit,sdcDown,sdcUp} = this.formData
this.$emit('update') 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(){ closeDialog(){