Skip to content

动态字段系统

动态字段系统允许管理员自定义 IP 地址的属性字段,满足不同场景的个性化需求。

功能概述

动态字段系统提供以下核心能力:

  • 自定义字段定义:管理员可以定义字段名称、标签、类型
  • 多种字段类型:支持文本、数字、下拉选择、日期等多种类型
  • 字段验证:支持必填验证、格式验证
  • 灵活启用:字段可以随时启用或禁用
  • 数据绑定:IP 地址可以填写自定义字段值

字段定义

字段属性

go
type FieldDefinition struct {
    ID          int       // 字段定义ID
    Name        string    // 字段名称(英文,用于存储)
    Label       string    // 字段标签(中文,用于显示)
    FieldType   string    // 字段类型
    IsRequired  bool      // 是否必填
    Options     JSON      // 选项(用于下拉、单选等类型)
    Description string    // 字段描述
    IsEnabled   bool      // 是否启用
    SortOrder   int       // 排序顺序
    CreatedAt   time.Time // 创建时间
    UpdatedAt   time.Time // 更新时间
}

字段类型

类型说明存储格式示例
text单行文本string"服务器001"
textarea多行文本string"这是详细描述..."
number数字number8080
select下拉选择string"生产环境"
radio单选string"是"
checkbox多选array["Web", "DB"]
date日期string"2024-01-15"
datetime日期时间string"2024-01-15 10:30:00"
email邮箱string"admin@example.com"
urlURLstring"https://example.com"

字段管理

创建字段

  1. 进入字段定义管理页面
  2. 点击"新建字段"
  3. 填写字段信息:
    • 字段名称(英文,如:server_type)
    • 字段标签(中文,如:服务器类型)
    • 选择字段类型
    • 设置是否必填
    • 添加字段描述
  4. 保存字段定义

配置选项

对于下拉选择、单选、多选类型,需要配置选项:

json
{
  "options": [
    { "label": "物理服务器", "value": "physical" },
    { "label": "虚拟机", "value": "virtual" },
    { "label": "容器", "value": "container" }
  ]
}

启用/禁用字段

  • 启用:字段在 IP 编辑页面显示
  • 禁用:字段隐藏,但已有数据保留

删除字段

删除字段定义时:

  • 字段定义被删除
  • 所有 IP 地址上的该字段数据被清除
  • 操作不可恢复,请谨慎操作

IP 地址绑定

填写自定义字段

编辑 IP 地址时,可以填写已启用的自定义字段:

go
type IPAddress struct {
    // ... 其他字段
    CustomFields JSON `json:"custom_fields"` // 自定义字段值
}

示例数据:

json
{
  "server_type": "virtual",
  "environment": "production",
  "port": 8080,
  "services": ["Web", "API"],
  "expiry_date": "2024-12-31"
}

字段验证

保存 IP 地址时,系统自动验证自定义字段:

  • 必填验证:检查必填字段是否已填写
  • 类型验证:检查值是否符合字段类型
  • 选项验证:检查值是否在预定义选项中

使用场景

场景1:服务器管理

定义字段记录服务器信息:

字段名称字段标签类型说明
server_type服务器类型select物理机/虚拟机/容器
os_type操作系统selectWindows/Linux/macOS
cpu_coresCPU核心数numberCPU配置
memory_gb内存(GB)number内存配置
disk_gb磁盘(GB)number磁盘配置
services运行服务checkboxWeb/DB/Cache等

场景2:网络设备管理

定义字段记录网络设备信息:

字段名称字段标签类型说明
device_type设备类型select交换机/路由器/防火墙
brand品牌text设备品牌
model型号text设备型号
serial_number序列号text设备序列号
purchase_date购买日期date购买时间
warranty_expiry保修到期date保修期限

场景3:业务系统管理

定义字段记录业务系统信息:

字段名称字段标签类型说明
system_name系统名称text业务系统名称
environment环境select开发/测试/生产
owner负责人text系统负责人
priority优先级select高/中/低
description描述textarea系统描述

导入导出支持

Excel 导入

自定义字段支持通过 Excel 导入:

  1. 导出模板包含自定义字段列
  2. 填写自定义字段值
  3. 导入时自动验证和保存

Excel 列名映射:

IP地址 | 主机名 | 服务器类型 | 操作系统 | 环境
-------|--------|-----------|----------|------
192.168.1.10 | web01 | 虚拟机 | Linux | 生产

Excel 导出

导出 IP 地址时包含自定义字段:

  • 每个自定义字段作为一列
  • 字段标签作为列标题
  • 多选类型以逗号分隔

API 接口

字段定义接口

方法路径说明
GET/api/field-definitions获取字段定义列表
POST/api/field-definitions创建字段定义
PUT/api/field-definitions/:id更新字段定义
DELETE/api/field-definitions/:id删除字段定义
PUT/api/field-definitions/:id/toggle启用/禁用字段

IP 地址字段接口

方法路径说明
GET/api/ip-addresses/:id/custom-fields获取 IP 的自定义字段值
PUT/api/ip-addresses/:id/custom-fields更新 IP 的自定义字段值

最佳实践

字段设计原则

  1. 命名规范:字段名称使用英文小写,单词间用下划线分隔
  2. 标签清晰:字段标签使用中文,清晰表达字段含义
  3. 类型选择:根据数据特点选择合适的字段类型
  4. 选项完整:下拉选项要覆盖所有可能的情况

字段管理建议

  1. 规划先行:在添加字段前规划好字段结构
  2. 避免冗余:不要创建重复或相似的字段
  3. 定期清理:定期检查和清理不再使用的字段
  4. 文档记录:记录每个字段的用途和填写规范

数据质量

  1. 必填设置:关键字段设置为必填
  2. 格式验证:使用合适的字段类型确保数据格式
  3. 选项限制:使用下拉选择限制输入范围
  4. 定期检查:定期检查自定义字段数据的完整性

基于 MIT 许可发布