本文从产品设计与代码结构出发,说明如何用带类型的菜单替代页面画布,组织单据、实体、字典、视图、大屏与流程能力,并说明其适用边界。
低代码概念很多,立场也不尽相同。本文从产品设计与代码结构出发,介绍该低代码开发平台(简称 该低代码平台)的核心思路——基于菜单体系构建应用,供选型与实施参考。力求客观描述能力边界与工程实现,不代替读者做结论。
行业里对低代码的解释常见有几类:拖拽页面、表单设计器、流程引擎、模型驱动、DSL 配置等。它们都有道理,但侧重点不同。
该平台的立场是:开发一个业务系统,本质上是在拼装一组功能入口(菜单);每个菜单对应一类工具,解决一类问题。应用不是「画出来」的一张大页面,而是由若干类型明确的菜单有效堆积而成。
因此,该低代码平台的产品骨架不是「页面画布」,而是 菜单体系:
层级 | 含义 | 代码中的载体 |
|---|---|---|
系统(System) | 一个应用/子系统 | GPM_System / MySystem |
模块(Module) | 功能分组 | GPM_Module |
菜单(Menu) | 具体功能入口,带类型(MenuModel) | GPM_Menu,字段 MenuModel |
创建菜单时,平台通过向导(GPN_Menu,「新建积木菜单」)引导实施人员选择工具类型,而不是从空白路由开始手写。
该低代码平台 = 基于菜单体系的低代码开发平台。 每个菜单是一把解决特定功能范围的工具;一个应用系统,是由不同类型的菜单有效堆积出来的。
若所有菜单都只是「URL + 标题」,平台只是门户壳子。该低代码平台用 MenuModel 区分菜单语义,例如:
Bill:单据列表与编辑EntityNoName:编号名称实体Dict / DictTable / DictTableTree:字典Start / Todolist / Runing:流程入口RptWhite / RptBlue:大屏DBList / GanttDBView:视图SelfUrl / Tabs:页面引用Info / Calendar / NetDisk 等:OA 应用类型决定:打开哪个 Vue 解析页、绑定哪类后端实体、权限与按钮如何初始化。实施人员选类型,平台生成菜单记录与默认能力,这是「低」的关键来源。
思路 | 做法 | 风险 |
|---|---|---|
堆页面 | 每个功能画一页 UI | 类型不清,复用难,权限与数据模型各写一套 |
堆菜单(该低代码平台) | 先选工具类型,再配置元数据/组件 | 需理解分类;高度定制仍要高代码 |
该低代码平台选择后者:先分类,再堆积。
从前端与后端对照,可大致看到产品边界。
主目录:前端模块源码目录该低代码平台/
目录 | 职责 |
|---|---|
GPM/CCMenu | 菜单实体、菜单模型、新建菜单向导 GPN_Menu |
CCBill | 单据、实体、字典、审核、方法、数据安全等 |
CCPrj | 工程引擎(甘特、任务、模板) |
DBView / CCBill/DBList | 数据源驱动的列表、左树右表、甘特视图 |
Windows / BigScreenDesigner / components | 信息窗、大屏与图表组件 |
GenerDBSrc | 通用数据源配置 |
Calendar 等 | OA 类能力入口 |
菜单创建入口集中在 GPN_Menu.ts 的分组定义;类型常量集中在 MenuModel.ts。
主目录:引擎源码模块该低代码平台/,单据相关在 CCBill/。
模块 | 职责 |
|---|---|
CCMenu | 系统 / 模块 / 菜单 / 权限中心 |
CCBill | 单据、实体、活动表单、方法、模板 |
CCPrj(WF 侧) | 工程模板与实例 |
Portal / DataV / Rpt | 门户窗体、大屏、报表 |
Dev2Interface该低代码平台 | 对外创建菜单、单据、实体、大屏等的接口 |
菜单表核心字段包括:MenuModel、UrlPath(Vue 组件路径)、UrlExt(路由参数)、FrmID / FlowNo、模块与系统归属、是否启用与缓存等。权限通过权限中心(PowerCenter)挂到菜单上。
该低代码平台不是另起一套与 BPM 无关的低代码。流程(该引擎)与单据、实体、工程、大屏共享组织、表单、数据源与权限底座。菜单体系把这些能力 挂到同一应用导航树 上,形成可交付的业务系统。
新建菜单向导把工具分成若干组。下面按「解决什么问题」说明,便于选型时对照需求。
问题:审批、公文、请假、订单、物联网等「按节点推进、需留痕」的事务。
工具能力概要:
流程菜单类型覆盖发起、待办、在途、抄送、查询等,可按「指定流程」细化,避免所有流程挤在同一入口。
问题:报销单、出库单、出门单等——有单号、标题,记录事情经过,偏「叙事文」性质。
特点(与实体区分,见代码与需求文档):
维度 | 单据 | 实体(编号名称) |
|---|---|---|
典型字段 | BillNo、Title、BillState | No、Name、EntityState |
主键 | OID | No |
性质 | 流水、事件、过程 | 主数据、属性说明 |
流程 | 可绑定节点、支持审核模式 | 一般不作为流程主表单 |
操作:创建单据、引入单据组件、导入单据模板;可选 AI 辅助生成表单。
问题:资产、学生、车辆等——有编号、名称,描述事物属性,偏「说明文」性质。
工具:创建实体、创建树实体、引入实体组件、导入实体模板。
树实体用于组织、分类等层级主数据,与扁平编号名称实体分开建模。
问题:省份、职位、大类小类等「不常变的键值对」。
工具:编号名称字典表、树结构字典表、引入字典维护。
字典与实体的边界:字典偏选项与分类;实体偏可维护的业务对象(可挂方法、权限、关联单据等)。实施时建议按变更频率与业务厚度选型。
问题:项目管理、甘特图、任务跟踪、里程碑——与「审批流」不同的进度管理范式。
平台将工程做成与流程对称的一等能力:类别 → 模板 → 实例;菜单上提供新建工程模板、引入工程组件(查询/发起/待办/在途/已完成)。任务可关联流程或单据等处理方式,适合「既要审批又要管进度」的场景。
问题:问卷、外部订单、样表、外部用户信息采集——偏外部分享与采集。
包含表单(调查/申报)、考卷(样表/测评)、流程(订单/审批)等入口,面向外网用户类型与采集次数配置。文档与界面标注「开发中」,选型时宜按当前版本验证后再落生产。
问题:经营分析、门户信息窗、图形统计。
工具:绑定/创建数据大屏(含可视化设计器项目)、白色风格信息窗、数据源列表、通用列表组件(GLEn)等。
问题:不新建业务表,而用数据源配置「怎么看数据」。
工具:不分页视图、分页视图、左树右表、二维/三维交叉报表等。适合台账、组织浏览、跨表分析。
问题:低代码配不满的定制逻辑——用 TypeScript 全栈配置,按页面模式编程。
平台抽象十余种页面模式(如 Search、Ens、TreeEns、GPN、GL、GanttEns、Tabs、DataV、Rpt2D/3D 等):基类定规则,子类写业务,少量 Vue 解析页统一渲染。菜单向导可把已有高代码组件挂进导航,并提供 AI 辅助生成实体包等能力。
低代码与高代码在同一菜单树共存:标准能力配置化,例外能力代码化,而不是二选一。
工具:自定义 URL 菜单、Tabs 页面容器。用于接入外部系统或把多个页面收进标签容器。
工具:实体从表、单据从表、流程从表。把从表数据提升为独立查询入口,便于明细台账与对账。
工具:信息发布、日程、日历、记事本、知识库、工作日志、网盘、自定义消息提醒等。偏办公配套,可按需挂到应用菜单,减少重复造轮子。
下面用「菜单堆积」描述一条常见实施路径(非唯一标准):
1. 建系统 / 模块(导航骨架)
2. 主数据:字典 + 实体(必要时树实体)
3. 业务流水:单据(及从表)
4. 审批:流程(绑定表单)+ 引入流程菜单
5. 进度类:工程模板 + 引入工程组件(如需要)
6. 查询分析:视图 / 交叉报表 / 大屏
7. 办公配套:OA 菜单(如需要)
8. 缺口:高代码组件或自定义 URL 补齐
9. 按菜单配置权限中心(可见、可操作)每一步对应向导里的一类工具;交付物是「可导航、可授权、可运行」的菜单树,而不是零散页面文件。
以下特征可从代码与运行行为核实,便于与其他低代码产品对比。
MenuModel + UrlPath/UrlExt 决定运行时解析方式,而不是仅存一个外链。
低代码不能消灭分析与建模;该低代码平台把建模结果映射为菜单类型与元数据,而不是承诺「零概念零培训」。
关于低代码,每个人都可以有自己的立场。该平台通过该低代码平台给出的一种工程化解释是:
若你正在做低代码选型,不妨用三个问题对照任意平台(包括该低代码平台):
本文基于当前仓库中的菜单向导、MenuModel 与 前端模块源码目录该低代码平台、BP.该低代码平台 结构整理,供参考;具体能力以你所使用的产品版本与实测为准。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。