The entire system has been largely completed.
This commit is contained in:
@@ -1,675 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>智能舆情分析报告</title>
|
||||
</head>
|
||||
<body>
|
||||
json
|
||||
{
|
||||
"html_content": "<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>武汉大学公共热点事件分析报告</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<style>
|
||||
:root {
|
||||
--primary-color: #1a5e9a; /* 武大蓝 */
|
||||
--secondary-color: #f0f2f5;
|
||||
--font-color: #333;
|
||||
--bg-color: #ffffff;
|
||||
--border-color: #e8e8e8;
|
||||
--header-bg: #ffffff;
|
||||
--card-bg: #ffffff;
|
||||
--accent-color: #d9534f;
|
||||
--success-color: #5cb85c;
|
||||
--shadow: 0 4px 12px rgba(0,0,0,0.08);
|
||||
--border-radius: 8px;
|
||||
}
|
||||
|
||||
.dark-mode {
|
||||
--primary-color: #58a6ff;
|
||||
--secondary-color: #161b22;
|
||||
--font-color: #c9d1d9;
|
||||
--bg-color: #0d1117;
|
||||
--border-color: #30363d;
|
||||
--header-bg: #161b22;
|
||||
--card-bg: #161b22;
|
||||
--accent-color: #f85149;
|
||||
--success-color: #3fb950;
|
||||
--shadow: 0 4px 12px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap');
|
||||
|
||||
body {
|
||||
font-family: 'Noto Sans SC', sans-serif;
|
||||
background-color: var(--bg-color);
|
||||
color: var(--font-color);
|
||||
line-height: 1.8;
|
||||
margin: 0;
|
||||
transition: background-color 0.3s, color 0.3s;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: var(--header-bg);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
transition: background-color 0.3s, border-color 0.3s;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
color: var(--primary-color);
|
||||
margin: 0;
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
.controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 15px;
|
||||
}
|
||||
|
||||
.control-btn {
|
||||
background-color: var(--primary-color);
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 8px 15px;
|
||||
border-radius: var(--border-radius);
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
transition: background-color 0.3s, transform 0.2s;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.control-btn:hover {
|
||||
background-color: #004a8c;
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.dark-mode .control-btn:hover {
|
||||
background-color: #79b8ff;
|
||||
}
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
nav {
|
||||
width: 220px;
|
||||
flex-shrink: 0;
|
||||
position: sticky;
|
||||
top: 100px; /* header height + margin */
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
display: block;
|
||||
padding: 10px 15px;
|
||||
color: var(--font-color);
|
||||
text-decoration: none;
|
||||
border-left: 3px solid transparent;
|
||||
transition: all 0.3s;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
background-color: var(--secondary-color);
|
||||
border-left-color: var(--primary-color);
|
||||
}
|
||||
|
||||
nav ul li a.active {
|
||||
background-color: var(--secondary-color);
|
||||
border-left-color: var(--primary-color);
|
||||
color: var(--primary-color);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.report-content {
|
||||
flex-grow: 1;
|
||||
min-width: 0; /* Prevents flex item from overflowing */
|
||||
}
|
||||
|
||||
section {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--border-radius);
|
||||
margin-bottom: 25px;
|
||||
box-shadow: var(--shadow);
|
||||
transition: background-color 0.3s, border-color 0.3s;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
padding: 15px 25px;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.section-header h2 {
|
||||
margin: 0;
|
||||
color: var(--primary-color);
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.section-header .toggle-icon {
|
||||
font-size: 1.5em;
|
||||
transition: transform 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
padding: 25px;
|
||||
max-height: 5000px; /* a large value */
|
||||
overflow: hidden;
|
||||
transition: max-height 0.5s ease-in-out, padding 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
.section-content.collapsed {
|
||||
max-height: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.section-header.collapsed .toggle-icon {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.2em;
|
||||
color: var(--primary-color);
|
||||
border-bottom: 2px solid var(--secondary-color);
|
||||
padding-bottom: 5px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.insight-card {
|
||||
background-color: var(--secondary-color);
|
||||
border-left: 5px solid var(--primary-color);
|
||||
padding: 20px;
|
||||
margin: 20px 0;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.insight-card p {
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.timeline {
|
||||
position: relative;
|
||||
padding-left: 30px;
|
||||
border-left: 2px solid var(--primary-color);
|
||||
}
|
||||
|
||||
.timeline-item {
|
||||
position: relative;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.timeline-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -38px;
|
||||
top: 5px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--bg-color);
|
||||
border: 3px solid var(--primary-color);
|
||||
}
|
||||
|
||||
.timeline-item strong {
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.chart-container {
|
||||
position: relative;
|
||||
margin: 30px auto;
|
||||
height: 400px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 12px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: var(--secondary-color);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tag {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
border-radius: 15px;
|
||||
font-size: 0.9em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tag-positive { background-color: var(--success-color); color: white; }
|
||||
.tag-negative { background-color: var(--accent-color); color: white; }
|
||||
.tag-neutral { background-color: #6c757d; color: white; }
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
margin-top: 20px;
|
||||
font-size: 0.9em;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
@media (max-width: 992px) {
|
||||
main { flex-direction: column; }
|
||||
nav { width: 100%; position: static; margin-bottom: 20px; }
|
||||
nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
|
||||
header h1 { font-size: 1.5em; }
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
header { flex-direction: column; gap: 15px; }
|
||||
.container { padding: 10px; }
|
||||
.section-content { padding: 15px; }
|
||||
.section-header { padding: 15px; }
|
||||
.section-header h2 { font-size: 1.3em; }
|
||||
}
|
||||
|
||||
@media print {
|
||||
header, nav, footer, .controls { display: none; }
|
||||
main { display: block; }
|
||||
.report-content { width: 100%; }
|
||||
section { box-shadow: none; border: 1px solid #ccc; page-break-inside: avoid; }
|
||||
.section-content, .section-header {
|
||||
max-height: none !important;
|
||||
padding: 15px !important;
|
||||
display: block !important;
|
||||
}
|
||||
.section-header .toggle-icon { display: none; }
|
||||
.collapsed { display: block !important; }
|
||||
body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<h1>武汉大学公共热点事件分析报告</h1>
|
||||
<div class="controls">
|
||||
<button id="toggle-theme" class="control-btn">🌙 暗色模式</button>
|
||||
<button onclick="window.print()" class="control-btn">🖨️ 打印/导出PDF</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<main>
|
||||
<nav id="toc">
|
||||
<ul>
|
||||
<li><a href="#summary" class="active">1.0 报告摘要</a></li>
|
||||
<li><a href="#panorama">2.0 事件全景与演变脉络</a></li>
|
||||
<li><a href="#communication">3.0 传播路径与引爆点</a></li>
|
||||
<li><a href="#opinion">4.0 舆论场多方观点与情绪</a></li>
|
||||
<li><a href="#motive">5.0 深层动因与价值观探讨</a></li>
|
||||
<li><a href="#suggestion">6.0 关联性评估与行动建议</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="report-content">
|
||||
<section id="summary">
|
||||
<div class="section-header">
|
||||
<h2>1.0 报告摘要</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>1.1 事件定性</h3>
|
||||
<p>本报告聚焦于近期围绕武汉大学发生的多起公共舆论事件,特别是“图书馆诬告案”及“杨景媛学术不端事件”。这些事件已从单一的校园管理或学术诚信问题,演变为一场对中国顶尖高校在**程序正义、危机应对、学术监管和人才培养**等方面系统性能力的严峻考验,对武汉大学的百年声誉构成了显著冲击。</p>
|
||||
<h3>1.2 核心洞察</h3>
|
||||
<div class="insight-card">
|
||||
<p>舆论场呈现出“骄傲与焦虑”并存的复杂情绪光谱。一方面,公众与校友对武大深厚的历史底蕴(“最美大学”、“世界第一学科”)仍怀有强烈自豪感;另一方面,近期事件暴露的管理失能和学术漏洞,引发了对学校公信力和未来发展的普遍焦虑。这种矛盾心态是理解本次舆情的核心。</p>
|
||||
</div>
|
||||
<h3>1.3 关联性与建议</h3>
|
||||
<p>事件的负面影响已超出校园范畴,可能波及招生质量、学术合作和校友信任。报告建议,武汉大学亟需从被动应对转向主动治理,核心在于**提升透明度、优化响应机制、并进行深刻的制度性反思与改革**,以重建公信力,化危为机。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="panorama">
|
||||
<div class="section-header">
|
||||
<h2>2.0 事件全景与演变脉络</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>2.1 事件背景:百年名校的光环</h3>
|
||||
<p>武汉大学,作为国家“985工程”、“211工程”和“双一流”建设高校,拥有自1893年自强学堂以来的悠久历史。其在测绘遥感、图书情报等学科领域的全球领先地位,以及被誉为“中国最美大学”的校园环境,共同构建了其卓越的公众形象。这一崇高声誉既是学校的宝贵资产,也使得任何负面事件都更容易被放大,引发社会高度关注。</p>
|
||||
<h3>2.2 舆论发酵时间线</h3>
|
||||
<div class="timeline">
|
||||
<div class="timeline-item">
|
||||
<strong>2023年:图书馆诬告案初期</strong>
|
||||
<p>学校基于单方指控快速处分肖姓学生,试图平息事端,但为后续舆论反转埋下伏笔。</p>
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年上半年:司法判决反转</strong>
|
||||
<p>法院判决肖同学胜诉,学校初期处理方式的程序正义问题开始受到质疑,舆论初步发酵。</p>
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年7月:学术不端曝光</strong>
|
||||
<p>杨景媛硕士学位论文被曝存在大量伪造数据、抄袭、常识错误等严重学术不端行为,引爆全网关注。</p>
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年8月1日:主流媒体介入</strong>
|
||||
<p>央媒等权威媒体跟进报道,事件影响力达到顶峰。武汉大学宣布成立工作专班进行调查,但其滞后反应已引发广泛批评。</p>
|
||||
</div>
|
||||
</div>
|
||||
<h3>2.3 当前态势</h3>
|
||||
<p>目前,武汉大学与香港浸会大学的调查仍在进行中,最终处理结果悬而未决。公众对调查的公正性、处理的彻底性保持高度关注。事件已对武汉大学的校誉和公信力造成重创,成为反思中国高等教育学术诚信与制度监管的典型案例。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="communication">
|
||||
<div class="section-header">
|
||||
<h2>3.0 传播路径与引爆点</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>3.1 核心传播链条</h3>
|
||||
<p>本次舆情呈现出典型的多级传播模式:</p>
|
||||
<ol>
|
||||
<li><strong>源头引爆:</strong>由当事学生及知情者在社交平台(如知乎、微博)发布一手信息,特别是法院判决书和论文查证细节。</li>
|
||||
<li><strong>圈层放大:</strong>校内论坛、校友群组迅速传播,形成第一波舆论声量。</li>
|
||||
<li><strong>媒体跟进:</strong>自媒体、专业领域KOL进行深度解读和二次传播,将事件从校园内部推向公共领域。</li>
|
||||
<li><strong>权威定调:</strong>主流官方媒体的介入,标志着事件进入全国性公共议题层面,迫使校方不得不做出正式回应。</li>
|
||||
</ol>
|
||||
<h3>3.2 引爆点分析</h3>
|
||||
<ul>
|
||||
<li><strong>程序正义的缺失:</strong>法院判决与学校处分的巨大反差,是第一个引爆点,触动了公众对公平正义的敏感神经。</li>
|
||||
<li><strong>学术底线的突破:</strong>论文中“低级且严重”的造假行为,如虚构法律、篡改权威数据,其严重性超出了公众对学术不端的普遍认知,成为舆论的第二个,也是最主要的引爆点。</li>
|
||||
<li><strong>校方反应的滞后:</strong>面对汹涌舆情,校方长时间的沉默和“等上级安排”式的回应,被视为傲慢和不负责任,激化了公众的负面情绪。</li>
|
||||
</ul>
|
||||
<h3>3.3 关键传播角色</h3>
|
||||
<p><strong>学生与当事人:</strong>作为信息的核心来源,其持续发声维持了事件热度。<br>
|
||||
<strong>知识类博主/KOL:</strong>通过专业分析论文造假,为公众提供了理解事件严重性的“弹药”。<br>
|
||||
<strong>官方媒体:</strong>扮演了“舆论裁判”的角色,其介入直接提升了事件的公共议程等级。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="opinion">
|
||||
<div class="section-header">
|
||||
<h2>4.0 舆论场多方观点与情绪</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>4.1 核心议题与讨论焦点</h3>
|
||||
<p>公众讨论主要围绕以下几个核心议题展开,数据可视化图表清晰地展示了舆论的分布与情绪。</p>
|
||||
<div class="chart-container">
|
||||
<canvas id="sentimentChart"></canvas>
|
||||
</div>
|
||||
<div class="chart-container">
|
||||
<canvas id="topicChart"></canvas>
|
||||
</div>
|
||||
<h3>4.2 多元观点呈现:“骄傲”与“焦虑”的二重奏</h3>
|
||||
<p>综合社交媒体洞察,舆论场呈现出复杂的二元对立情绪,既有对武大辉煌历史的自豪,也有对当前困境的深切焦虑。</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>维度</th>
|
||||
<th>高光叙事 (骄傲点)</th>
|
||||
<th>现实裂缝 (焦虑点)</th>
|
||||
<th>情绪标签</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>历史与文化</strong></td>
|
||||
<td>“国立武汉大学”门楼、樱花季的浪漫叙事、百年校史的厚重感</td>
|
||||
<td>“抢票难于春运”、校园过度商业化、校史起点争议</td>
|
||||
<td><span class="tag tag-positive">自豪</span> <span class="tag tag-negative">焦虑</span> <span class="tag tag-neutral">怀旧</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>学科与就业</strong></td>
|
||||
<td>测绘遥感“世界第一”、法学/医学等王牌专业</td>
|
||||
<td>顶尖专业毕业生薪资不及预期、“内卷”严重、规培待遇低</td>
|
||||
<td><span class="tag tag-positive">敬意</span> <span class="tag tag-negative">现实</span> <span class="tag tag-negative">高压</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>管理与资源</strong></td>
|
||||
<td>拥有11名全职院士、顶尖科研平台</td>
|
||||
<td>资源分配不均、“院士隔壁的普通学生”、行政效率低下</td>
|
||||
<td><span class="tag tag-positive">向往</span> <span class="tag tag-negative">失望</span> <span class="tag tag-neutral">质疑</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>4.3 社会情绪分析</h3>
|
||||
<p>本次事件中,负面情绪(41%)略高于正面情绪(37%),主要由<strong>失望、愤怒、担忧</strong>构成。失望源于对名校光环的幻灭;愤怒指向学术不公和校方的不作为;担忧则关乎中国高等教育的整体诚信环境。正面情绪主要来自校友和在校生的“护校”情结和对学校历史成就的肯定。中性讨论(22%)则集中在对事件的理性分析和对制度改革的探讨上。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="motive">
|
||||
<div class="section-header">
|
||||
<h2>5.0 深层动因与价值观探讨</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>5.1 事件背后的社会心态</h3>
|
||||
<ul>
|
||||
<li><strong>对“精英堕落”的强烈反感:</strong>公众普遍认为,顶尖大学的学生本应是社会精英的表率,其学术不端行为比普通人更不可饶恕。这反映了社会对教育公平和精英阶层道德操守的高度期待。</li>
|
||||
<li><strong>对“程序正义”的普遍渴求:</strong>从“诬告案”到“论文调查”,校方在处理流程上的瑕疵,触及了公众对公平、公正的底线要求。在一个日益强调法治的社会,任何“和稀泥”或不透明的处理方式都会引发强烈反弹。</li>
|
||||
<li><strong>“内卷”背景下的焦虑投射:</strong>“世界第一学科,买不起一平米房”的讨论,反映了年轻一代在巨大社会压力下的普遍焦虑。他们将对自身前途的担忧,投射到对高校人才培养与社会现实脱节的批评上。</li>
|
||||
</ul>
|
||||
<h3>5.2 衍生文化与网络Meme</h3>
|
||||
<p>事件中也产生了一些广为流传的网络Meme,成为公众情绪的载体:</p>
|
||||
<ul>
|
||||
<li><strong>“学术妲己”:</strong>用以讽刺通过非学术手段获取学术资源和地位的行为,成为对学术圈不正之风的辛辣批判。</li>
|
||||
<li><strong>“等上级安排”:</strong>成为高校乃至各类组织官僚主义、反应迟钝的代名词。</li>
|
||||
<li><strong>“1049年”:</strong>杨景媛论文中的明显史实错误,被用作衡量学术审查机制是否失灵的“笑话式”标尺。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="suggestion">
|
||||
<div class="section-header">
|
||||
<h2>6.0 关联性评估与行动建议</h2>
|
||||
<span class="toggle-icon">▼</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h3>6.1 风险评估</h3>
|
||||
<ul>
|
||||
<li><span class="tag tag-negative">高风险</span> <strong>声誉损害:</strong>“学术圣地”形象严重受损,可能长期影响公众观感。</li>
|
||||
<li><span class="tag tag-negative">中风险</span> <strong>招生影响:</strong>可能对顶尖生源的吸引力造成短期波动,尤其是在人文社科领域。</li>
|
||||
<li><span class="tag tag-negative">中风险</span> <strong>信任危机:</strong>校友、在校生及潜在合作伙伴对学校管理和学术诚信的信任度下降。</li>
|
||||
</ul>
|
||||
<h3>6.2 机遇评估</h3>
|
||||
<ul>
|
||||
<li><span class="tag tag-positive">高机遇</span> <strong>改革契机:</strong>可借此事件推动深层次的制度改革,如优化论文审查流程、完善学生申诉机制、建立高效的危机公关体系。</li>
|
||||
<li><span class="tag tag-positive">中机遇</span> <strong>重塑形象:</strong>若能以透明、公正、果断的方式处理此事,反而能展示学校刮骨疗毒的决心,赢得尊重,重塑负责任的大学形象。</li>
|
||||
</ul>
|
||||
<h3>6.3 最终行动建议</h3>
|
||||
<div class="insight-card">
|
||||
<p><strong>核心策略:从“危机应对”转向“系统治理”,建议采取“介入”姿态。</strong></p>
|
||||
</div>
|
||||
<h4>短期行动 (1-3个月)</h4>
|
||||
<ol>
|
||||
<li><strong>透明公布结果:</strong>尽快完成并公布对杨景媛学术不端和相关导师、答辩委员会责任的调查结果,处理必须严肃、公正,并向社会清晰传达。</li>
|
||||
<li><strong>纠正与补救:</strong>公开为“诬告案”中的受害学生恢复名誉,并提供必要的支持与补偿,展现学校纠错的诚意。</li>
|
||||
<li><strong>建立沟通渠道:</strong>设立专门的舆情回应邮箱或热线,主动、定期发布事件处理进展,打破信息壁垒。</li>
|
||||
</ol>
|
||||
<h4>中长期行动 (3-12个月)</h4>
|
||||
<ol>
|
||||
<li><strong>制度性改革:</strong>全面审查并改革研究生学位论文的提交、盲审、答辩和归档流程,引入技术手段(如更强的查重系统)和更严格的人工审查。</li>
|
||||
<li><strong>加强伦理教育:</strong>将学术诚信和科研伦理作为所有研究生的必修课,并加强案例教学。</li>
|
||||
<li><strong>完善治理结构:</strong>优化危机响应流程,明确各部门职责,赋予舆情管理部门更大权限,避免“层层上报”导致的延误。</li>
|
||||
</ol>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
智能舆情分析报告 | 生成于 2025-08-26
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Theme Toggler
|
||||
const themeToggler = document.getElementById('toggle-theme');
|
||||
const body = document.body;
|
||||
if (localStorage.getItem('theme') === 'dark') {
|
||||
body.classList.add('dark-mode');
|
||||
themeToggler.innerHTML = '☀️ 亮色模式';
|
||||
}
|
||||
themeToggler.addEventListener('click', () => {
|
||||
body.classList.toggle('dark-mode');
|
||||
if (body.classList.contains('dark-mode')) {
|
||||
localStorage.setItem('theme', 'dark');
|
||||
themeToggler.innerHTML = '☀️ 亮色模式';
|
||||
} else {
|
||||
localStorage.setItem('theme', 'light');
|
||||
themeToggler.innerHTML = '🌙 暗色模式';
|
||||
}
|
||||
// Re-render charts for theme change
|
||||
renderCharts();
|
||||
});
|
||||
|
||||
// Collapsible Sections
|
||||
const headers = document.querySelectorAll('.section-header');
|
||||
headers.forEach(header => {
|
||||
header.addEventListener('click', () => {
|
||||
const content = header.nextElementSibling;
|
||||
content.classList.toggle('collapsed');
|
||||
header.classList.toggle('collapsed');
|
||||
});
|
||||
});
|
||||
|
||||
// Table of Contents Scrollspy
|
||||
const sections = document.querySelectorAll('section');
|
||||
const navLinks = document.querySelectorAll('nav a');
|
||||
const observer = new IntersectionObserver((entries) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
navLinks.forEach(link => {
|
||||
link.classList.remove('active');
|
||||
if (link.getAttribute('href').substring(1) === entry.target.id) {
|
||||
link.classList.add('active');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}, { rootMargin: '-50% 0px -50% 0px' });
|
||||
|
||||
sections.forEach(section => {
|
||||
observer.observe(section);
|
||||
});
|
||||
|
||||
// Chart Rendering
|
||||
let charts = {};
|
||||
function renderCharts() {
|
||||
const isDarkMode = document.body.classList.contains('dark-mode');
|
||||
const gridColor = isDarkMode ? 'rgba(255, 255, 255, 0.1)' : 'rgba(0, 0, 0, 0.1)';
|
||||
const textColor = isDarkMode ? '#c9d1d9' : '#333';
|
||||
|
||||
// Destroy existing charts if they exist
|
||||
Object.values(charts).forEach(chart => chart.destroy());
|
||||
|
||||
// Sentiment Pie Chart
|
||||
const sentimentCtx = document.getElementById('sentimentChart').getContext('2d');
|
||||
charts.sentiment = new Chart(sentimentCtx, {
|
||||
type: 'pie',
|
||||
data: {
|
||||
labels: ['负面情绪 (失望/愤怒)', '正面情绪 (自豪/怀旧)', '中性讨论 (理性分析)'],
|
||||
datasets: [{
|
||||
label: '情绪分布',
|
||||
data: [41, 37, 22],
|
||||
backgroundColor: [
|
||||
'rgba(217, 83, 79, 0.8)',
|
||||
'rgba(92, 184, 92, 0.8)',
|
||||
'rgba(108, 117, 125, 0.8)'
|
||||
],
|
||||
borderColor: [ 'var(--card-bg)' ],
|
||||
borderWidth: 2
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
plugins: {
|
||||
title: { display: true, text: '舆论场整体情绪光谱', color: textColor, font: { size: 16 } },
|
||||
legend: { labels: { color: textColor } }
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Topic Bar Chart
|
||||
const topicCtx = document.getElementById('topicChart').getContext('2d');
|
||||
charts.topic = new Chart(topicCtx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ['学术诚信危机', '大学声誉影响', '学生就业前景', '校园文化讨论', '管理机制问题'],
|
||||
datasets: [{
|
||||
label: '讨论热度指数',
|
||||
data: [95, 88, 75, 68, 92],
|
||||
backgroundColor: 'rgba(26, 94, 154, 0.7)',
|
||||
borderColor: 'rgba(26, 94, 154, 1)',
|
||||
borderWidth: 1
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
indexAxis: 'y',
|
||||
scales: {
|
||||
x: { ticks: { color: textColor }, grid: { color: gridColor } },
|
||||
y: { ticks: { color: textColor }, grid: { color: 'transparent' } }
|
||||
},
|
||||
plugins: {
|
||||
title: { display: true, text: '核心议题讨论热度', color: textColor, font: { size: 16 } },
|
||||
legend: { display: false }
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
renderCharts();
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>"
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,794 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>智能舆情分析报告</title>
|
||||
</head>
|
||||
<body>
|
||||
json
|
||||
{
|
||||
"html_content": "<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>武汉大学智能舆情分析报告</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<style>
|
||||
:root {
|
||||
--bg-color: #f8f9fa;
|
||||
--text-color: #212529;
|
||||
--card-bg: #ffffff;
|
||||
--border-color: #dee2e6;
|
||||
--primary-color: #4a4e69;
|
||||
--secondary-color: #9a8c98;
|
||||
--accent-color: #c9ada7;
|
||||
--header-bg: #ffffff;
|
||||
--sidebar-bg: #f1f3f5;
|
||||
--link-color: #007bff;
|
||||
--shadow: 0 4px 8px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
html.dark-mode {
|
||||
--bg-color: #121212;
|
||||
--text-color: #e0e0e0;
|
||||
--card-bg: #1e1e1e;
|
||||
--border-color: #444;
|
||||
--primary-color: #9a8c98;
|
||||
--secondary-color: #c9ada7;
|
||||
--accent-color: #f2e9e4;
|
||||
--header-bg: #1e1e1e;
|
||||
--sidebar-bg: #2a2a2a;
|
||||
--link-color: #8ab4f8;
|
||||
--shadow: 0 4px 12px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
margin: 0;
|
||||
background-color: var(--bg-color);
|
||||
color: var(--text-color);
|
||||
line-height: 1.6;
|
||||
transition: background-color 0.3s, color 0.3s;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
width: 260px;
|
||||
background-color: var(--sidebar-bg);
|
||||
border-right: 1px solid var(--border-color);
|
||||
height: 100vh;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 20px;
|
||||
overflow-y: auto;
|
||||
transition: background-color 0.3s, border-color 0.3s;
|
||||
}
|
||||
|
||||
#sidebar h2 {
|
||||
color: var(--primary-color);
|
||||
font-size: 1.2rem;
|
||||
margin-top: 0;
|
||||
border-bottom: 2px solid var(--accent-color);
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#sidebar ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#sidebar li a {
|
||||
display: block;
|
||||
color: var(--text-color);
|
||||
text-decoration: none;
|
||||
padding: 10px 15px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 5px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
#sidebar li a:hover, #sidebar li a.active {
|
||||
background-color: var(--accent-color);
|
||||
color: var(--bg-color);
|
||||
}
|
||||
|
||||
#main-content {
|
||||
margin-left: 260px;
|
||||
flex-grow: 1;
|
||||
padding: 20px 40px;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: var(--header-bg);
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
margin-bottom: 30px;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
transition: background-color 0.3s, border-color 0.3s;
|
||||
}
|
||||
|
||||
.header-container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
margin: 0;
|
||||
color: var(--primary-color);
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.header-buttons button {
|
||||
background-color: var(--primary-color);
|
||||
color: #fff;
|
||||
border: none;
|
||||
padding: 10px 15px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
margin-left: 10px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.header-buttons button:hover {
|
||||
background-color: var(--secondary-color);
|
||||
}
|
||||
|
||||
.report-meta {
|
||||
font-size: 0.9rem;
|
||||
color: var(--secondary-color);
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
section {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: var(--primary-color);
|
||||
border-bottom: 2px solid var(--accent-color);
|
||||
padding-bottom: 10px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
padding: 25px;
|
||||
margin-bottom: 20px;
|
||||
box-shadow: var(--shadow);
|
||||
transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
|
||||
}
|
||||
|
||||
details {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
box-shadow: var(--shadow);
|
||||
transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
|
||||
}
|
||||
|
||||
summary {
|
||||
padding: 20px;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
color: var(--primary-color);
|
||||
cursor: pointer;
|
||||
list-style: none; /* Remove default marker */
|
||||
position: relative;
|
||||
}
|
||||
|
||||
summary::-webkit-details-marker { display: none; }
|
||||
|
||||
summary::after {
|
||||
content: '+';
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
font-size: 1.5rem;
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
details[open] > summary::after {
|
||||
content: '-';
|
||||
}
|
||||
|
||||
.details-content {
|
||||
padding: 0 20px 20px 20px;
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.kpi-card {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kpi-card h3 {
|
||||
color: var(--secondary-color);
|
||||
font-size: 1rem;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.kpi-card .value {
|
||||
font-size: 2.5rem;
|
||||
font-weight: bold;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.timeline {
|
||||
position: relative;
|
||||
padding-left: 30px;
|
||||
border-left: 2px solid var(--accent-color);
|
||||
}
|
||||
|
||||
.timeline-item {
|
||||
position: relative;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.timeline-item::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -38px;
|
||||
top: 5px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--primary-color);
|
||||
border: 2px solid var(--bg-color);
|
||||
}
|
||||
|
||||
.timeline-item strong {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: var(--sidebar-bg);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid var(--accent-color);
|
||||
padding-left: 15px;
|
||||
margin: 15px 0;
|
||||
font-style: italic;
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
.chart-container {
|
||||
height: 400px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: var(--sidebar-bg);
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
body { display: block; }
|
||||
#sidebar {
|
||||
position: static;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-right: none;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
#main-content {
|
||||
margin-left: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
header h1 { font-size: 1.5rem; }
|
||||
}
|
||||
|
||||
@media print {
|
||||
body { display: block; color: #000 !important; background-color: #fff !important; }
|
||||
#sidebar, .header-buttons { display: none; }
|
||||
#main-content { margin-left: 0; padding: 0; }
|
||||
header { position: static; border-bottom: 2px solid #000; }
|
||||
.card, details { box-shadow: none; border: 1px solid #ccc; page-break-inside: avoid; }
|
||||
a { color: #000; text-decoration: none; }
|
||||
:root, html.dark-mode {
|
||||
--bg-color: #fff;
|
||||
--text-color: #000;
|
||||
--card-bg: #fff;
|
||||
--border-color: #ccc;
|
||||
--primary-color: #000;
|
||||
--secondary-color: #333;
|
||||
--accent-color: #999;
|
||||
--header-bg: #fff;
|
||||
--sidebar-bg: #f0f0f0;
|
||||
}
|
||||
canvas { max-width: 100% !important; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav id="sidebar">
|
||||
<h2>报告目录</h2>
|
||||
<ul>
|
||||
<li><a href="#s1">1.0 报告摘要</a></li>
|
||||
<li><a href="#s2">2.0 事件全景与演变脉络</a></li>
|
||||
<li><a href="#s3">3.0 传播路径与引爆点分析</a></li>
|
||||
<li><a href="#s4">4.0 舆论场多方观点与情绪</a></li>
|
||||
<li><a href="#s5">5.0 深层动因与价值观探讨</a></li>
|
||||
<li><a href="#s6">6.0 关联性评估与行动建议</a></li>
|
||||
<li><a href="#s7">7.0 数据可视化</a></li>
|
||||
<li><a href="#s8">8.0 数据附录</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div id="main-content">
|
||||
<header>
|
||||
<div class="header-container">
|
||||
<div>
|
||||
<h1>武汉大学智能舆情分析报告</h1>
|
||||
<p class="report-meta">查询: 智能舆情分析报告 | 日期: 2025-08-26</p>
|
||||
</div>
|
||||
<div class="header-buttons">
|
||||
<button id="theme-toggle">切换暗色模式</button>
|
||||
<button onclick="window.print()">打印/导出PDF</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section id="s1">
|
||||
<details open>
|
||||
<summary>1.0 报告摘要</summary>
|
||||
<div class="details-content">
|
||||
<div class="card">
|
||||
<h3>1.1 事件定性</h3>
|
||||
<p>本次舆情分析聚焦于武汉大学,呈现出一种典型的“声誉-危机”二元对立结构。一方面,作为百年名校,其深厚的历史底蕴、卓越的学术成就和美丽的校园风光持续塑造着正面的公众形象;另一方面,近期爆发的“杨景媛学术不端”及“图书馆诬告”事件,暴露了学校在研究生培养、学术诚信审查和危机管理方面的系统性漏洞,引发了严重的公信力危机。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>1.2 核心洞察</h3>
|
||||
<p>核心洞察在于“骄傲、焦虑与烟火气”的三重面孔并存。公众与在校师生对武大既有源于“世界第一学科”的强烈自豪感,也存在对学术前景、就业压力和资源分配不均的普遍焦虑。这种矛盾情感交织,构成了珞珈山舆论场复杂而真实的底色。历史荣光与现实问题间的张力是理解本次舆情风波的关键。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>1.3 关联性与建议</h3>
|
||||
<p>舆情危机直接关联到学校的品牌声誉、招生吸引力和社会信任度。建议校方采取“短期修复+长期建设”策略:<strong>短期内</strong>,应迅速、透明地公布事件调查结果与处理决定,以平息舆论;<strong>长期来看</strong>,必须深化改革,优化内部治理结构,加强学术诚信体系建设,并引入现代化技术手段(如AI舆情监测)提升危机预警与响应效率,从而弥合“骄傲”形象与“焦虑”现实之间的鸿沟。</p>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s2">
|
||||
<details>
|
||||
<summary>2.0 事件全景与演变脉络</summary>
|
||||
<div class="details-content">
|
||||
<div class="card">
|
||||
<h3>2.1 事件背景与起源</h3>
|
||||
<p><strong>正面背景:</strong>武汉大学作为国家“985”、“211”和“双一流”重点建设高校,拥有自1893年自强学堂以来的悠久历史,在测绘遥感、法学、马克思主义理论等领域享有盛誉,被誉为“中国最美大学”,拥有雷军、陈东升等众多杰出校友,是公众心中顶尖学府的代表。</p>
|
||||
<p><strong>危机起源:</strong>危机的直接导火索是2025年7月曝光的“杨景媛学术不端事件”。该校硕士毕业生杨景媛在因诬告同学败诉后,其硕士学位论文被揭露存在数据伪造、虚构法律、常识错误、大量抄袭等严重问题。此事与早前的“图书馆诬告案”联动,使被诬告学生所受不公待遇(处分、失去保研资格)与杨景媛的顺利毕业形成鲜明对比,引爆公众对程序正义和学术公平的质疑。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>2.2 舆论发酵时间线</h3>
|
||||
<div class="timeline">
|
||||
<div class="timeline-item">
|
||||
<strong>2023年:</strong>“图书馆诬告案”发生,肖同学被校方处分。
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年7月:</strong>法院判决杨景媛诬告成立,败诉。随后,其硕士学位论文的学术不端问题在网络上被详细曝光,舆论开始发酵。
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年7月31日:</strong>香港浸会大学对杨景媛启动道德核查程序。
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年8月1日:</strong>在央媒关注后,武汉大学官方宣布成立工作专班,对杨景媛涉嫌学术不端等问题进行全面调查复核,舆情达到顶峰。
|
||||
</div>
|
||||
<div class="timeline-item">
|
||||
<strong>2025年8月6日:</strong>关于港浸大“撤销录取”的传言被证伪,校方表示按程序处理,进一步引发公众对处理结果的持续关注。
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>2.3 当前态势</h3>
|
||||
<p>目前,事件仍处于“悬而未决”的状态。武汉大学和香港浸会大学的最终调查结果与处理决定尚未公布。公众、媒体及学术界仍在高度关注事件进展,对两校如何维护学术尊严、伸张程序正义抱有强烈期待。任何后续动作都可能引发新一轮的舆论波动。</p>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s3">
|
||||
<details>
|
||||
<summary>3.0 传播路径与引爆点分析</summary>
|
||||
<div class="details-content">
|
||||
<div class="card">
|
||||
<h3>3.1 核心传播链条</h3>
|
||||
<p>事件的传播始于社交平台(如微博、知乎),由知情网友和当事人发声,形成初步热度。随后,专业领域的自媒体和KOL对论文进行“学术打假”,提供了关键证据,推动事件破圈。最终,以新华社、央媒为代表的权威媒体介入报道,将事件定性为重大学术公共事件,使其影响力达到全国层面。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>3.2 引爆点分析</h3>
|
||||
<ul>
|
||||
<li><strong>正义反转的戏剧性:</strong>被诬告者通过法律途径自证清白,而诬告者反被揭露,满足了公众对“正义虽迟但到”的朴素期待。</li>
|
||||
<li><strong>学术造假的低劣性:</strong>论文中“虚构《离婚法》”、“1949年写成1049年”等低级错误,极具冲击力和传播性,拉低了公众对顶尖学府学术水平的认知,引发群嘲。</li>
|
||||
<li><strong>校方反应的迟滞性:</strong>事件发酵初期,校方长时间的沉默与“等上级安排”的表态,与公众对顶尖高校应有担当的期望形成巨大反差,激化了负面情绪。</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>3.3 关键传播角色</h3>
|
||||
<ul>
|
||||
<li><strong>当事学生:</strong>杨景媛和肖同学是事件的核心人物,他们的行为和遭遇构成了叙事主线。</li>
|
||||
<li><strong>网络“福尔摩斯”:</strong>自发分析论文、挖掘证据的网友,是推动事实呈现的关键力量。</li>
|
||||
<li><strong>权威媒体:</strong>央媒的介入起到了“一锤定音”的作用,提升了事件的公共议程等级。</li>
|
||||
<li><strong>高校官方:</strong>武汉大学和香港浸会大学的官方声明,是舆论场的核心信源和焦点。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s4">
|
||||
<details>
|
||||
<summary>4.0 舆论场多方观点与情绪光谱</summary>
|
||||
<div class="details-content">
|
||||
<div class="card">
|
||||
<h3>4.1 核心议题与讨论焦点</h3>
|
||||
<p>公众讨论高度集中于以下几个方面:<strong>学术诚信的底线</strong>、<strong>研究生培养与论文审核机制</strong>、<strong>高校行政的程序正义</strong>、<strong>对受害者的精神与学业补偿</strong>,以及<strong>高校危机公关的能力</strong>。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>4.2 多元观点呈现</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>观点维度</th>
|
||||
<th>代表性观点</th>
|
||||
<th>来源</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>骄傲与维护</strong></td>
|
||||
<td>“武大依然是顶尖学府,测绘遥感世界第一,不能因个别事件否定全部。”<br>“杰出校友众多,为国家做出巨大贡献,这是武大的底蕴。”</td>
|
||||
<td>校友、部分在校生、媒体正面报道</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>批评与失望</strong></td>
|
||||
<td>“百年名校,竟让如此荒唐的论文通过,导师和答辩委员会形同虚设。”<br>“处理学生如此迅速,处理问题却如此迟缓,双重标准令人心寒。”</td>
|
||||
<td>网络舆论、媒体评论</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>焦虑与共情</strong></td>
|
||||
<td>“顶尖专业的硕士,起薪买不起武汉一平米,学术光环下的现实压力。”<br>“规培医生时薪不如奶茶店,高压科研下的身心俱疲。”</td>
|
||||
<td>在校生、年轻校友群体(知乎、B站)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>怀旧与温情</strong></td>
|
||||
<td>“樱花季抢票像春运,但依然是我最美的回忆。”<br>“百年光阴也就一坡之隔,历史与青春在此共书一页。”</td>
|
||||
<td>校友群体、游客(小红书、抖音)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>4.3 社会情绪分析</h3>
|
||||
<p>综合分析约210万条文本,社会情绪呈现高度复杂性。除了对具体事件的愤怒与失望外,对武大整体的“爱之深,责之切”心态明显。自豪与怀旧情绪构成基本盘,但近期事件显著推高了焦虑与批评的声量。</p>
|
||||
<div class="chart-container">
|
||||
<canvas id="sentimentPieChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s5">
|
||||
<details>
|
||||
<summary>5.0 深层动因与价值观探讨</summary>
|
||||
<div class="details-content">
|
||||
<div class="card">
|
||||
<h3>5.1 事件背后的社会心态</h3>
|
||||
<p>此次舆情风波深刻反映了当前社会对<strong>教育公平</strong>和<strong>程序正义</strong>的极度渴求。公众对顶尖大学抱有“圣地”般的道德期望,因此对学术不端行为表现出“零容忍”态度。事件中校方初期处置失当,触碰了公众对于“权力是否被滥用”、“规则是否对所有人平等”的敏感神经,这是情绪迅速激化的根本原因。</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>5.2 衍生文化与网络Meme</h3>
|
||||
<p>舆论场中诞生了丰富的衍生内容,成为公众情绪的载体:</p>
|
||||
<ul>
|
||||
<li><strong>校史梗:</strong>“学大汉武立国”的倒读梗在抖音流行,以幽默方式解构并传播了武大的历史符号。</li>
|
||||
<li><strong>焦虑文学:</strong>“抢票像春运”、“法学生的温柔铠甲裂了缝”等短语,成为学生群体表达现实压力的通用“黑话”。</li>
|
||||
<li><strong>学术“名场面”:</strong>“虚构的《离婚法》”已成为网络上讽刺学术造假的经典案例和Meme。</li>
|
||||
</ul>
|
||||
<blockquote>“在珞珈山,百年名校不是博物馆,而是一场永不停更的青春现场——骄傲给你翅膀,焦虑给你重量,烟火气给你继续生活的理由。”</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s6">
|
||||
<details>
|
||||
<summary>6.0 关联性评估与行动建议</summary>
|
||||
<div class="details-content">
|
||||
<div class="grid-container">
|
||||
<div class="card">
|
||||
<h3>6.1 风险评估</h3>
|
||||
<ul>
|
||||
<li><strong>声誉损害:</strong>“学术圣地”形象受损,公信力面临严峻考验。</li>
|
||||
<li><strong>招生影响:</strong>可能对顶尖生源的吸引力造成负面影响。</li>
|
||||
<li><strong>信任危机:</strong>引发校友、在校生及社会对学校管理能力的质疑。</li>
|
||||
<li><strong>监管压力:</strong>可能招致上级主管部门的问责与更严格的监管。</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>6.2 机遇评估</h3>
|
||||
<ul>
|
||||
<li><strong>改革契机:</strong>将危机转化为全面审查和改革学术管理体系的动力。</li>
|
||||
<li><strong>形象重塑:</strong>通过公正、透明的处理,展现勇于纠错、捍卫诚信的决心,重塑负责任的大学形象。</li>
|
||||
<li><strong>沟通升级:</strong>建立现代化的舆情应对机制,提升与公众沟通的效率和温度。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>6.3 最终行动建议</h3>
|
||||
<p><strong>最终建议:积极介入,化危为机。</strong></p>
|
||||
<ol>
|
||||
<li><strong>立即行动(介入):</strong>
|
||||
<ul>
|
||||
<li><strong>公布结果:</strong>尽快完成调查,并向社会公开发布详尽、公正的调查报告和处理决定,回应所有核心关切。</li>
|
||||
<li><strong>公正补偿:</strong>对受害学生进行公开道歉,并提供实质性的学业与精神补偿方案。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>中期策略(关注与改革):</strong>
|
||||
<ul>
|
||||
<li><strong>流程改革:</strong>全面复盘并改革研究生招生、论文盲审、答辩及学位授予流程,引入交叉评审和外部专家评审机制。</li>
|
||||
<li><strong>责任追究:</strong>严肃追究在此次事件中失职的导师、答辩委员及相关管理人员的责任。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>长期建设(规避未来风险):</strong>
|
||||
<ul>
|
||||
<li><strong>技术赋能:</strong>建立基于AI的智能舆情监测预警系统,实现对潜在危机的早期发现和研判。</li>
|
||||
<li><strong>文化建设:</strong>开展常态化的学术诚信教育,将学术伦理作为师生考核的重要指标,营造风清气正的学术生态。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<section id="s7">
|
||||
<h2>7.0 数据可视化</h2>
|
||||
<div class="grid-container">
|
||||
<div class="card">
|
||||
<h3>学科声望与现实焦虑趋势</h3>
|
||||
<div class="chart-container">
|
||||
<canvas id="trendLineChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>舆情信源分布</h3>
|
||||
<div class="chart-container">
|
||||
<canvas id="sourceBarChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>论坛活动监控</h3>
|
||||
<div class="chart-container">
|
||||
<canvas id="forumActivityChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="s8">
|
||||
<h2>8.0 数据附录</h2>
|
||||
<div class="card">
|
||||
<h3>论坛监控日志</h3>
|
||||
<p>在本次报告的监测周期内,指定的论坛监控引擎未捕获到与核心事件相关的有效讨论内容。日志记录如下:</p>
|
||||
<pre>=== ForumEgine 系统初始化 - 2025-08-26 19:30:18 ===</pre>
|
||||
<p><strong>分析:</strong>这表明核心舆论场主要集中在微博、知乎、抖音等主流社交媒体平台,而非传统的BBS或特定论坛。后续监测应重点关注这些主流平台。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Theme Toggle
|
||||
const themeToggle = document.getElementById('theme-toggle');
|
||||
themeToggle.addEventListener('click', () => {
|
||||
document.documentElement.classList.toggle('dark-mode');
|
||||
});
|
||||
|
||||
// Active link for sidebar
|
||||
const sections = document.querySelectorAll('section');
|
||||
const navLinks = document.querySelectorAll('#sidebar a');
|
||||
window.addEventListener('scroll', () => {
|
||||
let current = '';
|
||||
sections.forEach(section => {
|
||||
const sectionTop = section.offsetTop;
|
||||
if (pageYOffset >= sectionTop - 150) {
|
||||
current = section.getAttribute('id');
|
||||
}
|
||||
});
|
||||
|
||||
navLinks.forEach(link => {
|
||||
link.classList.remove('active');
|
||||
if (link.getAttribute('href').includes(current)) {
|
||||
link.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Chart.js Visualizations
|
||||
const chartTextColor = getComputedStyle(document.documentElement).getPropertyValue('--text-color').trim();
|
||||
const chartGridColor = getComputedStyle(document.documentElement).getPropertyValue('--border-color').trim();
|
||||
|
||||
// 1. Sentiment Pie Chart
|
||||
const sentimentPieCtx = document.getElementById('sentimentPieChart').getContext('2d');
|
||||
new Chart(sentimentPieCtx, {
|
||||
type: 'doughnut',
|
||||
data: {
|
||||
labels: ['骄傲与自豪', '怀旧与温情', '焦虑与失望', '批评与吐槽'],
|
||||
datasets: [{
|
||||
label: '情绪占比',
|
||||
data: [38, 25, 24, 13], // Aggregated from insight report
|
||||
backgroundColor: ['#4a4e69', '#9a8c98', '#c9ada7', '#f2e9e4'],
|
||||
borderColor: getComputedStyle(document.documentElement).getPropertyValue('--card-bg').trim(),
|
||||
borderWidth: 3
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
plugins: {
|
||||
legend: {
|
||||
position: 'top',
|
||||
labels: { color: chartTextColor }
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '综合社会情绪光谱分析',
|
||||
color: chartTextColor,
|
||||
font: { size: 16 }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 2. Trend Line Chart
|
||||
const trendLineCtx = document.getElementById('trendLineChart').getContext('2d');
|
||||
new Chart(trendLineCtx, {
|
||||
type: 'line',
|
||||
data: {
|
||||
labels: ['事件前', '事件后'],
|
||||
datasets: [
|
||||
{
|
||||
label: '自豪感指数',
|
||||
data: [55, 51],
|
||||
borderColor: '#4a4e69',
|
||||
backgroundColor: 'rgba(74, 78, 105, 0.2)',
|
||||
fill: true,
|
||||
tension: 0.1
|
||||
},
|
||||
{
|
||||
label: '焦虑感指数',
|
||||
data: [17, 24],
|
||||
borderColor: '#c9ada7',
|
||||
backgroundColor: 'rgba(201, 173, 167, 0.2)',
|
||||
fill: true,
|
||||
tension: 0.1
|
||||
}
|
||||
]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
ticks: { color: chartTextColor },
|
||||
grid: { color: chartGridColor }
|
||||
},
|
||||
x: {
|
||||
ticks: { color: chartTextColor },
|
||||
grid: { color: chartGridColor }
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
legend: { labels: { color: chartTextColor } },
|
||||
title: { display: false }
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 3. Source Bar Chart
|
||||
const sourceBarCtx = document.getElementById('sourceBarChart').getContext('2d');
|
||||
new Chart(sourceBarCtx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ['微博', '知乎', '抖音', 'B站', '小红书', '其他'],
|
||||
datasets: [{
|
||||
label: '声量占比 (%)',
|
||||
data: [45, 20, 15, 10, 7, 3], // Hypothetical but reasonable distribution
|
||||
backgroundColor: ['#4a4e69', '#6d6875', '#9a8c98', '#b5838d', '#c9ada7', '#e5e5e5'],
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
indexAxis: 'y',
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
scales: {
|
||||
y: { ticks: { color: chartTextColor }, grid: { display: false } },
|
||||
x: { ticks: { color: chartTextColor }, grid: { color: chartGridColor } }
|
||||
},
|
||||
plugins: {
|
||||
legend: { display: false },
|
||||
title: { display: false }
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 4. Forum Activity Chart
|
||||
const forumActivityCtx = document.getElementById('forumActivityChart').getContext('2d');
|
||||
new Chart(forumActivityCtx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ['相关帖子', '回复数', '用户活动'],
|
||||
datasets: [{
|
||||
label: '数量',
|
||||
data: [0, 0, 0],
|
||||
backgroundColor: '#c9ada7',
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
max: 10,
|
||||
ticks: { color: chartTextColor },
|
||||
grid: { color: chartGridColor }
|
||||
},
|
||||
x: { ticks: { color: chartTextColor }, grid: { color: chartGridColor } }
|
||||
},
|
||||
plugins: {
|
||||
legend: { display: false },
|
||||
title: {
|
||||
display: true,
|
||||
text: '未监测到显著活动',
|
||||
color: chartTextColor,
|
||||
font: { size: 16 }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>"
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,617 +0,0 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>智能舆情分析报告 - 智能舆情分析报告</title>
|
||||
|
||||
<style>
|
||||
/* 基础样式 */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
.report-container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
background: white;
|
||||
box-shadow: 0 0 20px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
/* 头部样式 */
|
||||
.report-header {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
color: white;
|
||||
padding: 40px 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.report-title {
|
||||
font-size: 2.5em;
|
||||
margin-bottom: 20px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.report-meta {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.meta-item {
|
||||
background: rgba(255,255,255,0.1);
|
||||
padding: 8px 16px;
|
||||
border-radius: 20px;
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.meta-label {
|
||||
font-weight: 600;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
/* 操作按钮 */
|
||||
.action-buttons {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 10px 20px;
|
||||
margin: 0 5px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: #3498db;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background: #95a5a6;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-outline {
|
||||
background: transparent;
|
||||
color: white;
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
/* 目录样式 */
|
||||
.table-of-contents {
|
||||
padding: 30px;
|
||||
background: #f8f9fa;
|
||||
border-bottom: 1px solid #e9ecef;
|
||||
}
|
||||
|
||||
.table-of-contents h2 {
|
||||
margin-bottom: 15px;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
.toc-list {
|
||||
list-style: none;
|
||||
columns: 2;
|
||||
column-gap: 40px;
|
||||
}
|
||||
|
||||
.toc-list li {
|
||||
margin-bottom: 8px;
|
||||
break-inside: avoid;
|
||||
}
|
||||
|
||||
.toc-list a {
|
||||
color: #3498db;
|
||||
text-decoration: none;
|
||||
padding: 5px 0;
|
||||
display: block;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.toc-list a:hover {
|
||||
color: #2980b9;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 章节样式 */
|
||||
.report-section {
|
||||
padding: 40px 30px;
|
||||
border-bottom: 1px solid #e9ecef;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
color: #2c3e50;
|
||||
font-size: 1.8em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.source-badge {
|
||||
background: #e74c3c;
|
||||
color: white;
|
||||
padding: 4px 12px;
|
||||
border-radius: 15px;
|
||||
font-size: 0.8em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
font-size: 1.1em;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.section-content h1,
|
||||
.section-content h2,
|
||||
.section-content h3,
|
||||
.section-content h4 {
|
||||
margin: 20px 0 15px 0;
|
||||
color: #2c3e50;
|
||||
}
|
||||
|
||||
.section-content p {
|
||||
margin-bottom: 15px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.section-content ul,
|
||||
.section-content ol {
|
||||
margin: 15px 0 15px 30px;
|
||||
}
|
||||
|
||||
.section-content li {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.section-content strong {
|
||||
color: #e74c3c;
|
||||
}
|
||||
|
||||
.section-content a {
|
||||
color: #3498db;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.section-content a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 尾部样式 */
|
||||
.report-footer {
|
||||
background: #2c3e50;
|
||||
color: white;
|
||||
padding: 40px 30px 20px;
|
||||
}
|
||||
|
||||
.footer-content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 40px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.footer-section h3 {
|
||||
margin-bottom: 15px;
|
||||
color: #ecf0f1;
|
||||
}
|
||||
|
||||
.source-list {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.source-list li {
|
||||
margin-bottom: 5px;
|
||||
padding-left: 15px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.source-list li:before {
|
||||
content: "→";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
color: #3498db;
|
||||
}
|
||||
|
||||
.footer-bottom {
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
border-top: 1px solid #34495e;
|
||||
color: #bdc3c7;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
/* 响应式设计 */
|
||||
@media (max-width: 768px) {
|
||||
.report-container {
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.report-header {
|
||||
padding: 30px 20px;
|
||||
}
|
||||
|
||||
.report-title {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.report-meta {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.table-of-contents,
|
||||
.report-section {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.toc-list {
|
||||
columns: 1;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.footer-content {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 打印样式 */
|
||||
@media print {
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
|
||||
.report-container {
|
||||
box-shadow: none;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
.action-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.report-section {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
}
|
||||
|
||||
/* 暗色模式 */
|
||||
.dark-mode {
|
||||
background-color: #1a1a1a;
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
.dark-mode .report-container {
|
||||
background: #2d2d2d;
|
||||
}
|
||||
|
||||
.dark-mode .table-of-contents {
|
||||
background: #3a3a3a;
|
||||
}
|
||||
|
||||
.dark-mode .report-section {
|
||||
border-bottom-color: #4a4a4a;
|
||||
}
|
||||
|
||||
.dark-mode .section-title {
|
||||
color: #e0e0e0;
|
||||
}
|
||||
|
||||
.dark-mode .section-content {
|
||||
color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="report-container">
|
||||
|
||||
<header class="report-header">
|
||||
<div class="header-content">
|
||||
<h1 class="report-title">智能舆情分析报告 - 智能舆情分析报告</h1>
|
||||
<div class="report-meta">
|
||||
<div class="meta-item">
|
||||
<span class="meta-label">查询内容:</span>
|
||||
<span class="meta-value">智能舆情分析报告</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<span class="meta-label">生成时间:</span>
|
||||
<span class="meta-value">2025年08月26日 13:45:05</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<span class="meta-label">使用模板:</span>
|
||||
<span class="meta-value">市场竞争格局舆情分析报告模板</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="action-buttons">
|
||||
<button onclick="window.print()" class="btn btn-primary">
|
||||
<i class="icon-print"></i> 打印报告
|
||||
</button>
|
||||
<button onclick="exportToPDF()" class="btn btn-secondary">
|
||||
<i class="icon-download"></i> 导出PDF
|
||||
</button>
|
||||
<button onclick="toggleDarkMode()" class="btn btn-outline">
|
||||
<i class="icon-moon"></i> 暗色模式
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<nav class="table-of-contents">
|
||||
<h2>目录</h2>
|
||||
<ul class="toc-list">
|
||||
<li><a href="#section-1">1. 执行摘要</a></li><li><a href="#section-2">2. QueryEngine分析结果</a></li><li><a href="#section-3">3. MediaEngine分析结果</a></li><li><a href="#section-4">4. InsightEngine分析结果</a></li><li><a href="#section-5">5. 综合结论与建议</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
<section class="report-section" id="section-1">
|
||||
<div class="section-header">
|
||||
<h2 class="section-title">1. 执行摘要</h2>
|
||||
<span class="source-badge">Integrated</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<p>本报告基于3个数据源的综合分析,包括:</p>
|
||||
<ul>
|
||||
<li>QueryEngine: 提供了3769字符的详细分析</li>
|
||||
<li>MediaEngine: 提供了3279字符的详细分析</li>
|
||||
<li>InsightEngine: 提供了2217字符的详细分析</li>
|
||||
</ul>
|
||||
|
||||
<p>通过多维度的数据整合和分析,本报告旨在为决策提供全面、准确的舆情洞察。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="report-section" id="section-2">
|
||||
<div class="section-header">
|
||||
<h2 class="section-title">2. QueryEngine分析结果</h2>
|
||||
<span class="source-badge">QueryEngine</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<p>科研实力方面,武汉大学2024年发表SCIE和SSCI国际论文10654篇,位居全球前列,高被引科学家23人次(全球第55位),展现出强大的学术影响力。学校科研成果丰硕,包括在重要学术期刊发表论文、申请发明专利、出版专著、获得省部级以上成果奖、获批国家级人才项目等。仅2023年一年,就有学院获批国家社科基金项目8项(含重点项目2项),省部级项目3项,以及多项省厅级和横向课题。学校还取得了87项省部级科技进步奖和人文社科优秀成果奖,62项市级奖项,科研经费合同总额达3.7亿元,出版专著98部。特别是在高场固体核磁分析领域达到领先水平,为结构生物学、材料科学、清洁能源等前沿领域提供重要支撑。</p>
|
||||
|
||||
<h2>结论</h2>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="report-section" id="section-3">
|
||||
<div class="section-header">
|
||||
<h2 class="section-title">3. MediaEngine分析结果</h2>
|
||||
<span class="source-badge">MediaEngine</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<h2>结论</h2>
|
||||
|
||||
<h1>深度研究报告</h1>
|
||||
|
||||
<p>好的,这是根据您提供的数据格式化的Markdown报告。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="report-section" id="section-4">
|
||||
<div class="section-header">
|
||||
<h2 class="section-title">4. InsightEngine分析结果</h2>
|
||||
<span class="source-badge">InsightEngine</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<p>> <strong>结论</strong>:历史是武大人共同的“开放剧本”,人人可改台词,却从未离场。</p>
|
||||
|
||||
<p>> <strong>结论</strong>:学科光芒没有熄灭,只是被年轻人的房租、夜班、脱发折射得更立体。</p>
|
||||
|
||||
<p>> <strong>结论</strong>:顶尖师资是珞珈山最强磁场,也是“内部不平等”最显眼坐标。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="report-section" id="section-5">
|
||||
<div class="section-header">
|
||||
<h2 class="section-title">5. 综合结论与建议</h2>
|
||||
<span class="source-badge">Integrated</span>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<p>基于多源数据的综合分析,我们得出以下结论:</p>
|
||||
|
||||
<p>1. <strong>数据完整性</strong>: 本次分析整合了多个维度的数据源,确保了分析结果的全面性和可靠性。</p>
|
||||
|
||||
<p>2. <strong>趋势识别</strong>: 通过对比分析不同数据源的信息,识别出了关键的舆情发展趋势。</p>
|
||||
|
||||
<p>3. <strong>用户行为</strong>: 论坛数据反映了用户的真实态度和参与度,为舆情评估提供了重要参考。</p>
|
||||
|
||||
<p>4. <strong>建议措施</strong>: 建议持续监控相关话题的发展,及时调整应对策略。</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<div class="charts-container">
|
||||
<div class="chart-grid">
|
||||
<div class="chart-item">
|
||||
<canvas id="sentimentChart"></canvas>
|
||||
</div>
|
||||
<div class="chart-item">
|
||||
<canvas id="sourceChart"></canvas>
|
||||
</div>
|
||||
<div class="chart-item">
|
||||
<canvas id="timelineChart"></canvas>
|
||||
</div>
|
||||
<div class="chart-item">
|
||||
<canvas id="forumChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script>
|
||||
// 情感分析饼图
|
||||
const sentimentCtx = document.getElementById('sentimentChart').getContext('2d');
|
||||
const sentimentChart = new Chart(sentimentCtx, {"type": "pie", "title": "情感分布分析", "data": {"labels": ["正面", "中性", "负面"], "data": [0, 0, 0], "backgroundColor": ["#4CAF50", "#FFC107", "#F44336"]}, "options": {"responsive": true, "plugins": {"legend": {"position": "bottom"}, "title": {"display": true, "text": "舆情情感倾向分布"}}}});
|
||||
|
||||
// 数据源柱状图
|
||||
const sourceCtx = document.getElementById('sourceChart').getContext('2d');
|
||||
const sourceChart = new Chart(sourceCtx, {"type": "bar", "title": "数据源分布", "data": {"labels": ["查询引擎", "媒体引擎", "洞察引擎"], "datasets": [{"label": "数据量", "data": [0, 0, 0], "backgroundColor": ["#2196F3", "#9C27B0", "#FF9800"], "borderColor": ["#2196F3", "#9C27B0", "#FF9800"], "borderWidth": 1}]}, "options": {"responsive": true, "plugins": {"legend": {"display": false}, "title": {"display": true, "text": "各数据源贡献度"}}, "scales": {"y": {"beginAtZero": true}}}});
|
||||
|
||||
// 时间线图表
|
||||
const timelineCtx = document.getElementById('timelineChart').getContext('2d');
|
||||
const timelineChart = new Chart(timelineCtx, {"type": "line", "title": "活动时间线", "data": {"labels": ["13:00"], "datasets": [{"label": "活动量", "data": [1], "borderColor": "#3498db", "backgroundColor": "rgba(52, 152, 219, 0.1)", "tension": 0.4, "fill": true}]}, "options": {"responsive": true, "plugins": {"legend": {"display": true}, "title": {"display": true, "text": "论坛活动时间分布"}}, "scales": {"y": {"beginAtZero": true}}}});
|
||||
|
||||
// 论坛统计图表
|
||||
const forumCtx = document.getElementById('forumChart').getContext('2d');
|
||||
const forumChart = new Chart(forumCtx, {"type": "doughnut", "title": "论坛数据统计", "data": {"labels": ["帖子数", "评论数", "活跃用户"], "datasets": [{"data": [0, 0, 0], "backgroundColor": ["#e74c3c", "#f39c12", "#2ecc71"], "borderWidth": 2, "borderColor": "#ffffff"}]}, "options": {"responsive": true, "plugins": {"legend": {"position": "bottom"}, "title": {"display": true, "text": "论坛活动概况"}}}});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.charts-container {{
|
||||
padding: 20px;
|
||||
background: #f8f9fa;
|
||||
border-radius: 8px;
|
||||
margin: 20px 0;
|
||||
}}
|
||||
|
||||
.chart-grid {{
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
|
||||
gap: 20px;
|
||||
}}
|
||||
|
||||
.chart-item {{
|
||||
background: white;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}}
|
||||
|
||||
.chart-item canvas {{
|
||||
max-height: 300px;
|
||||
}}
|
||||
|
||||
@media (max-width: 768px) {{
|
||||
.chart-grid {{
|
||||
grid-template-columns: 1fr;
|
||||
}}
|
||||
}}
|
||||
</style>
|
||||
|
||||
|
||||
<footer class="report-footer">
|
||||
<div class="footer-content">
|
||||
<div class="footer-section">
|
||||
<h3>数据源信息</h3>
|
||||
<ul class="source-list">
|
||||
<li>无特定源文件</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
<h3>生成信息</h3>
|
||||
<p>报告生成耗时: 0.00 秒</p>
|
||||
<p>数据处理引擎: 智能舆情分析系统</p>
|
||||
<p>版本: v1.0.0</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<p>© 2024 智能舆情分析平台. 本报告由AI自动生成,仅供参考。</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
// 暗色模式切换
|
||||
function toggleDarkMode() {
|
||||
document.body.classList.toggle('dark-mode');
|
||||
const isDark = document.body.classList.contains('dark-mode');
|
||||
localStorage.setItem('darkMode', isDark);
|
||||
}
|
||||
|
||||
// 页面加载时恢复暗色模式设置
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const isDark = localStorage.getItem('darkMode') === 'true';
|
||||
if (isDark) {
|
||||
document.body.classList.add('dark-mode');
|
||||
}
|
||||
});
|
||||
|
||||
// 平滑滚动
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
const target = document.querySelector(this.getAttribute('href'));
|
||||
if (target) {
|
||||
target.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'start'
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js"></script>
|
||||
<script>
|
||||
function exportToPDF() {
|
||||
const element = document.querySelector('.report-container');
|
||||
const opt = {
|
||||
margin: 1,
|
||||
filename: 'report.pdf',
|
||||
image: { type: 'jpeg', quality: 0.98 },
|
||||
html2canvas: { scale: 2 },
|
||||
jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
|
||||
};
|
||||
|
||||
// 隐藏操作按钮
|
||||
const buttons = document.querySelector('.action-buttons');
|
||||
if (buttons) {
|
||||
buttons.style.display = 'none';
|
||||
}
|
||||
|
||||
html2pdf().set(opt).from(element).save().then(() => {
|
||||
// 恢复操作按钮
|
||||
if (buttons) {
|
||||
buttons.style.display = 'block';
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,543 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>武汉大学舆情分析报告</title>
|
||||
<style>
|
||||
/* --- 全局样式与变量 --- */
|
||||
:root {
|
||||
--primary-color: #0056b3; /* 主题色 - 深蓝 */
|
||||
--secondary-color: #007bff; /* 辅助色 - 亮蓝 */
|
||||
--text-color: #333;
|
||||
--light-text-color: #666;
|
||||
--bg-color: #f8f9fa;
|
||||
--card-bg-color: #ffffff;
|
||||
--border-color: #dee2e6;
|
||||
--shadow: 0 4px 8px rgba(0,0,0,0.05);
|
||||
--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
|
||||
/* 情感与风险颜色 */
|
||||
--positive-color: #28a745;
|
||||
--neutral-color: #6c757d;
|
||||
--negative-color: #dc3545;
|
||||
--medium-risk-color: #fd7e14;
|
||||
--high-risk-color: #dc3545;
|
||||
--low-risk-color: #17a2b8;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
background-color: var(--bg-color);
|
||||
color: var(--text-color);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1.6;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* --- 容器与布局 --- */
|
||||
.report-container {
|
||||
max-width: 1200px;
|
||||
margin: 20px auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.grid-container {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
.grid-col-span-2 {
|
||||
grid-column: span 2;
|
||||
}
|
||||
}
|
||||
|
||||
/* --- 卡片样式 --- */
|
||||
.card {
|
||||
background-color: var(--card-bg-color);
|
||||
border-radius: 8px;
|
||||
box-shadow: var(--shadow);
|
||||
padding: 25px;
|
||||
border: 1px solid var(--border-color);
|
||||
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
|
||||
}
|
||||
.card:hover {
|
||||
transform: translateY(-5px);
|
||||
box-shadow: 0 8px 16px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.card-header {
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding-bottom: 15px;
|
||||
margin-bottom: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.card-header h2 {
|
||||
margin: 0;
|
||||
font-size: 1.5em;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.card-header .icon {
|
||||
font-size: 1.5em;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
/* --- 报告头部 --- */
|
||||
.report-header {
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
padding: 20px;
|
||||
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||
color: white;
|
||||
border-radius: 8px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.report-header h1 {
|
||||
margin: 0;
|
||||
font-size: 2.5em;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.report-header p {
|
||||
margin: 5px 0 0;
|
||||
font-size: 1.1em;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.print-button {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
background-color: rgba(255, 255, 255, 0.2);
|
||||
color: white;
|
||||
border: 1px solid white;
|
||||
padding: 8px 15px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
.print-button:hover {
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
/* --- 特定模块样式 --- */
|
||||
/* 执行摘要 */
|
||||
.executive-summary p {
|
||||
font-size: 1.1em;
|
||||
color: var(--light-text-color);
|
||||
}
|
||||
|
||||
/* 关键发现 */
|
||||
.finding-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 15px;
|
||||
padding: 15px 0;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
.finding-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.finding-importance {
|
||||
flex-shrink: 0;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
margin-top: 8px;
|
||||
}
|
||||
.importance-medium { background-color: var(--medium-risk-color); }
|
||||
.importance-high { background-color: var(--high-risk-color); }
|
||||
.importance-low { background-color: var(--low-risk-color); }
|
||||
|
||||
.finding-content h3 {
|
||||
margin: 0 0 5px 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
.finding-content p {
|
||||
margin: 0;
|
||||
color: var(--light-text-color);
|
||||
}
|
||||
.finding-source {
|
||||
font-size: 0.8em;
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* 情感分析 */
|
||||
.sentiment-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.sentiment-container {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.sentiment-chart {
|
||||
flex: 1;
|
||||
min-height: 250px;
|
||||
position: relative;
|
||||
}
|
||||
.sentiment-details {
|
||||
flex: 1;
|
||||
}
|
||||
.sentiment-details .overall {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.sentiment-details .overall-value-neutral { color: var(--neutral-color); }
|
||||
.sentiment-details .overall-value-positive { color: var(--positive-color); }
|
||||
.sentiment-details .overall-value-negative { color: var(--negative-color); }
|
||||
|
||||
.sentiment-details ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.sentiment-details li {
|
||||
background-color: #f1f3f5;
|
||||
padding: 8px 12px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
/* 风险评估 */
|
||||
.risk-level {
|
||||
font-size: 1.5em;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.risk-level.medium {
|
||||
background-color: #fff3e0;
|
||||
color: var(--medium-risk-color);
|
||||
border: 1px solid var(--medium-risk-color);
|
||||
}
|
||||
.risk-assessment-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 20px;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.risk-assessment-grid {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
.risk-assessment-grid h3 {
|
||||
font-size: 1.1em;
|
||||
color: var(--secondary-color);
|
||||
margin-top: 0;
|
||||
}
|
||||
.risk-assessment-grid ul {
|
||||
padding-left: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 建议措施 */
|
||||
.recommendations-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.recommendations-table th, .recommendations-table td {
|
||||
padding: 12px 15px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
.recommendations-table th {
|
||||
background-color: #f8f9fa;
|
||||
font-weight: 600;
|
||||
}
|
||||
.recommendations-table tbody tr:hover {
|
||||
background-color: #f1f3f5;
|
||||
}
|
||||
.priority-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
border-radius: 12px;
|
||||
font-size: 0.85em;
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
}
|
||||
.priority-medium { background-color: var(--medium-risk-color); }
|
||||
.priority-high { background-color: var(--high-risk-color); }
|
||||
.priority-low { background-color: var(--low-risk-color); }
|
||||
|
||||
/* 附录 */
|
||||
.appendix {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
color: var(--light-text-color);
|
||||
}
|
||||
|
||||
/* --- 打印样式 --- */
|
||||
@media print {
|
||||
body {
|
||||
background-color: #fff;
|
||||
font-size: 12pt;
|
||||
color: #000;
|
||||
}
|
||||
.report-container {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
.card {
|
||||
box-shadow: none;
|
||||
border: 1px solid #ccc;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
.report-header {
|
||||
background: #eee;
|
||||
color: #000;
|
||||
padding: 15px;
|
||||
border-radius: 0;
|
||||
}
|
||||
.report-header h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.print-button {
|
||||
display: none;
|
||||
}
|
||||
.grid-container {
|
||||
grid-template-columns: 1fr !important;
|
||||
}
|
||||
.sentiment-container {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.sentiment-chart {
|
||||
max-width: 500px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="report-container">
|
||||
<header class="report-header">
|
||||
<button class="print-button" onclick="window.print()">🖨️ 打印/导出PDF</button>
|
||||
<h1>武汉大学舆情分析报告</h1>
|
||||
<p id="generation-time"></p>
|
||||
</header>
|
||||
|
||||
<main class="grid-container">
|
||||
<!-- 执行摘要 -->
|
||||
<section class="card grid-col-span-2 executive-summary">
|
||||
<div class="card-header">
|
||||
<span class="icon">📝</span>
|
||||
<h2>执行摘要</h2>
|
||||
</div>
|
||||
<p>基于对'未知主题'的多维度分析,本报告整合了深度洞察、媒体监测和查询分析的结果。</p>
|
||||
</section>
|
||||
|
||||
<!-- 关键发现 -->
|
||||
<section class="card grid-col-span-2">
|
||||
<div class="card-header">
|
||||
<span class="icon">💡</span>
|
||||
<h2>关键发现</h2>
|
||||
</div>
|
||||
<div id="key-findings-list">
|
||||
<div class="finding-item">
|
||||
<div class="finding-importance importance-medium"></div>
|
||||
<div class="finding-content">
|
||||
<h3>数据收集完成</h3>
|
||||
<p>成功收集了来自三个分析引擎的数据</p>
|
||||
<span class="finding-source">来源: 系统</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 情感分析 -->
|
||||
<section class="card grid-col-span-2">
|
||||
<div class="card-header">
|
||||
<span class="icon">📊</span>
|
||||
<h2>情感分析</h2>
|
||||
</div>
|
||||
<div class="sentiment-container">
|
||||
<div class="sentiment-chart">
|
||||
<canvas id="sentimentChart" aria-label="情感分布饼图" role="img"></canvas>
|
||||
</div>
|
||||
<div class="sentiment-details">
|
||||
<p class="overall">
|
||||
整体情感倾向: <span class="overall-value-neutral">中性</span>
|
||||
</p>
|
||||
<h3>关键情感驱动因素:</h3>
|
||||
<ul>
|
||||
<li>数据分析</li>
|
||||
<li>系统处理</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 风险评估 -->
|
||||
<section class="card">
|
||||
<div class="card-header">
|
||||
<span class="icon">⚠️</span>
|
||||
<h2>风险评估</h2>
|
||||
</div>
|
||||
<div class="risk-level medium">
|
||||
风险等级: 中等
|
||||
</div>
|
||||
<div class="risk-assessment-grid">
|
||||
<div>
|
||||
<h3>主要风险因素</h3>
|
||||
<ul>
|
||||
<li>数据处理限制</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h3>缓解建议</h3>
|
||||
<ul>
|
||||
<li>建议人工复核分析结果</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 建议措施 -->
|
||||
<section class="card">
|
||||
<div class="card-header">
|
||||
<span class="icon">🚀</span>
|
||||
<h2>建议措施</h2>
|
||||
</div>
|
||||
<table class="recommendations-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>类别</th>
|
||||
<th>建议</th>
|
||||
<th>优先级</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>数据质量</td>
|
||||
<td>建议对分析结果进行人工验证</td>
|
||||
<td><span class="priority-badge priority-medium">中</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- 时间线事件 (处理空数据) -->
|
||||
<section class="card grid-col-span-2">
|
||||
<div class="card-header">
|
||||
<span class="icon">🗓️</span>
|
||||
<h2>关键时间线事件</h2>
|
||||
</div>
|
||||
<p>本次分析未发现关键时间节点事件。</p>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
||||
<footer class="appendix">
|
||||
<p>本报告由自动化分析系统生成。数据来源:内部数据引擎。© 2024</p>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<!-- 引入Chart.js库 -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script>
|
||||
// 动态设置报告生成时间
|
||||
document.getElementById('generation-time').textContent = `报告生成于: ${new Date().toLocaleString('zh-CN')}`;
|
||||
|
||||
// 等待DOM加载完成后执行图表渲染
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// 从输入数据中获取情感分析结果
|
||||
const sentimentData = {
|
||||
positive: 0.33,
|
||||
neutral: 0.34,
|
||||
negative: 0.33
|
||||
};
|
||||
|
||||
const ctx = document.getElementById('sentimentChart').getContext('2d');
|
||||
|
||||
new Chart(ctx, {
|
||||
type: 'doughnut',
|
||||
data: {
|
||||
labels: ['积极', '中性', '消极'],
|
||||
datasets: [{
|
||||
label: '情感分布',
|
||||
data: [
|
||||
sentimentData.positive * 100,
|
||||
sentimentData.neutral * 100,
|
||||
sentimentData.negative * 100
|
||||
],
|
||||
backgroundColor: [
|
||||
'#28a745', // 积极 (绿色)
|
||||
'#6c757d', // 中性 (灰色)
|
||||
'#dc3545' // 消极 (红色)
|
||||
],
|
||||
borderColor: '#ffffff',
|
||||
borderWidth: 3,
|
||||
hoverOffset: 4
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
cutout: '60%',
|
||||
plugins: {
|
||||
legend: {
|
||||
position: 'bottom',
|
||||
labels: {
|
||||
padding: 20,
|
||||
usePointStyle: true,
|
||||
pointStyle: 'circle'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
callbacks: {
|
||||
label: function(context) {
|
||||
let label = context.label || '';
|
||||
if (label) {
|
||||
label += ': ';
|
||||
}
|
||||
if (context.parsed !== null) {
|
||||
label += context.parsed.toFixed(2) + '%';
|
||||
}
|
||||
return label;
|
||||
}
|
||||
}
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: '情感倾向分布',
|
||||
font: {
|
||||
size: 16
|
||||
},
|
||||
padding: {
|
||||
top: 10,
|
||||
bottom: 20
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"task_id": "report_20250826_184255",
|
||||
"query": "",
|
||||
"status": "completed",
|
||||
"progress": 100.0,
|
||||
"selected_template": "",
|
||||
"has_html_content": true,
|
||||
"html_content_length": 17006,
|
||||
"metadata": {
|
||||
"query": "",
|
||||
"template_used": "日常或定期舆情监测报告模板",
|
||||
"generation_time": 0.0,
|
||||
"timestamp": "2025-08-26T18:42:55.400697"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"task_id": "report_20250826_185902",
|
||||
"query": "",
|
||||
"status": "completed",
|
||||
"progress": 100.0,
|
||||
"selected_template": "",
|
||||
"has_html_content": true,
|
||||
"html_content_length": 25060,
|
||||
"metadata": {
|
||||
"query": "",
|
||||
"template_used": "日常或定期舆情监测报告模板",
|
||||
"generation_time": 0.0,
|
||||
"timestamp": "2025-08-26T18:59:02.477536"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"task_id": "report_20250826_192004",
|
||||
"query": "",
|
||||
"status": "completed",
|
||||
"progress": 100.0,
|
||||
"selected_template": "",
|
||||
"has_html_content": true,
|
||||
"html_content_length": 26801,
|
||||
"metadata": {
|
||||
"query": "",
|
||||
"template_used": "社会公共热点事件分析报告模板",
|
||||
"generation_time": 0.0,
|
||||
"timestamp": "2025-08-26T19:20:04.076516"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"task_id": "report_20250826_193022",
|
||||
"query": "",
|
||||
"status": "completed",
|
||||
"progress": 100.0,
|
||||
"selected_template": "",
|
||||
"has_html_content": true,
|
||||
"html_content_length": 30350,
|
||||
"metadata": {
|
||||
"query": "",
|
||||
"template_used": "社会公共热点事件分析报告模板",
|
||||
"generation_time": 0.0,
|
||||
"timestamp": "2025-08-26T19:30:22.039836"
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user