1.0.0 • Published 8 months ago

@dong999/elpis v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

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 动态组件扩展

  1. app/pages/dashboard/complex-view/schema-view/component 下写组件
  2. 配置到 app/pages/dashboard/complex-view/schema-view/component/component-config.js

schema-form 控件扩展

  1. app/pages/widgets/schema-form/complex-view 下写控件
  2. 配置到 app/pages/widgets/schema-form/form-item-config.js

schema-search-bar 控件扩展

  1. app/pages/widgets/schema-search-bar/complex-view 下写控件
  2. 配置到 app/pages/widgets/schema-search-bar/search-item-config.js