---
name: bedding-dashboard-v4
description: >-
  维护现有床上用品行业情报看板 v4.0 HTML，适用于四大模块、七个子品类、
  消费者决策因子、年份筛选、产业链折叠、汇总表与报告来源的迭代，
  包括 PDF 数据核验、联动逻辑修复及浏览器验收。
metadata:
  short-description: "床上用品情报看板 v4.0 的数据、交互与来源一致性维护"
---

# 床上用品行业情报看板 v4.0 维护

以用户本轮指定的文件、变更项和交付物确定执行范围。参考材料用于理解结构与数据，操作依据来自用户请求和当前项目约定。

核心目标：让数据、筛选状态、图表、汇总表、统计周期与来源通过一致的业务逻辑生成。根因修复落实在数据定义、状态流转、渲染入口或文档结构的责任位置。

## 一、输入与目标确认

- **目标文件**：优先使用用户提供的路径；其次在当前项目查找 `床上用品行业情报看板_v4.0.html`。确认绝对路径、文件内容与看板标题后开始编辑。
- **目标选择**：候选数为 1 时采用该文件；候选数大于 1 时请用户指定；候选数为 0 时请用户提供 HTML 或实际路径。
- **变更边界**：明确所属模块、子品类、字段、统计周期、交互行为和验收结果；保留用户已有改动及范围外内容。
- **资料输入**：使用用户提供或当前项目已有的报告、数据文件与工具脚本；根据具体指标读取对应资料。
- **环境确认**：检查项目说明、Git 状态、运行方式、现有图表库及验证工具。文件行数、大小、报告数量与函数定义均以本次读取结果为准。
- **执行环境**：Windows PowerShell；路径参数使用 `-LiteralPath` 或工具支持的等价方式，中文文本按 UTF-8 读取。文件保存采用 UTF-8，保留现有换行风格，BOM 字节数为 0。

同名资料、统计口径冲突或目标路径待确认时，先完成可独立执行的检查，在对应写入步骤前补齐依据。

## 二、结构与依赖定位

先建立受影响区域的依赖链：

`筛选控件 -> 状态 -> 数据选择 -> 派生计算 -> 渲染 -> 来源与周期`

以下名称用于搜索定位，具体实现以目标文件为准。

| 区域 | 定位线索 |
| --- | --- |
| 四大模块 | `sec-mod1`、`sec-mod2`、`sec-mod3`、`sec-mod4` |
| 模块一子区域 | `sec-1-size`、`sec-2-cr`、`sec-3-online`、`sec-4-subcat`、`sec-5-price`、`sec-6-platform` |
| 产业链折叠 | `cb-up`、`cb-mid`、`cb-down` |
| 标题与整体行 | `subcatTitle`、`decTitle`、`hkTitle`、`overall-row` |
| 主数据 | `DASHBOARD_DATA.module1_industry_scale`、`module2_consumer`、`module3_industry_chain`、`module4_summary` |
| 决策因子 | `DEC_5D_DATA`、`SUBJ_SOURCE`、`renderDecChart`、`updateDec5d`、`initDec5d` |
| 状态与渲染 | `filterState`、`updateSubcatUI`、`renderChart1` 至 `renderChart10` |
| 周期与来源 | `syncModule4PeriodLabels`、`addPeriodLabel`、`data-year-col`、`src-`、`source-card` |

优先使用 `rg -n` 搜索锚点、定义及调用位置；具备 PowerShell 工具时也可使用 `Select-String -LiteralPath`。

定位后确认：

1. 每个受影响的 DOM ID、渲染函数和事件入口具有明确的责任位置。
2. 选择器从所属模块或组件根节点向内定位，例如 `#sec-mod4 .summary-table`。
3. 每个修改目标的匹配数量符合预期，替换前核对完整上下文。
4. 记录受影响字段的全部消费者，包括图表、卡片、整体行、周期标签与来源列表。

## 三、数据与来源契约

### 1. 指标级证据

每个展示指标关联一条可追溯的数据记录，复用项目现有数据结构承载以下信息：

