1.0.5 • Published 8 months ago

@sanxun8/elpis v1.0.5

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

#elpis

一个企业级全栈应用框架

model 配置

{
  mode: "dashboard", // 模板类型, 不同模板类型对应不一样得模板数据结构
  name: "", // 名称
  desc: "", // 描述
  icon: "", // icon
  homePage: "", // 首页 (项目配置)
  // 头部菜单
  menu: [
    {
      key: "", // 菜单唯一描述
      name: "", // 菜单名称
      menuType: "", // 枚举值, group / module

      // 当 menuType === group 时, 可填
      subMenu: [],

      // 当 menuType === module 时, 可填
      moduleType: "", // 枚举值, sider / iframe / custom / schema

      // 当 moduleType === sider 时, 可填
      siderConfig: {
        menu: [],
      },

      // 当 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: {
                ...elTableComlunConfig, //  标准 el-table-comlun
                toFixed: 2, // 保留小数点后几位
                visiable: true, // 默认为 true (false 表示不在列表中显示)
              },

              // 字段在 search-bar 中的相关配置
              searchOption: {
                ...elCompoentConfig, // 标准 el-component-column 配置
                comType: "", // 配置控件类型 input /select / ...
                default: "", // 默认值

                // comType === "select"
                enumList: [], // 下拉框可选项
              },

              // 字段在不同动态 component 中的相关配置, 前缀对应 componentConfig 中的键值
              // 如: componentConfig.createForm 对应 createFormOption
              // 字段在 createForm 中相关配置
              createFormOption: {
                ...elCompoentConfig, // 标准 el-component 配置
                comType: "", // 控件类型 input / select / input-number / ...
                visible: true, // 是否展示 (true / false) 默认为 true
                disabled: false, // 是否禁用 (true / false) 默认为 false
                default: "", // 默认值

                // comType === "select" 时生效
                enumList: [],
              },

              // 字段在 edit-form 表单中的相关配置
              editFormOption: {
                ...elCompoentConfig, // 标准 el-component 配置
                comType: "", // 控件类型 input / select / input-number / ...
                visible: true, // 是否展示 (true / false) 默认为 true
                disabled: false, // 是否禁用 (true / false) 默认为 false
                default: "", // 默认值

                // comType === "select" 时生效
                enumList: [],
              },

              // 字段在 detailPanel 中的相关配置
              detailPanelFormOption: {
                ...elCompoentConfig, // 标准 el-component 配置
              },
            },
          },
          required: [], // 标记哪些字段是必填项
        },
        tableConfig: {
          headerButtons: [
            {
              label: "", // 按钮中文名
              eventKey: "", // 按钮事件ming
              // 按钮具体配置
              eventOption: {
                // 当 eventKey === "showComponent"
                comName: "", // 组件名称
              },
              ...elButtonConfig, // 标准 el-button 配置
            },
          ],
          rowButtons: [
            {
              label: "", // 按钮中文名
              eventKey: "", // 按钮事件ming
              eventOption: {
                // 当 eventKey === "showComponent"
                comName: "", // 组件名称

                // eventKey === 'remove',
                params: {
                  // paramKey = 参数键值
                  // rowValueKey = 参数值, 格式为 schema:tableKey, 到 table 中找相应字段
                  paramKey: rowValueKey,
                },
              }, // 按钮具体配置
              ...elButtonConfig, // 标准 el-button 配置
            },
          ],
        }, // table 相关配置
        searchConfig: {}, // search-bar 相关配置
        // 模块组件
        componentConfig: {
          // create-form 表单相关配置
          createForm: {
            title: "", // 表单标题
            saveBtnText: "", // 保存按钮文案
          },

          // edit-form 表单相关配置
          editForm: {
            mainKey: "", // 表单主键, 用于唯一标识要修改的数据对象
            title: "", // 表单标题
            saveBtnText: "", // 保存按钮文案
          },

          // detailPanel 相关配置
          detailPanel: {
            mainKey: "", // 表单主键, 用于唯一标识要修改的数据对象
            title: "", // 表单标题
          },
        },
      },
    },
  ],
}

服务端启动

const { serverStart } = require("@sanxun8/elpis");

// 启动 elpis 服务
const app = serverStart({
  name: "ElpisDemo",
  homePage: "/view/project-list",
});

自定义服务端

  • router-schema
  • router
  • controller
  • service
  • extend
  • config

前端构建

const { frontendBuild } = require("@sanxun8/elpis");

// 编译构建前端工程
frontendBuild(process.env._ENV);

自定义页面扩展

  • app/pages/ 目录下写入口 entry.xxx.js

dashboard / custom-view 自定义页面扩展

  • app/pages/dashboard/xxx 下写页面

dashboard / schema-view / components 动态组件扩展

  1. app/page/dashboard/complex-view/schema-view/components 下写控件
  2. 配置到 app/page/dashboard/complex-view/schema-view/components/components-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