first commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
<?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>
|
||||
Reference in New Issue
Block a user