原理:内置组件的代码打在前端工程里,并在注册表 index.ts 注册成一个键;
widget_catalog 只存「目录行」(键 + 展示名 + 排序 + 启用 + 范围 + 角色 + 别名覆盖),不存内容。
用户端拿到候选池后按 code 去注册表查,命中就渲染对应 Vue 组件。
所以「登记」= 往目录表插一条 comp_type=1, code=注册表里的键 的记录,不会让代码里凭空多出一个组件。
components/widgets/XxxWidget.vuecomponents/widgets/index.ts 注册 { code, name }(键一旦发布就别改,改键 = 换身份)WidgetDataService 加白名单分支resources/sql/widget_catalog.sql 种子