Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
lijiahangmax
2025-11-03 14:25:56 +08:00
19 changed files with 70 additions and 21 deletions

View File

@@ -51,6 +51,16 @@ public class HostSpecExtraModel implements GenericsDataModel {
*/ */
private String sn; private String sn;
/**
* 制造商
*/
private String vendor;
/**
* 型号
*/
private String model;
/** /**
* 系统名称 * 系统名称
*/ */

View File

@@ -258,7 +258,7 @@ public class HostIdentityServiceImpl implements HostIdentityService {
.eq(HostIdentityDO::getName, domain.getName()); .eq(HostIdentityDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = hostIdentityDAO.of(wrapper).present(); boolean present = hostIdentityDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
/** /**

View File

@@ -242,7 +242,7 @@ public class HostKeyServiceImpl implements HostKeyService {
.eq(HostKeyDO::getName, domain.getName()); .eq(HostKeyDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = hostKeyDAO.of(wrapper).present(); boolean present = hostKeyDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
/** /**

View File

@@ -408,7 +408,7 @@ public class ExecJobServiceImpl implements ExecJobService {
.eq(ExecJobDO::getName, domain.getName()); .eq(ExecJobDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = execJobDAO.of(wrapper).present(); boolean present = execJobDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
/** /**

View File

@@ -208,7 +208,7 @@ public class ExecTemplateServiceImpl implements ExecTemplateService {
.eq(ExecTemplateDO::getName, domain.getName()); .eq(ExecTemplateDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = execTemplateDAO.of(wrapper).present(); boolean present = execTemplateDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -343,7 +343,7 @@ public class DataGroupServiceImpl implements DataGroupService {
.eq(DataGroupDO::getName, domain.getName()); .eq(DataGroupDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = dataGroupDAO.of(wrapper).present(); boolean present = dataGroupDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
/** /**

View File

@@ -248,7 +248,7 @@ public class DictKeyServiceImpl implements DictKeyService {
.eq(DictKeyDO::getKeyName, domain.getKeyName()); .eq(DictKeyDO::getKeyName, domain.getKeyName());
// 检查是否存在 // 检查是否存在
boolean present = dictKeyDAO.of(wrapper).present(); boolean present = dictKeyDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
/** /**

View File

@@ -226,7 +226,7 @@ public class NotifyTemplateServiceImpl implements NotifyTemplateService {
.eq(NotifyTemplateDO::getBizType, domain.getBizType()); .eq(NotifyTemplateDO::getBizType, domain.getBizType());
// 检查是否存在 // 检查是否存在
boolean present = notifyTemplateDAO.of(wrapper).present(); boolean present = notifyTemplateDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -243,7 +243,7 @@ public class TagServiceImpl implements TagService {
.eq(TagDO::getName, domain.getName()); .eq(TagDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = tagDAO.of(wrapper).present(); boolean present = tagDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -297,7 +297,7 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService {
.eq(AlarmPolicyDO::getName, domain.getName()); .eq(AlarmPolicyDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = alarmPolicyDAO.of(wrapper).present(); boolean present = alarmPolicyDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -203,7 +203,7 @@ public class MonitorMetricsServiceImpl implements MonitorMetricsService {
.eq(MonitorMetricsDO::getValue, domain.getValue()); .eq(MonitorMetricsDO::getValue, domain.getValue());
// 检查是否存在 // 检查是否存在
boolean present = monitorMetricsDAO.of(wrapper).present(); boolean present = monitorMetricsDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -217,7 +217,7 @@ public class CommandSnippetServiceImpl implements CommandSnippetService {
.eq(CommandSnippetDO::getName, domain.getName()); .eq(CommandSnippetDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = commandSnippetDAO.of(wrapper).present(); boolean present = commandSnippetDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -217,7 +217,7 @@ public class PathBookmarkServiceImpl implements PathBookmarkService {
.eq(PathBookmarkDO::getName, domain.getName()); .eq(PathBookmarkDO::getName, domain.getName());
// 检查是否存在 // 检查是否存在
boolean present = pathBookmarkDAO.of(wrapper).present(); boolean present = pathBookmarkDAO.of(wrapper).present();
Assert.isFalse(present, ErrorMessage.DATA_PRESENT); Assert.isFalse(present, ErrorMessage.NAME_PRESENT);
} }
} }

View File

@@ -49,6 +49,8 @@ export interface HostLabelExtraSettingModel {
// 标签规格模型 // 标签规格模型
export interface HostSpecExtraModel { export interface HostSpecExtraModel {
sn: string; sn: string;
vendor: string;
model: string;
osName: string; osName: string;
cpuCount: number; cpuCount: number;
cpuPhysicalCore: number; cpuPhysicalCore: number;

View File

@@ -198,7 +198,7 @@
} }
.card-filter-wrapper { .card-filter-wrapper {
padding: 18px 24px; padding: 24px 24px 16px 24px;
.card-filter-form { .card-filter-form {
width: 320px; width: 320px;

View File

@@ -112,7 +112,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { CardProps } from '../types/props'; import type { CardProps } from '../types/props';
import { ref, computed } from 'vue'; import { ref, computed, nextTick } from 'vue';
import { useAppStore } from '@/store'; import { useAppStore } from '@/store';
import { triggerMouseEvent } from '@/utils/event'; import { triggerMouseEvent } from '@/utils/event';
import { HeaderEmitter } from '../types/emits'; import { HeaderEmitter } from '../types/emits';
@@ -157,7 +157,9 @@
// 搜索 // 搜索
const filterSearch = () => { const filterSearch = () => {
bubblesEmitter(HeaderEmitter.SEARCH); bubblesEmitter(HeaderEmitter.SEARCH);
triggerMouseEvent(filterRef); nextTick(() => {
triggerMouseEvent(filterRef);
});
}; };
</script> </script>

View File

@@ -37,5 +37,5 @@ export const triggerMouseEvent = (ref: Ref, e = 'click') => {
bubbles: true, bubbles: true,
cancelable: true, cancelable: true,
}); });
ref.value.dispatchEvent(event); ref.value?.dispatchEvent?.(event);
}; };

View File

@@ -11,6 +11,24 @@
allow-clear /> allow-clear />
<span v-else class="text">{{ formModel.sn }}</span> <span v-else class="text">{{ formModel.sn }}</span>
</a-descriptions-item> </a-descriptions-item>
<!-- 制造商 -->
<a-descriptions-item label="制造商" :span="2">
<a-input v-if="editing"
v-model="formModel.vendor"
class="input"
size="mini"
allow-clear />
<span v-else class="text">{{ formModel.vendor }}</span>
</a-descriptions-item>
<!-- 设备型号 -->
<a-descriptions-item label="设备型号" :span="2">
<a-input v-if="editing"
v-model="formModel.model"
class="input"
size="mini"
allow-clear />
<span v-else class="text">{{ formModel.model }}</span>
</a-descriptions-item>
<!-- 系统名称 --> <!-- 系统名称 -->
<a-descriptions-item label="系统名称" :span="2"> <a-descriptions-item label="系统名称" :span="2">
<a-input v-if="editing" <a-input v-if="editing"
@@ -121,19 +139,29 @@
</a-descriptions-item> </a-descriptions-item>
<!-- 公网地址 --> <!-- 公网地址 -->
<a-descriptions-item label="公网地址" :span="2"> <a-descriptions-item label="公网地址" :span="2">
<a-input-tag v-model="formModel.publicIpAddresses" <a-input-tag v-if="editing"
:readonly="!editing" v-model="formModel.publicIpAddresses"
class="input" class="input"
size="mini" size="mini"
allow-clear /> allow-clear />
<a-space v-else>
<a-tag v-for="addr in (formModel.publicIpAddresses || [])">
{{ addr }}
</a-tag>
</a-space>
</a-descriptions-item> </a-descriptions-item>
<!-- 私网地址 --> <!-- 私网地址 -->
<a-descriptions-item label="私网地址" :span="2"> <a-descriptions-item label="私网地址" :span="2">
<a-input-tag v-model="formModel.privateIpAddresses" <a-input-tag v-if="editing"
:readonly="!editing" v-model="formModel.privateIpAddresses"
class="input" class="input"
size="mini" size="mini"
allow-clear /> allow-clear />
<a-space v-else>
<a-tag v-for="addr in (formModel.privateIpAddresses || [])">
{{ addr }}
</a-tag>
</a-space>
</a-descriptions-item> </a-descriptions-item>
<!-- 负责人 --> <!-- 负责人 -->
<a-descriptions-item label="负责人" :span="2"> <a-descriptions-item label="负责人" :span="2">

View File

@@ -13,10 +13,17 @@ const columns = [
title: '主机信息', title: '主机信息',
dataIndex: 'hostInfo', dataIndex: 'hostInfo',
slotName: 'hostInfo', slotName: 'hostInfo',
width: 248, width: 268,
align: 'left', align: 'left',
fixed: 'left', fixed: 'left',
default: true, default: true,
}, {
title: '主机规格',
dataIndex: 'hostSpec',
slotName: 'hostSpec',
width: 248,
align: 'left',
default: true,
}, { }, {
title: '告警策略', title: '告警策略',
dataIndex: 'alarmPolicy', dataIndex: 'alarmPolicy',