fix: 修复新增事件策略界面返回时,第三步校验总被触发的问题

This commit is contained in:
刘洪洪
2024-01-12 17:22:25 +08:00
parent b13e313114
commit ff17e52bc2
3 changed files with 81 additions and 40 deletions

View File

@@ -197,6 +197,8 @@ export default {
if (this.settingObj.ruleType && this.settingObj.category && this.settingObj.eventType && this.settingObj.name) { if (this.settingObj.ruleType && this.settingObj.category && this.settingObj.eventType && this.settingObj.name) {
this.settingObj.settingNoContinue = true this.settingObj.settingNoContinue = true
this.onContinue() this.onContinue()
} else {
this.$emit('setSettingForm', this.settingObj)
} }
}, },
/** 点击继续,进行第二步 */ /** 点击继续,进行第二步 */

View File

@@ -507,6 +507,8 @@ export default {
this.$refs.form2.validate(valid2 => { this.$refs.form2.validate(valid2 => {
if (valid2) { if (valid2) {
this.getConditions() this.getConditions()
this.indicatorRuleObj.editFlag = false
this.indicatorRuleObj.saveFlag = true
this.$emit('setRuleObj', this.thresholdRuleObj) this.$emit('setRuleObj', this.thresholdRuleObj)
} }
}) })
@@ -534,6 +536,9 @@ export default {
if (this.indicatorRuleObj.dataSource && this.indicatorRuleObj.knowledgeId && this.indicatorRuleObj.level) { if (this.indicatorRuleObj.dataSource && this.indicatorRuleObj.knowledgeId && this.indicatorRuleObj.level) {
this.indicatorRuleObj.ruleNoContinue = true this.indicatorRuleObj.ruleNoContinue = true
this.onContinue() this.onContinue()
} else {
this.indicatorRuleObj.editFlag = true
this.$emit('setRuleObj', this.indicatorRuleObj)
} }
} }
} }

View File

