1. 配置文件概述
OneCode-RAD 平台采用了灵活的配置体系,通过多个核心配置文件来控制设计器的行为、组件属性和系统参数。主要配置文件包括:
- conf.js: 系统级配置、字体图标、组件通用属性配置
- conf_widgets.js: 工具箱组件配置、组件结构定义
- fcconf.js: 图表组件配置、图表属性定义
- xuiconf.js: UI外观和开发环境设置
2. xuiconf.js - UI外观和开发环境配置
xuiconf.js
主要用于配置设计器的外观和开发环境参数。
javascript:e:/qoder/ocstudio/target/static/RAD/xuiconf.js
// [[Page Appearance
xui.ini.$PageAppearance = {
"theme":"default"
};
// ]]Page Appearance
// [[Font Icons CDN
// ]]Font Icons CDN
// [[Develop Env Setting
xui.ini.$DevEnv = {
"designViewConf":{
"width":800,
"height":600
}
};
// ]]Develop Env Setting
2.1 页面外观配置 ($PageAppearance)
属性 | 类型 | 说明 | 默认值 | 示例 |
---|---|---|---|---|
theme | String | 设计器主题 | "default" | "dark", "light", "custom" |
2.2 开发环境设置 ($DevEnv)
属性 | 类型 | 说明 | 默认值 | 示例 |
---|---|---|---|---|
designViewConf.width | Number | 设计视图默认宽度 | 800 | 1024 |
designViewConf.height | Number | 设计视图默认高度 | 600 | 768 |
3. conf.js - 系统级配置
conf.js
是系统的核心配置文件,包含字体图标定义、组件通用属性、设计器参数等配置。
3.1 字体图标配置 (xui.builtinFontIcon)
定义了设计器中使用的所有内置字体图标,包括 Font Awesome 和自定义 spa-icon 系列图标。
javascript
xui.builtinFontIcon = {
"fa fa-lg fa-calendar-plus-o": "fa fa-lg fa-calendar-plus-o",
"fa fa-lg fa-close": "fa fa-lg fa-close",
"fa fa-lg fa-circle-o-notch": "fa fa-lg fa-circle-o-notch",
'spafont spa-icon-data': '',
'spafont spa-icon-debug': '',
// ...更多图标定义
};
3.2 系统配置 (window.CONF)
通过 xui.merge(window.CONF, {...})
合并的方式定义系统级配置,包括:
- 功能开关
- 产品信息
- 服务API路径
- 正则表达式
- 设计器配置
- 组件默认属性
3.3 组件通用属性配置
conf.js
中定义了各种组件的通用属性配置,包括编辑器类型、默认值、选项等。
3.3.1 常用属性编辑器类型
编辑器类型 | 说明 | 示例 |
---|---|---|
checkbox | 复选框,用于布尔值设置 | {type: "checkbox", dftValue: true} |
input | 文本输入框,用于字符串设置 | {type: "input", maxlength: 50} |
textarea | 多行文本输入框 | {type: "textarea"} |
combobox | 下拉选择框 | {type: "combobox", editorListItems: ["left", "center", "right"]} |
spin | 数字微调框 | {type: "spin", precision: 0, increment: 1, min: 0, max: 100} |
listbox | 列表选择框 | {type: "listbox", editorListItems: ["", "AUTO", "WRAP"]} |
color | 颜色选择器 | {type: "color"} |
3.3.2 组件配置模板
conf.js
中为各类组件定义了属性模板,包括列表组件、表单组件、容器组件等。
javascript
items: {
"xui.UI.List": {
header: ["id", {
id: 'type',
type: "listbox",
editorListItems: ["", "split"]
}, "caption", "imageClass", "disabled", "hidden", "tagCmds", "tips", "tag", "tagVar"],
uniqueKey: "id"
},
// ...更多组件配置
}
4. conf_widgets.js - UI组件配置
conf_widgets.js
定义了设计器左侧工具箱中的组件结构、分类和初始属性。
4.1 组件分类结构
组件按照功能和类型进行分组,常见的分类包括:
- 布局组件
- 表单组件
- 列表组件
- 导航组件
- 移动组件
- 聚合模块
4.2 组件定义格式
每个组件定义包含以下核心属性:
属性 | 类型 | 说明 |
---|---|---|
id | String | 组件唯一标识符 |
key | String | 组件类型键值 |
caption | String | 组件显示名称 |
comment | String | 组件描述 |
imageClass | String | 组件图标类名 |
draggable | Boolean | 是否可拖拽 |
iniProp | Object | 组件初始属性 |
4.3 常见组件配置示例
4.3.1 移动导航组件
javascript
{
id: 'xui.UI.MTabs',
key: 'xui.UI.MTabs',
comment: '移动TAB导航',
caption: '',
imageClass: 'spafont spa-icon-c-tabs',
draggable: true,
iniProp: {
"barLocation": "left",
"barSize": "12em",
"sideBarStatus": "fold",
items: [
{"caption": "item 1", "id": "a", "imageClass": "xui-icon-number1"},
{"caption": "item 2", "id": "b", "imageClass": "xui-icon-number2"}
],
value: 'a'
}
}
4.3.2 表单布局组件
javascript
{
id: 'xui.UI.FormLayout',
key: 'xui.UI.FormLayout',
caption: '',
comment: '$RAD.widgets.esd.FormLayout',
imageClass: 'spafont spa-icon-c-grid',
draggable: true,
iniProp: {
"properties": {
"name": "TestForm",
"showEffects": "Classic",
"width": "50em",
"height": "20em",
"defaultRowHeight": 35,
"defaultColWidth": 150,
"layoutData": {
"rows": 3,
"cols": 2,
"merged": []
}
}
}
}
4.3.3 图表组件
conf_widgets.js
中定义了多种图表组件的默认配置,包括饼图、柱状图、折线图等。
javascript
FCPie: {
"chart": {
"caption": "Monthly Sales Summary",
"subcaption": "For the year 2006",
"xaxisname": "Month",
"yaxisname": "Sales",
"numberprefix": "$",
"useroundedges": "1",
"bgcolor": "FFFFFF,FFFFFF",
"showborder": "0",
"enablerotation": "0"
},
"data": [{"label": "January", "value": "17400"}, {"label": "February", "value": "19800"}]
}
5. fcconf.js - 图表组件配置
fcconf.js
定义了图表组件的详细配置属性和编辑器设置。
5.1 图表全局配置 (window.FCCONF)
javascript
window.FCCONF = {
gridAttr: {
numVisiblePlot: {type: "spin", precision: 2, increment: 0.1, min: 2, max: 100},
animate3D: {type: "checkbox"},
animation: {type: "checkbox"},
exeTime: {type: "spin", precision: 2, increment: 0.1, min: 0, max: 10},
palette: {type: "spin", precision: 0, increment: 1, min: 1, max: 5},
// ...更多图表属性配置
}
};
5.2 图表常用配置属性
属性 | 类型 | 说明 | 默认值 |
---|---|---|---|
animate3D | Boolean | 是否启用3D动画 | false |
animation | Boolean | 是否启用动画效果 | false |
exeTime | Number | 动画执行时间(秒) | 0 |
palette | Number | 调色板编号 | 1 |
paletteThemeColor | String | 主题颜色 | - |
showLabels | Boolean | 是否显示标签 | false |
rotateLabels | Boolean | 是否旋转标签 | false |
showShadow | Boolean | 是否显示阴影 | false |
use3DLighting | Boolean | 是否使用3D光照效果 | false |
maxLabelHeight | Number | 最大标签高度 | 0 |
labelDisplay | String | 标签显示方式 | "AUTO" |
6. 配置实战指南
6.1 定制设计器主题
通过修改 xuiconf.js
中的 $PageAppearance.theme
属性,可以切换设计器的主题:
javascript
// 修改为暗色主题
xui.ini.$PageAppearance = {
"theme":"dark"
};
6.2 自定义工具箱组件
在 conf_widgets.js
中,可以添加自定义组件或修改现有组件的配置:
javascript
// 添加自定义组件
xui.merge(window.CONF, {
widgets: [
{
id: 'custom.group',
key: 'custom.group',
comment: '自定义组件组',
group: true,
view: 'Gallery',
imageClass: 'fa fa-puzzle-piece',
sub: [
{
id: 'custom.component',
key: 'custom.component',
caption: '自定义组件',
comment: '我的第一个自定义组件',
imageClass: 'fa fa-star',
draggable: true,
iniProp: {
"width": "20em",
"height": "10em",
"caption": "自定义组件"
}
}
]
}
]
});
6.3 修改图表默认配置
在 fcconf.js
中,可以修改图表的默认配置,例如启用3D效果和动画:
javascript
window.FCCONF = {
gridAttr: {
// ...现有配置
animate3D: {type: "checkbox", dftValue: true},
animation: {type: "checkbox", dftValue: true},
exeTime: {type: "spin", precision: 2, increment: 0.1, min: 0, max: 10, dftValue: 2},
// ...更多配置
}
};
6.4 调整设计视图尺寸
通过修改 xuiconf.js
中的 designViewConf
属性,可以调整设计器的默认画布尺寸:
javascript
xui.ini.$DevEnv = {
"designViewConf":{
"width":1200,
"height":900
}
};
7. 配置文件加载顺序
OneCode-RAD 配置文件的加载顺序为:
- xuiconf.js - 首先加载,定义基础环境配置
- conf.js - 其次加载,定义系统核心配置
- fcconf.js - 然后加载,定义图表组件配置
- conf_widgets.js - 最后加载,定义工具箱组件配置
了解加载顺序有助于正确覆盖和扩展配置。
8. 配置最佳实践
- 备份原始配置:在修改任何配置文件前,先备份原始文件
- 模块化修改:按功能模块组织配置修改,便于维护
- 使用注释:为自定义配置添加详细注释,说明用途和参数
- 逐步测试:每次修改后测试效果,确保不会影响其他功能
- 版本控制:将配置文件纳入版本控制系统,便于追踪变更
通过合理配置这些文件,可以完全定制 OneCode-RAD 设计器的外观和功能,打造符合团队需求的开发环境。