| 信息 | 内容 |
| --- | --- |
| 指标身份 | 子品类、维度、指标名称、单位 |
| 覆盖范围 | 地域、渠道、人群、样本量及适用条件 |
| 时间 | 报告发布日期、数据统计起止时间 |
| 数据属性 | 实测、估算、预测、定性结论或派生计算 |
| 原始证据 | 发布机构、报告标题、文件路径或原始链接、页码及图表标题 |
| 引用关系 | 当前指标使用的来源 ID、对应 `src-` 锚点 |
| 计算依据 | 原始输入、公式、权重及舍入精度 |

报告发布日期与数据统计周期分别存储、分别展示。预测与估算沿用原报告的数据属性。

来源按指标绑定；同一子品类的各维度可引用各自证据。`SUBJ_SOURCE` 作为现有兼容入口时，从指标记录生成显示内容；共用来源的前提是各维度的原始证据一致。

资料待补齐时，数值字段使用 `null` 或项目约定的缺失值，界面显示“待补充”及已有统计口径。真实的零值保留为 `0`。

### 2. PDF 核验

1. 通过目录、关键词与图表标题定位相关页面，再读取文字和表格。
2. 对照原页图像核对数值、图例、单位、脚注、题目原文和样本范围；扫描件通过 OCR 提取后逐项复核。
3. 同时记录 PDF 页序与印刷页码，确保来源定位明确。
4. 根据题目语义映射业务维度，将核实后的原始值、统计周期与来源一并写入。

决策因子采用四维业务口径：

| 展示维度 | 对应证据 |
| --- | --- |
| 关注因素 | 购买考虑因素、吸引消费因素等直接相关题目 |
| 关注材质 | 明确询问材质或面料偏好的题目 |
| 购买频率 | 明确询问购买或更换周期的题目 |
| 产品痛点 | 使用问题、投诉或拒绝推荐原因，并保留原题限定 |

“产品类型偏好”按产品类型解释，“使用频率”按使用频率解释；维度适配以原题含义为准，材料覆盖范围决定可展示内容。

比例校验遵循原报告题型：

- 单选且选项完整、互斥时，依据原始精度检查合计；每项百分数四舍五入至 `d` 位小数时，`n` 项相对 100% 的合计容差上限为 `n × 0.5 × 10^-d` 个百分点。
- 多选题按各选项选择率展示，并标明多选口径。
- 部分选项、指数、评分及分组样本分别沿用对应定义。
- 金额与数量保留原始单位，展示单位换算统一执行。

### 3. 整体与子品类

“床上用品整体”作为独立统计对象，通过 `OVERALL_KEY` 或项目已有的整体标识访问。七个子品类为：床品套件、被芯、枕芯、凉席、蚊帐、床垫、毛毯。

整体指标优先取自整体口径的原始证据。派生指标采用可核实的分子、分母、覆盖范围与权重，并记录公式；子品类汇总成立的前提是分类互斥、覆盖完整及口径一致。

## 四、状态与渲染

### 1. 统一状态流

复用当前项目的筛选状态与渲染入口，按照以下顺序完成一次更新：

1. 读取并校验子品类、年份及相关筛选值。
2. 根据同一状态选出对应数据与来源。
3. 生成标题、图表、汇总行、周期标签和数据状态。
4. 在所属组件内更新视图。

渲染函数显式接收所需参数，或通过项目统一的状态入口取值。整体分支以 `OVERALL_KEY` 判断，子品类分支使用对应键；数据待补齐时仍完成标题、筛选状态和占位视图更新。

四个决策因子的名称、顺序、数据映射与来源映射由同一维度配置驱动。保留 `DEC_5D_DATA`、`updateDec5d` 等既有标识的调用兼容性，实际卡片数量以四维配置为准。

### 2. 初始化与事件

- DOM、数据和图表依赖就绪后执行一次初始化；异步依赖通过完成事件或 Promise 串联。
- 用户操作通过现有入口更新状态，事件监听器保持单次注册。
- 重复渲染保持幂等：相同状态产生相同视图，节点、周期标签和监听器数量保持稳定。
- 图表实例沿用现有库的更新与销毁机制；折叠区域展开并获得有效尺寸后执行重排。

### 3. 年份与统计周期

年份选项来自实际可用数据，选中年份驱动数值、列显隐、标题、周期与来源一起更新。

