{"is_fixed_template": false, "template_name": "barChart", "template_doc": "## barChart.html — 柱状图通用模板\n\n### 适用场景\n用于展示任何需要柱状图可视化的数据分析场景，如日能耗趋势、月能耗对比、设备能耗排名等。\n\n### 所需 JSON 数据格式\n\n```json\n{\n  \"page_title\": \"能耗趋势分析\",\n  \"data\": {\n    \"text_values\": {\n      \"PAGE_TITLE\": \"能耗趋势分析\",\n      \"CHART_TITLE\": \"能耗趋势\",\n      \"STAT_TITLE\": \"统计数据\",\n      \"STAT_LABEL_1_1\": \"本月累计\",\n      \"STAT_VALUE_1_1\": \"1,125.8 kWh\",\n      \"STAT_LABEL_1_2\": \"上月累计\",\n      \"STAT_VALUE_1_2\": \"1,089.3 kWh\",\n      \"STAT_LABEL_1_3\": \"环比\",\n      \"STAT_VALUE_1_3\": \"+3.4% ↑\",\n      \"STAT_VALUE_1_3_CLASS\": \"up\",\n      \"STAT_LABEL_2_1\": \"本月日均\",\n      \"STAT_VALUE_2_1\": \"36.3 kWh\",\n      \"STAT_LABEL_2_2\": \"上月日均\",\n      \"STAT_VALUE_2_2\": \"35.1 kWh\",\n      \"STAT_LABEL_2_3\": \"环比\",\n      \"STAT_VALUE_2_3\": \"+3.4% ↑\",\n      \"STAT_VALUE_2_3_CLASS\": \"up\",\n      \"TABLE_TITLE\": \"每日能耗明细\",\n      \"TABLE_HEADER_1\": \"日期\",\n      \"TABLE_HEADER_2\": \"能耗（kWh）\",\n      \"TABLE_HEADER_3\": \"环比变化\",\n      \"TABLE_HEADER_4\": \"同比变化\",\n      \"TABLE_ROWS\": \"<tr><td>1日</td><td>32.5</td><td><span class=\\\"tag-down\\\">-2.1% ↓</span></td><td><span class=\\\"tag-up\\\">+4.3% ↑</span></td></tr><tr><td>2日</td><td>35.2</td><td><span class=\\\"tag-up\\\">+8.3% ↑</span></td><td><span class=\\\"tag-up\\\">+5.7% ↑</span></td></tr>\",\n      \"SUGGESTION_TITLE\": \"节能建议\",\n      \"ANALYSIS_SUMMARY\": \"本月累计能耗 1,125.8 kWh，较上月增长 3.4%，日均能耗 36.3 kWh。其中 3日（38.6kWh）、9日（39.1kWh）为能耗高峰日，7日（31.2kWh）能耗最低。整体呈波动上升趋势，周末能耗略低于工作日。\",\n      \"OPTIMIZATION_SUGGESTIONS\": \"<li>· 3日、9日能耗明显偏高，建议排查当日设备运行记录，识别高耗能时段和设备，优化运行策略。</li><li>· 本月能耗环比上升 3.4%，建议加强日常能耗监控，设置能耗预警阈值，及时发现异常波动。</li><li>· 参考7日低能耗表现，总结节能经验（如合理调整空调温度、关闭非必要照明等），推广至日常运营。</li><li>· 建议制定分时段用能计划，避开用电高峰时段，降低电费成本，同时减少电网负荷压力。</li>\"\n    },\n    \"js_variables\": {\n      \"CHART_X_AXIS_DATA\": [\"1日\", \"2日\", \"3日\", \"4日\", \"5日\", \"6日\", \"7日\", \"8日\", \"9日\", \"10日\"],\n      \"CHART_SERIES_DATA\": [32.5, 35.2, 38.6, 34.8, 36.9, 33.7, 31.2, 37.4, 39.1, 35.8],\n      \"CHART_Y_AXIS_NAME\": \"kWh\",\n      \"CHART_SERIES_NAME\": \"能耗量\"\n    }\n  }\n}\n```\n\n### 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| PAGE_TITLE | 字符串 | 页面标题，显示在浏览器标签页 |\n| CHART_TITLE | 字符串 | 柱状图卡片标题 |\n| STAT_TITLE | 字符串 | 统计数据卡片标题 |\n| STAT_LABEL_1_1 | 字符串 | 左侧统计块第1行标签 |\n| STAT_VALUE_1_1 | 字符串 | 左侧统计块第1行数值 |\n| STAT_LABEL_1_2 | 字符串 | 左侧统计块第2行标签 |\n| STAT_VALUE_1_2 | 字符串 | 左侧统计块第2行数值 |\n| STAT_LABEL_1_3 | 字符串 | 左侧统计块第3行标签 |\n| STAT_VALUE_1_3 | 字符串 | 左侧统计块第3行数值（含箭头符号） |\n| STAT_VALUE_1_3_CLASS | 字符串 | 左侧统计块第3行样式类，可选值：\"up\"（红色上升）、\"down\"（绿色下降）、\"\"（默认） |\n| STAT_LABEL_2_1 | 字符串 | 右侧统计块第1行标签 |\n| STAT_VALUE_2_1 | 字符串 | 右侧统计块第1行数值 |\n| STAT_LABEL_2_2 | 字符串 | 右侧统计块第2行标签 |\n| STAT_VALUE_2_2 | 字符串 | 右侧统计块第2行数值 |\n| STAT_LABEL_2_3 | 字符串 | 右侧统计块第3行标签 |\n| STAT_VALUE_2_3 | 字符串 | 右侧统计块第3行数值（含箭头符号） |\n| STAT_VALUE_2_3_CLASS | 字符串 | 右侧统计块第3行样式类，可选值：\"up\"（红色上升）、\"down\"（绿色下降）、\"\"（默认） |\n| TABLE_TITLE | 字符串 | 明细表格卡片标题 |\n| TABLE_HEADER_1 | 字符串 | 表格第1列表头 |\n| TABLE_HEADER_2 | 字符串 | 表格第2列表头 |\n| TABLE_HEADER_3 | 字符串 | 表格第3列表头 |\n| TABLE_HEADER_4 | 字符串 | 表格第4列表头 |\n| TABLE_ROWS | 字符串（HTML） | 表格数据行的完整 HTML，每行格式：`<tr><td>值1</td><td>值2</td><td><span class=\"tag-up/tag-down\">值3</span></td><td><span class=\"tag-up/tag-down\">值4</span></td></tr>` |\n| SUGGESTION_TITLE | 字符串 | 建议卡片标题 |\n| ANALYSIS_SUMMARY | 字符串 | 数据总结文本，2-4句话概述数据情况 |\n| OPTIMIZATION_SUGGESTIONS | 字符串（HTML） | 优化建议列表的完整 HTML，每条建议格式：`<li>· 建议内容</li>` |\n| CHART_X_AXIS_DATA | 数组 | 柱状图 X 轴数据，字符串数组，如 `[\"1日\", \"2日\", \"3日\"]` |\n| CHART_SERIES_DATA | 数组 | 柱状图 Y 轴数据，数值数组，与 X 轴数据一一对应 |\n| CHART_Y_AXIS_NAME | 字符串 | Y 轴单位名称，如 \"kWh\"、\"t\"、\"%\" |\n| CHART_SERIES_NAME | 字符串 | 图表系列名称，显示在 tooltip 中 |\n\n### 注意事项\n\n1. **TABLE_ROWS** 和 **OPTIMIZATION_SUGGESTIONS** 字段需要填入完整的 HTML 代码\n2. **STAT_VALUE_X_X_CLASS** 字段用于控制数值颜色：\n   - `\"up\"` - 红色加粗（表示上升/增长）\n   - `\"down\"` - 绿色加粗（表示下降/减少）\n   - `\"\"` - 默认颜色\n3. **CHART_X_AXIS_DATA** 和 **CHART_SERIES_DATA** 数组长度必须一致\n4. 表格标签样式：\n   - `tag-up` - 红色背景（表示上升）\n   - `tag-down` - 绿色背景（表示下降）\n\n---\n", "rows": [{"month": "2026-03", "battery_name": "浮充", "total_avg_soc": 114.48, "total_avg_soh": 192.1}, {"month": "2026-03", "battery_name": "蓄电池测试-3", "total_avg_soc": 441.0, "total_avg_soh": 577.32}, {"month": "2026-03", "battery_name": "蓄电池测试-2", "total_avg_soc": 119.61, "total_avg_soh": 192.43}, {"month": "2026-03", "battery_name": "蓄电池测试-1", "total_avg_soc": 424.21, "total_avg_soh": 577.3}, {"month": "2026-04", "battery_name": "浮充", "total_avg_soc": 111.15, "total_avg_soh": 184.58}, {"month": "2026-04", "battery_name": "蓄电池测试-3", "total_avg_soc": 337.46, "total_avg_soh": 553.83}, {"month": "2026-04", "battery_name": "蓄电池测试-2", "total_avg_soc": 111.13, "total_avg_soh": 186.84}, {"month": "2026-04", "battery_name": "蓄电池测试-1", "total_avg_soc": 727.58, "total_avg_soh": 1205.66}], "sql": "SELECT `battery_name`, DATE_FORMAT(`stat_date`, '%Y-%m') AS `month`, SUM(`avg_soc`) AS `total_avg_soc`, SUM(`avg_soh`) AS `total_avg_soh` FROM `单体电池历史数据统计` WHERE `stat_date` >= DATE_SUB(CURDATE(), INTERVAL 6 MONTH) GROUP BY `battery_name`, DATE_FORMAT(`stat_date`, '%Y-%m') ORDER BY `month` LIMIT 60"}