@@ -18,7 +18,7 @@
</div> </div>
</template> </template>
<div class="form-collapse-content"> <div class="form-collapse-content">
<general-settings ref="form" :editObj="editObj" :isComplete="isComplete" @setSettingForm="getFormSetting" /> <general-settings ref="form" :editObj="editObj" :isComplete="isCompleteSetting" @setSettingForm="getFormSetting" />
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
@@ -35,7 +35,7 @@
</div> </div>
</template> </template>
<div class="form-collapse-content"> <div class="form-collapse-content">
<rule-definition :settingObj="settingObj" :editObj="editObj" :isComplete="isComplete" @setRuleObj="getRuleObj" /> <rule-definition :settingObj="settingObj" :editObj="editObj" :isComplete="isCompleteRule" @setRuleObj="getRuleObj" />
</div> </div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
@@ -57,16 +57,16 @@
<div class="trigger-block-item margin-b-10"> <div class="trigger-block-item margin-b-10">
<div>At least</div> <div>At least</div>
<el-form-item prop="atLeast"> <el-form-item prop="atLeast">
<el-input size="mini" maxlength="5" v-model="triggerObj.atLeast" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.atLeast" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
<div>times within</div> <div>times within</div>
<el-form-item prop="interval" class="policy-form-item"> <el-form-item prop="interval" class="policy-form-item">
<el-input size="mini" maxlength="5" v-model="triggerObj.interval" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.interval" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="intervalVal"> <el-form-item prop="intervalVal">
<el-select v-model="triggerObj.intervalVal" class="form-trigger__select" placeholder=" " size="mini"> <el-select v-model="triggerObj.intervalVal" class="form-trigger__select" placeholder=" " size="mini" @change="resetEditFlag">
<el-option <el-option
v-for="item in intervalList" v-for="item in intervalList"
:key="item.value" :key="item.value"
@@ -80,10 +80,10 @@
<div class="trigger-block-item"> <div class="trigger-block-item">
<div>With the counter resetting after no activity for</div> <div>With the counter resetting after no activity for</div>
<el-form-item prop="resetInterval" class="policy-form-item"> <el-form-item prop="resetInterval" class="policy-form-item">
<el-input size="mini" maxlength="5" v-model="triggerObj.resetInterval" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.resetInterval" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="resetIntervalVal"> <el-form-item prop="resetIntervalVal">
<el-select v-model="triggerObj.resetIntervalVal" class="form-trigger__select" placeholder=" " size="mini"> <el-select v-model="triggerObj.resetIntervalVal" class="form-trigger__select" placeholder=" " size="mini" @change="resetEditFlag">
<el-option <el-option
v-for="item in intervalList" v-for="item in intervalList"
:key="item.value" :key="item.value"
@@ -98,11 +98,11 @@
<div class="trigger-block-item margin-b-10"> <div class="trigger-block-item margin-b-10">
<el-form-item prop="interval"> <el-form-item prop="interval">
<el-input size="mini" maxlength="5" v-model="triggerObj.interval" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.interval" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="intervalVal"> <el-form-item prop="intervalVal">
<el-select v-model="triggerObj.intervalVal" class="form-trigger__select" placeholder=" " size="mini"> <el-select v-model="triggerObj.intervalVal" class="form-trigger__select" placeholder=" " size="mini" @change="resetEditFlag">
<el-option <el-option
v-for="item in intervalList" v-for="item in intervalList"
:key="item.value" :key="item.value"
@@ -113,7 +113,7 @@
</el-form-item> </el-form-item>
内至少发生 内至少发生
<el-form-item prop="atLeast"> <el-form-item prop="atLeast">
<el-input size="mini" maxlength="5" v-model="triggerObj.atLeast" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.atLeast" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
</div> </div>
@@ -121,10 +121,10 @@
<div class="trigger-block-item"> <div class="trigger-block-item">
若连续 若连续
<el-form-item prop="resetInterval"> <el-form-item prop="resetInterval">
<el-input size="mini" maxlength="5" v-model="triggerObj.resetInterval" oninput="value=value.replace(/[^\d]/g,'')"></el-input> <el-input size="mini" maxlength="5" v-model="triggerObj.resetInterval" oninput="value=value.replace(/[^\d]/g,'')" @input="resetEditFlag"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="resetIntervalVal"> <el-form-item prop="resetIntervalVal">
<el-select v-model="triggerObj.resetIntervalVal" class="form-trigger__select" placeholder=" " size="mini"> <el-select v-model="triggerObj.resetIntervalVal" class="form-trigger__select" placeholder=" " size="mini" @change="resetEditFlag">
<el-option <el-option
v-for="item in intervalList" v-for="item in intervalList"
:key="item.value" :key="item.value"
@@ -258,7 +258,8 @@ export default {
}, },
intervalList: [], intervalList: [],
editObj: {}, editObj: {},
isComplete: true, // 参数完整标识默认完整照顾编辑模式false即不完整 isCompleteSetting: true, // 参数完整标识默认完整照顾编辑模式false即不完整
isCompleteRule: true, // 参数完整标识默认完整照顾编辑模式false即不完整
language: EN, language: EN,
ZH, ZH,
EN EN
@@ -294,7 +295,7 @@ export default {
intervalVal: '', intervalVal: '',
resetInterval: '', resetInterval: '',
resetIntervalVal: '', resetIntervalVal: '',
finishFlag: false editFlag: false
}) })
return { return {
@@ -345,12 +346,18 @@ export default {
}, },
/** 获取General Settings折叠板form数据 */ /** 获取General Settings折叠板form数据 */
getFormSetting (data) { getFormSetting (data) {
if (data.saveFlag) {
this.handleActiveNames('1', this.activeNames, data.settingNoContinue) this.handleActiveNames('1', this.activeNames, data.settingNoContinue)
}
this.settingObj = JSON.parse(JSON.stringify(data)) this.settingObj = JSON.parse(JSON.stringify(data))
}, },
/** 获取Rule Definition折叠板form数据 */ /** 获取Rule Definition折叠板form数据 */
getRuleObj (data) { getRuleObj (data) {
if (data.dataSource && data.knowledgeId && data.level) {
data.editFlag = false
data.saveFlag = true
this.handleActiveNames('2', this.activeNames, data.ruleNoContinue) this.handleActiveNames('2', this.activeNames, data.ruleNoContinue)
}
this.ruleObj = JSON.parse(JSON.stringify(data)) this.ruleObj = JSON.parse(JSON.stringify(data))
}, },
/** 自动展开收起折叠板 */ /** 自动展开收起折叠板 */
@@ -453,14 +460,15 @@ export default {
}) })
} }
} else { } else {
this.isComplete = false this.isCompleteSetting = false
this.isCompleteRule = false
} }
}) })
} else if (settingLen === 0) { } else if (settingLen === 0) {
this.isComplete = false this.isCompleteSetting = false
this.handleFormError('1') this.handleFormError('1')
} else if (ruleLen === 0) { } else if (ruleLen === 0) {
this.isComplete = false this.isCompleteRule = false
this.handleFormError('2') this.handleFormError('2')
} }
}, },
@@ -508,8 +516,38 @@ export default {
queryInfo.ruleId = query.id queryInfo.ruleId = query.id
queryInfo.name = this.settingObj.name queryInfo.name = this.settingObj.name
} }
if (this.settingObj.editFlag || this.ruleObj.editFlag || this.triggerObj.editFlag) {
// if (this.settingObj.editFlag) {
// this.isCompleteSetting = false
// this.handleFormError('1')
// }
// if (this.ruleObj.editFlag) {
// this.isCompleteRule = false
// this.handleFormError('2')
// }
if (this.triggerObj.editFlag) {
this.$refs.form3.validate(valid => { this.$refs.form3.validate(valid => {
if (this.settingObj.settingNoContinue || this.ruleObj.settingNoContinue || !valid) { if (!valid) {
this.confirmMessage(queryInfo)
} else {
this.$router.push({
path: '/detection/policy',
query: queryInfo
})
}
})
} else {
this.confirmMessage(queryInfo)
}
} else {
this.$router.push({
path: '/detection/policy',
query: queryInfo
})
}
},
confirmMessage (queryInfo) {
this.$confirm(this.$t('tip.leavePage'), { this.$confirm(this.$t('tip.leavePage'), {
confirmButtonText: this.$t('tip.confirm'), confirmButtonText: this.$t('tip.confirm'),
cancelButtonText: this.$t('overall.cancel'), cancelButtonText: this.$t('overall.cancel'),
@@ -524,13 +562,9 @@ export default {
query: queryInfo query: queryInfo
}) })
}).catch(() => {}) }).catch(() => {})
} else { },
this.$router.push({ resetEditFlag () {
path: '/detection/policy', this.triggerObj.editFlag = true
query: queryInfo
})
}
})
} }
} }
} }