## dataTable.html — 数据表格通用模板

### 适用场景
用于展示任何需要表格形式呈现的列表数据，如企业列表、设备列表、能耗记录、用户列表等。
**表头列数完全动态**，根据 `TABLE_COLUMNS` 自动生成；分页、每页条数切换、页码跳转均由 JS 自动处理，无需手动生成 HTML。

### 所需 JSON 数据格式

```json
{
  "page_title": "企业列表",
  "data": {
    "js_variables": {
      "TABLE_TITLE": "企业列表",
      "TABLE_COLUMNS": [
        { "label": "企业名称",   "key": "enterprise_name" },
        { "label": "行业类型",   "key": "industry_type" },
        { "label": "法定代表人", "key": "legal_person" },
        { "label": "联系电话",   "key": "contact_phone" },
        { "label": "智能管理设备数", "key": "device_count" },
        { "label": "在线设备数", "key": "online_device_count" },
        { "label": "企业状态",   "key": "status" }
      ],
      "TABLE_ROWS_DATA": [
        {
          "enterprise_name": "测试企业A",
          "industry_type": "制造业",
          "legal_person": "张三",
          "contact_phone": "13800000001",
          "device_count": 18,
          "online_device_count": 18,
          "status": "正常"
        },
        {
          "enterprise_name": "测试企业B",
          "industry_type": "采矿业",
          "legal_person": "李四",
          "contact_phone": "13800000002",
          "device_count": 4,
          "online_device_count": 4,
          "status": "正常"
        }
      ],
      "DEFAULT_PAGE_SIZE": 10
    }
  }
}
```

### 字段说明

| 字段 | 类型 | 说明 |
|------|------|------|
| TABLE_TITLE | 字符串 | 表格卡片标题 |
| TABLE_COLUMNS | 数组 | 列定义，每个元素包含 `label`（表头显示文字）和 `key`（对应 TABLE_ROWS_DATA 中的字段名） |
| TABLE_ROWS_DATA | 数组 | 所有数据行，每个元素是一个对象，字段名与 TABLE_COLUMNS 中的 key 对应 |
| DEFAULT_PAGE_SIZE | 整数 | 默认每页显示条数，建议值：10、20、50、100 |

### 关键规则

1. **TABLE_COLUMNS 的 key 必须与 TABLE_ROWS_DATA 中的字段名完全一致**（区分大小写）
2. **TABLE_ROWS_DATA 包含全部数据行**，分页由前端 JS 自动处理，无需手动截断
3. **不需要**填写 TABLE_HEADERS、TABLE_ROWS、PAGE_BUTTONS 等 HTML 字符串，模板完全由 JS 动态生成
4. 列数不限，JS 会根据 TABLE_COLUMNS 的长度自动生成对应数量的表头和单元格
5. 如果某行某字段值为 null 或 undefined，自动显示为 `-`

### 分页功能说明

模板内置完整分页功能，无需额外配置：
- 支持每页 10 / 20 / 50 / 100 条切换（下拉选择器）
- 自动生成页码按钮（超过 7 页时显示省略号）
- 支持输入页码直接跳转（按 Enter 确认）
- 显示"共 N 条，显示第 X–Y 条"信息

---
