{"_id":"@codewalkeralan/elpis","_rev":"2-be70513131eb26476650b0f151a2a600","name":"@codewalkeralan/elpis","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@codewalkeralan/elpis","version":"1.0.0","author":{"name":"zuo"},"license":"ISC","_id":"@codewalkeralan/elpis@1.0.0","maintainers":[{"name":"codewalkeralan","email":"529907451@qq.com"}],"dist":{"shasum":"d182b47b5ea195148b39602949e7cc1b6a8a715a","tarball":"https://registry.npmjs.org/@codewalkeralan/elpis/-/elpis-1.0.0.tgz","fileCount":80,"integrity":"sha512-jKWpFPJ54mmTl8BmXb1ufARE/Ktpy0ul8i/WzCubj9QINWabnScwjgv267PnMKCkFHxxyxqNhyCm34hSjCIn/A==","signatures":[{"sig":"MEUCIDPHfNHFCRWAp9tn6BrLgSSH59YWm28l8ugJOyBMyr0qAiEA9mYRcYc3wFQ/oyDO4byiumIgkX4cVpePGL9GYxoCXi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1207489},"main":"index.js","config":{"ghooks":{"commit-msg":"validate-commit-msg","pre-commit":"npm run lint"}},"gitHead":"1b65501e31506a7c3bdc2b05452cad948b089b88","scripts":{"lint":"eslint --quiet --ext js,vue .","test":"set _ENV=local && mocha test/**/*.js"},"_npmUser":{"name":"codewalkeralan","email":"529907451@qq.com"},"repository":{"url":"https://git.code.tencent.com/CodeWalkerAlan/Elpis.git","type":"git"},"_npmVersion":"10.9.2","description":"```js\r {\r   model: 'dashboard', //模板类型，不同模板类型对应不一样的模板数据结构\r   name: '', // 名称\r   desc: '', //描述\r   icon: '', \r   homePage: '', //首页项目配置\r   // 头部菜单\r   menu: [{\r     key: '', //菜单唯一描述\r     name: '',  //菜单名称\r     menuType: '', //枚举值，group/module\r     // 当menu","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ajv":"^6.10.2","koa":"2.7.0","md5":"^2.2.1","vue":"^3.3.4","glob":"^7.1.4","knex":"^0.19.0","less":"^3.8.1","path":"^0.12.7","vuex":"^4.1.0","axios":"^0.19.2","mysql":"^2.18.1","pinia":"^2.1.6","lodash":"^4.17.21","log4js":"^6.9.1","moment":"^2.29.4","echarts":"^5.5.0","express":"^4.18.2","nodemon":"^1.19.2","webpack":"^5.88.1","consoler":"^0.2.0","happypack":"^5.0.1","koa2-cors":"^2.0.6","css-loader":"^0.23.1","koa-router":"^7.4.0","koa-static":"^5.0.0","superagent":"^8.1.2","url-loader":"^4.1.1","vue-loader":"^17.2.2","vue-router":"^4.2.4","@babel/core":"^7.24.0","file-loader":"^6.2.0","less-loader":"^11.1.3","babel-loader":"^8.0.4","element-plus":"^2.3.7","jsonwebtoken":"^9.0.2","style-loader":"^0.14.1","koa-useragent":"2.0.0","node-schedule":"^2.1.1","webpack-merge":"^4.2.1","@babel/runtime":"^7.29.2","koa-bodyparser":"^4.2.1","koa-nunjucks-2":"^3.0.2","vue-json-viewer":"^3.0.4","vue-style-loader":"^4.1.2","@babel/preset-env":"^7.4.5","generate-password":"^1.7.1","html-webpack-plugin":"^5.5.3","clean-webpack-plugin":"^0.1.19","terser-webpack-plugin":"^4.2.3","webpack-dev-middleware":"^6.1.1","webpack-hot-middleware":"^2.25.4","mini-css-extract-plugin":"^2.7.6","css-minimizer-webpack-plugin":"^5.0.1","directory-named-webpack-plugin":"^4.0.1","@babel/plugin-transform-runtime":"^7.1.0","html-webpack-inject-attributes-plugin":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^6.1.4","assert":"^2.0.0","eslint":"^7.32.0","ghooks":"~1.0.3","supertest":"^4.0.2","babel-eslint":"^10.0.2","eslint-plugin-vue":"^9.17.0","validate-commit-msg":"~2.14.0","eslint-plugin-import":"^2.28.1"},"_npmOperationalInternal":{"tmp":"tmp/elpis_1.0.0_1775128880224_0.5779393413653904","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@codewalkeralan/elpis","version":"1.0.5","description":"```js\r {\r   model: 'dashboard', //模板类型，不同模板类型对应不一样的模板数据结构\r   name: '', // 名称\r   desc: '', //描述\r   icon: '', \r   homePage: '', //首页项目配置\r   // 头部菜单\r   menu: [{\r     key: '', //菜单唯一描述\r     name: '',  //菜单名称\r     menuType: '', //枚举值，group/module\r     // 当menu","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/CodeWalkerAlan/Elpis.git"},"author":{"name":"zuo"},"license":"ISC","dependencies":{"@babel/core":"^7.24.0","@babel/plugin-transform-runtime":"^7.1.0","@babel/preset-env":"^7.4.5","@babel/runtime":"^7.29.2","ajv":"^6.10.2","axios":"^0.19.2","babel-loader":"^8.0.4","clean-webpack-plugin":"^0.1.19","consoler":"^0.2.0","css-loader":"^0.23.1","css-minimizer-webpack-plugin":"^5.0.1","directory-named-webpack-plugin":"^4.0.1","echarts":"^5.5.0","element-plus":"^2.3.7","express":"^4.18.2","file-loader":"^6.2.0","generate-password":"^1.7.1","glob":"^7.1.4","happypack":"^5.0.1","html-webpack-inject-attributes-plugin":"^1.0.1","html-webpack-plugin":"^5.5.3","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","less-loader":"^11.1.3","lodash":"^4.17.21","log4js":"^6.9.1","md5":"^2.2.1","mini-css-extract-plugin":"^2.7.6","moment":"^2.29.4","mysql":"^2.18.1","mysql2":"^3.20.0","node-schedule":"^2.1.1","nodemon":"^1.19.2","path":"^0.12.7","pinia":"^2.1.6","style-loader":"^0.14.1","superagent":"^8.1.2","terser-webpack-plugin":"^4.2.3","url-loader":"^4.1.1","vue":"^3.3.4","vue-json-viewer":"^3.0.4","vue-loader":"^17.2.2","vue-router":"^4.2.4","vue-style-loader":"^4.1.2","vuex":"^4.1.0","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":"@codewalkeralan/elpis@1.0.5","gitHead":"4710692c7fbd9694c5d99987c11de74ea3a48d56","_nodeVersion":"22.13.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-UTJtlOFBiUhw5+QIA62eSg0XfOYdVkLdmFx2F1n+SBRXlin2aBdc5R7SHD8OjTpgAeFGju0wQrhTSNvb7tkFxw==","shasum":"25ae4e5ee76cdb4d3ef95092320d39574a96d6b3","tarball":"https://registry.npmjs.org/@codewalkeralan/elpis/-/elpis-1.0.5.tgz","fileCount":81,"unpackedSize":1208680,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDBh55RtMGCg9fgiG1pSN/GZSoOoCvApswEW2xjeW2cVAIgYNUaIVGbmzE1sdgPA10kAeQzzBM0XFO9LQinTm84og4="}]},"_npmUser":{"name":"codewalkeralan","email":"529907451@qq.com"},"directories":{},"maintainers":[{"name":"codewalkeralan","email":"529907451@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elpis_1.0.5_1775391282771_0.06927276493968804"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-02T11:21:20.072Z","modified":"2026-04-05T12:14:43.101Z","1.0.0":"2026-04-02T11:21:20.465Z","1.0.5":"2026-04-05T12:14:42.966Z"},"author":{"name":"zuo"},"license":"ISC","repository":{"type":"git","url":"https://git.code.tencent.com/CodeWalkerAlan/Elpis.git"},"description":"```js\r {\r   model: 'dashboard', //模板类型，不同模板类型对应不一样的模板数据结构\r   name: '', // 名称\r   desc: '', //描述\r   icon: '', \r   homePage: '', //首页项目配置\r   // 头部菜单\r   menu: [{\r     key: '', //菜单唯一描述\r     name: '',  //菜单名称\r     menuType: '', //枚举值，group/module\r     // 当menu","maintainers":[{"name":"codewalkeralan","email":"529907451@qq.com"}],"readme":"# elips\r\n## 一个企业级框架\r\n\r\n### model配置\r\n```js\r\n{\r\n  model: 'dashboard', //模板类型，不同模板类型对应不一样的模板数据结构\r\n  name: '', // 名称\r\n  desc: '', //描述\r\n  icon: '', \r\n  homePage: '', //首页项目配置\r\n  // 头部菜单\r\n  menu: [{\r\n    key: '', //菜单唯一描述\r\n    name: '',  //菜单名称\r\n    menuType: '', //枚举值，group/module\r\n    // 当menuType == group时，可填\r\n    subMenu: [{\r\n      // 可递归 menuItem\r\n    }, ...],\r\n    // 当menuType == module,可填\r\n    moduleType: '', // 枚举值 sider/ifame/custom/schema\r\n\r\n    // moduleType == sider\r\n    siderConfig: {\r\n      menu: [{\r\n        // 可递归menuItem, 除了menuType == sider\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: '', //自定义路由\r\n    },\r\n    // moduleType == schema\r\n    schemaConfig: {\r\n      api: \"\", //数据源api restful 规范\r\n      schema: {\r\n        type: 'object',\r\n        properties: {\r\n          key: {\r\n            ...schema, //标准schema配置\r\n            type: '', // 字段类型\r\n            label: '', // 字段中文名\r\n            // 字段在table中的相关配置\r\n            tableOption: {\r\n              ...elTableColumnConfig, //标准 el-table-column 配置2\r\n              toFixed: 0,\r\n              visible: true \r\n            },\r\n            searchOption: {\r\n              ...elTableColumnConfig,\r\n              comType: '', //配置组件类型 input/select/....\r\n              default: '',\r\n\r\n              // comType===select\r\n              enumList: [],\r\n\r\n              // comType === dynamicSelect\r\n              api: '',\r\n            },\r\n            // 字段在不同动态 component 中的相关配置， 前缀对应componentConfig中的键值\r\n            createFormOption: {\r\n              ...elTableColumnConfig,\r\n              comType: '',  //控件类型 input/select\r\n              visible: true, // 是否展示 默认是true\r\n              disabled: false, // 是否禁用 默认false\r\n              default: '',  // 默认值\r\n\r\n              // comType === select 时生效\r\n              enumList: [],\r\n            },\r\n            editFormOption: {\r\n              ...elTableColumnConfig,\r\n              comType: '',  //控件类型 input/select\r\n              visible: true, // 是否展示 默认是true\r\n              disabled: false, // 是否禁用 默认false\r\n              default: '',  // 默认值\r\n\r\n              enumList: [],\r\n            },\r\n            detailPanelOption: {\r\n              ...elTableColumnConfig,\r\n              \r\n            }\r\n          }\r\n        },\r\n        required: []\r\n      },\r\n      tableConfig: {\r\n        headerButtons: [\r\n          {\r\n            label: '', // 按钮中文名\r\n            eventKey: '', //按钮事件名\r\n            eventOption: {\r\n              // 当eventKey === showComponent\r\n              comName: ''  // 组件名称\r\n            }, //按钮具体配置\r\n            ...elButtonConfig, //标准elbutton 配置\r\n          }\r\n        ,...],\r\n        rowButtons: [\r\n          {\r\n            label: '',\r\n            eventKey: '',\r\n            eventOption: {\r\n              // 当eventKey = 'remove' \r\n              params: {\r\n                // paramsKey = 参数的键值\r\n                // rowValueKey = 参数值 （当格式为 schema::tableKey 的时候， 到table中找相应字段）\r\n                paramsKey: rowValueKey\r\n              }\r\n            },\r\n            ...elButtonConfig\r\n          }\r\n        ]\r\n      },  // table 相关配置\r\n      searchConfig: {}, // searchbar相关配置\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```js\r\nconst { \r\n  serverStart\r\n} = require('@codewalkeralan/elpis');\r\n\r\nconst app = serverStart({});\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```js\r\n  const { frontendBuild } = require('@codewalkeralan/elpis');\r\n\r\n  frontendBuild(process.env._ENV);\r\n```\r\n\r\n### 自定义页面扩展\r\n* 在 `app/pages/` 目录下写入口 entry.xxx.js\r\n\r\n### dashboard / custom-view 自定义页面扩展\r\n* 在 `app/pages/dashboard/xxx` 下写页面\r\n\r\n### dashboard / schema-view / components 动态组件扩展\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### schema-form 控件扩展\r\n1. 在 `app/pages/widgets/schema-form/complex-view` 下写控件\r\n2. 配置到 `app/pages/widgets/schema-form/form-item-config.js`\r\n\r\n### schema-search-bar 控件扩展\r\n1. 在 `app/pages/widgets/schema-search-bar/complex-view`下写组件\r\n2. 配置到 `app/pages/widgets/schema-search-bar/search-item-config.js`","readmeFilename":"Readme.md"}