feat: support searching device id

This commit is contained in:
yangsy
2025-08-20 23:28:27 +08:00
parent 1707d2c66f
commit c4c7d0f7a6
2 changed files with 6 additions and 7 deletions

View File

@@ -35,8 +35,8 @@ watch(show, (newValue) => {
const searchPattern = ref(''); const searchPattern = ref('');
const searchFilter: (pattern: string, node: TreeOption) => boolean = (pattern, node) => { const searchFilter: (pattern: string, node: TreeOption) => boolean = (pattern, node) => {
const device = node['device'] as NdmDeviceVO | undefined; const device = node['device'] as NdmDeviceVO | undefined;
const { name, ipAddress } = device ?? {}; const { name, ipAddress, deviceId } = device ?? {};
return (name ?? '').includes(pattern) || (ipAddress ?? '').includes(pattern); return (name ?? '').includes(pattern) || (ipAddress ?? '').includes(pattern) || (deviceId ?? '').includes(pattern);
}; };
const offlineDeviceCount = computed(() => { const offlineDeviceCount = computed(() => {
@@ -107,7 +107,7 @@ const onModalClose = () => {
<span>当前没有离线设备</span> <span>当前没有离线设备</span>
</div> </div>
<template v-else> <template v-else>
<NInput v-model:value="searchPattern" placeholder="搜索设备名称或IP地址" clearable /> <NInput v-model:value="searchPattern" placeholder="搜索设备名称、设备ID或IP地址" clearable />
<NTree <NTree
:data="treeData" :data="treeData"
:override-default-node-click-behavior="override" :override-default-node-click-behavior="override"

View File

@@ -210,14 +210,13 @@ const searchPattern = computed(() => {
const searchFilter = (pattern: string, node: TreeOption): boolean => { const searchFilter = (pattern: string, node: TreeOption): boolean => {
const { search, status } = destr<{ search: string; status: string }>(pattern); const { search, status } = destr<{ search: string; status: string }>(pattern);
const device = node['device'] as NdmDeviceResultVO | undefined; const device = node['device'] as NdmDeviceResultVO | undefined;
const { name, ipAddress, deviceStatus } = device ?? {}; const { name, ipAddress, deviceId, deviceStatus } = device ?? {};
const searchMatched = (name ?? '').includes(search) || (ipAddress ?? '').includes(search); const searchMatched = (name ?? '').includes(search) || (ipAddress ?? '').includes(search) || (deviceId ?? '').includes(search);
const statusMatched = status === '' || status === deviceStatus; const statusMatched = status === '' || status === deviceStatus;
return searchMatched && statusMatched; return searchMatched && statusMatched;
}; };
// ========== 设备树交互 ========== // ========== 设备树交互 ==========
// 将多实例改为单实例,便于直接获取 Tree 实例
const deviceTreeInst = useTemplateRef<TreeInst>('deviceTreeInst'); const deviceTreeInst = useTemplateRef<TreeInst>('deviceTreeInst');
const onClickLocateDeviceTree = () => { const onClickLocateDeviceTree = () => {
selectedTab.value = (selectedDevice.value?.deviceType ?? selectedTab.value) as DeviceTypeCode; selectedTab.value = (selectedDevice.value?.deviceType ?? selectedTab.value) as DeviceTypeCode;
@@ -249,7 +248,7 @@ const scrollDeviceTreeToSelectedDevice = (timeout: number = 500) => {
<NLayoutSider bordered :width="600" :collapsed-width="0" show-trigger="bar"> <NLayoutSider bordered :width="600" :collapsed-width="0" show-trigger="bar">
<div style="height: 100%; display: flex; flex-direction: column"> <div style="height: 100%; display: flex; flex-direction: column">
<div style="flex-shrink: 0; padding: 12px"> <div style="flex-shrink: 0; padding: 12px">
<NInput v-model:value="searchInput" placeholder="搜索设备名称或IP地址" clearable /> <NInput v-model:value="searchInput" placeholder="搜索设备名称、设备ID或IP地址" clearable />
<NFlex justify="space-between" align="center"> <NFlex justify="space-between" align="center">
<NRadioGroup v-model:value="statusInput"> <NRadioGroup v-model:value="statusInput">
<NRadio value="">全部</NRadio> <NRadio value="">全部</NRadio>