Lesson 05 · 表单引擎

schema 驱动的表单引擎

这是本项目最核心的抽象。看懂它,「加个字段」这类需求就变成十分钟的活。

📋 这一课还没写正文,这是大纲

课 01–04 已经出正文,够你把项目跑起来、看懂一次请求、看懂页面和状态。 05–09 属于「能独立干活」阶段,需要一个能连上 GM 服务、能真实读写配置表的环境才能写得可靠。

下面的目录不是占位符 —— 每一条都已经在源码里核对过入口, 你现在就可以照着自己去读

为什么排在这个位置

课 04 已经把两条链分开了:store/modules/ 是状态,store/config/ 是描述。这一课把描述那条链走到底 —— 一份 ConfigModel 到底怎么变成屏幕上的输入框、下拉、开关。

排在第 5 位是因为它的投资回报率最高。项目里 18 个配置模块共用同一套渲染机制,搞懂一次,18 个模块的需求你都会改了。而且这类需求在日常占比最大。

前置

会讲什么

  1. 一份字段定义的完整字段表。type / summary / desc / editor / options / meta / condition,各管什么,证据在 src/components/PropEditor/types/config.d.ts
  2. PropEditor/index.vue 怎么派发。它 import 了十几个控件组件,按 editor 字段决定渲染哪一个
  3. 控件全集速览。PropEditor/Components/ 下每个组件适合什么场景:Select / Switch / Time / TimeWeek / MapPoint / RelateDialog / GroupModel / SepGroup
  4. 联动显示。checkCondition()PropEditor/helper/handler.ts)怎么让「只有类型是 X 时才显示字段 Y」生效。store/config/Npc.ts 里有大量实例
  5. 字段分组与标签页。views/GameEditor/Npc/view.tsGroups —— 全项目只有 NPC 模块这么做,其余模块直接把分组写死在页面里
  6. 动手:给一张表加一个字段。从确认后端字段存在,到 schema 加定义,到验证 excel_modify 的 payload 带上了它
  7. 动手:加一个新控件类型。照着 Switch.vue 写一个,接进 PropEditor/index.vue 的派发
  8. 三档评级。这套设计哪里值得学(schema 与渲染分离),哪里别学(prop 传回调代替 emit、Item.ts 5647 行单文件、大段注释掉的死代码)

学完之后你应该能

在正文出来之前,你可以先做这些