@ljqxbd/elpis
v1.0.0
Published
```javascript { mode:"dashboard", // 模板类型,不同模板类型对应不一样的模板数据结构 name:"",//名称 desc:"",//描述 icon:"",//icon homePage:"",//首页(项目配置) // 头部菜单 meus:[{ key:"", // 菜单唯一描述 name:"",//菜单名称 menuType:"", // 枚
Readme
#elpis
elpis
一个企业级应用框架,通过全栈实现。
model 配置
{
mode:"dashboard", // 模板类型,不同模板类型对应不一样的模板数据结构
name:"",//名称
desc:"",//描述
icon:"",//icon
homePage:"",//首页(项目配置)
// 头部菜单
meus:[{
key:"", // 菜单唯一描述
name:"",//菜单名称
menuType:"", // 枚举值, group / model
// 当 menuType == group 时,可填
subMeus:[{
// 可递归 menuItem
},...],
// 当 menuType == model 时,可填
modelType:'',//枚举值 iframe / custom / schema / sider
// 当 modelType == sider 时
siderConfig:{
menu:[{
// 可递归 menuItem ( 除 modelType === sider)
},...]
},
// 当 modelType == iframs 时
iframeConfig:{
path:"", // iframe 路径
},
//当 modelType == custom 时
customConfig:{
path:"", // 自定义路由路径
},
//当 modelType == schema 时
schemaConfig:{
apip:"", // 数据源 API (遵循 RESTFUL 规范)
// 版块数据结构
schema:{
type:"object",
properties:{
// 属性数据结构
key:{
...schema, //标准 schema 配置
type:"",//字段类型
label:"", //字段的中文名
// 字段在 table 中的相关配置
tablelOption:{
// 标准 el-table-column 的配置
...elTableColumConfig,
// 保留小数点几位
toFixed:0,
// 默认为 true, false时, 表示不在表单中显示
visible:true,
},
searchOption:{
// 标准 el-component-column 的配置
...eleComponentConfig,
comType:"", //组件类型,枚举值 input / select / datepicker 等
// 默认值
default:"",
// comType === select 时, 下拉框可填
enumList:[
{
value:"",
label:""
}
],
// comType == 'dynamicSelect' 时, 填写动态数据源
api:""
},
// 字段在不同动态 component 中的相关配置,前缀对应componentConfig 中的键值
// 如 componentConfig.createFormOption,这里对应 createFormOption
// 字段在createForm 中相关配置
createFormOption:{
// 标准 el-component 的配置
...eleComponentConfig,
comType:"", //组件类型,枚举值 input / select / input-number 配置
visible:true, //是否展示(true/false),默认值 true
disabled:false, //是否禁用(true/false),默认值 false
default:"", //默认值
// comType === select 时, 下拉框枚举列表
enumList:[],
},
// 字段在 editForm 中相关配置
editFormOption:{
// 标准 el-component 的配置
...eleComponentConfig,
comType:"", //组件类型,枚举值 input / select / input-number 配置
visible:true, //是否展示(true/false),默认值 true
disabled:false, //是否禁用(true/false),默认值 false
default:"", //默认值
// comType === select 时, 下拉框枚举列表
enumList:[],
},
detailPanelOption:{
// 标准 el-component 的配置
...eleComponentConfig
}
},
...
},
//必填字段
required:[],
},
tableConfig:{
headerButtons:[{
label:"", //按钮名称
eventKey:"", //按钮事件名
//按钮具体配置
eventOptions:{
// 当 eventKey === 'showComponent'
comName:"", //组件名称
},
...elButtonConfig, // 标准的 el-button 配置
},...],
rowButtons:[{
label:"", //按钮名称
eventKey:"", //按钮事件名
eventOption:{
// 当 eventKey === 'showComponent'
comName:"", //组件名称
// 当 eventKey === 'remove'
params:{
// paramKey = 参数的键值
// rowValueKey = 参数值 格式为 schema::tableKey的时候,到table中找对应的字段)
paramKey:rowValueKey
}
}, //按钮具体配置
...elButtonConfig, // 标准的 el-button 配置
},...],
}, //tablel 相关配置
// search-bar 相关配置
searchConfig:{},
//动态组件 相关配置
componentConfig:{
// create-form 表单相关配置
createForm:{
title:"", // 表单标题
saveBtnText:"", // 保存按钮文案
}
// ... 支持用户动态扩展
},
// edit-form 表单相关配置
editForm:{
mainKey:"", //表单主键,用于唯一标识要修改的数据对象
title:"", // 表单标题
saveBtnText:"", // 保存按钮文案
},
// detail-panel 详情页相关配置
detailPanel:{
mainKey:"", //表单主键,用于唯一标识要修改的数据对象
title:"", // 表单标题
},
},
},...]
}服务端启动
const { serverStart } = require("@ljqxbd/elpis");
// 启动 elpis 服务
const app = serverStart();自定义服务器
- router-schema
- router
- controller
- service
- extend
- config
前端构建
const { frontendBuild } = require("@ljqxbd/elpis");
// 编译构建前端工程
frontendBuild(process.env._ENV);自定义页面扩展
- 在
app/pages/目录下写入口 entry.xxx.js
dashboard / custom-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/components-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中
