Bullet Data

June 1, 2022 · View on GitHub

English | 中文

Bullet Data 目的是让配置数据管理可视化,能够根据数据格式自定义定制对应的编辑面板。支持 json 数据的可视化和格式化。

目前只支持 windows 平台。

截图

image-20220301155635709 image-20220301152952560 image-20220301154140204

示例数据在 example_data 文件夹。

功能点

  • 可视化配置数据
  • 动态修改结构方便,根据配置信息格式化数据
  • 支持字段的自定义校验
  • 支持字段的多级嵌套
  • 支持数据的多语言化

配置项文档

字段的配置项在 fields 里面开始配置,fields 中的 key 值为字段的 key 值,field 中子项的配置项如下:

配置项功能是否必填
type定义字段的类型,stringobjectnumberarrayselect
config对应类型的细分配置信息
name字段在界面上展示的名字

如果类型为 object,配置项需要新加一个配置项 fields,用来描述对应 object 拥有哪些字段,示例:

{
    "type": "object",
    "fields": {
        "id": {
            "type": "string",
            "config": {
                "colSpan": 3,
                "type": "singleline"
            }
        },
        "name": {
            "type": "string",
            "config": {
                "colSpan": 3,
                "type": "singleline"
            }
        },
        "desc": {
            "type": "string",
            "config": {
                "colSpan": 6,
                "type": "multiline"
            }
        }
    }
}

如果类型为 array,配置项需要新加一个配置项 fieldSchema,用来描述对应 array 子项的数据结构,示例:

{
    "type": "array",
    "fieldSchema": {
        "type": "string",
        "config": {
            "type": "multiline"
        }
    }
}

国际化的配置需要在最上层的 i18n 数组中添加对应语言的 key,数据为空默认是没有国际化。示例:

"i18n": ["zh","en"] // 表示需要 zh、en 这两个语言

数据类型配置信息

所有类型的通用配置:

配置项功能默认值
colSpan该项数据在卡片中的宽度占比(总宽度 12)类型为 object、array 是 12,string、number 是 3
defaultValue该项数据的默认值对应类型的默认值
enableWhen该项数据根据条件确定是否存在,js 函数无,示例:"enableWhen": "(obj) => obj.name === 'good'",其中 obj 为当前字段所在的对象

object:

配置项功能默认值
summary卡片标题内容,可支持数据格式化,通过 {{your_property}} 来引用属性值"{{___key}}",___key 为特殊标记,表示当前的字段名称
initialExpand是否默认展开数据true

array:

配置项功能默认值
summary子项卡片标题内容,可支持数据格式化,通过 {{your_property}} 来引用属性值"{{___index}}",___index 为特殊标记,表示当前子项的序列号
initialExpand是否默认展开数据false

string:

配置项功能默认值
type文本类型,"singleline" 为单行编辑,"multiline" 为多行编辑, "code" 为代码"singleline"
required是否必须true
customValidate自定义的校验函数,js 函数无,示例:"enableWhen": "(v) => v.includes('test')",其中 v 为当前的输入值
customValidateErrorText自定义校验失败时的错误提示文本""
minLen可输入文本最小长度1
maxLen可输入文本最大长度无限
height文本框的行高,type=multiline 或者 type=code 时才生效"200px"
needI18n是否需要国际化,当 type=code 时不生效false
codeLangtype="code" 时可用,值为 monca editor 的可选语言""

number:

配置项功能默认值
type数值类型,"int" 为整数,"float" 为浮点数"float"
required是否必须true
customValidate自定义的校验函数,js 函数无,示例:"enableWhen": "(v) => v > 1000",其中 v 为当前的输入值
customValidateErrorText自定义校验失败时的错误提示文本""
min可输入的最小值无限
max可输入的最小值无限
prefix数值前缀,只会显示在界面上,不影响实际数据输出""
suffix数值后缀,只会显示在界面上,不影响实际数据输出""

select:

配置项功能默认值
options选项列表,数组格式为 [{ "label": "Test", "value": "test"}][]

如何编译运行

npm install
npm run start