{"_id":"@chenyiliang123/elpis","_rev":"2-2003ebe8d0aef83fbe67c09d745c232c","name":"@chenyiliang123/elpis","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@chenyiliang123/elpis","version":"1.0.0","author":{"name":"陈一良"},"license":"ISC","_id":"@chenyiliang123/elpis@1.0.0","maintainers":[{"name":"chenyiliang123","email":"2798616516@qq.com"}],"dist":{"shasum":"216934ec904c3c8dea33c738e11074e0ca9db58f","tarball":"https://registry.npmjs.org/@chenyiliang123/elpis/-/elpis-1.0.0.tgz","fileCount":80,"integrity":"sha512-INqAPR4Ioai2WApFJ26VH1AaLwKeeuewjcJAgliFij/XpLMP0ZaH/Y1GNOjnVZD7dkPamrKS4VllEe20uhPgeg==","signatures":[{"sig":"MEQCIGH9bYUnzpzJ0/3S2hKzFD6lIUFQ5C0lJkmexsFndhuBAiABH10PdDRTRm/fkKTtezW/3Yr4S4wmBgzdk7rbjG9R8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1252648},"main":"index.js","config":{"ghooks":{"commit-msg":"validate-commit-msg","pre-commit":"npm run lint"}},"gitHead":"fc5033fbce1ab69b34a1091a24e328ec738b75cb","scripts":{"lint":"eslint --quiet --ext js,vue .","test":"_ENV='local' mocha 'test/**/*.js"},"_npmUser":{"name":"chenyiliang123","email":"2798616516@qq.com"},"repository":{"url":"https://e.coding.net/g-pdtm2532/elips/elpis.git","type":"git"},"_npmVersion":"10.2.3","description":"```javascript\r {\r     mode: 'dashboard', // 模板类型，不同模板类型对应不一样的模板数据结构\r     name: '', // 名称\r     desc: '', // 描述\r     icon: '', // 图标\r     homePage: '' , // 首页\r         // 头部菜单\r         menu: [{\r             key: '', // 菜单唯一描述\r             name: '', // 菜单名称\r","directories":{},"_nodeVersion":"18.19.0","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","cross-env":"^7.0.3","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","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":"^2.3.5","webpack-dev-middleware":"^6.1.1","webpack-hot-middleware":"^2.25.4","@element-plus/icons-vue":"^2.3.1","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_1744959039494_0.0421186237273965","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@chenyiliang123/elpis","version":"1.0.2","description":"```javascript\r {\r     mode: 'dashboard', // 模板类型，不同模板类型对应不一样的模板数据结构\r     name: '', // 名称\r     desc: '', // 描述\r     icon: '', // 图标\r     homePage: '' , // 首页\r         // 头部菜单\r         menu: [{\r             key: '', // 菜单唯一描述\r             name: '', // 菜单名称\r","main":"index.js","scripts":{"lint":"eslint --quiet --ext js,vue .","test":"_ENV='local' mocha 'test/**/*.js"},"repository":{"type":"git","url":"https://e.coding.net/g-pdtm2532/elips/elpis.git"},"author":{"name":"陈一良"},"license":"ISC","dependencies":{"@babel/core":"^7.24.0","@element-plus/icons-vue":"^2.3.1","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":"^7.0.3","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","happypack":"^5.0.1","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":"^2.3.5","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":"@chenyiliang123/elpis@1.0.2","gitHead":"365ddbc83830cbd97ed9bca4f3abc0111a9e663a","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-U+eKznUjxeeLjHsbQPKUJ9wg5OLEkRFKe106VvKSA3T/KnAM2+7gc9HP5u5laXPXXM42y4XfxWDrUIdT4Nl6mg==","shasum":"918a9ebbeac77c9eddf6c89540b74abd7b931607","tarball":"https://registry.npmjs.org/@chenyiliang123/elpis/-/elpis-1.0.2.tgz","fileCount":82,"unpackedSize":1256283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCKoVjKn25+AQDDrWk2Rmd6yFQ3jTrMaLxzBRU+JufBVAIhANPIs+C5MOXfbtOe0zl9jF2s7igRUFavzLbg1pHvS5g4"}]},"_npmUser":{"name":"chenyiliang123","email":"2798616516@qq.com"},"directories":{},"maintainers":[{"name":"chenyiliang123","email":"2798616516@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elpis_1.0.2_1745224431783_0.23380498357301827"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-18T06:50:39.445Z","modified":"2025-04-21T08:33:52.157Z","1.0.0":"2025-04-18T06:50:39.766Z","1.0.2":"2025-04-21T08:33:51.995Z"},"author":{"name":"陈一良"},"license":"ISC","repository":{"type":"git","url":"https://e.coding.net/g-pdtm2532/elips/elpis.git"},"description":"```javascript\r {\r     mode: 'dashboard', // 模板类型，不同模板类型对应不一样的模板数据结构\r     name: '', // 名称\r     desc: '', // 描述\r     icon: '', // 图标\r     homePage: '' , // 首页\r         // 头部菜单\r         menu: [{\r             key: '', // 菜单唯一描述\r             name: '', // 菜单名称\r","maintainers":[{"name":"chenyiliang123","email":"2798616516@qq.com"}],"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: '', // 图标\r\n    homePage: '' , // 首页\r\n        // 头部菜单\r\n        menu: [{\r\n            key: '', // 菜单唯一描述\r\n            name: '', // 菜单名称\r\n            menuType: '', // 枚举值: group/module\r\n\r\n            // 当 menuType == group时，可填\r\n            subMenu: [{\r\n                // 可递归 menuItem\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                    // 可递归 menuItem(除了moduoleType === sider)\r\n                }, ...]\r\n            },\r\n\r\n            // 当 moduleType == iframe时，可填\r\n            iframeConfig: {\r\n                path: '', // iframe路径\r\n            },\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                                ...elTableColumnCofing, // 标准el-table-column配置\r\n                                toFixed: 0, // 保留小数点后几位\r\n                                visiable: true, // 默认为true（false 时，表示不在表单中显示）\r\n                            },\r\n                            // 字段在search-bar中的相关配置\r\n                            searchOption: {\r\n                                ...eleComponentConfig, // 标准el-component-column配置\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                            // 如：componentConfig.createForm, 这里对应 createFormOption\r\n                            // 字段在createForm中相关配置\r\n                            createFormOption: {\r\n                                ...eleComponentConfig, // 标准el-component-column配置\r\n                                comType: '', // 控件类型 input/select/input-number\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                            // 字段在 editForm表单中的相关配置\r\n                            editFormOption: {\r\n                                ...eleComponentConfig, // 标准el-component-column配置\r\n                                comType: '', // 控件类型 input/select/input-number\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                                ...eleComponentConfig, // 标准el-component-column配置\r\n                            }\r\n                        },\r\n                        ...\r\n                    },\r\n                    required: [] // 必填项\r\n                },\r\n                // table 相关配置\r\n                tableConfig: {\r\n                    headerButtons: [{\r\n                        label: '', // 按钮中文名\r\n                        evenKey: '', // 按钮事件名\r\n                        // 按钮具体配置\r\n                        eventOption: {\r\n                            // 当 eventKey === 'showComponent'\r\n                            comName: '' //组件名称\r\n                        },\r\n                        ...elButtonConfig, //  标准 el-button配置\r\n                    }, ...],\r\n                    rowButtons: [{\r\n                        label: '', // 按钮中文名\r\n                        evenKey: '', // 按钮事件名\r\n                        eventOption: {\r\n                            // 当 eventKey === 'showComponent'\r\n                            comName: '', //组件名称\r\n\r\n                            // 当eventKey ==== 'remove'\r\n                            params: {\r\n                                // paramKey = 参数的键值\r\n                                // rowValue = 参数值，格式为schema::tableKey的时候，到table中找到响应的字段）\r\n                                paramKey: rowValueKey\r\n                            }\r\n                        }, // 按钮具体配置\r\n                        ...elButtonConfig, //  标准 el-button配置\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                    // edit-form 表单相关配置\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 {\r\n    serverStart\r\n} = require('@chenyiliang/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```JavaSciprt\r\nconst {frontendBuild} = require('@chenyiliang/elpis');\r\n\r\n// 编译构建前端工程\r\nfrontendBuild(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/widgets/schema-form/complex-view`下写控件\r\n2.配置到 `app/widgets/schema-form/form-item-config.js`\r\n\r\n### schema-search-bar 控件拓展\r\n1.在`app/widgets/schema-search-bar/complex-view`下写控件\r\n2.配置到`app/widgets/schema-search-bar/search-item-config.js`\r\n\r\n","readmeFilename":"README.md"}