first commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 图片墙(用于板块14东海文化:不规则网格) -->
|
||||
<root>
|
||||
<label>
|
||||
<id>图片墙</id>
|
||||
<name>图片墙(不规则网格)</name>
|
||||
<description>渲染大图+小图混合的瀑布流风格图片墙,支持鼠标 hover 显示标题</description>
|
||||
<category>列表类</category>
|
||||
<version>v1.0</version>
|
||||
<creator>军政门户项目组</creator>
|
||||
</label>
|
||||
|
||||
<datasource>
|
||||
<type>SQL</type>
|
||||
<sql><![CDATA[
|
||||
SELECT TOP (@ShowNum)
|
||||
G.GeneralID, G.Title, G.Thumbnails, G.UpdateTime, G.Hits,
|
||||
-- 用 Hits 取整除3 决定尺寸类别(演示用,业务上可后台手动指定)
|
||||
(G.Hits % 4) AS SizeClass
|
||||
FROM PE_CommonModel CM
|
||||
INNER JOIN PE_U_Photo G ON CM.GeneralID = G.GeneralID
|
||||
WHERE CM.NodeID IN (SELECT NodeID FROM PE_Nodes WHERE ParentID = @NodeId OR NodeID = @NodeId)
|
||||
AND CM.Status = 99 AND CM.Deleted = 0
|
||||
ORDER BY G.UpdateTime DESC
|
||||
]]></sql>
|
||||
<parameters>
|
||||
<param name="NodeId" type="int" default="0" description="图片栏目ID" />
|
||||
<param name="ShowNum" type="int" default="7" description="显示张数" />
|
||||
</parameters>
|
||||
</datasource>
|
||||
|
||||
<output>
|
||||
<![CDATA[
|
||||
<div class="imgwall-inner">
|
||||
<xsl:for-each select="/NewDataSet/Table">
|
||||
<a class="iw-{SizeClass}" href="{PE.Node.Link/GeneralID/{GeneralID}}">
|
||||
<span class="iw-img"><img src="{Thumbnails}" alt="{Title}"></span>
|
||||
<span class="iw-cap"><xsl:value-of select="Title" /></span>
|
||||
</a>
|
||||
</xsl:for-each>
|
||||
</div>
|
||||
]]>
|
||||
</output>
|
||||
</root>
|
||||
@@ -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>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 学习日历(用于板块7右30%:日历组件 + 上下月切换) -->
|
||||
<root>
|
||||
<label>
|
||||
<id>学习日历</id>
|
||||
<name>学习日历(带学习记录标记)</name>
|
||||
<description>渲染当月日历组件,已学习日期高亮,今天红色显示</description>
|
||||
<category>其他类</category>
|
||||
<version>v1.0</version>
|
||||
<creator>军政门户项目组</creator>
|
||||
</label>
|
||||
|
||||
<datasource>
|
||||
<type>SQL</type>
|
||||
<sql><![CDATA[
|
||||
-- 获取当月有学习记录的日期
|
||||
SELECT DISTINCT DAY(StudyDate) AS Day
|
||||
FROM PE_StudyRecord
|
||||
WHERE UserId = @UserId AND YEAR(StudyDate) = @Year AND MONTH(StudyDate) = @Month
|
||||
]]></sql>
|
||||
<parameters>
|
||||
<param name="UserId" type="int" default="0" description="当前用户ID,未登录则为0取全员统计" />
|
||||
<param name="Year" type="int" default="0" description="年份,0=当前年" />
|
||||
<param name="Month" type="int" default="0" description="月份,0=当前月" />
|
||||
</parameters>
|
||||
</datasource>
|
||||
|
||||
<output>
|
||||
<![CDATA[
|
||||
<div class="calendar">
|
||||
<div class="cal-hd">
|
||||
<a class="cal-prev" href="?m={prev_month}">‹</a>
|
||||
<span class="cal-title">{Year}年{Month}月</span>
|
||||
<a class="cal-next" href="?m={next_month}">›</a>
|
||||
</div>
|
||||
<table class="cal-tb">
|
||||
<thead>
|
||||
<tr><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th class="wk">六</th><th class="wk">日</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<!-- 由 JS 根据 Year/Month 动态渲染单元格 -->
|
||||
<tr><td colspan="7" class="cal-loading">加载中...</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$(function() {
|
||||
// 日历渲染逻辑(调用 pe:RenderCalendar() 自定义函数)
|
||||
pe.RenderCalendar({Year: {Year}, Month: {Month}, StudiedDays: '{studied_days_csv}'});
|
||||
});
|
||||
</script>
|
||||
]]>
|
||||
</output>
|
||||
</root>
|
||||
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 时间轴(用于板块12数字军史:海军大事记) -->
|
||||
<root>
|
||||
<label>
|
||||
<id>时间轴</id>
|
||||
<name>时间轴(大事记/历史节点)</name>
|
||||
<description>按时间倒序渲染大事记节点,红点+日期+事件</description>
|
||||
<category>其他类</category>
|
||||
<version>v1.0</version>
|
||||
<creator>军政门户项目组</creator>
|
||||
</label>
|
||||
|
||||
<datasource>
|
||||
<type>SQL</type>
|
||||
<sql><![CDATA[
|
||||
SELECT TOP (@ShowNum)
|
||||
Id, EventDate, EventYear, Title, Description
|
||||
FROM PE_HistoryEvent
|
||||
WHERE NodeId = @NodeId AND Status = 99
|
||||
ORDER BY EventDate DESC
|
||||
]]></sql>
|
||||
<parameters>
|
||||
<param name="NodeId" type="int" default="0" description="时间轴所属分类" />
|
||||
<param name="ShowNum" type="int" default="5" description="显示条数" />
|
||||
</parameters>
|
||||
</datasource>
|
||||
|
||||
<output>
|
||||
<![CDATA[
|
||||
<div class="timeline">
|
||||
<xsl:for-each select="/NewDataSet/Table">
|
||||
<div class="tl-item">
|
||||
<span class="dot"></span>
|
||||
<span class="year">
|
||||
<xsl:value-of select="CONVERT(varchar(10), EventDate, 102)" />
|
||||
</span>
|
||||
<span class="evt"><xsl:value-of select="Title" /></span>
|
||||
</div>
|
||||
</xsl:for-each>
|
||||
</div>
|
||||
]]>
|
||||
</output>
|
||||
</root>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- 视频信息列表(用于板块7精品课程 + 板块8东海视线) -->
|
||||
<root>
|
||||
<label>
|
||||
<id>视频信息列表</id>
|
||||
<name>视频信息列表</name>
|
||||
<description>调取视频栏目信息,支持课程卡片、大封面、四宫格等样式</description>
|
||||
<category>列表类</category>
|
||||
<version>v2.0</version>
|
||||
<creator>军政门户项目组</creator>
|
||||
<createtime>2026-08-31</createtime>
|
||||
</label>
|
||||
|
||||
<datasource>
|
||||
<type>SQL</type>
|
||||
<sql><![CDATA[
|
||||
SELECT TOP (@ShowNum)
|
||||
G.GeneralID, G.NodeID, G.Title, G.SubTitle, G.UpdateTime, G.Hits, G.EliteLevel,
|
||||
G.Thumbnails, G.VideoUrl, G.VideoLength, G.Speaker, G.Author
|
||||
FROM PE_CommonModel CM
|
||||
INNER JOIN PE_U_Video G ON CM.GeneralID = G.GeneralID
|
||||
WHERE CM.NodeID IN (SELECT NodeID FROM PE_Nodes WHERE ParentID = @NodeId OR NodeID = @NodeId)
|
||||
AND CM.Status = 99 AND CM.Deleted = 0
|
||||
ORDER BY G.UpdateTime DESC
|
||||
]]></sql>
|
||||
<parameters>
|
||||
<param name="NodeId" type="int" default="0" description="视频栏目ID" />
|
||||
<param name="ShowNum" type="int" default="6" description="显示条数" />
|
||||
<param name="TitleLength" type="int" default="30" description="标题截取长度" />
|
||||
<param name="Style" type="string" default="grid" description="渲染样式:card|big|grid|list" />
|
||||
</parameters>
|
||||
</datasource>
|
||||
|
||||
<output>
|
||||
<![CDATA[
|
||||
<ul class="video-list video-style-{@Style}">
|
||||
<xsl:for-each select="/NewDataSet/Table">
|
||||
<li>
|
||||
<a href="{PE.Node.Link/GeneralID/{GeneralID}}" target="_blank">
|
||||
<span class="v-img"><img src="{Thumbnails}" alt="{Title}"></span>
|
||||
<span class="v-play">▶</span>
|
||||
<span class="v-cap"><xsl:value-of select="pe:SubStr(Title, @TitleLength, '...')" /></span>
|
||||
<xsl:if test="Speaker != ''">
|
||||
<span class="v-meta">主讲:<xsl:value-of select="Speaker" /></span>
|
||||
</xsl:if>
|
||||
<xsl:if test="VideoLength != ''">
|
||||
<span class="v-len"><xsl:value-of select="VideoLength" /></span>
|
||||
</xsl:if>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
]]>
|
||||
</output>
|
||||
</root>
|
||||
Reference in New Issue
Block a user