1.0.0 • Published 8 months ago
@dong999/elpis v1.0.0
elpis
一个企业级应用,通过全栈实现
model 配置
{
mode: 'dashboard', //模板类型,不同类型对应不同的模板数据结构
name: '', //名称
desc: '', //描述
icon: '', //图标
homePage: '', //首页(项目配置)
//头部菜单
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: {
path: '', //iframe路径
},
//当moduleType为custom时
customConfig: {
path: '', // 自定义路由路径
},
// 当moduleType为schema时
schemaConfig: {
api: '', // 数据源API(遵循restful 规范)
schema: {
type: 'object',
properties: {
key: {
...schema, //标准schema配置
type: '', //字段类型
label: '', // 字段名称
// 字段在table配置
tableOption: {
...elTableColumnConfig, // 标准el-table-column配置
visible: true, // 是否显示 (默认true)
toFixed: 2, // 保留几位小数
},
// 字段在search-bar配置
searchOption: {
...elComponentConfig, // 标准el-component-column配置
comType: '', // 组件类型 input/select/datepicker/...
default: '', // 默认值
// 当comType == select
enumList: [], // 枚举值
// 当comType == dynamic select
api: '', //接口地址
},
// 字段在不同componentsConfig配置 例如create-form
createFormOption: {
...elTableColumnConfig, // 标准el-table-column配置
comType: '', // 组件类型 input/select/datepicker/
visible: true, // 是否显示 (默认true)
disabled: false, // 是否禁用
default: '', // 默认值
// 当comType == select
enumList: [], // 枚举值
},
editFormOption: {
...elTableColumnConfig, // 标准el-table-column配置
comType: '', // 组件类型 input/select/datepicker/
visible: true, // 是否显示 (默认true)
disabled: false, // 是否禁用
default: '', // 默认值
// 当comType == select
enumList: [], // 枚举值
},
detailPanelOption: {
...elTableColumnConfig, // 标准el-table-column配置
},
},
// ...
},
required: [], // 必填字段
},
tableConfig: {
headerButton: [
{
label: '', // 按钮名称
eventKey: '', // 事件名
eventOption: {
// 当eventKey为showComponent时
comName: '', // 组件名称
//
}, // 按钮事件配置
...elButtonConfig, // 标准el-button配置
},
],
rowButtons: [
{
label: '', // 按钮名称
eventKey: '', // 事件名
eventOption: {
// 当eventKey为remove时
params: {
// paramKey 参数的健值
// rowValueKey 参数值(当格式为schema::tableKey的时候,到table中找响应字段 => user_id::schema::user_id)
paramKey: rowValueKey,
},
// 当eventKey为showComponent时
comName: '', // 组件名称
}, // 按钮事件配置
...elButtonConfig, // 标准el-button配置
},
],
}, // table配置
searchConfig: {}, // search-bar配置
componentsConfig: {
// create-form 表单相关配置
createForm: {
title: '', // 表单标题
saveBtnText: '', // 保存按钮名称
},
// edit-form 表单相关配置
editForm: {
mainKey: '', // 表单主键 (userId,id)唯一标识要修改的对象
title: '', // 表单标题
saveBtnText: '', // 保存按钮名称
},
// detail-panel 详情面板相关配置
detailPanel: {
mainKey: '', // 主键 (userId,id)
title: '', // 标题
},
// ...支持用户自定义拓展
},
// 动态组件相关配置
},
},
],
};服务端启动
const { serverStart } = require('@dong999/elpis');
// 启动 elpis 服务
const app = serverStart({
name: 'ElpisDemo',
homePage: '/view/project-list'
});自定义服务端
- router-schema
- router
- controller
- service
- extend
- config
前端构建
const { frontendBuild } = require('@dong999/elpis');
// 编译构建前端工程
frontendBuild(process.env._ENV);自定义页面扩展
在 app/pages/ 目录下写入口 entry.xxx.js
dashboard / custom-view 自定义页面模板
在 app/pages/dashboard/xxx 下写页面
dashboard / schema-view / component 动态组件扩展
- 在
app/pages/dashboard/complex-view/schema-view/component下写组件 - 配置到
app/pages/dashboard/complex-view/schema-view/component/component-config.js
schema-form 控件扩展
- 在
app/pages/widgets/schema-form/complex-view下写控件 - 配置到
app/pages/widgets/schema-form/form-item-config.js
schema-search-bar 控件扩展
- 在
app/pages/widgets/schema-search-bar/complex-view下写控件 - 配置到
app/pages/widgets/schema-search-bar/search-item-config.js
1.0.0
8 months ago