@shenhua2138/elpis
v1.0.0
Published
一个基于vue3 + koa的企业级应用框架
Downloads
6
Readme
elpis
一个企业级应用框架
model 配置
{
mode: 'dashboard', // 模板类型,不同的模板类型会有不同的配置项
name: "",
desc: "",
icon: "",
homePage: "" ,//首页
menu: [{
key: "",
name: "",
menuType: "", // group/module
// menuType == group,可填
subMenu:[{
}],
// 可递归menuItem
// menuType == module,可填
moduleType: "", // schema/iframe/sider/custom
// moduleType == iframe,
iframeConfig: {
path: ""
},
// moduleType == sider,
siderConfig: {
menu: [{
// 可递归menuItem,除了moduleType == sider
}]
},
// moduleType == custom,
customConfig: {
path: ''
},
// moduleType == schema,
schemaConfig: {
api: "",// 数据源api符合restful api规范
schema: { //模块数据解构
type: "object",
properties: {
key: {
...shcema, //标准schema配置
type: "", //字段类型
label:" ", //字段名
// 字段在table中的相关配置
tableOption: {
...elTableColumnConfig, // 标准el-table-column配置
visible: true,// false或者不配置则不展示
},
// 字段在search-bar中的相关配置
searchOption: {
...elComponentConfig, // el-component-column配置
comType: "",// 组件类型 input/select/
default: "", //默认值
// 当comType==select
enumList: [],
// 当comType==dynamicSelect
api: ''
},
// 字段在不同动态component的相关配置,前缀对应componentConfig中的键值
// 例如 componentConfig.createForm , 对应createFormOption
createFormOption: {
...elComponentConfig, // el-component-column配置
visible: true, // 是否展示,默认true
comType: "",// 组件类型 input/select/
default: "", //默认值
disabled: false, // 是否禁用,默认false
// 当comType==select
enumList: [],
},
// 字段在editForm中的配置
editFormOption: {
...elComponentConfig, // el-component-column配置
visible: true, // 是否展示,默认true
comType: "",// 组件类型 input/select/
default: "", //默认值
disabled: false, // 是否禁用,默认false
// 当comType==select
enumList: [],
},
// 字段在detailPanel中的配置
detailPanelOption: {
...elComponentConfig, // el-component-column配置
}
}
},
required: [],// 必选字段
},
tableConfig: {
headerButtons: [{
label: "",
eventKey: "", // 按钮事件名
// 按钮具体配置
eventOption: {
// 当eventKey === 'showComponent'
comName: "", // 组件名称
},
...elButtonConfig, // 标准el-button配置
}],
rowButtons: [{
label: "",
eventKey: "", // 按钮事件名
eventOption: {
// 当eventKey === 'showComponent'
comName: "", // 组件名称
// 当eventKey为remove时,eventOption.params是api参数
// removeKey为schema::key, 到table中寻找对应字段key
params: {
paramsKey: removeKeyValue
}
}, // 按钮具体配置
...elButtonConfig, // 标准el-button配置
}]
},
// search-bar相关配置
searchConfig: {},
// 动态组件相关配置
componentConfig: {
// create-form表单相关配置
createForm: {
title: "", // 表单标题
saveBtnText: "", // 保存按钮文案
},
// edit-form表单相关配置
editForm: {
mainKey: "", // 表单主键
title: "", // 表单标题
saveBtnText: "", // 保存按钮文案
},
// detail-panel表单相关配置
detailPanel: {
mainKey: "",
title: "",
}
//... 支持用户动态扩展
} //模块组件
},
}]
}服务启动
const { serverStart } = require("@shenhua2138/elpis");
// 启动 elpis 服务
const app = serverStart({});自定义服务端
- router-schema
- router
- controller
- service
- extend
- config
前端构建
const { frontEndBuild } = require("@shenhua2138/elpis");
// 编译构建前端工程
frontEndBuild(process.env_ENV);webpack 扩展
- 配置在
app/webpack.config.js
自定义页面扩展
- 在
app/page/目录下写入口 entry.xxx.js
dashboard / custom-view 自定义页面扩展
- 在
app/page/dashboard/xxx下写页面
dashboard / schema-view / component 动态组件扩展
- 在
app/page/dashboard/complex-view/schema-view/components/下写组件 - 配置到
app/page/dashboard/complex-view/schema-view/components/componentsConfig.js
schema-form 控件扩展
- 在
app/page/widgets/schema-form/complex-view/下写控件 - 配置到
app/page/widgets/schema-form/form-item-config.js
schema-search-bar 控件扩展
- 在
app/page/widgets/schema-search-bar/complex-view/下写控件 - 配置到
app/page/widgets/schema-search-bar/search-item-config.js