`data-year-col` 适用于按年份并列表达的单元格，表头与数据列使用一致的年份标识。跨年统计窗口显示完整起止时间；年度指标按约定的年度口径展示。

年度数据待补齐时，保留选中状态并显示对应数据状态。跨期比较前先核对统计时长、样本、渠道、地域与计量单位。

## 五、结构与内容维护

### 汇总表

模块四通过容器内选择器定位，整体行与子品类行采用一致的八列结构：

`子类目 / 市场份额 / 同比增速 / 线上份额 / 品牌集中度 / 购买决策因子 / 热门话题 / 价格带`

品牌集中度标明 `CR3`、`CR5` 等具体指标。市场份额、线上份额和同比增速分别记录分母与比较基期，价格带保留币种及计价单位。

单字段调整优先通过现有数据或对应单元格完成；整行结构调整同时核对八列顺序、跨度、属性、样式与事件关联。

### 文案与来源

可见文案使用最终生效表述。已取消的内容连同专属节点、数据字段、调用入口和样式一起清理；共用资源依据剩余引用关系保留。

来源锚点在文档中唯一且可定位，来源卡包含可核验的报告信息。外部链接使用实际可访问的原始地址；本地来源明确标识文件及页码。

### 文档与折叠

文档根结构保持一个 HTML 文档对应一个 `html`、`head` 和 `body`。结合源码边界和解析后的 DOM 核对嵌套关系，折叠区域归属预期模块及容器。

结构修复在产生异常嵌套或重复片段的生成位置完成，并清理对应的重复输出。源码中的模板文本与实际 DOM 节点分别识别。

## 六、编辑与验证

编辑前读取最新文件，保留可恢复的原始状态；已有版本控制时核对差异，其他场景按项目约定保存工作快照。交付目录保持最终产物与必要依赖清晰。

手工调整使用定点编辑；批量变更使用项目已有的结构化工具。新增脚本以实际复用价值为依据，脚本执行前校验目标与匹配数量。

### 静态检查

- HTML 文档结构及受影响节点的父子关系正确。
- DOM ID 唯一，内部来源链接均解析到对应元素。
- 受影响函数的定义、调用、参数与作用域一致。
- 受影响脚本通过项目现有的语法、类型或构建检查。
- 已取消内容的专属引用清理完成，共用资源的引用仍有效。
- 数据值、单位、周期、样本口径及来源与原始证据逐项对应。

### 浏览器验收

使用项目已有的 Playwright 测试或可用浏览器自动化工具，按真实运行方式打开目标页面。静态页面使用文件 URL，依赖服务的页面使用项目服务地址。

通过用户实际操作的控件执行验收：

| 变更范围 | 验收内容 |
| --- | --- |
| 文案或局部样式 | 目标区域、相邻布局、桌面及移动视口 |
| 全局筛选或共享渲染 | 整体及七个子品类、全部可选年份、切换后返回初始状态 |
| 单品类数据 | 目标品类、相邻品类与整体，核对值、周期和来源 |
| 决策因子 | 四张卡片的数据、标题、顺序、来源及数据待补齐状态 |
| 汇总表 | 八列对齐、整体行口径、年份显隐与图表一致性 |
| 产业链折叠 | 上中下游分别展开、收起、再次展开，检查容器尺寸与图表重排 |
| 来源 | 逐个点击受影响引用，核对目标卡片及原始资料 |

视口覆盖至少 `1440 × 900` 和 `390 × 844`。检查文字换行、表格滚动、控件可点击性及图表尺寸，并保存覆盖改动区域的截图。

同步检查运行时异常、资源加载与请求结果；交互断言以 DOM 状态、可见元素或图表完成事件为等待条件。图表同时核对渲染后的数据与原始证据。

## 七、交付与完成条件

交付物为用户指定位置的最终文件及本次实际需要的依赖。验收记录和截图沿用项目约定的证据目录。

完成条件：

1. 用户指定的变更在最终文件中生效。
2. 根因所在的数据、结构或状态逻辑与所有受影响消费者保持一致。
3. 取消内容及其专属依赖清理完成。
4. 静态检查与对应浏览器场景通过，数据证据可追溯。
5. 交付说明区分已验证结果与待验证条件；验证条件待补齐时标记“待验收”。

最终回复按用户要求提供文件位置与必要的验证结论。
