@coder02lq/elpis
v1.0.0
Published
```javascript module.exports = { mode: 'dashboard', // 模板类型描述, 不同模板类型对应不一样的数据结构
Downloads
93
Readme
elpis
一个企业级应用
dashboard model 配置
module.exports = {
mode: 'dashboard', // 模板类型描述, 不同模板类型对应不一样的数据结构
name: '', // 模板名称
desc: '', // 模板描述
icon: '', // icon
homePage: '', // 首页(项目配置)
// 头部菜单
menu: [
// menuItem[]
{
key: '', // 菜单唯一描述,
name: '', // 菜单名称
menuType: '', // 菜单类型, 枚举值: 'group' | 'module'
// 1. 当 menuType == group 时, 可填
subMenu: [], // menuItem[],
// 2. 当 menuType == module 时
moduleType: '', // 模块类型, 枚举值: 'schema' | 'iframe' | 'custom' | 'sider'
// 2.1 当 moduleType == schema 时
schemaConfig: {
api: '', // 数据源 API (遵循 RESTFUL 规范)
schema: {
// 模块数据结构
type: 'object',
properties: {
prop: {
...schema, // 标准 schema 结构
type: '', // 字段类型
label: '', // 字段中文名
// 字段在 table 中的相关配置
tableOption: {
...elTableColumnConfig, // 标准 el-table-column 配置
toFixed: 0, // 保留几位小数点
visible: true, // 控制该字段是否在表格展示, 默认 true(false则不在表格展示)
},
// 字段在 search-bar 中的相关配置
searchOption: {
...elComponentConfig, // 标准 el-component 配置
componentType: '', // 配置组件类型, 枚举值: 'input' | 'select' | 'dynamic-select' | 'date-range'
default: '', // 默认值
// componentType === 'select' 时, 可填
enumList: [{ label: '', value: '' }], // 下拉框选项
// componentType === 'dynamic-select' 时, 可填
api: '',
},
// 字段在不同动态组件中的相关配置, 前缀对应 componentConfig 中的键值
// 例如: componentOption.createFormOption, 这里就是 createFormOption
// 字段在 create-form 中的相关配置
createFormOption: {
...elComponentConfig, // 标准 el-component 配置
componentType: '', // 配置组件类型, 枚举值: 'input' | 'input-number' | 'select'
visible: true, // 是否展示, 默认 true(false则不在表格展示)
disabled: false, // 是否禁用, 默认 false
default: '', // 默认值
// componentType === 'select' 时, 可填
enumList: [{ label: '', value: '' }], // 下拉框选项
},
// 字段在 edit-form 中的相关配置
editFormOption: {
...elComponentConfig, // 标准 el-component 配置
componentType: '', // 配置组件类型, 枚举值: 'input' | 'input-number' | 'select'
visible: true, // 是否展示, 默认 true(false则不在表格展示)
disabled: false, // 是否禁用, 默认 false
default: '', // 默认值
// componentType === 'select' 时, 可填
enumList: [{ label: '', value: '' }], // 下拉框选项
},
// 字段在 detail-panel 中的相关配置
detailPanelOption: {
...elComponentConfig, // 标准 el-component 配置
},
},
},
// 哪些字段必填
required: [],
},
// table 相关配置
tableConfig: {
headerButtons: [
{
...elButtonConfig, // 标准 el-button 配置
label: '', // 按钮名称
eventKey: '', // 按钮事件名称
// 按钮具体配置
eventOption: {
// eventKey === 'showComponent'
componentName: '', // 组件名称
},
},
],
rowButtons: [
{
...elButtonConfig, // 标准 el-button 配置
label: '', // 按钮名称
eventKey: '', // 按钮事件名称
// 按钮具体配置
eventOption: {
// eventKey === 'showComponent'
componentName: '', // 组件名称
// eventKey === 'remove'
params: {
// paramKey 为参数的键值,
// rowValueKey 为参数值(格式为 schema::tableKey 时, 到 table 中找相应字段)
paramKey: rowValueKey,
},
},
},
],
},
// search-bar 相关配置
searchConfig: {},
// 动态组件相关配置
componentConfig: {
// create-form 相关配置
createForm: {
title: '', //表单标题
saveButtonText: '', // 保存按钮文案
},
// edit-form 相关配置
editForm: {
mainKey: '', // 表单主键, 唯一标识要修改的数据对象
title: '', //表单标题
saveButtonText: '', // 保存按钮文案
},
// detail-panel 相关配置
detailPanel: {
mainKey: '', // 表单主键, 唯一标识要修改的数据对象
title: '', //表单标题
},
},
},
// 2.2 当 moduleType == iframe 时
iframeConfig: {
path: '', // iframe 路径
},
// 2.3 当 moduleType == custom 时
customConfig: {
path: '', // 自定义路由路径
},
// 2.4 当 moduleType == sider 时
siderConfig: {
menu: [], // menuItem[], 这里 menuItem 的 moduleType 只能是 'schema' | 'iframe' | 'custom'
},
},
],
}
服务端启动
const { serverStart } = require('@coder02lq/elpis')
// 启动 elpis 服务
const app = serverStart({})自定义服务端
- app/controller
- app/extend
- app/middleware
- app/router-schema
- app/router
- app/service
- config
前端构建
const { frontendBuild } = require('@coder02lq/elpis')
// 编译构建前端工程
frontendBuild(process.env._ENV)自定义页面扩展
在 app/pages/ 目录下写入口文件 entry.xxx.js
import elpisBoot from '$elpisBoot'
import YourComponent from './your-component.vue'
elpisBoot(YourComponent)自定义 view 页面 dashboard/custom-view
在
app/pages/dashboard/xxx写页面组件在
app/pages/dashboard/router.js中进行配置
module.exports = ({routes, siderRoutes}) => {}动态组件扩展 dashboard/schema-view/components
- 在
app/pages/dashboard/complex-view/schema-view/components/下写组件
<script setup>
import { ref } from 'vue'
const name = ref('createForm')
const isShow = ref(false)
const show = () => {
isShow.value = true
}
const close = () => {
isShow.value = false
}
defineExpose({
name,
show,
})
</script>
<template></template>
<style scoped lang="less"></style>- 配置
app/pages/dashboard/complex-view/schema-view/components/component-config.js
schema-form 控件的扩展
- 在
app/pages/widgets/schema-form/complex-view/下写组件
<script setup>
const validate = () => {}
const getValue = () => {}
defineExpose({
name,
validate,
getValue,
})
</script>
<template></template>
<style scoped lang="less"></style>- 配置
app/pages/widgets/schema-form/form-item-config.js
schema-search-bar 控件的扩展
- 在
app/pages/widgets/schema-search-bar/complex-view/下写组件
<script setup>
const reset = () => {}
const getValue = () => {}
defineExpose({
reset,
getValue,
})
</script>
<template></template>
<style scoped lang="less"></style>- 配置
app/pages/widgets/schema-search-bar/search-item-config.js
