71 lines
2.4 KiB
XML
71 lines
2.4 KiB
XML
<?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>
|