2025这一年真是辛苦了
代码比较粗糙,手机端打开有点错位,电脑打开是非常完整的,欢迎大家来玩!~
2025年真是高强度找工作的一年,现在找工作的水平就和高考前的学习水平一样,恐怕是人生巅峰期了;2025年不止是我,还有看到这篇内容的牛友,想必都很辛苦了,希望大家2026年能过得顺利一些!
自己简单做了1个总结报告
代码附上了,大家可以自己复制改字
在桌面新建文本文档---复制代码--保存HTML格式,然后打开就是了
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>2025年度面试报告</title>
<!-- 引入图标库 -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<style>
:root {
--primary-orange: #FF6B00;
--primary-blue: #2B4CFF;
--highlight: #FFD700;
--bg-gradient: linear-gradient(135deg, #FFF6E5 0%, #EDF2FF 100%);
--card-shadow: 0 10px 20px rgba(0,0,0,0.08);
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
min-height: 100vh;
}
/* 手机端容器模拟 */
.container {
width: 100%;
max-width: 480px;
background: var(--bg-gradient);
min-height: 100vh;
padding: 20px;
position: relative;
overflow: hidden;
box-shadow: 0 0 30px rgba(0,0,0,0.1);
}
/* 顶部标题区 */
.header {
text-align: center;
padding: 40px 0 20px;
animation: fadeInDown 1s ease;
}
.header h1 {
font-size: 28px;
font-weight: 900;
background: linear-gradient(to right, var(--primary-orange), var(--primary-blue));
-webkit-background-clip: text;
color: transparent;
margin-bottom: 8px;
letter-spacing: 2px;
}
.header p {
color: #666;
font-size: 14px;
background: #fff;
display: inline-block;
padding: 4px 12px;
border-radius: 20px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
/* 用户卡片 */
.user-card {
background: white;
border-radius: 20px;
padding: 20px;
margin-bottom: 20px;
display: flex;
align-items: center;
box-shadow: var(--card-shadow);
border: 2px solid rgba(255, 107, 0, 0.1);
animation: fadeInUp 1s ease 0.2s backwards;
}
.avatar {
width: 60px;
height: 60px;
background: #eee;
border-radius: 50%;
margin-right: 15px;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
}
.user-info h2 {
font-size: 18px;
color: #333;
}
.user-info span {
font-size: 12px;
color: var(--primary-blue);
background: rgba(43, 76, 255, 0.1);
padding: 2px 6px;
border-radius: 4px;
margin-right: 5px;
}
/* 数据核心区 - 网格布局 */
.data-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 25px;
}
.data-item {
background: white;
padding: 20px 15px;
border-radius: 16px;
text-align: center;
box-shadow: var(--card-shadow);
transition: transform 0.3s;
animation: zoomIn 0.8s ease backwards;
}
/* 动画延迟设置 */
.data-item:nth-child(1) { animation-delay: 0.3s; }
.data-item:nth-child(2) { animation-delay: 0.4s; }
.data-item:nth-child(3) { animation-delay: 0.5s; }
.data-item:nth-child(4) { animation-delay: 0.6s; }
.data-item:hover {
transform: translateY(-5px);
}
.data-num {
display: block;
font-size: 32px;
font-weight: 800;
font-family: 'Arial Black', sans-serif;
margin-bottom: 5px;
}
.num-orange { color: var(--primary-orange); }
.num-blue { color: var(--primary-blue); }
.num-purple { color: #8A2BE2; }
.num-gold { color: #DAA520; }
.data-label {
font-size: 13px;
color: #888;
font-weight: bold;
}
.icon-bg {
font-size: 24px;
margin-bottom: 8px;
opacity: 0.8;
}
/* 实习经历条 */
.exp-bar {
background: linear-gradient(90deg, #2B4CFF, #6E85FF);
color: white;
border-radius: 16px;
padding: 20px;
margin-bottom: 25px;
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: 0 8px 16px rgba(43, 76, 255, 0.25);
animation: slideInLeft 1s ease 0.7s backwards;
}
.exp-left h3 {
font-size: 24px;
font-weight: 800;
}
.exp-left p {
font-size: 12px;
opacity: 0.9;
margin-top: 5px;
}
.exp-icon {
font-size: 32px;
background: rgba(255,255,255,0.2);
width: 50px;
height: 50px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
/* 漏斗转化率吐槽区 */
.funnel-card {
background: white;
border-radius: 20px;
padding: 25px;
margin-bottom: 30px;
box-shadow: var(--card-shadow);
position: relative;
animation: fadeInUp 1s ease 0.8s backwards;
}
.funnel-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 15px;
border-left: 4px solid var(--primary-orange);
padding-left: 10px;
}
.funnel-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
font-size: 13px;
color: #555;
}
.progress-bg {
flex: 1;
height: 10px;
background: #f0f0f0;
border-radius: 5px;
margin: 0 10px;
overflow: hidden;
}
.progress-fill {
height: 100%;
border-radius: 5px;
position: relative;
}
/* 进度条动画 */
.fill-1 { width: 100%; background: #FF6B00; animation: grow1 1.5s ease-out 1s forwards; width: 0; }
.fill-2 { width: 20%; background: #FF9F43; animation: grow2 1.5s ease-out 1.2s forwards; width: 0; }
.fill-3 { width: 16%; background: #2B4CFF; animation: grow3 1.5s ease-out 1.4s forwards; width: 0; }
.fill-4 { width: 1%; background: #00D2D3; animation: grow4 1.5s ease-out 1.6s forwards; width: 0; }
@keyframes grow1 { to { width: 100%; } }
@keyframes grow2 { to { width: 20%; } }
@keyframes grow3 { to { width: 16%; } }
@keyframes grow4 { to { width: 1%; } } /* Offer率极低,真实 */
/* 底部标签 */
.tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
margin-bottom: 30px;
animation: fadeIn 1.5s ease 1s backwards;
}
.tag {
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: bold;
transform: rotate(-2deg);
}
.tag:nth-child(even) { transform: rotate(2deg); }
.tag-1 { background: #FFEAA7; color: #d35400; border: 1px solid #d35400; }
.tag-2 { background: #74b9ff; color: #0984e3; border: 1px solid #0984e3; }
.tag-3 { background: #55efc4; color: #00b894; border: 1px solid #00b894; }
/* 底部 */
.footer {
text-align: center;
padding-bottom: 30px;
font-size: 12px;
color: #999;
animation: fadeIn 1s ease 1.5s backwards;
}
.stamp {
position: absolute;
right: 20px;
bottom: 80px;
width: 100px;
height: 100px;
border: 3px solid var(--primary-orange);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--primary-orange);
font-weight: 900;
font-size: 18px;
transform: rotate(-20deg) scale(0);
opacity: 0.6;
animation: stampIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) 2s forwards;
background: rgba(255, 255, 255, 0.8);
z-index: 10;
}
/* 关键帧动画 */
@keyframes fadeInDown {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes zoomIn {
from { opacity: 0; transform: scale(0.8); }
to { opacity: 1; transform: scale(1); }
}
@keyframes slideInLeft {
from { opacity: 0; transform: translateX(-50px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes stampIn {
to { transform: rotate(-20deg) scale(1); }
}
</style>
</head>
<body>
<div class="container">
<!-- 顶部标题 -->
<header class="header">
<h1>2025 求职生存报告</h1>
<p>致那个在暴风雨中奔跑的自己</p>
</header>
<!-- 用户信息 -->
<div class="user-card">
<div class="avatar">👨🎓</div>
<div class="user-info">
<h2>2026届毕业生</h2>
<div style="margin-top:5px;">
<span>#焦虑中前行</span>
<span>#面霸完全体</span>
<span>#大厂练习生</span>
</div>
</div>
</div>
<!-- 核心数据网格 -->
<div class="data-grid">
<!-- 投递 -->
<div class="data-item">
<div class="icon-bg num-orange"><i class="fas fa-paper-plane"></i></div>
<span class="data-num num-orange">500+</span>
<span class="data-label">疯狂投递</span>
</div>
<!-- 笔试 -->
<div class="data-item">
<div class="icon-bg num-purple"><i class="fas fa-edit"></i></div>
<span class="data-num num-purple">100+</span>
<span class="data-label">做过的笔试</span>
</div>
<!-- 面试 -->
<div class="data-item">
<div class="icon-bg num-blue"><i class="fas fa-comments"></i></div>
<span class="data-num num-blue">80+</span>
<span class="data-label">面试场次</span>
</div>
<!-- Offer -->
<div class="data-item">
<div class="icon-bg num-gold"><i class="fas fa-trophy"></i></div>
<span class="data-num num-gold">5+</span>
<span class="data-label">收获Offer</span>
</div>
</div>
<!-- 实习经历 -->
<div class="exp-bar">
<div class="exp-left">
<h3>2段 实习经历</h3>
<p>从打杂到独当一面,被社会毒打的勋章</p>
</div>
<div class="exp-icon">
<i class="fas fa-briefcase"></i>
</div>
</div>
<!-- 转化率漏斗 -->
<div class="funnel-card">
<div class="funnel-title">📊 扎心的转化漏斗</div>
<div class="funnel-row">
<span>投递</span>
<div class="progress-bg"><div class="progress-fill fill-1"></div></div>
<span>500+</span>
</div>
<div class="funnel-row">
<span>笔试</span>
<div class="progress-bg"><div class="progress-fill fill-2"></div></div>
<span>100+</span>
</div>
<div class="funnel-row">
<span>面试</span>
<div class="progress-bg"><div class="progress-fill fill-3"></div></div>
<span>80+</span>
</div>
<div class="funnel-row">
<span style="font-weight:bold; color:#DAA520;">Offer</span>
<div class="progress-bg"><div class="progress-fill fill-4"></div></div>
<span style="font-weight:bold; color:#DAA520;">5+</span>
</div>
<p style="text-align:center; font-size:12px; color:#999; margin-top:15px;">
* 约 1% 的通关率,你比大熊猫还珍贵
</p>
</div>
<!-- 趣味标签 -->
<div class="tags">
<div class="tag tag-1">行走的八股文</div>
<div class="tag tag-2">面试巅峰期</div>
<div class="tag tag-3">笔试题库管理员</div>
<div class="tag tag-1">心态已Next Level</div>
</div>
<!-- 盖章效果 -->
<div class="stamp">
未来<br>可期
</div>
<footer class="footer">
<p>2025求职季 · 凡杀不死我的,终将使我强大</p>
<p style="margin-top:5px; font-size:10px; opacity:0.5;">长按保存图片分享</p>
</footer>
</div>
</body>
</html>
复制以下代码---生成HTML格式,然后在桌面打开,可以输入自己的数字,生成图片!!
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>2025求职生存报告</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<style>
:root {
--bg-color: #F0F2F5;
--poster-bg: #FDFBF7;
--primary-orange: #FF9F43;
--primary-blue: #54A0FF;
--primary-purple: #5F27CD;
--text-main: #2C3A47;
--text-sub: #889098;
}
body {
margin: 0;
padding: 20px 0;
font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
background-color: var(--bg-color);
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
}
#input-section {
width: 90%;
max-width: 375px;
background: white;
padding: 25px;
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
box-sizing: border-box;
display: block;
}
.input-title {
text-align: center;
font-size: 20px;
font-weight: 800;
color: var(--text-main);
margin-bottom: 20px;
}
.form-item { margin-bottom: 15px; }
.form-item label { display: block; font-size: 14px; color: var(--text-sub); margin-bottom: 6px; }
.form-item input {
width: 100%;
padding: 12px;
border: 1px solid #E1E1E1;
border-radius: 8px;
font-size: 16px;
box-sizing: border-box;
outline: none;
background: #FAFAFA;
}
.form-item input:focus { border-color: var(--primary-blue); background: #FFF; }
.btn-generate {
width: 100%;
padding: 14px;
background: linear-gradient(135deg, #6C5CE7, #a29bfe);
color: white;
border: none;
border-radius: 50px;
font-size: 16px;
font-weight: bold;
margin-top: 10px;
cursor: pointer;
box-shadow: 0 4px 15px rgba(108, 92, 231, 0.3);
}
#result-wrapper {
display: none;
flex-direction: column;
align-items: center;
width: 100%;
}
#poster-container {
width: 375px;
background-color: var(--poster-bg);
padding: 40px 25px;
box-sizing: border-box;
position: relative;
box-shadow: 0 10px 40px rgba(0,0,0,0.08);
overflow: hidden;
border-radius: 4px;
}
@media (max-width: 375px) {
#poster-container { transform: scale(0.95); transform-origin: top center; margin-bottom: -20px; }
}
.header { text-align: center; margin-bottom: 30px; }
.year-badge {
background: #EAEAEA; color: #666;
padding: 4px 12px; border-radius: 20px;
font-size: 12px; font-weight: bold; display: inline-block; margin-bottom: 8px;
}
.main-title {
font-size: 26px; font-weight: 900; color: var(--primary-purple);
letter-spacing: 1px; margin: 0;
}
.sub-title {
background: #E1E1E6; color: #666;
font-size: 11px; padding: 4px 10px; border-radius: 4px;
display: inline-block; margin-top: 8px;
}
.identity-card {
background: white;
border-radius: 12px;
padding: 15px;
display: flex;
align-items: center;
box-shadow: 0 2px 10px rgba(0,0,0,0.02);
margin-bottom: 20px;
}
.avatar-box { font-size: 32px; margin-right: 15px; }
.id-text h3 { margin: 0 0 5px 0; font-size: 16px; color: #333; }
.tag-row span {
font-size: 10px; padding: 2px 6px; border-radius: 4px; margin-right: 4px;
}
.t-blue { background: #E3F2FD; color: #2196F3; }
.t-purple { background: #F3E5F5; color: #9C27B0; }
.data-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 20px;
}
.data-item {
background: white;
padding: 20px 10px;
border-radius: 12px;
text-align: center;
box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}
.d-icon { font-size: 22px; margin-bottom: 8px; display: block; }
.d-num { font-size: 28px; font-weight: 800; line-height: 1; }
.d-label { font-size: 11px; color: #999; margin-top: 6px; }
.c-orange { color: #FF9F43; }
.c-purple { color: #5F27CD; }
.c-blue { color: #54A0FF; }
.c-gold { color: #FECA57; }
.intern-box {
background: linear-gradient(90deg, #5F27CD, #9C88FF);
border-radius: 12px;
padding: 15px 20px;
color: white;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
box-shadow: 0 4px 15px rgba(95, 39, 205, 0.2);
}
.funnel-box {
background: white;
border-radius: 12px;
padding: 20px;
margin-bottom: 30px;
}
.funnel-head {
font-size: 14px; font-weight: bold; margin-bottom: 15px;
border-left: 4px solid #FF9F43; padding-left: 8px;
}
.f-row { display: flex; align-items: center; margin-bottom: 10px; font-size: 12px; }
.f-name { width: 35px; color: #666; }
.f-track { flex: 1; background: #F5F5F5; height: 10px; border-radius: 5px; margin: 0 10px; overflow: hidden;}
.f-bar { height: 100%; border-radius: 5px; width: 0; transition: width 0.8s ease; }
.f-val { width: 40px; text-align: right; color: #999; font-family: monospace; }
.fb-1 { background: #FF9F43; }
.fb-2 { background: #FECAA7; }
.fb-3 { background: #54A0FF; }
.fb-4 { background: #1DD1A1; }
.f-tips { text-align: center; font-size: 10px; color: #BBB; margin-top: 10px; }
.footer-badges { text-align: center; margin-bottom: 20px; }
.badge-pill {
display: inline-block; padding: 5px 12px; border-radius: 15px;
font-size: 11px; font-weight: bold; margin: 0 2px;
border: 1px solid;
}
.bp-orange { color: #E67E22; border-color: #F39C12; background: #FDF2E9; }
.bp-blue { color: #2980B9; border-color: #3498DB; background: #EBF5FB; }
.bp-green { color: #27AE60; border-color: #2ECC71; background: #E9F7EF; }
.footer-text { text-align: center; font-size: 10px; color: #CCC; line-height: 1.5; }
.stamp {
position: absolute; bottom: 20px; right: 20px;
width: 70px; height: 70px; border: 2px solid #FECA57; border-radius: 50%;
color: #FECA57; display: flex; justify-content: center; align-items: center;
font-weight: bold; transform: rotate(-15deg); font-size: 13px; text-align: center;
opacity: 0.6;
}
.action-container {
width: 375px;
max-width: 90%;
margin-top: 25px;
text-align: center;
padding-bottom: 40px;
}
.btn-save {
width: 100%;
padding: 16px;
background: linear-gradient(90deg, #FF9F43, #FFC048);
color: white;
border: none;
border-radius: 50px;
font-size: 18px;
font-weight: bold;
box-shadow: 0 6px 20px rgba(255, 159, 67, 0.4);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
.btn-save:active { transform: scale(0.98); }
.btn-retry {
background: none; border: none;
color: #889098; text-decoration: underline;
margin-top: 15px; cursor: pointer; font-size: 14px;
}
</style>
</head>
<body>
<!-- 1. 输入表单 -->
<div id="input-section">
<div class="input-title">📊 生成2025求职报告</div>
<div class="form-item">
<label>毕业届数 (如 2026)</label>
<input type="number" id="in-year" value="2026">
</div>
<div class="form-item">
<label>投递数</label>
<input type="number" id="in-delivery" value="320">
</div>
<div class="form-item">
<label>笔试数</label>
<input type="number" id="in-test" value="50">
</div>
<div class="form-item">
<label>面试数</label>
<input type="number" id="in-interview" value="12">
</div>
<div class="form-item">
<label>Offer数</label>
<input type="number" id="in-offer" value="2">
</div>
<div class="form-item">
<label>实习经历 (段)</label>
<input type="number" id="in-intern" value="1">
</div>
<button class="btn-generate" onclick="generate()">⚡ 立即生成</button>
</div>
<!-- 2. 结果展示 -->
<div id="result-wrapper">
<div id="poster-container">
<div class="header">
<span class="year-badge">2025</span>
<h1 class="main-title">求职生存报告</h1>
<span class="sub-title">致那个在暴风雨中奔跑的自己</span>
</div>
<!-- 身份卡片 -->
<div class="identity-card">
<div class="avatar-box">🎓</div>
<div class="id-text">
<h3><span id="out-year-sub">2026</span>届毕业生</h3>
<div class="tag-row" id="tag-container"></div>
</div>
</div>
<!-- 数据格 -->
<div class="data-grid">
<div class="data-item">
<span class="d-icon">📨</span>
<div class="d-num c-orange" id="out-delivery">0</div>
<div class="d-label">疯狂投递</div>
</div>
<div class="data-item">
<span class="d-icon">📝</span>
<div class="d-num c-purple" id="out-test">0</div>
<div class="d-label">做过的笔试</div>
</div>
<div class="data-item">
<span class="d-icon">💬</span>
<div class="d-num c-blue" id="out-interview">0</div>
<div class="d-label">面试场次</div>
</div>
<div class="data-item">
<span class="d-icon">🏆</span>
<div class="d-num c-gold" id="out-offer">0</div>
<div class="d-label">收获Offer</div>
</div>
</div>
<!-- 实习区域:增加了 id="intern-desc" 用于动态修改文案 -->
<div class="intern-box">
<div>
<strong style="font-size: 18px;"><span id="out-intern">1</span>段 实习经历</strong>
<div id="intern-desc" style="font-size: 10px; opacity: 0.8; margin-top: 4px;">从打杂到独当一面,被社会毒打的勋章</div>
</div>
<div style="font-size: 24px;">💼</div>
</div>
<!-- 漏斗图 -->
<div class="funnel-box">
<div class="funnel-head">扎心的转化漏斗</div>
<div class="f-row">
<span class="f-name">投递</span>
<div class="f-track"><div class="f-bar fb-1" style="width: 100%"></div></div>
<span class="f-val" id="f-val-delivery">320</span>
</div>
<div class="f-row">
<span class="f-name">笔试</span>
<div class="f-track"><div class="f-bar fb-2" id="bar-test" style="width: 50%"></div></div>
<span class="f-val" id="f-val-test">50</span>
</div>
<div class="f-row">
<span class="f-name">面试</span>
<div class="f-track"><div class="f-bar fb-3" id="bar-interview" style="width: 20%"></div></div>
<span class="f-val" id="f-val-interview">12</span>
</div>
<div class="f-row">
<span class="f-name">Offer</span>
<div class="f-track"><div class="f-bar fb-4" id="bar-offer" style="width: 5%"></div></div>
<span class="f-val" id="f-val-offer">2</span>
</div>
<div class="f-tips" id="funnel-tips">约 0.6% 的通关率,每一份都来之不易</div>
</div>
<!-- 底部 -->
<div class="footer-badges" id="footer-badges"></div>
<div class="footer-text">
2025求职季 · 凡杀不死我的,终将使我强大<br>
长按保存图片分享
</div>
<div class="stamp">未来<br>可期</div>
</div>
<!-- 3. 操作按钮 -->
<div class="action-container">
<button class="btn-save" id="btn-save" onclick="saveImage()">
📥 保存为图片
</button>
<button class="btn-retry" onclick="retry()">重新填写</button>
</div>
</div>
<script>
function generate() {
const year = document.getElementById('in-year').value;
const delivery = parseInt(document.getElementById('in-delivery').value) || 0;
const test = parseInt(document.getElementById('in-test').value) || 0;
const interview = parseInt(document.getElementById('in-interview').value) || 0;
const offer = parseInt(document.getElementById('in-offer').value) || 0;
const intern = parseInt(document.getElementById('in-intern').value) || 0;
document.getElementById('out-year-sub').innerText = year;
document.getElementById('out-delivery').innerText = delivery + '+';
document.getElementById('out-test').innerText = test + '+';
document.getElementById('out-interview').innerText = interview + '+';
document.getElementById('out-offer').innerText = offer;
// ----------------------------------------
// 核心修改:动态实习文案逻辑
// ----------------------------------------
document.getElementById('out-intern').innerText = intern;
let internDesc = "";
if (intern === 0) {
internDesc = "实习预备役:一张白纸,主打一个“可塑性极强”";
} else if (intern === 1) {
internDesc = "职场初体验:终于拥有了第一枚“社畜”勋章";
} else if (intern <= 2) {
internDesc = "进阶打工人:熟练掌握“收到”与“好的”";
} else if (intern <= 4) {
internDesc = "实习老司机:你的工牌连起来能绕写字楼一圈";
} else {
internDesc = "实习届的灭霸:在这个领域已登巅峰,功力已可参加社招";
}
document.getElementById('intern-desc').innerText = internDesc;
// ----------------------------------------
document.getElementById('f-val-delivery').innerText = delivery;
document.getElementById('f-val-test').innerText = test;
document.getElementById('f-val-interview').innerText = interview;
document.getElementById('f-val-offer').innerText = offer;
const base = delivery === 0 ? 1 : delivery;
document.getElementById('bar-test').style.width = Math.max((test/base*100), 5) + '%';
document.getElementById('bar-interview').style.width = Math.max((interview/base*100), 5) + '%';
document.getElementById('bar-offer').style.width = Math.max((offer/base*100), 3) + '%';
const tagBox = document.getElementById('tag-container');
const badgeBox = document.getElementById('footer-badges');
tagBox.innerHTML = '';
badgeBox.innerHTML = '';
let tags = [];
if (delivery > 500) tags.push({t:'#招聘软件VIP', c:'t-blue'});
else if (delivery > 100) tags.push({t:'#焦虑中前行', c:'t-blue'});
else tags.push({t:'#佛系求职', c:'t-blue'});
const ivRatio = interview/base;
if (ivRatio < 0.05) tags.push({t:'#HR已读不回', c:'t-purple'});
else if (ivRatio > 0.3) tags.push({t:'#面霸完全体', c:'t-purple'});
else tags.push({t:'#稳扎稳打', c:'t-purple'});
tags.forEach(item => {
const s = document.createElement('span');
s.className = item.c;
s.innerText = item.t;
tagBox.appendChild(s);
});
let badges = [];
if (offer === 0) {
badges.push({t:'全职陪跑员', c:'bp-orange'});
badges.push({t:'黎明前的夜最黑', c:'bp-green'});
document.getElementById('funnel-tips').innerText = `别灰心,好的都在后头`;
} else if (offer < 3) {
badges.push({t:'面试巅峰期', c:'bp-blue'});
badges.push({t:'行走的八股文', c:'bp-orange'});
document.getElementById('funnel-tips').innerText = `约 ${(offer/base*100).toFixed(1)}% 的通关率,你比大熊猫还珍贵`;
} else {
badges.push({t:'Offer收割机', c:'bp-green'});
badges.push({t:'凡尔赛大师', c:'bp-blue'});
document.getElementById('funnel-tips').innerText = `也是体验了一把选妃的感觉`;
}
badges.push({t:'心态已Next Level', c:'bp-orange'});
badges.forEach(item => {
const s = document.createElement('span');
s.className = `badge-pill ${item.c}`;
s.innerText = item.t;
badgeBox.appendChild(s);
});
document.getElementById('input-section').style.display = 'none';
document.getElementById('result-wrapper').style.display = 'flex';
}
function retry() {
document.getElementById('result-wrapper').style.display = 'none';
document.getElementById('input-section').style.display = 'block';
}
function saveImage() {
const btn = document.getElementById('btn-save');
const oldText = btn.innerHTML;
btn.innerHTML = '⏳ 生成中...';
const element = document.getElementById("poster-container");
html2canvas(element, {
useCORS: true,
scale: 3,
backgroundColor: '#FDFBF7'
}).then(canvas => {
const link = document.createElement('a');
link.download = '2025求职生存报告.png';
link.href = canvas.toDataURL("image/png");
link.click();
btn.innerHTML = '✅ 已保存';
setTimeout(() => { btn.innerHTML = oldText; }, 2000);
}).catch(err => {
console.error(err);
alert('生成失败,请尝试长按图片直接保存');
btn.innerHTML = oldText;
});
}
</script>
</body>
</html>
#2025年终总结#

