update at 2026-01-28 16:45:27
This commit is contained in:
@@ -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` 的说明与示例用法
|
||||
|
||||
---
|
||||
|
||||
## 二、整体架构设计
|
||||
|
||||
Reference in New Issue
Block a user