Bullet Data is aim to customize visualize configuration data. Support json data visualize.
Currently only the windows platform is supported.
Example data at example_data folder。
- Visualize configuration data
- convenient to dynamically modify the structure and format the data according to the configuration information
- Support custom validation of fields
- Supports multi-level nesting of fields
- Supports multilingualization of data
The configuration items of the fields are configured in fields. The key value in fields is the key value of the field. The configuration items of the sub-items in the field are as follows:
| field | feature | required |
|---|---|---|
| type | Defines the type of the field, string, object, number, array, select |
yes |
| config | Segment configuration information for the corresponding type | no |
| name | The name of the field displayed on the interface | no |
If the field type is object, the configuration item needs to add a new configuration item fields to describe which fields the corresponding object has, for example:
{
"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"
}
}
}
}If the field type is array, a configuration item fieldSchema needs to be added to describe the data structure of the corresponding array sub-item. Example:
{
"type": "array",
"fieldSchema": {
"type": "string",
"config": {
"type": "multiline"
}
}
}The internationalization configuration needs to add the key of the corresponding language in the topmost i18n array. If the data is empty, the default is no internationalization. Example:
"i18n": ["zh","en"] // Indicates that the two languages zh and en are required
Common configuration for all types:
| field | feature | default value |
|---|---|---|
| colSpan | The proportion of the width of the data in the card (total width 12) | Type is object, array is 12, string, number is 3 |
| defaultValue | Default value of field | Default value for the field type |
| enableWhen | The data determines whether it exists according to the conditions, js function | None, example: "enableWhen": "(obj) => obj.name === 'good'", where obj is the object where the current field is located |
object:
| field | feature | default value |
|---|---|---|
| summary | The content of the card title, which supports data formatting, and refers to the property value through {{your_property}} | "{{___key}}", ___key is a special mark, indicating the current field name |
| initialExpand | Whether to expand data by default | true |
array:
| field | feature | default value |
|---|---|---|
| summary | The title content of the sub-item card, which can support data formatting, and refer to the property value through {{your_property}} | "{{___index}}", ___index is a special mark, indicating the serial number of the current child |
| initialExpand | Whether to expand data by default | false |
string:
| field | feature | default value |
|---|---|---|
| type | Text type, "singleline" for single-line editing, "multiline" for multi-line editing, "code" for code editing | "singleline" |
| required | Is it necessary | true |
| customValidate | Custom validation function, js function | None, example: "enableWhen": "(v) => v.includes('test')", where v is the current input value |
| customValidateErrorText | Custom error text when validation fails | "" |
| minLen | Minimum length of text that can be entered | 1 |
| maxLen | Maximum length of text that can be entered | unlimited |
| height | The line height of the text box, only takes effect when type=multiline or type=code | "200px" |
| needI18n | Whether internationalization is required, not work when type=code | false |
| codeLang | Avaible when type="code" , monca editor code language | "" |
number:
| field | feature | default value |
|---|---|---|
| type | Numeric type, "int" is an integer, "float" is a floating point number | "float" |
| required | Is it necessary | true |
| customValidate | Custom validation function, js function | None, example: "enableWhen": "(v) => v > 1000", where v is the current input value |
| customValidateErrorText | Custom error text when validation fails | "" |
| min | The minimum value that can be entered | unlimited |
| max | The maximum value that can be entered | unlimited |
| prefix | Numerical prefix, only displayed on the interface, does not affect the actual data output | "" |
| suffix | Numerical suffix, only displayed on the interface, does not affect the actual data output | "" |
select:
| field | feature | default value |
|---|---|---|
| options | List of options, array format [{ "label": "Test", "value": "test"}] | [] |
npm install
npm run start

