# Doc_门户首页_首页元素获取键值_功能总结

## 概述

为门户首页自动化测试提供元素定位键值表。基于以下源码生成：

| 来源 | 路径 |
|------|------|
| 门户首页 | `web\pc-vue2-platform\src\views\Home\index.vue` |
| 功能中心 | `web\pc-vue2-platform\src\views\Home\components\NavMenu\index.vue` |
| 跳转列表 | `web\pc-vue2-platform\src\constant\navMenu.js` |

## 键值表结构设计

| 层级 | 键格式 | 值类型 | 示例 |
|------|--------|--------|------|
| 首页导航栏 | `导航栏-{元素名}` | class/文本 | `导航栏-退出登录` → `.ub-icon-out` |
| 首页功能块 | `首页-{模块}-{功能名}` | 文本 within `.block` | `首页-常用功能-创建会议` → `//div[contains(@class,'block') and .//p[text()='创建会议']]` |
| 功能中心-置顶/常用 | `功能中心-{模块}-{功能名}` | data-key | `功能中心-置顶功能-创建会议` → `[data-key="reserve_list.create"]` |
| 功能中心-全部功能 | `全部功能-{分类}-{功能名}` | data-id | `全部功能-会议预约-创建会议` → `[data-id="reserve_list.create"]` |
| 功能中心-筛选器 | `全部功能-筛选器-{筛选项}` | id | `全部功能-筛选器-全部` → `#all` |

> **定位优先级建议**：`data-key` / `data-id` > `id` > class > 文本 XPath。文本定位仅用于首页 `.block`（该类元素无任何 data 属性），多语言环境下需注意 `p` 标签文本随语言变化。

---

## 一、首页导航栏（`Home/index.vue`）

| 键 | 定位值 | 说明 |
|----|--------|------|
| 导航栏-功能中心抽屉开关 | `.home_nav_left` | 打开/关闭功能中心抽屉，图标 `.ub-icon-list`/`.ub-icon-close` |
| 导航栏-Logo | `.home_nav .logo` | 顶部 logo 图片 |
| 导航栏-系统名称 | `.logo_text` | 系统名文本，如"统一会议管理平台" |
| 导航栏-退出登录 | `.ub-icon-out` | 仅 `loginAPP=='normal'` 时显示 |
| 导航栏-用户头像 | `.el-dropdown.themeUl.userInfo` | 下拉，hover 展开 |
| 导航栏-个人信息 | `.el-dropdown-menu__item` 含文本"个人信息" | 下拉项，`command="personInfo"` |
| 导航栏-版本信息 | `.el-dropdown-menu__item` 含文本"版本信息" | 下拉项，`command="version"` |

---

## 二、首页功能块（`Home/index.vue`）

首页功能块 `.block` **无 data-key / data-id / id 属性**，仅 `:key="index"`（index 不稳定），因此统一采用「文本 within `.block`」定位。

### 常用功能（`.item--meeting .first_box_flex`）

默认列表 = 会议预约 + 运维维护 + 集控控制 中第一个有权限的分类 + 数据统计。

| 键 | 定位值 |
|----|--------|
| 首页-常用功能-创建会议 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='创建会议']]` |
| 首页-常用功能-会议模板 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='会议模板']]` |
| 首页-常用功能-会议日程 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='会议日程']]` |
| 首页-常用功能-会议室 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='会议室']]` |
| 首页-常用功能-会议列表 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='会议列表']]` |
| 首页-常用功能-数据统计 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='数据统计']]` |
| 首页-常用功能-使用数据 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='使用数据']]` |
| 首页-常用功能-管理看板 | `//div[contains(@class,'item--meeting')]//div[contains(@class,'block') and .//p[text()='管理看板']]` |

> 常用功能列表由用户个性化菜单动态决定，具体项以实际渲染为准。上表列出默认候选。

### 置顶功能（`.item--data .first_box_flex`）

默认列表 = 会议预约 / 运维维护 / 集控控制 / 预定2.0 中第一个有权限的分类。

| 键 | 定位值 |
|----|--------|
| 首页-置顶功能-会议室列表 | `//div[contains(@class,'item--data')]//div[contains(@class,'block') and .//p[text()='会议室列表']]` |
| 首页-置顶功能-会议运维 | `//div[contains(@class,'item--data')]//div[contains(@class,'block') and .//p[text()='会议运维']]` |
| 首页-置顶功能-设备列表 | `//div[contains(@class,'item--data')]//div[contains(@class,'block') and .//p[text()='设备列表']]` |

