@pureweather/elpis
v1.0.1
Published
> 一个企业级应用框架,使用全栈实现
Downloads
308
Readme
elpis
一个企业级应用框架,使用全栈实现
model配置
{
mode: 'dashboard',//模板类型:不同模板类型对应不一样的模板数据结构
//头部菜单
menu: [{
key: '', //菜单唯一描述,
name: '', //菜单名称
menuType: '', //枚举值:group/module
//当menuType == 'group'时,可填
subMenu: [{
//可递归menuItem
}, ...],
//当menuType == 'module'时,可填
moduleType: '', //枚举值:sider/iframe/custom/schema
// 当moduleType == 'sider'时,可填
siderConfig: {
menu: [{
//可递归menuItem (除moduleType=='sider')
}, ...]
},
//当moduleType == 'iframe'时,可填
iframeConfig: {},
//当moduleType == 'custom'时,可填
customConfig: {
path: '', //自定义路由路径
},
//当moduleType == 'schema'时,可填
schemaConfig: {
api: '', //数据源API(遵循RESTFUL规范)
/* 示例
api ='/api/user',
GET '/api/user/:id' //获取单个用户
POST '/api/user' //新增用户
PUT '/api/user/:id' //修改用户
DELETE '/api/user/:id' //删除用户
GET '/api/user/list //获取用户列表
*/
schema: {
//板块数据结构
type: 'object',
properties: {
key: {
..schema, //标准schema配置
type: '',//字段类型
label: '' //字段的中文名
//字段在table中的相关配置
tableOption: {
toFixed: 2, //字段小数点后保留位
...elTableColunmConfig //标准的el-table-column配置
visibale: true, //默认为true (false时,表示不在表单中显示)
},
//字段在search-bar中的相关配置
searchOption: {
...eleComponentConfig //标准的el-column-component配置
compType: '',//配置组件类型 input/select/..
default: '', //字段默认值
//当compType == 'select'时,可填
enumList: [{
label: '', //选项中文名
value: '' //选项值
}, ...],
//当compType == 'dynamicSelect'时,可填
api: '',
},
createFormOption: {
...eleComponentConfig, // 标准的el-component配置
compType: '', //控件类型 input/search/input-number/...
visible: true, // 是否展示 默认为true
disabled: false, //是否禁用
default: '', //字段默认值
//当compType=='select'时,可填
enumList: [{
label: '', //选项中文名
value: '' //选项值
}, ...], // 枚举列表
},
editFormOption: {
...eleComponentConfig, // 标准的el-component配置
compType: '', //控件类型 input/search/input-number/...
visible: true, // 是否展示 默认为true
disabled: false, //是否禁用
default: '', //字段默认值
//当compType=='select'时,可填
enumList: [{}]
},
detailPanel: {
...eleComponentConfig, // 标准的el-component配置
visible: true, //是否展示
}
}
},
...
required: [], //标记哪些字段是必填项
},
tableConfig: {
headerButtons: [
{
label: ''//按钮中文名
eventKey: ''//按钮事件名
eventOption: {
//当eventKey=='showComponent'时,可填
componentName: '', //组件名称
},//按钮事件具体配置
...elButtonConfig //标准的el-button配置
}
],
rowButtons: [
{
label: '',//按钮中文名
eventKey: '',//按钮事件名
eventOption: {
//当eventKey=='showComponent'时,可填
componentName: '', //组件名称
//当eventKey == 'remove'时,可填
params: {
//paramKey =参数的键
//rowValueKey = 参数值,格式为schema::tableKey 到table中找相应的字段
paramKey: rowValueKey
},
},//按钮事件具体配置
...elButtonConfig //标准的el-button配置
}
]
},//table相关配置
searchConfig: {},//search-bar 相关配置
componentConfig: {
//create-form 表单相关配置
createForm: {
title: '', //创建表单标题
saveBtnText: '', //保存按钮文字
},
//edit-form 表单相关配置
editForm: {
mainKey: '', //表单主键,用于唯一标识
title: '', //修改表单标题
saveBtnText: '', //保存按钮文字
},
detailPanel: {
mainKey: '', //表单主键,用于唯一标识
title: '',
}
//...支持用户动态扩展
}, //模块组件: 这里配置的是整个大的组件 上面的option配置的是某个字段在组件里的表现
}
},...]
}服务端启动
const { serverStart } = require("@pureweather/elpis")
//启动elpis服务
const app = serverStart({})自定义服务端
- router-schema
- router
- controller
- service
- extend
- config
前端构建
const { frontendBuild } = require("@pureweather/elpis")
//编译构建前端工程
frontendBuild(process.env._ENV)自定义页面扩展
- 在
app/pages/目录下写入口 entry.xxx.js文件
dashboard/custrom-view 自定义页面扩展
- 在
app/pages/dashboard/xxxx下写页面
dashboard/schema-view/components 动态组件扩展
- 在
app/pages/dashboard/complex-view/schema-view/components下写组件 - 配置到
app/pages/dashboard/complex-view/schema-view/components/component-config.js
schema-form 控件扩展
- 在
app/widgets/schema-form/complex-view下写控件 - 配置到
app/widgets/schema-form/form-item-config.js
schema-search-bar 控件扩展
- 在
app/widgets/schema-search-bar/complex-view下写控件 - 配置到
app/widgets/schema-search-bar/search-item-config.js
