|
|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
<div class="hero-copy">
|
|
|
|
|
<span class="hero-eyebrow">ALARM RULE STUDIO</span>
|
|
|
|
|
<h2 class="hero-title">异常告警规则与处置措施工作台</h2>
|
|
|
|
|
<p class="hero-desc">把上位机触发阈值和处置步骤聚合在一个界面中,帮助运维团队更快定位规则、编排措施并完成闭环维护。</p>
|
|
|
|
|
<!-- <p class="hero-desc">把上位机触发阈值和处置步骤聚合在一个界面中,帮助运维团队更快定位规则、编排措施并完成闭环维护。</p>-->
|
|
|
|
|
</div>
|
|
|
|
|
<div class="hero-stats">
|
|
|
|
|
<article v-for="item in overviewStats" :key="item.label" class="stat-card">
|
|
|
|
|
@ -106,8 +106,9 @@
|
|
|
|
|
<dict-tag :options="dict.type.monitor_field" :value="scope.row.monitorField" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="告警上限" align="center" prop="alarmUpper" v-if="columns[5].visible" />
|
|
|
|
|
<el-table-column label="告警下限" align="center" prop="alarmLower" v-if="columns[6].visible" />
|
|
|
|
|
<el-table-column label="触发值" align="center" prop="triggerValue" v-if="columns[5].visible" />
|
|
|
|
|
<!-- <el-table-column label="告警上限" align="center" prop="alarmUpper" v-if="columns[5].visible" />-->
|
|
|
|
|
<!-- <el-table-column label="告警下限" align="center" prop="alarmLower" v-if="columns[6].visible" />-->
|
|
|
|
|
<!-- 上位机 WebSocket 已按 triggerRule + triggerValue 推送报警,规则页暂不展示恢复/防抖参数。 -->
|
|
|
|
|
<!-- <el-table-column label="恢复上限" align="center" prop="recoverUpper" v-if="columns[7].visible" /> -->
|
|
|
|
|
<!-- <el-table-column label="恢复下限" align="center" prop="recoverLower" v-if="columns[8].visible" /> -->
|
|
|
|
|
@ -115,12 +116,12 @@
|
|
|
|
|
<!-- <el-table-column label="持续秒数" align="center" prop="durationSec" v-if="columns[10].visible" /> -->
|
|
|
|
|
<!-- 告警级别暂时停用:规则页不再暴露这个入口,避免和统一阈值配置形成双口径。 -->
|
|
|
|
|
<!-- <el-table-column label="告警级别" align="center" prop="alarmLevel" v-if="columns[11].visible" /> -->
|
|
|
|
|
<el-table-column label="启用状态" align="center" prop="isEnable" v-if="columns[7].visible">
|
|
|
|
|
<el-table-column label="启用状态" align="center" prop="isEnable" v-if="columns[6].visible">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag :options="dict.type.is_flag" :value="scope.row.isEnable" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="备注" align="center" prop="cause" v-if="columns[8].visible" />
|
|
|
|
|
<el-table-column label="备注" align="center" prop="cause" v-if="columns[7].visible" />
|
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
@ -193,11 +194,15 @@
|
|
|
|
|
<!-- <el-form-item label="时间范围(分)" prop="timeRange">-->
|
|
|
|
|
<!-- <el-input v-model="form.timeRange" placeholder="请输入时间范围(分)"/>-->
|
|
|
|
|
<!-- </el-form-item>-->
|
|
|
|
|
<el-form-item label="告警上限" prop="alarmUpper">
|
|
|
|
|
<el-input-number v-model="form.alarmUpper" placeholder="请输入告警上限" :precision="4" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<el-form-item label="告警下限" prop="alarmLower">
|
|
|
|
|
<el-input-number v-model="form.alarmLower" placeholder="请输入告警下限" :precision="4" />
|
|
|
|
|
<!-- <el-form-item label="告警上限" prop="alarmUpper">-->
|
|
|
|
|
<!-- <el-input-number v-model="form.alarmUpper" placeholder="请输入告警上限" :precision="4" />-->
|
|
|
|
|
<!-- </el-form-item>-->
|
|
|
|
|
<!-- <el-form-item label="告警下限" prop="alarmLower">-->
|
|
|
|
|
<!-- <el-input-number v-model="form.alarmLower" placeholder="请输入告警下限" :precision="4" />-->
|
|
|
|
|
<!-- </el-form-item>-->
|
|
|
|
|
|
|
|
|
|
<el-form-item label="触发值" prop="triggerValue">
|
|
|
|
|
<el-input-number v-model="form.triggerValue" placeholder="请输入触发值" :precision="4" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
<!-- 上位机负责报警触发与推送,规则页暂不维护恢复上下限、回差、持续秒数。 -->
|
|
|
|
|
<!--
|
|
|
|
|
@ -248,7 +253,7 @@
|
|
|
|
|
<div class="action-steps-container">
|
|
|
|
|
<div class="dialog-tip soft">
|
|
|
|
|
<span class="tip-dot"></span>
|
|
|
|
|
处置步骤支持顺序编排、图片补充和批量保存,适合沉淀标准化应急 SOP。
|
|
|
|
|
处置步骤支持顺序编排、批量保存,适合沉淀标准化应急 SOP。
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 步骤列表 -->
|
|
|
|
|
<div class="steps-section">
|
|
|
|
|
@ -289,9 +294,9 @@
|
|
|
|
|
<el-input v-model="step.remark" placeholder="请输入备注信息"></el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
|
|
<el-form-item label="参考图片">
|
|
|
|
|
<!-- <el-form-item label="参考图片">
|
|
|
|
|
<div class="image-upload-section">
|
|
|
|
|
<!-- 图片上传 -->
|
|
|
|
|
<!– 图片上传 –>
|
|
|
|
|
<el-upload
|
|
|
|
|
:action="uploadAction"
|
|
|
|
|
:headers="uploadHeaders"
|
|
|
|
|
@ -309,7 +314,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-upload>
|
|
|
|
|
|
|
|
|
|
<!-- 图片列表 -->
|
|
|
|
|
<!– 图片列表 –>
|
|
|
|
|
<div v-if="step.stepImages && step.stepImages.length > 0" class="image-list">
|
|
|
|
|
<div v-for="(image, imgIndex) in step.stepImages" :key="image.tempId || image.objId" class="image-item">
|
|
|
|
|
<div class="image-preview" @click="previewImage(getFullImageUrl(image.imageUrl))">
|
|
|
|
|
@ -322,7 +327,8 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-form-item>-->
|
|
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -339,11 +345,11 @@
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
|
<!-- 图片预览对话框 -->
|
|
|
|
|
<el-dialog title="图片预览" v-model="imagePreviewVisible" width="80%" append-to-body center class="themed-dialog preview-dialog">
|
|
|
|
|
<!-- <el-dialog title="图片预览" v-model="imagePreviewVisible" width="80%" append-to-body center class="themed-dialog preview-dialog">
|
|
|
|
|
<div class="image-preview-container">
|
|
|
|
|
<img :src="previewImageUrl" style="max-width: 100%; max-height: 70vh" />
|
|
|
|
|
</div>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</el-dialog>-->
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|