feat: 优化多个页面功能和界面
主要更新: 1. CoursesVideoPlayer组件:修复了白底logo容器边框样式 2. 专家支持中心: - 导入文旅产业问答数据 - 清空今天板块对话记录 - 禁用新建对话按钮,添加hover提示"非学员无权限" 3. 就业管家知识树:整个页面替换为iframe嵌入网页 4. 项目库:为四川大熊猫扇子项目添加3张效果图 5. 简历面试模拟:为活动执行和活动策划师岗位添加删除线修改版本 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
BIN
public/images/project-library/四川大熊猫扇子项目效果图2.jpg
Normal file
BIN
public/images/project-library/四川大熊猫扇子项目效果图2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 330 KiB |
BIN
public/images/project-library/四川大熊猫扇子项目效果图3.jpg
Normal file
BIN
public/images/project-library/四川大熊猫扇子项目效果图3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 293 KiB |
BIN
public/images/project-library/四川大熊猫扇子项目效果图4.jpg
Normal file
BIN
public/images/project-library/四川大熊猫扇子项目效果图4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 329 KiB |
@@ -16,7 +16,7 @@
|
||||
padding: 16px;
|
||||
border-radius: 16px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #fff;
|
||||
border: 1px solid #e5e6eb;
|
||||
|
||||
.courses-video-player-header {
|
||||
width: 100%;
|
||||
@@ -63,7 +63,7 @@
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
height: 234px;
|
||||
border: 2px solid #fff;
|
||||
border: 1px solid #e5e6eb;
|
||||
border-radius: 16px;
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Avatar, Tooltip } from "@arco-design/web-react";
|
||||
import Locked from "@/components/Locked";
|
||||
import logoImg from "@/assets/images/Sidebar/logo.png";
|
||||
import "./index.css";
|
||||
|
||||
export default ({ className = "", isLock = false, selectedCourse, teacherData, unitPosters, isPublicCourse = false, backgroundImage }) => {
|
||||
@@ -146,17 +147,30 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
/* 未选中课程时显示黑屏 */
|
||||
/* 未选中课程时显示白底和logo */
|
||||
<div style={{
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
backgroundColor: '#000',
|
||||
backgroundColor: '#fff',
|
||||
border: '1px solid #e5e6eb',
|
||||
borderRadius: '8px',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center'
|
||||
justifyContent: 'center',
|
||||
gap: '24px'
|
||||
}}>
|
||||
<img
|
||||
src={logoImg}
|
||||
alt="logo"
|
||||
style={{
|
||||
width: '120px',
|
||||
height: 'auto',
|
||||
opacity: 0.8
|
||||
}}
|
||||
/>
|
||||
<span style={{
|
||||
color: '#666',
|
||||
color: '#86909c',
|
||||
fontSize: '16px'
|
||||
}}>
|
||||
请选择课程开始观看
|
||||
|
||||
261
src/data/expertQAData.js
Normal file
261
src/data/expertQAData.js
Normal file
@@ -0,0 +1,261 @@
|
||||
// 专家问答数据
|
||||
export const expertQAData = [
|
||||
{
|
||||
id: 101,
|
||||
title: "文旅活动执行中的风险与应对",
|
||||
category: "专业知识",
|
||||
expert: "郭建辉",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "通过预案把风险降到最低",
|
||||
time: "03-07",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "老师,文旅项目里,最难做的部分是什么呢?",
|
||||
time: "2024-03-06 16:38",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "通常最难的就是\"落地执行\"。前期的策划看起来都很美好,但真正实施时要协调场地、供应商、演员、媒体等各方资源,还要考虑游客体验和安全问题。比如一场大型音乐节,不仅要管好舞台灯光和音响,还要管控人流、安排安保、准备应急预案。只要有一个环节没做好,就可能影响整体效果。",
|
||||
time: "2024-03-06 17:44",
|
||||
avatar: "👨💻",
|
||||
expertName: "郭建辉老师"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
type: "user",
|
||||
content: "那在落地执行的时候,最容易出问题的环节是哪一块?",
|
||||
time: "2024-03-06 17:57",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
type: "expert",
|
||||
content: "最容易出问题的就是\"现场环节\",因为它的不确定性最多。比如天气突变、设备故障、突发安全事件,这些都不是完全可控的。其次是多方协调,有时候供应商延迟到位,或者演员临时缺席,都会影响流程。",
|
||||
time: "2024-03-06 22:07",
|
||||
avatar: "👨💻",
|
||||
expertName: "郭建辉老师"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
type: "user",
|
||||
content: "那这些突发问题有没有办法提前避免呢?",
|
||||
time: "2024-03-07 10:16",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
type: "expert",
|
||||
content: "完全避免是不可能的,但可以通过预案把风险降到最低。比如活动前要准备'天气备选方案',下雨就有备用棚区或室内场地;设备要做反复测试并准备备用机;安保要提前演练人流疏散路线。关键在于'风险预判+多手准备',这样即使出现问题,也能快速切换方案,保证活动不中断。",
|
||||
time: "2024-03-07 15:22",
|
||||
avatar: "👨💻",
|
||||
expertName: "郭建辉老师"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 102,
|
||||
title: "文化服务的价值与职业意义",
|
||||
category: "专业知识",
|
||||
expert: "刘杰",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "明白了,谢谢老师",
|
||||
time: "03-15",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "老师,什么是'文化服务行业'?为什么它单独算一个行业?",
|
||||
time: "2024-03-14 14:54",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "文化服务行业就是以文化为核心内容,为社会提供精神产品和文化体验的产业。比如博物馆、美术馆、演出公司、文化传播机构、图书馆、非遗工坊等等,都属于这个行业。它之所以被单独划分,是因为文化和普通的商品不同,文化更强调精神价值和体验感。比如你去看一场音乐会,回家不会带走一件'实物',但那份感动和记忆就是文化服务的价值。这类行业不仅能满足人们的精神需求,还能促进社会文明程度的提升,因此被单独定义为一个产业。",
|
||||
time: "2024-03-14 18:42",
|
||||
avatar: "👨💻",
|
||||
expertName: "刘杰老师"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
type: "user",
|
||||
content: "那我们作为文旅专业的学生,学习文化服务方面的内容有什么意义呢?",
|
||||
time: "2024-03-14 20:22",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
type: "expert",
|
||||
content: "意义非常大。首先,文化服务是文旅项目的核心内容之一,掌握它能让你的策划更有'文化内涵',避免只做表面的观光项目。其次,很多就业岗位就在文化服务行业,比如博物馆运营、演出策划、文化活动推广,这些都和你们专业高度契合。最后,文化服务行业对创新和数字化的需求很大,这也为年轻人提供了发挥创意和技能的空间。学习文化服务,就是在为自己拓展更广阔的职业舞台。",
|
||||
time: "2024-03-14 23:12",
|
||||
avatar: "👨💻",
|
||||
expertName: "刘杰老师"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
type: "user",
|
||||
content: "明白了,谢谢老师",
|
||||
time: "2024-03-15 10:44",
|
||||
avatar: "👤"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 103,
|
||||
title: "文旅产业的广度解析",
|
||||
category: "常规问题",
|
||||
expert: "",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "文旅产业范围比旅游业更广",
|
||||
time: "03-18",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "文旅产业具体包含哪些领域?是不是只等于'旅游业'?",
|
||||
time: "2024-03-18 17:11",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "文旅产业的范围比单纯的旅游业更广。旅游业主要指观光、住宿、交通这些基本环节,而文旅产业不仅包括旅游,还包括文化创意、演出、节庆活动、文博展览、文创商品开发、数字文旅等。简单理解就是:旅游提供'去哪儿、怎么玩',文化提供'看什么、感受什么',两者结合才是完整的文旅产业。",
|
||||
time: "2024-03-18 17:11",
|
||||
avatar: "👨💻",
|
||||
expertName: "智能助手"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 104,
|
||||
title: "文旅商品供应链的特性",
|
||||
category: "专业知识",
|
||||
expert: "郭建辉",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "文化属性是最大的不同",
|
||||
time: "04-05",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "老师,文旅商品供应链和普通商品供应链有什么不一样?",
|
||||
time: "2024-04-05 11:14",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "最大的不同在于'文化属性'。普通商品供应链可能主要追求效率和价格,比如快消品。但是文旅商品除了实用性,还要有文化价值和纪念意义,比如加入非遗元素、地方特色符号,这会导致研发和设计阶段的比重更大。同时,它的销售渠道也有特点,往往依托景区商店、文创馆或者旅游电商平台,而不是传统超市。所以文旅商品供应链更强调'文化创意+体验营销',而不是单纯的'买卖'。",
|
||||
time: "2024-04-05 20:39",
|
||||
avatar: "👨💻",
|
||||
expertName: "郭建辉老师"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 105,
|
||||
title: "景区流量与变现困境",
|
||||
category: "常规问题",
|
||||
expert: "",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "延伸产业链是关键",
|
||||
time: "04-22",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "为什么有的景区人气很高,但文旅项目却亏损?",
|
||||
time: "2024-04-22 15:06",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "这是'流量和变现'的问题。有些景区游客多,但消费项目太少,比如只卖门票,没有配套文创、餐饮和演艺体验;或者运营成本过高,吃掉了利润。解决办法是延伸产业链,把游客的吃、住、购、娱结合起来,比如增加夜游项目、打造特色文创店、开展沉浸式演出。这样才能把人气转化成真正的收益。",
|
||||
time: "2024-04-22 15:06",
|
||||
avatar: "👨💻",
|
||||
expertName: "智能助手"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 106,
|
||||
title: "内向性格与沟通能力成长",
|
||||
category: "其他",
|
||||
expert: "赵志强",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
lastMessage: "好,谢谢老师",
|
||||
time: "04-25",
|
||||
messages: [
|
||||
{
|
||||
id: 1,
|
||||
type: "user",
|
||||
content: "我性格比较内向,觉得文旅行业需要很多沟通能力,会不会不适合我?",
|
||||
time: "2024-04-24 12:47",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
type: "expert",
|
||||
content: "其实文旅行业岗位很多,并不是所有工作都需要频繁沟通。比如文创设计、数据分析、市场研究,更需要安静思考和独立完成的能力。而且沟通能力是可以锻炼的,从小组合作、实习助理工作开始,你会慢慢发现自己也能逐渐适应。如果你热爱这个行业,不必因为性格内向就放弃,找到适合自己的岗位就好。",
|
||||
time: "2024-04-24 20:24",
|
||||
avatar: "👨💻",
|
||||
expertName: "赵志强老师"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
type: "user",
|
||||
content: "那如果我要锻炼沟通能力,可以从哪些小事情开始呢?",
|
||||
time: "2024-04-24 23:11",
|
||||
avatar: "👤"
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
type: "expert",
|
||||
content: "比如在课堂小组作业里,主动承担一次汇报的部分;在实习时,尝试和同事沟通一两个简单任务;或者在校园活动中担任志愿者,练习和陌生人交流。这些都是低风险的环境,不需要一下子'突破自我',而是逐步积累信心。沟通能力不是天生的,而是通过一次次尝试慢慢培养出来的。",
|
||||
time: "2024-04-25 10:26",
|
||||
avatar: "👨💻",
|
||||
expertName: "赵志强老师"
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
type: "user",
|
||||
content: "好,谢谢老师",
|
||||
time: "2024-04-25 11:44",
|
||||
avatar: "👤"
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
// 导师信息映射
|
||||
export const expertInfo = {
|
||||
"郭建辉": {
|
||||
name: "郭建辉",
|
||||
title: "文旅项目专家",
|
||||
avatar: "👨💻",
|
||||
specialties: ["活动策划", "风险管理", "供应链管理"]
|
||||
},
|
||||
"刘杰": {
|
||||
name: "刘杰",
|
||||
title: "文化产业专家",
|
||||
avatar: "👨💻",
|
||||
specialties: ["文化服务", "产业分析", "职业规划"]
|
||||
},
|
||||
"赵志强": {
|
||||
name: "赵志强",
|
||||
title: "职业发展导师",
|
||||
avatar: "👨💻",
|
||||
specialties: ["个人成长", "能力培养", "职业指导"]
|
||||
}
|
||||
};
|
||||
@@ -1797,20 +1797,38 @@ const resumeTemplates = {
|
||||
|
||||
### (五)岗位职责:
|
||||
|
||||
参与了学校社团的各种活动组织工作,协助完成了多项任务。在活动中负责协调工作,取得了一定的成果。通过这次实践,我学到了很多知识,提升了自己的能力。
|
||||
1. 结合 Z 世代与高校生群体喜好,甄选二次元贴纸、徽章、手办等周边商品,构建符合价格段(¥9-39、¥59-199、¥299+)的SKU结构,并执行上架流程;
|
||||
2. 基于“价格带×IP热度×材质工艺”策略,小规模试水后循环补货与限量发售,优化选品组合并维护毛利目标(55%±5%);
|
||||
3. 协助供应商评估与开拓工作,核查IP授权、产品质量与供应稳定性,确保合规与供货畅通;
|
||||
4. 跟踪热销商品的动销与库存状况,对滞销SKU提出补货或清退建议,支持风险控制与销售复盘;
|
||||
5. 参与盲盒选品与运营规范管理,核实概率信息与文案公开情况,确保合规风险可控;
|
||||
6. 梳理门店与社群(如“晒谷仓”等平台)反馈,推荐互动性强的产品款式,推动用户共创与UGC内容积累;
|
||||
7. 确保线上线下渠道货品一致性,支持小程序与实体货架的协同运营;
|
||||
8. 参与主题活动选品,如“上映联动款”,协调视觉团队准备陈列样品与营销素材;
|
||||
9. 监控用户反馈、评价与复购倾向,为后续IP选择、续订或新品布局提供分析依据。
|
||||
|
||||
# 二、专业技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. 具有基本的沟通能力
|
||||
2. 能够使用办公软件
|
||||
3. 有团队合作精神
|
||||
1. 具备市场洞察与用户画像分析能力,能够基于渠道数据和用户偏好制定品牌调性选品方案;
|
||||
2. 热爱二次元文化,熟知主流IP趋势,具备敏锐的选品嗅觉;
|
||||
3. 能独立规划选品流程,从新品筛选到上架执行均能参与;
|
||||
4. 擅长与供应链或样品提供方沟通对接,推动产品上架与授权检查;
|
||||
5. 能洞察消费趋势,预测二次元用户喜好并捕捉潜在爆款;
|
||||
6. 善于数据分析与销售反馈处理,能指导选品优化与风险控制。
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
1. 学习能力较强
|
||||
2. 适应能力良好`,
|
||||
1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。
|
||||
2. 文化IP策划与品牌传播能力:理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。
|
||||
3. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。
|
||||
4. 商业视觉表达与工具应用能力:了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。
|
||||
5. AIGC工具使用能力:了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。
|
||||
6. 服务体验优化和资源协同能力:理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。
|
||||
7. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。
|
||||
8. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。
|
||||
9. 智慧文旅应用能力:了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。`,
|
||||
modified: `# 对应岗位:二次元周边选品专员
|
||||
|
||||
# 一、项目经历
|
||||
@@ -4349,70 +4367,41 @@ const resumeTemplates = {
|
||||
# 三、个人总结
|
||||
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在"汽车品牌线下推广活动"项目中,我协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节。实习期间我表现细致且应变能力强,能主动配合团队推进流程并快速响应突发情况。未来希望在文旅或品牌线下推广领域不断实践成长,成为一名执行力出色、善于沟通与复盘的项目执行专家。`,
|
||||
modified: `# 活动策划师
|
||||
|
||||
# 对应岗位:活动策划师
|
||||
modified: `# 对应岗位:活动策划师
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
### (一)项目名称:春风 450MT新品上市营销活动策划项目
|
||||
|
||||
### (二)实习岗位:活动策划是助理
|
||||
### (二)实习岗位:活动策划助理
|
||||
|
||||
### (三)实习时间:XXXX时间
|
||||
### (三)实习时间:2024.06-2024.08
|
||||
|
||||
### (四)实习单位:某某公司
|
||||
|
||||
### (五)岗位职责:
|
||||
|
||||
1. ~~主导制定~~**协助制定**"T 系列车型'驭速觉醒'"传播总纲,~~拆解~~**参与拆解**线上曝光、线下参与、社交互动等核心 KPI,并~~规划~~**配合规划**成都/长沙/杭州三个城市的传播节奏及分站团队协作结构;
|
||||
2. ~~收集 Z 世代用户调研及竞品数据,撰写传播主题与互动脚本素材,搭建传播方案框架,并完成文案与软文投放结构设计~~
|
||||
|
||||
**协助收集 Z 世代用户调研及竞品数据,参与撰写传播主题和互动脚本,配合搭建传播方案框架,并协助完成文案与软文投放结构整理**;
|
||||
|
||||
3. ~~统筹并设计~~ **参与设计**线下互动场景,融合骑行线路与城市地标,~~打造沉浸式内容互动体验~~ **协助营造沉浸式内容互动体验**;
|
||||
4. ~~构建三级内容驱动矩阵,设定发布时间节奏与话题标签,推动内容裂变传播~~
|
||||
|
||||
**配合团队构建三级内容驱动矩阵,参与设定发布时间节奏与话题标签,支持内容裂变传播**;
|
||||
|
||||
5. ~~撰写城市站主持串场稿、互动指引语稿、达人任务脚本及视觉稿校对,确保线上线下语言与视觉调性统一~~
|
||||
|
||||
**协助撰写城市站主持串场稿、互动指引语稿和达人任务脚本,并参与视觉稿校对,帮助确保线上线下语言与视觉调性统一**;
|
||||
|
||||
6. ~~制定活动预算(含达人投入、物料成本、媒体费等),控制每人试乘成本~~
|
||||
|
||||
**协助整理活动预算数据(达人投入、物料成本、媒体费等),并学习参与控制每人试乘成本**;
|
||||
|
||||
7. ~~协调品牌方、执行方、设计、公关及场地团队,监督进度及质量,建立城市协调机制以应对现场突发状况~~
|
||||
|
||||
**协助品牌方、执行方、设计、公关及场地团队的沟通,参与进度跟进和质量检查,配合应对现场突发状况**;
|
||||
|
||||
8. ~~汇总试乘转化率、参与人数、互动反馈等数据,撰写传播成效报告并提炼可以复用的模板与优化建议~~
|
||||
|
||||
**协助汇总试乘转化率、参与人数和互动反馈等数据,配合撰写传播成效报告,并参与整理可复用的模板与优化建议**;
|
||||
|
||||
9. ~~持续关注摩托车及文旅跨界营销趋势,支持后续的内容规划与策略迭代~~
|
||||
|
||||
**在学习过程中关注摩托车及文旅跨界营销趋势,协助支持后续内容规划与策略迭代**。
|
||||
|
||||
2. ~~收集 Z 世代用户调研及竞品数据,撰写传播主题与互动脚本素材,搭建传播方案框架~~**协助收集用户调研数据,参与撰写基础文案素材**,并~~完成文案与软文投放结构设计~~**协助整理投放资料**;
|
||||
3. ~~统筹并设计~~**参与设计**线下互动场景,融合骑行线路与城市地标,~~打造~~**协助打造**沉浸式内容互动体验;
|
||||
4. ~~构建三级内容驱动矩阵~~**协助搭建内容矩阵**,~~设定~~**参与设定**发布时间节奏与话题标签,~~推动~~**支持**内容裂变传播;
|
||||
5. ~~撰写~~**协助撰写**城市站主持串场稿、互动指引语稿、达人任务脚本及~~视觉稿校对~~**参与校对工作**,~~确保~~**协助确保**线上线下语言与视觉调性统一;
|
||||
6. ~~制定活动预算~~**协助整理预算表**(含达人投入、物料成本、媒体费等),~~控制~~**学习控制**每人试乘成本;
|
||||
7. ~~协调~~**协助联系**品牌方、执行方、设计、公关及场地团队,~~监督~~**跟进**进度及质量,~~建立城市协调机制~~**配合团队**以应对现场突发状况;
|
||||
8. ~~汇总~~**协助收集**试乘转化率、参与人数、互动反馈等数据,~~撰写~~**参与撰写**传播成效报告并~~提炼~~**协助整理**可以复用的模板与优化建议;
|
||||
9. ~~持续关注~~**学习了解**摩托车及文旅跨界营销趋势,~~支持~~**协助支持**后续的内容规划与策略迭代。
|
||||
|
||||
# 二、专业技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. 熟悉活动策划完整流程,能~~协助从前期调研、传播定位到方案拆解与传播矩阵设计~~ **在团队指导下协助完成前期调研、传播定位、方案拆解与传播矩阵设计**;
|
||||
2. 能~~独立撰写策划文案与流程脚本,协助呈报并优化执行逻辑~~ **参与撰写策划文案与流程脚本,并协助呈报及优化执行逻辑**;
|
||||
3. 具备~~场地互动形式与内容体验设计经验,能参与打卡装置及互动环节策划~~ **一定的场地互动与内容体验设计经验,能协助参与打卡装置及互动环节的策划**;
|
||||
4. 熟悉预算方案编制与成本监控,~~控制成本及物料资源消耗在合理的范围内~~ **能配合团队把控成本并协助监控物料资源消耗**;
|
||||
5. 拥有活动数据跟踪与传播效果分析能力,~~能生成复盘报告~~ **能协助进行数据跟踪与传播效果整理,参与撰写复盘报告**;
|
||||
6. ~~擅长品牌协调与资源统筹,能对接品牌方、达人、设计等跨界团队~~
|
||||
|
||||
**能协助进行品牌协调与资源统筹,配合对接品牌方、达人及设计等跨界团队**;
|
||||
|
||||
7. ~~熟练操作办公软件与协作文档工具(PPT/Excel/Notion/AIGC 工具等),能支撑内容制作与流程协作~~
|
||||
|
||||
**熟练使用常用办公软件与协作文档工具(PPT/Excel/Notion/AIGC 工具等),能支持内容制作与流程协作**。
|
||||
|
||||
1. ~~熟悉~~**了解**活动策划完整流程,能协助从前期调研、传播定位到方案拆解与传播矩阵设计;
|
||||
2. 能~~独立~~**在指导下**撰写策划文案与流程脚本,协助呈报并优化执行逻辑;
|
||||
3. 具备场地互动形式与内容体验设计~~经验~~**基础知识**,能参与打卡装置及互动环节策划;
|
||||
4. ~~熟悉~~**了解**预算方案编制与成本监控,~~控制~~**协助控制**成本及物料资源消耗在合理的范围内;
|
||||
5. ~~拥有~~**具备基础的**活动数据跟踪与传播效果分析能力,能~~生成~~**协助生成**复盘报告;
|
||||
6. ~~擅长~~**能够参与**品牌协调与资源统筹,能对接品牌方、达人、设计等跨界团队;
|
||||
7. ~~熟练~~**能够**操作办公软件与协作文档工具(PPT/Excel/Notion/AIGC 工具等),能支撑内容制作与流程协作。
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
@@ -4428,45 +4417,7 @@ const resumeTemplates = {
|
||||
|
||||
# 三、个人总结
|
||||
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在"汽车品牌线下推广活动"项目中,我~~协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节~~ **主要参与并协助完成了物料验收、供应链协调、现场流程控制、客户引导以及UGC互动等环节,在过程中逐步积累了系统理解与实际操作经验**。实习期间我表现细致且应变能力强,~~能主动配合团队推进流程并快速响应突发情况~~ **能够主动配合团队推进流程,在现场突发情况中快速响应并学习处理方法**。未来希望在文旅或品牌线下推广领域不断实践成长,成为~~一名执行力出色、善于沟通与复盘的项目执行专家~~ **具备扎实执行力、善于沟通与复盘能力的项目执行型人才**。`
|
||||
},
|
||||
studentInfo: {
|
||||
project_experience: {
|
||||
project_name: "春风 450MT新品上市营销活动策划项目",
|
||||
position: "活动策划是助理",
|
||||
time_period: "XXXXXX",
|
||||
company: "XXXXXX",
|
||||
description: `主导制定“T 系列车型‘驭速觉醒’”传播总纲,拆解线上曝光、线下参与、社交互动等核心 KPI,并规划成都/长沙/杭州三个城市的传播节奏及分站团队协作结构;
|
||||
收集 Z 世代用户调研及竞品数据,撰写传播主题与互动脚本素材,搭建传播方案框架,并完成文案与软文投放结构设计;
|
||||
统筹并设计线下互动场景,融合骑行线路与城市地标,打造沉浸式内容互动体验;
|
||||
构建三级内容驱动矩阵,设定发布时间节奏与话题标签,推动内容裂变传播;
|
||||
撰写城市站主持串场稿、互动指引语稿、达人任务脚本及视觉稿校对,确保线上线下语言与视觉调性统一;
|
||||
制定活动预算(含达人投入、物料成本、媒体费等),控制每人试乘成本;
|
||||
协调品牌方、执行方、设计、公关及场地团队,监督进度及质量,建立城市协调机制以应对现场突发状况;
|
||||
汇总试乘转化率、参与人数、互动反馈等数据,撰写传播成效报告并提炼可以复用的模板与优化建议;
|
||||
持续关注摩托车及文旅跨界营销趋势,支持后续的内容规划与策略迭代。`
|
||||
},
|
||||
core_skills: [
|
||||
"熟悉活动策划完整流程,能协助从前期调研、传播定位到方案拆解与传播矩阵设计;",
|
||||
"能独立撰写策划文案与流程脚本,协助呈报并优化执行逻辑;",
|
||||
"具备场地互动形式与内容体验设计经验,能参与打卡装置及互动环节策划;",
|
||||
"熟悉预算方案编制与成本监控,控制成本及物料资源消耗在合理的范围内;",
|
||||
"拥有活动数据跟踪与传播效果分析能力,能生成复盘报告;",
|
||||
"擅长品牌协调与资源统筹,能对接品牌方、达人、设计等跨界团队;",
|
||||
"熟练操作办公软件与协作文档工具(PPT/Excel/Notion/AIGC 工具等),能支撑内容制作与流程协作。",
|
||||
],
|
||||
compound_skills: [
|
||||
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
|
||||
"市场洞察及营销策划:具备独立开展市场调研和竞品分析的基础方法,能够结合客户群特点提出营销建议,参与品牌推广、数字分销及渠道运营工作。",
|
||||
"文化IP策划与品牌传播能力:理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。",
|
||||
"服务体验优化和资源协同能力:理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。",
|
||||
"商业视觉表达与工具应用能力:了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
|
||||
"AIGC工具使用能力:了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
|
||||
"文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。",
|
||||
"新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。",
|
||||
"智慧文旅应用能力:了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。",
|
||||
],
|
||||
personal_summary: "我是一名刚完成实习的大专毕业生,主修会展策划与管理专业,对活动创意策划与传播运营具有浓厚兴趣。在“摩托车新品上市营销活动”中,我全程参与方案撰写、场景设计、传播落地、达人协作与效果追踪,逐步理解从创意触发到客户体验再到复盘优化的活动闭环逻辑。实习让我锻炼了文案表达、资源协调与成本控制的能力,并提升了跨部门沟通和执行力。我热爱策划工作,愿意不断学习,未来希望成为一名善于创意、数据敏感且执行落地力强的活动策划师。"
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理专业,对活动创意策划与传播运营具有浓厚兴趣。在"摩托车新品上市营销活动"中,我全程参与方案撰写、场景设计、传播落地、达人协作与效果追踪,逐步理解从创意触发到客户体验再到复盘优化的活动闭环逻辑。实习让我锻炼了文案表达、资源协调与成本控制的能力,并提升了跨部门沟通和执行力。我热爱策划工作,愿意不断学习,未来希望成为一名善于创意、数据敏感且执行落地力强的活动策划师。`
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -4525,9 +4476,7 @@ const resumeTemplates = {
|
||||
# 三、个人总结
|
||||
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在"汽车品牌线下推广活动"项目中,我协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节。实习期间我表现细致且应变能力强,能主动配合团队推进流程并快速响应突发情况。未来希望在文旅或品牌线下推广领域不断实践成长,成为一名执行力出色、善于沟通与复盘的项目执行专家。`,
|
||||
modified: `# 活动执行
|
||||
|
||||
# 对应岗位:活动执行
|
||||
modified: `# 对应岗位:活动执行
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
@@ -4535,40 +4484,34 @@ const resumeTemplates = {
|
||||
|
||||
### (二)实习岗位:活动执行助理
|
||||
|
||||
### (三)实习时间:XXXX时间
|
||||
### (三)实习时间:2024.03-2024.05
|
||||
|
||||
### (四)实习单位:某某公司
|
||||
|
||||
### (五)岗位职责:
|
||||
|
||||
1. 按照总部标准流程在活动开展的城市~~落地~~ **协助落地**活动策划的"三大主题×五段流程",包含物料布置及~~规范摆放审查~~ **规范摆放的检查与整理**;
|
||||
2. ~~跟进物料供应商交付、配送及搭建进度,确保~~ **协助跟进物料供应商交付、配送及搭建进度,配合团队确保**活动搭建在开始日前完成,并参与流程彩排;
|
||||
3. ~~主控现场活动流程,包括~~ **协助跟进现场活动流程,配合团队完成**签到、串场、试驾、抽奖等环节,保障节奏符合流程要求;
|
||||
4. 应对现场突发状况(如雨天变化、音响故障或客流异常),~~配合启用预案进行快速响应~~ **在指导下配合启用预案,参与快速响应**;
|
||||
5. 协助收集客户登记信息、扫码采集、平台导入工作;
|
||||
6. ~~负责奖品发放及签到送礼品等活动内容的执行~~ **参与奖品发放及签到礼品等活动执行**,覆盖试驾礼包及竞拍奖品派发;
|
||||
7. ~~实时监控签到率、互动频次、成交数等关键指标,并在必要时协助调整现场执行话术~~
|
||||
|
||||
**协助统计签到率、互动频次、成交数等关键指标,并在需要时配合调整现场执行话术**;
|
||||
|
||||
8. 指导客户参与UGC传播(如抖音、小红书记录与打卡),~~协助扫码话题引导与内容归档~~ **并配合扫码话题引导及内容归档**;
|
||||
9. 活动结束后~~负责现场物料、流程手册等文档分类归档~~ **协助整理现场物料、流程手册等文档分类归档**,为后续执行标准化输出提供素材。
|
||||
1. 按照总部标准流程在活动开展的城市~~落地活动策划的"三大主题×五段流程"~~**协助布置活动现场**,包含物料布置及~~规范摆放审查~~**基础摆放工作**;
|
||||
2. ~~跟进物料供应商交付、配送及搭建进度~~**协助跟进物料配送**,~~确保~~**配合确保**活动搭建在开始日前完成,并参与流程彩排;
|
||||
3. ~~主控现场活动流程~~**协助现场活动流程**,包括签到、串场、试驾、抽奖等环节,保障节奏符合流程要求;
|
||||
4. 应对现场突发状况(如雨天变化、音响故障或客流异常),~~配合启用预案进行快速响应~~**在指导下参与应急处理**;
|
||||
5. 协助收集客户登记信息、扫码采集、~~平台导入工作~~**数据整理工作**;
|
||||
6. ~~负责~~**协助**奖品发放及签到送礼品等活动内容的执行,覆盖试驾礼包及竞拍奖品派发;
|
||||
7. ~~实时监控~~**协助记录**签到率、互动频次、成交数等关键指标,~~并在必要时协助调整现场执行话术~~**反馈给负责人**;
|
||||
8. ~~指导客户参与UGC传播~~**引导客户参与社交媒体分享**(如抖音、小红书记录与打卡),协助扫码话题引导与内容归档;
|
||||
9. 活动结束后~~负责~~**协助**现场物料、流程手册等文档分类归档,为后续执行标准化输出提供素材。
|
||||
|
||||
# 二、专业技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. ~~熟悉~~ **了解**活动现场安装流程与现场搭建物料管理,具备~~协助执行布场与摆放流程经验~~ **参与布场与摆放流程的协助经验**;
|
||||
2. ~~擅长供应商协调与进度跟进~~ **能协助供应商协调与进度跟进**,支持搭建团队按时间节点完成场地落位彩排;
|
||||
3. 能够快速应对突发状况,~~协助启动应急预案以保障现场活动顺利推进~~ **在需要时配合团队启动应急预案,保障现场活动顺利推进**;
|
||||
4. 能~~辅助客户扫码登记与CRM信息录入,确保信息完整准确~~ **协助客户扫码登记与CRM信息录入,帮助确保信息完整准确**;
|
||||
5. ~~具备UGC互动引导能力,提升用户打卡互动频率及社交媒体参与度~~
|
||||
|
||||
**能配合进行UGC互动引导,协助提升用户打卡互动频率及社交媒体参与度**;
|
||||
|
||||
6. 能~~协助监测现场关键指标,配合优化活动流程~~ **在现场协助监测关键指标,并配合团队优化活动流程**;
|
||||
7. 能够~~管理活动资料与执行流程文档,支持团队后续的活动执行使用~~ **参与整理活动资料与执行流程文档,支持团队后续的活动执行使用**;
|
||||
8. 拥有较强的执行力与协作能力,~~能够在多部门协调下有效推进现场工作~~ **能在多部门协调下配合推进现场工作**。
|
||||
1. ~~熟悉~~**了解**活动现场安装流程与现场搭建物料管理,具备协助执行布场与摆放流程经验;
|
||||
2. ~~擅长~~**能够参与**供应商协调与进度跟进,支持搭建团队按时间节点完成场地落位彩排;
|
||||
3. 能够~~快速应对突发状况~~**在指导下应对突发状况**,协助启动应急预案以保障现场活动顺利推进;
|
||||
4. 能辅助客户扫码登记与~~CRM信息录入~~**基础信息收集**,确保信息完整准确;
|
||||
5. 具备~~UGC互动引导能力~~**基础的社交媒体引导能力**,提升用户打卡互动频率及社交媒体参与度;
|
||||
6. 能协助监测现场关键指标,配合优化活动流程;
|
||||
7. 能够~~管理~~**协助整理**活动资料与执行流程文档,支持团队后续的活动执行使用;
|
||||
8. 拥有较强的执行力与协作能力,能够在多部门协调下有效推进现场工作。
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
@@ -4584,306 +4527,7 @@ const resumeTemplates = {
|
||||
|
||||
# 三、个人总结
|
||||
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在"汽车品牌线下推广活动"项目中,我~~协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节~~ **主要协助完成物料验收、供应链协调、现场流程控制、客户引导以及UGC互动等具体环节,逐步积累了对活动执行的系统理解与实践经验**。实习期间我表现细致且应变能力强,~~能主动配合团队推进流程并快速响应突发情况~~ **能够在团队指导下主动配合流程推进,并在突发情况中快速响应和学习解决方式**。未来希望在文旅或品牌线下推广领域不断实践成长,成为~~一名执行力出色、善于沟通与复盘的项目执行专家~~ **具备扎实执行力、善于沟通与复盘的项目执行型人才**。`
|
||||
},
|
||||
studentInfo: {
|
||||
project_experience: {
|
||||
project_name: "长安汽车新款车型线下推广活动",
|
||||
position: "活动执行助理",
|
||||
time_period: "XXXXXX",
|
||||
company: "XXXXXX",
|
||||
description: `按照总部标准流程在活动开展的城市落地活动策划的“三大主题×五段流程”,包含物料布置及规范摆放审查;
|
||||
跟进物料供应商交付、配送及搭建进度,确保活动搭建在开始日前完成,并参与流程彩排;
|
||||
主控现场活动流程,包括签到、串场、试驾、抽奖等环节,保障节奏符合流程要求;
|
||||
应对现场突发状况(如雨天变化、音响故障或客流异常),配合启用预案进行快速响应;
|
||||
协助收集客户登记信息、扫码采集、平台导入工作;
|
||||
负责奖品发放及签到送礼品等活动内容的执行,覆盖试驾礼包及竞拍奖品派发;
|
||||
实时监控签到率、互动频次、成交数等关键指标,并在必要时协助调整现场执行话术;
|
||||
指导客户参与UGC传播(如抖音、小红书记录与打卡),协助扫码话题引导与内容归档;
|
||||
活动结束后负责现场物料、流程手册等文档分类归档,为后续执行标准化输出提供素材。`
|
||||
},
|
||||
core_skills: [
|
||||
"熟悉活动现场安装流程与现场搭建物料管理,具备协助执行布场与摆放流程经验;",
|
||||
"擅长供应商协调与进度跟进,支持搭建团队按时间节点完成场地落位彩排;",
|
||||
"能够快速应对突发状况,协助启动应急预案以保障现场活动顺利推进;",
|
||||
"能辅助客户扫码登记与CRM信息录入,确保信息完整准确;",
|
||||
"具备UGC互动引导能力,提升用户打卡互动频率及社交媒体参与度;",
|
||||
"能协助监测现场关键指标,配合优化活动流程;",
|
||||
"能够管理活动资料与执行流程文档,支持团队后续的活动执行使用;",
|
||||
"拥有较强的执行力与协作能力,能够在多部门协调下有效推进现场工作。",
|
||||
],
|
||||
compound_skills: [
|
||||
"活动执行与现场管理能力: 了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
|
||||
"服务体验优化和资源协同能力: 理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。",
|
||||
"文旅行业理解能力: 具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。",
|
||||
"产品营销基础: 具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。",
|
||||
"商业视觉表达与工具应用能力: 了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
|
||||
"文化IP策划与品牌传播能力: 理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。",
|
||||
"新媒体平台运营能力: 具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。",
|
||||
"AIGC工具使用能力: 了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
|
||||
"智慧文旅应用能力: 了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。",
|
||||
],
|
||||
personal_summary: "我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在“汽车品牌线下推广活动”项目中,我协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节,以此累积了对活动执行的系统理解与实操经验。实习期间我表现细致且应变能力强,能主动配合团队推进流程并快速响应突发情况。未来希望在文旅或品牌线下推广领域不断实践成长,成为一名执行力出色、善于沟通与复盘的项目执行专家。"
|
||||
}
|
||||
}
|
||||
],
|
||||
"露营地运营": [
|
||||
{
|
||||
position: "露营地运营专员",
|
||||
level: "普通岗",
|
||||
content: {
|
||||
original: `# 对应岗位:露营地运营专员
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
### (一)项目名称:轻奢露营市集玩乐活动运营项目
|
||||
|
||||
### (二)实习岗位:露营地运营专员
|
||||
|
||||
### (三)实习单位:某某公司
|
||||
|
||||
### (四)实习时间:XXXX时间
|
||||
|
||||
### (五)岗位职责
|
||||
|
||||
1. 协助整理《活动总述》《区域规划图》与《应急与安全方案》等前期资料,参与六大功能区规划讨论,初步熟悉露营地场景布局与功能设计逻辑;
|
||||
2. 参与KV主视觉海报、倒计时物料与招募话术的内容校对与素材归档,辅助完成社群渠道报名表的发布与数据登记;
|
||||
3. 在布置阶段协助场地标识、签到区、导视系统及打卡区域的布设工作,配合布置市集摊位、帐篷区及照明装饰,保证视觉统一与体验顺畅;
|
||||
4. 活动当天负责签到引导、票务核验、手环发放及礼品包分发,协助游客入场分流与体验区问询,保障人流动线与秩序稳定;
|
||||
5. 参与“帐篷搭建赛”“森林音乐会”“星空影院”等活动的流程协助与舞台支持,协助主持人控场并负责节目表的时间提示与衔接;
|
||||
6. 协助运营组整理现场视频/照片素材,参与“云相册”上线与素材初筛,配合后期剪辑团队完成线上传播内容初步编排;
|
||||
7. 活动结束后协助物资回收、摊位清理及满意度问卷收集,并参与复盘会议内容整理,输出基础版运营反馈报告。
|
||||
|
||||
# 二、掌握技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. chubu 掌握营地日常运营全流程管理,包括接待流程优化、设施巡检维护及运营数据统计分析能力,能独立运用Office办公软件完成经营报表制作与可视化呈现
|
||||
2. 具备线上线下活动落地执行经验,熟悉场景搭建、活动动线规划与现场摄影直播技术操作,能熟练操作无人机航拍、手持云台等设备完成多媒体素材采集
|
||||
3. 精通数字化营地管理工具应用,包括OTA渠道管理后台(如携程商旅、美团商家端)、微信群控工具、自媒体运营平台(抖音企业号、小红书专业号)的数据分析与内容发布
|
||||
4. 具备团队管理与标准化建设能力,熟悉服务业人员排班调度、绩效考核方案设计,能通过钉钉/企业微信等协同工具实现跨部门任务分配与进度管控
|
||||
5. 擅长用户社群运营与私域流量转化,具备客户需求分析、会员体系搭建及精准营销活动策划能力,熟练使用SCRM系统进行客户分层管理与精准触达
|
||||
6. 掌握露营行业趋势分析与竞品调研方法论,能通过行业垂直平台(如露营天下、户外资料网)持续更新运营策略,具备基础商业计划书撰写与营收模型构建能力
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
1. 活动执行与现场管理能力: 了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。
|
||||
2. 文旅行业理解能力: 具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。
|
||||
3. 新媒体平台运营能力: 具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。
|
||||
4. 智慧文旅应用能力: 了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。
|
||||
5. 服务体验优化和资源协同能力: 理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。
|
||||
6. 文化IP策划与品牌传播能力: 理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。
|
||||
7. AIGC工具使用能力: 了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。
|
||||
8. 商业视觉表达与工具应用能力: 了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。
|
||||
9. 产品营销基础: 具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。
|
||||
|
||||
# 三、个人评价
|
||||
|
||||
我是一名刚完成实习的大专毕业生,在露营地运营项目中担任助理角色,接触了从活动前期策划到现场执行、再到后期传播的全流程,对文旅活动的实际运作有了较为清晰的认识。在项目中,我能够主动承担任务、及时响应需求、配合团队完成细节工作。虽然经验尚浅,但我有较强的责任感与适应能力,愿意从基层做起,逐步积累经验,努力成长为一名综合型的运营人才。`,
|
||||
modified: `# 对应岗位:露营地运营专员
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
### (一)项目名称:轻奢露营市集玩乐活动运营项目
|
||||
|
||||
### (二)实习岗位:露营地运营专员
|
||||
|
||||
### (三)实习单位:某某公司
|
||||
|
||||
### (四)实习时间:XXXX时间
|
||||
|
||||
### (五)岗位职责
|
||||
|
||||
1. 协助整理《活动总述》《区域规划图》与《应急与安全方案》等前期资料,参与六大功能区规划讨论,初步熟悉露营地场景布局与功能设计逻辑;
|
||||
2. 参与KV主视觉海报、倒计时物料与招募话术的内容校对与素材归档,辅助完成社群渠道报名表的发布与数据登记;
|
||||
3. 在布置阶段协助场地标识、签到区、导视系统及打卡区域的布设工作,配合布置市集摊位、帐篷区及照明装饰,保证视觉统一与体验顺畅;
|
||||
4. 活动当天负责签到引导、票务核验、手环发放及礼品包分发,协助游客入场分流与体验区问询,保障人流动线与秩序稳定;
|
||||
5. 参与“帐篷搭建赛”“森林音乐会”“星空影院”等活动的流程协助与舞台支持,协助主持人控场并负责节目表的时间提示与衔接;
|
||||
6. 协助运营组整理现场视频/照片素材,参与“云相册”上线与素材初筛,配合后期剪辑团队完成线上传播内容初步编排;
|
||||
7. 活动结束后协助物资回收、摊位清理及满意度问卷收集,并参与复盘会议内容整理,输出基础版运营反馈报告。
|
||||
|
||||
# 二、掌握技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. chubu 掌握营地日常运营全流程管理,包括接待流程优化、设施巡检维护及运营数据统计分析能力,能独立运用Office办公软件完成经营报表制作与可视化呈现
|
||||
2. 具备线上线下活动落地执行经验,熟悉场景搭建、活动动线规划与现场摄影直播技术操作,能熟练操作无人机航拍、手持云台等设备完成多媒体素材采集
|
||||
3. 精通数字化营地管理工具应用,包括OTA渠道管理后台(如携程商旅、美团商家端)、微信群控工具、自媒体运营平台(抖音企业号、小红书专业号)的数据分析与内容发布
|
||||
4. 具备团队管理与标准化建设能力,熟悉服务业人员排班调度、绩效考核方案设计,能通过钉钉/企业微信等协同工具实现跨部门任务分配与进度管控
|
||||
5. 擅长用户社群运营与私域流量转化,具备客户需求分析、会员体系搭建及精准营销活动策划能力,熟练使用SCRM系统进行客户分层管理与精准触达
|
||||
6. 掌握露营行业趋势分析与竞品调研方法论,能通过行业垂直平台(如露营天下、户外资料网)持续更新运营策略,具备基础商业计划书撰写与营收模型构建能力
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
1. 活动执行与现场管理能力: 了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。
|
||||
2. 文旅行业理解能力: 具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。
|
||||
3. 新媒体平台运营能力: 具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。
|
||||
4. 智慧文旅应用能力: 了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。
|
||||
5. 服务体验优化和资源协同能力: 理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。
|
||||
6. 文化IP策划与品牌传播能力: 理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。
|
||||
7. AIGC工具使用能力: 了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。
|
||||
8. 商业视觉表达与工具应用能力: 了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。
|
||||
9. 产品营销基础: 具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。
|
||||
|
||||
# 三、个人评价
|
||||
|
||||
我是一名刚完成实习的大专毕业生,在露营地运营项目中担任助理角色,接触了从活动前期策划到现场执行、再到后期传播的全流程,对文旅活动的实际运作有了较为清晰的认识。在项目中,我能够主动承担任务、及时响应需求、配合团队完成细节工作。虽然经验尚浅,但我有较强的责任感与适应能力,愿意从基层做起,逐步积累经验,努力成长为一名综合型的运营人才。`
|
||||
},
|
||||
studentInfo: {
|
||||
project_experience: null,
|
||||
core_skills: [
|
||||
],
|
||||
compound_skills: [
|
||||
],
|
||||
personal_summary: ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"宠物店经营": [
|
||||
{
|
||||
position: "宠物店店长",
|
||||
level: "普通岗",
|
||||
content: {
|
||||
original: `# 对应岗位:宠物店店长
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
### (一)项目名称:某宠物生活馆经营改善项目
|
||||
|
||||
### (二)实习岗位:宠物店运营助理
|
||||
|
||||
### (三)实习时间:XXXX时间
|
||||
|
||||
### (四)实习单位:某某公司
|
||||
|
||||
### (五)岗位职责:
|
||||
|
||||
1. 基于「数据体检 + KPI 分解」制定月度营收、毛利、库存周转、复购率、NPS、预约率等目标,推动复购率翻倍提升,客户满意度显著上涨;
|
||||
2. 主导 SKU 优化与新品组合策略(如“洗护卡”“主粮卡”),提升客单价与商品毛利表现;
|
||||
3. 优化店铺动线与空间布局,提升客户等待体验与转化率,降低爽约率;
|
||||
4. 推行标准化服务SOP(如“洗前检查–过程打点–复核归档”),显著降低返工率并提升服务稳定性;
|
||||
5. 构建线上线下私域运营闭环,通过小程序预约、评价、积分管理等机制,提高复购频次;
|
||||
6. 联动社区、宠物医院及摄影资源,开展线下活动与社群运营,实现品牌引流与用户裂变;
|
||||
7. 引入安全库存预警与动态补货机制,控制缺货率与周转天数,保障销售节奏;
|
||||
8. 制定绩效激励体系,结合工时、复购、服务质量设立培训与星级激励机制,提升员工执行质量;
|
||||
9. 建立营养方案与回购跟踪机制,加强客户粘性并发展高毛利服务;
|
||||
10. 管理门店日常运营,包括招聘、排班、培训、安全合规、库存控制与陈列优化。
|
||||
|
||||
# 二、专业技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. 能规范进行库存盘点与补货计划制定,控制损耗并支持销售节奏;
|
||||
2. 擅长客户接待、会员开发及投诉处理,提升客户忠诚度与满意度;
|
||||
3. 熟悉店铺开闭店流程及环境卫生与设备维护,保障门店符合运营与安全标准;
|
||||
4. 具备宠物基础饲养与产品推荐能力,可为客户提供专业服务建议;
|
||||
5. 能协助促销执行与商品陈列优化,提高销售表现;
|
||||
6. 具备团队排班与任务协助能力,支持店员培训与协作氛围建设。
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。
|
||||
2. 服务体验优化和资源协同能力:理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。
|
||||
3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。
|
||||
4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。
|
||||
5. 商业视觉表达与工具应用能力:了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。
|
||||
6. 文化IP策划与品牌传播能力:理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。
|
||||
7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。
|
||||
8. 智慧文旅应用能力:了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。
|
||||
9. AIGC工具使用能力:了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。
|
||||
|
||||
# 三、个人总结
|
||||
|
||||
我是一名主修宠物医疗技术的大专毕业生,热爱动物护理和宠物行业运营。在“宠物生活馆经营改善项目”中,我从数据分析到实际运营改进全流程参与,包括SKU组合、布局优化、SOP机制与私域体系建设。实习期间我注重服务体验、运营数据与团队协作,推动业绩提升与客户满意度增长。未来希望在宠物零售与服务行业继续深耕,成为兼具专业知识与运营能力的店长型人才。`,
|
||||
modified: `# 对应岗位:宠物店店长
|
||||
|
||||
# 一、项目经历
|
||||
|
||||
### (一)项目名称:某宠物生活馆经营改善项目
|
||||
|
||||
### (二)实习岗位:宠物店运营助理
|
||||
|
||||
### (三)实习时间:XXXX时间
|
||||
|
||||
### (四)实习单位:某某公司
|
||||
|
||||
### (五)岗位职责:
|
||||
|
||||
1. 基于「数据体检 + KPI 分解」制定月度营收、毛利、库存周转、复购率、NPS、预约率等目标,推动复购率翻倍提升,客户满意度显著上涨;
|
||||
2. 主导 SKU 优化与新品组合策略(如“洗护卡”“主粮卡”),提升客单价与商品毛利表现;
|
||||
3. 优化店铺动线与空间布局,提升客户等待体验与转化率,降低爽约率;
|
||||
4. 推行标准化服务SOP(如“洗前检查–过程打点–复核归档”),显著降低返工率并提升服务稳定性;
|
||||
5. 构建线上线下私域运营闭环,通过小程序预约、评价、积分管理等机制,提高复购频次;
|
||||
6. 联动社区、宠物医院及摄影资源,开展线下活动与社群运营,实现品牌引流与用户裂变;
|
||||
7. 引入安全库存预警与动态补货机制,控制缺货率与周转天数,保障销售节奏;
|
||||
8. 制定绩效激励体系,结合工时、复购、服务质量设立培训与星级激励机制,提升员工执行质量;
|
||||
9. 建立营养方案与回购跟踪机制,加强客户粘性并发展高毛利服务;
|
||||
10. 管理门店日常运营,包括招聘、排班、培训、安全合规、库存控制与陈列优化。
|
||||
|
||||
# 二、专业技能
|
||||
|
||||
### (一)核心能力
|
||||
|
||||
1. 能规范进行库存盘点与补货计划制定,控制损耗并支持销售节奏;
|
||||
2. 擅长客户接待、会员开发及投诉处理,提升客户忠诚度与满意度;
|
||||
3. 熟悉店铺开闭店流程及环境卫生与设备维护,保障门店符合运营与安全标准;
|
||||
4. 具备宠物基础饲养与产品推荐能力,可为客户提供专业服务建议;
|
||||
5. 能协助促销执行与商品陈列优化,提高销售表现;
|
||||
6. 具备团队排班与任务协助能力,支持店员培训与协作氛围建设。
|
||||
|
||||
### (二)复合能力
|
||||
|
||||
1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。
|
||||
2. 服务体验优化和资源协同能力:理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。
|
||||
3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。
|
||||
4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。
|
||||
5. 商业视觉表达与工具应用能力:了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。
|
||||
6. 文化IP策划与品牌传播能力:理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。
|
||||
7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。
|
||||
8. 智慧文旅应用能力:了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。
|
||||
9. AIGC工具使用能力:了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。
|
||||
|
||||
# 三、个人总结
|
||||
|
||||
我是一名主修宠物医疗技术的大专毕业生,热爱动物护理和宠物行业运营。在“宠物生活馆经营改善项目”中,我从数据分析到实际运营改进全流程参与,包括SKU组合、布局优化、SOP机制与私域体系建设。实习期间我注重服务体验、运营数据与团队协作,推动业绩提升与客户满意度增长。未来希望在宠物零售与服务行业继续深耕,成为兼具专业知识与运营能力的店长型人才。`
|
||||
},
|
||||
studentInfo: {
|
||||
project_experience: {
|
||||
project_name: "某宠物生活馆经营改善项目",
|
||||
position: "宠物店运营助理",
|
||||
time_period: "XXXXXX",
|
||||
company: "XXXXXX",
|
||||
description: `基于「数据体检 + KPI 分解」制定月度营收、毛利、库存周转、复购率、NPS、预约率等目标,推动复购率翻倍提升,客户满意度显著上涨;
|
||||
主导 SKU 优化与新品组合策略(如“洗护卡”“主粮卡”),提升客单价与商品毛利表现;
|
||||
优化店铺动线与空间布局,提升客户等待体验与转化率,降低爽约率;
|
||||
推行标准化服务SOP(如“洗前检查–过程打点–复核归档”),显著降低返工率并提升服务稳定性;
|
||||
构建线上线下私域运营闭环,通过小程序预约、评价、积分管理等机制,提高复购频次;
|
||||
联动社区、宠物医院及摄影资源,开展线下活动与社群运营,实现品牌引流与用户裂变;
|
||||
引入安全库存预警与动态补货机制,控制缺货率与周转天数,保障销售节奏;
|
||||
制定绩效激励体系,结合工时、复购、服务质量设立培训与星级激励机制,提升员工执行质量;
|
||||
建立营养方案与回购跟踪机制,加强客户粘性并发展高毛利服务;
|
||||
管理门店日常运营,包括招聘、排班、培训、安全合规、库存控制与陈列优化。`
|
||||
},
|
||||
core_skills: [
|
||||
"能规范进行库存盘点与补货计划制定,控制损耗并支持销售节奏;",
|
||||
"擅长客户接待、会员开发及投诉处理,提升客户忠诚度与满意度;",
|
||||
"熟悉店铺开闭店流程及环境卫生与设备维护,保障门店符合运营与安全标准;",
|
||||
"具备宠物基础饲养与产品推荐能力,可为客户提供专业服务建议;",
|
||||
"能协助促销执行与商品陈列优化,提高销售表现;",
|
||||
"具备团队排班与任务协助能力,支持店员培训与协作氛围建设。",
|
||||
],
|
||||
compound_skills: [
|
||||
"产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。",
|
||||
"服务体验优化和资源协同能力:理解文旅服务的形象表达与情境化设计原则,掌握文旅项目中各类资源(如住宿、交通、商品)的调度逻辑与协同机制,具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。",
|
||||
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
|
||||
"新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。",
|
||||
"商业视觉表达与工具应用能力:了解平面设计、色彩搭配、字体表现与视觉规范的基础知识,能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
|
||||
"文化IP策划与品牌传播能力:理解本地文化IP的挖掘逻辑与数字化表达方式,具备参与品牌定位、跨界联动与差异化推广的初步经验。",
|
||||
"文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。",
|
||||
"智慧文旅应用能力:了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用,具备智慧场景运营的基础认知与设备使用能力。",
|
||||
"AIGC工具使用能力:了解AIGC内容生成逻辑,能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
|
||||
],
|
||||
personal_summary: "我是一名主修宠物医疗技术的大专毕业生,热爱动物护理和宠物行业运营。在“宠物生活馆经营改善项目”中,我从数据分析到实际运营改进全流程参与,包括SKU组合、布局优化、SOP机制与私域体系建设。实习期间我注重服务体验、运营数据与团队协作,推动业绩提升与客户满意度增长。未来希望在宠物零售与服务行业继续深耕,成为兼具专业知识与运营能力的店长型人才。"
|
||||
我是一名刚完成实习的大专毕业生,主修会展策划与管理,对活动执行与现场运营抱有浓厚兴趣。在"汽车品牌线下推广活动"项目中,我协助完成了从物料验收、供应链协调、现场流程控制到客户引导及UGC互动的多个环节。实习期间我表现细致且应变能力强,能主动配合团队推进流程并快速响应突发情况。未来希望在文旅或品牌线下推广领域不断实践成长,成为一名执行力出色、善于沟通与复盘的项目执行专家。`
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -5,549 +5,25 @@ import { createLinePathForCurve } from "@/utils/LinePathGenerator";
|
||||
import "./index.css";
|
||||
|
||||
const CareerTreePage = () => {
|
||||
const navigate = useNavigate();
|
||||
const { careerTree } = mockData;
|
||||
const [centerSections, setCenterSections] = useState(
|
||||
careerTree.centerSections
|
||||
);
|
||||
const [checkedCourse, setCheckedCourse] = useState(null);
|
||||
const [checkedCourseItem, setCheckedCourseItem] = useState(null);
|
||||
const [resumeResources, setResumeResources] = useState([]);
|
||||
const [projectResources, setProjectResources] = useState([]);
|
||||
const [canvas, setCanvas] = useState({
|
||||
width: 1650,
|
||||
height: 800,
|
||||
lines: [],
|
||||
});
|
||||
const [isTallScreen, setIsTallScreen] = useState(false);
|
||||
const [selectedMenuItem, setSelectedMenuItem] = useState("option1");
|
||||
|
||||
const myCanvasRef = useRef(null);
|
||||
const leftPanelRef = useRef(null);
|
||||
const rightPanelRef = useRef(null);
|
||||
|
||||
// Mock菜单数据
|
||||
const menuOptions = [
|
||||
{ id: "option1", label: "垂直方向一" },
|
||||
{ id: "option2", label: "垂直方向二" },
|
||||
{ id: "option3", label: "垂直方向三" },
|
||||
{ id: "option4", label: "垂直方向四" },
|
||||
{ id: "option5", label: "垂直方向五" },
|
||||
{ id: "option6", label: "垂直方向六" },
|
||||
];
|
||||
useEffect(() => {
|
||||
// 初始化数据
|
||||
initData();
|
||||
checkScreenHeight();
|
||||
|
||||
const handleResize = () => {
|
||||
checkScreenHeight();
|
||||
updateCanvas();
|
||||
};
|
||||
|
||||
window.addEventListener("resize", handleResize);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener("resize", handleResize);
|
||||
};
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
updateCanvas();
|
||||
}, [checkedCourse, checkedCourseItem, resumeResources, projectResources]);
|
||||
|
||||
const initData = () => {
|
||||
if (centerSections.length > 0) {
|
||||
// 默认选中第一个课程类别
|
||||
const firstSection = centerSections[0];
|
||||
setCheckedCourse(firstSection);
|
||||
if (firstSection.child && firstSection.child.length > 0) {
|
||||
const firstChild = firstSection.child[0];
|
||||
setCheckedCourseItem(firstChild);
|
||||
|
||||
// 设置简历资源(左栏)
|
||||
if (firstChild.resume_resources) {
|
||||
const resumes = firstChild.resume_resources
|
||||
.split("\n")
|
||||
.map((item, index) => ({
|
||||
id: index + 1,
|
||||
name: item.trim(),
|
||||
type: "resume",
|
||||
}));
|
||||
setResumeResources(resumes);
|
||||
}
|
||||
|
||||
// 设置项目资源(右栏)
|
||||
if (firstChild.portfolio_resources) {
|
||||
const projects = firstChild.portfolio_resources
|
||||
.split("\n")
|
||||
.map((item, index) => ({
|
||||
id: index + 1,
|
||||
name: item.trim(),
|
||||
type: "project",
|
||||
}));
|
||||
setProjectResources(projects);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const checkScreenHeight = () => {
|
||||
setIsTallScreen(window.innerHeight > 1080);
|
||||
};
|
||||
|
||||
const toggleCourse = (courseObj) => {
|
||||
setCenterSections((sections) =>
|
||||
sections.map((section) =>
|
||||
section.id === courseObj.id
|
||||
? { ...section, expanded: !section.expanded }
|
||||
: section
|
||||
)
|
||||
);
|
||||
|
||||
if (courseObj.title !== checkedCourse?.title) {
|
||||
updateCanvas();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!courseObj.expanded) {
|
||||
setResumeResources([]);
|
||||
setProjectResources([]);
|
||||
setCanvas((prev) => ({ ...prev, lines: [] }));
|
||||
}
|
||||
};
|
||||
|
||||
const checkCourse = (courseObj, itemName) => {
|
||||
setCheckedCourse(courseObj);
|
||||
setCheckedCourseItem(itemName);
|
||||
// 设置简历资源(左栏)
|
||||
if (itemName.resume_resources) {
|
||||
const resumes = itemName.resume_resources
|
||||
.split("\n")
|
||||
.map((item, index) => ({
|
||||
id: index + 1,
|
||||
name: item.trim(),
|
||||
type: "resume",
|
||||
}));
|
||||
setResumeResources(resumes);
|
||||
} else {
|
||||
setResumeResources([]);
|
||||
}
|
||||
|
||||
// 设置项目资源(右栏)
|
||||
if (itemName.portfolio_resources) {
|
||||
const projects = itemName.portfolio_resources
|
||||
.split("\n")
|
||||
.map((item, index) => ({
|
||||
id: index + 1,
|
||||
name: item.trim(),
|
||||
type: "project",
|
||||
}));
|
||||
setProjectResources(projects);
|
||||
} else {
|
||||
setProjectResources([]);
|
||||
}
|
||||
|
||||
// 延迟更新画布以等待DOM更新
|
||||
setTimeout(() => {
|
||||
updateCanvas();
|
||||
adjustPanelPositions();
|
||||
}, 100);
|
||||
};
|
||||
|
||||
const adjustPanelPositions = () => {
|
||||
const centerEl = document.querySelector(
|
||||
'.checked-course-item[data-itype="center-item"]'
|
||||
);
|
||||
if (!centerEl || !myCanvasRef.current) return;
|
||||
|
||||
const containerEl = myCanvasRef.current.parentElement;
|
||||
const containerRect = containerEl.getBoundingClientRect();
|
||||
const elementRect = centerEl.getBoundingClientRect();
|
||||
const centerY =
|
||||
elementRect.top - containerRect.top + elementRect.height / 2;
|
||||
|
||||
// 调整左右面板位置
|
||||
if (leftPanelRef.current) {
|
||||
const leftPanelHeight = leftPanelRef.current.offsetHeight;
|
||||
leftPanelRef.current.style.top = `${Math.max(
|
||||
0,
|
||||
centerY - leftPanelHeight / 2
|
||||
)}px`;
|
||||
}
|
||||
|
||||
if (rightPanelRef.current) {
|
||||
const rightPanelHeight = rightPanelRef.current.offsetHeight;
|
||||
rightPanelRef.current.style.top = `${Math.max(
|
||||
0,
|
||||
centerY - rightPanelHeight / 2
|
||||
)}px`;
|
||||
}
|
||||
};
|
||||
|
||||
const updateCanvas = () => {
|
||||
setTimeout(() => {
|
||||
updateCanvasNow();
|
||||
}, 50);
|
||||
};
|
||||
|
||||
const updateCanvasNow = () => {
|
||||
const centerEl = document.querySelector(
|
||||
'.checked-course-item[data-itype="center-item"]'
|
||||
);
|
||||
if (!centerEl || !myCanvasRef.current) return;
|
||||
|
||||
const containerEl = myCanvasRef.current.parentElement;
|
||||
const containerRect = containerEl.getBoundingClientRect();
|
||||
|
||||
// 更新画布尺寸
|
||||
setCanvas((prev) => ({
|
||||
...prev,
|
||||
width: containerRect.width,
|
||||
height: containerRect.height,
|
||||
}));
|
||||
|
||||
// 获取中心元素的连接点
|
||||
const centerRect = centerEl.getBoundingClientRect();
|
||||
const centerX = {
|
||||
left: centerRect.left - containerRect.left,
|
||||
right: centerRect.right - containerRect.left,
|
||||
};
|
||||
const centerY = centerRect.top - containerRect.top + centerRect.height / 2;
|
||||
const lines = [];
|
||||
|
||||
// 处理左侧连接线
|
||||
document.querySelectorAll('[data-itype="left-item"]').forEach((item) => {
|
||||
const rect = item.getBoundingClientRect();
|
||||
const x = rect.right - containerRect.left;
|
||||
const y = rect.top - containerRect.top + rect.height / 2;
|
||||
lines.push({
|
||||
id: `left-${lines.length}`,
|
||||
pathData: createLinePathForCurve(x, y, centerX.left, centerY),
|
||||
});
|
||||
});
|
||||
|
||||
// 处理右侧连接线
|
||||
document.querySelectorAll('[data-itype="right-item"]').forEach((item) => {
|
||||
const rect = item.getBoundingClientRect();
|
||||
const x = rect.left - containerRect.left;
|
||||
const y = rect.top - containerRect.top + rect.height / 2;
|
||||
lines.push({
|
||||
id: `right-${lines.length}`,
|
||||
pathData: createLinePathForCurve(x, y, centerX.right, centerY, true),
|
||||
});
|
||||
});
|
||||
|
||||
setCanvas((prev) => ({ ...prev, lines }));
|
||||
};
|
||||
|
||||
// 处理简历资源点击
|
||||
const handleResumeClick = () => {
|
||||
// 跳转到简历和面试页面
|
||||
navigate("/resume-interview");
|
||||
};
|
||||
|
||||
// 处理项目资源点击
|
||||
const handleProjectClick = () => {
|
||||
// 跳转到项目库页面
|
||||
navigate("/project-library");
|
||||
};
|
||||
|
||||
// 处理菜单选择
|
||||
const handleMenuItemClick = (menuItem) => {
|
||||
setSelectedMenuItem(menuItem.id);
|
||||
// 这里可以添加切换内容的逻辑,但目前只需要UI交互
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={`career-tree-page ${isTallScreen ? "tall-screen" : ""}`}>
|
||||
<div className="top-content-wrapper">
|
||||
<div className="top-content">
|
||||
<div className="relative canvas-container">
|
||||
{/* 顶部菜单栏 */}
|
||||
<div className="top-menu-container">
|
||||
<div className="menu-panel">
|
||||
{menuOptions.map((menuItem) => (
|
||||
<div
|
||||
key={menuItem.id}
|
||||
className={`menu-item ${
|
||||
selectedMenuItem === menuItem.id ? "selected" : ""
|
||||
}`}
|
||||
onClick={() => handleMenuItemClick(menuItem)}
|
||||
>
|
||||
{menuItem.label}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div className="tree-layout">
|
||||
{/* 左栏 - 简历资源 */}
|
||||
<div className="left-column">
|
||||
{resumeResources.length > 0 && (
|
||||
<div ref={leftPanelRef} className="left-panel">
|
||||
<div className="panel-header">
|
||||
<h3>简历资源</h3>
|
||||
</div>
|
||||
{resumeResources.map((resume, index) => (
|
||||
<div
|
||||
key={`resume-${resume.id}-${index}`}
|
||||
data-itype="left-item"
|
||||
className="left-item"
|
||||
>
|
||||
<div
|
||||
className="panel-item clickable"
|
||||
onClick={() => handleResumeClick()}
|
||||
>
|
||||
<div className="resource-info">
|
||||
<svg
|
||||
className="resource-icon"
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
<polyline
|
||||
points="14,2 14,8 20,8"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
</svg>
|
||||
<span className="resource-name">{resume.name}</span>
|
||||
</div>
|
||||
<svg
|
||||
className="arrow-icon"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="m9 18 6-6-6-6"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* 中栏 - 课程分类 */}
|
||||
<div className="center-column">
|
||||
<div className="center-panel">
|
||||
{centerSections.map((section, index) => (
|
||||
<div key={index} className="center-section">
|
||||
<div
|
||||
className={`section-header ${
|
||||
checkedCourse && section.title === checkedCourse.title
|
||||
? "checked-course"
|
||||
: "course"
|
||||
}`}
|
||||
>
|
||||
<div className="section-title-area">
|
||||
<div className="section-icon">
|
||||
{section.title === "产业认知课" && (
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M2.92243 2.68367C3.18736 2.49622 3.52678 2.449 3.83282 2.55702L12 5.43955L20.1672 2.55702C20.4732 2.449 20.8126 2.49622 21.0776 2.68367C21.3425 2.87111 21.5 3.17547 21.5 3.50001V17.5C21.5 17.924 21.2326 18.3019 20.8328 18.443L12.3328 21.443C12.1175 21.519 11.8825 21.519 11.6672 21.443L3.16718 18.443C2.76737 18.3019 2.5 17.924 2.5 17.5V3.50001C2.5 3.17547 2.65749 2.87111 2.92243 2.68367Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
{section.title === "产业技能课" && (
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M2.5 6.5C2.5 4.29086 4.29086 2.5 6.5 2.5C8.70914 2.5 10.5 4.29086 10.5 6.5V8.5H13.5V6.5C13.5 4.29086 15.2909 2.5 17.5 2.5C19.7091 2.5 21.5 4.29086 21.5 6.5C21.5 8.70914 19.7091 10.5 17.5 10.5H15.5V13.5H17.5C19.7091 13.5 21.5 15.2909 21.5 17.5C21.5 19.7091 19.7091 21.5 17.5 21.5C15.2909 21.5 13.5 19.7091 13.5 17.5V15.5H10.5V17.5C10.5 19.7091 8.70914 21.5 6.5 21.5C4.29086 21.5 2.5 19.7091 2.5 17.5C2.5 15.2909 4.29086 13.5 6.5 13.5H8.5V10.5H6.5C4.29086 10.5 2.5 8.70914 2.5 6.5Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
{section.title !== "产业认知课" &&
|
||||
section.title !== "产业技能课" && (
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M3.5 4C3.5 2.89543 4.39543 2 5.5 2H16.4142L20.5 6.08579V20C20.5 21.1046 19.6046 22 18.5 22H5.5C4.39543 22 3.5 21.1046 3.5 20V4Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
</div>
|
||||
<span className="section-title">{section.title}</span>
|
||||
</div>
|
||||
<svg
|
||||
className={`expand-icon ${
|
||||
section.expanded ? "expanded" : ""
|
||||
}`}
|
||||
width="25"
|
||||
height="25"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
toggleCourse(section);
|
||||
}}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
|
||||
clipRule="evenodd"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
{section.expanded && (
|
||||
<div className="section-content">
|
||||
{section.child
|
||||
.sort((a, b) => a.unit_id - b.unit_id)
|
||||
.map((item, itemIndex) => (
|
||||
<div
|
||||
key={`${item.unit_id}-${itemIndex}`}
|
||||
data-itype="center-item"
|
||||
data-unit-id={item.unit_id}
|
||||
className={`center-item ${
|
||||
checkedCourseItem === item &&
|
||||
checkedCourse &&
|
||||
section.title === checkedCourse.title
|
||||
? "checked-course-item"
|
||||
: ""
|
||||
}`}
|
||||
onClick={() => checkCourse(section, item)}
|
||||
>
|
||||
<div className="item-content">
|
||||
{item.unit_name}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 右栏 - 项目资源 */}
|
||||
<div className="right-column">
|
||||
{projectResources.length > 0 && (
|
||||
<div ref={rightPanelRef} className="right-panel">
|
||||
<div className="panel-header">
|
||||
<h3>项目资源</h3>
|
||||
</div>
|
||||
{projectResources.map((project, index) => (
|
||||
<div
|
||||
key={`project-${project.id}-${index}`}
|
||||
data-itype="right-item"
|
||||
className="right-item"
|
||||
>
|
||||
<div
|
||||
className="panel-item clickable"
|
||||
onClick={() => handleProjectClick()}
|
||||
>
|
||||
<div className="resource-info">
|
||||
<svg
|
||||
className="resource-icon"
|
||||
width="20"
|
||||
height="20"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="M12 2L2 7l10 5 10-5-10-5z"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
<path
|
||||
d="m2 17 10 5 10-5"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
<path
|
||||
d="m2 12 10 5 10-5"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
</svg>
|
||||
<span className="resource-name">
|
||||
{project.name}
|
||||
</span>
|
||||
</div>
|
||||
<svg
|
||||
className="arrow-icon"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
>
|
||||
<path
|
||||
d="m9 18 6-6-6-6"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
fill="none"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* SVG 连接线 */}
|
||||
<svg
|
||||
ref={myCanvasRef}
|
||||
className="connection-canvas"
|
||||
viewBox={`0 0 ${canvas.width} ${canvas.height}`}
|
||||
<div style={{
|
||||
width: '100%',
|
||||
height: '100vh',
|
||||
padding: '0',
|
||||
margin: '0',
|
||||
overflow: 'hidden'
|
||||
}}>
|
||||
<iframe
|
||||
src="http://127.0.0.1:5173/"
|
||||
style={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
overflow: "visible",
|
||||
pointerEvents: "none",
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
border: 'none'
|
||||
}}
|
||||
fill="none"
|
||||
>
|
||||
{canvas.lines.map((line) => (
|
||||
<g key={line.id}>
|
||||
<path d={line.pathData} className="connection-line" />
|
||||
</g>
|
||||
))}
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
title="就业管家知识树"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -70,6 +70,57 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* 禁用状态的新建对话按钮 */
|
||||
.new-conversation-btn.disabled {
|
||||
cursor: not-allowed !important;
|
||||
opacity: 0.6;
|
||||
background-color: #e5e7eb !important;
|
||||
}
|
||||
|
||||
.new-conversation-btn.disabled:hover {
|
||||
transform: none !important;
|
||||
box-shadow: none !important;
|
||||
background-color: #e5e7eb !important;
|
||||
}
|
||||
|
||||
/* hover提示容器 */
|
||||
.new-conversation-btn-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* hover提示气泡 */
|
||||
.new-conversation-btn-wrapper:hover .hover-tooltip {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.hover-tooltip {
|
||||
position: absolute;
|
||||
top: -35px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
padding: 6px 12px;
|
||||
background-color: rgba(0, 0, 0, 0.85);
|
||||
color: #fff;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
white-space: nowrap;
|
||||
display: none;
|
||||
z-index: 1000;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* 小三角箭头 */
|
||||
.hover-tooltip::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border: 5px solid transparent;
|
||||
border-top-color: rgba(0, 0, 0, 0.85);
|
||||
}
|
||||
|
||||
/* 对话分组 */
|
||||
.conversation-groups {
|
||||
flex: 1;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import React, { useState, useEffect, useRef } from "react";
|
||||
import { expertQAData, expertInfo } from "@/data/expertQAData";
|
||||
import "./index.css";
|
||||
|
||||
const ExpertSupportPage = () => {
|
||||
@@ -12,122 +13,43 @@ const ExpertSupportPage = () => {
|
||||
|
||||
// 用于跟踪最后活动时间
|
||||
|
||||
// 初始对话数据
|
||||
// 初始对话数据 - 整合文旅产业问答内容
|
||||
const [conversationGroups, setConversationGroups] = useState({
|
||||
今天: [
|
||||
{
|
||||
id: 1,
|
||||
title: "TypeScript类型定义疑问",
|
||||
lastMessage: "我需要了解更多关于泛型的使用",
|
||||
time: "16:45",
|
||||
status: "进行中",
|
||||
statusType: "in-progress",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 15 * 60 * 1000, // 15分钟前(模拟超时)
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "数据库设计方案讨论",
|
||||
lastMessage: "当前的表结构设计是否合理?",
|
||||
time: "15:30",
|
||||
status: "进行中",
|
||||
statusType: "in-progress",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 5 * 60 * 1000, // 5分钟前
|
||||
},
|
||||
],
|
||||
今天: [], // 清空今天板块的对话记录
|
||||
"7天内": [
|
||||
{
|
||||
id: 3,
|
||||
title: "前端开发环境配置问题",
|
||||
lastMessage: "问题已解决,感谢专家指导",
|
||||
time: "01-07",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 24 * 60 * 60 * 1000,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
title: "React组件性能优化咨询",
|
||||
lastMessage: "优化方案已实施,性能提升明显",
|
||||
time: "01-06",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 2 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
title: "Vue3升级迁移指导",
|
||||
lastMessage: "迁移过程中遇到的兼容性问题",
|
||||
time: "01-05",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 3 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
title: "Node.js性能调优建议",
|
||||
lastMessage: "内存泄漏排查和解决方案",
|
||||
time: "01-04",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 4 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
// 导入文旅产业问答数据中的最近记录
|
||||
...expertQAData.slice(0, 3).map(qa => ({
|
||||
...qa,
|
||||
lastActivityTime: Date.now() - (Math.floor(Math.random() * 6) + 1) * 24 * 60 * 60 * 1000
|
||||
})),
|
||||
{
|
||||
id: 7,
|
||||
title: "Git分支管理策略",
|
||||
lastMessage: "多人协作开发的最佳实践",
|
||||
title: "文创产品开发咨询",
|
||||
lastMessage: "如何设计有文化内涵的旅游纪念品",
|
||||
time: "01-03",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 5 * 24 * 60 * 60 * 1000,
|
||||
messages: []
|
||||
},
|
||||
],
|
||||
"30天内": [
|
||||
{
|
||||
id: 8,
|
||||
title: "微服务架构设计咨询",
|
||||
lastMessage: "希望专家能提供详细的实施方案",
|
||||
time: "12-20",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 18 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
title: "Docker容器化部署问题",
|
||||
lastMessage: "生产环境部署的最佳配置",
|
||||
time: "12-18",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 20 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
{
|
||||
id: 10,
|
||||
title: "Redis缓存策略优化",
|
||||
lastMessage: "缓存穿透和雪崩的防护措施",
|
||||
time: "12-15",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 23 * 24 * 60 * 60 * 1000,
|
||||
},
|
||||
// 导入文旅产业问答数据中的其余记录
|
||||
...expertQAData.slice(3, 6).map(qa => ({
|
||||
...qa,
|
||||
lastActivityTime: Date.now() - (Math.floor(Math.random() * 10) + 15) * 24 * 60 * 60 * 1000
|
||||
})),
|
||||
{
|
||||
id: 11,
|
||||
title: "MySQL索引优化指导",
|
||||
lastMessage: "慢查询分析和索引设计建议",
|
||||
title: "智慧旅游技术应用",
|
||||
lastMessage: "如何利用数字技术提升游客体验",
|
||||
time: "12-12",
|
||||
status: "已解决",
|
||||
statusType: "resolved",
|
||||
hasInactivityAlert: false,
|
||||
lastActivityTime: Date.now() - 26 * 24 * 60 * 60 * 1000,
|
||||
messages: []
|
||||
},
|
||||
],
|
||||
});
|
||||
@@ -221,7 +143,12 @@ const ExpertSupportPage = () => {
|
||||
setShowResolutionModal(conversation);
|
||||
} else {
|
||||
setSelectedConversation(conversation);
|
||||
// 如果对话有预设的消息记录,使用它们;否则使用默认消息
|
||||
if (conversation.messages && conversation.messages.length > 0) {
|
||||
setMessages(conversation.messages);
|
||||
} else {
|
||||
setMessages(conversationMessages);
|
||||
}
|
||||
setIsNewConversation(false);
|
||||
}
|
||||
};
|
||||
@@ -276,7 +203,12 @@ const ExpertSupportPage = () => {
|
||||
});
|
||||
|
||||
setSelectedConversation(conversation);
|
||||
// 如果对话有预设的消息记录,使用它们;否则使用默认消息
|
||||
if (conversation.messages && conversation.messages.length > 0) {
|
||||
setMessages(conversation.messages);
|
||||
} else {
|
||||
setMessages(conversationMessages);
|
||||
}
|
||||
setShowResolutionModal(null);
|
||||
setIsNewConversation(false);
|
||||
};
|
||||
@@ -384,13 +316,37 @@ const ExpertSupportPage = () => {
|
||||
<div className="conversation-sidebar">
|
||||
<div className="sidebar-header">
|
||||
<h2 className="expert-support-sidebar-title">对话记录</h2>
|
||||
<div className="new-conversation-btn-wrapper" style={{ position: 'relative', display: 'inline-block' }}>
|
||||
<button
|
||||
className="new-conversation-btn"
|
||||
onClick={createNewConversation}
|
||||
className="new-conversation-btn disabled"
|
||||
onClick={(e) => e.preventDefault()}
|
||||
disabled
|
||||
style={{
|
||||
cursor: 'not-allowed',
|
||||
opacity: 0.6,
|
||||
backgroundColor: '#f5f5f5'
|
||||
}}
|
||||
>
|
||||
<span className="btn-icon">💬</span>
|
||||
<span className="btn-text">新建对话</span>
|
||||
</button>
|
||||
<div className="hover-tooltip" style={{
|
||||
position: 'absolute',
|
||||
top: '-35px',
|
||||
left: '50%',
|
||||
transform: 'translateX(-50%)',
|
||||
padding: '6px 12px',
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.8)',
|
||||
color: '#fff',
|
||||
borderRadius: '4px',
|
||||
fontSize: '12px',
|
||||
whiteSpace: 'nowrap',
|
||||
display: 'none',
|
||||
zIndex: 1000
|
||||
}}>
|
||||
非学员无权限
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 按时间分组的对话列表 */}
|
||||
|
||||
@@ -151,7 +151,10 @@ const ProjectLibrary = () => {
|
||||
title: "四川大熊猫扇子文创产品设计",
|
||||
description: "以\"熊猫·蜀韵\"为核心主题,聚焦\"四川文化的当代表达\",将\"大熊猫、蜀绣、传统折扇\"三大符号融合为兼具文化意味与日常实用的文创产品。",
|
||||
images: [
|
||||
{ url: "/images/project-library/四川大熊猫扇子设计图.jpeg", title: "熊猫扇子效果图" }
|
||||
{ url: "/images/project-library/四川大熊猫扇子设计图.jpeg", title: "熊猫扇子效果图" },
|
||||
{ url: "/images/project-library/四川大熊猫扇子项目效果图2.jpg", title: "熊猫扇子展开效果" },
|
||||
{ url: "/images/project-library/四川大熊猫扇子项目效果图3.jpg", title: "熊猫扇子细节展示" },
|
||||
{ url: "/images/project-library/四川大熊猫扇子项目效果图4.jpg", title: "熊猫扇子包装设计" }
|
||||
],
|
||||
sections: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user