> 置顶功能由用户配置/默认逻辑决定，具体项以实际渲染为准。

---

## 三、功能中心-置顶功能（`NavMenu/index.vue`）

元素：`.item_content_item` + `:data-key="item.id"`，定位统一用 `[data-key="..."]`。

| 键 | 定位值 |
|----|--------|
| 功能中心-置顶功能-创建会议 | `[data-key="reserve_list.create"]` |
| 功能中心-置顶功能-会议模板 | `[data-key="reserve_list.model"]` |
| 功能中心-置顶功能-会议日程 | `[data-key="reserve_list.schedule"]` |
| 功能中心-置顶功能-会议室 | `[data-key="reserve_list.room"]` |
| 功能中心-置顶功能-会议列表 | `[data-key="reserve_list.meeting"]` |

> 置顶功能项由用户配置决定，此处为默认候选（会议预约分类）。

---

## 四、功能中心-常用功能（`NavMenu/index.vue`）

元素：`.item_content_item` + `:data-key="item.id"`，定位统一用 `[data-key="..."]`。

| 键 | 定位值 |
|----|--------|
| 功能中心-常用功能-创建会议 | `[data-key="reserve_list.create"]` |
| 功能中心-常用功能-会议模板 | `[data-key="reserve_list.model"]` |
| 功能中心-常用功能-会议日程 | `[data-key="reserve_list.schedule"]` |
| 功能中心-常用功能-会议室 | `[data-key="reserve_list.room"]` |
| 功能中心-常用功能-会议列表 | `[data-key="reserve_list.meeting"]` |
| 功能中心-常用功能-数据统计 | `[data-key="data_list.booking"]` |

> 常用功能为默认候选 + 数据统计，实际以用户个性化菜单为准。

---

## 五、功能中心-全部功能（`NavMenu/index.vue`）

元素：`.item_content_item` + `:data-id="item.id"`，定位统一用 `[data-id="..."]`。按 13 个分类列出全部菜单项。

### 会议预约（meeting）

| 键 | 定位值 |
|----|--------|
| 全部功能-会议预约-创建会议 | `[data-id="reserve_list.create"]` |
| 全部功能-会议预约-会议模板 | `[data-id="reserve_list.model"]` |
| 全部功能-会议预约-会议日程 | `[data-id="reserve_list.schedule"]` |
| 全部功能-会议预约-会议室 | `[data-id="reserve_list.room"]` |
| 全部功能-会议预约-会议列表 | `[data-id="reserve_list.meeting"]` |

### 运维维护（meetingMaintenance）

| 键 | 定位值 |
|----|--------|
| 全部功能-运维维护-会议运维 | `[data-id="maintain_list.meeting"]` |
| 全部功能-运维维护-视频设备 | `[data-id="maintain_list.video_dev"]` |
| 全部功能-运维维护-维护区域 | `[data-id="maintain_list.room_list"]` |
| 全部功能-运维维护-维护设备 | `[data-id="maintain_list.dev_list"]` |
| 全部功能-运维维护-告警列表 | `[data-id="maintain_list.alarm_list"]` |
| 全部功能-运维维护-会议巡检 | `[data-id="maintain_list.meeting_inspect"]` |
| 全部功能-运维维护-待办巡检 | `[data-id="maintain_list.inspect_list"]` |

### 维护工单（workOrder）

| 键 | 定位值 |
|----|--------|
| 全部功能-维护工单-待办工单 | `[data-id="workorder_list.order_list"]` |
| 全部功能-维护工单-我的工单 | `[data-id="workorder_list.order_my"]` |
| 全部功能-维护工单-告警工单 | `[data-id="workorder_list.alarm_order"]` |

### 集控控制（monitor）

| 键 | 定位值 |
|----|--------|
| 全部功能-集控控制-设备列表 | `[data-id="central_list.deviceList"]` |
| 全部功能-集控控制-远程控制 | `[data-id="central_list.remoteControl"]` |
| 全部功能-集控控制-文件下发 | `[data-id="central_list.fileList"]` |
| 全部功能-集控控制-消息下发 | `[data-id="central_list.infoList"]` |
| 全部功能-集控控制-壁纸下发 | `[data-id="central_list.wallPaper"]` |
| 全部功能-集控控制-脚本命令 | `[data-id="central_list.shellList"]` |
| 全部功能-集控控制-应用管理 | `[data-id="central_list.appList"]` |
| 全部功能-集控控制-屏幕管理 | `[data-id="central_list.screenControl"]` |
| 全部功能-集控控制-软件卸载 | `[data-id="central_list.installList"]` |
| 全部功能-集控控制-设备网络 | `[data-id="central_list.devicenet"]` |

