From fafdb0d830fc0639744b956351407f92a37daaf2 Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Sun, 5 Jul 2026 18:00:17 +0800 Subject: [PATCH] feat: initialize snmp oid editor state --- .../device-collect/components/FormDialog.vue | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/views/ops/pages/dc/device-collect/components/FormDialog.vue b/src/views/ops/pages/dc/device-collect/components/FormDialog.vue index 927480e..290b6bd 100644 --- a/src/views/ops/pages/dc/device-collect/components/FormDialog.vue +++ b/src/views/ops/pages/dc/device-collect/components/FormDialog.vue @@ -368,6 +368,13 @@ watch( collect_interval: props.record.collect_interval || 60, policy_ids: props.record.policy_ids || [], }) + snmpOidEditMode.value = 'table' + try { + syncSnmpOidRowsFromJson() + } catch { + snmpOidEditMode.value = 'json' + snmpOidRows.value = [] + } } else { Object.assign(formData, { name: '', @@ -395,11 +402,44 @@ watch( collect_interval: 60, policy_ids: [], }) + snmpOidEditMode.value = 'table' + snmpOidRows.value = [] } } } ) +const addSnmpOidRow = () => { + if (snmpOidEditMode.value !== 'table') { + return + } + snmpOidRows.value.push(createEmptySnmpOidRow()) + syncSnmpOidJsonFromRows() +} + +const removeSnmpOidRow = (index: number) => { + snmpOidRows.value.splice(index, 1) + syncSnmpOidJsonFromRows() +} + +const handleSnmpOidRowChange = () => { + syncSnmpOidJsonFromRows() +} + +const switchSnmpOidEditMode = () => { + if (snmpOidEditMode.value === 'table') { + syncSnmpOidJsonFromRows() + snmpOidEditMode.value = 'json' + return + } + try { + syncSnmpOidRowsFromJson() + snmpOidEditMode.value = 'table' + } catch { + Message.warning('SNMP OID 配置必须是合法 JSON 数组,修正后才能切换到表格模式') + } +} + const handleOk = async () => { try { await formRef.value?.validate()