[
  {
    "id": "ct-list-filter",
    "index": 1,
    "title": "筛选条件",
    "pageId": "list",
    "hasMarkdown": true,
    "annotationText": "### 7.2 筛选区\n\n| 字段 | 控件 | 说明 |\n|---|---|---|\n| 合同名称 | 文本输入 | 支持回车触发查询 |\n| 状态 | 下拉 | 全部 / 已发布 / 草稿 |\n| 创建人 | 下拉 | 选项来自现有模板 `creator` 去重 |\n| 适用品牌 | 下拉 | 选项来自车型主数据品牌列表 |\n\n**按钮**：\n\n- **查询**：应用筛选条件\n- **重置**：清空筛选恢复默认",
    "aiPrompt": "列表页筛选区字段与查询逻辑。",
    "color": "#2563eb",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-list-filter\"]"
      ],
      "fingerprint": "ct-list-filter",
      "path": []
    }
  },
  {
    "id": "ct-list-toolbar",
    "index": 2,
    "title": "新增模板",
    "pageId": "list",
    "hasMarkdown": false,
    "annotationText": "进入新增页，默认从「合同主体」章节开始编辑。",
    "aiPrompt": "列表工具栏新增入口。",
    "color": "#32a06e",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-list-toolbar\"]"
      ],
      "fingerprint": "ct-list-toolbar",
      "path": []
    }
  },
  {
    "id": "ct-list-table",
    "index": 3,
    "title": "Word 模板列表",
    "pageId": "list",
    "hasMarkdown": true,
    "annotationText": "### 7.4 主表字段\n\n| 列名 | 字段 | 展示规则 |\n|---|---|---|\n| （展开列） | — | 宽 48px |\n| 合同类型 | `contractType` | 展示用户自定义的合同类型文案；已发布模板在类型后以 Tag 显示「启用」或「停用」 |\n| 版本号 | `versionNo` | 草稿显示「—」 |\n| 状态 | `status` | 已发布 / 草稿 Tag |\n| 创建时间 | `createTime` | — |\n| 创建人 | `creator` | 展示短名 |\n| 最后更新时间 | `updateTime` | — |\n| 更新人 | `updater` | 同创建人展示规则 |\n| 操作 | — | 见 7.5 |\n\n**分页**：每页 10 条，展示总条数。\n\n### 7.5 主表操作\n\n| 操作 | 显示条件 | 行为 |\n|---|---|---|\n| 启用 / 停用 | 已发布 | 切换模板是否可供租赁合同创建选用 |\n| 编辑 | 未启用或草稿 | 进入编辑页 |\n| 更多 → 版本日志 | 已发布 | 查看发布归档快照 |\n| 更多 → 删除 | 未处于启用锁定 | 弹窗确认后删除 |\n\n**多套模板并存**：同一合同类型可维护多套模板；租赁合同创建时先选合同类型，再自动套用该类型下已启用的标准模板（`isDefault` 优先）。\n\n### 7.6 子表（展开行）\n\n主表每行可展开，展示该 Word 文档下 **9 个章节** 的摘要。",
    "aiPrompt": "主表与子表嵌套列表结构。",
    "color": "#0f766e",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-list-table\"]"
      ],
      "fingerprint": "ct-list-table",
      "path": []
    }
  },
  {
    "id": "ct-editor-topbar",
    "index": 4,
    "title": "编辑页顶栏",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.2 顶栏\n\n| 元素 | 行为 |\n|---|---|\n| ← 返回列表 | 回到列表页，不自动保存 |\n| 保存 | 见 §6.2 |\n| 保存并发布 | 见 §6.2 |\n\n### 6.2 保存与发布\n\n| 操作 | 新增模式 | 编辑草稿 | 编辑已发布 |\n|---|---|---|---|\n| **保存** | 新建草稿记录 | 更新原记录，保持草稿 | 更新原记录，**降为草稿**（清空版本号） |\n| **保存并发布** | 新建已发布记录 + 版本号 | 原记录变已发布 + 版本号 | **新建一条已发布记录**（新版本），原版本保留 |\n\n**校验**：保存/发布前，合同主体（`sectionContents.main`）不能为空，且须已填写合同类型（见 §8.4）。",
    "aiPrompt": "返回、保存草稿、保存并发布。",
    "color": "#64748b",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-editor-topbar\"]"
      ],
      "fingerprint": "ct-editor-topbar",
      "path": []
    }
  },
  {
    "id": "ct-section-tabs",
    "index": 5,
    "title": "章节 Tab",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.3 章节 Tab\n\n- 共 9 个章节，**全部在横向滚动条中展示**（带序号 1–9），当前章节自动滚入视野。\n- 右上角 **章节列表** 可搜索并跳转（适合长标题章节）。\n- 当前章节全称在 Tab 下方展示，避免标题被截断后找不到位置。\n- 切换 Tab 后，编辑区与预览区 **同步切换** 至对应章节内容。\n- **合同主体 Tab**：编辑/预览 **整份 Word 合并全文**；其他 Tab 仅展示该章节切片。",
    "aiPrompt": "9 个合同章节切换。",
    "color": "#2563eb",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-section-tabs\"]"
      ],
      "fingerprint": "ct-section-tabs",
      "path": []
    }
  },
  {
    "id": "ct-contract-type",
    "index": 6,
    "title": "合同类型",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.4 合同类型（仅合同主体 Tab）\n\n| 元素 | 说明 |\n|---|---|\n| 合同类型输入框 | **必填**；用户自行填写，如「正式合同」「现代18吨试用合同」 |\n| 展示位置 | 章节 Tab 下方配置卡片，与附件章节的「适用车型」卡片交互一致 |\n| 用途 | 同步至列表页「合同类型」列；租赁合同创建时按类型匹配标准模板 |\n\n**规则**：\n\n- 仅当选中 **合同主体** 章节 Tab 时显示本卡片。\n- 未填写时无法保存或发布，并提示「请输入合同类型」。\n- 切换至租赁订单等附件章节时，显示「适用车型」卡片，本卡片隐藏。\n- 保存/发布时写入模板 `contractType` 字段。",
    "aiPrompt": "合同主体章节下的合同类型配置。",
    "color": "#7c3aed",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-contract-type\"]"
      ],
      "fingerprint": "ct-contract-type",
      "path": []
    }
  },
  {
    "id": "ct-vehicle-binding",
    "index": 7,
    "title": "适用车型绑定",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.5 适用车型绑定（附件章节 Tab：租赁订单～安全责任协议）\n\n| 元素 | 说明 |\n|---|---|\n| 品牌型号选择器 | 点击输入框弹出卡片；支持搜索筛选 |\n| 已选区 | 弹层内展示已选「品牌 · 型号」，可逐项移除 |\n| 品牌列 | 左侧列表切换品牌 |\n| 型号区 | 右侧多选型号（点击切换选中） |\n\n**规则**：\n\n- 绑定保存在 `sectionVehicleBindings[当前章节 key]`。\n- 切换章节 Tab 时加载对应章节的绑定。\n- 未绑定任何车型时表示全部车型适用。",
    "aiPrompt": "附件章节适用车型配置。",
    "color": "#059669",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-vehicle-binding\"]"
      ],
      "fingerprint": "ct-vehicle-binding",
      "path": []
    }
  },
  {
    "id": "ct-editor-panel",
    "index": 8,
    "title": "编辑区",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.6 编辑区（左侧）\n\n#### 8.6.1 面板头操作\n\n| 按钮 | 说明 |\n|---|---|\n| { } 模板占位符 | 弹层展示变量分组，点击插入光标处 |\n| 导入 Word 模板 | 接受 `.doc` / `.docx`；导入后按 §9 拆分章节 |\n\n#### 8.6.2 富文本工具栏（节选）\n\n| 按钮 | 说明 |\n|---|---|\n| **红线** | 在章节中选中内容后标记；新增租赁合同时**修改红线内文字**将自动变为非标合同，**不修改**则仍为标准流程 |\n| **取消**（红线旁） | 选中已标红线内容后点击，取消红线；取消后修改该部分不再触发非标流程 |\n| **条件** | 在**合同主体及租赁订单～安全责任协议**各章节圈定具体内容，使**部分条款**仅对指定车型生效（创建合同时按订单车辆命中显隐） |\n| **取消**（条件旁） | 选中已设条件的条款后点击，解除该部分的车型限定 |\n| **锁定** | 选中章节内内容后标记；新增租赁合同时该部分**无法被篡改** |\n| **解除**（锁定旁） | 选中已锁定内容后点击，解除锁定 |\n\n**叠加规则**：红线、条件与锁定可作用于**同一段内容**，互不排斥。\n\n**与章节「适用车型」的区别**：\n\n- **适用车型**（附件章节 Tab 上方卡片）：控制整章是否在创建合同时对某车型**可见/不可见**。\n- **条件**（工具栏）：仅作用于章节内的**部分段落**，不影响整章显隐。\n\n#### 8.6.3 条件条款交互\n\n**适用范围**：合同主体、租赁订单、车辆产生的费用、安全责任告知书、重型普通货运车辆租赁动态监管责任告知与确认书、安全责任承诺书、车辆使用规范和驾驶员要求、授权委托书、安全责任协议。\n\n1. 选中段落或文字；\n2. 点击「条件」并绑定「品牌 · 型号」；\n3. 创建合同时：订单车辆任意一辆命中 → 段落纳入正文，否则隐藏。",
    "aiPrompt": "Word 版式分页编辑区。",
    "color": "#7c3aed",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-editor-panel\"]"
      ],
      "fingerprint": "ct-editor-panel",
      "path": []
    }
  },
  {
    "id": "ct-rte-risk-redline",
    "index": 9,
    "title": "红线",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "红线功能主要用于在章节中选择特定内容，点击红线将其设置为篡改后自动变成非标合同。不修改红线内内容不会导致流程变为非标。",
    "aiPrompt": "风控红线条款标记。",
    "color": "#dc2626",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-risk-redline\"]"
      ],
      "fingerprint": "ct-rte-risk-redline",
      "path": []
    }
  },
  {
    "id": "ct-rte-unrisk-redline",
    "index": 10,
    "title": "取消红线",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "取消功能主要用于取消被选中的部分的红线内容。取消后，在新增租赁合同时修改该部分内容，不会导致流程变为非标准流程。",
    "aiPrompt": "取消风控红线标记。",
    "color": "#94a3b8",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-unrisk-redline\"]"
      ],
      "fingerprint": "ct-rte-unrisk-redline",
      "path": []
    }
  },
  {
    "id": "ct-rte-vehicle-clause",
    "index": 11,
    "title": "条件",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "条件可在合同主体及租赁订单～安全责任协议全部章节使用：圈定章节内具体内容，使部分条款仅对指定车型生效。与各章节「适用车型」（控制整章是否可见）不同，条件只作用于章节内部分段落。",
    "aiPrompt": "条件条款（段落级车型显隐）。",
    "color": "#2563eb",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-vehicle-clause\"]"
      ],
      "fingerprint": "ct-rte-vehicle-clause",
      "path": []
    }
  },
  {
    "id": "ct-rte-unvehicle-clause",
    "index": 12,
    "title": "取消条件",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "当条款被设置条件后，可以通过选中特定条款内容，点击取消来取消该部分内容的车型限定。",
    "aiPrompt": "取消条件条款标记。",
    "color": "#64748b",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-unvehicle-clause\"]"
      ],
      "fingerprint": "ct-rte-unvehicle-clause",
      "path": []
    }
  },
  {
    "id": "ct-rte-inline-lock",
    "index": 13,
    "title": "锁定",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "锁定主要用于选中章节内的内容；锁定之后该部分内容无法在新增租赁合同时被篡改。红线、条件以及锁定可以在同一段内容同时生效。",
    "aiPrompt": "内容锁定区标记。",
    "color": "#b45309",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-inline-lock\"]"
      ],
      "fingerprint": "ct-rte-inline-lock",
      "path": []
    }
  },
  {
    "id": "ct-rte-uninline-lock",
    "index": 14,
    "title": "解除锁定",
    "pageId": "editor",
    "hasMarkdown": false,
    "annotationText": "选中已锁定内容后点击解除；解除后新增租赁合同时可再次编辑该部分。",
    "aiPrompt": "解除内容锁定标记。",
    "color": "#94a3b8",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-rte-uninline-lock\"]"
      ],
      "fingerprint": "ct-rte-uninline-lock",
      "path": []
    }
  },
  {
    "id": "ct-preview-panel",
    "index": 15,
    "title": "实时预览",
    "pageId": "editor",
    "hasMarkdown": true,
    "annotationText": "### 8.7 实时预览（右侧）\n\n#### 8.7.1 预览模式\n\n| 模式 | 说明 |\n|---|---|\n| 连续预览 | 多页连续滚动 |\n| 单页预览 | 按 A4 单页翻页 |\n\n#### 8.7.2 预览顶栏统计\n\n展示当前章节：\n\n`锁定 N 处 · 风控红线 M 处 · 条件条款 K 处`\n\n当前章节支持条件且已选模拟车型时追加：`（预览命中 X）`\n\n#### 8.7.3 模拟车型\n\n- 在合同主体及全部附件章节可用；多选下拉，选项来自车型主数据（品牌 · 型号）。\n- 未选车型时：**隐藏**所有条件条款段落（与创建合同时无车辆命中行为一致）。\n- 选中后按命中规则过滤并展开条件条款正文。\n\n#### 8.7.4 占位符预览\n\n预览时替换部分占位符为样例值，如：\n\n- `{{customerName}}` → `【承租方公司名称】`\n- `{{contractCode}}` → `20260001`\n- 甲方相关变量按预览所选出租方公司填充",
    "aiPrompt": "A4 分页预览与模拟车型。",
    "color": "#0ea5e9",
    "images": [],
    "controls": [],
    "locator": {
      "selectors": [
        "[data-annotation-id=\"ct-preview-panel\"]"
      ],
      "fingerprint": "ct-preview-panel",
      "path": []
    }
  }
]