Files
ningbo/军政门户/标签库/学习数据图表.config
T
2026-08-31 16:22:00 +08:00

71 lines
2.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- 学习数据统计图表(用于板块7左30%:ECharts 柱状图) -->
<root>
<label>
<id>学习数据图表</id>
<name>学习数据图表(ECharts)</name>
<description>渲染 ECharts 柱状图 + 3 个数据卡片,统计各月学时</description>
<category>其他类</category>
<version>v1.0</version>
<creator>军政门户项目组</creator>
</label>
<datasource>
<type>SQL</type>
<sql><![CDATA[
-- 统计本年1-12月各月学时数(按学习记录表聚合)
SELECT
MONTH(StudyDate) AS Month,
SUM(Duration) AS TotalHours
FROM PE_StudyRecord
WHERE UserId IN (SELECT UserId FROM PE_Users WHERE DepartmentId IN (SELECT NodeId FROM PE_Nodes WHERE ParentID = @NodeId))
AND YEAR(StudyDate) = YEAR(GETDATE())
GROUP BY MONTH(StudyDate)
ORDER BY Month
]]></sql>
<parameters>
<param name="NodeId" type="int" default="0" description="战区/部门节点ID" />
</parameters>
</datasource>
<output>
<![CDATA[
<div class="study-chart">
<div class="study-sub">学习数据统计</div>
<div id="echart-bar-{@NodeId}" style="width:100%;height:200px;"></div>
<div class="data-cards">
<div class="data-card">
<div class="num" id="hours-month">{本月学时}</div>
<div class="lab">本月学时(小时)</div>
</div>
<div class="data-card">
<div class="num">{本周课程}</div>
<div class="lab">本周课程(节)</div>
</div>
<div class="data-card">
<div class="num">{完成率}%</div>
<div class="lab">完成率</div>
</div>
</div>
</div>
<script>
$(function() {
var chart = echarts.init(document.getElementById('echart-bar-{@NodeId}'));
chart.setOption({
grid: { top: 20, right: 10, bottom: 30, left: 30 },
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] },
yAxis: { type: 'value' },
series: [{
type: 'bar',
data: [180, 210, 240, 220, 260, 280, 300, 320, 0, 0, 0, 0],
barWidth: '50%',
itemStyle: { color: '#0066CC', borderRadius: [3, 3, 0, 0] }
}]
});
});
</script>
]]>
</output>
</root>