一、设计核心定位
这份设计本质上是一套面向中后台系统的 Dashboard(数据看板 / 控制台)可视化配置化解决方案—— 通过定义标准化的 DSL(领域特定语言)配置结构,结合前端工程化的目录设计,实现中后台 Dashboard 页面从 “代码硬编码开发” 到 “配置驱动生成” 的范式转变,核心目标是降低中后台页面开发成本、提升业务适配灵活性。
二、关键文件夹定位与核心作用
整套目录设计围绕 “DSL 配置解析 - 组件渲染 - 业务落地” 的核心链路展开,核心文件夹的价值如下:
1. pages/dashboard(核心业务载体)
作为 Dashboard 的核心视图层,是 DSL 配置最终落地的载体:
· 拆分出header-view(头部菜单)、sider-view(侧边栏)、schema-view(DSL 渲染核心)、iframe-view(第三方页面嵌入)等子视图,将通用布局拆分为可复用模块;
· schema-view是核心入口:负责解析 DSL 配置中的schemaConfig,将配置转化为表格、搜索栏、按钮等页面元素,是 “配置转页面” 的关键执行层;
· 其他子视图(header-view/sider-view)解析 DSL 中的菜单配置(menu/siderConfig),实现导航结构的动态渲染。
2. widgets(通用组件支撑层)
作为支撑 DSL 配置渲染的组件底座,是 “配置语言” 与 “前端视图” 的桥梁:
· schema-table/schema-search-bar:直接映射 DSL 配置中的schemaConfig,封装 Element UI 基础组件(如el-table/el-input),并扩展toFixed/enumList等业务属性;
· header-container/sider-container:封装导航通用逻辑,接收 DSL 菜单配置并渲染为可视化导航组件,避免重复开发;
· 核心作用:将 DSL 配置中的抽象字段(如comType: select)映射为具体 UI 组件。
3. 辅助目录(效率与规范保障)
· pages/store:集中管理全局状态(如菜单选中状态、搜索条件),保障配置渲染的数据一致性;
· common/assets:封装通用工具函数(配置校验、接口请求)、静态资源,降低核心模块代码冗余。
三、DSL 配置设计的核心目标
这份dashboard-model.js配置的本质是 “用结构化 JSON 描述中后台 Dashboard 的所有核心要素”,核心解决三类问题:
1. 统一页面描述语言
通过标准化配置覆盖全维度需求:
· 导航层:menu/subMenu/siderConfig描述多级导航,支持group(分组菜单)、module(功能菜单);
· 内容层:moduleType区分 DSL 渲染 /sider/iframe/ 自定义等内容类型;
· 业务层:schemaConfig描述表格、搜索、按钮等核心业务元素,覆盖 “数据展示 - 筛选 - 交互” 完整链路。
2. 解耦 “业务配置” 与 “前端代码”
开发人员无需编写重复渲染代码,仅需修改配置:
· 新增业务表格:补充schemaConfig字段配置(如type: number/label: 订单金额),无需手写el-table;
· 调整导航结构:修改menu数组属性,无需改动导航组件核心逻辑。
3. 适配多场景业务需求
兼容中后台常见场景:
· 支持 iframe 嵌入、自定义页面,兼顾 “标准化 DSL 渲染” 与 “定制化开发”;
· 支持动态下拉选(dynamicSelect)、按钮事件配置(eventKey)等高频交互需求。
四、整套设计的核心优点
1. 极致提效:降低重复开发成本
中后台 80% 以上开发工作集中在 “表格 - 搜索 - 导航” 重复编码,本设计将其转化为 “配置编写”:
· 新增标准页面:从 “编写代码 + 调试组件” 缩短为 “编写配置 + 校验字段”;
· 通用组件统一维护,避免多页面重复造轮子。
2. 灵活适配:快速响应业务变更
业务变更时无需修改代码、重新打包:
· 调整表格列显示:修改tableOption.visiable;
· 新增搜索条件:补充schema.properties字段配置;
· 适配不同业务线:编写不同dashboard-model.js配置,核心逻辑无需改动。
3. 降低门槛:技术与业务解耦
· 非前端人员(产品 / 运营)可通过配置调整页面,无需理解 Vue/Element UI 底层逻辑;
· 前端人员聚焦组件封装、配置解析,无需陷入重复业务开发。
4. 规范统一:保障系统一致性
DSL 配置定义标准化字段与规则(如api遵循 Restful、组件属性兼容 Element UI),避免页面样式、交互、接口规范不一致,提升可维护性。
总结
核心关键点回顾
1. 设计本质:用 DSL 配置语言实现 “配置即页面”,解决中后台页面重复开发、变更成本高的问题;
2. 目录核心:pages/dashboard负责配置解析与渲染,widgets提供组件支撑,共同完成 “配置转页面”;
3. 核心优势:提效(减少重复编码)、灵活(适配业务变更)、规范(统一开发标准)。