@skfirstnpm/elpis
v1.0.2
Published
一个企业级应用
Readme
elpis
一个企业级全栈应用框架
model 配置
{
mode: "dashboard"; //模板类型,不同模板类型对应不一样的模板数据结构
name: ""; //名称
desc: ""; //描述
icon: ""; //图标
homePage: ""; //首页(项目配置)
// 头部菜单
menu: [
{
key: "", //菜单唯一描述
name: "", //菜单名称
menuType: "", //枚举值 ,group / module
// 当 menuType ==group 可填
subMenu: [
{
// 可递归 menuItem
},
],
// 当 menuType == module 可填
moudleType: "", //枚举值: sider/iframe/custom/schema
// 当 moudleType == sider 时
siderConfig: {
menu: [
{
// 可递归 menuItem(除moudleType == sider )
},
],
},
// 当 moudleType == iframe 时
iframeConfig: {
path: "", // iframe 路径
},
// 当 moudleType == custom 时
customConfig: {
path: "", // 自定义路由路径
},
// 当 moudleType == schema 时
schemaConfig: {
api: "/api/user", //数据源 API (遵循 RESTFUL 规范)
schema: {
type: "object",
properties: {
key: {
...schema, //标准 schema 配置
type: "", //字段类型
lable: "", //字段 中文名
// 字段在 table 中的相关配置
tableOption: {
...elTableColumnConfig, //标准 el-table-column 配置
toFixed: 0, //小数点位数
visible: true, //默认为 true (false ,表示不在表单中显示)
},
// 字段在 search-bar 中的相关配置
searchOption: {
...eleComponentConfig, //标准 el-component-column 配置
comType: "", //配置组件类型 input/select/...
default: "", //默认值
// comType==='select'
enumList: [], //选项列表
//comType==='dynamicSelect'
api: "",
},
// 字段在不同动态 component 中的相关配置,前缀对应 componentConfig 中的键值,
// 如:componentConfig.createForm 这里对应 createFormOption
// 字段在 createForm 中的相关配置
createFormOption: {
...eleComponentConfig, //标准 el-component 配置
comType: "", //控件类型 input/select/input-number
visible: true, //是否展示 默认true
disabled: false, //是否禁用 默认false
default: "", //默认值
// comType==='select' 时生效
enumList: [], //枚举列表
},
// 字段在 editForm 中的相关配置
editFormOption: {
...eleComponentConfig, //标准 el-component 配置
comType: "", //控件类型 input/select/input-number
visible: true, //是否展示 默认true
disabled: false, //是否禁用 默认false
default: "", //默认值
// comType==='select' 时生效
enumList: [], //枚举列表
},
detailPanelOption: {
...eleComponentConfig, //标准 el-component 配置
},
},
},
required: [], //标记 必填字段
},
// table 配置
tableConfig: {
headerButtons: [
{
lable: "", //按钮中文名
eventKey: "", //按钮事件名
//按钮配置项
eventOption: {
//当 eventKey === 'showComponent' 时
componentName: "", //组件名称
},
...elButtonConfig, //标准 el-button 配置
},
], // 表头按钮
rowButtons: [
{
lable: "", //按钮中文名
eventKey: "", //按钮事件名
eventOption: {
//当 eventKey == 'remove' 时
params: {
// paramsKey = 参数的键值
// rowValuKey = 参数值(当格式为 schema::tableKey 的时候,到 table中 找响应的值
paramsKey: rowValuKey, //删除时需要传递的参数名
},
}, //按钮配置项
...elButtonConfig, //标准 el-button 配置
},
], // 行按钮
},
// search-bar 配置
searchConfig: {},
// 动态组件 相关配置
componentConfig: {
// create-from 表单相关配置
createForm: {
title: "", //表单标题
saveBtnText: "", //保存按钮文案
},
editForm: {
mainKey: "", //表单组件,用于唯一标识要修改的数据对象
title: "", //表单标题
saveBtnText: "", //保存按钮文案
},
// detail-panel 详情面板相关配置
detailPanel: {
mainKey: "", //表单组件,用于唯一标识要修改的数据对象
title: "", //表单标题
},
// 支持用户自定义配置
},
},
},
];
}服务端启动
const { serverStart } = require("@skfirstnpm/elpis");
const app = serverStart({});自定义服务端
- router-schema
- router
- controller
- service
- extend
- config
构建前端
const { frontendBuild } = require("@skfirstnpm/elpis");
// 编译构建前端工程
frontendBuild(process.env._ENV);自定义页面扩展
- 在
app/pages/目录下写入口 entry.xxx.js
dashboard / custom-view 自定义页面扩展
- 在
app/pages/dashboard/xxxx下写页面
dashboard / shcema-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
