Compare commits

..

4 Commits

Author SHA1 Message Date
yangsy
cdd1f2113f feat: 扩展交换机端口诊断信息 2025-12-26 18:14:55 +08:00
yangsy
73c2354a06 feat: 当下游设备不存在时自动解除关联
- 获取下游设备时,如果发现下游设备不存在,将静默解除关联
2025-12-26 18:14:54 +08:00
yangsy
01b059fb7f feat: 告警记录支持点击设备跳转到设备详情 2025-12-26 18:14:54 +08:00
yangsy
fd7f1927ff feat: 设备关联与解除关联
- 支持配置交换机端口的下游关联设备
- 支持配置安防箱电路的下游关联设备
- 支持解除关联
- 删除设备时校验是否存在上/下游设备
2025-12-26 18:14:54 +08:00
5 changed files with 14 additions and 14 deletions

View File

@@ -22,9 +22,9 @@ export interface NdmSwitchPortInfo {
lastChangeTime: string; lastChangeTime: string;
opticalTemperature: number; opticalTemperature?: number;
opticalVoltage: number; opticalVoltage?: number;
opticalBiasCurrent: number; opticalBiasCurrent?: number;
opticalReceivePower: number; opticalReceivePower?: number;
opticalTransmitPower: number; opticalTransmitPower?: number;
} }

View File

@@ -258,7 +258,7 @@ const { mutate: unlinkDevice } = useMutation({
delete modifiedUpperLinkDescription.downstream?.[circuitIndex]; delete modifiedUpperLinkDescription.downstream?.[circuitIndex];
modifiedUpperDevice.linkDescription = JSON.stringify(modifiedUpperLinkDescription); modifiedUpperDevice.linkDescription = JSON.stringify(modifiedUpperLinkDescription);
// TODO: 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据 // 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据
if (offlineDev.value) { if (offlineDev.value) {
return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice }; return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice };
} }

View File

@@ -148,7 +148,7 @@ const { mutate: linkPortToDevice, isPending: linking } = useMutation({
} }
modifiedLowerDevice.linkDescription = JSON.stringify(modifiedLowerDeviceLinkDescription); modifiedLowerDevice.linkDescription = JSON.stringify(modifiedLowerDeviceLinkDescription);
// TODO: 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据 // 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据
if (offlineDev.value) { if (offlineDev.value) {
return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice }; return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice };
} }

View File

@@ -208,7 +208,7 @@ const { mutate: unlinkDevice } = useMutation({
delete modifiedUpperLinkDescription.downstream?.[port.portName]; delete modifiedUpperLinkDescription.downstream?.[port.portName];
modifiedUpperDevice.linkDescription = JSON.stringify(modifiedUpperLinkDescription); modifiedUpperDevice.linkDescription = JSON.stringify(modifiedUpperLinkDescription);
// TODO: 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据 // 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据
if (offlineDev.value) { if (offlineDev.value) {
return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice }; return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice };
} }
@@ -281,11 +281,11 @@ onBeforeUnmount(() => {
<NDescriptionsItem label="上行速率">{{ transformPortSpeed(port, 'in') }}</NDescriptionsItem> <NDescriptionsItem label="上行速率">{{ transformPortSpeed(port, 'in') }}</NDescriptionsItem>
<NDescriptionsItem label="下行速率">{{ transformPortSpeed(port, 'out') }}</NDescriptionsItem> <NDescriptionsItem label="下行速率">{{ transformPortSpeed(port, 'out') }}</NDescriptionsItem>
<NDescriptionsItem label="总速率">{{ transformPortSpeed(port, 'total') }}</NDescriptionsItem> <NDescriptionsItem label="总速率">{{ transformPortSpeed(port, 'total') }}</NDescriptionsItem>
<NDescriptionsItem v-if="port.opticalTemperature >= 0" label="光模块温度">{{ port.opticalTemperature }} </NDescriptionsItem> <NDescriptionsItem v-if="!!port.opticalTemperature && port.opticalTemperature >= 0" label="光模块温度">{{ port.opticalTemperature }} </NDescriptionsItem>
<NDescriptionsItem v-if="port.opticalVoltage >= 0" label="光模块电压">{{ port.opticalVoltage }} mV</NDescriptionsItem> <NDescriptionsItem v-if="!!port.opticalVoltage && port.opticalVoltage >= 0" label="光模块电压">{{ port.opticalVoltage }} mV</NDescriptionsItem>
<NDescriptionsItem v-if="port.opticalBiasCurrent >= 0" label="光模块偏置电流">{{ port.opticalBiasCurrent }} μA</NDescriptionsItem> <NDescriptionsItem v-if="!!port.opticalBiasCurrent && port.opticalBiasCurrent >= 0" label="光模块偏置电流">{{ port.opticalBiasCurrent }} μA</NDescriptionsItem>
<NDescriptionsItem v-if="port.opticalReceivePower >= 0" label="光模块接收功率">{{ port.opticalReceivePower / 100 }} dBm</NDescriptionsItem> <NDescriptionsItem v-if="!!port.opticalReceivePower && port.opticalReceivePower >= 0" label="光模块接收功率">{{ port.opticalReceivePower / 100 }} dBm</NDescriptionsItem>
<NDescriptionsItem v-if="port.opticalTransmitPower >= 0" label="光模块发送功率">{{ port.opticalTransmitPower / 100 }} dBm</NDescriptionsItem> <NDescriptionsItem v-if="!!port.opticalTransmitPower && port.opticalTransmitPower >= 0" label="光模块发送功率">{{ port.opticalTransmitPower / 100 }} dBm</NDescriptionsItem>
<NDescriptionsItem label="关联设备"> <NDescriptionsItem label="关联设备">
<span v-if="getLowerDeviceByPort(port)" style="text-decoration: underline; cursor: pointer" @click="() => navigateToLowerDevice(port)"> <span v-if="getLowerDeviceByPort(port)" style="text-decoration: underline; cursor: pointer" @click="() => navigateToLowerDevice(port)">
{{ getLowerDeviceByPort(port)?.name || '-' }} {{ getLowerDeviceByPort(port)?.name || '-' }}

View File

@@ -158,7 +158,7 @@ const { mutate: linkPortToDevice, isPending: linking } = useMutation({
} }
modifiedLowerDevice.linkDescription = JSON.stringify(modifiedLowerDeviceLinkDescription); modifiedLowerDevice.linkDescription = JSON.stringify(modifiedLowerDeviceLinkDescription);
// TODO: 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据 // 3. 发起update请求并获取最新的设备详情离线模式下直接修改本地数据
if (offlineDev.value) { if (offlineDev.value) {
return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice }; return { upperDevice: modifiedUpperDevice, lowerDevice: modifiedLowerDevice };
} }