{"_id":"@admin_666/elpis","name":"@admin_666/elpis","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@admin_666/elpis","version":"1.0.1","description":"```javascript\r // const modelList = 教学中没有 不写过不了校验\r {\r   mode: 'dashboard',// 模板类型 不同模板类型对应不一样的模板数据结构\r   name: '', // 名称\r   desc: '', // 描述\r   icon: '', // icon\r   homePage: '', //首页(项目配置)\r   // 头部菜单\r   menu: [{\r     key: '', // 菜单唯一描述\r     name: '', // 菜单","main":"index.js","scripts":{"lint":"eslint --quiet --ext js,vue .","test:win":"set _ENV=local&& mocha test/**/*.js"},"repository":{"type":"git","url":"https://git.code.tencent.com/zhutao_9527/Elpis.git"},"author":{"name":"zhutao"},"license":"ISC","dependencies":{"@babel/core":"^7.24.0","@babel/runtime":"^7.29.7","@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.29.7","@babel/preset-env":"^7.4.5","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","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":"latest","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":"@admin_666/elpis@1.0.1","gitHead":"4c2e82b576158978bd974844f2184ee8f7d84d6e","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-tDepiRPw9dRdqQq+9mz0cpI856UmRZxg0FhFAzZLqYBpo0VvmmrNbFtI7SUPNaWHJwXY1FzL0bousWuU8xwBgQ==","shasum":"a668d6c30c76124da54131106a5d1b4e518e1371","tarball":"https://registry.npmjs.org/@admin_666/elpis/-/elpis-1.0.1.tgz","fileCount":77,"unpackedSize":295287,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDfz1FNVvQlWsurJUHal1QCSxDveFwLn0DkNyzC/PI2hQIgHPiekpHKXEGjWRWCBIE2W7/rCOgA+pzTOWNbTFZ29ps="}]},"_npmUser":{"name":"admin_666","email":"zhutaober@163.com"},"directories":{},"maintainers":[{"name":"admin_666","email":"zhutaober@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elpis_1.0.1_1782307230787_0.8854387615736801"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-24T13:20:30.604Z","1.0.1":"2026-06-24T13:20:30.929Z","modified":"2026-06-24T13:20:31.131Z"},"maintainers":[{"name":"admin_666","email":"zhutaober@163.com"}],"description":"```javascript\r // const modelList = 教学中没有 不写过不了校验\r {\r   mode: 'dashboard',// 模板类型 不同模板类型对应不一样的模板数据结构\r   name: '', // 名称\r   desc: '', // 描述\r   icon: '', // icon\r   homePage: '', //首页(项目配置)\r   // 头部菜单\r   menu: [{\r     key: '', // 菜单唯一描述\r     name: '', // 菜单","repository":{"type":"git","url":"https://git.code.tencent.com/zhutao_9527/Elpis.git"},"author":{"name":"zhutao"},"license":"ISC","readme":"# elpis\r\n## 一个企业级全栈应用框架\r\n\r\n### model配置\r\n```javascript\r\n// const modelList = 教学中没有 不写过不了校验\r\n{\r\n  mode: 'dashboard',// 模板类型 不同模板类型对应不一样的模板数据结构\r\n  name: '', // 名称\r\n  desc: '', // 描述\r\n  icon: '', // 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    moduleType: '', // 枚举值: sider/iframe/custom/schema\r\n    // 当moduleType == sider\r\n    siderConfig: {\r\n      menu: [{\r\n        // 可递归menuItem 除了moduleType == 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/user', // 数据源API(遵循RESTFUL 规范)\r\n      schema: { // 板块数据结构\r\n        type: 'objects',\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 配置\r\n              toFixed: 0, // 保留小数点后几位\r\n              visible: true, // 默认为true (false时 表示不在表单中显示)\r\n            },\r\n            // 字段在search-bar 中的相关配置\r\n            searchOption: {\r\n              ...elComponentConfig, // 标准el-component 配置\r\n              comType: '', // 配置组件类型 input/select/....\r\n              default: '', // 默认值\r\n              // comType === 'select'\r\n              enumList: [], // 下拉框可选项\r\n              // comType === 'dynamicSelect' 需要有个api 请求数据\r\n              api: ''\r\n            },\r\n            // 字段在不同动态 component中的相关配置 前缀对应 componenTCofig中的键值\r\n            // 如: componenTCofig.createForm 这里对应 createFormOption\r\n            // 字段在createForm中相关配置\r\n            createFormOption: {\r\n              ...elComponentConfig, // 标准el-component 配置\r\n              comType: '', // 控件类型 input/ select/ input-number\r\n              visible: true, // 是否展示  默认为true\r\n              disabled: false, // 是否禁用  默认false\r\n              default: '', // 默认值\r\n              // comType === select 有enumList配置\r\n              enumList: [], // 下拉框可选项\r\n            },\r\n            // 字段在editForm中相关配置\r\n            editFormOption: {\r\n              ...elComponentConfig, // 标准el-component 配置\r\n              comType: '', // 控件类型 input/ select/ input-number\r\n              visible: true, // 是否展示  默认为true\r\n              disabled: false, // 是否禁用  默认false\r\n              default: '', // 默认值\r\n              // comType === select 有enumList配置\r\n              enumList: [], // 下拉框可选项\r\n            },\r\n            // 字段在detailPannel中的相关配置\r\n            detailPanelOption: {\r\n              ...elComponentConfig, // 标准el-component 配置\r\n            }\r\n          }\r\n        },\r\n        required: [], // 标记那些字段是必填项\r\n      },\r\n      tableConfig: {\r\n        headerButtons: [{\r\n          label: '', // 按钮中文名\r\n          eventKey: '', // 按钮事件名\r\n          // 按钮事件具体配置\r\n          eventOption: {\r\n            // 当eventKey === showConponent 配置comName内容\r\n            comName: '', // 组件名称\r\n          },\r\n          ...elButtonConfig, // el-button 组件配置\r\n        }],\r\n        rowButtons: [{\r\n          label: '', // 按钮中文名\r\n          eventKey: '', // 按钮事件具体配置\r\n          eventOption: {\r\n            // 当eventKey === showConponent 配置comName内容\r\n            comName: '', // 组件名称\r\n            // 当eventKey === remove\r\n            params: {\r\n              // paramKey = 参数的键值 请求带上的参数名 如: user_id\r\n              // rowValueKey = 参数值(当格式 为schema:: tableKey的时候 到table中找到响应的字段)  请求带上的参数值\r\n              paramsKey: rowValueKey\r\n            }\r\n          }, // 按钮事件具体配置\r\n          ...elButtonConfig, // el-button 组件配置\r\n        }]\r\n      }, // table相关配置\r\n      searchConfig: {}, // search-bar 相关配置\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        // comA: {},\r\n        // comB: {},\r\n        // ...\r\n      }\r\n    }\r\n  }]\r\n}\r\n```\r\n\r\n### 服务端启动\r\n``` javascrpit\r\nconst { serverStart } = require('@admin_666/elpis')\r\n\r\n// 启动elpis服务\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```javascript\r\nconst { frontendBuild } = require('@admin_666/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","_rev":"1-bb181c3ea0b5dbfa9ae240680af9be90"}