From 9651354317d92f46c336cc1fb9b347cd06c21b21 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Mon, 13 Oct 2025 18:23:07 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E6=B7=BB=E5=8A=A0=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AlarmPolicyController.java | 5 +-- .../cache/AlarmPolicyCacheKeyDefine.java | 4 +-- .../monitor/entity/domain/AlarmPolicyDO.java | 4 +++ .../alarm/AlarmPolicyCreateRequest.java | 4 +++ .../alarm/AlarmPolicyQueryRequest.java | 5 +++ .../monitor/entity/vo/AlarmPolicyVO.java | 3 ++ .../alarm/model/AlarmEnginePolicy.java | 3 ++ .../monitor/service/AlarmPolicyService.java | 3 +- .../service/impl/AlarmPolicyServiceImpl.java | 32 +++++++++++++++---- .../resources/mapper/AlarmPolicyMapper.xml | 3 +- .../src/api/monitor/alarm-policy.ts | 7 ++-- .../monitor/alarm-policy/selector/index.vue | 8 ++++- .../src/store/modules/cache/index.ts | 4 +-- .../src/store/modules/cache/types.ts | 2 +- .../components/alarm-policy-form-modal.vue | 4 ++- .../components/alarm-policy-table.vue | 3 +- .../views/monitor/alarm-policy/types/const.ts | 5 +++ .../components/monitor-host-form-drawer.vue | 1 + 18 files changed, 80 insertions(+), 20 deletions(-) diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyController.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyController.java index 5cc0a8fe..551f44ed 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyController.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyController.java @@ -104,9 +104,10 @@ public class AlarmPolicyController { @IgnoreLog(IgnoreLogMode.RET) @GetMapping("/list") @Operation(summary = "查询全部监控告警策略") + @Parameter(name = "type", description = "type", required = true) @PreAuthorize("@ss.hasPermission('monitor:alarm-policy:query')") - public List getAlarmPolicyList() { - return alarmPolicyService.getAlarmPolicyListByCache(); + public List getAlarmPolicyList(@RequestParam("type") String type) { + return alarmPolicyService.getAlarmPolicyListByCache(type); } @IgnoreLog(IgnoreLogMode.RET) diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java index 02f8084f..c7815750 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java @@ -39,8 +39,8 @@ import java.util.concurrent.TimeUnit; public interface AlarmPolicyCacheKeyDefine { CacheKeyDefine ALARM_POLICY = new CacheKeyBuilder() - .key("alarm:policy:list") - .desc("告警策略") + .key("alarm:policy:list:{}") + .desc("告警策略 ${type}") .type(AlarmPolicyCacheDTO.class) .struct(RedisCacheStruct.HASH) .timeout(8, TimeUnit.HOURS) diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmPolicyDO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmPolicyDO.java index d4a5b2b5..21ece051 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmPolicyDO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmPolicyDO.java @@ -50,6 +50,10 @@ public class AlarmPolicyDO extends BaseDO { private static final long serialVersionUID = 1L; + @Schema(description = "策略类型") + @TableField("type") + private String type; + @Schema(description = "策略名称") @TableField("name") private String name; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyCreateRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyCreateRequest.java index d37ccfd2..7dd28135 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyCreateRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyCreateRequest.java @@ -47,6 +47,10 @@ public class AlarmPolicyCreateRequest implements Serializable { private static final long serialVersionUID = 1L; + @NotBlank + @Schema(description = "策略类型") + private String type; + @NotBlank @Size(max = 64) @Schema(description = "策略名称") diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyQueryRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyQueryRequest.java index 067c552d..133e8132 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyQueryRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmPolicyQueryRequest.java @@ -26,6 +26,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import org.dromara.visor.common.entity.BaseQueryRequest; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; /** @@ -46,6 +47,10 @@ public class AlarmPolicyQueryRequest extends BaseQueryRequest { @Schema(description = "id") private Long id; + @NotBlank + @Schema(description = "策略类型") + private String type; + @Size(max = 64) @Schema(description = "策略名称") private String name; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmPolicyVO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmPolicyVO.java index 5a0f3d17..9f3e655c 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmPolicyVO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmPolicyVO.java @@ -51,6 +51,9 @@ public class AlarmPolicyVO implements Serializable { @Schema(description = "id") private Long id; + @Schema(description = "策略类型") + private String type; + @Schema(description = "策略名称") private String name; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/handler/alarm/model/AlarmEnginePolicy.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/handler/alarm/model/AlarmEnginePolicy.java index 16993abb..d8e5796c 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/handler/alarm/model/AlarmEnginePolicy.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/handler/alarm/model/AlarmEnginePolicy.java @@ -48,6 +48,9 @@ public class AlarmEnginePolicy { @Schema(description = "策略id") private Long id; + @Schema(description = "策略类型") + private String type; + @Schema(description = "策略名称") private String name; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyService.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyService.java index da7cecee..d79b8ef9 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyService.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyService.java @@ -77,9 +77,10 @@ public interface AlarmPolicyService { /** * 通过缓存查询监控告警策略 * + * @param type type * @return rows */ - List getAlarmPolicyListByCache(); + List getAlarmPolicyListByCache(String type); /** * 分页查询监控告警策略 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java index ce36943d..386fdce5 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java @@ -27,6 +27,7 @@ import cn.orionsec.kit.lang.utils.Booleans; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.extern.slf4j.Slf4j; +import org.dromara.visor.common.constant.Const; import org.dromara.visor.common.constant.ErrorMessage; import org.dromara.visor.common.utils.Assert; import org.dromara.visor.framework.biz.operator.log.core.utils.OperatorLogs; @@ -110,8 +111,11 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { Long id = record.getId(); // 设置告警通知 alarmPolicyNotifyService.setAlarmPolicyNotify(id, request.getNotifyIdList()); - // 删除缓存 + // 重新加载上下文 alarmEngineContext.reloadPolicy(id); + // 删除缓存 + RedisMaps.delete(AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(record.getType()), + AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(Const.ALL)); // 设置日志参数 OperatorLogs.add(OperatorLogs.ID, id); log.info("AlarmPolicyService-createAlarmPolicy id: {}, effect: {}", id, effect); @@ -130,6 +134,11 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { Long newId = this.createAlarmPolicy(request); // 复制策略规则 alarmPolicyRuleService.copyAlarmPolicyRule(id, newId); + // 重新加载上下文 + alarmEngineContext.reloadPolicy(id); + // 删除缓存 + RedisMaps.delete(AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(record.getType()), + AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(Const.ALL)); return newId; } @@ -143,6 +152,7 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { Assert.notNull(record, ErrorMessage.DATA_ABSENT); // 转换 AlarmPolicyDO updateRecord = AlarmPolicyConvert.MAPPER.to(request); + updateRecord.setType(record.getType()); // 查询数据是否冲突 this.checkAlarmPolicyPresent(updateRecord); // 更新 @@ -152,8 +162,11 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { alarmPolicyNotifyService.setAlarmPolicyNotify(id, request.getNotifyIdList()); } log.info("AlarmPolicyService-updateAlarmPolicyById effect: {}", effect); - // 删除缓存 + // 重新加载上下文 alarmEngineContext.reloadPolicy(id); + // 删除缓存 + RedisMaps.delete(AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(record.getType()), + AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(Const.ALL)); return effect; } @@ -171,16 +184,21 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { } @Override - public List getAlarmPolicyListByCache() { + public List getAlarmPolicyListByCache(String type) { + String cacheKey = AlarmPolicyCacheKeyDefine.ALARM_POLICY.format(type); // 查询缓存 - List list = RedisMaps.valuesJson(AlarmPolicyCacheKeyDefine.ALARM_POLICY); + List list = RedisMaps.valuesJson(cacheKey, AlarmPolicyCacheKeyDefine.ALARM_POLICY); if (list.isEmpty()) { // 查询数据库 - list = alarmPolicyDAO.of().list(AlarmPolicyConvert.MAPPER::toCache); + list = alarmPolicyDAO.of() + .createWrapper() + .eq(!Const.ALL.equals(type), AlarmPolicyDO::getType, type) + .then() + .list(AlarmPolicyConvert.MAPPER::toCache); // 设置屏障 防止穿透 CacheBarriers.checkBarrier(list, AlarmPolicyCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(AlarmPolicyCacheKeyDefine.ALARM_POLICY, s -> s.getId().toString(), list); + RedisMaps.putAllJson(cacheKey, AlarmPolicyCacheKeyDefine.ALARM_POLICY, s -> s.getId().toString(), list); } // 删除屏障 CacheBarriers.removeBarrier(list); @@ -259,6 +277,7 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { public LambdaQueryWrapper buildQueryWrapper(AlarmPolicyQueryRequest request) { return alarmPolicyDAO.wrapper() .eq(AlarmPolicyDO::getId, request.getId()) + .eq(AlarmPolicyDO::getType, request.getType()) .like(AlarmPolicyDO::getName, request.getName()) .like(AlarmPolicyDO::getDescription, request.getDescription()); } @@ -274,6 +293,7 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { // 更新时忽略当前记录 .ne(AlarmPolicyDO::getId, domain.getId()) // 用其他字段做重复校验 + .eq(AlarmPolicyDO::getType, domain.getType()) .eq(AlarmPolicyDO::getName, domain.getName()); // 检查是否存在 boolean present = alarmPolicyDAO.of(wrapper).present(); diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/resources/mapper/AlarmPolicyMapper.xml b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/resources/mapper/AlarmPolicyMapper.xml index 99f55ec8..ae055fc4 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/resources/mapper/AlarmPolicyMapper.xml +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/resources/mapper/AlarmPolicyMapper.xml @@ -5,6 +5,7 @@ + @@ -16,7 +17,7 @@ - id, name, description, create_time, update_time, creator, updater, deleted + id, type, name, description, create_time, update_time, creator, updater, deleted diff --git a/orion-visor-ui/src/api/monitor/alarm-policy.ts b/orion-visor-ui/src/api/monitor/alarm-policy.ts index a4c10b45..56728e0e 100644 --- a/orion-visor-ui/src/api/monitor/alarm-policy.ts +++ b/orion-visor-ui/src/api/monitor/alarm-policy.ts @@ -7,6 +7,7 @@ import axios from 'axios'; */ export interface AlarmPolicyCreateRequest { name?: string; + type?: string; description?: string; notifyIdList?: Array; } @@ -24,6 +25,7 @@ export interface AlarmPolicyUpdateRequest extends AlarmPolicyCreateRequest { */ export interface AlarmPolicyQueryRequest extends Pagination, OrderDirection { id?: number; + type?: string; name?: string; description?: string; } @@ -33,6 +35,7 @@ export interface AlarmPolicyQueryRequest extends Pagination, OrderDirection { */ export interface AlarmPolicyQueryResponse extends TableData { id: number; + type: string; name: string; description: string; notifyIdList: Array; @@ -73,8 +76,8 @@ export function getAlarmPolicy(id: number) { /** * 查询全部监控告警策略 */ -export function getAlarmPolicyList() { - return axios.get>('/monitor/alarm-policy/list'); +export function getAlarmPolicyList(type: string) { + return axios.get>('/monitor/alarm-policy/list', { params: { type } }); } /** diff --git a/orion-visor-ui/src/components/monitor/alarm-policy/selector/index.vue b/orion-visor-ui/src/components/monitor/alarm-policy/selector/index.vue index 4a7392c3..19734851 100644 --- a/orion-visor-ui/src/components/monitor/alarm-policy/selector/index.vue +++ b/orion-visor-ui/src/components/monitor/alarm-policy/selector/index.vue @@ -19,6 +19,12 @@ import { useCacheStore } from '@/store'; import useLoading from '@/hooks/loading'; + const props = withDefaults(defineProps>(), { + type: 'all', + }); + const modelValue = defineModel({ type: Number }); const { loading, setLoading } = useLoading(); @@ -30,7 +36,7 @@ const initOptions = async () => { setLoading(true); try { - const values = await cacheStore.loadMonitorAlarmPolicy(); + const values = await cacheStore.loadMonitorAlarmPolicy(props.type); optionData.value = values.map(s => { return { label: s.name, diff --git a/orion-visor-ui/src/store/modules/cache/index.ts b/orion-visor-ui/src/store/modules/cache/index.ts index 73e460af..fc866808 100644 --- a/orion-visor-ui/src/store/modules/cache/index.ts +++ b/orion-visor-ui/src/store/modules/cache/index.ts @@ -177,8 +177,8 @@ export default defineStore('cache', { }, // 查询监控告警策略列表 - async loadMonitorAlarmPolicy(force = false) { - return await this.load('alarmPolicy', getAlarmPolicyList, ['monitor:alarm-policy:query'], force); + async loadMonitorAlarmPolicy(type: string = 'all', force = false) { + return await this.load(`alarmPolicy_${type}`, () => getAlarmPolicyList(type), ['monitor:alarm-policy:query'], force); }, // 查询监控指标列表 diff --git a/orion-visor-ui/src/store/modules/cache/types.ts b/orion-visor-ui/src/store/modules/cache/types.ts index 2d0feb71..4dc493d2 100644 --- a/orion-visor-ui/src/store/modules/cache/types.ts +++ b/orion-visor-ui/src/store/modules/cache/types.ts @@ -7,7 +7,7 @@ export type CacheType = 'users' | 'menus' | 'roles' | 'authorizedHostKeys' | 'authorizedHostIdentities' | 'commandSnippetGroups' | 'pathBookmarkGroups' | 'commandSnippets' | 'pathBookmarks' - | 'alarmPolicy' | 'monitorMetrics' + | 'alarmPolicy_*' | 'monitorMetrics' | 'systemSetting' | 'notifyTemplate*' | '*_Tags' | 'preference_*' | string diff --git a/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-form-modal.vue b/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-form-modal.vue index e07b8154..1373c891 100644 --- a/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-form-modal.vue +++ b/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-form-modal.vue @@ -57,8 +57,9 @@ import formRules from '../types/form.rules'; import { assignOmitRecord } from '@/utils'; import { createAlarmPolicy, updateAlarmPolicy, copyAlarmPolicy, getAlarmPolicy } from '@/api/monitor/alarm-policy'; - import { Message } from '@arco-design/web-vue'; import { useToggle } from '@vueuse/core'; + import { Message } from '@arco-design/web-vue'; + import { AlarmPolicyType } from '../types/const'; import NotifyTemplateSelector from '@/components/system/notify-template/selector/index.vue'; const emits = defineEmits(['added', 'updated']); @@ -75,6 +76,7 @@ const defaultForm = (): AlarmPolicyUpdateRequest => { return { id: undefined, + type: AlarmPolicyType.HOST, name: undefined, description: undefined, notifyIdList: [], diff --git a/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-table.vue b/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-table.vue index 91a93dcb..89a283a3 100644 --- a/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-table.vue +++ b/orion-visor-ui/src/views/monitor/alarm-policy/components/alarm-policy-table.vue @@ -145,7 +145,7 @@ import useLoading from '@/hooks/loading'; import columns from '../types/table.columns'; import { useRouter } from 'vue-router'; - import { TableName } from '../types/const'; + import { AlarmPolicyType, TableName } from '../types/const'; import { useTablePagination, useTableColumns } from '@/hooks/table'; import { useQueryOrder, ASC } from '@/hooks/query-order'; import TableAdjust from '@/components/app/table-adjust/index.vue'; @@ -161,6 +161,7 @@ const tableRenderData = ref>([]); const formModel = reactive({ id: undefined, + type: AlarmPolicyType.HOST, name: undefined, description: undefined, }); diff --git a/orion-visor-ui/src/views/monitor/alarm-policy/types/const.ts b/orion-visor-ui/src/views/monitor/alarm-policy/types/const.ts index 3f6075fa..b8966cdd 100644 --- a/orion-visor-ui/src/views/monitor/alarm-policy/types/const.ts +++ b/orion-visor-ui/src/views/monitor/alarm-policy/types/const.ts @@ -1 +1,6 @@ export const TableName = 'monitor_alarm_policy'; + +// 告警策略类型 +export const AlarmPolicyType = { + HOST: 'HOST', +}; diff --git a/orion-visor-ui/src/views/monitor/monitor-host/components/monitor-host-form-drawer.vue b/orion-visor-ui/src/views/monitor/monitor-host/components/monitor-host-form-drawer.vue index 3bea3309..8178a6d9 100644 --- a/orion-visor-ui/src/views/monitor/monitor-host/components/monitor-host-form-drawer.vue +++ b/orion-visor-ui/src/views/monitor/monitor-host/components/monitor-host-form-drawer.vue @@ -31,6 +31,7 @@