{"_id":"@codertqy/elpis","name":"@codertqy/elpis","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@codertqy/elpis","version":"1.0.0","description":"```javascript\r {\r   mode: \"dashboard\"; // 模版类型，不同模版类型对应不一样的模版数据结构\r   name: \"\"; // 名称\r   desc: \"\"; // 描述\r   icon: \"\"; // icon\r   homePgae: \"\"; // 首页(项目配置)\r   // 头部菜单 多个\r   menu: [\r     {\r       key: \"\", //菜单唯一描述\r       name: \"\", //菜单名称\r       menuType: \"\",","main":"index.js","scripts":{"lint":"eslint --quiet --ext js,vue .","test":"set _ENV=local && mocha ./test/**/*.js"},"repository":{"type":"git","url":"https://git.code.tencent.com/codertqy/elpis.git"},"author":{"name":"codertqy"},"license":"ISC","dependencies":{"@babel/core":"^7.24.0","@element-plus/icons-vue":"^2.3.2","ajv":"^6.10.2","axios":"^0.19.2","echarts":"^5.5.0","element-plus":"^2.3.7","generate-password":"^1.7.1","glob":"^7.1.4","jsonwebtoken":"^9.0.2","knex":"^0.19.0","koa":"2.7.0","koa-bodyparser":"^4.2.1","koa-nunjucks-2":"^3.0.2","koa-router":"^7.4.0","koa-static":"^5.0.0","koa-useragent":"2.0.0","koa2-cors":"^2.0.6","less":"^3.8.1","lodash":"^4.17.21","log4js":"^6.9.1","md5":"^2.2.1","moment":"^2.29.4","mysql":"^2.18.1","node-schedule":"^2.1.1","nodemon":"^1.19.2","path":"^0.12.7","pinia":"^2.1.6","superagent":"^8.1.2","vue":"^3.3.4","vue-json-viewer":"^3.0.4","vue-router":"^4.2.4","vuex":"^4.1.0","@babel/plugin-transform-runtime":"^7.1.0","@babel/preset-env":"^7.4.5","babel-loader":"^8.0.4","clean-webpack-plugin":"^0.1.19","consoler":"^0.2.0","cross-env":"^10.1.0","css-loader":"^0.23.1","css-minimizer-webpack-plugin":"^5.0.1","directory-named-webpack-plugin":"^4.0.1","express":"^4.18.2","file-loader":"^6.2.0","html-webpack-inject-attributes-plugin":"^1.0.1","html-webpack-plugin":"^5.5.3","less-loader":"^11.1.3","mini-css-extract-plugin":"^2.7.6","style-loader":"^0.14.1","terser-webpack-plugin":"^5.3.16","thread-loader":"^4.0.4","url-loader":"^4.1.1","vue-loader":"^17.2.2","vue-style-loader":"^4.1.2","webpack":"^5.88.1","webpack-dev-middleware":"^6.1.1","webpack-hot-middleware":"^2.25.4","webpack-merge":"^4.2.1"},"devDependencies":{"assert":"^2.0.0","babel-eslint":"^10.0.2","eslint":"^7.32.0","eslint-plugin-import":"^2.28.1","eslint-plugin-vue":"^9.17.0","ghooks":"~1.0.3","mocha":"^6.1.4","supertest":"^4.0.2","validate-commit-msg":"~2.14.0"},"config":{"ghooks":{"commit-msg":"validate-commit-msg","pre-commit":"npm run lint"}},"_id":"@codertqy/elpis@1.0.0","gitHead":"6bdf4179f8a1ecd64672274f911c6b1078a1f9ce","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-39tTL5LKLoWgBJjIArN7x7dpCEJ41DPJZ7+sX9HF7W4UcV7PKPs/dofPzlFJB2NrlPTfUEKoZUqOL/7+C91VtA==","shasum":"ef995b20b58d405a4ee4db693aa39bb0512f9b01","tarball":"https://registry.npmjs.org/@codertqy/elpis/-/elpis-1.0.0.tgz","fileCount":83,"unpackedSize":702561,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAtLQlW1Dkk254VpNjwomNRUuCzjuvLdRpJ2Rte3fEZoAiEAttZZ7ipDI6/pBgi/dixFEHQ/QcSPh8O1MCAS6hsKrzE="}]},"_npmUser":{"name":"codertqy","email":"2725804977@qq.com"},"directories":{},"maintainers":[{"name":"codertqy","email":"2725804977@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elpis_1.0.0_1771140590977_0.46135379474795646"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-15T07:29:50.896Z","1.0.0":"2026-02-15T07:29:51.304Z","modified":"2026-02-15T07:29:51.497Z"},"maintainers":[{"name":"codertqy","email":"2725804977@qq.com"}],"description":"```javascript\r {\r   mode: \"dashboard\"; // 模版类型，不同模版类型对应不一样的模版数据结构\r   name: \"\"; // 名称\r   desc: \"\"; // 描述\r   icon: \"\"; // icon\r   homePgae: \"\"; // 首页(项目配置)\r   // 头部菜单 多个\r   menu: [\r     {\r       key: \"\", //菜单唯一描述\r       name: \"\", //菜单名称\r       menuType: \"\",","repository":{"type":"git","url":"https://git.code.tencent.com/codertqy/elpis.git"},"author":{"name":"codertqy"},"license":"ISC","readme":"# elpis\r\n\r\n## 这是一个企业级应用框架,通过全栈实现\r\n\r\n### model 配置\r\n\r\n```javascript\r\n{\r\n  mode: \"dashboard\"; // 模版类型，不同模版类型对应不一样的模版数据结构\r\n  name: \"\"; // 名称\r\n  desc: \"\"; // 描述\r\n  icon: \"\"; // icon\r\n  homePgae: \"\"; // 首页(项目配置)\r\n  // 头部菜单 多个\r\n  menu: [\r\n    {\r\n      key: \"\", //菜单唯一描述\r\n      name: \"\", //菜单名称\r\n      menuType: \"\", // 枚举值：group / module\r\n\r\n      // 当 menuType === group 时，可填\r\n      subMenu: [\r\n        {\r\n          //   可递归 menuItem\r\n        },\r\n        // ... 表示多个\r\n      ],\r\n      // 当 menuType === module 时，可填\r\n      moduleType: \"\", // 枚举值：sider / iframe / custom / schema\r\n\r\n      //   当 moduleType === sider 时  左侧菜单\r\n      siderConfig: {\r\n        menu: [\r\n          {\r\n            // 可递归 menuItem ( 除 moduleType === sider)\r\n          },\r\n        ],\r\n      },\r\n      //   当 moduleType === iframe 时\r\n      iframeConfig: {\r\n        path: \"\", // iframe 路径\r\n      },\r\n      //   当 moduleType === custom 时\r\n      customConfig: {\r\n        path: \"\", // custom 路径\r\n      },\r\n      //   当 moduleType === schema 时\r\n      schemaConfig: {\r\n        api: \"\", // 数据源 API （遵循 RESTFUL 规范）\r\n        shcema: {\r\n          // 板块数据结构\r\n          type: \"object\",\r\n          properties: {\r\n            key: {\r\n              ...schema, // 标准 schema 配置\r\n              type: \"\", // 字段类型\r\n              tabel: \"\", // 字段的中文名\r\n              // 字段在 table 中的相关配置\r\n              tableOption: {\r\n                ...elTableColumnConfig, // 标准 el-table-column 配置\r\n                visiable: true, // 默认为 true (false ，表示不在表单中显示)\r\n                toFixed: 2,\r\n              },\r\n              // 字段在 search-abr 中的相关配置\r\n              searchOption: {\r\n                ...elComponentConfig, // 标准 el-component-column 配置 比如组件库中的input、form等\r\n                comType: \"\", // 配置组件类型 input/select/....\r\n                default: \"\", // 默认值\r\n\r\n                // comType ===='select'\r\n                enumList: [], // 下拉框可选项\r\n                // comType ===='dynamicSelect'\r\n                api: \"\", // 请求api获取\r\n              },\r\n              // 字段在不同状态 component 中的相关配置，前缀对应 componentConfig 中的键值\r\n              // 如：componentConfig.createForm 这里对应 createFormOption\r\n              // 字段在 createForm 中相关配置\r\n              createFormOption: {\r\n                ...elTableColumnConfig, // 标准 el-component-column 配置\r\n                comType: \"\", // 控件类型 input/select/....\r\n                visible: true, // 是否展示（true/false） 默认为 true\r\n                disabled: false, //是否禁用（true/false） 默认为 false\r\n                default: \"\", //默认值\r\n\r\n                // comType ===='select'时生效\r\n                enumList: [], //枚举列表\r\n              },\r\n\r\n              // 字段在 editForm 表单中的相关配置\r\n              editFormOption: {\r\n                ...elTableColumnConfig, // 标准 el-component-column 配置\r\n                comType: \"\", // 控件类型 input/select/....\r\n                visible: true, // 是否展示（true/false） 默认为 true\r\n                disabled: false, //是否禁用（true/false） 默认为 false\r\n                default: \"\", //默认值\r\n\r\n                // comType ===='select'时生效\r\n                enumList: [], //枚举列表\r\n              },\r\n              detailPanelOption: {\r\n                ...elTableColumnConfig, // 标准 el-component-column 配置\r\n              },\r\n            },\r\n          },\r\n          required: [], // 标记哪些字段是必填\r\n        },\r\n        // table 相关配置\r\n        tableConfig: {\r\n          // 多个\r\n          headerButtons: [\r\n            {\r\n              label: \"\", //按钮中文名\r\n              eventKey: \"\", // 按钮事件名\r\n              // 按钮事件具体操作配置\r\n              eventOption: {\r\n                // 当 eventKey === 'showComponent'\r\n                comName: \"\", //组件名称\r\n              },\r\n              ...elButtonConfig, // 标准 el-button 配置 样式外观\r\n            },\r\n          ],\r\n          // 多个\r\n          rowButtons: [\r\n            {\r\n              label: \"\", //按钮中文名\r\n              eventKey: \"\", // 按钮事件名\r\n              eventOption: {}, // 按钮事件具体操作配置\r\n\r\n              // 当 eventKey === 'showComponent'\r\n              comName: \"\", //组件名称\r\n\r\n              // 当eventKey === 'remove'\r\n              params: {\r\n                // paramKey 为参数的键\r\n                // rowValueKey 为参数值（当格式为 schema::xxx 的时候，到 table中找响应字段）\r\n                // user_id: schema::1\r\n                paramKey: rowValueKey,\r\n              },\r\n              ...elButtonConfig, // 标准 el-button 配置 样式外观\r\n            },\r\n          ],\r\n        },\r\n        // search-bar 相关配置\r\n        searchConfig: {},\r\n        // 动态组件 相关配置   模块组件\r\n        componentConfig: {\r\n          // create-form 表单相关配置\r\n          createForm: {\r\n            title: \"\", // 表单标题\r\n            saveBtnText: \"\", //保存按钮文案\r\n          },\r\n          editForm: {\r\n            mainKey: \"\", //  表单主键，用于唯一标识要修改的数据对象\r\n            title: \"\", // 表单标题\r\n            saveBtnText: \"\", // 保存按钮文案\r\n          },\r\n          // detail-panel 相关配置\r\n          detailPanel: {\r\n            mainKey: \"\", //  表单主键，用于唯一标识要修改的数据对象\r\n            title: \"\", // 表单标题\r\n          },\r\n          // ...支持用户动态扩展\r\n        },\r\n      },\r\n    },\r\n  ];\r\n}\r\n```\r\n\r\n### 服务端启动\r\n\r\n```javascript\r\nconst { serverStart } = require(\"@codertqy/elpis\");\r\n\r\n// 启动 elpis 服务\r\nconst app = serverStart({});\r\n```\r\n\r\n### 自定义服务端\r\n\r\n- router-schema\r\n- router\r\n- controller\r\n- service\r\n- extend\r\n- config\r\n\r\n### 前端构建\r\n\r\n```javascript\r\nconst { frontendBuild } = require(\"@codertqy/elpis\");\r\n\r\n// 编译构建前端工程\r\nfrontendBuild(process.env._ENV);\r\n```\r\n\r\n### 自定义页面扩展\r\n\r\n- 在 `app/pages/` 目录下写入口 entry.xxx.js\r\n\r\n### dashboard/custom-view 自定义页面扩展\r\n\r\n- 在 `app/pages/dashboard/xxx` 下写页面\r\n\r\n### dashboard/schema-view/components 动态组件扩展\r\n\r\n1. 在 `app/pages/dashboard/complex-view/schema-view/components` 下写组件\r\n2. 配置到 `app/pages/dashboard/complex-view/schema-view/components/component-config.js`\r\n\r\n### dashboard/schema-view/components 动态组件扩展\r\n\r\n1. 在 `app/widgets/schema-form/complex-view` 下写控件\r\n2. 配置到 `app/widgets/schema-form/form-item-config.js`\r\n\r\n### dashboard/schema-view/components 动态组件扩展\r\n\r\n1. 在 `app/widgets/schema-search-bar/complex-view` 下写控件\r\n2. 配置到 `app/widgets/schema-search-bar/search-item-config.js`\r\n","readmeFilename":"README.md","_rev":"1-6ca37fb9f2304f21a5dcfc25d290adfb"}