feat: custom assets + group rules + perf + docs

This commit is contained in:
2026-02-26 21:08:08 +08:00
parent cfccdeb246
commit 5cb37923c1
12 changed files with 656 additions and 36 deletions

View File

@@ -6,8 +6,8 @@
**技术栈:** Vue 3 + LogicFlow + Element Plus + Pinia
**目标:** 作为独立编辑器和可嵌入组件,支持在 onmyoji-wiki 中作为块插件使用
**当前状态:** ✅ 阶段 1 完成(独立编辑器)+ ✅ 阶段 2 完成(组件化改造)
**总体完成度:** 100%(核心功能)
**当前状态:** ✅ 阶段 1 完成(独立编辑器)+ ✅ 阶段 2 完成(组件化改造)+ 🔄 阶段 3 进行中wiki 集成稳定化)
**总体完成度:** 92%(核心功能完成,集成与质量收尾中
---
@@ -206,30 +206,30 @@
---
### 🎨 阶段 3wiki 集成测试(待开发
### 🎨 阶段 3wiki 集成测试(进行中
**目标:** 在 onmyoji-wiki 中测试集成效果
#### 步骤 5本地引用测试1-2 天)
- [ ] 在 wiki 中引用 yys-editorfile: 方式)
- [ ] 创建 YysEditorBlock 组件
- [ ] 测试预览模式
- [ ] 测试编辑模式
- [ ] 测试数据保存
- [x] 在 wiki 中引用 yys-editorfile: 方式)
- [x] 创建集成包装层(当前以 `/editor` 页面集成替代独立 `YysEditorBlock` 组件
- [x] 测试预览模式
- [x] 测试编辑模式
- [x] 测试数据保存
#### 步骤 6交互优化2-3 天)
- [ ] 优化模式切换体验
- [ ] 优化数据同步
- [ ] 优化错误处理
- [x] 优化模式切换体验
- [x] 优化数据同步
- [x] 优化错误处理
- [ ] 优化加载性能
**验收标准:**
- 在 wiki 中可以正常使用
- 预览/编辑切换流畅
- 数据保存正确
- 体验类似 Notion 块
- 在 wiki 中可以正常使用(已达成)
- 预览/编辑切换流畅(已达成)
- 数据保存正确(已达成)
- 体验类似 Notion 块(进行中,持续优化)
---
@@ -301,12 +301,12 @@ wiki 文档
**完成时间:** 2026-02-20
### Milestone 3wiki 集成(待开发
- [ ] 本地引用测试
- [ ] 交互优化
### Milestone 3wiki 集成(进行中
- [x] 本地引用测试
- [~] 交互优化(已完成主要问题修复,继续打磨性能)
- [ ] 文档完善
**预计完成:** wiki 同步
**预计完成:** 2026-03 第 1 周(随 wiki 联调收尾)
---
@@ -428,6 +428,11 @@ const handleCancel = () => {
## 📝 更新日志
### 2026-02-26
- ✅ 修复嵌入式编辑器在 wiki 弹层中的画布高度与边界占满问题(多次 resize + 容器高度链路修正)
- ✅ 修复编辑已有资产后立即保存时数据偶发不刷新的问题(保存前 flush + 预览强制 key 更新)
- ✅ 完成与 onmyoji-wiki 的本地库联调闭环(`build:lib` + `file:../yys-editor`
### 2026-02-25
- ✅ 修复嵌入编辑器在 onmyoji-wiki 弹层中的初始化尺寸异常
- 编辑区域高度改为基于容器测量后计算
@@ -453,6 +458,7 @@ const handleCancel = () => {
---
**最后更新:** 2026-02-20
**最后更新:** 2026-02-26
**文档版本:** v2.2.0wiki 集成稳定化进行中)
**文档版本:** v2.1.0(组件化改造完成)
**文档版本:** v2.0.0(重新规划)

6
docs/test/README.md Normal file
View File

@@ -0,0 +1,6 @@
# 测试索引yys-editor
本目录用于记录 yys-editor 的人工验收测试点(不包含自动化测试)。
- 主验收清单:`docs/test/acceptance.md`

116
docs/test/acceptance.md Normal file
View File

@@ -0,0 +1,116 @@
# yys-editor 验收测试点(手工)
目标:覆盖“用户素材上传/管理、资产引用、Dynamic Group 规则提示、性能优化”等需求。
## 0. 基础启动与构建
步骤:
- `npm install`
- `npm run dev`
- `npm run build`
预期:
- dev 正常启动,页面可操作。
- build 成功输出 `dist/`
## 1. 资产基路径与引用一致性
步骤:
- 在编辑器中插入素材节点(式神/御魂等),保存。
- 刷新页面或重新打开。
预期:
- 素材仍能正确显示。
- 对于以 `/assets/...` 开头的资源,能够在宿主子路径部署时被正确改写(由宿主配置/注入决定)。
排查点:
- `src/utils/assetUrl.ts``setAssetBaseUrl/getAssetBaseUrl/resolveAssetUrl`
## 2. 用户素材上传与使用(我的素材)
步骤:
- 打开素材选择面板AssetSelector
- 点击“上传我的素材”,选择一张图片。
- 在列表中找到该素材,点击选中。
预期:
- 新素材出现在“我的素材”分组。
- 选择后节点的 selectedAsset 生效并可渲染。
## 3. 用户素材删除与持久化
步骤:
- 上传 1 张素材。
- 删除该素材(按钮“删除”)。
- 刷新页面。
预期:
- 删除后不再出现在列表中。
- 刷新后不会复活localStorage 已同步)。
排查点:
- `src/utils/customAssets.ts``list/save/delete/createCustomAssetFromFile`
- `src/components/common/GenericImageSelector.vue` 的上传与删除逻辑。
## 4. 缺失资产的降级策略(本地自玩导出图)
目的:验证“场景 1仅 yys-editor 使用并导出图片时,缺失资产不应崩溃”。
步骤:
- 将某个节点的 avatar 修改为不存在路径或不可访问路径(用于测试)。
- 尝试导出/渲染。
预期:
- 不出现阻断性异常(可降级为占位或提示)。
备注:
- 若目前仅实现 wiki 侧降级:记录为“待补 yys-editor 侧降级策略”。
## 5. Dynamic Group 分组(基础行为)
步骤:
- 在画布上创建多个节点。
- 创建动态分组Dynamic Group将节点加入/移出分组。
预期:
- 分组操作成功。
- 分组信息能写入节点 meta用于规则检查
## 6. 规则静态检查(分组内)
步骤:
- 在同一分组中放入:
- “辉夜姬” 与 “破势”
- “千姬” 与 “腹肌清姬/蝮骨清姬”
- 只有式神但没有供火式神
- 观察右侧/控制区的规则提示列表。
预期:
- 出现对应警告提示。
- 取消分组、移除节点后提示实时更新/消失。
排查点:
- `src/utils/groupRules.ts``src/configs/groupRules.ts`
- `src/components/flow/FlowEditor.vue``scheduleGroupRuleValidation(...)` 调度时机。
## 7. 性能回归(矢量节点快速缩放)
步骤:
- 放置矢量节点VectorNode
- 快速缩放、连续拖动缩放柄。
预期:
- 明显卡顿减少,不出现“缩放一下就卡死”的体验。
排查点:
- `src/components/flow/nodes/common/VectorNode.vue` 的 RAF 合并更新逻辑。
## 8. 导出给 wiki 的兼容性(数据结构)
步骤:
- 生成一份包含分组、素材、文本等内容的 graphData。
- 将 JSON 用于 wiki 的 FlowPreview/editor。
预期:
- wiki 侧能正常 normalize 并预览(节点 off-canvas 会自动平移回可视区)。