update at 2026-01-28 16:45:27

This commit is contained in:
douboer@gmail.com
2026-01-28 16:45:27 +08:00
parent 9fcc29782e
commit b54cc3f623
24 changed files with 39255 additions and 1490 deletions

View File

@@ -1,5 +1,20 @@
# 罗盘项目重构方案
## 0. 重构方案提要(先看这一段)
**目标:** 从“硬编码示例”升级到“配置驱动”的罗盘渲染系统,并为大罗盘性能优化留出清晰路径。
**策略:** 先重构数据解析与渲染结构,再完善主题/多文本/刻度/中心图标,最后补齐测试与性能。
**落地路径:**
1) 解析层与类型统一(配置校验、主题、层级半径推导)。
2) 扇区构建器与颜色引擎含规律填色、groupSplit
3) UI 适配Luopan.vue、useLuopan 重构)。
4) 测试与性能优化(含大罗盘拖拽优化计划 10.4)。
**预期产出:**
- 新增/替换若干模块configParser / colorResolver / sectorBuilder / degreeRing / centerIcon
- `public/*.json` 配置即可新增罗盘,无需改代码。
- 统一主题与颜色规则,支持复杂布局与 SVG 图标。
---
## 一、项目现状分析
@@ -103,6 +118,22 @@
- 新增 `public/themes.json`
- 更新 `demo.json.conf` 说明
### 1.5 layerHeight 参数规则(新增)
**目标:** 支持在 layer 中以 `layerHeight` 定义厚度,并可自动推导 `rInner` / `rOuter`。
**规则:**
1. 若 layer 同时指定 `rInner` 和 `rOuter`,则忽略 `layerHeight`。
2. 若 layer 仅指定 `layerHeight`,且没有 `rInner` / `rOuter`
- 使用上一层的 `rOuter` 作为当前 `rInner`
- 当前 `rOuter = 上一层 rOuter + layerHeight`
3. 若 layer 未提供任何半径信息(`rInner` / `rOuter` / `layerHeight`),则视为配置错误(或按实现约定抛错/警告)。
**实现改动点:**
1. `types.ts`:为 sector layer 增加可选字段 `layerHeight?: number`
2. `configParser.ts`:新增“层半径归一化”步骤,按层顺序推导半径
3. 文档/示例:补充 `layerHeight` 的说明与示例用法
---
## 二、整体架构设计