### 会议转录（record）

| 键 | 定位值 |
|----|--------|
| 全部功能-会议转录-转录列表 | `[data-id="trans_list.table"]` |

### 信息发布（infoPublish）

| 键 | 定位值 |
|----|--------|
| 全部功能-信息发布-信息发布 | `[data-id="publication_list.info"]` |
| 全部功能-信息发布-门牌发布 | `[data-id="publication_list.doorScreen"]` |
| 全部功能-信息发布-播放器发布 | `[data-id="publication_list.player"]` |

> `publication_list.player` 在 `getUndevelopedList()` 中，点击提示"功能开发中"，未实现。

### 数据统计（statistics）

| 键 | 定位值 |
|----|--------|
| 全部功能-数据统计-数据统计 | `[data-id="data_list.booking"]` |
| 全部功能-数据统计-使用数据 | `[data-id="data_list.usage"]` |
| 全部功能-数据统计-管理看板 | `[data-id="data_list.dashboard"]` |
| 全部功能-数据统计-故障数据 | `[data-id="data_list.fault"]` |
| 全部功能-数据统计-运维数据 | `[data-id="data_list.devops_data"]` |
| 全部功能-数据统计-运维统计 | `[data-id="data_list.devops_total"]` |
| 全部功能-数据统计-巡检报告 | `[data-id="data_list.inspect_report"]` |
| 全部功能-数据统计-会议统计 | `[data-id="data_list.meeting_total"]` |
| 全部功能-数据统计-通知统计 | `[data-id="data_list.notice_total"]` |
| 全部功能-数据统计-会议服务统计 | `[data-id="data_list.meeting_service"]` |
| 全部功能-数据统计-会议室统计 | `[data-id="data_list.room_total"]` |
| 全部功能-数据统计-WeLink会议统计 | `[data-id="data_list.welink_total"]` |
| 全部功能-数据统计-WeLink历史记录 | `[data-id="data_list.welink_history"]` |
| 全部功能-数据统计-SMC3会议统计 | `[data-id="data_list.smc3_total"]` |
| 全部功能-数据统计-SMC3历史记录 | `[data-id="data_list.smc3_history"]` |
| 全部功能-数据统计-RSE会议统计 | `[data-id="data_list.res_total"]` |
| 全部功能-数据统计-RSE历史记录 | `[data-id="data_list.res_history"]` |
| 全部功能-数据统计-会议概览 | `[data-id="data_list.meeting_summary"]` |
| 全部功能-数据统计-会议室概览 | `[data-id="data_list.room_summary"]` |

> `data_list.meeting_summary`、`data_list.room_summary` 在 `getUndevelopedList()` 中，未实现。

### 资产管理（asset）

| 键 | 定位值 |
|----|--------|
| 全部功能-资产管理-资产信息 | `[data-id="asset_list.asset_info"]` |
| 全部功能-资产管理-资产故障 | `[data-id="asset_list.asset_repair"]` |
| 全部功能-资产管理-资产设备 | `[data-id="asset_list.asset_device"]` |

### 会务管理（conference）

| 键 | 定位值 |
|----|--------|
| 全部功能-会务管理-会务统筹 | `[data-id="conference_list.coord"]` |
| 全部功能-会务管理-会务工单 | `[data-id="conference_list.order"]` |

### 信息管理（info）

| 键 | 定位值 |
|----|--------|
| 全部功能-信息管理-信息窗管理 | `[data-id="info_list.message_window"]` |
| 全部功能-信息管理-消息通知 | `[data-id="info_list.notification"]` |
| 全部功能-信息管理-待办事项 | `[data-id="info_list.todo_list"]` |

### 其他（other）

| 键 | 定位值 |
|----|--------|
| 全部功能-其他-文件列表 | `[data-id="other_list.file_list"]` |
| 全部功能-其他-下载列表 | `[data-id="other_list.down_list"]` |
| 全部功能-其他-通讯录 | `[data-id="other_list.contact_list"]` |

### 预定2.0（meetingV2）

| 键 | 定位值 |
|----|--------|
| 全部功能-预定2.0-会议室列表 | `[data-id="meetingRoomList"]` |
| 全部功能-预定2.0-已预定会议 | `[data-id="bookedMeeting"]` |
| 全部功能-预定2.0-历史记录 | `[data-id="historyRecord"]` |
| 全部功能-预定2.0-会议模板 | `[data-id="meetingTemplate"]` |
| 全部功能-预定2.0-会议审批 | `[data-id="meetingApproval"]` |
| 全部功能-预定2.0-参会人模板 | `[data-id="participantTemplate"]` |

