Files
K12C/screenshots.html

1068 lines
44 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>产品界面截图 | K12C</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--primary: #2563eb;
--primary-light: #3b82f6;
--primary-dark: #1d4ed8;
--success: #059669;
--success-light: #10b981;
--warning: #f59e0b;
--danger: #ef4444;
--purple: #7c3aed;
--purple-light: #8b5cf6;
--bg: #f8fafc;
--card: #ffffff;
--text: #1e293b;
--text-light: #64748b;
--border: #e2e8f0;
--shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
--shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, sans-serif;
background: #ffffff;
min-height: 100vh;
padding: 40px 20px;
}
.container {
max-width: 1400px;
margin: 0 auto;
}
.header {
text-align: center;
margin-bottom: 50px;
color: #fff;
}
.header h1 {
font-size: 2.5em;
font-weight: 700;
margin-bottom: 10px;
background: linear-gradient(135deg, #60a5fa 0%, #a78bfa 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.header p {
font-size: 1.1em;
color: #94a3b8;
}
.screens-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 40px;
}
@media (max-width: 1200px) {
.screens-grid { grid-template-columns: 1fr; }
}
.screen-wrapper {
display: flex;
flex-direction: column;
align-items: center;
}
.screen-label {
color: #94a3b8;
font-size: 0.9em;
margin-bottom: 15px;
display: flex;
align-items: center;
gap: 8px;
}
.screen-label i { color: #60a5fa; }
.phone-frame {
width: 340px;
background: #1e293b;
border-radius: 40px;
padding: 12px;
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(255,255,255,0.1);
}
.phone-screen {
background: var(--bg);
border-radius: 32px;
overflow: hidden;
min-height: 620px;
}
/* App Header */
.app-header {
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
color: #fff;
padding: 20px;
position: relative;
}
.app-header::after {
content: '';
position: absolute;
bottom: -20px;
left: 0;
right: 0;
height: 40px;
background: linear-gradient(to bottom, rgba(37,99,235,0.15), transparent);
}
.app-header-top {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.app-header h1 {
font-size: 1.1em;
font-weight: 600;
}
.avatar-small {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, #fbbf24, #f59e0b);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-weight: 600;
font-size: 0.9em;
}
.user-info {
display: flex;
align-items: center;
gap: 12px;
}
.user-info .name { font-size: 0.95em; font-weight: 500; }
.user-info .role { font-size: 0.75em; opacity: 0.8; }
.app-content { padding: 20px; }
/* Profile Card */
.profile-card {
background: var(--card);
border-radius: 16px;
padding: 20px;
margin-bottom: 16px;
box-shadow: var(--shadow);
}
.profile-header {
display: flex;
gap: 14px;
margin-bottom: 16px;
}
.profile-avatar {
width: 56px;
height: 56px;
border-radius: 50%;
background: linear-gradient(135deg, #fbbf24, #f59e0b);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1.4em;
font-weight: 600;
flex-shrink: 0;
}
.profile-info h3 { font-size: 1em; color: var(--text); margin-bottom: 4px; }
.profile-info p { font-size: 0.8em; color: var(--text-light); }
.profile-badge {
display: inline-block;
background: linear-gradient(135deg, #dbeafe, #bfdbfe);
color: var(--primary);
padding: 4px 10px;
border-radius: 20px;
font-size: 0.7em;
font-weight: 500;
margin-top: 6px;
}
/* Mini Radar */
.mini-radar {
height: 140px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.mini-radar canvas { max-width: 100%; }
/* Stats Grid */
.stats-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
margin-top: 16px;
}
.stat-item {
text-align: center;
padding: 12px 8px;
background: var(--bg);
border-radius: 12px;
}
.stat-value {
font-size: 1.3em;
font-weight: 700;
color: var(--primary);
}
.stat-value.green { color: var(--success); }
.stat-value.purple { color: var(--purple); }
.stat-label { font-size: 0.7em; color: var(--text-light); margin-top: 2px; }
/* Dimensions List */
.dim-list {
background: var(--card);
border-radius: 16px;
overflow: hidden;
box-shadow: var(--shadow);
}
.dim-item {
display: flex;
align-items: center;
padding: 14px 16px;
border-bottom: 1px solid var(--border);
}
.dim-item:last-child { border-bottom: none; }
.dim-icon {
width: 36px;
height: 36px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 12px;
font-size: 0.9em;
}
.dim-icon.blue { background: #dbeafe; color: var(--primary); }
.dim-icon.green { background: #d1fae5; color: var(--success); }
.dim-icon.purple { background: #ede9fe; color: var(--purple); }
.dim-icon.orange { background: #fef3c7; color: var(--warning); }
.dim-icon.red { background: #fee2e2; color: var(--danger); }
.dim-info { flex: 1; }
.dim-info h4 { font-size: 0.85em; color: var(--text); font-weight: 500; }
.dim-info p { font-size: 0.7em; color: var(--text-light); margin-top: 2px; }
.dim-score {
font-size: 1.1em;
font-weight: 700;
color: var(--text);
}
.dim-bar {
width: 60px;
height: 6px;
background: var(--border);
border-radius: 3px;
margin-top: 4px;
overflow: hidden;
}
.dim-bar-fill {
height: 100%;
border-radius: 3px;
}
/* Dashboard */
.dashboard-header {
background: linear-gradient(135deg, #0f172a, #1e293b);
color: #fff;
padding: 20px;
}
.dashboard-title {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
}
.dashboard-title i { font-size: 1.4em; color: #60a5fa; }
.dashboard-title h1 { font-size: 1.2em; font-weight: 600; }
.dashboard-tabs {
display: flex;
gap: 8px;
}
.tab {
padding: 8px 14px;
border-radius: 20px;
font-size: 0.8em;
background: rgba(255,255,255,0.1);
color: #94a3b8;
}
.tab.active {
background: var(--primary);
color: #fff;
}
/* KPI Cards */
.kpi-row {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
padding: 16px;
}
.kpi-card {
background: var(--card);
border-radius: 14px;
padding: 14px;
box-shadow: var(--shadow);
}
.kpi-card.highlight {
grid-column: span 2;
background: linear-gradient(135deg, var(--primary), var(--primary-dark));
color: #fff;
}
.kpi-card.highlight .kpi-value { color: #fff; }
.kpi-card.highlight .kpi-label { color: rgba(255,255,255,0.8); }
.kpi-value {
font-size: 1.6em;
font-weight: 700;
color: var(--text);
}
.kpi-label {
font-size: 0.75em;
color: var(--text-light);
margin-top: 4px;
}
.kpi-trend {
display: flex;
align-items: center;
gap: 4px;
font-size: 0.75em;
margin-top: 6px;
}
.kpi-trend.up { color: var(--success); }
.kpi-trend.down { color: var(--danger); }
/* Chart Area */
.chart-area {
background: var(--card);
margin: 0 16px 16px;
border-radius: 14px;
padding: 16px;
box-shadow: var(--shadow);
}
.chart-title {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 14px;
}
.chart-title h3 { font-size: 0.9em; color: var(--text); }
.chart-title select {
padding: 4px 10px;
border: 1px solid var(--border);
border-radius: 6px;
font-size: 0.75em;
background: var(--bg);
}
.bar-chart {
display: flex;
align-items: flex-end;
justify-content: space-around;
height: 100px;
padding-top: 10px;
}
.bar-item {
display: flex;
flex-direction: column;
align-items: center;
width: 28px;
}
.bar {
width: 24px;
border-radius: 4px 4px 0 0;
transition: height 0.3s;
}
.bar-label {
font-size: 0.65em;
color: var(--text-light);
margin-top: 6px;
}
/* Teacher List */
.teacher-list {
background: var(--card);
margin: 0 16px 16px;
border-radius: 14px;
overflow: hidden;
box-shadow: var(--shadow);
}
.teacher-list-header {
padding: 14px 16px;
border-bottom: 1px solid var(--border);
display: flex;
justify-content: space-between;
align-items: center;
}
.teacher-list-header h3 { font-size: 0.9em; color: var(--text); }
.teacher-item {
display: flex;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid var(--border);
}
.teacher-item:last-child { border-bottom: none; }
.teacher-avatar {
width: 40px;
height: 40px;
border-radius: 50%;
margin-right: 12px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-weight: 600;
font-size: 0.9em;
}
.teacher-info { flex: 1; }
.teacher-info h4 { font-size: 0.85em; color: var(--text); }
.teacher-info p { font-size: 0.7em; color: var(--text-light); }
.teacher-score {
text-align: right;
}
.teacher-score .score {
font-size: 1em;
font-weight: 700;
color: var(--primary);
}
.teacher-score .level {
font-size: 0.65em;
padding: 2px 8px;
border-radius: 10px;
margin-top: 2px;
display: inline-block;
}
.level.excellent { background: #d1fae5; color: var(--success); }
.level.good { background: #dbeafe; color: var(--primary); }
.level.average { background: #fef3c7; color: var(--warning); }
/* AI Card */
.ai-header {
background: linear-gradient(135deg, var(--purple), #6d28d9);
color: #fff;
padding: 20px;
}
.ai-avatar {
width: 60px;
height: 60px;
border-radius: 50%;
background: rgba(255,255,255,0.2);
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto 12px;
font-size: 1.8em;
}
.ai-header h1 {
text-align: center;
font-size: 1.1em;
font-weight: 600;
margin-bottom: 4px;
}
.ai-header p {
text-align: center;
font-size: 0.8em;
opacity: 0.8;
}
/* Suggestion Cards */
.suggestion-card {
background: var(--card);
border-radius: 14px;
padding: 16px;
margin-bottom: 12px;
box-shadow: var(--shadow);
border-left: 4px solid;
}
.suggestion-card.warning { border-color: var(--warning); }
.suggestion-card.success { border-color: var(--success); }
.suggestion-card.info { border-color: var(--primary); }
.suggestion-card.purple { border-color: var(--purple); }
.suggestion-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 10px;
}
.suggestion-icon {
width: 32px;
height: 32px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.9em;
}
.suggestion-card.warning .suggestion-icon { background: #fef3c7; color: var(--warning); }
.suggestion-card.success .suggestion-icon { background: #d1fae5; color: var(--success); }
.suggestion-card.info .suggestion-icon { background: #dbeafe; color: var(--primary); }
.suggestion-card.purple .suggestion-icon { background: #ede9fe; color: var(--purple); }
.suggestion-title { font-size: 0.9em; font-weight: 600; color: var(--text); }
.suggestion-content {
font-size: 0.8em;
color: var(--text-light);
line-height: 1.5;
margin-bottom: 10px;
}
.suggestion-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.tag {
padding: 4px 10px;
background: var(--bg);
border-radius: 12px;
font-size: 0.7em;
color: var(--text-light);
}
/* PDP Page */
.pdp-header {
background: linear-gradient(135deg, var(--success), #047857);
color: #fff;
padding: 20px;
}
.pdp-header h1 { font-size: 1.1em; font-weight: 600; margin-bottom: 4px; }
.pdp-header p { font-size: 0.8em; opacity: 0.8; }
.timeline {
padding: 20px;
}
.timeline-item {
position: relative;
padding-left: 30px;
padding-bottom: 24px;
border-left: 2px solid var(--border);
}
.timeline-item:last-child { border-left-color: transparent; }
.timeline-dot {
position: absolute;
left: -8px;
top: 0;
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--primary);
border: 3px solid var(--bg);
}
.timeline-item:nth-child(2) .timeline-dot { background: var(--success); }
.timeline-item:nth-child(3) .timeline-dot { background: var(--warning); }
.timeline-item.completed .timeline-dot { background: var(--success); }
.timeline-item.completed .timeline-dot::after {
content: '\f00c';
font-family: 'Font Awesome 6 Free';
font-weight: 900;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #fff;
font-size: 0.5em;
}
.timeline-date {
font-size: 0.7em;
color: var(--text-light);
margin-bottom: 6px;
}
.timeline-title {
font-size: 0.9em;
font-weight: 600;
color: var(--text);
margin-bottom: 6px;
}
.timeline-desc {
font-size: 0.8em;
color: var(--text-light);
line-height: 1.4;
}
.timeline-progress {
height: 4px;
background: var(--border);
border-radius: 2px;
margin-top: 10px;
overflow: hidden;
}
.timeline-progress-fill {
height: 100%;
border-radius: 2px;
}
.goal-card {
background: var(--card);
border-radius: 14px;
padding: 16px;
margin: 0 16px 16px;
box-shadow: var(--shadow);
}
.goal-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
}
.goal-header h3 { font-size: 0.9em; color: var(--text); }
.goal-badge {
padding: 4px 10px;
background: #d1fae5;
color: var(--success);
border-radius: 12px;
font-size: 0.7em;
font-weight: 500;
}
.goal-item {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 0;
border-bottom: 1px solid var(--border);
}
.goal-item:last-child { border-bottom: none; }
.goal-check {
width: 20px;
height: 20px;
border-radius: 50%;
border: 2px solid var(--border);
display: flex;
align-items: center;
justify-content: center;
font-size: 0.6em;
color: transparent;
}
.goal-item.done .goal-check {
background: var(--success);
border-color: var(--success);
color: #fff;
}
.goal-item.done .goal-text { text-decoration: line-through; color: var(--text-light); }
.goal-text { font-size: 0.85em; color: var(--text); flex: 1; }
.goal-date { font-size: 0.7em; color: var(--text-light); }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>产品界面示意</h1>
<p>教师岗位胜任力数字化管理平台</p>
</div>
<div class="screens-grid">
<!-- Screen 1: Teacher Profile -->
<div class="screen-wrapper">
<div class="screen-label">
<i class="fas fa-user-circle"></i>
<span>教师端 · 能力画像</span>
</div>
<div class="phone-frame">
<div class="phone-screen">
<div class="app-header">
<div class="app-header-top">
<div class="user-info">
<div class="avatar-small"></div>
<div>
<div class="name">李明华老师</div>
<div class="role">初三数学 · 学科教师</div>
</div>
</div>
<i class="fas fa-bell" style="font-size:1.1em;opacity:0.9;"></i>
</div>
</div>
<div class="app-content">
<div class="profile-card">
<div class="profile-header">
<div class="profile-avatar"></div>
<div class="profile-info">
<h3>李明华</h3>
<p>数学学科 · 教龄 8 年</p>
<span class="profile-badge"><i class="fas fa-star" style="margin-right:4px;"></i>优秀教师</span>
</div>
</div>
<div class="mini-radar">
<canvas id="radar1" width="200" height="160"></canvas>
</div>
<div class="stats-grid">
<div class="stat-item">
<div class="stat-value">4.3</div>
<div class="stat-label">综合评分</div>
</div>
<div class="stat-item">
<div class="stat-value green">Top 15%</div>
<div class="stat-label">年级排名</div>
</div>
<div class="stat-item">
<div class="stat-value purple">+0.8</div>
<div class="stat-label">本学期提升</div>
</div>
</div>
</div>
<div class="dim-list">
<div class="dim-item">
<div class="dim-icon blue"><i class="fas fa-book-open"></i></div>
<div class="dim-info">
<h4>专业知识</h4>
<div class="dim-bar"><div class="dim-bar-fill" style="width:84%;background:var(--primary);"></div></div>
</div>
<div class="dim-score">4.2</div>
</div>
<div class="dim-item">
<div class="dim-icon green"><i class="fas fa-chalkboard-teacher"></i></div>
<div class="dim-info">
<h4>教学能力</h4>
<div class="dim-bar"><div class="dim-bar-fill" style="width:90%;background:var(--success);"></div></div>
</div>
<div class="dim-score">4.5</div>
</div>
<div class="dim-item">
<div class="dim-icon purple"><i class="fas fa-users"></i></div>
<div class="dim-info">
<h4>协作沟通</h4>
<div class="dim-bar"><div class="dim-bar-fill" style="width:76%;background:var(--purple);"></div></div>
</div>
<div class="dim-score">3.8</div>
</div>
<div class="dim-item">
<div class="dim-icon orange"><i class="fas fa-laptop-code"></i></div>
<div class="dim-info">
<h4>数字技术</h4>
<div class="dim-bar"><div class="dim-bar-fill" style="width:80%;background:var(--warning);"></div></div>
</div>
<div class="dim-score">4.0</div>
</div>
<div class="dim-item">
<div class="dim-icon red"><i class="fas fa-seedling"></i></div>
<div class="dim-info">
<h4>持续发展</h4>
<div class="dim-bar"><div class="dim-bar-fill" style="width:86%;background:var(--danger);"></div></div>
</div>
<div class="dim-score">4.3</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Screen 2: Dashboard -->
<div class="screen-wrapper">
<div class="screen-label">
<i class="fas fa-chart-pie"></i>
<span>管理端 · 驾驶舱</span>
</div>
<div class="phone-frame">
<div class="phone-screen">
<div class="dashboard-header">
<div class="dashboard-title">
<i class="fas fa-chart-line"></i>
<h1>管理驾驶舱</h1>
</div>
<div class="dashboard-tabs">
<span class="tab active">全校概览</span>
<span class="tab">年级分析</span>
<span class="tab">学科对比</span>
</div>
</div>
<div class="kpi-row">
<div class="kpi-card highlight">
<div class="kpi-value">96<span style="font-size:0.5em;">/120</span></div>
<div class="kpi-label">在编教师总数</div>
<div class="kpi-trend up"><i class="fas fa-arrow-up"></i> 本学期新增 5 人</div>
</div>
<div class="kpi-card">
<div class="kpi-value">4.2</div>
<div class="kpi-label">全校平均分</div>
<div class="kpi-trend up"><i class="fas fa-arrow-up"></i> +0.3</div>
</div>
<div class="kpi-card">
<div class="kpi-value" style="color:var(--success);">89%</div>
<div class="kpi-label">达标率</div>
<div class="kpi-trend up"><i class="fas fa-arrow-up"></i> +5%</div>
</div>
</div>
<div class="chart-area">
<div class="chart-title">
<h3><i class="fas fa-chart-bar" style="margin-right:6px;color:var(--primary);"></i>各学科胜任力分布</h3>
<select><option>本学期</option></select>
</div>
<div class="bar-chart">
<div class="bar-item">
<div class="bar" style="height:75px;background:linear-gradient(to top,#2563eb,#60a5fa);"></div>
<div class="bar-label">数学</div>
</div>
<div class="bar-item">
<div class="bar" style="height:65px;background:linear-gradient(to top,#059669,#34d399);"></div>
<div class="bar-label">语文</div>
</div>
<div class="bar-item">
<div class="bar" style="height:80px;background:linear-gradient(to top,#7c3aed,#a78bfa);"></div>
<div class="bar-label">英语</div>
</div>
<div class="bar-item">
<div class="bar" style="height:55px;background:linear-gradient(to top,#f59e0b,#fbbf24);"></div>
<div class="bar-label">物理</div>
</div>
<div class="bar-item">
<div class="bar" style="height:70px;background:linear-gradient(to top,#ec4899,#f472b6);"></div>
<div class="bar-label">化学</div>
</div>
</div>
</div>
<div class="teacher-list">
<div class="teacher-list-header">
<h3><i class="fas fa-crown" style="margin-right:6px;color:var(--warning);"></i>TOP 优秀教师</h3>
<span style="font-size:0.75em;color:var(--text-light);">查看全部</span>
</div>
<div class="teacher-item">
<div class="teacher-avatar" style="background:linear-gradient(135deg,#fbbf24,#f59e0b);"></div>
<div class="teacher-info">
<h4>王秀英</h4>
<p>英语 · 初三</p>
</div>
<div class="teacher-score">
<div class="score">4.8</div>
<span class="level excellent">优秀</span>
</div>
</div>
<div class="teacher-item">
<div class="teacher-avatar" style="background:linear-gradient(135deg,#34d399,#059669);"></div>
<div class="teacher-info">
<h4>陈建国</h4>
<p>数学 · 初二</p>
</div>
<div class="teacher-score">
<div class="score">4.6</div>
<span class="level excellent">优秀</span>
</div>
</div>
<div class="teacher-item">
<div class="teacher-avatar" style="background:linear-gradient(135deg,#60a5fa,#2563eb);"></div>
<div class="teacher-info">
<h4>李明华</h4>
<p>数学 · 初三</p>
</div>
<div class="teacher-score">
<div class="score">4.3</div>
<span class="level good">良好</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Screen 3: AI Suggestions -->
<div class="screen-wrapper">
<div class="screen-label">
<i class="fas fa-robot"></i>
<span>教师端 · AI 智能建议</span>
</div>
<div class="phone-frame">
<div class="phone-screen">
<div class="ai-header">
<div class="ai-avatar"><i class="fas fa-robot"></i></div>
<h1>AI 智能分析</h1>
<p>基于您的能力画像,生成个性化建议</p>
</div>
<div class="app-content">
<div class="suggestion-card warning">
<div class="suggestion-header">
<div class="suggestion-icon"><i class="fas fa-exclamation-triangle"></i></div>
<span class="suggestion-title">短板识别</span>
</div>
<div class="suggestion-content">
<strong>协作沟通</strong> 得分 3.8,低于全校平均分 0.4 分。家校互动频率不足,与搭班教师的教研协作有待加强。
</div>
<div class="suggestion-tags">
<span class="tag">家校沟通</span>
<span class="tag">跨科教研</span>
<span class="tag">需重点提升</span>
</div>
</div>
<div class="suggestion-card success">
<div class="suggestion-header">
<div class="suggestion-icon"><i class="fas fa-lightbulb"></i></div>
<span class="suggestion-title">发展建议</span>
</div>
<div class="suggestion-content">
建议参加 <strong>「高效家校沟通技巧」</strong> 培训课程,同时加入 <strong>「数学跨年级教研小组」</strong> 提升协作能力。
</div>
<div class="suggestion-tags">
<span class="tag">培训课程</span>
<span class="tag">教研参与</span>
</div>
</div>
<div class="suggestion-card info">
<div class="suggestion-header">
<div class="suggestion-icon"><i class="fas fa-book"></i></div>
<span class="suggestion-title">推荐学习</span>
</div>
<div class="suggestion-content">
根据您的学习偏好,为您精选以下资源:
</div>
<div class="suggestion-tags">
<span class="tag">《家校沟通的艺术》</span>
<span class="tag">《协作式教学设计》</span>
<span class="tag">优秀案例分享</span>
</div>
</div>
<div class="suggestion-card purple">
<div class="suggestion-header">
<div class="suggestion-icon"><i class="fas fa-trophy"></i></div>
<span class="suggestion-title">潜力预测</span>
</div>
<div class="suggestion-content">
若在 <strong>协作沟通</strong> 维度提升至 4.2 以上,您的综合排名预计可提升至 <strong>年级前 8%</strong>
</div>
<div class="suggestion-tags">
<span class="tag">成长空间大</span>
<span class="tag">高潜教师</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Screen 4: PDP -->
<div class="screen-wrapper">
<div class="screen-label">
<i class="fas fa-route"></i>
<span>教师端 · 个人发展计划</span>
</div>
<div class="phone-frame">
<div class="phone-screen">
<div class="pdp-header">
<h1><i class="fas fa-route" style="margin-right:8px;"></i>个人发展计划</h1>
<p>2024年秋季学期 · 李明华</p>
</div>
<div class="timeline">
<div class="timeline-item completed">
<div class="timeline-dot"></div>
<div class="timeline-date">第 1-2 周(已完成)</div>
<div class="timeline-title">能力诊断与目标设定</div>
<div class="timeline-desc">完成五维能力测评,明确发展重点方向</div>
<div class="timeline-progress">
<div class="timeline-progress-fill" style="width:100%;background:var(--success);"></div>
</div>
</div>
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-date">第 3-6 周(进行中)</div>
<div class="timeline-title">协作沟通专项提升</div>
<div class="timeline-desc">参加家校沟通培训 + 每周一次教研协作</div>
<div class="timeline-progress">
<div class="timeline-progress-fill" style="width:60%;background:var(--primary);"></div>
</div>
</div>
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-date">第 7-10 周</div>
<div class="timeline-title">数字技术融合教学</div>
<div class="timeline-desc">完成 3 节信息化示范课制作</div>
<div class="timeline-progress">
<div class="timeline-progress-fill" style="width:0%;background:var(--warning);"></div>
</div>
</div>
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-date">第 11-16 周</div>
<div class="timeline-title">成果总结与复盘</div>
<div class="timeline-desc">整理成长档案,提交学期总结报告</div>
<div class="timeline-progress">
<div class="timeline-progress-fill" style="width:0%;background:var(--purple);"></div>
</div>
</div>
</div>
<div class="goal-card">
<div class="goal-header">
<h3><i class="fas fa-bullseye" style="margin-right:6px;color:var(--primary);"></i>本阶段目标</h3>
<span class="goal-badge">进行中</span>
</div>
<div class="goal-item done">
<div class="goal-check"><i class="fas fa-check"></i></div>
<span class="goal-text">完成《高效沟通》视频课程学习</span>
<span class="goal-date">10.15</span>
</div>
<div class="goal-item done">
<div class="goal-check"><i class="fas fa-check"></i></div>
<span class="goal-text">参加家校沟通工作坊(线下)</span>
<span class="goal-date">10.22</span>
</div>
<div class="goal-item">
<div class="goal-check"></div>
<span class="goal-text">与班主任进行一次家访</span>
<span class="goal-date">11.05</span>
</div>
<div class="goal-item">
<div class="goal-check"></div>
<span class="goal-text">加入数学教研小组并发言</span>
<span class="goal-date">11.12</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
// Draw mini radar chart
function drawRadar(canvasId, values, maxVal) {
var cvs = document.getElementById(canvasId);
if (!cvs) return;
var ctx = cvs.getContext('2d');
var W = cvs.width, H = cvs.height;
var cx = W / 2, cy = H / 2 + 10;
var R = Math.min(W, H) * 0.35;
var labels = ['专业知识', '教学能力', '协作沟通', '数字技术', '持续发展'];
var n = labels.length;
var step = 2 * Math.PI / n;
var startAngle = -Math.PI / 2;
ctx.clearRect(0, 0, W, H);
// Background rings
for (var l = 1; l <= 4; l++) {
var r = R * l / 4;
ctx.beginPath();
for (var i = 0; i <= n; i++) {
var a = startAngle + step * i;
var px = cx + r * Math.cos(a);
var py = cy + r * Math.sin(a);
if (i === 0) ctx.moveTo(px, py);
else ctx.lineTo(px, py);
}
ctx.closePath();
ctx.strokeStyle = l === 4 ? '#cbd5e1' : '#e5e7eb';
ctx.lineWidth = 1;
ctx.stroke();
}
// Axis lines
for (var i = 0; i < n; i++) {
var a = startAngle + step * i;
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.lineTo(cx + R * Math.cos(a), cy + R * Math.sin(a));
ctx.strokeStyle = '#e5e7eb';
ctx.lineWidth = 1;
ctx.stroke();
}
// Data polygon
ctx.beginPath();
for (var i = 0; i < n; i++) {
var v = values[i] / maxVal;
var a = startAngle + step * i;
var px = cx + R * v * Math.cos(a);
var py = cy + R * v * Math.sin(a);
if (i === 0) ctx.moveTo(px, py);
else ctx.lineTo(px, py);
}
ctx.closePath();
ctx.fillStyle = 'rgba(37, 99, 235, 0.2)';
ctx.fill();
ctx.strokeStyle = '#2563eb';
ctx.lineWidth = 2;
ctx.stroke();
// Data points
for (var i = 0; i < n; i++) {
var v = values[i] / maxVal;
var a = startAngle + step * i;
var px = cx + R * v * Math.cos(a);
var py = cy + R * v * Math.sin(a);
ctx.beginPath();
ctx.arc(px, py, 4, 0, 2 * Math.PI);
ctx.fillStyle = '#2563eb';
ctx.fill();
ctx.strokeStyle = '#fff';
ctx.lineWidth = 2;
ctx.stroke();
}
}
drawRadar('radar1', [4.2, 4.5, 3.8, 4.0, 4.3], 5);
</script>
</body>
</html>