@wjb8191174/elpis
v1.0.5
Published
## 一个企业级框架,使用全栈开发完成
Readme
elpis
一个企业级框架,使用全栈开发完成
model 配置
{
mode: "dashboard", // 模板类型
name: "", // 模板名称
desc: "", // 模板描述
icon: "", // 模板图标
homePage: "", // 首页路径
// 头部菜单
menu: [
{
key: "", // 菜单唯一描述
name: "", // 菜单名称
menuType: "", // 菜单类型 枚举值 group / module
// 当 menuType === group 时,subMenu 可填写
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, // 参考 element-plus el-table-column 配置
toFixed: 2, // 保留小数位
visible: true, // 是否在表格中展示
},
// 字段在 shearch-bar 中的配置
searchOption: {
...eleComponentConfig, // 参考 element-plus 组件配置
cmoType: "", // 配置组件类型 input/select/date-picker 等
default: "", // 默认值
// cmoType === select 时
enumList: [], // 下拉选项列表 [{ label: "", value: "" }]
// cmoType === dynamic-select 时
api: "", // 下拉选项数据源 api
},
// 字段在不同动态 component 中的配置,前缀对应 componentConfig 中的 key
// 例如 componentConfig.createFrom 则前缀为 createFormOption
// 字段在 createForm 中的配置
createFormOption: {
...eleComponentConfig, // 参考 element-plus 组件配置
comType: "", // 配置组件类型 input/select/input-number 等
visible: true, // 是否在表单中展示
disabled: false, // 是否禁用
default: "", // 默认值
// comType === select 时
enumList: [], // 下拉选项列表 [{ label: "", value: "" }]
},
editFormOption: {
...eleComponentConfig,
comType: "", // 配置组件类型 input/select/input-number 等
visible: true, // 是否在表单中展示
disabled: false, // 是否禁用
default: "", // 默认值
// comType === select 时
enumList: [], // 下拉选项列表 [{ label: "", value: "" }]
},
detailPanelOption: {
...eleComponentConfig,
},
},
},
requiredL: [], // 标记哪些字段是必填字段
},
// table 相关配置
tableConfig: {
headerButtons: [
{
label: "", // 按钮名称
eventKey: "", // 按钮事件名称
eventOption: {
// 按钮配置
// 当 eventKey === 'showComponent'
comName: "", // 组件名称,对应 componentConfig 中的 key
},
...elButtonConfig, // 参考 element-plus el-button 配置
},
], // 表格头部按钮
rowButtons: [
{
label: "", // 按钮名称
eventKey: "", // 按钮事件名称
// 按钮配置
eventOption: {
// 当 eventKey === 'showComponent'
comName: "", // 组件名称,对应 componentConfig 中的 key
// eventKey === 'remove'
params: {
// paramKey: 传递给事件的参数的键值
// rowValueKey: 传递给事件的参数的值,格式为 schema::tableKey,到 table 中找相应的字段
paramKey: rowValueKey,
},
},
...elButtonConfig, // 参考 element-plus el-button 配置
},
], // 表格行内按钮
},
// search-bar 相关配置
searchConfig: {},
// 动态组件 相关配置
componentConfig: {
// create-form 表单相关配置
createForm: {
title: "", // 表单标题
saveBtnText: "", // 保存按钮文字
},
// edit-form 表单相关配置
editForm: {
mainKey: "", // 主键字段 用于唯一标识要修改的数据对象
title: "", // 表单标题
saveBtnText: "", // 保存按钮文字
},
detailPanel: {
mainKey: "", // 主键字段 用于唯一标识要修改的数据对象
title: "", // 表单标题
},
// ...支持用户动态扩展
},
},
},
],
};服务端启动
const { serverStart } = require("@wjb8191174/elpis");
// 启动服务
const app = serverStart({
port: 3000,
// 其他配置项
});自定义服务端
- router-schema
- router
- contraller
- service
- extend
- config
前端构建
const { frontendBuild } = require("@wjb8191174/elpis");
// 编译前端工程
frontendBuild(process.env._ENV);自定义页面扩展
- 在
app/pages/目录下写入口 entry.xxxx.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/component-config.js
schema-form 自定义表单扩展
- 在
app/widgets/schema-form/complex-view目录下写表单组件及相关文件 - 配置到
app/widgets/schema-form/form-config.js
schema-search-bar 自定义搜索栏扩展
- 在
app/widgets/schema-search-bar/complex-view目录下写搜索栏组件及相关文件 - 配置到
app/widgets/schema-search-bar/search-item-config.js