---

## 六、功能中心-筛选器（`NavMenu/index.vue`）

元素：`.item_filter_item` + `:id="item.show"`。

| 键 | 定位值 |
|----|--------|
| 全部功能-筛选器-全部 | `#all` |
| 全部功能-筛选器-会议预约 | `#reserve_enable` |
| 全部功能-筛选器-运维维护 | `#maintain_enable` |
| 全部功能-筛选器-维护工单 | `#workorder_enable` |
| 全部功能-筛选器-集控控制 | `#central_enable` |
| 全部功能-筛选器-会议转录 | `#trans_enable` |
| 全部功能-筛选器-信息发布 | `#publication_enable` |
| 全部功能-筛选器-数据统计 | `#data_enable` |
| 全部功能-筛选器-资产管理 | `#asset_enable` |
| 全部功能-筛选器-会务管理 | `#conference_enable` |
| 全部功能-筛选器-信息管理 | `#info_enable` |
| 全部功能-筛选器-其他 | `#other_enable` |
| 全部功能-筛选器-预定2.0 | `#true` |

> ⚠️ 预定2.0 筛选器的 `show` 为 `true`，其 id 为 `#true`（非语义化，易与布尔值混淆）。若需区分是否选中，可结合 `.active` 类：`#true.active`。

---

## 七、功能中心-搜索框

| 键 | 定位值 |
|----|--------|
| 功能中心-搜索输入框 | `.menu_header .search input` |

---

## 八、使用说明与注意事项

### 命中优先级
1. `[data-key]` / `[data-id]` —— 最稳定，功能中心内通用
2. `#id` —— 筛选器
3. class —— 导航栏
4. 文本 XPath —— 仅限首页 `.block`（无 data 属性）

### 风险点
1. **首页 `.block` 无 data 属性**：只能靠文本定位。多语言下文本变化，需按语言维护多套定位值；名称重复时（如"会议模板"在会议预约与预定2.0都出现）需结合 `.item--meeting` / `.item--data` 限定域。
2. **个性化菜单动态性**：首页常用/置顶功能、功能中心置顶/常用功能均随用户个性化配置变化，键值表只能覆盖默认候选，实际以渲染为准。
3. **权限过滤**：所有项带 `v-permission="item.show"`，无权限时元素不渲染，定位会失败，需先确认测试账号权限。
4. **未开发功能**：`publication_list.player`、`data_list.meeting_summary`、`data_list.room_summary` 点击提示"功能开发中"，页面级测试应跳过。
5. **筛选器 id 冲突**：预定2.0 的 `#true` 非语义化，建议用 class 兜底。
6. **抽屉需先打开**：功能中心元素在 `el-drawer` 内，定位前需先点击 `.home_nav_left` 打开抽屉。

### i18n 固定中文名映射
下表为 `navMenu.js` 中 `name` 的当前中文含义（`i18n` key → 中文），便于核对文本定位：

| i18n key | 中文 |
|----------|------|
| home.newMeeting | 创建会议 |
| home.meetingTemplate | 会议模板 |
| home.personalSchedule | 会议日程 |
| home.meetingRoomList | 会议室 |
| home.meetingList | 会议列表 |
| home.bookingData | 数据统计 |
| home.usageData | 使用数据 |
| home.managePanel | 管理看板 |
| home.faultData | 故障数据 |
| home.assetInfo | 资产信息 |
| home.assetFault | 资产故障 |
| navMenu.all | 全部 |
| navMenu.meetingReservation | 会议预约 |
| navMenu.maintenance | 运维维护 |
| navMenu.maintenanceWorkOrder | 维护工单 |
| navMenu.centralizedControl | 集控控制 |
| navMenu.meetingTranscription | 会议转录 |
| navMenu.infoPublish | 信息发布 |
| navMenu.dataStatistics | 数据统计 |
| navMenu.assetManagement | 资产管理 |
| navMenu.conferenceManagement | 会务管理 |
| navMenu.infoManagement | 信息管理 |
| navMenu.otherCategory | 其他 |

关键发现（影响测试编写）

  - 首页 .block 无任何 data 属性，只能文本 XPath 定位，多语言下不稳定。
  - 筛选器"预定2.0"的 id 是 #true（show:true 所致），非语义化。
  - 抽屉需先点开（.home_nav_left）才能定位功能中心元素。
  - 3 项未开发功能（播放器发布、会议概览、会议室概览）点击会提示"功能开发中"，测试应跳过。