{
  "documentVersion": 1,
  "format": "axhub-annotation-source",
  "data": {
    "version": 2,
    "prototypeName": "oneos-web-h2-station-site",
    "pageId": "site-info",
    "updatedAt": 1783800844968,
    "nodes": [
      {
        "id": "h2-site-filter",
        "index": 1,
        "title": "筛选条件",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            ".h2-station-page .vm-filter-card",
            "[data-annotation-id=\"h2-site-filter\"]"
          ],
          "fingerprint": "filter|site-info",
          "path": []
        },
        "aiPrompt": "筛选字段与查询/重置行为。",
        "annotationText": "vm 筛选卡片：4 列栅格，标签在上控件在下。",
        "hasMarkdown": true,
        "color": "#2563eb",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-kpi",
        "index": 2,
        "title": "KPI 快捷筛选",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            ".h2-station-page .vm-kpi-row",
            "[data-annotation-id=\"h2-site-kpi\"]"
          ],
          "fingerprint": "kpi|site-info",
          "path": []
        },
        "aiPrompt": "六张 KPI 卡片口径；预警/欠费点击打开弹窗并支持一键充值。",
        "annotationText": "全部 / 签约·普通 / 预付余额预警 / 已欠费 / 无加氢。预警与欠费点击打开站点列表弹窗。",
        "hasMarkdown": true,
        "color": "#2563eb",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-statement",
        "index": 3,
        "title": "工具栏与对账",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            ".h2-station-page .vm-table-toolbar",
            "[data-annotation-id=\"h2-site-toolbar\"]"
          ],
          "fingerprint": "toolbar|statement",
          "path": []
        },
        "aiPrompt": "工具栏操作与对账单氢费联动。",
        "annotationText": "全站余额提醒、批量导入、充值单、新建站点；对账回写车辆氢费明细。",
        "hasMarkdown": true,
        "color": "#d97706",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-table",
        "index": 4,
        "title": "站点列表",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            ".h2-station-page .vm-table-card",
            "[data-annotation-id=\"h2-site-table\"]"
          ],
          "fingerprint": "table|site-info",
          "path": []
        },
        "aiPrompt": "台账表格列、下钻与行内操作。",
        "annotationText": "名称、营业、成本价、加氢量、预付余额、更多菜单。",
        "hasMarkdown": true,
        "color": "#32a06e",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-price-cost-input",
        "index": 5,
        "title": "成本价格输入",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            "[data-annotation-id=\"h2-site-price-cost-input\"]"
          ],
          "fingerprint": "input|price-cost",
          "path": []
        },
        "aiPrompt": "固定价格规则适用客户与成本单价录入。",
        "annotationText": "选择全部客户时：第一权重取单站单客户价格配置，第二权重取本条全部客户价格配置",
        "hasMarkdown": true,
        "color": "#d97706",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-price-tiered",
        "index": 6,
        "title": "阶梯价格",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            "[data-annotation-id=\"h2-site-price-tiered\"]"
          ],
          "fingerprint": "radio|price-tiered",
          "path": []
        },
        "aiPrompt": "阶梯价格取价、累计加氢量与重置日期逻辑。",
        "annotationText": "阶梯区间内展示对应成本价；达下一档按新价；重置日累计量归零重新计档；生效时间不追溯历史",
        "hasMarkdown": true,
        "color": "#7c3aed",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      },
      {
        "id": "h2-site-statement-form",
        "index": 7,
        "title": "生成对账单",
        "pageId": "site-info",
        "locator": {
          "selectors": [
            "[data-annotation-id=\"h2-site-statement-form\"]",
            ".h2-statement-form-wrap"
          ],
          "fingerprint": "form|statement",
          "path": []
        },
        "aiPrompt": "选期拉取氢费明细、二次确认与结算提交逻辑。",
        "annotationText": "选日期拉取站点加氢记录；生成前二次确认；提交后明细锁定为已对账",
        "hasMarkdown": true,
        "color": "#7c3aed",
        "images": [],
        "createdAt": 1783584823347,
        "updatedAt": 1783584823347,
        "controls": []
      }
    ]
  },
  "markdownMap": {
    "h2-site-filter": "## 2. 筛选区\n\n与租赁合同等模块一致的 **vm 筛选卡片** 布局：标题「筛选条件」+ 4 列栅格（标签在上、控件在下）；底部分隔线 + 右对齐「重置」「查询」。\n\n| 字段 | 控件 | 说明 |\n|---|---|---|\n| 加氢站名称 | 输入框 | 模糊匹配，支持回车查询 |\n| 是否签约 | 下拉 | 签约站点 / 普通站点 |\n| 地区(省-市) | 级联 | 省、市两级，可只选省 |\n| 营业状态 | 下拉 | 营业中 / 暂停营业 / 停止营业 |\n\n**交互**：\n\n- **查询**：写入「已应用筛选」，列表与 KPI 统计联动，回到第 1 页\n- **重置**：清空筛选条件并刷新列表\n\n---",
    "h2-site-kpi": "## 3. KPI 统计卡片\n\n与租赁合同一致的 **vm-kpi-card**：左侧图标 + 标题 + 数值，右上角 `?` 悬停说明，选中态绿色描边。\n\n| 卡片 | 口径 |\n|---|---|\n| 全部加氢站 | 列表全部站点 |\n| 签约站点 | 已签约，点击快捷筛选 |\n| 普通站点 | 未签约，点击快捷筛选 |\n| 预付余额预警站点 | 已设提醒阈值，预付余额 ≥ 0 且低于阈值（不含已欠费）；点击打开站点列表弹窗，可一键发起充值单 |\n| 已欠费站点 | 预付余额 < 0；点击打开站点列表弹窗，可一键发起充值单 |\n| 无加氢站点 | 加氢次数 = 0 |\n\n加氢次数来自「车辆氢费明细」共享 Store，按站点名称聚合。「无加氢」与签约 KPI 与筛选区互斥切换。\n\n> **预付余额预警 / 已欠费** 的完整点击交互见 [预付余额 KPI 交互说明](./requirements-prd-kpi-balance-alert.md)。\n\n### 3.1 预付余额预警 / 已欠费 — 点击交互（摘要）\n\n这两张 KPI 与「全部 / 无加氢」不同：**点击后不筛选主列表**，而是打开**站点列表弹窗**。\n\n| 步骤 | 用户操作 | 系统反馈 |\n|---|---|---|\n| 1 | 点击「预付余额预警站点」或「已欠费站点」 | 按口径汇总全量台账站点，打开居中弹窗；对应 KPI 卡片保持选中高亮 |\n| 2 | 查看弹窗内站点表 | 列与主列表一致（无操作列）；展示站点数；预付余额负值标红「已欠费」 |\n| 3 | 点击「一键发起充值单」 | 关闭弹窗 → 打开「发起充值单」→ 为每个站点预填名称、当前余额、收款信息；付款金额由用户填写 |\n| 4 | 填写金额并提交 | 与工具栏「发起充值单」相同校验；成功后走付款流程（原型提示） |\n| — | 点击「关闭」 | 关闭弹窗，KPI 选中态取消 |\n\n**口径提醒**：预警 = 已设阈值且余额 ≥ 0 且低于阈值；欠费 = 余额 < 0。已欠费站点不计入预警。\n\n**阈值配置入口**：工具栏「全站余额提醒设置」、行内更多「余额提醒设置」。\n\n---",
    "h2-site-statement": "## 4. 列表工具栏\n\n| 按钮 | 行为 |\n|---|---|\n| 全站余额提醒设置 | 配置全局预付余额预警阈值 |\n| 批量导入 | 下载模板 → 上传 CSV/Excel → 预览确认导入 |\n| 发起充值单 | 为站点发起预付充值流程（原型演示） |\n| 新建站点 | 进入同页内嵌新建视图 |\n\n---\n\n---\n\n## 6. 数据来源\n\n- 氢费/加氢明细：统一来自 `src/common/h2VehicleLedgerBridge.js`，与「车辆氢费明细」共享 Store\n- 先打开「车辆氢费明细」时台账全量同步；仅打开加氢站模块时使用 canonical seed\n- 对账单提交经 `H2_STATION_STATEMENT_LEDGER_UPDATES` 回写车辆氢费明细\n\n---",
    "h2-site-table": "## 5. 列表字段说明\n\n| 字段 | 说明 |\n|---|---|\n| 加氢站名称 | 含签约标签；下一行展示省市区 + 详细地址 |\n| 合作时间 | 未签约可空 |\n| 营业状态 / 营业时间 | 列表只读；在「更多 → 营业状态」维护 |\n| 当前成本价格 | 元/kg；受价格配置生效时间驱动；多价时展示警示 |\n| 加氢次数 / 加氢量 | 加氢量可点击下钻；表头支持排序 |\n| 预付余额 | 可点击下钻流水；负值标红并显示「已欠费」 |\n| 联系方式 | 联系人 + 电话 |\n| 操作 | 查看 + 更多菜单 |\n\n**更多菜单**：编辑、删除、营业状态、价格配置、生成对账单、查看对账记录等（按状态与权限显隐）。\n\n**分页**：默认 10 条，可选 5/10/20/50。\n\n---",
    "h2-site-price-cost-input": "### 5.2 价格配置\n\n配置成本价格（元/kg）与生效时间；到达生效时间后刷新列表「当前成本价格」；展示价格调整记录。\n\n**固定价格 · 适用客户规则：**\n\n- 默认对**全部客户**生效（作为站点默认价格规则）\n- **取价优先级**：第一权重为单站单客户价格配置（若该客户有专属配置则按单客户配置生效）；第二权重为站点「全部客户」价格配置（无单客户配置时生效）\n\n#### 阶梯价格 · 生成逻辑\n\n1. 设置阶梯价格后，在对应**阶梯价格区间**内展示并应用该档**成本价**。\n2. 累计加氢量达到下一档阶梯时，自该次起按新档成本价计算；到达**阶梯量重置日期**后的新记录，按当前所处区间的**最新成本价**更新。\n3. **阶梯量重置日期**见价格配置表单内「阶梯量重置日期」；到达重置日后，累计加氢量**从零重新计数**，用于判断当前所处价格区间。\n4. **生效时间**自表单内「生效时间」起对新数据生效，**不追溯**此前已产生的数据；生效时间之前的历史记录，仍按当时已达的**最高阶梯价格**结算。",
    "h2-site-price-tiered": "#### 阶梯价格 · 生成逻辑\n\n1. 设置阶梯价格后，在对应**阶梯价格区间**内展示并应用该档**成本价**。\n2. 累计加氢量达到下一档阶梯时，自该次起按新档成本价计算；到达**阶梯量重置日期**后的新记录，按当前所处区间的**最新成本价**更新。\n3. **阶梯量重置日期**见价格配置表单内「阶梯量重置日期」；到达重置日后，累计加氢量**从零重新计数**，用于判断当前所处价格区间。\n4. **生效时间**自表单内「生效时间」起对新数据生效，**不追溯**此前已产生的数据；生效时间之前的历史记录，仍按当时已达的**最高阶梯价格**结算。",
    "h2-site-statement-form": "#### 生成对账单 · 业务逻辑\n\n1. 选择**账单开始日期**与**账单结束日期**后，从**车辆氢费明细**获取该时间段内、对应当前站点的加氢记录（已对账且尚未结算）。\n2. 点击「**生成对账单**」时弹出**二次确认**，提示：生成对账单后，车辆氢费明细中对应记录将自动标记为已对账且无法修改。\n3. 确认后进入结算阶段，填写**收票日期**、**收票金额**及**发票附件**（对账日期在提交时由系统自动回写）。\n4. 点击「**提交对账单**」后，本批明细在车辆氢费明细中锁定为已对账/已结算状态，不可再修改。\n\n**阶段一 · 选期生成**\n\n- 日期区下方展示：**上次对账单结束时间**（无历史则「暂无」）\n- 默认开始日期建议 = 上次结束日 + 1 天\n- 点击「生成对账单」时弹出**二次确认**：提示生成后车辆氢费明细对应记录将标记为已对账且无法修改；确认后进入阶段二，日期锁定不可改\n- 无符合条件记录时提示调整日期\n\n**阶段二 · 结算提交**\n\n统计卡（明细表上方）：\n\n| 指标 | 说明 |\n|---|---|\n| 加氢次数 | 本账单包含的已对账记录笔数 |\n| 加氢总量 | kg 合计 |\n| 成本总金额 | 成本总价合计 |\n\n明细表下方**必填**结算项：\n\n| 字段 | 规则 |\n|---|---|\n| 结算后加氢站预付款余额 | **只读**，= 当前预付余额 − 成本总金额；不足为负并标「已欠费」 |\n| 收票日期 | 必填 |\n| 收票金额 | 必填，默认填入成本总金额 |\n| 发票附件 | 必填，支持上传 |\n\n---"
  },
  "assetMap": {},
  "directory": {
    "nodes": [
      {
        "type": "folder",
        "id": "h2-site-doc-root",
        "title": "站点信息说明",
        "defaultExpanded": true,
        "children": [
          {
            "type": "markdown",
            "id": "h2-site-doc-overview",
            "title": "模块总览",
            "markdown": "## 1. 模块定位\n\n| 项 | 说明 |\n|---|---|\n| 模块 | 加氢站管理 → 站点信息 |\n| 用户 | 运营、财务结算、管理员 |\n| 核心任务 | 站点主数据、运营配置、氢费对账结算 |\n| 页面结构 | 筛选 + KPI + 工具栏 + 列表 + 分页 |\n\n## 2. 关联模块\n\n- **车辆氢费明细**：氢费数据来源与对账回写目标\n- **加氢站合包**：加氢订单、加氢记录仍在合包入口\n\n## 3. 验收重点\n\n1. KPI 预付余额预警/已欠费口径与点击弹窗、批量充值一致\n2. 对账单两阶段流程与跨页回写\n3. 列表布局与租赁合同 vm 规范一致"
          },
          {
            "type": "link",
            "id": "h2-site-link-vh2",
            "title": "车辆氢费明细",
            "href": "../vehicle-h2-fee-ledger/index.html",
            "target": "self"
          },
          {
            "type": "link",
            "id": "h2-site-link-bundle",
            "title": "加氢站管理（合包）",
            "href": "../oneos-web-h2-station/index.html",
            "target": "self"
          },
          {
            "type": "folder",
            "id": "h2-site-doc-prd",
            "title": "PRD 全文",
            "defaultExpanded": true,
            "children": [
              {
                "type": "markdown",
                "id": "h2-site-doc-prd-full",
                "title": "PRD 完整文档",
                "markdown": "# 加氢站管理 · 站点信息 — 产品需求文档（PRD）\n\n| 项 | 内容 |\n|---|---|\n| 文档版本 | v1.0 |\n| 模块名称 | 加氢站管理 → 站点信息 |\n| 所属系统 | ONE-OS Web 端 |\n| 目标读者 | 前端 / 后端 / 测试 / 业务产品对接人 |\n| 交互原型 | `/prototypes/oneos-web-h2-station-site` |\n| 关联原型 | [车辆氢费明细](/prototypes/vehicle-h2-fee-ledger)、[加氢站合包](/prototypes/oneos-web-h2-station) |\n| 文档状态 | 已对齐原型 |\n\n---\n\n## 1. 背景与目标\n\n### 1.1 业务背景\n\n加氢站是氢费成本结算的关键节点。运营侧需要维护站点主数据（签约、营业、成本价、预付余额），并在财务周期内按站点与加氢站完成对账、收票与付款闭环。\n\n### 1.2 本期目标\n\n- 站点台账的查询、新建、编辑、查看、删除与批量导入\n- 营业状态、成本价格、预付余额等运营配置\n- **按站点生成氢费对账单 → 填写收票信息 → 提交结算**，并与「车辆氢费明细」联动回写\n\n### 1.3 用户角色\n\n| 角色 | 典型诉求 |\n|---|---|\n| 加氢站运营 | 维护站点资料、营业与价格；查看加氢量与余额 |\n| 财务/结算 | 按周期生成对账单、登记收票、完成站点付款闭环 |\n| 管理员 | 批量导入站点、删除无效站点、配置系统账号 |\n\n### 1.4 非目标（本期不做）\n\n- 对账单审批流、ERP 自动过账\n- 发票 OCR 识别与验真\n- 加氢订单、加氢记录（仍在合包 `oneos-web-h2-station`）\n- 后端接口联调（原型使用 Mock + 共享 Store）\n\n---\n\n## 2. 信息架构\n\n```text\n站点信息\n├── 列表页\n│   ├── 筛选区（4 项）\n│   ├── KPI 卡片（6 张）\n│   ├── 工具栏\n│   └── 站点台账表 + 分页\n├── 新建 / 编辑（同页内嵌视图）\n│   ├── 基本信息\n│   ├── 系统账号绑定\n│   └── 供应商 / 付款信息\n└── 弹窗 / 抽屉\n    ├── 查看详情\n    ├── 营业状态 / 价格配置\n    ├── 加氢量下钻 / 预付余额下钻\n    ├── 预付余额预警 / 已欠费 KPI 站点列表 → 一键充值\n    ├── 生成对账单（两阶段）\n    └── 查看对账记录\n```\n\n---\n\n## 3. 列表与 KPI\n\n> 列表筛选与字段详见 `.spec/requirements-prd-list.md`  \n> **预付余额预警 / 已欠费 KPI 点击交互**详见 `.spec/requirements-prd-kpi-balance-alert.md`\n\n- 筛选：名称、签约、地区、营业状态\n- KPI：全部 / 签约·普通 / **预付余额预警** / **已欠费** / 无加氢\n- 列表字段：名称地址、合作时间、营业、成本价、加氢次数/量、预付余额、联系方式、操作\n- 设计规范：与租赁合同管理一致的 vm 布局与 Inter 字体\n\n---\n\n## 4. 站点主数据\n\n### 4.1 新建站点\n\n同页内嵌视图：基本信息、系统账号绑定（可选）、供应商信息（新建或关联）。\n\n### 4.2 编辑 / 查看\n\n| 模式 | 交互 |\n|---|---|\n| 编辑 | 整页表单；系统账号仅 admin 可改 |\n| 查看 | 弹窗分块展示站点、账号、供应商、付款信息 |\n\n### 4.3 批量导入\n\n下载 CSV 模板 → 上传 → 解析预览 → 确认导入；站点名称不可重复。\n\n---\n\n## 5. 运营配置\n\n### 5.1 营业状态\n\n卡片式弹窗：营业状态、营业时间按钮组；非全天须配置时段；展示状态变更记录。\n\n### 5.2 价格配置\n\n配置成本价格（元/kg）与生效时间；到达生效时间后刷新列表「当前成本价格」；展示价格调整记录。\n\n**固定价格 · 适用客户规则：**\n\n- 默认对**全部客户**生效（作为站点默认价格规则）\n- **取价优先级**：第一权重为单站单客户价格配置（若该客户有专属配置则按单客户配置生效）；第二权重为站点「全部客户」价格配置（无单客户配置时生效）\n\n#### 阶梯价格 · 生成逻辑\n\n1. 设置阶梯价格后，在对应**阶梯价格区间**内展示并应用该档**成本价**。\n2. 累计加氢量达到下一档阶梯时，自该次起按新档成本价计算；到达**阶梯量重置日期**后的新记录，按当前所处区间的**最新成本价**更新。\n3. **阶梯量重置日期**见价格配置表单内「阶梯量重置日期」；到达重置日后，累计加氢量**从零重新计数**，用于判断当前所处价格区间。\n4. **生效时间**自表单内「生效时间」起对新数据生效，**不追溯**此前已产生的数据；生效时间之前的历史记录，仍按当时已达的**最高阶梯价格**结算。\n\n### 5.3 下钻分析\n\n- **加氢量下钻**：统计卡 + 明细表 + 导出，字段对齐车辆氢费明细\n- **预付余额下钻**：充值/加氢流水 + 趋势图 + 导出\n\n---\n\n## 6. 对账与结算（重点）\n\n> 详见 `.spec/requirements-prd-statement.md`\n\n与「车辆氢费明细」配合完成站点侧氢费结算闭环：\n\n1. 拉取已对账且未结算的记录\n2. 两阶段：选期生成 → 填收票提交\n3. 提交后更新预付余额、写对账历史、回写台账（对账日期、收票日期、已付款）\n\n---\n\n## 7. 数据与集成\n\n| 能力 | 实现 |\n|---|---|\n| 氢费明细 | `src/common/h2VehicleLedgerBridge.js` |\n| 对账回写 | `H2_STATION_STATEMENT_LEDGER_UPDATES` |\n| 页面实现 | `src/prototypes/oneos-web-h2-station/pages/03-站点信息.jsx` |\n| 独立入口 | `src/prototypes/oneos-web-h2-station-site/index.tsx` |\n\n---\n\n## 8. 验收标准\n\n### 8.1 列表页\n\n- [ ] 筛选与 KPI 六卡片联动正确\n- [ ] 高频/低频/无加氢口径与车辆氢费明细一致\n- [ ] 加氢量、预付余额下钻数据来自共享 Store\n- [ ] 布局与租赁合同 vm 规范一致\n\n### 8.2 对账流程\n\n- [ ] 仅已对账未结算记录可进入对账单\n- [ ] 两阶段交互与必填校验完整\n- [ ] 提交后回写车辆氢费明细可跨页验收\n\n### 8.3 标注与文档\n\n- [ ] `@axhub/annotation` 已接入，关键区域有 `data-annotation-id`\n- [ ] 右侧工具栏目录可阅 PRD 全文与页面标注\n\n---\n\n## 9. 修订记录\n\n| 版本 | 日期 | 说明 |\n|---|---|---|\n| v1.0 | 2026-07-01 | 独立入口、vm 规范对齐、标注目录与 PRD 接入 |\n",
                "markdownPath": "src/prototypes/oneos-web-h2-station-site/.spec/requirements-prd.md"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-prd-list",
                "title": "列表页 PRD",
                "markdown": "# 加氢站管理 · 站点信息 — 列表页 PRD\n\n| 项 | 说明 |\n|---|---|\n| 模块名称 | 加氢站管理 → 站点信息 |\n| 所属系统 | ONE-OS Web 端 |\n| 目标用户 | 加氢站运营、财务结算、平台管理员 |\n| 核心任务 | 查询站点台账、维护主数据、查看运营指标、发起对账与充值 |\n| 交互原型 | `/prototypes/oneos-web-h2-station-site` |\n| 设计规范 | 与租赁合同管理一致的 vm 布局（筛选 / KPI / 表格 / 分页） |\n\n---\n\n## 1. 页面结构\n\n用户进入「加氢站管理 → 站点信息」后，列表页自上而下为：\n\n1. **筛选区** — 名称、签约、地区、营业状态\n2. **KPI 分类** — 全部 / 签约·普通 / 预付余额预警 / 已欠费 / 无加氢\n3. **工具栏** — 全站余额提醒、批量导入、发起充值单、新建站点\n4. **站点列表** — 主数据 + 运营指标 + 操作列\n5. **分页栏** — 每页 5/10/20/50 条\n\n---\n\n## 2. 筛选区\n\n与租赁合同等模块一致的 **vm 筛选卡片** 布局：标题「筛选条件」+ 4 列栅格（标签在上、控件在下）；底部分隔线 + 右对齐「重置」「查询」。\n\n| 字段 | 控件 | 说明 |\n|---|---|---|\n| 加氢站名称 | 输入框 | 模糊匹配，支持回车查询 |\n| 是否签约 | 下拉 | 签约站点 / 普通站点 |\n| 地区(省-市) | 级联 | 省、市两级，可只选省 |\n| 营业状态 | 下拉 | 营业中 / 暂停营业 / 停止营业 |\n\n**交互**：\n\n- **查询**：写入「已应用筛选」，列表与 KPI 统计联动，回到第 1 页\n- **重置**：清空筛选条件并刷新列表\n\n---\n\n## 3. KPI 统计卡片\n\n与租赁合同一致的 **vm-kpi-card**：左侧图标 + 标题 + 数值，右上角 `?` 悬停说明，选中态绿色描边。\n\n| 卡片 | 口径 |\n|---|---|\n| 全部加氢站 | 列表全部站点 |\n| 签约站点 | 已签约，点击快捷筛选 |\n| 普通站点 | 未签约，点击快捷筛选 |\n| 预付余额预警站点 | 已设提醒阈值，预付余额 ≥ 0 且低于阈值（不含已欠费）；点击打开站点列表弹窗，可一键发起充值单 |\n| 已欠费站点 | 预付余额 < 0；点击打开站点列表弹窗，可一键发起充值单 |\n| 无加氢站点 | 加氢次数 = 0 |\n\n加氢次数来自「车辆氢费明细」共享 Store，按站点名称聚合。「无加氢」与签约 KPI 与筛选区互斥切换。\n\n> **预付余额预警 / 已欠费** 的完整点击交互见 [预付余额 KPI 交互说明](./requirements-prd-kpi-balance-alert.md)。\n\n### 3.1 预付余额预警 / 已欠费 — 点击交互（摘要）\n\n这两张 KPI 与「全部 / 无加氢」不同：**点击后不筛选主列表**，而是打开**站点列表弹窗**。\n\n| 步骤 | 用户操作 | 系统反馈 |\n|---|---|---|\n| 1 | 点击「预付余额预警站点」或「已欠费站点」 | 按口径汇总全量台账站点，打开居中弹窗；对应 KPI 卡片保持选中高亮 |\n| 2 | 查看弹窗内站点表 | 列与主列表一致（无操作列）；展示站点数；预付余额负值标红「已欠费」 |\n| 3 | 点击「一键发起充值单」 | 关闭弹窗 → 打开「发起充值单」→ 为每个站点预填名称、当前余额、收款信息；付款金额由用户填写 |\n| 4 | 填写金额并提交 | 与工具栏「发起充值单」相同校验；成功后走付款流程（原型提示） |\n| — | 点击「关闭」 | 关闭弹窗，KPI 选中态取消 |\n\n**口径提醒**：预警 = 已设阈值且余额 ≥ 0 且低于阈值；欠费 = 余额 < 0。已欠费站点不计入预警。\n\n**阈值配置入口**：工具栏「全站余额提醒设置」、行内更多「余额提醒设置」。\n\n---\n\n## 4. 列表工具栏\n\n| 按钮 | 行为 |\n|---|---|\n| 全站余额提醒设置 | 配置全局预付余额预警阈值 |\n| 批量导入 | 下载模板 → 上传 CSV/Excel → 预览确认导入 |\n| 发起充值单 | 为站点发起预付充值流程（原型演示） |\n| 新建站点 | 进入同页内嵌新建视图 |\n\n---\n\n## 5. 列表字段说明\n\n| 字段 | 说明 |\n|---|---|\n| 加氢站名称 | 含签约标签；下一行展示省市区 + 详细地址 |\n| 合作时间 | 未签约可空 |\n| 营业状态 / 营业时间 | 列表只读；在「更多 → 营业状态」维护 |\n| 当前成本价格 | 元/kg；受价格配置生效时间驱动；多价时展示警示 |\n| 加氢次数 / 加氢量 | 加氢量可点击下钻；表头支持排序 |\n| 预付余额 | 可点击下钻流水；负值标红并显示「已欠费」 |\n| 联系方式 | 联系人 + 电话 |\n| 操作 | 查看 + 更多菜单 |\n\n**更多菜单**：编辑、删除、营业状态、价格配置、生成对账单、查看对账记录等（按状态与权限显隐）。\n\n**分页**：默认 10 条，可选 5/10/20/50。\n\n---\n\n## 6. 数据来源\n\n- 氢费/加氢明细：统一来自 `src/common/h2VehicleLedgerBridge.js`，与「车辆氢费明细」共享 Store\n- 先打开「车辆氢费明细」时台账全量同步；仅打开加氢站模块时使用 canonical seed\n- 对账单提交经 `H2_STATION_STATEMENT_LEDGER_UPDATES` 回写车辆氢费明细\n\n---\n\n## 7. 双入口说明\n\n| 入口 | 路径 |\n|---|---|\n| 独立原型（本页） | OneOS → 加氢站管理 → 站点信息 |\n| 合包 | ONE-OS Web 端 → 加氢站管理 → 加氢订单 / 加氢记录 |\n",
                "markdownPath": "src/prototypes/oneos-web-h2-station-site/.spec/requirements-prd-list.md"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-prd-kpi-balance",
                "title": "预付余额 KPI 交互",
                "markdown": "# 加氢站管理 · 站点信息 — 预付余额预警 / 已欠费 KPI 交互说明\n\n| 项 | 说明 |\n|---|---|\n| 所属模块 | 加氢站管理 → 站点信息 |\n| 关联页面 | `/prototypes/oneos-web-h2-station-site` |\n| 目标用户 | 加氢站运营、财务结算 |\n| 关联能力 | 余额提醒设置、发起充值单、预付余额下钻 |\n\n---\n\n## 1. 业务背景\n\n运维与财务需要**快速发现预付余额不足或已欠费的加氢站**，并批量发起充值，避免氢费结算中断。列表页通过两张 KPI 卡片汇总风险站点，点击后进入专项处理流程，而不是像「全部 / 无加氢」那样仅筛选主列表。\n\n**与列表「加氢量」列高频/低频标签的区别**：\n\n| 维度 | KPI：预付余额预警 / 已欠费 | 列表列：加氢量旁高频/低频 |\n|---|---|---|\n| 依据 | 预付余额与提醒阈值 | 加氢次数（来自氢费明细） |\n| 点击行为 | 打开站点列表弹窗 → 可批量充值 | 无 KPI 级交互；加氢量可下钻明细 |\n| 业务目的 | 资金风险预警与充值 | 运营活跃度展示 |\n\n---\n\n## 2. KPI 统计口径\n\n两张卡片与主列表**并行展示**，统计基于当前台账内全部站点（不受列表筛选影响，但随站点数据实时重算）。\n\n| KPI 卡片 | 计入规则 | 不计入 |\n|---|---|---|\n| **预付余额预警站点** | 已设置 `balanceAlertThreshold`（> 0），且 `prepaidBalance ≥ 0`，且 `prepaidBalance < balanceAlertThreshold` | 未设阈值；已欠费（余额 < 0） |\n| **已欠费站点** | `prepaidBalance < 0` | 余额 ≥ 0 |\n\n**互斥关系**：同一站点若已欠费，只计入「已欠费」，不再计入「预付余额预警」。\n\n**阈值来源**（影响预警站点数量）：\n\n| 入口 | 行为 |\n|---|---|\n| 工具栏 → **全站余额提醒设置** | 将同一阈值批量写入全部站点 |\n| 行内更多 → **余额提醒设置** | 仅更新当前站点阈值 |\n\n---\n\n## 3. 与其他 KPI 的交互差异\n\n| KPI 类型 | 点击后行为 | 选中态（绿色描边） |\n|---|---|---|\n| 全部加氢站 / 无加氢站点 | 筛选主列表，回到第 1 页；与签约筛选互斥 | `categoryTab` 匹配且未选签约筛选 |\n| 签约站点 / 普通站点 | 快捷签约筛选，重置 KPI 为「全部」 | `appliedFilters.signed` 匹配 |\n| **预付余额预警 / 已欠费** | **打开站点列表弹窗**，不筛选主列表 | 弹窗打开且 `type` 与卡片一致 |\n\n点击预警/欠费 KPI 时：\n\n- **不**修改主列表筛选条件\n- **不**切换 `categoryTab` 为列表筛选项\n- 弹窗打开期间，对应 KPI 卡片保持选中高亮\n\n---\n\n## 4. 点击 KPI → 站点列表弹窗\n\n### 4.1 触发\n\n用户点击「预付余额预警站点」或「已欠费站点」任一张 KPI 卡片。\n\n系统按口径从当前台账筛选站点，打开居中弹窗：\n\n| 属性 | 说明 |\n|---|---|\n| 标题 | 「预付余额预警站点」或「已欠费站点」 |\n| 宽度 | 约 1200px |\n| 数据范围 | 符合该 KPI 口径的全部站点（非仅当前页） |\n\n### 4.2 弹窗内容\n\n**顶部摘要区**\n\n- 标题与卡片名称一致\n- 副文案：`共 N 个站点 · 字段与列表页一致`\n- 主操作按钮：**一键发起充值单**（站点数为 0 时禁用）\n\n**站点表格**\n\n- 列与主列表一致（**不含操作列**）：加氢站名称、合作时间、营业状态、营业时间、当前成本价格、加氢次数、加氢量、预付余额、联系方式等\n- 预付余额列：负值标红并显示「已欠费」（与主列表一致）\n- 超过 8 条时分页，每页 8 条\n- 无数据时展示「暂无站点」\n\n**底部按钮**\n\n| 按钮 | 行为 |\n|---|---|\n| 关闭 | 关闭弹窗，清除 KPI 选中态 |\n| 一键发起充值单 | 见下文第 5 节 |\n\n---\n\n## 5. 一键发起充值单\n\n### 5.1 流程\n\n```mermaid\nflowchart TD\n    A[点击 KPI 卡片] --> B[打开站点列表弹窗]\n    B --> C{用户操作}\n    C -->|关闭| D[结束]\n    C -->|一键发起充值单| E[关闭弹窗]\n    E --> F[打开发起充值单弹窗]\n    F --> G[预填弹窗内全部站点行]\n    G --> H[用户填写付款金额]\n    H --> I[发起付款流程]\n```\n\n### 5.2 预填规则\n\n关闭站点列表弹窗后，打开「发起充值单」弹窗，并为弹窗内**每一个站点**自动生成一行：\n\n| 预填字段 | 来源 |\n|---|---|\n| 站点 | 站点名称（不可为空） |\n| 当前余额 | 站点 `prepaidBalance` 格式化展示 |\n| 收款公司 / 银行账号 / 开户行 | 站点关联供应商付款信息 |\n| 转账用途 | 默认「羚牛预付氢费款 YYYY-MM-DD」 |\n| 付款金额 | **留空**，由用户填写 |\n\n**提示文案**：\n\n- 预警站点：`已载入 N 个预警站点，请填写付款金额后发起`\n- 欠费站点：`已载入 N 个欠费站点，请填写付款金额后发起`\n\n### 5.3 提交校验\n\n与工具栏「发起充值单」一致：\n\n- 每行须选择站点并填写付款金额\n- 站点须已关联供应商且收款信息完整；否则提示补全后再发起\n- 原型环境：校验通过后提示「已发起审批流程」\n\n### 5.4 与其他充值入口的关系\n\n| 入口 | 预填站点 |\n|---|---|\n| 工具栏 → 发起充值单 | 空白一行，用户自选 |\n| KPI 弹窗 → 一键发起充值单 | 预填当前弹窗内全部站点 |\n| 行内更多（无批量） | — |\n\n---\n\n## 6. 端到端场景示例\n\n### 场景 A：日常巡检余额\n\n1. 财务打开站点信息页，看到 KPI「预付余额预警站点 = 1」\n2. 点击该卡片，弹窗列出余额低于阈值但仍 ≥ 0 的站点\n3. 确认后点击「一键发起充值单」，填写各站付款金额并提交\n\n### 场景 B：处理欠费\n\n1. KPI「已欠费站点」显示 1，列表中对应行预付余额为红色「已欠费 -3,250.00」\n2. 点击 KPI，弹窗仅展示欠费站点\n3. 一键发起充值单，补足欠费金额\n\n### 场景 C：配置阈值后统计变化\n\n1. 工具栏「全站余额提醒设置」统一设为 50,000 元\n2. KPI 预警数量随 `prepaidBalance` 与阈值比较实时更新\n3. 某站余额扣减至阈值以下后自动出现在预警 KPI 中\n\n---\n\n## 7. 异常与边界\n\n| 场景 | 预期行为 |\n|---|---|\n| KPI 数值为 0 | 可点击；弹窗内表格为空，「一键发起充值单」禁用 |\n| 弹窗内点击关闭 | 弹窗关闭，KPI 选中态取消 |\n| 站点未设阈值 | 不计入预警 KPI（即使余额较低） |\n| 已欠费站点 | 只出现在「已欠费」，不出现在「预警」 |\n| 主列表正在筛选 | 不影响 KPI 统计与弹窗站点范围（口径为全量台账） |\n\n---\n\n## 8. 验收清单\n\n- [ ] 预警 KPI 仅统计：有阈值、余额 ≥ 0 且 < 阈值\n- [ ] 欠费 KPI 仅统计：余额 < 0；与预警互斥\n- [ ] 点击预警/欠费 KPI 打开弹窗，**主列表不筛选**\n- [ ] 弹窗打开时对应 KPI 卡片呈选中态\n- [ ] 弹窗表格字段与主列表一致（无操作列）\n- [ ] 「一键发起充值单」预填全部站点及当前余额、供应商信息\n- [ ] 预填后付款金额须用户填写；提交校验与工具栏充值一致\n- [ ] 全站/单站余额提醒设置保存后，预警 KPI 数量联动更新\n\n---\n\n## 9. 实现参考（原型）\n\n| 能力 | 位置 |\n|---|---|\n| KPI 卡片配置 | `H2_STATION_KPI_CARDS` |\n| 口径函数 | `h2IsBalanceAlertStation` / `h2IsArrearsStation` |\n| 打开弹窗 | `openAlertStationModal` |\n| 批量充值 | `handleBatchRechargeFromAlert` → `openRechargeModal` |\n| 页面文件 | `src/prototypes/oneos-web-h2-station/pages/03-站点信息.jsx` |\n",
                "markdownPath": "src/prototypes/oneos-web-h2-station-site/.spec/requirements-prd-kpi-balance-alert.md"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-prd-statement",
                "title": "对账与结算 PRD",
                "markdown": "# 加氢站管理 · 站点信息 — 对账与结算 PRD\n\n> 本模块与「车辆氢费明细」配合完成**站点侧氢费结算闭环**。\n\n---\n\n## 1. 数据来源\n\n对账单明细取自 **车辆氢费明细** 中同时满足以下条件的记录：\n\n1. 对账状态 = **已对账**（台账已完成「完成对账」）\n2. **尚未**被本站点历史对账单结算过（未绑定 `statementRecordId`）\n3. 加氢时间落在用户选择的 **[账单开始日期, 账单结束日期]** 内\n4. 加氢站名称与当前操作站点一致\n\n> 对账单明细**仅展示成本字段**（加氢量、成本单价、成本总价等），不展示加氢单价、加氢总价。\n\n---\n\n## 2. 两阶段交互\n\n#### 生成对账单 · 业务逻辑\n\n1. 选择**账单开始日期**与**账单结束日期**后，从**车辆氢费明细**获取该时间段内、对应当前站点的加氢记录（已对账且尚未结算）。\n2. 点击「**生成对账单**」时弹出**二次确认**，提示：生成对账单后，车辆氢费明细中对应记录将自动标记为已对账且无法修改。\n3. 确认后进入结算阶段，填写**收票日期**、**收票金额**及**发票附件**（对账日期在提交时由系统自动回写）。\n4. 点击「**提交对账单**」后，本批明细在车辆氢费明细中锁定为已对账/已结算状态，不可再修改。\n\n**阶段一 · 选期生成**\n\n- 日期区下方展示：**上次对账单结束时间**（无历史则「暂无」）\n- 默认开始日期建议 = 上次结束日 + 1 天\n- 点击「生成对账单」时弹出**二次确认**：提示生成后车辆氢费明细对应记录将标记为已对账且无法修改；确认后进入阶段二，日期锁定不可改\n- 无符合条件记录时提示调整日期\n\n**阶段二 · 结算提交**\n\n统计卡（明细表上方）：\n\n| 指标 | 说明 |\n|---|---|\n| 加氢次数 | 本账单包含的已对账记录笔数 |\n| 加氢总量 | kg 合计 |\n| 成本总金额 | 成本总价合计 |\n\n明细表下方**必填**结算项：\n\n| 字段 | 规则 |\n|---|---|\n| 结算后加氢站预付款余额 | **只读**，= 当前预付余额 − 成本总金额；不足为负并标「已欠费」 |\n| 收票日期 | 必填 |\n| 收票金额 | 必填，默认填入成本总金额 |\n| 发票附件 | 必填，支持上传 |\n\n---\n\n## 3. 提交后的系统行为\n\n提交成功后需**原子性**完成：\n\n1. 写入对账历史（供「查看对账记录」查询）\n2. 扣减站点预付余额\n3. 标记台账记录已结算（绑定 `statementRecordId`）\n4. **回写车辆氢费明细**：\n\n| 车辆氢费明细字段 | 回写值 |\n|---|---|\n| 对账日期 | 操作完成时间 |\n| 收票日期 | 操作完成日期 |\n| 加氢站付款状态 | 已付款 |\n\n原型通过 `H2_STATION_STATEMENT_LEDGER_UPDATES` / `h2VehicleLedgerBridge` 模拟跨页回写。\n\n---\n\n## 4. 查看对账记录\n\n入口：列表操作列 → 更多 → **查看对账记录**\n\n历史列表：对账日期、对账人、账单区间、加氢次数、加氢金额、结算后余额、查看明细。\n\n查看明细：账单区间、统计三卡、收票信息、发票附件、成本明细表。\n\n---\n\n## 5. 校验与异常\n\n| 场景 | 处理 |\n|---|---|\n| 日期未填 / 开始晚于结束 | 阻止生成 |\n| 区间内无已对账未结算记录 | 阻止生成，提示调整日期 |\n| 点击「生成对账单」未确认 | 不进入结算阶段 |\n| 收票日期/金额/附件未填 | 阻止提交 |\n| 收票金额 ≤ 0 | 阻止提交 |\n| 预付余额结算后为负 | 允许提交，标「已欠费」 |\n\n---\n\n## 6. 研发要点\n\n1. **对账单幂等**：同一笔已对账记录只能进入一次成功提交的对账单\n2. **上次结束时间**：取该站点已成功提交对账单的最大 `endDate`\n3. **余额计算**：`balanceAfter = prepaidBalance - sum(costTotal)`\n4. **跨模块同步**：生产对接统一台账；原型使用 Bridge Store\n5. **明细字段范围**：对账弹窗不展示客户侧加氢单价/总价\n",
                "markdownPath": "src/prototypes/oneos-web-h2-station-site/.spec/requirements-prd-statement.md"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-scope",
                "title": "范围与决策",
                "markdown": "# 站点信息独立原型 — 范围与决策\n\n## 背景\n\n「站点信息」从 ONE-OS Web 合包 `oneos-web-h2-station` 拆出，作为 OneOS → 加氢站管理下的独立 Axhub 入口，便于与正式菜单路径对齐。\n\n## 范围\n\n| 包含 | 不包含 |\n|------|--------|\n| 站点列表、KPI、新建/编辑/查看/删除 | 加氢订单、加氢记录（仍在合包） |\n| 营业状态、价格配置、余额下钻 | 后端接口联调 |\n| 两阶段对账单、充值单、批量导入 | |\n\n## 数据来源\n\n- **氢费/加氢明细**：统一来自 `src/common/h2VehicleLedgerBridge.js`，与「车辆氢费明细」原型共享 Store。\n- 先打开「车辆氢费明细」时，台账全量行会同步至 Store；仅打开加氢站模块时使用 canonical seed（10 条演示数据）。\n- 对账单提交 patch 经 `window.H2_STATION_STATEMENT_LEDGER_UPDATES` 回写车辆氢费明细。\n\n## KPI 口径（已确认）\n\n全部 / 签约·普通 / **预付余额预警** / **已欠费** / **无加氢（0 次）**，与 legacy《站点信息-产品需求说明》一致。\n\n预警/欠费 KPI 点击打开站点列表弹窗，支持一键发起充值单。详见 `.spec/requirements-prd-kpi-balance-alert.md`。\n\n## 角色演示\n\n页面右上角提供「平台管理员 / 加氢站账号」切换，影响编辑页系统账号字段可编辑性。\n\n## 双入口说明\n\n- **本原型**：OneOS → 加氢站管理 → 站点信息\n- **合包**：ONE-OS Web 端 → 加氢站管理 → 加氢订单 / 加氢记录\n",
                "markdownPath": "src/prototypes/oneos-web-h2-station-site/.spec/requirements.md"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-acceptance",
                "title": "验收标准",
                "markdown": "## 8. 验收标准\n\n### 8.1 列表页\n\n- [ ] 筛选与 KPI 六卡片联动正确\n- [ ] 高频/低频/无加氢口径与车辆氢费明细一致\n- [ ] 加氢量、预付余额下钻数据来自共享 Store\n- [ ] 布局与租赁合同 vm 规范一致\n\n### 8.2 对账流程\n\n- [ ] 仅已对账未结算记录可进入对账单\n- [ ] 两阶段交互与必填校验完整\n- [ ] 提交后回写车辆氢费明细可跨页验收\n\n### 8.3 标注与文档\n\n- [ ] `@axhub/annotation` 已接入，关键区域有 `data-annotation-id`\n- [ ] 右侧工具栏目录可阅 PRD 全文与页面标注\n\n---"
              }
            ]
          },
          {
            "type": "folder",
            "id": "h2-site-doc-page",
            "title": "页面标注",
            "defaultExpanded": true,
            "children": [
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-filter",
                "title": "筛选条件",
                "markdown": "## 2. 筛选区\n\n与租赁合同等模块一致的 **vm 筛选卡片** 布局：标题「筛选条件」+ 4 列栅格（标签在上、控件在下）；底部分隔线 + 右对齐「重置」「查询」。\n\n| 字段 | 控件 | 说明 |\n|---|---|---|\n| 加氢站名称 | 输入框 | 模糊匹配，支持回车查询 |\n| 是否签约 | 下拉 | 签约站点 / 普通站点 |\n| 地区(省-市) | 级联 | 省、市两级，可只选省 |\n| 营业状态 | 下拉 | 营业中 / 暂停营业 / 停止营业 |\n\n**交互**：\n\n- **查询**：写入「已应用筛选」，列表与 KPI 统计联动，回到第 1 页\n- **重置**：清空筛选条件并刷新列表\n\n---"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-kpi",
                "title": "KPI 快捷筛选",
                "markdown": "## 3. KPI 统计卡片\n\n与租赁合同一致的 **vm-kpi-card**：左侧图标 + 标题 + 数值，右上角 `?` 悬停说明，选中态绿色描边。\n\n| 卡片 | 口径 |\n|---|---|\n| 全部加氢站 | 列表全部站点 |\n| 签约站点 | 已签约，点击快捷筛选 |\n| 普通站点 | 未签约，点击快捷筛选 |\n| 预付余额预警站点 | 已设提醒阈值，预付余额 ≥ 0 且低于阈值（不含已欠费）；点击打开站点列表弹窗，可一键发起充值单 |\n| 已欠费站点 | 预付余额 < 0；点击打开站点列表弹窗，可一键发起充值单 |\n| 无加氢站点 | 加氢次数 = 0 |\n\n加氢次数来自「车辆氢费明细」共享 Store，按站点名称聚合。「无加氢」与签约 KPI 与筛选区互斥切换。\n\n> **预付余额预警 / 已欠费** 的完整点击交互见 [预付余额 KPI 交互说明](./requirements-prd-kpi-balance-alert.md)。\n\n### 3.1 预付余额预警 / 已欠费 — 点击交互（摘要）\n\n这两张 KPI 与「全部 / 无加氢」不同：**点击后不筛选主列表**，而是打开**站点列表弹窗**。\n\n| 步骤 | 用户操作 | 系统反馈 |\n|---|---|---|\n| 1 | 点击「预付余额预警站点」或「已欠费站点」 | 按口径汇总全量台账站点，打开居中弹窗；对应 KPI 卡片保持选中高亮 |\n| 2 | 查看弹窗内站点表 | 列与主列表一致（无操作列）；展示站点数；预付余额负值标红「已欠费」 |\n| 3 | 点击「一键发起充值单」 | 关闭弹窗 → 打开「发起充值单」→ 为每个站点预填名称、当前余额、收款信息；付款金额由用户填写 |\n| 4 | 填写金额并提交 | 与工具栏「发起充值单」相同校验；成功后走付款流程（原型提示） |\n| — | 点击「关闭」 | 关闭弹窗，KPI 选中态取消 |\n\n**口径提醒**：预警 = 已设阈值且余额 ≥ 0 且低于阈值；欠费 = 余额 < 0。已欠费站点不计入预警。\n\n**阈值配置入口**：工具栏「全站余额提醒设置」、行内更多「余额提醒设置」。\n\n---"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-statement",
                "title": "工具栏与对账",
                "markdown": "## 4. 列表工具栏\n\n| 按钮 | 行为 |\n|---|---|\n| 全站余额提醒设置 | 配置全局预付余额预警阈值 |\n| 批量导入 | 下载模板 → 上传 CSV/Excel → 预览确认导入 |\n| 发起充值单 | 为站点发起预付充值流程（原型演示） |\n| 新建站点 | 进入同页内嵌新建视图 |\n\n---\n\n---\n\n## 6. 数据来源\n\n- 氢费/加氢明细：统一来自 `src/common/h2VehicleLedgerBridge.js`，与「车辆氢费明细」共享 Store\n- 先打开「车辆氢费明细」时台账全量同步；仅打开加氢站模块时使用 canonical seed\n- 对账单提交经 `H2_STATION_STATEMENT_LEDGER_UPDATES` 回写车辆氢费明细\n\n---"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-table",
                "title": "站点列表",
                "markdown": "## 5. 列表字段说明\n\n| 字段 | 说明 |\n|---|---|\n| 加氢站名称 | 含签约标签；下一行展示省市区 + 详细地址 |\n| 合作时间 | 未签约可空 |\n| 营业状态 / 营业时间 | 列表只读；在「更多 → 营业状态」维护 |\n| 当前成本价格 | 元/kg；受价格配置生效时间驱动；多价时展示警示 |\n| 加氢次数 / 加氢量 | 加氢量可点击下钻；表头支持排序 |\n| 预付余额 | 可点击下钻流水；负值标红并显示「已欠费」 |\n| 联系方式 | 联系人 + 电话 |\n| 操作 | 查看 + 更多菜单 |\n\n**更多菜单**：编辑、删除、营业状态、价格配置、生成对账单、查看对账记录等（按状态与权限显隐）。\n\n**分页**：默认 10 条，可选 5/10/20/50。\n\n---"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-price-cost-input",
                "title": "成本价格输入",
                "markdown": "### 5.2 价格配置\n\n配置成本价格（元/kg）与生效时间；到达生效时间后刷新列表「当前成本价格」；展示价格调整记录。\n\n**固定价格 · 适用客户规则：**\n\n- 默认对**全部客户**生效（作为站点默认价格规则）\n- **取价优先级**：第一权重为单站单客户价格配置（若该客户有专属配置则按单客户配置生效）；第二权重为站点「全部客户」价格配置（无单客户配置时生效）\n\n#### 阶梯价格 · 生成逻辑\n\n1. 设置阶梯价格后，在对应**阶梯价格区间**内展示并应用该档**成本价**。\n2. 累计加氢量达到下一档阶梯时，自该次起按新档成本价计算；到达**阶梯量重置日期**后的新记录，按当前所处区间的**最新成本价**更新。\n3. **阶梯量重置日期**见价格配置表单内「阶梯量重置日期」；到达重置日后，累计加氢量**从零重新计数**，用于判断当前所处价格区间。\n4. **生效时间**自表单内「生效时间」起对新数据生效，**不追溯**此前已产生的数据；生效时间之前的历史记录，仍按当时已达的**最高阶梯价格**结算。"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-price-tiered",
                "title": "阶梯价格",
                "markdown": "#### 阶梯价格 · 生成逻辑\n\n1. 设置阶梯价格后，在对应**阶梯价格区间**内展示并应用该档**成本价**。\n2. 累计加氢量达到下一档阶梯时，自该次起按新档成本价计算；到达**阶梯量重置日期**后的新记录，按当前所处区间的**最新成本价**更新。\n3. **阶梯量重置日期**见价格配置表单内「阶梯量重置日期」；到达重置日后，累计加氢量**从零重新计数**，用于判断当前所处价格区间。\n4. **生效时间**自表单内「生效时间」起对新数据生效，**不追溯**此前已产生的数据；生效时间之前的历史记录，仍按当时已达的**最高阶梯价格**结算。"
              },
              {
                "type": "markdown",
                "id": "h2-site-doc-node-h2-site-statement-form",
                "title": "生成对账单",
                "markdown": "#### 生成对账单 · 业务逻辑\n\n1. 选择**账单开始日期**与**账单结束日期**后，从**车辆氢费明细**获取该时间段内、对应当前站点的加氢记录（已对账且尚未结算）。\n2. 点击「**生成对账单**」时弹出**二次确认**，提示：生成对账单后，车辆氢费明细中对应记录将自动标记为已对账且无法修改。\n3. 确认后进入结算阶段，填写**收票日期**、**收票金额**及**发票附件**（对账日期在提交时由系统自动回写）。\n4. 点击「**提交对账单**」后，本批明细在车辆氢费明细中锁定为已对账/已结算状态，不可再修改。\n\n**阶段一 · 选期生成**\n\n- 日期区下方展示：**上次对账单结束时间**（无历史则「暂无」）\n- 默认开始日期建议 = 上次结束日 + 1 天\n- 点击「生成对账单」时弹出**二次确认**：提示生成后车辆氢费明细对应记录将标记为已对账且无法修改；确认后进入阶段二，日期锁定不可改\n- 无符合条件记录时提示调整日期\n\n**阶段二 · 结算提交**\n\n统计卡（明细表上方）：\n\n| 指标 | 说明 |\n|---|---|\n| 加氢次数 | 本账单包含的已对账记录笔数 |\n| 加氢总量 | kg 合计 |\n| 成本总金额 | 成本总价合计 |\n\n明细表下方**必填**结算项：\n\n| 字段 | 规则 |\n|---|---|\n| 结算后加氢站预付款余额 | **只读**，= 当前预付余额 − 成本总金额；不足为负并标「已欠费」 |\n| 收票日期 | 必填 |\n| 收票金额 | 必填，默认填入成本总金额 |\n| 发票附件 | 必填，支持上传 |\n\n---"
              }
            ]
          }
        ]
      }
    ]
  }
}
