chore: 迁移项目到新仓库并整理代码

- 更新多个组件的功能优化
- 整理简历映射数据
- 优化视频播放和面试模拟相关组件
- 更新就业策略和公司职位页面

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KQL
2025-10-24 18:42:25 +08:00
parent 1b964b3886
commit 63f8cf2e7d
43 changed files with 3937 additions and 792 deletions

View File

@@ -69,9 +69,12 @@
"Bash(for position in \"民宿管家\" \"民宿客房管家\" \"民宿运营专员\" \"露营地运营专员\" \"新媒体运营专员\" \"文创产品设计师\" \"文创产品策划师\" \"文创产品设计师助理\" \"品牌策划运营专员\" \"品牌公关\" \"品牌推广专员\" \"ip运营\" \"ip运营总监助理\" \"品牌公关管培生\")",
"Bash(git pull:*)",
"Bash(git stash:*)",
"Bash(npx stylelint:*)"
"Bash(npx stylelint:*)",
"Bash(N8N_API_URL=\"http://localhost:5678/api/v1\" N8N_API_KEY=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlMDkxYTdiZS05YWEzLTQzOGQtOWU5NS0zN2U0MTYwMWNiYzUiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzYwNDk4MjQzfQ.wuOjfSIh_eX78UwM6zrhOg5i7WfGgbV3sEfGDBfw2wM\" timeout 2 node:*)",
"mcp__serena__think_about_collected_information",
"Bash(cp:*)"
],
"deny": [],
"ask": []
}
}
}

View File

@@ -2,12 +2,12 @@
"二次元周边选品专员": {
"projectExperience": "(一)项目名称:谷子店开店与经营管理 \n \n实习岗位二次元选品助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 结合 Z 世代与高校生群体喜好甄选二次元贴纸、徽章、手办等周边商品构建符合价格段¥9-39、¥59-199、¥299+的SKU结构并执行上架流程 \n2. 基于“价格带×IP热度×材质工艺”策略小规模试水后循环补货与限量发售优化选品组合并维护毛利目标55%±5% \n3. 协助供应商评估与开拓工作核查IP授权、产品质量与供应稳定性确保合规与供货畅通 \n4. 跟踪热销商品的动销与库存状况对滞销SKU提出补货或清退建议支持风险控制与销售复盘 \n5. 参与盲盒选品与运营规范管理,核实概率信息与文案公开情况,确保合规风险可控; \n6. 梳理门店与社群如“晒谷仓”等平台反馈推荐互动性强的产品款式推动用户共创与UGC内容积累 \n7. 确保线上线下渠道货品一致性,支持小程序与实体货架的协同运营; \n8. 参与主题活动选品,如“上映联动款”,协调视觉团队准备陈列样品与营销素材; \n9. 监控用户反馈、评价与复购倾向为后续IP选择、续订或新品布局提供分析依据。",
"skills": "业技能 \n \n核心能力 \n \n1. 具备市场洞察与用户画像分析能力,能够基于渠道数据和用户偏好制定品牌调性选品方案; \n2. 热爱二次元文化熟知主流IP趋势具备敏锐的选品嗅觉 \n3. 能独立规划选品流程,从新品筛选到上架执行均能参与; \n4. 擅长与供应链或样品提供方沟通对接,推动产品上架与授权检查; \n5. 能洞察消费趋势,预测二次元用户喜好并捕捉潜在爆款; \n6. 善于数据分析与销售反馈处理,能指导选品优化与风险控制。 \n \n复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n3. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n4. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n5. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n6. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n7. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n8. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "人总结 \n \n我是一名刚毕业的大专生主修市场营销对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
"personalSummary": "人总结 \n \n我是一名刚毕业的大专生主修旅游管理对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
},
"二次元周边店店员": {
"projectExperience": "(一)项目名称:谷子店开店与经营管理 \n \n实习岗位二次元周边店店员 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 执行门店日常营业,包括货品陈列、库存管理与收银操作,遵循终端零售合规流程; \n2. 主动迎接顾客提供IP正版与限定商品推荐营造“看—玩—换—晒”互动购物体验 \n3. 协助设置主题陈列区域如IP墙、互动台并依据视觉布局原则提升顾客停留与成交率 \n4. 配合店长管理SKU结构与补货节奏参与畅销商品补货与滞销商品清理 \n5. 引导顾客扫码进会员体系,推动小程序订阅与会员复购、推荐机制; \n6. 协助策划与执行店内活动如互动挑战、签售会、Coser现场维护现场秩序与氛围 \n7. 使用POS系统处理交易、退款与会员优惠完成每日收银对账与账目整理 \n8. 处理客户咨询与纠纷(如未成年人限购、盲盒说明、退换货等),协助工单处理与记录; \n9. 向店长反馈运营观察(如用户偏好、库存变化、视觉反馈),协助优化陈列与运营策略; \n10. 保持店铺整洁、有序,维护展示标准与顾客安全通行,确保店面环境佳。",
"skills": "业技能 \n \n核心能力 \n \n1. 熟悉二次元周边产品(手办、抱枕、挂件等),具有相关商品知识与陈列经验; \n2. 具备良好服务意识与亲和力,能够营造互动式消费体验; \n3. 熟练操作POS系统能处理交易、退换货及会员服务流程 \n4. 有较强商品陈列与库存管理能力,支持视觉营销与补货节奏控制; \n5. 能参与并协助店内活动执行与互动引导,提高顾客参与度; \n6. 善于处理客户问题与投诉,具备冷静应对场景与记录问题的能力; \n7. 能在快节奏零售环境下多任务处理,如迎客、收银、补货、环境维护等; \n8. 具备良好沟通与团队配合意识,能够向管理层有效反馈运营细节; \n9. 热爱动漫文化,亲近“二次元”,能快速与目标群体形成情感连接。 \n \n复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "人总结 \n \n我是一名热爱二次元文化并刚完成大专实习的市场营销专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
"personalSummary": "人总结 \n \n我是一名热爱二次元文化并刚完成大专实习的旅游管理专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
},
"民宿管家": {
"projectExperience": "项目名称舟山某民宿180天提升入住率项目 \n \n实习岗位民宿管家 \n \n实习单位某某公司 \n \n实习时间XXXX时间 \n \n岗位职责 \n \n1. 优化客房入住体验:在管家团队指导下,参与用户需求调研问卷的推送与回收,整理用户反馈用于改进房型布局与服务指引;协助日常巡查问题房型并跟进用户评价闭环处理工作。 \n2. 内容创作运营:配合完成民宿短视频和图文笔记内容的拍摄辅助任务,如布景准备、道具协调与基础拍摄工作,协助完成发布前的初审与平台上传操作。 \n3. OTA平台运营根据每日房态排查安排协助整理各OTA平台的价格、库存及折扣信息配合完成错价核查与库存同步提升平台展示效率。 \n4. 会员社群运营:配合完成新会员资料录入与分级管理任务,协助建立用户社群、发布活动通知,并在直播活动中协助进行流程安排与现场互动支持。 \n5. 数据处理在团队指导下协助收集入住率、用户评分与内容点击等运营数据并参与每日BI可视化看板的整理与发布辅助完成月度数据初步分析。",
@@ -112,27 +112,27 @@
"会展策划师": {
"projectExperience": "项目名称2024年深圳国际家具展策划项目 \n \n实习岗位会展策划师助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 协调制定“设计×商业”主题体系及空间动线布局方案保障714号馆的内容叙事与观展体验顺畅 \n2. 统筹“五件套”视觉资产主KV、票证样式、导视、大屏及宣传素材设计与执行保持品牌视觉一致性 \n3. 制定展商结构与招商节奏策略(头部、腰部、创新类别),参与签约计划及展位布局方案; \n4. 设计观众预报名与现场分流机制与人流仿真方案,优化观展动线与高峰疏导; \n5. 全面协助现场运营组织,包括安检引导、播报提醒、志愿者调配与突发事件应对,维持现场秩序; \n6. 指导展后图文短视频传播、媒体稿件撰写及CRM买家回访并参与复盘总结与买家转化闭环设计 \n7. 从项目主题到展后传播落实,协助统筹整体流程节奏与内容节点控制; \n8. 支持预算管控、供应商协调与团队资源整合,确保设计方案与执行节奏匹配; \n9. 开展市场调研与竞品分析,助力展会主题契合行业趋势及受众需求; \n10. 编写宣传文案与物料说明,确保传播语言一致、精准。",
"skills": "业技能 \n \n核心能力 \n \n1. 能统筹资源(场地、视觉、展商、物料等)并确保主题方案精准落地; \n2. 擅长视觉资产整合与品牌表达,保证统一性与传播效果; \n3. 具备观众动线设计与人流管理意识,优化参观体验; \n4. 熟悉现场流程执行与秩序维护,能快速响应突发事件; \n5. 能协助撰写活动宣传与媒体文案,实现传播闭环; \n6. 能配合预算计划与供应商管理,支持活动执行节拍控制; \n7. 擅于活动复盘与买家跟进,推动效果最大化; \n8. 具备市场与竞品分析基础,支持方案精准定位; \n9. 具备跨职能协作意识,与客户、设计、供应、媒体多方协同配合。 \n \n复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "人总结 \n \n我是一名主修市场营销的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
"personalSummary": "人总结 \n \n我是一名主修旅游管理的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
},
"会展执行助理": {
"projectExperience": "项目名称2024年深圳国际家具展策划项目 \n \n实习岗位会展执行助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 协助布置展会“五件套”物料包含主KV、票证样式、大屏模板、导视牌、社媒素材确保会展视觉一致性与质量 \n2. 跟进招商节奏与展位对接如90天锁定、60天签约、30天补位协调样品到馆与搭建进度 \n3. 协助观众入场组织与流线引导,分流预登记与现场登记流程,维护入口秩序; \n4. 配合场馆动线模拟与容量控制,协助布置主回路与支线动线示意,确保动线畅通; \n5. 支持现场运营与安全管控,如入口安检、证件核验、隔离引导、应急演练执行; \n6. 协助撤展安排与交通流线控制,指引搬运人员并协调车辆流线,保障现场秩序; \n7. 展后协助发布图文与短视频内容整理意向客户线索导入CRM并协助生成后续推进清单 \n8. 参与跨部门对接,包括与展商、搭建商、主办方、媒体及志愿者等沟通联络; \n9. 完成活动日志、会议记录及简报撰写,确保信息及时反馈与执行闭环。",
"skills": "业技能 \n \n核心能力 \n \n1. 能协助统筹现场布场与视觉布置工作,保障物料展示与信息一致性; \n2. 熟悉展商对接及招商进度管理流程,能协助完成台账维护与多方协调; \n3. 具备观众入场和动线引导执行支持能力,配合流程设计与秩序维护; \n4. 能协助策划撤展与交通控制方案,支持现场流线与进出秩序管控; \n5. 具备现场客户导入与内容发布能力,能够协助快速整理线索与社媒传播支持; \n6. 善于跨部门沟通协作,可协助协调主办方、展商、媒体等多方执行任务; \n7. 熟练运用办公工具撰写执行日志与报告,保障现场信息传达与总结反馈; \n8. 擅长应急响应协助,包括协力处理突发状况,并支持现场安全维护; \n9. 工作认真、执行力强,具备良好的服务意识与现场组织配合能力。 \n \n复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n7. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n8. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修市场营销专业,对会展项目执行与现场管理充满热情。在“深圳国际家具展”中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。"
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修旅游管理专业,对会展项目执行与现场管理充满热情。在“深圳国际家具展”中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。"
},
"会展讲解员": {
"projectExperience": "项目名称2024年深圳国际家具展策划项目 \n \n实习岗位会展讲解员 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 担任“超级视觉吸引点”及功能展示区讲解与引导,清晰传达“设计×商业”主题理念,增强观众体验; \n2. 引导观众按“1个吸引点 + 2个功能展示点 + 1个互动体验点”动线结构进行参观使用统一话术提高展示连贯性 \n3. 提前熟悉展会“五件套”视觉资产如KV、票券样式、导视模板确保语言讲解与视觉传播一致 \n4. 于入口处负责迎宾、信息核对与观众提醒(展期、馆号、购票须知),减少现场问询; \n5. 协助维持“预登记 / 现场登记 / 问题处理”三列队入场秩序,支持志愿者提升通行效率; \n6. 熟练掌握场馆主/支回路动线,协助转接点方向指引,避免观众走回头路; \n7. 专属引导重要访客(买家、设计师),快速引导至目标展区,提升专业体验; \n8. 在入馆高峰前通过口播、队尾牌、倒计时提示等方式协助引导节奏控制; \n9. 配合协办单位与志愿者进行现场人群管理,及时响应问询、失物、医疗等需求; \n10. 执行展后视觉内容采集(返图、短视频),协助整理传播素材与“在场证明”档案; \n11. 参与收集观众问卷与反馈,协助整理流量与问询热点数据,为改进提供参考; \n12. 保持仪态端庄、语言得体,确保讲解员形象与展会品牌形象一致。",
"skills": "业技能 \n \n核心能力 \n \n1. 出色的语言表达与中英文讲解能力,口语清晰、具有感染力与表达亲和力; \n2. 良好形象气质与商务礼仪素养,展现专业职业形象并提升演讲效果; \n3. 强烈服务意识,能够敏锐理解并满足观众需求提供优质体验; \n4. 优秀沟通协调能力,能够配合展会组织、志愿团队与协办单位现场协作; \n5. 灵活应变能力,善于处理现场突发情况(如人流拥堵、设备故障等); \n6. 良好的学习能力,能够快速掌握展览内容、视觉资产并准确传达; \n7. 严谨引导能力,熟悉展会动线并确保观众高效有序参观; \n8. 有效执行与秩序维护能力,支持入场秩序管理与现场互动引导; \n9. 操作反馈与素材整理能力,协助传播内容采集与展后数据整理。 \n \n复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n3. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n4. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n5. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修市场营销具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修旅游管理具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
},
"会展营销": {
"projectExperience": "项目名称2024 合肥国际 3C 电子产业博览会策划项目\n \n实习岗位会展营销助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 协助制定并统一传播“场景化消费电子 + 3C 终端生态”主题策划“家庭影音、智能办公、移动影像”等六大场景对应的宣传KV、门票、导视、屏显与展刊视觉内容确保展会品牌形象传播高度一致。 \n2. 支持构建参展品牌与渠道方如运营商、电商平台、区域代理沟通桥梁协助整理RFI采购需求用标准化需求模板推动1v1商务洽谈并协助安排洽谈桌次与场次 \n3. 支持构建“主舞台→品类峰会→品牌发布→闭门圆桌”四层议程结构对接嘉宾沟通协助布局议程时间、换场安排、现场品牌权益如LED屏位、媒体区、返图保障发布效果 \n4. 协助生成展会复盘分析(观众流量、意向单回收、停留时长等),并参与报告撰写; \n5. 协助展后客户跟进,包括意向商整理、样机申领协调与社群转化路径规划;",
"skills": "业技能 \n \n核心能力 \n \n1. 能够进行会展营销环境、消费者行为、市场竞争和产品服务等全面分析,为策略制定提供基础支持; \n2. 善于促进参展商与观众的互动,在活动实施过程中广泛收集反馈并优化营销策略,提高整体满意度; \n3. 运用品牌营销理论,打造受目标群体认可的会展品牌,吸引企业与专业观众参展,提升品牌价值与盈利能力; \n4. 能够推动营销理念贯穿团队,构建营销导向组织架构,培训营销人员,策划并执行各类促销活动,协调内部与外部部门合作; \n5. 擅长从SWOT分析入手制定会展营销目标、长期/短期计划,并进行精准销售预测; \n6. 在不断变化的行业环境中,将创新理念、营销手段和内容整合运用,提升会展差异化和互动参与度; \n \n复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n3. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n4. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n5. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n6. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n7. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "人总结 \n \n我是一名主修市场营销的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
"personalSummary": "人总结 \n \n我是一名主修旅游管理的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
},
"商业会展执行专员": {
"projectExperience": "项目名称2024 合肥国际 3C 电子产业博览会策划项目\n \n实习岗位会展执行助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 参与布场规划与布局执行,根据主题划分专区(家庭影音、移动影像等)并协助完成动线引导布署; \n2. 跟进物资采购、供应商协调与现场搭建,确保布展在活动前完成并通过整体彩排; \n3. 支持观众入场流程管理,包括实名预登记、现场购票与分流机制的实施与优化; \n4. 协助开展展览区域安全巡视、流线控制与应急处置(如紧急疏散、突发事件响应); \n5. 引导客户使用拍照打卡机制与社交传播互动提高展览传播效率与UGC参与度 \n6. 协助展后数据反馈与复盘报告编制,包括采购意向汇总、访客行为数据分析与流程优化建议; \n7. 整理文档资料(会议纪要、物资版本、供应商记录等),支持项目团队文案存档与透明共享。",
"skills": "业技能 \n \n核心能力 \n \n1. 能够进行会展营销环境、消费者行为、市场竞争和产品服务等全面分析,为策略制定提供基础支持; \n2. 善于促进参展商与观众的互动,在活动实施过程中广泛收集反馈并优化营销策略,提高整体满意度; \n3. 运用品牌营销理论,打造受目标群体认可的会展品牌,吸引企业与专业观众参展,提升品牌价值与盈利能力; \n4. 能够推动营销理念贯穿团队,构建营销导向组织架构,培训营销人员,策划并执行各类促销活动,协调内部与外部部门合作; \n5. 擅长从SWOT分析入手制定会展营销目标、长期/短期计划,并进行精准销售预测; \n6. 在不断变化的行业环境中,将创新理念、营销手段和内容整合运用,提升会展差异化和互动参与度; \n \n复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修市场营销专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
"personalSummary": "人总结 \n \n我是一名刚完成实习的大专毕业生主修旅游管理专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
},
"漫展策划师": {
"projectExperience": "(一)项目名称:盐城第九届 ICGC 动漫嘉年华漫展策划项目 \n \n实习岗位漫展策划师助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 根据目标受众调研与二次元文化趋势,制定漫展整体主题、主视觉、口号与统一物料风格,包括海报、导视、票面与舞台等; \n2. 将展会时间拆分为“开场、高峰、尾场”三个阶段,细化各环节节奏和互动流程,保证观众体验与现场流畅度; \n3. 设计票务流程和信息引导体系,统筹线上预售与现场检票流程,确保信息传递准确与入场效率; \n4. 协调COSER、唱见及品牌合作引入IP内容与社团资源提升漫展丰富度与吸引力 \n5. 设立入口问询台、母婴区、失物招领及现场导引机制、安检与应急巡查流程,保障现场秩序与安全; \n6. 保证宣传信息一致性,通过主持与大屏统一口播控制,减少现场信息差异与期望偏差; \n7. 活动结束后,对模板物料、流程手册与视觉文档进行系统归档,支持未来漫展内容可复用标准化。",
@@ -197,7 +197,7 @@
"二次元周边店店长": {
"projectExperience": "(一)项目名称:谷子店开店与经营管理 \n \n实习岗位店长助理 \n \n实习时间XXXX时间 \n \n实习单位某某公司 \n \n岗位职责 \n \n1. 主导门店日常运营管理,包括销售策略实施、库存控制与商品陈列优化,确保店铺秩序和运营高效; \n2. 审核IP授权、盲盒披露与未成年人防护等合规流程协助制作《授权评审表》《盲盒SOP》《未保适配清单》确保合法合规 \n3. 优化顾客动线设计IP墙→盲盒区→换卡台→收银区提升顾客“看—玩—购买—分享”的消费体验与坪效 \n4. 结合不同价格段商品贴纸、徽章、抱枕等推动低中高价位SKU的动销组合与毛利目标管理 \n5. 落地小程序与私域运营流程(扫码入会、签到补款提醒等),提高复购转化与会员留存; \n6. 策划并执行店内主题活动快闪、Coser报名、卡牌交换赛等通过线上线下整合提升店面互动与社群口碑 \n7. 监督商品质量与风险控制,包括首检和抽检流程,以及建立有效的召回机制; \n8. 推动用户内容裂变与口碑机制如“晒谷仓挑战”将UGC转化为社区传播动力 \n9. 培训团队掌握授权、陈列、盲盒与未保政策等标准流程,确保一线服务与品牌一致性; \n10. 定期监控运营指标(坪效、会员增长、动销率等),通过数据回顾优化陈列与营销策略。",
"skills": "业技能 \n \n核心能力 \n \n1. 深度理解二次元文化与IP产品具备精准产品推荐与用户触达的能力 \n2. 熟悉实体零售日常管理流程,能系统管理销售、陈列与库存动态; \n3. 具有SKU组合与毛利结构优化能力推动动销与收益平衡 \n4. 能执行店内活动策划与落地,整合线上与线下资源; \n5. 拥有商品质量抽检与风险控制意识,建立可复用的流程; \n6. 能指导并督导店员执行品牌标准,推动团队与品牌形象一致; \n7. 擅于监控与分析店铺运营KPI辅助策略调整优化 \n \n复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n6. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "人总结 \n \n我是一名刚完成实习的市场营销专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
"personalSummary": "人总结 \n \n我是一名刚完成实习的旅游管理专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
},
"旅游规划师": {
"projectExperience": "(一)项目名称:贵州黔东南非遗文化探索之旅线路设计项目\n\n实习岗位旅游规划助理\n\n实习时间XXXX时间\n\n实习单位某某公司\n\n岗位职责\n\n1. 协助进行目的地资源调研:收集侗寨、苗寨等自然与人文资源及非遗技艺(侗族大歌、苗银、蜡染)资料,建立资源库并完成对比分析;\n2. 参与旅游线路策划根据导师指导绘制“5天4晚”小团制行程草案明确每日文化主题、体验亮点与交通逻辑\n3. 协助完成市场调研与客群分析整理25-45岁核心客群的出行需求汇总调研数据并提出差异化定位建议\n4. 支持规划方案编制参与撰写线路策划方案与说明文档协助制作PPT确保逻辑完整、图文清晰\n5. 协助亮点设计:参与“火塘夜话+AI歌谱翻译”等特色体验的方案讨论并完成相关资料整理\n6. 协助交通与住宿安排:收集大巴/高铁时刻表、民宿与酒店报价,整理对比文档,为最终选型提供数据支持;",

View File

@@ -2,12 +2,12 @@
"二次元周边选品专员": {
"projectExperience": "### (一)项目名称:谷子店开店与经营管理 \n \n### (二)实习岗位:二次元选品助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 结合 Z 世代与高校生群体喜好甄选二次元贴纸、徽章、手办等周边商品构建符合价格段¥9-39、¥59-199、¥299+的SKU结构并执行上架流程 \n2. 基于“价格带×IP热度×材质工艺”策略小规模试水后循环补货与限量发售优化选品组合并维护毛利目标55%±5% \n3. 协助供应商评估与开拓工作核查IP授权、产品质量与供应稳定性确保合规与供货畅通 \n4. 跟踪热销商品的动销与库存状况对滞销SKU提出补货或清退建议支持风险控制与销售复盘 \n5. 参与盲盒选品与运营规范管理,核实概率信息与文案公开情况,确保合规风险可控; \n6. 梳理门店与社群如“晒谷仓”等平台反馈推荐互动性强的产品款式推动用户共创与UGC内容积累 \n7. 确保线上线下渠道货品一致性,支持小程序与实体货架的协同运营; \n8. 参与主题活动选品,如“上映联动款”,协调视觉团队准备陈列样品与营销素材; \n9. 监控用户反馈、评价与复购倾向为后续IP选择、续订或新品布局提供分析依据。",
"skills": "### (一)核心能力 \n \n1. 具备市场洞察与用户画像分析能力,能够基于渠道数据和用户偏好制定品牌调性选品方案; \n2. 热爱二次元文化熟知主流IP趋势具备敏锐的选品嗅觉 \n3. 能独立规划选品流程,从新品筛选到上架执行均能参与; \n4. 擅长与供应链或样品提供方沟通对接,推动产品上架与授权检查; \n5. 能洞察消费趋势,预测二次元用户喜好并捕捉潜在爆款; \n6. 善于数据分析与销售反馈处理,能指导选品优化与风险控制。 \n \n### (二)复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n3. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n4. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n5. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n6. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n7. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n8. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "我是一名刚毕业的大专生,主修市场营销对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
"personalSummary": "我是一名刚毕业的大专生,主修旅游管理对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
},
"二次元周边店店员": {
"projectExperience": "### (一)项目名称:谷子店开店与经营管理 \n \n### (二)实习岗位:二次元周边店店员 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 执行门店日常营业,包括货品陈列、库存管理与收银操作,遵循终端零售合规流程; \n2. 主动迎接顾客提供IP正版与限定商品推荐营造“看—玩—换—晒”互动购物体验 \n3. 协助设置主题陈列区域如IP墙、互动台并依据视觉布局原则提升顾客停留与成交率 \n4. 配合店长管理SKU结构与补货节奏参与畅销商品补货与滞销商品清理 \n5. 引导顾客扫码进会员体系,推动小程序订阅与会员复购、推荐机制; \n6. 协助策划与执行店内活动如互动挑战、签售会、Coser现场维护现场秩序与氛围 \n7. 使用POS系统处理交易、退款与会员优惠完成每日收银对账与账目整理 \n8. 处理客户咨询与纠纷(如未成年人限购、盲盒说明、退换货等),协助工单处理与记录; \n9. 向店长反馈运营观察(如用户偏好、库存变化、视觉反馈),协助优化陈列与运营策略; \n10. 保持店铺整洁、有序,维护展示标准与顾客安全通行,确保店面环境佳。",
"skills": "### (一)核心能力 \n \n1. 熟悉二次元周边产品(手办、抱枕、挂件等),具有相关商品知识与陈列经验; \n2. 具备良好服务意识与亲和力,能够营造互动式消费体验; \n3. 熟练操作POS系统能处理交易、退换货及会员服务流程 \n4. 有较强商品陈列与库存管理能力,支持视觉营销与补货节奏控制; \n5. 能参与并协助店内活动执行与互动引导,提高顾客参与度; \n6. 善于处理客户问题与投诉,具备冷静应对场景与记录问题的能力; \n7. 能在快节奏零售环境下多任务处理,如迎客、收银、补货、环境维护等; \n8. 具备良好沟通与团队配合意识,能够向管理层有效反馈运营细节; \n9. 热爱动漫文化,亲近“二次元”,能快速与目标群体形成情感连接。 \n \n### (二)复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "我是一名热爱二次元文化并刚完成大专实习的市场营销专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
"personalSummary": "我是一名热爱二次元文化并刚完成大专实习的旅游管理专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
},
"民宿管家": {
"projectExperience": "### 项目名称舟山某民宿180天提升入住率项目 \n \n### (二)实习岗位:民宿管家 \n \n### (三)实习单位:某某公司 \n \n### 实习时间XXXX时间 \n \n### (五)岗位职责 \n \n1. 优化客房入住体验:在管家团队指导下,参与用户需求调研问卷的推送与回收,整理用户反馈用于改进房型布局与服务指引;协助日常巡查问题房型并跟进用户评价闭环处理工作。 \n2. 内容创作运营:配合完成民宿短视频和图文笔记内容的拍摄辅助任务,如布景准备、道具协调与基础拍摄工作,协助完成发布前的初审与平台上传操作。 \n3. OTA平台运营根据每日房态排查安排协助整理各OTA平台的价格、库存及折扣信息配合完成错价核查与库存同步提升平台展示效率。 \n4. 会员社群运营:配合完成新会员资料录入与分级管理任务,协助建立用户社群、发布活动通知,并在直播活动中协助进行流程安排与现场互动支持。 \n5. 数据处理在团队指导下协助收集入住率、用户评分与内容点击等运营数据并参与每日BI可视化看板的整理与发布辅助完成月度数据初步分析。",

View File

@@ -27,27 +27,27 @@
"会展策划师": {
"projectExperience": "### 项目名称2024年深圳国际家具展策划项目 \n \n### (二)实习岗位:会展策划师助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 协调制定“设计×商业”主题体系及空间动线布局方案保障714号馆的内容叙事与观展体验顺畅 \n2. 统筹“五件套”视觉资产主KV、票证样式、导视、大屏及宣传素材设计与执行保持品牌视觉一致性 \n3. 制定展商结构与招商节奏策略(头部、腰部、创新类别),参与签约计划及展位布局方案; \n4. 设计观众预报名与现场分流机制与人流仿真方案,优化观展动线与高峰疏导; \n5. 全面协助现场运营组织,包括安检引导、播报提醒、志愿者调配与突发事件应对,维持现场秩序; \n6. 指导展后图文短视频传播、媒体稿件撰写及CRM买家回访并参与复盘总结与买家转化闭环设计 \n7. 从项目主题到展后传播落实,协助统筹整体流程节奏与内容节点控制; \n8. 支持预算管控、供应商协调与团队资源整合,确保设计方案与执行节奏匹配; \n9. 开展市场调研与竞品分析,助力展会主题契合行业趋势及受众需求; \n10. 编写宣传文案与物料说明,确保传播语言一致、精准。",
"skills": "### (一)核心能力 \n \n1. 能统筹资源(场地、视觉、展商、物料等)并确保主题方案精准落地; \n2. 擅长视觉资产整合与品牌表达,保证统一性与传播效果; \n3. 具备观众动线设计与人流管理意识,优化参观体验; \n4. 熟悉现场流程执行与秩序维护,能快速响应突发事件; \n5. 能协助撰写活动宣传与媒体文案,实现传播闭环; \n6. 能配合预算计划与供应商管理,支持活动执行节拍控制; \n7. 擅于活动复盘与买家跟进,推动效果最大化; \n8. 具备市场与竞品分析基础,支持方案精准定位; \n9. 具备跨职能协作意识,与客户、设计、供应、媒体多方协同配合。 \n \n### (二)复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "我是一名主修市场营销的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
"personalSummary": "我是一名主修旅游管理的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
},
"会展执行助理": {
"projectExperience": "### 项目名称2024年深圳国际家具展策划项目 \n \n### (二)实习岗位:会展执行助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 协助布置展会“五件套”物料包含主KV、票证样式、大屏模板、导视牌、社媒素材确保会展视觉一致性与质量 \n2. 跟进招商节奏与展位对接如90天锁定、60天签约、30天补位协调样品到馆与搭建进度 \n3. 协助观众入场组织与流线引导,分流预登记与现场登记流程,维护入口秩序; \n4. 配合场馆动线模拟与容量控制,协助布置主回路与支线动线示意,确保动线畅通; \n5. 支持现场运营与安全管控,如入口安检、证件核验、隔离引导、应急演练执行; \n6. 协助撤展安排与交通流线控制,指引搬运人员并协调车辆流线,保障现场秩序; \n7. 展后协助发布图文与短视频内容整理意向客户线索导入CRM并协助生成后续推进清单 \n8. 参与跨部门对接,包括与展商、搭建商、主办方、媒体及志愿者等沟通联络; \n9. 完成活动日志、会议记录及简报撰写,确保信息及时反馈与执行闭环。",
"skills": "### (一)核心能力 \n \n1. 能协助统筹现场布场与视觉布置工作,保障物料展示与信息一致性; \n2. 熟悉展商对接及招商进度管理流程,能协助完成台账维护与多方协调; \n3. 具备观众入场和动线引导执行支持能力,配合流程设计与秩序维护; \n4. 能协助策划撤展与交通控制方案,支持现场流线与进出秩序管控; \n5. 具备现场客户导入与内容发布能力,能够协助快速整理线索与社媒传播支持; \n6. 善于跨部门沟通协作,可协助协调主办方、展商、媒体等多方执行任务; \n7. 熟练运用办公工具撰写执行日志与报告,保障现场信息传达与总结反馈; \n8. 擅长应急响应协助,包括协力处理突发状况,并支持现场安全维护; \n9. 工作认真、执行力强,具备良好的服务意识与现场组织配合能力。 \n \n### (二)复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n7. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n8. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "我是一名刚完成实习的大专毕业生,主修市场营销专业,对会展项目执行与现场管理充满热情。在“深圳国际家具展”中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。"
"personalSummary": "我是一名刚完成实习的大专毕业生,主修旅游管理专业,对会展项目执行与现场管理充满热情。在“深圳国际家具展”中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。"
},
"会展讲解员": {
"projectExperience": "### 项目名称2024年深圳国际家具展策划项目 \n \n### (二)实习岗位:会展讲解员 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 担任“超级视觉吸引点”及功能展示区讲解与引导,清晰传达“设计×商业”主题理念,增强观众体验; \n2. 引导观众按“1个吸引点 + 2个功能展示点 + 1个互动体验点”动线结构进行参观使用统一话术提高展示连贯性 \n3. 提前熟悉展会“五件套”视觉资产如KV、票券样式、导视模板确保语言讲解与视觉传播一致 \n4. 于入口处负责迎宾、信息核对与观众提醒(展期、馆号、购票须知),减少现场问询; \n5. 协助维持“预登记 / 现场登记 / 问题处理”三列队入场秩序,支持志愿者提升通行效率; \n6. 熟练掌握场馆主/支回路动线,协助转接点方向指引,避免观众走回头路; \n7. 专属引导重要访客(买家、设计师),快速引导至目标展区,提升专业体验; \n8. 在入馆高峰前通过口播、队尾牌、倒计时提示等方式协助引导节奏控制; \n9. 配合协办单位与志愿者进行现场人群管理,及时响应问询、失物、医疗等需求; \n10. 执行展后视觉内容采集(返图、短视频),协助整理传播素材与“在场证明”档案; \n11. 参与收集观众问卷与反馈,协助整理流量与问询热点数据,为改进提供参考; \n12. 保持仪态端庄、语言得体,确保讲解员形象与展会品牌形象一致。",
"skills": "### (一)核心能力 \n \n1. 出色的语言表达与中英文讲解能力,口语清晰、具有感染力与表达亲和力; \n2. 良好形象气质与商务礼仪素养,展现专业职业形象并提升演讲效果; \n3. 强烈服务意识,能够敏锐理解并满足观众需求提供优质体验; \n4. 优秀沟通协调能力,能够配合展会组织、志愿团队与协办单位现场协作; \n5. 灵活应变能力,善于处理现场突发情况(如人流拥堵、设备故障等); \n6. 良好的学习能力,能够快速掌握展览内容、视觉资产并准确传达; \n7. 严谨引导能力,熟悉展会动线并确保观众高效有序参观; \n8. 有效执行与秩序维护能力,支持入场秩序管理与现场互动引导; \n9. 操作反馈与素材整理能力,协助传播内容采集与展后数据整理。 \n \n### (二)复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n3. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n4. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n5. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "我是一名刚完成实习的大专毕业生,主修市场营销具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
"personalSummary": "我是一名刚完成实习的大专毕业生,主修旅游管理具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
},
"会展营销": {
"projectExperience": "### 项目名称2024 合肥国际 3C 电子产业博览会策划项目\n \n### (二)实习岗位:会展营销助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 协助制定并统一传播“场景化消费电子 + 3C 终端生态”主题策划“家庭影音、智能办公、移动影像”等六大场景对应的宣传KV、门票、导视、屏显与展刊视觉内容确保展会品牌形象传播高度一致。 \n2. 支持构建参展品牌与渠道方如运营商、电商平台、区域代理沟通桥梁协助整理RFI采购需求用标准化需求模板推动1v1商务洽谈并协助安排洽谈桌次与场次 \n3. 支持构建“主舞台→品类峰会→品牌发布→闭门圆桌”四层议程结构对接嘉宾沟通协助布局议程时间、换场安排、现场品牌权益如LED屏位、媒体区、返图保障发布效果 \n4. 协助生成展会复盘分析(观众流量、意向单回收、停留时长等),并参与报告撰写; \n5. 协助展后客户跟进,包括意向商整理、样机申领协调与社群转化路径规划;",
"skills": "### (一)核心能力 \n \n1. 能够进行会展营销环境、消费者行为、市场竞争和产品服务等全面分析,为策略制定提供基础支持; \n2. 善于促进参展商与观众的互动,在活动实施过程中广泛收集反馈并优化营销策略,提高整体满意度; \n3. 运用品牌营销理论,打造受目标群体认可的会展品牌,吸引企业与专业观众参展,提升品牌价值与盈利能力; \n4. 能够推动营销理念贯穿团队,构建营销导向组织架构,培训营销人员,策划并执行各类促销活动,协调内部与外部部门合作; \n5. 擅长从SWOT分析入手制定会展营销目标、长期/短期计划,并进行精准销售预测; \n6. 在不断变化的行业环境中,将创新理念、营销手段和内容整合运用,提升会展差异化和互动参与度; \n \n### (二)复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n3. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n4. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n5. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n6. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n7. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "我是一名主修市场营销的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
"personalSummary": "我是一名主修旅游管理的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
},
"商业会展执行专员": {
"projectExperience": "### 项目名称2024 合肥国际 3C 电子产业博览会策划项目\n \n### (二)实习岗位:会展执行助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 参与布场规划与布局执行,根据主题划分专区(家庭影音、移动影像等)并协助完成动线引导布署; \n2. 跟进物资采购、供应商协调与现场搭建,确保布展在活动前完成并通过整体彩排; \n3. 支持观众入场流程管理,包括实名预登记、现场购票与分流机制的实施与优化; \n4. 协助开展展览区域安全巡视、流线控制与应急处置(如紧急疏散、突发事件响应); \n5. 引导客户使用拍照打卡机制与社交传播互动提高展览传播效率与UGC参与度 \n6. 协助展后数据反馈与复盘报告编制,包括采购意向汇总、访客行为数据分析与流程优化建议; \n7. 整理文档资料(会议纪要、物资版本、供应商记录等),支持项目团队文案存档与透明共享。",
"skills": "### (一)核心能力 \n \n1. 能够进行会展营销环境、消费者行为、市场竞争和产品服务等全面分析,为策略制定提供基础支持; \n2. 善于促进参展商与观众的互动,在活动实施过程中广泛收集反馈并优化营销策略,提高整体满意度; \n3. 运用品牌营销理论,打造受目标群体认可的会展品牌,吸引企业与专业观众参展,提升品牌价值与盈利能力; \n4. 能够推动营销理念贯穿团队,构建营销导向组织架构,培训营销人员,策划并执行各类促销活动,协调内部与外部部门合作; \n5. 擅长从SWOT分析入手制定会展营销目标、长期/短期计划,并进行精准销售预测; \n6. 在不断变化的行业环境中,将创新理念、营销手段和内容整合运用,提升会展差异化和互动参与度; \n \n### (二)复合能力 \n \n1. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n6. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。 \n9. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"personalSummary": "我是一名刚完成实习的大专毕业生,主修市场营销专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
"personalSummary": "我是一名刚完成实习的大专毕业生,主修旅游管理专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
},
"漫展策划师": {
"projectExperience": "### (一)项目名称:盐城第九届 ICGC 动漫嘉年华漫展策划项目 \n \n### (二)实习岗位:漫展策划师助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 根据目标受众调研与二次元文化趋势,制定漫展整体主题、主视觉、口号与统一物料风格,包括海报、导视、票面与舞台等; \n2. 将展会时间拆分为“开场、高峰、尾场”三个阶段,细化各环节节奏和互动流程,保证观众体验与现场流畅度; \n3. 设计票务流程和信息引导体系,统筹线上预售与现场检票流程,确保信息传递准确与入场效率; \n4. 协调COSER、唱见及品牌合作引入IP内容与社团资源提升漫展丰富度与吸引力 \n5. 设立入口问询台、母婴区、失物招领及现场导引机制、安检与应急巡查流程,保障现场秩序与安全; \n6. 保证宣传信息一致性,通过主持与大屏统一口播控制,减少现场信息差异与期望偏差; \n7. 活动结束后,对模板物料、流程手册与视觉文档进行系统归档,支持未来漫展内容可复用标准化。",

View File

@@ -27,7 +27,7 @@
"二次元周边店店长": {
"projectExperience": "### (一)项目名称:谷子店开店与经营管理 \n \n### (二)实习岗位:店长助理 \n \n### 实习时间XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 主导门店日常运营管理,包括销售策略实施、库存控制与商品陈列优化,确保店铺秩序和运营高效; \n2. 审核IP授权、盲盒披露与未成年人防护等合规流程协助制作《授权评审表》《盲盒SOP》《未保适配清单》确保合法合规 \n3. 优化顾客动线设计IP墙→盲盒区→换卡台→收银区提升顾客“看—玩—购买—分享”的消费体验与坪效 \n4. 结合不同价格段商品贴纸、徽章、抱枕等推动低中高价位SKU的动销组合与毛利目标管理 \n5. 落地小程序与私域运营流程(扫码入会、签到补款提醒等),提高复购转化与会员留存; \n6. 策划并执行店内主题活动快闪、Coser报名、卡牌交换赛等通过线上线下整合提升店面互动与社群口碑 \n7. 监督商品质量与风险控制,包括首检和抽检流程,以及建立有效的召回机制; \n8. 推动用户内容裂变与口碑机制如“晒谷仓挑战”将UGC转化为社区传播动力 \n9. 培训团队掌握授权、陈列、盲盒与未保政策等标准流程,确保一线服务与品牌一致性; \n10. 定期监控运营指标(坪效、会员增长、动销率等),通过数据回顾优化陈列与营销策略。",
"skills": "### (一)核心能力 \n \n1. 深度理解二次元文化与IP产品具备精准产品推荐与用户触达的能力 \n2. 熟悉实体零售日常管理流程,能系统管理销售、陈列与库存动态; \n3. 具有SKU组合与毛利结构优化能力推动动销与收益平衡 \n4. 能执行店内活动策划与落地,整合线上与线下资源; \n5. 拥有商品质量抽检与风险控制意识,建立可复用的流程; \n6. 能指导并督导店员执行品牌标准,推动团队与品牌形象一致; \n7. 擅于监控与分析店铺运营KPI辅助策略调整优化 \n \n### (二)复合能力 \n \n1. 产品营销基础:具备基本营销思维与客户画像构建能力,能够理解产品定位、传播路径与沟通逻辑,支持策划与执行文旅项目的推广策略。 \n2. 服务体验优化和资源协同能力理解文旅服务的形象表达与情境化设计原则掌握文旅项目中各类资源如住宿、交通、商品的调度逻辑与协同机制具备在多元文化与B2B/B2C场景下开展基础服务支持与供应协作的能力。 \n3. 活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。 \n4. 新媒体平台运营能力:具备新媒体平台账号经营、内容赛道规划与短视频制作的基础能力,能够参与直播搭建、私域维护与跨平台内容策划等简单的工作内容,辅助文旅项目的数字传播落地。 \n5. 文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。 \n6. 商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。 \n7. 文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。 \n8. AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。 \n9. 智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"personalSummary": "我是一名刚完成实习的市场营销专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
"personalSummary": "我是一名刚完成实习的旅游管理专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
},
"旅游规划师": {
"projectExperience": "### (一)项目名称:贵州黔东南非遗文化探索之旅线路设计项目\n\n### (二)实习岗位:旅游规划助理\n\n### 实习时间XXXX时间\n\n### (四)实习单位:某某公司\n\n### (五)岗位职责:\n\n1. 协助进行目的地资源调研:收集侗寨、苗寨等自然与人文资源及非遗技艺(侗族大歌、苗银、蜡染)资料,建立资源库并完成对比分析;\n2. 参与旅游线路策划根据导师指导绘制“5天4晚”小团制行程草案明确每日文化主题、体验亮点与交通逻辑\n3. 协助完成市场调研与客群分析整理25-45岁核心客群的出行需求汇总调研数据并提出差异化定位建议\n4. 支持规划方案编制参与撰写线路策划方案与说明文档协助制作PPT确保逻辑完整、图文清晰\n5. 协助亮点设计:参与“火塘夜话+AI歌谱翻译”等特色体验的方案讨论并完成相关资料整理\n6. 协助交通与住宿安排:收集大巴/高铁时刻表、民宿与酒店报价,整理对比文档,为最终选型提供数据支持;",

View File

@@ -68,11 +68,11 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
// 默认导师信息 - 赵雪宁老师(用于求职策略定制页面)
const defaultTeacher = {
name: "赵雪宁",
introduction: "牵头集团人力资源信息化转型主导上线一体化HR SaaS平台覆盖招聘、培训、绩效、薪酬及员工关系五大模块实现全流程数据贯通。通过引入人岗匹配算法与流失预警模型关键岗位招聘周期缩短28%内部人才晋升率由12%提升至36%员工流失率三年下降40%。同时建立人力资本ROI指标体系高层决策实现数据可视化直接支撑集团多元化战略扩张人均产出提升20%整体人力成本率下降2个百分点。除企业实践外作为一线资深HR导师还开展一对一的个性化指导结合真实招聘视角为学员剖析优势与短板传授简历优化、面试技巧及职业路径规划帮助其快速提升求职竞争力并获得针对性的发展建议。",
specialties: ["招聘视角剖析", "职业定位规划", "互动交流教学", "个人优势挖掘"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuXLZZ9QdQ6q.png",
type: "企业资深HR"
name: "待定",
introduction: "",
specialties: [],
avatar: logoImg,
type: ""
};
// 1V1求职规划课程信息
@@ -144,8 +144,8 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
{isLock ? (
<Locked
className="video-lock-wrapper"
text="DEMO演示非学员本人与导师无查看权限"
backgroundImage={backgroundImage}
text="该板块将于「垂直能力提升」阶段启动后开放
届时请留意教务系统通知您可在该板块进行线上1V1求职策略定制"
/>
) : (
<>
@@ -327,11 +327,13 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
<div className="living-data">
<div className="living-data-item">
<span>开始</span>
<span>{formatDateTime(displayCourse?.date || courseDate)} - {
isLock ? '14:00' : // 定制求职策略页面:14:00
isPublicCourse && (displayCourse?.unitName === '营销能力课' || unitName === '营销能力课') ? '20:00' : // 营销能力课20:00
isPublicCourse ? '15:00' : // 其他公共课15:00
'20:00' // 课程直播间20:00
<span>{
isLock ? '待定' : // 定制求职策略页面:待定
`${formatDateTime(displayCourse?.date || courseDate)} - ${
isPublicCourse && (displayCourse?.unitName === '营销能力课' || unitName === '营销能力课') ? '20:00' : // 营销能力课20:00
isPublicCourse ? '15:00' : // 其他公共课15:00
'20:00' // 课程直播间20:00
}`
}</span>
</div>
<div className="living-data-item">
@@ -354,17 +356,29 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
<div className="courses-video-player-teacher-info">
<div className="courses-video-player-teacher-introduce">
<p className="title icon1">导师介绍</p>
<p className="teacher-introduce">
{currentTeacher?.introduction || ''}
</p>
{currentTeacher?.introduction ? (
<p className="teacher-introduce">
{currentTeacher.introduction}
</p>
) : (
<p className="teacher-introduce" style={{ color: '#86909c', textAlign: 'center', padding: '40px 0' }}>
暂无数据
</p>
)}
</div>
<div className="courses-video-player-teacher-tags">
<p className="title icon2">教师专长</p>
<ul className="teacher-tags">
{(currentTeacher?.specialties || []).map((specialty, index) => (
<li key={index}>{specialty}</li>
))}
</ul>
{currentTeacher?.specialties && currentTeacher.specialties.length > 0 ? (
<ul className="teacher-tags">
{currentTeacher.specialties.map((specialty, index) => (
<li key={index}>{specialty}</li>
))}
</ul>
) : (
<p style={{ color: '#86909c', textAlign: 'center', padding: '40px 0' }}>
暂无数据
</p>
)}
</div>
</div>
</>

View File

@@ -0,0 +1,388 @@
import { useState, useRef, useEffect } from "react";
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 }) => {
const [isFullscreen, setIsFullscreen] = useState(false);
const iframeContainerRef = useRef(null);
const handleClickBtn = (item) => {
console.log(item);
};
// 处理全屏切换
const handleFullscreen = () => {
const container = iframeContainerRef.current;
if (!container) return;
if (!isFullscreen) {
// 进入全屏
if (container.requestFullscreen) {
container.requestFullscreen();
} else if (container.webkitRequestFullscreen) {
container.webkitRequestFullscreen();
} else if (container.mozRequestFullScreen) {
container.mozRequestFullScreen();
} else if (container.msRequestFullscreen) {
container.msRequestFullscreen();
}
} else {
// 退出全屏
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
};
// 监听全屏状态变化
useEffect(() => {
const handleFullscreenChange = () => {
setIsFullscreen(
document.fullscreenElement === iframeContainerRef.current ||
document.webkitFullscreenElement === iframeContainerRef.current ||
document.mozFullScreenElement === iframeContainerRef.current ||
document.msFullscreenElement === iframeContainerRef.current
);
};
document.addEventListener('fullscreenchange', handleFullscreenChange);
document.addEventListener('webkitfullscreenchange', handleFullscreenChange);
document.addEventListener('mozfullscreenchange', handleFullscreenChange);
document.addEventListener('MSFullscreenChange', handleFullscreenChange);
return () => {
document.removeEventListener('fullscreenchange', handleFullscreenChange);
document.removeEventListener('webkitfullscreenchange', handleFullscreenChange);
document.removeEventListener('mozfullscreenchange', handleFullscreenChange);
document.removeEventListener('MSFullscreenChange', handleFullscreenChange);
};
}, []);
// 默认导师信息 - 赵雪宁老师(用于求职策略定制页面)
const defaultTeacher = {
name: "赵雪宁",
introduction: "牵头集团人力资源信息化转型主导上线一体化HR SaaS平台覆盖招聘、培训、绩效、薪酬及员工关系五大模块实现全流程数据贯通。通过引入人岗匹配算法与流失预警模型关键岗位招聘周期缩短28%内部人才晋升率由12%提升至36%员工流失率三年下降40%。同时建立人力资本ROI指标体系高层决策实现数据可视化直接支撑集团多元化战略扩张人均产出提升20%整体人力成本率下降2个百分点。除企业实践外作为一线资深HR导师还开展一对一的个性化指导结合真实招聘视角为学员剖析优势与短板传授简历优化、面试技巧及职业路径规划帮助其快速提升求职竞争力并获得针对性的发展建议。",
specialties: ["招聘视角剖析", "职业定位规划", "互动交流教学", "个人优势挖掘"],
avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuXLZZ9QdQ6q.png",
type: "企业资深HR"
};
// 1V1求职规划课程信息
const oneOnOneCourse = {
courseName: "1V1 求职规划",
date: "2024-08-25",
unitName: "1V1 规划阶段",
teacherName: "魏立慧",
current: false
};
// 获取当前课程的导师信息
// 如果是锁定状态(求职策略页面),始终显示魏立慧老师
const currentTeacher = isLock
? defaultTeacher
: (selectedCourse && teacherData && teacherData[selectedCourse.teacherName]
? teacherData[selectedCourse.teacherName]
: null);
// 如果是锁定状态使用1V1求职规划课程信息
const displayCourse = isLock ? oneOnOneCourse : selectedCourse;
// 需要调整头像位置的导师
const needsAdjustment = currentTeacher && ["赵志强", "魏立慧", "郭建辉", "孙应战"].includes(currentTeacher.name);
// 根据导师设置不同的背景色 - 这些颜色提取自实际的PNG图片背景
const getAvatarBackground = (name) => {
const backgrounds = {
"刘杰": "#E3E2E0", // 浅灰色
"郭建辉": "#C8CCD0", // 米灰色 - 从头像图片提取
"赵志强": "#E3E2E0", // 浅灰色
"孙应战": "#FFFFFF", // 白色
"魏立慧": "#DCD8D4", // 灰褐色
"李奇": "#E8E8E8" // 浅灰色 - 匹配头像背景
};
return backgrounds[name] || "#E3E2E0";
};
// 获取当前课程信息
const courseName = selectedCourse?.courseName || "";
const courseDate = selectedCourse?.date || "";
const unitName = selectedCourse?.unitName || "";
// 格式化日期时间
const formatDateTime = (date) => {
// 将 "2025-09-02" 格式转换为 "09.02"
if (date && date.includes('-')) {
const parts = date.split('-');
if (parts.length === 3) {
return `${parts[1]}.${parts[2]}`;
}
}
// 将 "9/1" 格式转换为 "09.01"
if (date && date.includes('/')) {
const parts = date.split('/');
if (parts.length === 2) {
const month = parts[0].padStart(2, '0');
const day = parts[1].padStart(2, '0');
return `${month}.${day}`;
}
}
return date;
};
return (
<div className={`${className} courses-video-player-wrapper`}>
{/* 直播板块 */}
<div className="courses-video-player">
{isLock ? (
<Locked
className="video-lock-wrapper"
text="DEMO演示非学员本人与导师无查看权限"
backgroundImage={backgroundImage}
/>
) : (
<>
<div className="courses-video-player-header">
<span className="courses-video-player-header-title">
{courseName}
</span>
</div>
<div className="courses-video-player-video">
{selectedCourse ? (
/* 选中课程时如果是可试看课程则显示iframe否则显示锁定状态 */
selectedCourse.canPreview && selectedCourse.previewUrl ? (
/* 显示iframe内嵌课件 */
<div
ref={iframeContainerRef}
style={{
position: 'relative',
width: '100%',
height: '100%',
backgroundColor: '#000'
}}
>
<iframe
src={selectedCourse.previewUrl}
style={{
width: '100%',
height: '100%',
border: 'none',
borderRadius: isFullscreen ? '0' : '8px',
zoom: isFullscreen ? 1 : 0.5
}}
title={selectedCourse.courseName}
allowFullScreen
/>
{/* 全屏按钮 */}
<button
onClick={handleFullscreen}
style={{
position: 'absolute',
top: '16px',
right: '16px',
width: '40px',
height: '40px',
borderRadius: '8px',
border: 'none',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
color: '#fff',
cursor: 'pointer',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
fontSize: '20px',
transition: 'all 0.3s',
zIndex: 10
}}
onMouseEnter={(e) => {
e.currentTarget.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
}}
onMouseLeave={(e) => {
e.currentTarget.style.backgroundColor = 'rgba(0, 0, 0, 0.6)';
}}
title={isFullscreen ? "退出全屏" : "全屏"}
>
{isFullscreen ? (
// 退出全屏图标
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
<path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3" />
</svg>
) : (
// 全屏图标
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
<path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" />
</svg>
)}
</button>
</div>
) : (
/* 显示模糊的海报图和锁定状态 */
<div style={{ position: 'relative', width: '100%', height: '100%' }}>
<img
src={(() => {
const posterUrl = selectedCourse?.unitPoster || unitPosters?.[unitName] || unitPosters?.["终生学习系统课"];
console.log('CoursesVideoPlayer 背景图片URL:', posterUrl);
console.log('selectedCourse.unitPoster:', selectedCourse?.unitPoster);
console.log('unitName:', unitName);
return posterUrl;
})()}
alt={unitName}
style={{
width: '100%',
height: '100%',
objectFit: 'cover',
filter: 'blur(10px)'
}}
/>
<div style={{
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: '16px'
}}>
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuVOrz2GnJdK.png"
alt="lock"
style={{ width: '280px', height: '280px' }}
/>
<span style={{
color: '#fff',
fontSize: '16px',
fontWeight: '500',
textAlign: 'center',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
padding: '8px 16px',
borderRadius: '4px'
}}>
DEMO演示非学员无查看权限
</span>
</div>
</div>
)
) : (
/* 未选中课程时显示白底和logo */
<div style={{
width: '100%',
height: '100%',
backgroundColor: '#fff',
border: '1px solid #e5e6eb',
borderRadius: '8px',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
gap: '24px'
}}>
<img
src={logoImg}
alt="logo"
style={{
width: '120px',
height: 'auto',
opacity: 0.8
}}
/>
<span style={{
color: '#86909c',
fontSize: '16px'
}}>
请选择课程开始观看
</span>
</div>
)}
</div>
</>
)}
</div>
<div className="courses-video-player-info">
{(isLock || (selectedCourse && currentTeacher)) ? (
<>
{/* 直播观众信息 */}
<div className="courses-video-player-audience-info">
<div className="avatar-wrapper">
<Avatar
className={`teacher-avatar ${needsAdjustment ? 'avatar-adjust' : ''} ${currentTeacher?.name === '刘杰' ? 'teacher-liujie' : ''} ${currentTeacher?.name === '李奇' ? 'teacher-liqi' : ''} ${currentTeacher?.name === '孙应战' ? 'teacher-sunyingzhan' : ''} ${currentTeacher?.name === '郭建辉' ? 'teacher-guojianhui' : ''} ${isLock ? 'teacher-strategy' : ''}`}
style={{ backgroundColor: getAvatarBackground(currentTeacher?.name) }}
>
<img
alt="avatar"
src={currentTeacher?.avatar || ''}
/>
</Avatar>
{displayCourse?.current && <div className="living-icon" />}
</div>
<span className="teacher-name">{currentTeacher?.name || ''}老师</span>
<span className="teacher-tag">{displayCourse?.courseName || courseName || ''}</span>
<div className="living-data">
<div className="living-data-item">
<span>开始</span>
<span>{formatDateTime(displayCourse?.date || courseDate)} - {
isLock ? '14:00' : // 定制求职策略页面14:00
isPublicCourse && (displayCourse?.unitName === '营销能力课' || unitName === '营销能力课') ? '20:00' : // 营销能力课20:00
isPublicCourse ? '15:00' : // 其他公共课15:00
'20:00' // 课程直播间20:00
}</span>
</div>
<div className="living-data-item">
<span>时长</span>
<span>{isLock ? '120分钟' : '60分钟'}</span>
</div>
<div className="living-data-item">
<span>观看</span>
<span>{
isLock ? '1人' : // 定制求职策略页面1人
isPublicCourse ? `${1900 + Math.floor(Math.random() * 101)}人` : // 公共课1900-2000人
selectedCourse?.courseType === 'vertical'
? `${50 + Math.floor(Math.random() * 11)}人` // 垂直课50-60人
: `${180 + Math.floor(Math.random() * 21)}人` // 复合课180-200人
}</span>
</div>
</div>
</div>
{/* 直播教师信息 */}
<div className="courses-video-player-teacher-info">
<div className="courses-video-player-teacher-introduce">
<p className="title icon1">导师介绍</p>
<p className="teacher-introduce">
{currentTeacher?.introduction || ''}
</p>
</div>
<div className="courses-video-player-teacher-tags">
<p className="title icon2">教师专长</p>
<ul className="teacher-tags">
{(currentTeacher?.specialties || []).map((specialty, index) => (
<li key={index}>{specialty}</li>
))}
</ul>
</div>
</div>
</>
) : (
/* 未选中课程时显示空白 */
<div style={{
width: '100%',
height: '100%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: '#86909c',
fontSize: '14px'
}}>
请选择课程查看导师信息
</div>
)}
</div>
</div>
);
};

View File

@@ -28,10 +28,11 @@ const LiveSummary = ({ className = "", showBtn = false, isLiving = true }) => {
// 根据纪要文档的分组结构
const groupedPoints = {
"策略建议": sortedPoints.filter(p => [1, 2, 3].includes(p.id)),
"求职理念与方向梳理": sortedPoints.filter(p => [1, 2, 3].includes(p.id)),
"求职核心技巧": sortedPoints.filter(p => [4, 5, 6].includes(p.id)),
"面试流程拆解": sortedPoints.filter(p => [7, 8, 9, 10, 11].includes(p.id)),
"个性化策略": sortedPoints.filter(p => [12, 13, 14, 15, 16].includes(p.id))
"面试流程拆解": sortedPoints.filter(p => [7, 8, 9, 10].includes(p.id)),
"个性化求职策略": sortedPoints.filter(p => [11, 12, 13].includes(p.id)),
"总结与行动计划": sortedPoints.filter(p => [14, 15, 16].includes(p.id))
};
return (

View File

@@ -1,30 +1,56 @@
import "./index.css";
export default ({ text = "", className = "", backgroundImage }) => {
export default ({ text = "", className = "", backgroundImage, showBackground = true }) => {
return (
<div
className={`lock-wrapper ${className}`}
style={backgroundImage ? {
backgroundImage: `url(${backgroundImage})`,
backgroundSize: 'cover',
backgroundPosition: 'center',
position: 'relative'
} : {}}
style={showBackground ? {
backgroundColor: '#ffffff',
position: 'relative',
display: 'flex',
justifyContent: 'center',
alignItems: 'center'
} : {
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
zIndex: 10,
backgroundColor: 'transparent'
}}
>
{backgroundImage && (
<div style={{
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
backdropFilter: 'blur(20px)',
WebkitBackdropFilter: 'blur(20px)',
backgroundColor: 'rgba(0, 0, 0, 0.3)'
}} />
)}
<div className="lock" style={backgroundImage ? { position: 'relative', zIndex: 1 } : {}}>
{text ? <span>{text}</span> : null}
<div className="lock" style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: '16px',
background: 'none',
backgroundImage: 'none'
}}>
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuVOrz2GnJdK.png"
alt="lock"
style={{ width: '280px', height: '280px', background: 'transparent' }}
/>
{text && (
<span style={{
color: '#000',
fontSize: '16px',
fontWeight: '500',
textAlign: 'center',
backgroundColor: 'transparent',
padding: '0',
borderRadius: '0',
boxShadow: 'none',
whiteSpace: 'pre-line'
}}>
{text}
</span>
)}
</div>
</div>
);

View File

@@ -0,0 +1,31 @@
import "./index.css";
export default ({ text = "", className = "", backgroundImage }) => {
return (
<div
className={`lock-wrapper ${className}`}
style={backgroundImage ? {
backgroundImage: `url(${backgroundImage})`,
backgroundSize: 'cover',
backgroundPosition: 'center',
position: 'relative'
} : {}}
>
{backgroundImage && (
<div style={{
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
backdropFilter: 'blur(20px)',
WebkitBackdropFilter: 'blur(20px)',
backgroundColor: 'rgba(0, 0, 0, 0.3)'
}} />
)}
<div className="lock" style={backgroundImage ? { position: 'relative', zIndex: 1 } : {}}>
{text ? <span>{text}</span> : null}
</div>
</div>
);
};

View File

@@ -112,7 +112,26 @@ const Sidebar = ({ isCollapsed, setIsCollapsed }) => {
: j.default
}
/>
<span className="sidebar-menu-text">{j.name}</span>
<span className="sidebar-menu-text">
{j.name}
{j.path === '/agent' && (
<span style={{
marginLeft: '8px',
padding: '2px 8px',
background: 'linear-gradient(135deg, #5DADE2 0%, #2874A6 100%)',
borderRadius: '12px',
color: '#ffffff',
fontSize: '12px',
fontWeight: 'bold',
fontStyle: 'italic',
letterSpacing: '1px',
textTransform: 'uppercase',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
}}>
demo
</span>
)}
</span>
</li>
))}
</div>

View File

@@ -3994,114 +3994,114 @@ export const mockData = {
keyPoints: [
{
id: 1,
time: "05:05",
time: "00:00",
type: "strategy",
title: "求职理念",
content: "深入理解求职的本质,建立正确的求职心态和认知框架。"
title: "了解求职者现状与核心诉求",
content: "了解求职者现状与核心诉求"
},
{
id: 2,
time: "08:40",
time: "5:00",
type: "strategy",
title: "理念:能力于学历、曲线就业路径",
content: "强调实际能力比学历背景更重要,通过曲线就业路径实现职业目标。"
title: "建立正确的求职观:能力优先于学历、多路径成长",
content: "明确岗位选择标准:发展前景、稳定性、匹配度"
},
{
id: 3,
time: "12:15",
time: "10:00",
type: "strategy",
title: "如何选择岗位:发展前景+稳定性+岗位匹配",
title: "明确岗位选择标准:发展前景稳定性匹配",
content: "从三个维度评估岗位选择,确保职业发展的可持续性。"
},
{
id: 4,
time: "18:30",
time: "20:00",
type: "technique",
title: "简历:从通用型到专属型",
title: "简历优化:从通用型到目标导向型",
content: "针对不同岗位定制简历,提高简历通过率和面试机会。"
},
{
id: 5,
time: "23:20",
time: "30:00",
type: "technique",
title: "项目案例包装:如何把'执行助理'写成'策划支持'",
title: "项目与成果包装:让经历体现价值",
content: "通过职能升级和价值展现,提升项目经验的含金量。"
},
{
id: 6,
time: "28:15",
time: "35:00",
type: "technique",
title: "招聘平台差异与投递建议",
title: "招聘渠道策略:精准投递策略讲解与平台差异",
content: "了解不同招聘平台特点,制定差异化投递策略。"
},
{
id: 7,
time: "35:40",
time: "40:00",
type: "advice",
title: "群面发言逻辑",
content: "掌握群面发言技巧,展现团队协作能力和领导潜质。"
},
{
id: 8,
time: "41:05",
time: "45:00",
type: "advice",
title: "个人面试答题套路",
title: "不同类型面试官的关注点",
content: "结构化回答面试问题,让回答更有逻辑和说服力。"
},
{
id: 9,
time: "48:20",
time: "50:00",
type: "advice",
title: "不同类型的面试官的关注点",
title: "面试重点:薪资谈判、常见问题、避坑技巧",
content: "识别面试官类型,针对性调整沟通策略和重点。"
},
{
id: 10,
time: "56:50",
time: "1:05:00",
type: "advice",
title: "面试流程重点:薪资谈判/常见问题/避坑要点",
title: "面试复盘与答题库建立",
content: "掌握面试各环节要点避免常见错误争取最佳offer。"
},
{
id: 11,
time: "1:05:10",
time: "1:10:00",
type: "technique",
title: "面试后复盘:如何记录与形成答题库",
title: "行业与岗位分析:找到合适切入口",
content: "系统化总结面试经验,持续优化面试表现。"
},
{
id: 12,
time: "1:15:25",
time: "1:20:00",
type: "qa",
title: "商业活动策划行业的深度解读",
title: "岗位梯度规划:当前可进 / 努力可进 / 暂不可进",
content: "全面了解行业现状、发展趋势和职业路径。"
},
{
id: 13,
time: "1:26:40",
time: "1:30:00",
type: "qa",
title: "岗位梯度讲解:当前可进/努力可进/暂不可进",
title: "职业成长路径:从执行到核心岗位的晋升路线",
content: "理性评估自身条件,制定阶梯式求职策略。"
},
{
id: 14,
time: "1:38:20",
time: "1:45:00",
type: "timeline",
title: "曲线就业路径:先执行再策划,再到项目经理",
title: "回顾核心收获与重点策略",
content: "规划清晰的职业发展路径,逐步实现职业目标。"
},
{
id: 15,
time: "1:52:30",
time: "1:50:00",
type: "qa",
title: "会展策划师从简历到面试的完整举例说明",
title: "明确后续行动清单与执行节奏",
content: "通过实际案例,展示完整的求职准备过程。"
},
{
id: 16,
time: "2:03:15",
time: "1:55:00",
type: "strategy",
title: "总结如何用项目经验打动HR",
title: "布置求职任务与跟进计划",
content: "提炼项目亮点,用数据和成果征服面试官。"
}
],

View File

@@ -1989,7 +1989,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚毕业的大专生,主修市场营销,对二次元文化和周边商品运营充满热情。在"谷子店开店与经营管理"项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。`
我是一名刚毕业的大专生,主修旅游管理,对二次元文化和周边商品运营充满热情。在"谷子店开店与经营管理"项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。`
},
oldContent: `# 对应岗位:二次元周边选品专员
@@ -2040,7 +2040,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚毕业的大专生,主修市场营销对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。`,
我是一名刚毕业的大专生,主修旅游管理对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。`,
studentInfo: {
project_experience: {
project_name: "谷子店开店与经营管理",
@@ -2076,7 +2076,7 @@ const resumeTemplates = {
"文旅行业理解能力:具备现代文旅产业结构与政策环境的整体认知,了解旅游资源分类、游客行为特征与行业合规要点,初步建立了岗位适应能力。",
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
],
personal_summary: "我是一名刚毕业的大专生,主修市场营销对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
personal_summary: "我是一名刚毕业的大专生,主修旅游管理对二次元文化和周边商品运营充满热情。在“谷子店开店与经营管理”项目中我深入参与了用户分析、选品规划、供应商协作、库存管理与UGC传播等多个环节并逐步理解了线上线下渠道协同的实际运作机制。实习期间我注重市场洞察与数据复盘具备独立推进选品流程的实践意识和执行能力。未来希望能继续深耕二次元品类选品与运营方向成为能够连接IP文化与用户喜好的专业选品能手。"
}
},
{
@@ -2136,7 +2136,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名热爱二次元文化并刚完成大专实习的市场营销专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。`
我是一名热爱二次元文化并刚完成大专实习的旅游管理专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。`
},
studentInfo: {
project_experience: {
@@ -2177,7 +2177,7 @@ const resumeTemplates = {
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名热爱二次元文化并刚完成大专实习的市场营销专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
personal_summary: "我是一名热爱二次元文化并刚完成大专实习的旅游管理专业毕业生。参与“谷子店开店与经营管理”项目时我承担了产品陈列、客户服务、库存管理、活动执行与视觉维护等多职能工作。熟悉门店运营流程具备细致的客户互动能力和良好的动手协调意识。我热衷于为粉丝提供温暖且有趣的消费体验期待在二次元零售领域继续将热情与专业融合成为一名懂IP、会运营、能执行的优秀店员。"
}
},
{
@@ -2235,7 +2235,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的市场营销专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。`
我是一名刚完成实习的旅游管理专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。`
},
studentInfo: {
project_experience: {
@@ -2274,7 +2274,7 @@ const resumeTemplates = {
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
],
personal_summary: "我是一名刚完成实习的市场营销专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
personal_summary: "我是一名刚完成实习的旅游管理专业大专毕业生对二次元文化与周边零售运营充满热情。在“谷子店开店与经营管理”项目中我深度参与了从门店运营、IP合规管理、动线规划、商品结构优化、社群营销到团队培训与指标监控等多个核心环节。通过活动策划与流程落地我逐步体会到门店营业节奏与用户体验的细节平衡。未来希望在二次元IP零售领域深入发展成为一名兼具文化敏感度与运营执行力的店铺管理者。"
}
}
],
@@ -5103,7 +5103,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名主修市场营销的大专毕业生,对会展项目富有热情。在"2024年深圳国际家具展策划项目"中,我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节,具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识,能够高效配合团队完成任务。未来,我希望继续在会展策划领域深入发展,成为一名兼具策略性思维与执行力的策划专家。`,
我是一名主修旅游管理的大专毕业生,对会展项目富有热情。在"2024年深圳国际家具展策划项目"中,我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节,具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识,能够高效配合团队完成任务。未来,我希望继续在会展策划领域深入发展,成为一名兼具策略性思维与执行力的策划专家。`,
modified: `# 对应岗位:会展策划师
# 一、项目经历
@@ -5157,7 +5157,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名主修市场营销的大专毕业生,对会展项目富有热情。在"2024年深圳国际家具展策划项目"中,我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节,具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识,能够高效配合团队完成任务。未来,我希续在会展策划领域深入发展,成为一名兼具策略性思维与执行力的策划专家。`
我是一名主修旅游管理的大专毕业生,对会展项目富有热情。在"2024年深圳国际家具展策划项目"中,我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节,具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识,能够高效配合团队完成任务。未来,我希续在会展策划领域深入发展,成为一名兼具策略性思维与执行力的策划专家。`
},
studentInfo: {
project_experience: {
@@ -5198,7 +5198,7 @@ const resumeTemplates = {
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
],
personal_summary: "我是一名主修市场营销的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
personal_summary: "我是一名主修旅游管理的大专毕业生对会展项目富有热情。在“2024年深圳国际家具展策划项目”中我协助完成了从主题定位、视觉素材策划、动线设计、现场执行到传播复盘的多项核心环节具备流程控制与资源协调的实操经验。我注重细节、具备快速响应能力与多方沟通意识能够高效配合团队完成任务。未来我希望继续在会展策划领域深入发展成为一名兼具策略性思维与执行力的策划专家。"
}
},
{
@@ -5257,7 +5257,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的大专毕业生,主修市场营销专业,对会展项目执行与现场管理充满热情。在"深圳国际家具展"中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。`,
我是一名刚完成实习的大专毕业生,主修旅游管理专业,对会展项目执行与现场管理充满热情。在"深圳国际家具展"中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为一名专业可靠的会展执行人才。`,
modified: `# 会展执行助理
# 对应岗位:会展执行助理
@@ -5312,7 +5312,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的大专毕业生,主修市场营销专业,对会展项目执行与现场管理充满热情。在"深圳国际家具展"中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为 一名值得信赖、不断成长的 会展执行人才。`
我是一名刚完成实习的大专毕业生,主修旅游管理专业,对会展项目执行与现场管理充满热情。在"深圳国际家具展"中,我协助会场布展、动线控制、观众引导、展商协调与内容发布等多个关键环节,实际体验了执行流程中对细节与反应力的要求。实习过程中,我注重沟通效率、流程整理和应变能力,具备较强的执行力与团队协作意识。未来希望在会展和活动项目的现场管理与运营支持方向继续成长,成为 一名值得信赖、不断成长的 会展执行人才。`
},
oldContent: `# 对应岗位:会展执行助理
@@ -5379,7 +5379,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的大专毕业生,主修市场营销,具有出色情商与表达能力。在"2024年深圳国际家具展策划项目"中,我担任会展讲解助理,负责展览现场引导、观众沟通与互动引导,通过精准传达展览主题与控制动线节奏,提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调,并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展,成为具有专业表达力与观众连接能力的优秀人才。`,
我是一名刚完成实习的大专毕业生,主修旅游管理,具有出色情商与表达能力。在"2024年深圳国际家具展策划项目"中,我担任会展讲解助理,负责展览现场引导、观众沟通与互动引导,通过精准传达展览主题与控制动线节奏,提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调,并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展,成为具有专业表达力与观众连接能力的优秀人才。`,
modified: `# 对应岗位:会展讲解员
# 一、项目经历
@@ -5435,7 +5435,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的大专毕业生,主修市场营销,具备较好的沟通与表达能力。在"2024年深圳国际家具展策划项目"中,我担任会展讲解助理,负责展览现场引导、观众沟通与互动支持,通过传达展览主题与协助动线控制,提升了观众体验。实习过程中我注重形象仪态、语言表达与服务意识,并积极参与展后反馈整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展,成为一名不断进步、能与观众建立良好连接的专业人才。`
我是一名刚完成实习的大专毕业生,主修旅游管理,具备较好的沟通与表达能力。在"2024年深圳国际家具展策划项目"中,我担任会展讲解助理,负责展览现场引导、观众沟通与互动支持,通过传达展览主题与协助动线控制,提升了观众体验。实习过程中我注重形象仪态、语言表达与服务意识,并积极参与展后反馈整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展,成为一名不断进步、能与观众建立良好连接的专业人才。`
},
studentInfo: {
project_experience: {
@@ -5478,7 +5478,7 @@ const resumeTemplates = {
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名刚完成实习的大专毕业生,主修市场营销具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
personal_summary: "我是一名刚完成实习的大专毕业生,主修旅游管理具有出色情商与表达能力。在“2024年深圳国际家具展策划项目”中我担任会展讲解助理负责展览现场引导、观众沟通与互动引导通过精准传达展览主题与控制动线节奏提升观众体验。实习过程中我注重形象仪态、语言表达与服务协调并积极参与展后复盘与数据整理。未来希望在会展讲解、新媒体传播或展览运营领域持续发展成为具有专业表达力与观众连接能力的优秀人才。"
}
},
{
@@ -5530,7 +5530,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名主修市场营销专业的大专毕业生,热爱会展行业并具备扎实的营销基础知识。在"2024 合肥国际 3C 电子产业博览会策划项目"中我协助完成了主题传播、视觉设计、商务对接、议程管理与展后分析等营销核心工作。通过实践我熟悉了会展营销全流程能够运用SWOT分析等工具制定营销策略善于促进参展商与观众的互动。未来我希望在会展营销领域深耕成为一名具备创新思维和专业执行力的会展营销专家。`
我是一名主修旅游管理专业的大专毕业生,热爱会展行业并具备扎实的营销基础知识。在"2024 合肥国际 3C 电子产业博览会策划项目"中我协助完成了主题传播、视觉设计、商务对接、议程管理与展后分析等营销核心工作。通过实践我熟悉了会展营销全流程能够运用SWOT分析等工具制定营销策略善于促进参展商与观众的互动。未来我希望在会展营销领域深耕成为一名具备创新思维和专业执行力的会展营销专家。`
},
studentInfo: {
project_experience: {
@@ -5563,7 +5563,7 @@ const resumeTemplates = {
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名主修市场营销的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
personal_summary: "我是一名主修旅游管理的应届大专毕业生对会展营销与线下推广充满热情。在“2024合肥国际3C电子产业博览会策划项目”中我协助从视觉识别、买家对接、现场流程、议程组织、数据复盘到客户转化等关键环节有效支持了项目顺利执行。通过跨部门协调沟通我增强了统筹能力与执行意识。未来希望在会展运营与品牌传播方向持续成长成为兼具策略思维与实操执行力的营销型人才。"
}
},
{
@@ -5617,7 +5617,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名刚完成实习的大专毕业生,主修市场营销专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。`
我是一名刚完成实习的大专毕业生,主修旅游管理专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。`
},
studentInfo: {
project_experience: {
@@ -5652,7 +5652,7 @@ const resumeTemplates = {
"智慧文旅应用能力了解OTA平台、票务分销、导览系统、智能设备及智慧酒店等新型文旅科技应用具备智慧场景运营的基础认知与设备使用能力。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名刚完成实习的大专毕业生,主修市场营销专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
personal_summary: "我是一名刚完成实习的大专毕业生,主修旅游管理专业对会展现场执行与运营充满热情。在“合肥国际3C电子产业博览会”项目中我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长成为一名可信赖且具备高执行力的执行专员。"
}
},
{

View File

@@ -8064,7 +8064,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8112,7 +8112,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8145,7 +8145,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8196,7 +8196,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8243,7 +8243,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8275,7 +8275,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -6120,7 +6120,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -6153,7 +6153,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -6204,7 +6204,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -6236,7 +6236,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -7998,7 +7998,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8046,7 +8046,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8079,7 +8079,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8130,7 +8130,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8177,7 +8177,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8209,7 +8209,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -8013,7 +8013,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8061,7 +8061,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8094,7 +8094,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8145,7 +8145,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8192,7 +8192,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8224,7 +8224,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -7998,7 +7998,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8046,7 +8046,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8079,7 +8079,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8130,7 +8130,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8177,7 +8177,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8209,7 +8209,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -6213,7 +6213,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -6261,7 +6261,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -6294,7 +6294,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -6345,7 +6345,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -6392,7 +6392,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -6424,7 +6424,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -8008,7 +8008,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8056,7 +8056,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8089,7 +8089,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8140,7 +8140,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8187,7 +8187,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8219,7 +8219,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -8008,7 +8008,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -8056,7 +8056,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -8089,7 +8089,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -8140,7 +8140,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -8187,7 +8187,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -8219,7 +8219,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -6213,7 +6213,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -6261,7 +6261,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -6294,7 +6294,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -6345,7 +6345,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -6392,7 +6392,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -6424,7 +6424,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -5434,7 +5434,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -5482,7 +5482,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -5515,7 +5515,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{

View File

@@ -6213,7 +6213,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`,
modified: `# 旅游规划师
# 对应岗位:旅游规划师
@@ -6261,7 +6261,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。`
},
studentInfo: {
project_experience: {
@@ -6294,7 +6294,7 @@ const resumeTemplates = {
"文化IP策划与品牌传播能力理解本地文化IP的挖掘逻辑与数字化表达方式具备参与品牌定位、跨界联动与差异化推广的初步经验。",
"活动执行与现场管理能力:了解活动从前期策划、主题创意、文案撰写、宣传推广,到流程设计、现场布置、预算管理、应急预案及数据复盘的完整流程,具备基础的统筹与执行配合能力。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
}
},
{
@@ -6345,7 +6345,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`,
modified: `# 旅游计调专员
# 对应岗位:旅游计调专员
@@ -6392,7 +6392,7 @@ const resumeTemplates = {
# 三、个人总结
我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。`
},
studentInfo: {
project_experience: {
@@ -6424,7 +6424,7 @@ const resumeTemplates = {
"商业视觉表达与工具应用能力了解平面设计、色彩搭配、字体表现与视觉规范的基础知识能使用Canva、Figma、Photoshop、剪映等工具进行简单的视觉表达与内容制作。",
"AIGC工具使用能力了解AIGC内容生成逻辑能够使用ChatGPT、Stable Diffusion、Suno等AI工具完成图像生成、文案创作与音视频剪辑等初级创作任务。",
],
personal_summary: "我是一名旅游管理专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
personal_summary: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
}
},
{

View File

@@ -4,7 +4,7 @@ const AgentPage = () => {
return (
<div className="agent-page-wrapper">
<iframe
src="http://192.168.2.33:4173"
src="http://127.0.0.1:4173"
className="agent-page-iframe"
title="Agent"
frameBorder="0"

View File

@@ -1,44 +1,15 @@
import { useState, useCallback } from "react";
import { Empty } from "@arco-design/web-react";
import { useNavigate } from "react-router-dom";
import JobList from "@/pages/CompanyJobsPage/components/JobList";
import InfiniteScroll from "@/components/InfiniteScroll";
import { getJobsList } from "@/services";
import "./index.css";
const PAGE_SIZE = 20;
const CompanyJobsListPage = () => {
const navigate = useNavigate();
const [jobs, setJobs] = useState([]);
const [listPage, setListPage] = useState(1);
const [listHasMore, setListHasMore] = useState(true);
// 返回到企业内推岗位页面
const handleBack = () => {
navigate("/company-jobs");
};
const fetchJobs = useCallback(async () => {
const res = await getJobsList({
page: listPage,
pageSize: PAGE_SIZE,
isActive: true,
});
if (res.success) {
// Mock数据已经是前端格式不需要映射
setJobs((prevList) => {
const newList = [...prevList, ...res.data];
if (res.total === newList?.length) {
setListHasMore(false);
} else {
setListPage((prevPage) => prevPage + 1);
}
return newList;
});
}
}, [listPage]);
return (
<div className="company-jobs-list-page">
{/* 返回按钮 */}
@@ -49,14 +20,16 @@ const CompanyJobsListPage = () => {
</button>
</div>
<InfiniteScroll
loadMore={fetchJobs}
hasMore={listHasMore}
empty={jobs.length === 0}
className="company-jobs-list-page-wrapper"
>
<JobList data={jobs} className="jobs-list-margin" />
</InfiniteScroll>
<div className="company-jobs-list-page-wrapper">
<Empty
description="暂无岗位数据"
style={{
paddingTop: '200px',
fontSize: '16px',
color: '#86909c'
}}
/>
</div>
</div>
);
};

View File

@@ -0,0 +1,64 @@
import { useState, useCallback } from "react";
import { useNavigate } from "react-router-dom";
import JobList from "@/pages/CompanyJobsPage/components/JobList";
import InfiniteScroll from "@/components/InfiniteScroll";
import { getJobsList } from "@/services";
import "./index.css";
const PAGE_SIZE = 20;
const CompanyJobsListPage = () => {
const navigate = useNavigate();
const [jobs, setJobs] = useState([]);
const [listPage, setListPage] = useState(1);
const [listHasMore, setListHasMore] = useState(true);
// 返回到企业内推岗位页面
const handleBack = () => {
navigate("/company-jobs");
};
const fetchJobs = useCallback(async () => {
const res = await getJobsList({
page: listPage,
pageSize: PAGE_SIZE,
isActive: true,
});
if (res.success) {
// Mock数据已经是前端格式不需要映射
setJobs((prevList) => {
const newList = [...prevList, ...res.data];
if (res.total === newList?.length) {
setListHasMore(false);
} else {
setListPage((prevPage) => prevPage + 1);
}
return newList;
});
}
}, [listPage]);
return (
<div className="company-jobs-list-page">
{/* 返回按钮 */}
<div className="back-button-wrapper">
<button className="back-button" onClick={handleBack}>
<span className="back-icon">←</span>
<span className="back-text">返回</span>
</button>
</div>
<InfiniteScroll
loadMore={fetchJobs}
hasMore={listHasMore}
empty={jobs.length === 0}
className="company-jobs-list-page-wrapper"
>
<JobList data={jobs} className="jobs-list-margin" />
</InfiniteScroll>
</div>
);
};
export default CompanyJobsListPage;

View File

@@ -448,4 +448,14 @@
}
}
}
.company-jobs-page-empty-state {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #ffffff;
border-radius: 8px;
}
}

View File

@@ -1,375 +1,79 @@
import { useState, useEffect } from "react";
import { useSelector } from "react-redux";
import { Empty } from "@arco-design/web-react";
import { useNavigate } from "react-router-dom";
import { Spin, Empty } from "@arco-design/web-react";
// import { mapJobList, mapInterviewList } from "@/utils/dataMapper"; // 不再需要映射器mock数据已经是前端格式
import InfiniteScroll from "@/components/InfiniteScroll";
import toast from "@/components/Toast";
import JobList from "./components/JobList";
import InterviewStatusAnimation from "./components/InterviewStatusAnimation";
import JobInfoModal from "./components/JobInfoModal";
import {
getCompanyJobsPageData,
getJobsList,
getInterviewsList,
getJobsDetail,
} from "@/services";
import { getJobByPosition } from "@/services/companyJobsNew";
import "./index.css";
const PAGE_SIZE = 10;
const CompanyJobsPage = () => {
const studentInfo = useSelector((state) => state.student.studentInfo);
const [jobs, setJobs] = useState([]);
const [jobsListPage, setJobsListPage] = useState(1);
const [jobsListHasMore, setJobsListHasMore] = useState(true);
const [interviews, setInterviews] = useState([]);
const [interviewsPage, setInterviewsPage] = useState(1);
const [interviewsHasMore, setInterviewsHasMore] = useState(true);
const [initialDataLoaded, setInitialDataLoaded] = useState(false);
const [loading, setLoading] = useState(true);
const [expandedItemId, setExpandedItemId] = useState(null);
const [jobDetailVisible, setJobDetailVisible] = useState(false);
const [selectedJob, setSelectedJob] = useState(null);
const [isFromInterview, setIsFromInterview] = useState(false); // 标识是否从面试状态卡片点击
const navigate = useNavigate();
// 初始化页面数据 - 使用聚合接口
useEffect(() => {
const fetchInitialData = async () => {
try {
setLoading(true);
const res = await getCompanyJobsPageData({
studentId: studentInfo?.id,
});
if (res?.success) {
// 设置面试数据
let interviewsData = [];
if (res.data?.interviews) {
// Mock数据已经是前端格式直接使用不需要映射
interviewsData = res.data.interviews.list || [];
setInterviews(interviewsData);
setInterviewsHasMore(res.data.interviews.hasMore);
if (interviewsData.length > 0) {
setInterviewsPage(2); // 下次从第2页开始
}
}
// 设置岗位数据 - 包含已投递的岗位
if (res.data?.jobs) {
// Mock数据已经是前端格式直接使用不需要映射
const jobsList = res.data.jobs.list || [];
// 从面试数据中提取已投递的岗位信息
const deliveredJobs = interviewsData.map(interview => {
// 确保有完整的岗位数据
const jobData = interview.job || {};
return {
id: `delivered-${interview.id}`, // 使用特殊的ID标识已投递岗位
position: interview.position,
isDelivered: true, // 标记为已投递
interviewTime: interview.interviewTime,
interviewStatus: interview.statusText,
originalInterviewId: interview.id,
// 从job对象中提取所有必要字段
salary: jobData.salary || "面议",
tags: jobData.tags || [],
location: jobData.location || "待定",
education: jobData.education || "待定",
jobCategory: jobData.jobCategory || "专业相关岗位",
remainingPositions: jobData.remainingPositions || 5,
deadline: jobData.deadline || "2025-12-31",
jobType: jobData.jobType || "job",
requirements: jobData.requirements || "",
description: jobData.description || "",
welfare: jobData.welfare || [],
companyInfo: jobData.companyInfo || "",
companyImages: jobData.companyImages || []
};
}).filter(job => job.position); // 过滤掉没有岗位信息的项
// 分离未投递和已过期的岗位
const activeJobs = jobsList.filter(job => !job.isExpired && job.status !== 'expired');
const expiredJobs = jobsList.filter(job => job.isExpired || job.status === 'expired');
// 按照顺序合并:未投递 -> 已投递 -> 已过期
const allJobs = [...activeJobs, ...deliveredJobs, ...expiredJobs];
setJobs(allJobs);
setJobsListHasMore(res.data.jobs.hasMore);
if (allJobs.length > 0) {
setJobsListPage(2); // 下次从第2页开始
}
}
setInitialDataLoaded(true);
}
} catch (error) {
console.error("Failed to fetch initial page data:", error);
// 如果聚合接口失败,回退到原来的方式
setInitialDataLoaded(true);
// 显示错误信息给用户
if (toast && toast.error) {
toast.error("加载数据失败,请刷新重试");
}
} finally {
setLoading(false);
}
};
fetchInitialData();
}, [studentInfo?.id]);
// 获取面试信息 - 用于分页加载更多
const fetchInterviewsData = async () => {
// 如果初始数据还没加载完成,或者是第一页且已有初始数据,则跳过
if (!initialDataLoaded || (interviewsPage === 1 && interviews.length > 0)) {
return;
}
if (studentInfo?.id) {
const res = await getInterviewsList({
page: interviewsPage,
pageSize: PAGE_SIZE,
studentId: studentInfo?.id,
status: "SCHEDULED",
});
if (res.success) {
// Mock数据已经是前端格式直接使用
const interviews = res.data || [];
setInterviews((prevList) => {
// 去重处理:过滤掉已存在的数据
const existingIds = new Set(
prevList.map((interview) => interview.id)
);
const newInterviews = interviews.filter(
(interview) => !existingIds.has(interview.id)
);
const newList = [...prevList, ...newInterviews];
if (res.total <= newList?.length) {
setInterviewsHasMore(false);
} else {
setInterviewsPage((prevPage) => prevPage + 1);
}
return newList;
});
} else {
if (interviewsPage === 1) {
setInterviews([]);
}
toast.error(res.message);
}
}
};
// 处理面试状态点击
const handleStatusClick = (e, item) => {
e.stopPropagation();
// 如果点击的是已展开的项,则收起;否则展开新项
if (expandedItemId === item.id) {
setExpandedItemId(null);
} else {
setExpandedItemId(item.id);
}
};
// 获取企业内推岗位 - 用于分页加载更多
const fetchJobsList = async () => {
// 如果初始数据还没加载完成,或者是第一页且已有初始数据,则跳过
if (!initialDataLoaded || (jobsListPage === 1 && jobs.length > 0)) {
return;
}
// 防止重复请求
if (jobsListPage === 1 && jobs.length === 0) {
return; // 初始数据应该通过聚合接口加载
}
try {
const res = await getJobsList({
page: jobsListPage,
pageSize: PAGE_SIZE,
isActive: true,
});
if (res?.success) {
// Mock数据已经是前端格式直接使用
const jobs = res.data;
setJobs((prevList) => {
// 去重处理:过滤掉已存在的数据
const existingIds = new Set(prevList.map((job) => job.id));
const newJobs = jobs.filter((job) => !existingIds.has(job.id));
const newList = [...prevList, ...newJobs];
if (res.total <= newList?.length) {
setJobsListHasMore(false);
} else {
setJobsListPage((prevPage) => prevPage + 1);
}
return newList;
});
}
} catch (error) {
console.error("Failed to fetch data:", error);
if (jobsListPage === 1) {
setJobs([]);
}
}
};
const handleJobWrapperClick = () => {
navigate("/company-jobs-list");
};
// 处理岗位卡片点击,显示岗位详情
const handleJobCardClick = async (item) => {
// 直接从企业内推岗位库中查找对应的岗位
if (item.position) {
const jobData = getJobByPosition(item.position);
if (jobData) {
setSelectedJob(jobData);
setIsFromInterview(true); // 标记是从面试状态卡片点击的
setJobDetailVisible(true);
} else {
toast.error("未找到对应的岗位详情");
}
} else {
toast.error("无法获取岗位详情");
}
};
return (
<div className="company-jobs-page-wrapper">
<div className="company-jobs-page">
{loading ? (
<Spin size={80} className="company-jobs-page-spin" />
) : (
<>
<div
className="company-jobs-page-left"
<div className="company-jobs-page-left">
<div className="company-jobs-page-header">
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5w4Kcw4H.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
企业内推岗位库
</p>
<button
className="view-all-jobs-btn"
onClick={handleJobWrapperClick}
>
<div className="company-jobs-page-header">
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5w4Kcw4H.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
企业内推岗位库
</p>
<button
className="view-all-jobs-btn"
onClick={handleJobWrapperClick}
>
查看全部岗位
</button>
</div>
<InfiniteScroll
loadMore={fetchJobsList}
hasMore={jobsListHasMore}
className="company-jobs-page-left-list-wrapper"
>
<JobList data={jobs} />
</InfiniteScroll>
</div>
<div className="company-jobs-page-interview-wrapper">
<div
className="company-jobs-page-interview"
>
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5wqNngw9.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
岗位面试状态
</p>
<InfiniteScroll
loadMore={fetchInterviewsData}
hasMore={interviewsHasMore}
empty={interviews.length === 0}
className="company-jobs-page-interview-list"
>
{interviews.map((item) => (
<div key={item.id} className="interview-item-wrapper">
<li
className="company-jobs-page-interview-item"
onClick={() => handleJobCardClick(item)}
style={{ cursor: 'pointer' }}
>
<div className="company-jobs-page-interview-item-info">
<p className="company-jobs-page-interview-item-info-position">
{item.position}
</p>
{item.job?.tags?.length > 0 ? (
<ul className="company-jobs-page-interview-item-info-tags">
{item.job.tags.map((tag) => (
<li
className="company-jobs-page-interview-item-info-tag"
key={tag}
>
{tag}
</li>
))}
</ul>
) : null}
<span className="company-jobs-page-interview-item-info-salary">
{item.job?.salary || "面议"}
</span>
</div>
<div className="company-jobs-page-interview-item-btn-wrapper">
<span>{item.interviewTime}</span>
<div
className={`company-jobs-page-interview-item-btn ${
item.status !== "COMPLETED" &&
"company-jobs-page-interview-item-btn-active"
}`}
onClick={(e) => handleStatusClick(e, item)}
style={{ cursor: 'pointer' }}
>
{item.statusText}
</div>
</div>
</li>
<InterviewStatusAnimation
statusText={item.statusText}
isOpen={expandedItemId === item.id}
stageDate={item.stageDate}
/>
</div>
))}
</InfiniteScroll>
</div>
</div>
</>
)}
</div>
查看全部岗位
</button>
</div>
<div className="company-jobs-page-left-list-wrapper">
<Empty
description="暂无岗位数据"
style={{
paddingTop: '100px',
fontSize: '14px',
color: '#86909c'
}}
/>
</div>
</div>
{/* 岗位详情弹窗 */}
<JobInfoModal
visible={jobDetailVisible}
onClose={() => {
setJobDetailVisible(false);
setSelectedJob(null);
setIsFromInterview(false); // 重置标志
}}
data={selectedJob}
directToResume={false}
hideDeliverButton={isFromInterview} // 传递是否隐藏投递按钮的标志
/>
<div className="company-jobs-page-interview-wrapper">
<div className="company-jobs-page-interview">
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5wqNngw9.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
岗位面试状态
</p>
<div className="company-jobs-page-interview-list">
<Empty
description="暂无面试数据"
style={{
paddingTop: '100px',
fontSize: '14px',
color: '#86909c'
}}
/>
</div>
</div>
</div>
</div>
</div>
);
};

View File

@@ -0,0 +1,377 @@
import { useState, useEffect } from "react";
import { useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { Spin, Empty } from "@arco-design/web-react";
// import { mapJobList, mapInterviewList } from "@/utils/dataMapper"; // 不再需要映射器mock数据已经是前端格式
import InfiniteScroll from "@/components/InfiniteScroll";
import toast from "@/components/Toast";
import JobList from "./components/JobList";
import InterviewStatusAnimation from "./components/InterviewStatusAnimation";
import JobInfoModal from "./components/JobInfoModal";
import {
getCompanyJobsPageData,
getJobsList,
getInterviewsList,
getJobsDetail,
} from "@/services";
import { getJobByPosition } from "@/services/companyJobsNew";
import "./index.css";
const PAGE_SIZE = 10;
const CompanyJobsPage = () => {
const studentInfo = useSelector((state) => state.student.studentInfo);
const [jobs, setJobs] = useState([]);
const [jobsListPage, setJobsListPage] = useState(1);
const [jobsListHasMore, setJobsListHasMore] = useState(true);
const [interviews, setInterviews] = useState([]);
const [interviewsPage, setInterviewsPage] = useState(1);
const [interviewsHasMore, setInterviewsHasMore] = useState(true);
const [initialDataLoaded, setInitialDataLoaded] = useState(false);
const [loading, setLoading] = useState(true);
const [expandedItemId, setExpandedItemId] = useState(null);
const [jobDetailVisible, setJobDetailVisible] = useState(false);
const [selectedJob, setSelectedJob] = useState(null);
const [isFromInterview, setIsFromInterview] = useState(false); // 标识是否从面试状态卡片点击
const navigate = useNavigate();
// 初始化页面数据 - 使用聚合接口
useEffect(() => {
const fetchInitialData = async () => {
try {
setLoading(true);
const res = await getCompanyJobsPageData({
studentId: studentInfo?.id,
});
if (res?.success) {
// 设置面试数据
let interviewsData = [];
if (res.data?.interviews) {
// Mock数据已经是前端格式直接使用不需要映射
interviewsData = res.data.interviews.list || [];
setInterviews(interviewsData);
setInterviewsHasMore(res.data.interviews.hasMore);
if (interviewsData.length > 0) {
setInterviewsPage(2); // 下次从第2页开始
}
}
// 设置岗位数据 - 包含已投递的岗位
if (res.data?.jobs) {
// Mock数据已经是前端格式直接使用不需要映射
const jobsList = res.data.jobs.list || [];
// 从面试数据中提取已投递的岗位信息
const deliveredJobs = interviewsData.map(interview => {
// 确保有完整的岗位数据
const jobData = interview.job || {};
return {
id: `delivered-${interview.id}`, // 使用特殊的ID标识已投递岗位
position: interview.position,
isDelivered: true, // 标记为已投递
interviewTime: interview.interviewTime,
interviewStatus: interview.statusText,
originalInterviewId: interview.id,
// 从job对象中提取所有必要字段
salary: jobData.salary || "面议",
tags: jobData.tags || [],
location: jobData.location || "待定",
education: jobData.education || "待定",
jobCategory: jobData.jobCategory || "专业相关岗位",
remainingPositions: jobData.remainingPositions || 5,
deadline: jobData.deadline || "2025-12-31",
jobType: jobData.jobType || "job",
requirements: jobData.requirements || "",
description: jobData.description || "",
welfare: jobData.welfare || [],
companyInfo: jobData.companyInfo || "",
companyImages: jobData.companyImages || []
};
}).filter(job => job.position); // 过滤掉没有岗位信息的项
// 分离未投递和已过期的岗位
const activeJobs = jobsList.filter(job => !job.isExpired && job.status !== 'expired');
const expiredJobs = jobsList.filter(job => job.isExpired || job.status === 'expired');
// 按照顺序合并:未投递 -> 已投递 -> 已过期
const allJobs = [...activeJobs, ...deliveredJobs, ...expiredJobs];
setJobs(allJobs);
setJobsListHasMore(res.data.jobs.hasMore);
if (allJobs.length > 0) {
setJobsListPage(2); // 下次从第2页开始
}
}
setInitialDataLoaded(true);
}
} catch (error) {
console.error("Failed to fetch initial page data:", error);
// 如果聚合接口失败,回退到原来的方式
setInitialDataLoaded(true);
// 显示错误信息给用户
if (toast && toast.error) {
toast.error("加载数据失败,请刷新重试");
}
} finally {
setLoading(false);
}
};
fetchInitialData();
}, [studentInfo?.id]);
// 获取面试信息 - 用于分页加载更多
const fetchInterviewsData = async () => {
// 如果初始数据还没加载完成,或者是第一页且已有初始数据,则跳过
if (!initialDataLoaded || (interviewsPage === 1 && interviews.length > 0)) {
return;
}
if (studentInfo?.id) {
const res = await getInterviewsList({
page: interviewsPage,
pageSize: PAGE_SIZE,
studentId: studentInfo?.id,
status: "SCHEDULED",
});
if (res.success) {
// Mock数据已经是前端格式直接使用
const interviews = res.data || [];
setInterviews((prevList) => {
// 去重处理:过滤掉已存在的数据
const existingIds = new Set(
prevList.map((interview) => interview.id)
);
const newInterviews = interviews.filter(
(interview) => !existingIds.has(interview.id)
);
const newList = [...prevList, ...newInterviews];
if (res.total <= newList?.length) {
setInterviewsHasMore(false);
} else {
setInterviewsPage((prevPage) => prevPage + 1);
}
return newList;
});
} else {
if (interviewsPage === 1) {
setInterviews([]);
}
toast.error(res.message);
}
}
};
// 处理面试状态点击
const handleStatusClick = (e, item) => {
e.stopPropagation();
// 如果点击的是已展开的项,则收起;否则展开新项
if (expandedItemId === item.id) {
setExpandedItemId(null);
} else {
setExpandedItemId(item.id);
}
};
// 获取企业内推岗位 - 用于分页加载更多
const fetchJobsList = async () => {
// 如果初始数据还没加载完成,或者是第一页且已有初始数据,则跳过
if (!initialDataLoaded || (jobsListPage === 1 && jobs.length > 0)) {
return;
}
// 防止重复请求
if (jobsListPage === 1 && jobs.length === 0) {
return; // 初始数据应该通过聚合接口加载
}
try {
const res = await getJobsList({
page: jobsListPage,
pageSize: PAGE_SIZE,
isActive: true,
});
if (res?.success) {
// Mock数据已经是前端格式直接使用
const jobs = res.data;
setJobs((prevList) => {
// 去重处理:过滤掉已存在的数据
const existingIds = new Set(prevList.map((job) => job.id));
const newJobs = jobs.filter((job) => !existingIds.has(job.id));
const newList = [...prevList, ...newJobs];
if (res.total <= newList?.length) {
setJobsListHasMore(false);
} else {
setJobsListPage((prevPage) => prevPage + 1);
}
return newList;
});
}
} catch (error) {
console.error("Failed to fetch data:", error);
if (jobsListPage === 1) {
setJobs([]);
}
}
};
const handleJobWrapperClick = () => {
navigate("/company-jobs-list");
};
// 处理岗位卡片点击,显示岗位详情
const handleJobCardClick = async (item) => {
// 直接从企业内推岗位库中查找对应的岗位
if (item.position) {
const jobData = getJobByPosition(item.position);
if (jobData) {
setSelectedJob(jobData);
setIsFromInterview(true); // 标记是从面试状态卡片点击的
setJobDetailVisible(true);
} else {
toast.error("未找到对应的岗位详情");
}
} else {
toast.error("无法获取岗位详情");
}
};
return (
<div className="company-jobs-page-wrapper">
<div className="company-jobs-page">
{loading ? (
<Spin size={80} className="company-jobs-page-spin" />
) : (
<>
<div
className="company-jobs-page-left"
>
<div className="company-jobs-page-header">
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5w4Kcw4H.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
企业内推岗位库
</p>
<button
className="view-all-jobs-btn"
onClick={handleJobWrapperClick}
>
查看全部岗位
</button>
</div>
<InfiniteScroll
loadMore={fetchJobsList}
hasMore={jobsListHasMore}
className="company-jobs-page-left-list-wrapper"
>
<JobList data={jobs} />
</InfiniteScroll>
</div>
<div className="company-jobs-page-interview-wrapper">
<div
className="company-jobs-page-interview"
>
<p className="company-jobs-page-title">
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5wqNngw9.png"
alt="icon"
style={{
width: '24px',
height: '24px',
marginRight: '8px',
verticalAlign: 'middle'
}}
/>
岗位面试状态
</p>
<InfiniteScroll
loadMore={fetchInterviewsData}
hasMore={interviewsHasMore}
empty={interviews.length === 0}
className="company-jobs-page-interview-list"
>
{interviews.map((item) => (
<div key={item.id} className="interview-item-wrapper">
<li
className="company-jobs-page-interview-item"
onClick={() => handleJobCardClick(item)}
style={{ cursor: 'pointer' }}
>
<div className="company-jobs-page-interview-item-info">
<p className="company-jobs-page-interview-item-info-position">
{item.position}
</p>
{item.job?.tags?.length > 0 ? (
<ul className="company-jobs-page-interview-item-info-tags">
{item.job.tags.map((tag) => (
<li
className="company-jobs-page-interview-item-info-tag"
key={tag}
>
{tag}
</li>
))}
</ul>
) : null}
<span className="company-jobs-page-interview-item-info-salary">
{item.job?.salary || "面议"}
</span>
</div>
<div className="company-jobs-page-interview-item-btn-wrapper">
<span>{item.interviewTime}</span>
<div
className={`company-jobs-page-interview-item-btn ${
item.status !== "COMPLETED" &&
"company-jobs-page-interview-item-btn-active"
}`}
onClick={(e) => handleStatusClick(e, item)}
style={{ cursor: 'pointer' }}
>
{item.statusText}
</div>
</div>
</li>
<InterviewStatusAnimation
statusText={item.statusText}
isOpen={expandedItemId === item.id}
stageDate={item.stageDate}
/>
</div>
))}
</InfiniteScroll>
</div>
</div>
</>
)}
</div>
{/* 岗位详情弹窗 */}
<JobInfoModal
visible={jobDetailVisible}
onClose={() => {
setJobDetailVisible(false);
setSelectedJob(null);
setIsFromInterview(false); // 重置标志
}}
data={selectedJob}
directToResume={false}
hideDeliverButton={isFromInterview} // 传递是否隐藏投递按钮的标志
/>
</div>
);
};
export default CompanyJobsPage;

View File

@@ -23,156 +23,32 @@ export default ({ selectedItem = "面试初体验" }) => {
}
};
// 判断是否是锁定的面试模拟项目
// 所有视频都显示锁定样式
const isLockedItem = () => {
return selectedItem === "第一次线下面试模拟" ||
selectedItem === "第二次线下面试模拟" ||
selectedItem === "第三次线下面试模拟";
return true;
};
// 根据选中项目获取评价数据
// 根据选中项目获取评价数据 - 所有数据改为0或空
const getEvaluationData = () => {
if (selectedItem === "未来的自己") {
return {
totalScore: 97, // 根据JSON计算的真实总分
professionalScore: 57, // (9+10+10+9+10+9)/6*10*0.6 = 57
performanceScore: 40, // (10+10+10+10)/4*10*0.4 = 40
radarData: [9, 10, 10, 9, 10, 9], // 六项专业能力指标来自JSON
radarData2: [10, 10, 10, 10], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
return {
totalScore: 0,
professionalScore: 0,
performanceScore: 0,
radarData: [0, 0, 0, 0, 0, 0],
radarData2: [0, 0, 0, 0],
title: "面试评价",
content: `# 专业能力
1. 专业知识学得特别扎实,讲核心概念的时候又准又清楚,还能随手举例子把道理说透,不光能把知识点讲明白,还能用实例帮人理解,一看就是专业底子特别厚,也很会用学到的知识;
2. 对行业里的产业链、还有未来的发展趋势摸得特别透,不光能说清产业链各个环节是怎么连起来的,还能具体讲明白这些趋势会影响到岗位工作、业务方向,聊到行业相关的话题,总能说出有想法的观点,跟行业里的人交流完全没障碍;
3. 对企业从头到尾的工作流程门儿清,知道业务怎么推进、关键环节在哪,还有跟其他部门怎么配合,既能说清自己进了企业要干些啥,也能找准自己在流程里的位置,跟不同部门合作的关键点也拎得很清,跟实际工作场景特别适配;
4. 碰到具体任务或问题,拆解得特别有条理,分析思路也很系统,能从实际需要出发理出解决办法,想的方案既靠谱能落地,又有新点子,还能用具体数据说明能达到啥效果,不管是想办法还是实际操作,都做得挺到位;
5. 对目标岗位的工作职责、要干的活、需要啥能力都摸得很清楚,聊职业规划和自己跟岗位合不合适的时候,能精准说清自己能发挥啥作用,还能把自己的优势、经历跟岗位需求、业务目标绑在一起说,一看就跟岗位特别对路;
6. 做过的项目又多又完整,说项目的时候能讲清背景、自己具体干了啥、负责哪些环节,还能好好总结从里面学到了啥、能力咋提升的,通过这些项目,能实实在在看出专业能力和动手做事的本事;
暂无评价数据
# 现场表现力
1. 说话表达能力特别好,嘴皮子利索还挺有劲儿,说事儿的时候结构很清楚,每个信息都能说到点子上,既能让人准确 get 到核心观点,又能高效把关键信息传出去,沟通起来又快又准;
2. 心态特别稳,不管是被提问、有工作压力,还是碰到突发情况,一直都很自信、不慌不乱,思路也很清晰,既能把工作或回答做好,还能巧妙化解压力,扛事儿能力和临场应变都挺强;
3. 跟人交流、做展示的时候,姿态特别专业,眼神交流自然又真诚,手势动作跟说话配合得刚好,既显得得体专业,又能通过动作让自己的观点更有说服力,让人觉得特别靠谱;
4. 对时间和流程把控得特别好,不管是做事、聊天还是做展示,每个环节的时间都掐得准,环节之间过渡也很顺,还会留时间做总结,能保证整个过程顺畅推进,干活、沟通的效率都很高。
暂无评价数据
# 综合评价
总的来说,这学生在专业基础、行业认知、懂企业流程、解决问题、适配岗位、项目经验、说话表达、心态调整、职业仪态还有时间管理这些关键方面,都表现得特别优秀,综合能力和职业素养都很突出。这些优点不光能让专业交流更顺畅、解决问题更合理,还能看出他特别有职业潜力,跟岗位也特别匹配,是个很有发展前途的好苗子。`
};
} else if (selectedItem === "第一次线下面试模拟") {
return {
totalScore: 42, // 根据JSON计算的真实总分
professionalScore: 28, // (4+6+5+4+6+3)/6*10*0.6 = 28
performanceScore: 14, // (2+4+5+3)/4*10*0.4 = 14
radarData: [4, 6, 5, 4, 6, 3], // 六项专业能力指标来自JSON
radarData2: [2, 4, 5, 3], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 对知识点的概念总弄混,回答问题也只停在表面,没法往深了说 —— 比如问个核心概念,要么跟别的概念搅在一起,要么就说几句皮毛,根本挖不出背后的门道,能看出来对知识的理解还差得远;
2. 知道的行业知识都是零零散散的,没形成系统,尤其说不明白行业趋势跟岗位、业务的关系 —— 比如问某个趋势会影响工作内容不,他就答不上来,对行业的认知特别散,没串起来;
3. 对工作流程的概念特别模糊,连自己该干啥都搞不清 —— 比如问企业里某个业务流程怎么走,他说不明白,再问他在里面要承担啥角色,更是没头绪,完全没找准自己的位置;
4. 分析问题的时候特别局限,想的方案也很片面,连怎么落地的步骤都没有 —— 比如让他给个解决办法,只能说个大概方向,至于需要哪些资源、分几步做、怎么推进,根本没考虑,这样的方案根本没法用;
5. 对目标岗位的认知特别模糊,连岗位的核心工作是啥、该干到啥程度、哪些活不归自己管,都弄不明白 —— 问他这个岗位主要负责啥,他说的颠三倒四,工作边界更是完全没概念,明显没搞懂岗位到底是干啥的;
6. 做过的项目特别少,就算有一两个,也说不明白情况 —— 要么讲不清项目是做什么的,要么说不出自己在里面具体干了啥,连自己到底是啥角色都模模糊糊,根本没法用项目证明自己有能力;
# 现场表现力
1. 说话特别散乱,抓不住重点,逻辑还老跳 —— 比如跟他聊个事儿,他东说一句西说一句,关键信息没几句,还经常突然从一个话题跳到另一个,听的人根本跟不上,半天搞不清他想表达啥;
2. 情绪波动特别大,一会儿好一会儿坏,特别影响沟通 —— 可能刚开始聊得好好的,稍微有点问题就慌了,或者没耐心了,跟他交流的时候,很容易因为他的情绪受影响,沟通效果特别差;
3. 跟人说话或者坐着的时候,小动作特别多,坐姿也不稳 —— 一会儿摸笔、一会儿挠头,身子还总晃来晃去,这些动作特别容易分散别人的注意力,让人没法专心听他说话,印象分也会打折扣;
4. 不管是做事、做展示还是跟人聊天,时间把控得特别差 —— 要么说起来没个完,严重超时;要么没说几句就结束了,整个过程一点条理都没有,结构乱得很,完全没规划。
# 综合评价
总的来说,这学生在知识理解、行业认知、流程和岗位把握、方案设计、项目经验、表达逻辑,还有情绪管理、行为仪态、时间把控这些方面,都有挺明显的问题。这些问题不光让日常沟通和解决问题受影响,也能看出来他现在还不太能适应实际工作的要求,之后得重点补补知识的深度、多了解行业和岗位,再好好练练说话的逻辑和心态,慢慢把综合能力提上来才行。`
};
} else if (selectedItem === "第二次线下面试模拟") {
return {
totalScore: 67, // 根据JSON计算的真实总分
professionalScore: 41, // (7+7+6+6+7+8)/6*10*0.6 = 41
performanceScore: 26, // (8+7+6+5)/4*10*0.4 = 26
radarData: [7, 7, 6, 6, 7, 8], // 六项专业能力指标来自JSON
radarData2: [8, 7, 6, 5], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 关键知识掌握得挺全面的,大部分内容都能抓准,就是偶尔在小细节上有点马虎,比如个别知识点的细微区别会记混,但整体来看,知识的准确性还是不错的,核心内容都能掌握到位;
2. 对市场上的主要动态有了解,比如行业里近期的热门方向、大家关注的重点,都能说出个大概,而且能简单讲讲这些动态对业务开展有啥意义,虽然说得不算深入,但至少能把 "动态和业务" 的关联点到,有基本的认知;
3. 明白工作的主要流程是啥,比如一项业务从开始到结束要经过哪些关键步骤,都能说清楚,也知道自己在流程里负责哪个环节、要干些啥,但在细节上就有点粗糙了,比如环节之间怎么衔接、遇到小问题该怎么处理,就说不太细;
4. 面对问题或者任务时,能有个初步的思路雏形,比如想解决某个问题,能先提出一两个大概的方向,但思路不够系统,没有把 "为什么这么做、步骤是啥、需要啥支持" 串成完整的逻辑,论证的时候也缺乏足够的理由或者例子支撑,说服力还差了点;
5. 知道目标岗位的主要任务是啥,能说出大概的工作范围,比如日常要处理哪些事、负责哪些板块,但没法深入剖析岗位 —— 像岗位的核心价值是啥、不同任务之间的优先级怎么排、需要具备哪些隐藏技能,这些深入的内容就说不出来了;
6. 也参与过一定数量的项目,不是没经验的,聊项目的时候能大体描述自己在里面做了啥任务,比如负责过数据整理、协助过方案讨论,但说到项目成果就有点笼统了,比如只说 "完成了任务",没说清 "任务带来了啥效果、自己的贡献让项目有啥提升",成果没法具体体现;
# 现场表现力
1. 说话的逻辑基本能让人听明白,不会让人抓不着重点,但偶尔会有重复的情况,比如同一句话换个说法又说一遍,或者讲到一半会停顿一下,想不起来下一句该说啥,不过整体的表达节奏还能跟上,不影响理解;
2. 面对交流或者任务时,基本能保持镇定,不会慌慌张张的,就算偶尔有点紧张,比如说话声音稍微变小、语速变快,也能自己调整过来,很快恢复平稳的状态,不会让紧张影响整体表现;
3. 平时的体态看起来挺得体的,坐姿、站姿都比较规范,跟人交流时也不会有太随意的动作,就是偶尔会有点僵硬,比如坐着的时候身体绷得太紧、手势不太自然,但这些小问题不影响整体的印象,还是显得比较专业的;
4. 不管是做事、做展示还是跟人沟通,基本能在规定时间内完成,不会出现严重超时或者没做完的情况,就是偶尔会有点小偏差 —— 要么比规定时间多花个几分钟,要么为了赶时间稍微省略一点内容,但整体的进度和完整性还是有保障的。
# 综合评价
总的来说,这学生在知识掌握、市场认知、流程理解、思路形成、岗位认知、项目经验、表达逻辑、心态调整、体态和时间把控上,都有基础的能力,没有特别明显的短板,但在 "细节、深度、系统性" 上还有提升空间。之后可以重点补补细节知识、多深入思考岗位和项目的核心价值、把思路梳理得更系统,这样综合能力就能再上一个台阶,也会更适配实际工作的要求。`
};
} else if (selectedItem === "第三次线下面试模拟") {
return {
totalScore: 91, // 根据JSON计算的真实总分
professionalScore: 54, // (8+10+9+8+10+9)/6*10*0.6 = 54
performanceScore: 37, // (10+8+10+10)/4*10*0.4 = 38 (约37)
radarData: [8, 10, 9, 8, 10, 9], // 六项专业能力指标来自JSON
radarData2: [10, 8, 10, 10], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 关键知识掌握得特别全面,不管是核心考点还是重要内容,都能稳稳抓住,就是偶尔在小细节上会有点疏漏,比如个别细碎知识点记不太准,但整体来看,知识的准确性特别好,不会出大差错;
2. 对行业里的产业链和发展趋势摸得很透,不光能说清产业链各个环节怎么联动,还能具体讲明白这些趋势会给岗位工作、业务开展带来啥影响,比如哪种趋势会让岗位多些新任务,哪种趋势能帮业务找新方向,分析得特别实在;
3. 能把企业从头到尾的工作流程说得明明白白,哪个环节该干啥、流程里的关键节点是啥,都门儿清,而且能找准自己在流程里的角色,就连跟其他部门怎么配合、配合的关键点是啥,也能说得很到位,完全不像没接触过实际工作的;
4. 就算单说具体的主要流程,也能讲清楚自己负责的环节要做啥,比如流程里的资料整理、对接沟通这些活儿,都能说透,就是在细节上稍微有点粗糙,比如环节之间怎么交接更顺畅、遇到小问题怎么快速处理,说得没那么细;
5. 对目标岗位的职责了解得特别全面,岗位要干的活儿、承担的责任都能说全,还能精准找到自己在岗位上的价值 —— 比如自己能帮岗位解决啥问题、能给团队带来啥助力,更厉害的是,能结合实际例子说明这些职责和价值怎么跟业务目标挂钩,比如做好某项工作能帮业务完成多少指标,逻辑特别顺;
6. 做过的项目又多又完整,不管是校园里的实践项目,还是外面的实习项目,都有涉及,聊项目的时候,能清清楚楚说清自己在里面扮演啥角色、过程中具体做了哪些贡献,就连最后项目拿到啥成果、带来啥效果,也能说得明明白白,不会含糊其辞;
# 现场表现力
1. 说话特别流畅,而且很有劲儿,不管是回答问题还是分享想法,表达的结构都很严谨,不会东拉西扯,每个信息点都能精准说到点子上,让人一听就懂,还能快速 get 到核心内容,沟通效率特别高;
2. 面对提问或者展示这些场景,基本能保持镇定,不会慌里慌张的,就算偶尔有点紧张,比如语速稍微变快、声音有点抖,也能自己快速调整过来,很快就恢复平稳状态,不会让紧张影响整体发挥;
3. 跟人交流的时候,目光交流特别自然,不会躲躲闪闪,肢体动作也跟说话内容配合得刚好,比如讲重点的时候会配合手势强调,坐着的时候姿态也很放松,这些细节让说的话更有说服力,让人觉得特别靠谱;
4. 不管是做展示、答问题,还是走流程,每个环节的时间都控制得特别准,不会出现超时或者没说完的情况,环节之间衔接得也很自然,不会有生硬的停顿,更难得的是,还会特意留时间做总结,把核心内容再梳理一遍,让人印象更深刻。
# 综合评价
总的来说,这学生在知识掌握、行业认知、流程理解、岗位适配、项目经验、表达能力、心态调整、沟通仪态和时间把控上,都表现得特别出色,基础扎实还懂实际应用,就算偶尔有小瑕疵也不影响整体实力。这样的学生不管是继续学习还是去工作,都能快速适应,后续再把流程细节打磨打磨,综合能力还能再上一个大台阶,绝对是个好苗子。`
};
} else {
return {
totalScore: 14, // 根据JSON计算的真实总分 (面试初体验)
professionalScore: 7, // (2+1+1+1+1+1)/6*10*0.6 = 7
performanceScore: 7, // (2+1+2+2)/4*10*0.4 = 7
radarData: [2, 1, 1, 1, 1, 1], // 六项专业能力指标来自JSON
radarData2: [2, 1, 2, 2], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 基础概念掌握得很不好,经常犯错误,连最基本的知识点都拎不清,这样一来根本没办法展开有效的交流,说出来的内容因为概念错了,也没什么参考价值;
2. 对行业基本情况几乎一无所知,不管问什么跟行业相关的问题,都答不上来,完全没接触过行业里的常识,聊起行业话题根本插不上话;
3. 一点都不理解企业的工作流程,不知道一项业务是怎么推进的,也说不清楚如果自己进了企业,该在哪个环节做事、要干些什么,对实际工作场景完全没概念;
4. 碰到问题或任务的时候,一点清晰的思路都没有,东想西想没章法,想出来的方案要么不切实际、没法落地,要么根本没解决核心问题,完全拿不出能用的办法;
5. 对目标岗位的工作职责彻底不了解,不知道岗位要干哪些活、需要什么能力,聊到跟岗位相关的内容,根本说不出有用的信息,也没法表达自己跟岗位的关联;
6. 要么就没做过什么项目,要么就是有项目经历也说不明白 —— 既讲不清项目背景,也说不出自己在里面干了啥,更总结不出从项目里学到了什么、能力有没有提升,完全没法用项目证明自己的能力;
# 现场表现力
1. 说话特别不连贯,一句完整的话都说不利索,想表达的观点颠三倒四,听的人得费劲猜才能勉强懂一点,信息传递特别低效,很容易让人误解;
2. 心态特别差,一碰到提问或者有点压力的情况,就慌慌张张的,要么说不出话,要么越说越乱,根本没办法持续把问题答完,稍微有点压力就扛不住;
3. 跟人交流或者做展示的时候,姿态特别不专业,要么不敢抬头看人、眼神躲躲闪闪,要么肢体动作很僵硬、很别扭,显得特别紧张、不靠谱,根本没法让人信服;
4. 完全没有时间概念,不管是做事、聊天还是做展示,都把控不好时间 —— 要么一个环节拖半天,要么节奏乱得一塌糊涂,严重影响整个流程的推进,让整体效率特别低。
# 综合评价
总的来说,这学生在专业基础、行业认知、企业流程理解、问题解决、岗位认知、项目经验、表达能力、心态调整、职业仪态和时间管理这些关键方面,都存在比较明显的不足。这些问题不光让专业交流没法顺利进行、碰到问题没法有效解决,也能看出目前他还不太适配实际工作场景,职业潜力还需要花很多功夫去挖掘和提升,得好好补补基础、多积累实践经验才行。`
};
}
暂无评价数据`
};
};
// 判断是否应该显示评价内容
@@ -199,44 +75,13 @@ export default ({ selectedItem = "面试初体验" }) => {
position: 'relative',
width: '100%',
height: '100%',
overflow: 'hidden'
backgroundColor: '#ffffff',
display: 'flex',
justifyContent: 'center',
alignItems: 'center'
}}>
{/* 背景图片 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundImage: `url(${
selectedItem === "第一次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第一次线下面试模拟.jpg"
: selectedItem === "第二次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第二次线下面试模拟.jpg"
: "/src/assets/images/InterviewSimulationPage/第三次线下面试模拟.jpg"
})`,
backgroundSize: 'cover',
backgroundPosition: 'center',
filter: 'blur(20px)',
transform: 'scale(1.1)'
}} />
{/* 半透明遮罩 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.4)'
}} />
{/* 锁图标和文字 */}
<div style={{
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
@@ -248,15 +93,17 @@ export default ({ selectedItem = "面试初体验" }) => {
style={{ width: '280px', height: '280px' }}
/>
<span style={{
color: '#fff',
color: '#000',
fontSize: '16px',
fontWeight: '500',
textAlign: 'center',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
padding: '8px 16px',
borderRadius: '4px'
backgroundColor: '#fff',
padding: '12px 24px',
borderRadius: '8px',
boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
whiteSpace: 'pre-line'
}}>
DEMO演示非学员无查看权限
该板块将于垂直能力提升阶段启动后开放{"\n"}届时请留意教务系统通知您可在线下站点进行线下面试模拟
</span>
</div>
</div>

View File

@@ -0,0 +1,415 @@
import { useState, useRef, useEffect } from "react";
import ReactMarkdown from "react-markdown";
import ScoreChart from "../ScoreChart";
import RadarChart from "../RadarChart";
import "./index.css";
export default ({ selectedItem = "面试初体验" }) => {
// 根据选中项目获取对应的视频URL
const getVideoUrl = () => {
switch(selectedItem) {
case "面试初体验":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_simulation/3years_ago.mov";
case "未来的自己":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_simulation/3years_later.mov";
case "第一次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJSOKoqAm.mov"; // 使用相同视频作为示例
case "第二次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJT02CMM5.mp4"; // 使用相同视频作为示例
case "第三次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJSOKoqAm.mov"; // 使用相同视频作为示例
default:
return "";
}
};
// 判断是否是锁定的面试模拟项目
const isLockedItem = () => {
return selectedItem === "第一次线下面试模拟" ||
selectedItem === "第二次线下面试模拟" ||
selectedItem === "第三次线下面试模拟";
};
// 根据选中项目获取评价数据
const getEvaluationData = () => {
if (selectedItem === "未来的自己") {
return {
totalScore: 97, // 根据JSON计算的真实总分
professionalScore: 57, // (9+10+10+9+10+9)/6*10*0.6 = 57
performanceScore: 40, // (10+10+10+10)/4*10*0.4 = 40
radarData: [9, 10, 10, 9, 10, 9], // 六项专业能力指标来自JSON
radarData2: [10, 10, 10, 10], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 专业知识学得特别扎实,讲核心概念的时候又准又清楚,还能随手举例子把道理说透,不光能把知识点讲明白,还能用实例帮人理解,一看就是专业底子特别厚,也很会用学到的知识;
2. 对行业里的产业链、还有未来的发展趋势摸得特别透,不光能说清产业链各个环节是怎么连起来的,还能具体讲明白这些趋势会影响到岗位工作、业务方向,聊到行业相关的话题,总能说出有想法的观点,跟行业里的人交流完全没障碍;
3. 对企业从头到尾的工作流程门儿清,知道业务怎么推进、关键环节在哪,还有跟其他部门怎么配合,既能说清自己进了企业要干些啥,也能找准自己在流程里的位置,跟不同部门合作的关键点也拎得很清,跟实际工作场景特别适配;
4. 碰到具体任务或问题,拆解得特别有条理,分析思路也很系统,能从实际需要出发理出解决办法,想的方案既靠谱能落地,又有新点子,还能用具体数据说明能达到啥效果,不管是想办法还是实际操作,都做得挺到位;
5. 对目标岗位的工作职责、要干的活、需要啥能力都摸得很清楚,聊职业规划和自己跟岗位合不合适的时候,能精准说清自己能发挥啥作用,还能把自己的优势、经历跟岗位需求、业务目标绑在一起说,一看就跟岗位特别对路;
6. 做过的项目又多又完整,说项目的时候能讲清背景、自己具体干了啥、负责哪些环节,还能好好总结从里面学到了啥、能力咋提升的,通过这些项目,能实实在在看出专业能力和动手做事的本事;
# 现场表现力
1. 说话表达能力特别好,嘴皮子利索还挺有劲儿,说事儿的时候结构很清楚,每个信息都能说到点子上,既能让人准确 get 到核心观点,又能高效把关键信息传出去,沟通起来又快又准;
2. 心态特别稳,不管是被提问、有工作压力,还是碰到突发情况,一直都很自信、不慌不乱,思路也很清晰,既能把工作或回答做好,还能巧妙化解压力,扛事儿能力和临场应变都挺强;
3. 跟人交流、做展示的时候,姿态特别专业,眼神交流自然又真诚,手势动作跟说话配合得刚好,既显得得体专业,又能通过动作让自己的观点更有说服力,让人觉得特别靠谱;
4. 对时间和流程把控得特别好,不管是做事、聊天还是做展示,每个环节的时间都掐得准,环节之间过渡也很顺,还会留时间做总结,能保证整个过程顺畅推进,干活、沟通的效率都很高。
# 综合评价
总的来说,这学生在专业基础、行业认知、懂企业流程、解决问题、适配岗位、项目经验、说话表达、心态调整、职业仪态还有时间管理这些关键方面,都表现得特别优秀,综合能力和职业素养都很突出。这些优点不光能让专业交流更顺畅、解决问题更合理,还能看出他特别有职业潜力,跟岗位也特别匹配,是个很有发展前途的好苗子。`
};
} else if (selectedItem === "第一次线下面试模拟") {
return {
totalScore: 42, // 根据JSON计算的真实总分
professionalScore: 28, // (4+6+5+4+6+3)/6*10*0.6 = 28
performanceScore: 14, // (2+4+5+3)/4*10*0.4 = 14
radarData: [4, 6, 5, 4, 6, 3], // 六项专业能力指标来自JSON
radarData2: [2, 4, 5, 3], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 对知识点的概念总弄混,回答问题也只停在表面,没法往深了说 —— 比如问个核心概念,要么跟别的概念搅在一起,要么就说几句皮毛,根本挖不出背后的门道,能看出来对知识的理解还差得远;
2. 知道的行业知识都是零零散散的,没形成系统,尤其说不明白行业趋势跟岗位、业务的关系 —— 比如问某个趋势会影响工作内容不,他就答不上来,对行业的认知特别散,没串起来;
3. 对工作流程的概念特别模糊,连自己该干啥都搞不清 —— 比如问企业里某个业务流程怎么走,他说不明白,再问他在里面要承担啥角色,更是没头绪,完全没找准自己的位置;
4. 分析问题的时候特别局限,想的方案也很片面,连怎么落地的步骤都没有 —— 比如让他给个解决办法,只能说个大概方向,至于需要哪些资源、分几步做、怎么推进,根本没考虑,这样的方案根本没法用;
5. 对目标岗位的认知特别模糊,连岗位的核心工作是啥、该干到啥程度、哪些活不归自己管,都弄不明白 —— 问他这个岗位主要负责啥,他说的颠三倒四,工作边界更是完全没概念,明显没搞懂岗位到底是干啥的;
6. 做过的项目特别少,就算有一两个,也说不明白情况 —— 要么讲不清项目是做什么的,要么说不出自己在里面具体干了啥,连自己到底是啥角色都模模糊糊,根本没法用项目证明自己有能力;
# 现场表现力
1. 说话特别散乱,抓不住重点,逻辑还老跳 —— 比如跟他聊个事儿,他东说一句西说一句,关键信息没几句,还经常突然从一个话题跳到另一个,听的人根本跟不上,半天搞不清他想表达啥;
2. 情绪波动特别大,一会儿好一会儿坏,特别影响沟通 —— 可能刚开始聊得好好的,稍微有点问题就慌了,或者没耐心了,跟他交流的时候,很容易因为他的情绪受影响,沟通效果特别差;
3. 跟人说话或者坐着的时候,小动作特别多,坐姿也不稳 —— 一会儿摸笔、一会儿挠头,身子还总晃来晃去,这些动作特别容易分散别人的注意力,让人没法专心听他说话,印象分也会打折扣;
4. 不管是做事、做展示还是跟人聊天,时间把控得特别差 —— 要么说起来没个完,严重超时;要么没说几句就结束了,整个过程一点条理都没有,结构乱得很,完全没规划。
# 综合评价
总的来说,这学生在知识理解、行业认知、流程和岗位把握、方案设计、项目经验、表达逻辑,还有情绪管理、行为仪态、时间把控这些方面,都有挺明显的问题。这些问题不光让日常沟通和解决问题受影响,也能看出来他现在还不太能适应实际工作的要求,之后得重点补补知识的深度、多了解行业和岗位,再好好练练说话的逻辑和心态,慢慢把综合能力提上来才行。`
};
} else if (selectedItem === "第二次线下面试模拟") {
return {
totalScore: 67, // 根据JSON计算的真实总分
professionalScore: 41, // (7+7+6+6+7+8)/6*10*0.6 = 41
performanceScore: 26, // (8+7+6+5)/4*10*0.4 = 26
radarData: [7, 7, 6, 6, 7, 8], // 六项专业能力指标来自JSON
radarData2: [8, 7, 6, 5], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 关键知识掌握得挺全面的,大部分内容都能抓准,就是偶尔在小细节上有点马虎,比如个别知识点的细微区别会记混,但整体来看,知识的准确性还是不错的,核心内容都能掌握到位;
2. 对市场上的主要动态有了解,比如行业里近期的热门方向、大家关注的重点,都能说出个大概,而且能简单讲讲这些动态对业务开展有啥意义,虽然说得不算深入,但至少能把 "动态和业务" 的关联点到,有基本的认知;
3. 明白工作的主要流程是啥,比如一项业务从开始到结束要经过哪些关键步骤,都能说清楚,也知道自己在流程里负责哪个环节、要干些啥,但在细节上就有点粗糙了,比如环节之间怎么衔接、遇到小问题该怎么处理,就说不太细;
4. 面对问题或者任务时,能有个初步的思路雏形,比如想解决某个问题,能先提出一两个大概的方向,但思路不够系统,没有把 "为什么这么做、步骤是啥、需要啥支持" 串成完整的逻辑,论证的时候也缺乏足够的理由或者例子支撑,说服力还差了点;
5. 知道目标岗位的主要任务是啥,能说出大概的工作范围,比如日常要处理哪些事、负责哪些板块,但没法深入剖析岗位 —— 像岗位的核心价值是啥、不同任务之间的优先级怎么排、需要具备哪些隐藏技能,这些深入的内容就说不出来了;
6. 也参与过一定数量的项目,不是没经验的,聊项目的时候能大体描述自己在里面做了啥任务,比如负责过数据整理、协助过方案讨论,但说到项目成果就有点笼统了,比如只说 "完成了任务",没说清 "任务带来了啥效果、自己的贡献让项目有啥提升",成果没法具体体现;
# 现场表现力
1. 说话的逻辑基本能让人听明白,不会让人抓不着重点,但偶尔会有重复的情况,比如同一句话换个说法又说一遍,或者讲到一半会停顿一下,想不起来下一句该说啥,不过整体的表达节奏还能跟上,不影响理解;
2. 面对交流或者任务时,基本能保持镇定,不会慌慌张张的,就算偶尔有点紧张,比如说话声音稍微变小、语速变快,也能自己调整过来,很快恢复平稳的状态,不会让紧张影响整体表现;
3. 平时的体态看起来挺得体的,坐姿、站姿都比较规范,跟人交流时也不会有太随意的动作,就是偶尔会有点僵硬,比如坐着的时候身体绷得太紧、手势不太自然,但这些小问题不影响整体的印象,还是显得比较专业的;
4. 不管是做事、做展示还是跟人沟通,基本能在规定时间内完成,不会出现严重超时或者没做完的情况,就是偶尔会有点小偏差 —— 要么比规定时间多花个几分钟,要么为了赶时间稍微省略一点内容,但整体的进度和完整性还是有保障的。
# 综合评价
总的来说,这学生在知识掌握、市场认知、流程理解、思路形成、岗位认知、项目经验、表达逻辑、心态调整、体态和时间把控上,都有基础的能力,没有特别明显的短板,但在 "细节、深度、系统性" 上还有提升空间。之后可以重点补补细节知识、多深入思考岗位和项目的核心价值、把思路梳理得更系统,这样综合能力就能再上一个台阶,也会更适配实际工作的要求。`
};
} else if (selectedItem === "第三次线下面试模拟") {
return {
totalScore: 91, // 根据JSON计算的真实总分
professionalScore: 54, // (8+10+9+8+10+9)/6*10*0.6 = 54
performanceScore: 37, // (10+8+10+10)/4*10*0.4 = 38 (约37)
radarData: [8, 10, 9, 8, 10, 9], // 六项专业能力指标来自JSON
radarData2: [10, 8, 10, 10], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 关键知识掌握得特别全面,不管是核心考点还是重要内容,都能稳稳抓住,就是偶尔在小细节上会有点疏漏,比如个别细碎知识点记不太准,但整体来看,知识的准确性特别好,不会出大差错;
2. 对行业里的产业链和发展趋势摸得很透,不光能说清产业链各个环节怎么联动,还能具体讲明白这些趋势会给岗位工作、业务开展带来啥影响,比如哪种趋势会让岗位多些新任务,哪种趋势能帮业务找新方向,分析得特别实在;
3. 能把企业从头到尾的工作流程说得明明白白,哪个环节该干啥、流程里的关键节点是啥,都门儿清,而且能找准自己在流程里的角色,就连跟其他部门怎么配合、配合的关键点是啥,也能说得很到位,完全不像没接触过实际工作的;
4. 就算单说具体的主要流程,也能讲清楚自己负责的环节要做啥,比如流程里的资料整理、对接沟通这些活儿,都能说透,就是在细节上稍微有点粗糙,比如环节之间怎么交接更顺畅、遇到小问题怎么快速处理,说得没那么细;
5. 对目标岗位的职责了解得特别全面,岗位要干的活儿、承担的责任都能说全,还能精准找到自己在岗位上的价值 —— 比如自己能帮岗位解决啥问题、能给团队带来啥助力,更厉害的是,能结合实际例子说明这些职责和价值怎么跟业务目标挂钩,比如做好某项工作能帮业务完成多少指标,逻辑特别顺;
6. 做过的项目又多又完整,不管是校园里的实践项目,还是外面的实习项目,都有涉及,聊项目的时候,能清清楚楚说清自己在里面扮演啥角色、过程中具体做了哪些贡献,就连最后项目拿到啥成果、带来啥效果,也能说得明明白白,不会含糊其辞;
# 现场表现力
1. 说话特别流畅,而且很有劲儿,不管是回答问题还是分享想法,表达的结构都很严谨,不会东拉西扯,每个信息点都能精准说到点子上,让人一听就懂,还能快速 get 到核心内容,沟通效率特别高;
2. 面对提问或者展示这些场景,基本能保持镇定,不会慌里慌张的,就算偶尔有点紧张,比如语速稍微变快、声音有点抖,也能自己快速调整过来,很快就恢复平稳状态,不会让紧张影响整体发挥;
3. 跟人交流的时候,目光交流特别自然,不会躲躲闪闪,肢体动作也跟说话内容配合得刚好,比如讲重点的时候会配合手势强调,坐着的时候姿态也很放松,这些细节让说的话更有说服力,让人觉得特别靠谱;
4. 不管是做展示、答问题,还是走流程,每个环节的时间都控制得特别准,不会出现超时或者没说完的情况,环节之间衔接得也很自然,不会有生硬的停顿,更难得的是,还会特意留时间做总结,把核心内容再梳理一遍,让人印象更深刻。
# 综合评价
总的来说,这学生在知识掌握、行业认知、流程理解、岗位适配、项目经验、表达能力、心态调整、沟通仪态和时间把控上,都表现得特别出色,基础扎实还懂实际应用,就算偶尔有小瑕疵也不影响整体实力。这样的学生不管是继续学习还是去工作,都能快速适应,后续再把流程细节打磨打磨,综合能力还能再上一个大台阶,绝对是个好苗子。`
};
} else {
return {
totalScore: 14, // 根据JSON计算的真实总分 (面试初体验)
professionalScore: 7, // (2+1+1+1+1+1)/6*10*0.6 = 7
performanceScore: 7, // (2+1+2+2)/4*10*0.4 = 7
radarData: [2, 1, 1, 1, 1, 1], // 六项专业能力指标来自JSON
radarData2: [2, 1, 2, 2], // 四项现场表现指标来自JSON
title: "面试评价",
content: `# 专业能力
1. 基础概念掌握得很不好,经常犯错误,连最基本的知识点都拎不清,这样一来根本没办法展开有效的交流,说出来的内容因为概念错了,也没什么参考价值;
2. 对行业基本情况几乎一无所知,不管问什么跟行业相关的问题,都答不上来,完全没接触过行业里的常识,聊起行业话题根本插不上话;
3. 一点都不理解企业的工作流程,不知道一项业务是怎么推进的,也说不清楚如果自己进了企业,该在哪个环节做事、要干些什么,对实际工作场景完全没概念;
4. 碰到问题或任务的时候,一点清晰的思路都没有,东想西想没章法,想出来的方案要么不切实际、没法落地,要么根本没解决核心问题,完全拿不出能用的办法;
5. 对目标岗位的工作职责彻底不了解,不知道岗位要干哪些活、需要什么能力,聊到跟岗位相关的内容,根本说不出有用的信息,也没法表达自己跟岗位的关联;
6. 要么就没做过什么项目,要么就是有项目经历也说不明白 —— 既讲不清项目背景,也说不出自己在里面干了啥,更总结不出从项目里学到了什么、能力有没有提升,完全没法用项目证明自己的能力;
# 现场表现力
1. 说话特别不连贯,一句完整的话都说不利索,想表达的观点颠三倒四,听的人得费劲猜才能勉强懂一点,信息传递特别低效,很容易让人误解;
2. 心态特别差,一碰到提问或者有点压力的情况,就慌慌张张的,要么说不出话,要么越说越乱,根本没办法持续把问题答完,稍微有点压力就扛不住;
3. 跟人交流或者做展示的时候,姿态特别不专业,要么不敢抬头看人、眼神躲躲闪闪,要么肢体动作很僵硬、很别扭,显得特别紧张、不靠谱,根本没法让人信服;
4. 完全没有时间概念,不管是做事、聊天还是做展示,都把控不好时间 —— 要么一个环节拖半天,要么节奏乱得一塌糊涂,严重影响整个流程的推进,让整体效率特别低。
# 综合评价
总的来说,这学生在专业基础、行业认知、企业流程理解、问题解决、岗位认知、项目经验、表达能力、心态调整、职业仪态和时间管理这些关键方面,都存在比较明显的不足。这些问题不光让专业交流没法顺利进行、碰到问题没法有效解决,也能看出目前他还不太适配实际工作场景,职业潜力还需要花很多功夫去挖掘和提升,得好好补补基础、多积累实践经验才行。`
};
}
};
// 判断是否应该显示评价内容
const shouldShowEvaluation = () => {
return selectedItem === "面试初体验" ||
selectedItem === "未来的自己" ||
selectedItem === "第一次线下面试模拟" ||
selectedItem === "第二次线下面试模拟" ||
selectedItem === "第三次线下面试模拟";
};
return (
<div className="interview-rating-wrapper">
{/* 视频播放器区域 */}
<div className="interview-rating-video-section">
<div className="interview-rating-header">
<span className="interview-rating-header-title">
{selectedItem}
</span>
</div>
<div className="interview-rating-video">
{isLockedItem() ? (
<div className="locked-video-container" style={{
position: 'relative',
width: '100%',
height: '100%',
overflow: 'hidden'
}}>
{/* 背景图片 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundImage: `url(${
selectedItem === "第一次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第一次线下面试模拟.jpg"
: selectedItem === "第二次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第二次线下面试模拟.jpg"
: "/src/assets/images/InterviewSimulationPage/第三次线下面试模拟.jpg"
})`,
backgroundSize: 'cover',
backgroundPosition: 'center',
filter: 'blur(20px)',
transform: 'scale(1.1)'
}} />
{/* 半透明遮罩 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.4)'
}} />
{/* 锁图标和文字 */}
<div style={{
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: '16px'
}}>
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuVOrz2GnJdK.png"
alt="lock"
style={{ width: '280px', height: '280px' }}
/>
<span style={{
color: '#fff',
fontSize: '16px',
fontWeight: '500',
textAlign: 'center',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
padding: '8px 16px',
borderRadius: '4px'
}}>
DEMO演示非学员无查看权限
</span>
</div>
</div>
) : (
<video src={getVideoUrl()} controls></video>
)}
</div>
</div>
{/* 评价内容区域 - 仅在特定项目时显示 */}
{shouldShowEvaluation() && (
<>
{/* 面试评分区域 */}
<div className="interview-evaluation-charts-wrapper">
<div className="interview-rating-header">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5uY7Ek50.png" alt="icon" style={{ width: '28px', height: '28px', marginRight: '10px' }} />
<span className="interview-rating-header-title">面试评分</span>
</div>
<div className="charts-content">
<div className="charts-content-top">
<ScoreChart className="score-chart" value={getEvaluationData().totalScore} />
<div className="score-info">
<div className="score-info-item item1">
<p className="score-info-item-title">
专业能力评分
<span className="score-info-item-value">{getEvaluationData().professionalScore}</span>
</p>
<p className="score-info-line">
<i
style={{
width: `${(getEvaluationData().professionalScore / 60) * 100}%`,
}}
/>
<span className="score-info-line-total-value">60</span>
</p>
</div>
<div className="score-info-item item2">
<p className="score-info-item-title">
现场表现评分
<span className="score-info-item-value">{getEvaluationData().performanceScore}</span>
</p>
<p className="score-info-line">
<i
style={{
width: `${(getEvaluationData().performanceScore / 40) * 100}%`,
}}
/>
<span className="score-info-line-total-value">40</span>
</p>
</div>
</div>
</div>
<div className="charts-content-bottom">
<RadarChart
className="radar-chart"
data={getEvaluationData().radarData}
indicator={[
{ name: "基础知识\n掌握水平", max: 10 },
{ name: "产业链\n认知程度", max: 10 },
{ name: "企业生产\n体系了解", max: 10 },
{ name: "典型问题\n解决能力", max: 10 },
{ name: "岗位职责\n理解程度", max: 10 },
{ name: "项目经历\n丰富程度", max: 10 },
]}
/>
<RadarChart
className="radar-chart"
data={getEvaluationData().radarData2 || [7, 8, 6, 7]}
indicator={[
{ name: "语言表达与逻辑", max: 10 },
{ name: "自信与情绪管理", max: 10 },
{ name: "仪表与职场礼仪", max: 10 },
{ name: "时间管理与条理性", max: 10 },
]}
lineClolr="#E8F5E9"
areaColor="#C8E6C9"
areaBorderColor="#66BB6A"
isGreenTheme={true}
/>
</div>
</div>
</div>
{/* 面试评价三板块区域 */}
<div className="interview-evaluation-sections">
{/* 专业能力板块 */}
<div className="evaluation-section">
<div className="section-header">
<div className="section-icon professional-icon">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5vlvUj2X.png" alt="专业能力" />
</div>
<h3 className="section-title">专业能力</h3>
<div className="section-score">
<span className="score-label">得分</span>
<span className="score-value">{getEvaluationData().professionalScore}</span>
<span className="score-total">/60</span>
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{(() => {
const content = getEvaluationData().content;
const sections = content.split('#');
if (sections.length > 1) {
const professionalContent = sections[1].split('\n\n');
return professionalContent.slice(1, -1).join('\n\n');
}
return '';
})()}
</ReactMarkdown>
</div>
</div>
{/* 现场表现力板块 */}
<div className="evaluation-section">
<div className="section-header">
<div className="section-icon performance-icon">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5uY7Ek50.png" alt="现场表现力" />
</div>
<h3 className="section-title">现场表现力</h3>
<div className="section-score">
<span className="score-label">得分</span>
<span className="score-value">{getEvaluationData().performanceScore}</span>
<span className="score-total">/40</span>
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{getEvaluationData().content.split('# 现场表现力')[1].split('# 综合评价')[0].trim()}
</ReactMarkdown>
</div>
</div>
{/* 综合评价板块 */}
<div className="evaluation-section comprehensive-section">
<div className="section-header">
<h3 className="section-title">综合评价</h3>
<div className="section-badge">
{getEvaluationData().totalScore >= 80 ? '优秀' :
getEvaluationData().totalScore >= 60 ? '良好' :
getEvaluationData().totalScore >= 40 ? '及格' : '需努力'}
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{getEvaluationData().content.split('# 综合评价')[1].trim()}
</ReactMarkdown>
</div>
</div>
</div>
</>
)}
</div>
);
};

View File

@@ -0,0 +1,294 @@
import { useState, useRef, useEffect } from "react";
import ReactMarkdown from "react-markdown";
import ScoreChart from "../ScoreChart";
import RadarChart from "../RadarChart";
import "./index.css";
export default ({ selectedItem = "面试初体验" }) => {
// 根据选中项目获取对应的视频URL
const getVideoUrl = () => {
switch(selectedItem) {
case "面试初体验":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_simulation/3years_ago.mov";
case "未来的自己":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_simulation/3years_later.mov";
case "第一次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJSOKoqAm.mov"; // 使用相同视频作为示例
case "第二次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJT02CMM5.mp4"; // 使用相同视频作为示例
case "第三次线下面试模拟":
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/video/teach_sys/interview_offline_vedio/recuUpJSOKoqAm.mov"; // 使用相同视频作为示例
default:
return "";
}
};
// 判断是否是锁定的面试模拟项目
const isLockedItem = () => {
return selectedItem === "第一次线下面试模拟" ||
selectedItem === "第二次线下面试模拟" ||
selectedItem === "第三次线下面试模拟";
};
// 根据选中项目获取评价数据
const getEvaluationData = () => {
// 所有评分数据改为0,评价改为空
return {
totalScore: 0,
professionalScore: 0,
performanceScore: 0,
radarData: [0, 0, 0, 0, 0, 0],
radarData2: [0, 0, 0, 0],
title: "面试评价",
content: `# 专业能力
暂无评价数据
# 现场表现力
暂无评价数据
# 综合评价
暂无评价数据`
};
};
// 判断是否应该显示评价内容
const shouldShowEvaluation = () => {
return selectedItem === "面试初体验" ||
selectedItem === "未来的自己" ||
selectedItem === "第一次线下面试模拟" ||
selectedItem === "第二次线下面试模拟" ||
selectedItem === "第三次线下面试模拟";
};
return (
<div className="interview-rating-wrapper">
{/* 视频播放器区域 */}
<div className="interview-rating-video-section">
<div className="interview-rating-header">
<span className="interview-rating-header-title">
{selectedItem}
</span>
</div>
<div className="interview-rating-video">
{isLockedItem() ? (
<div className="locked-video-container" style={{
position: 'relative',
width: '100%',
height: '100%',
overflow: 'hidden'
}}>
{/* 背景图片 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundImage: `url(${
selectedItem === "第一次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第一次线下面试模拟.jpg"
: selectedItem === "第二次线下面试模拟"
? "/src/assets/images/InterviewSimulationPage/第二次线下面试模拟.jpg"
: "/src/assets/images/InterviewSimulationPage/第三次线下面试模拟.jpg"
})`,
backgroundSize: 'cover',
backgroundPosition: 'center',
filter: 'blur(20px)',
transform: 'scale(1.1)'
}} />
{/* 半透明遮罩 */}
<div style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundColor: 'rgba(0, 0, 0, 0.4)'
}} />
{/* 锁图标和文字 */}
<div style={{
position: 'absolute',
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: '16px'
}}>
<img
src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuVOrz2GnJdK.png"
alt="lock"
style={{ width: '280px', height: '280px' }}
/>
<span style={{
color: '#fff',
fontSize: '16px',
fontWeight: '500',
textAlign: 'center',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
padding: '8px 16px',
borderRadius: '4px'
}}>
DEMO演示非学员无查看权限
</span>
</div>
</div>
) : (
<video src={getVideoUrl()} controls></video>
)}
</div>
</div>
{/* 评价内容区域 - 仅在特定项目时显示 */}
{shouldShowEvaluation() && (
<>
{/* 面试评分区域 */}
<div className="interview-evaluation-charts-wrapper">
<div className="interview-rating-header">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5uY7Ek50.png" alt="icon" style={{ width: '28px', height: '28px', marginRight: '10px' }} />
<span className="interview-rating-header-title">面试评分</span>
</div>
<div className="charts-content">
<div className="charts-content-top">
<ScoreChart className="score-chart" value={getEvaluationData().totalScore} />
<div className="score-info">
<div className="score-info-item item1">
<p className="score-info-item-title">
专业能力评分
<span className="score-info-item-value">{getEvaluationData().professionalScore}</span>
</p>
<p className="score-info-line">
<i
style={{
width: `${(getEvaluationData().professionalScore / 60) * 100}%`,
}}
/>
<span className="score-info-line-total-value">60</span>
</p>
</div>
<div className="score-info-item item2">
<p className="score-info-item-title">
现场表现评分
<span className="score-info-item-value">{getEvaluationData().performanceScore}</span>
</p>
<p className="score-info-line">
<i
style={{
width: `${(getEvaluationData().performanceScore / 40) * 100}%`,
}}
/>
<span className="score-info-line-total-value">40</span>
</p>
</div>
</div>
</div>
<div className="charts-content-bottom">
<RadarChart
className="radar-chart"
data={getEvaluationData().radarData}
indicator={[
{ name: "基础知识\n掌握水平", max: 10 },
{ name: "产业链\n认知程度", max: 10 },
{ name: "企业生产\n体系了解", max: 10 },
{ name: "典型问题\n解决能力", max: 10 },
{ name: "岗位职责\n理解程度", max: 10 },
{ name: "项目经历\n丰富程度", max: 10 },
]}
/>
<RadarChart
className="radar-chart"
data={getEvaluationData().radarData2 || [7, 8, 6, 7]}
indicator={[
{ name: "语言表达与逻辑", max: 10 },
{ name: "自信与情绪管理", max: 10 },
{ name: "仪表与职场礼仪", max: 10 },
{ name: "时间管理与条理性", max: 10 },
]}
lineClolr="#E8F5E9"
areaColor="#C8E6C9"
areaBorderColor="#66BB6A"
isGreenTheme={true}
/>
</div>
</div>
</div>
{/* 面试评价三板块区域 */}
<div className="interview-evaluation-sections">
{/* 专业能力板块 */}
<div className="evaluation-section">
<div className="section-header">
<div className="section-icon professional-icon">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5vlvUj2X.png" alt="专业能力" />
</div>
<h3 className="section-title">专业能力</h3>
<div className="section-score">
<span className="score-label">得分</span>
<span className="score-value">{getEvaluationData().professionalScore}</span>
<span className="score-total">/60</span>
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{(() => {
const content = getEvaluationData().content;
const sections = content.split('#');
if (sections.length > 1) {
const professionalContent = sections[1].split('\n\n');
return professionalContent.slice(1, -1).join('\n\n');
}
return '';
})()}
</ReactMarkdown>
</div>
</div>
{/* 现场表现力板块 */}
<div className="evaluation-section">
<div className="section-header">
<div className="section-icon performance-icon">
<img src="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_icon/recuUY5uY7Ek50.png" alt="现场表现力" />
</div>
<h3 className="section-title">现场表现力</h3>
<div className="section-score">
<span className="score-label">得分</span>
<span className="score-value">{getEvaluationData().performanceScore}</span>
<span className="score-total">/40</span>
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{getEvaluationData().content.split('# 现场表现力')[1].split('# 综合评价')[0].trim()}
</ReactMarkdown>
</div>
</div>
{/* 综合评价板块 */}
<div className="evaluation-section comprehensive-section">
<div className="section-header">
<h3 className="section-title">综合评价</h3>
<div className="section-badge">
{getEvaluationData().totalScore >= 80 ? '优秀' :
getEvaluationData().totalScore >= 60 ? '良好' :
getEvaluationData().totalScore >= 40 ? '及格' : '需努力'}
</div>
</div>
<div className="section-content">
<ReactMarkdown>
{getEvaluationData().content.split('# 综合评价')[1].trim()}
</ReactMarkdown>
</div>
</div>
</div>
</>
)}
</div>
);
};

View File

@@ -39,21 +39,6 @@ export default ({ onItemSelect }) => {
>
<p>
面试初体验
<span style={{
marginLeft: '8px',
padding: '2px 8px',
background: 'linear-gradient(135deg, #5DADE2 0%, #2874A6 100%)',
borderRadius: '12px',
color: '#ffffff',
fontSize: '12px',
fontWeight: 'bold',
fontStyle: 'italic',
letterSpacing: '1px',
textTransform: 'uppercase',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
}}>
demo
</span>
</p>
<div className="time-line-item-info">
初次接触面试环境体验真实面试流程了解自身在面试中的基本表现和待提升的方面
@@ -71,21 +56,6 @@ export default ({ onItemSelect }) => {
>
<p>
未来的自己
<span style={{
marginLeft: '8px',
padding: '2px 8px',
background: 'linear-gradient(135deg, #5DADE2 0%, #2874A6 100%)',
borderRadius: '12px',
color: '#ffffff',
fontSize: '12px',
fontWeight: 'bold',
fontStyle: 'italic',
letterSpacing: '1px',
textTransform: 'uppercase',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
}}>
demo
</span>
</p>
<div className="time-line-item-info">
经过系统训练后的面试表现展示个人成长和进步体现出更强的职场竞争力和专业素养

View File

@@ -0,0 +1,144 @@
import { useState } from "react";
import { Timeline } from "@arco-design/web-react";
import IconFont from "@/components/IconFont";
import "./index.css";
const TimelineItem = Timeline.Item;
export default ({ onItemSelect }) => {
const [selectedItem, setSelectedItem] = useState("面试初体验");
const handleItemClick = (itemName) => {
setSelectedItem(itemName);
onItemSelect && onItemSelect(itemName);
};
return (
<div className="mock-interview-wrapper">
<p className="mock-interview-title">
<IconFont className="mock-interview-title-icon" src="recuUY5uwYg4km" />
<span>面试模拟</span>
</p>
<ul className="mock-interview-list">
<li className="mock-interview-item">
<p className="mock-interview-item-title">
<i className="mock-interview-item-title-icon" />
<span>懵懂初试</span>
</p>
<Timeline>
<TimelineItem
lineType="dashed"
dot={
<div className={`time-line-dot-icon ${selectedItem === "面试初体验" ? "time-line-dot-icon-active" : ""}`} />
}
>
<div
className={`time-line-item ${selectedItem === "面试初体验" ? "time-line-item-active" : ""}`}
onClick={() => handleItemClick("面试初体验")}
style={{ cursor: "pointer" }}
>
<p>
面试初体验
<span style={{
marginLeft: '8px',
padding: '2px 8px',
background: 'linear-gradient(135deg, #5DADE2 0%, #2874A6 100%)',
borderRadius: '12px',
color: '#ffffff',
fontSize: '12px',
fontWeight: 'bold',
fontStyle: 'italic',
letterSpacing: '1px',
textTransform: 'uppercase',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
}}>
demo
</span>
</p>
<div className="time-line-item-info">
初次接触面试环境,体验真实面试流程,了解自身在面试中的基本表现和待提升的方面
</div>
</div>
</TimelineItem>
<TimelineItem
lineType="dashed"
dot={<div className={`time-line-dot-icon ${selectedItem === "未来的自己" ? "time-line-dot-icon-active" : ""}`} />}
>
<div
className={`time-line-item ${selectedItem === "未来的自己" ? "time-line-item-active" : ""}`}
onClick={() => handleItemClick("未来的自己")}
style={{ cursor: "pointer" }}
>
<p>
未来的自己
<span style={{
marginLeft: '8px',
padding: '2px 8px',
background: 'linear-gradient(135deg, #5DADE2 0%, #2874A6 100%)',
borderRadius: '12px',
color: '#ffffff',
fontSize: '12px',
fontWeight: 'bold',
fontStyle: 'italic',
letterSpacing: '1px',
textTransform: 'uppercase',
boxShadow: '0 2px 4px rgba(0,0,0,0.1)'
}}>
demo
</span>
</p>
<div className="time-line-item-info">
经过系统训练后的面试表现,展示个人成长和进步,体现出更强的职场竞争力和专业素养
</div>
</div>
</TimelineItem>
</Timeline>
</li>
<li className="mock-interview-item">
<p className="mock-interview-item-title">
<i className="mock-interview-item-title-icon" />
<span>有备而战</span>
</p>
<Timeline>
<TimelineItem
lineType="dashed"
dot={<div className={`time-line-dot-icon ${selectedItem === "第一次线下面试模拟" ? "time-line-dot-icon-active" : ""}`} />}
>
<div
className={`time-line-item ${selectedItem === "第一次线下面试模拟" ? "time-line-item-active" : ""}`}
onClick={() => handleItemClick("第一次线下面试模拟")}
style={{ cursor: "pointer" }}
>
<p>第一次线下面试模拟</p>
</div>
</TimelineItem>
<TimelineItem
lineType="dashed"
dot={<div className={`time-line-dot-icon ${selectedItem === "第二次线下面试模拟" ? "time-line-dot-icon-active" : ""}`} />}
>
<div
className={`time-line-item ${selectedItem === "第二次线下面试模拟" ? "time-line-item-active" : ""}`}
onClick={() => handleItemClick("第二次线下面试模拟")}
style={{ cursor: "pointer" }}
>
<p>第二次线下面试模拟</p>
</div>
</TimelineItem>
<TimelineItem
lineType="dashed"
dot={<div className={`time-line-dot-icon ${selectedItem === "第三次线下面试模拟" ? "time-line-dot-icon-active" : ""}`} />}
>
<div
className={`time-line-item ${selectedItem === "第三次线下面试模拟" ? "time-line-item-active" : ""}`}
onClick={() => handleItemClick("第三次线下面试模拟")}
style={{ cursor: "pointer" }}
>
<p>第三次线下面试模拟</p>
</div>
</TimelineItem>
</Timeline>
</li>
</ul>
</div>
);
};

View File

@@ -6,9 +6,9 @@ import "./index.css";
export default ({ locked = true }) => {
return (
<div className="curved-employment-wrapper">
<img src={CHARTIMG} />
<img src={CHARTIMG} style={locked ? { filter: 'blur(10px)' } : {}} />
{locked && (
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" />
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" showBackground={false} />
)}
</div>
);

View File

@@ -0,0 +1,15 @@
import React from "react";
import CHARTIMG from "@/assets/images/JobStrategyDetailPage/bar_chart.png";
import Locked from "@/components/Locked";
import "./index.css";
export default ({ locked = true }) => {
return (
<div className="curved-employment-wrapper">
<img src={CHARTIMG} />
{locked && (
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" />
)}
</div>
);
};

View File

@@ -343,7 +343,7 @@ export default ({ locked = false }) => {
>
<div className="target-position-wrapper">
<div className="target-position-content">
<div className="batch-icon">
<div className="batch-icon" style={locked ? { filter: 'blur(10px)' } : {}}>
<span style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>
第一批次
<Tooltip content="通过培训后能直接上岗的岗位,入职成功率最高。">
@@ -392,7 +392,7 @@ export default ({ locked = false }) => {
</div>
{/* 第一批次 */}
<div className="batch-content batch-content1" ref={batch1Ref}>
<div className="batch-content batch-content1" ref={batch1Ref} style={locked ? { filter: 'blur(10px)' } : {}}>
<SortableContext
items={batchPositions.batch1.map(p => `batch1-${p}`)}
strategy={horizontalListSortingStrategy}
@@ -409,7 +409,7 @@ export default ({ locked = false }) => {
</div>
{/* 第二批次 */}
<div className="batch-content batch-content2" ref={batch2Ref}>
<div className="batch-content batch-content2" ref={batch2Ref} style={locked ? { filter: 'blur(10px)' } : {}}>
<SortableContext
items={batchPositions.batch2.map(p => `batch2-${p}`)}
strategy={horizontalListSortingStrategy}
@@ -426,7 +426,7 @@ export default ({ locked = false }) => {
</div>
{/* 第三批次 */}
<div className="batch-content batch-content3" ref={batch3Ref}>
<div className="batch-content batch-content3" ref={batch3Ref} style={locked ? { filter: 'blur(10px)' } : {}}>
<SortableContext
items={batchPositions.batch3.map(p => `batch3-${p}`)}
strategy={horizontalListSortingStrategy}
@@ -443,7 +443,7 @@ export default ({ locked = false }) => {
</div>
{locked && (
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" />
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" showBackground={false} />
)}
</div>
</div>

View File

@@ -0,0 +1,654 @@
import { useEffect, useRef, useState } from "react";
import { Modal, Message, Tooltip } from "@arco-design/web-react";
import { useNavigate, useLocation } from "react-router-dom";
import {
DndContext,
closestCenter,
KeyboardSensor,
PointerSensor,
useSensor,
useSensors,
DragOverlay,
} from '@dnd-kit/core';
import {
SortableContext,
sortableKeyboardCoordinates,
horizontalListSortingStrategy,
} from '@dnd-kit/sortable';
import { useSortable } from '@dnd-kit/sortable';
import { CSS } from '@dnd-kit/utilities';
import Locked from "@/components/Locked";
import jobLevelData from "@/data/joblevel.json";
import "./index.css";
// 可排序的岗位组件
const SortablePosition = ({ id, position, getPositionAvatar }) => {
const {
attributes,
listeners,
setNodeRef,
transform,
transition,
isDragging,
} = useSortable({ id });
const style = {
transform: CSS.Transform.toString(transform),
transition,
opacity: isDragging ? 0.5 : 1,
cursor: 'grab',
userSelect: 'none',
WebkitUserSelect: 'none',
};
return (
<div
ref={setNodeRef}
style={style}
{...attributes}
{...listeners}
className="avatar-wrapper"
>
<div className="student-avatar">
<img
alt="avatar"
src={getPositionAvatar(position)}
draggable={false}
style={{ userSelect: 'none', WebkitUserSelect: 'none', pointerEvents: 'none' }}
/>
</div>
<span className="student-name" style={{ userSelect: 'none', WebkitUserSelect: 'none' }}>{position}</span>
<div className="position-tooltip">{position}</div>
</div>
);
};
export default ({ locked = false }) => {
const navigate = useNavigate();
const location = useLocation();
const batch1Ref = useRef(null);
const batch2Ref = useRef(null);
const batch3Ref = useRef(null);
const [hasChanges, setHasChanges] = useState(false);
const [showSaveModal, setShowSaveModal] = useState(false);
const [pendingNavigation, setPendingNavigation] = useState(null);
const [activeId, setActiveId] = useState(null);
// 处理拖拽开始
const handleDragStart = (event) => {
const { active } = event;
setActiveId(active.id);
};
// 处理拖拽结束
const handleDragEnd = (event) => {
const { active, over } = event;
setActiveId(null);
if (!over) return;
const activePosition = active.id.split('-').slice(1).join('-');
const activeBatch = active.id.split('-')[0];
// 确定目标批次
let targetBatch = over.id.split('-')[0];
let targetPosition = over.id.split('-').slice(1).join('-');
// 如果目标和源相同,不做任何操作
if (active.id === over.id) return;
setBatchPositions((prev) => {
const newPositions = { ...prev };
// 如果是同一批次内的移动
if (activeBatch === targetBatch) {
const batch = [...newPositions[activeBatch]];
const activeIndex = batch.indexOf(activePosition);
const overIndex = batch.indexOf(targetPosition);
if (activeIndex !== -1 && overIndex !== -1 && activeIndex !== overIndex) {
// 移除原位置
batch.splice(activeIndex, 1);
// 计算新位置索引
const newOverIndex = activeIndex < overIndex ? overIndex - 1 : overIndex;
// 插入到新位置
batch.splice(newOverIndex, 0, activePosition);
newPositions[activeBatch] = batch;
}
} else {
// 跨批次移动
// 从原批次删除
const sourceBatch = [...newPositions[activeBatch]];
const activeIndex = sourceBatch.indexOf(activePosition);
if (activeIndex !== -1) {
sourceBatch.splice(activeIndex, 1);
newPositions[activeBatch] = sourceBatch;
}
// 添加到目标批次
const targetBatchArray = [...newPositions[targetBatch]];
const overIndex = targetBatchArray.indexOf(targetPosition);
if (overIndex !== -1) {
// 插入到特定位置
targetBatchArray.splice(overIndex, 0, activePosition);
} else {
// 如果目标批次为空或找不到目标位置,添加到末尾
targetBatchArray.push(activePosition);
}
newPositions[targetBatch] = targetBatchArray;
}
return newPositions;
});
setHasChanges(true);
};
// 处理拖拽到其他批次 - 仅用于预览,不实际移动
const handleDragOver = (event) => {
// 空函数 - 我们只在dragEnd时处理实际的移动
};
// 监听路由变化
useEffect(() => {
const handleBeforeUnload = (e) => {
if (hasChanges) {
e.preventDefault();
e.returnValue = '';
}
};
window.addEventListener('beforeunload', handleBeforeUnload);
return () => window.removeEventListener('beforeunload', handleBeforeUnload);
}, [hasChanges]);
// 拦截导航 - 监听所有可能的页面切换
useEffect(() => {
if (!hasChanges) return;
const handleNavigation = (e) => {
// 如果点击的是弹窗内的元素,不拦截
if (e.target.closest('.arco-modal')) {
return;
}
// 检查是否是链接点击
const link = e.target.closest('a') || (e.target.tagName === 'A' ? e.target : null);
const button = e.target.closest('button') || (e.target.tagName === 'BUTTON' ? e.target : null);
// 检查是否是导航相关的元素
if (link || (button && (button.textContent?.includes('返回') || button.onclick))) {
e.preventDefault();
e.stopPropagation();
setShowSaveModal(true);
if (link) {
setPendingNavigation(link.href);
}
}
};
// 监听点击事件(捕获阶段)
document.addEventListener('click', handleNavigation, true);
// 监听浏览器后退/前进
const handlePopState = (e) => {
if (hasChanges) {
e.preventDefault();
setShowSaveModal(true);
}
};
window.addEventListener('popstate', handlePopState);
return () => {
document.removeEventListener('click', handleNavigation, true);
window.removeEventListener('popstate', handlePopState);
};
}, [hasChanges]);
useEffect(() => {
// 添加鼠标滚轮事件监听,实现横向滚动
const handleWheel = (e, ref) => {
if (ref.current && ref.current.contains(e.target)) {
e.preventDefault();
ref.current.scrollLeft += e.deltaY;
}
};
const batch1El = batch1Ref.current;
const batch2El = batch2Ref.current;
const batch3El = batch3Ref.current;
const wheel1Handler = (e) => handleWheel(e, batch1Ref);
const wheel2Handler = (e) => handleWheel(e, batch2Ref);
const wheel3Handler = (e) => handleWheel(e, batch3Ref);
if (batch1El) batch1El.addEventListener('wheel', wheel1Handler, { passive: false });
if (batch2El) batch2El.addEventListener('wheel', wheel2Handler, { passive: false });
if (batch3El) batch3El.addEventListener('wheel', wheel3Handler, { passive: false });
return () => {
if (batch1El) batch1El.removeEventListener('wheel', wheel1Handler);
if (batch2El) batch2El.removeEventListener('wheel', wheel2Handler);
if (batch3El) batch3El.removeEventListener('wheel', wheel3Handler);
};
}, []);
// 根据岗位名称获取头像
const getPositionAvatar = (positionName) => {
const jobData = jobLevelData.data;
for (const [key, levelData] of Object.entries(jobData)) {
const found = levelData.list.find(item => item.position_name === positionName);
if (found) {
return found.img;
}
}
return "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpSO4gUtJz.png"; // 默认头像
};
// 定义三个批次的岗位数据
const initialBatchPositions = {
batch1: [
"二次元周边店店员",
"会展执行助理",
"会展讲解员",
"会展营销",
"商业会展执行专员",
"景区运营专员",
"文旅运营总监助理",
"品牌策划运营专员",
"品牌推广专员",
"ip运营",
"文创产品设计师助理",
"新媒体运营专员",
"网络运营专员",
"社群运营",
"直播助理"
],
batch2: [
"宠物店店长",
"宠物营养师",
"二次元周边选品专员",
"二次元周边店店长",
"会展策划师",
"漫展策划师",
"活动执行",
"活动策划师",
"酒店运营专员",
"餐厅运营经理",
"露营地运营专员",
"旅游规划师",
"文旅项目投资拓展管培生",
"民宿管家",
"民宿客房管家",
"民宿运营专员",
"品牌公关",
"ip运营总监助理",
"品牌公关管培生",
"直播中控",
"SEO专员",
"SEM专员",
"赛事经纪"
],
batch3: [
"酒店餐饮主管",
"客房经理",
"酒店大堂副理",
"旅游计调专员",
"文创产品策划师",
"文创产品设计师",
"赛事礼仪",
"赛事编辑",
"艺人经纪人",
"演出执行经理",
"场馆运营人员"
]
};
const [batchPositions, setBatchPositions] = useState(initialBatchPositions);
// 拖拽传感器设置
const sensors = useSensors(
useSensor(PointerSensor, {
activationConstraint: {
distance: 8,
},
}),
useSensor(KeyboardSensor, {
coordinateGetter: sortableKeyboardCoordinates,
})
);
// 获取所有岗位ID
const getAllPositionIds = () => {
const ids = [];
Object.entries(batchPositions).forEach(([batch, positions]) => {
positions.forEach(position => {
ids.push(`${batch}-${position}`);
});
});
return ids;
};
return (
<div style={{ userSelect: 'none', WebkitUserSelect: 'none', MozUserSelect: 'none', msUserSelect: 'none' }}>
<DndContext
sensors={sensors}
collisionDetection={closestCenter}
onDragStart={handleDragStart}
onDragEnd={handleDragEnd}
onDragOver={handleDragOver}
>
<div className="target-position-wrapper">
<div className="target-position-content">
<div className="batch-icon">
<span style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>
第一批次
<Tooltip content="通过培训后能直接上岗的岗位,入职成功率最高。">
<span style={{ fontSize: '12px',
color: '#ffffff',
backgroundColor: '#4080ff',
borderRadius: '50%',
width: '16px',
height: '16px',
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center',
fontWeight: 'bold' }}>?</span>
</Tooltip>
</span>
<span style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>
第二批次
<Tooltip content="需积累一定工作经验后可争取的晋升岗位方向。">
<span style={{ fontSize: '12px',
color: '#ffffff',
backgroundColor: '#4080ff',
borderRadius: '50%',
width: '16px',
height: '16px',
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center',
fontWeight: 'bold' }}>?</span>
</Tooltip>
</span>
<span style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>
第三批次
<Tooltip content="需长期经验和能力沉淀,可作为学员的终极职业目标。">
<span style={{ fontSize: '12px',
color: '#ffffff',
backgroundColor: '#4080ff',
borderRadius: '50%',
width: '16px',
height: '16px',
display: 'inline-flex',
alignItems: 'center',
justifyContent: 'center',
fontWeight: 'bold' }}>?</span>
</Tooltip>
</span>
</div>
{/* 第一批次 */}
<div className="batch-content batch-content1" ref={batch1Ref}>
<SortableContext
items={batchPositions.batch1.map(p => `batch1-${p}`)}
strategy={horizontalListSortingStrategy}
>
{batchPositions.batch1.map((position) => (
<SortablePosition
key={`batch1-${position}`}
id={`batch1-${position}`}
position={position}
getPositionAvatar={getPositionAvatar}
/>
))}
</SortableContext>
</div>
{/* 第二批次 */}
<div className="batch-content batch-content2" ref={batch2Ref}>
<SortableContext
items={batchPositions.batch2.map(p => `batch2-${p}`)}
strategy={horizontalListSortingStrategy}
>
{batchPositions.batch2.map((position) => (
<SortablePosition
key={`batch2-${position}`}
id={`batch2-${position}`}
position={position}
getPositionAvatar={getPositionAvatar}
/>
))}
</SortableContext>
</div>
{/* 第三批次 */}
<div className="batch-content batch-content3" ref={batch3Ref}>
<SortableContext
items={batchPositions.batch3.map(p => `batch3-${p}`)}
strategy={horizontalListSortingStrategy}
>
{batchPositions.batch3.map((position) => (
<SortablePosition
key={`batch3-${position}`}
id={`batch3-${position}`}
position={position}
getPositionAvatar={getPositionAvatar}
/>
))}
</SortableContext>
</div>
{locked && (
<Locked text="该板块将在「垂直能力提升」阶段开放完成线上1V1求职策略定制后解锁" />
)}
</div>
</div>
{/* 拖拽覆盖层 */}
<DragOverlay>
{activeId ? (
<div
style={{
cursor: 'grabbing',
userSelect: 'none',
WebkitUserSelect: 'none',
pointerEvents: 'none'
}}
>
<div
style={{
position: 'relative',
width: '64px',
height: '64px',
borderRadius: '50%',
overflow: 'hidden',
backgroundColor: '#ffffff',
boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',
border: '2px solid #ffffff'
}}
>
<img
alt="avatar"
src={getPositionAvatar(activeId.split('-').slice(1).join('-'))}
draggable={false}
style={{
userSelect: 'none',
WebkitUserSelect: 'none',
pointerEvents: 'none',
width: '100%',
height: '100%',
objectFit: 'cover'
}}
/>
</div>
</div>
) : null}
</DragOverlay>
</DndContext>
{/* 保存提示模态框 */}
<Modal
title={
<div style={{
fontSize: '18px',
fontWeight: '600',
color: '#1d2129',
display: 'flex',
alignItems: 'center',
gap: '8px'
}}>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
<path d="M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 15h-2v-2h2v2zm0-4h-2V5h2v6z" fill="#2c7fff"/>
</svg>
保存更改
</div>
}
visible={showSaveModal}
onCancel={() => {
setShowSaveModal(false);
setPendingNavigation(null);
// 只关闭弹窗保留hasChanges状态下次点击返回还会弹出
}}
footer={[
<button
key="cancel"
className="arco-btn arco-btn-secondary"
onClick={() => {
setShowSaveModal(false);
setHasChanges(false);
setPendingNavigation(null);
navigate('/job-strategy'); // 返回定制求职策略页面
}}
style={{
padding: '8px 20px',
fontSize: '14px',
fontWeight: '500',
borderRadius: '6px',
border: '1px solid #e5e6eb',
backgroundColor: '#ffffff',
color: '#4e5969',
cursor: 'pointer',
transition: 'all 0.3s ease'
}}
onMouseEnter={(e) => {
e.currentTarget.style.backgroundColor = '#f7f8fa';
e.currentTarget.style.borderColor = '#c9cdd4';
}}
onMouseLeave={(e) => {
e.currentTarget.style.backgroundColor = '#ffffff';
e.currentTarget.style.borderColor = '#e5e6eb';
}}
>
放弃更改
</button>,
<div
key="save-wrapper"
style={{
position: 'relative',
display: 'inline-block'
}}
onMouseEnter={(e) => {
const tooltip = document.createElement('div');
tooltip.className = 'save-tooltip';
tooltip.textContent = '非导师和学生本人无修改权限';
tooltip.style.cssText = `
position: absolute;
bottom: 120%;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #1d2129 0%, #2e3440 100%);
color: #ffffff;
padding: 10px 16px;
border-radius: 8px;
font-size: 13px;
font-weight: 500;
white-space: nowrap;
z-index: 10000;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
animation: fadeIn 0.3s ease;
`;
const style = document.createElement('style');
style.textContent = `
@keyframes fadeIn {
from { opacity: 0; transform: translateX(-50%) translateY(5px); }
to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
`;
document.head.appendChild(style);
// 添加小箭头
const arrow = document.createElement('div');
arrow.style.cssText = `
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-style: solid;
border-width: 6px 6px 0 6px;
border-color: #2e3440 transparent transparent transparent;
`;
tooltip.appendChild(arrow);
e.currentTarget.appendChild(tooltip);
}}
onMouseLeave={(e) => {
const tooltip = e.currentTarget.querySelector('.save-tooltip');
if (tooltip) {
tooltip.remove();
}
const style = document.querySelector('style');
if (style && style.textContent.includes('fadeIn')) {
style.remove();
}
}}
>
<button
className="arco-btn arco-btn-primary"
disabled
style={{
padding: '8px 24px',
fontSize: '14px',
fontWeight: '500',
borderRadius: '6px',
backgroundColor: '#e5e6eb',
color: '#86909c',
cursor: 'not-allowed',
border: 'none',
opacity: '0.6',
transition: 'all 0.3s ease'
}}
>
保存更改
</button>
</div>
]}
style={{
borderRadius: '12px'
}}
>
<div style={{
display: 'flex',
alignItems: 'flex-start',
gap: '12px'
}}>
<svg width="18" height="18" viewBox="0 0 20 20" fill="none" style={{ marginTop: '2px', flexShrink: 0 }}>
<path d="M9 13h2v2H9v-2zm0-8h2v6H9V5zm.99-5C4.47 0 0 4.48 0 10s4.47 10 9.99 10C15.52 20 20 15.52 20 10S15.52 0 9.99 0zM10 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" fill="#ff7d00"/>
</svg>
<div>
<p style={{ margin: 0, fontWeight: '500', color: '#1d2129', marginBottom: '8px' }}>
您对岗位顺序进行了修改
</p>
<p style={{ margin: 0, fontSize: '13px', color: '#86909c' }}>
离开此页面前,是否要保存您的更改?未保存的更改将会丢失。
</p>
</div>
</div>
</Modal>
</div>
);
};

View File

@@ -54,8 +54,8 @@ const JobStrategyDetailPage = () => {
{/* 内容区域 */}
<div className="job-strategy-detail-content">
{activeItem === "1" && <TargetPosition locked={false} />}
{activeItem === "2" && <CurvedEmployment locked={false} />}
{activeItem === "1" && <TargetPosition locked={true} />}
{activeItem === "2" && <CurvedEmployment locked={true} />}
</div>
</div>
</div>

View File

@@ -6,8 +6,7 @@ const JobStrategyPage = () => {
return (
<div className="job-strategy-page">
<CoursesVideoPlayer
isLock
backgroundImage="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/public_bg/recuWolCCOlOCz.jpg"
isLock
/>
<LiveSummary showBtn />
</div>

View File

@@ -0,0 +1,17 @@
import CoursesVideoPlayer from "@/components/CoursesVideoPlayer";
import LiveSummary from "@/components/LiveSummary";
import "./index.css";
const JobStrategyPage = () => {
return (
<div className="job-strategy-page">
<CoursesVideoPlayer
isLock
backgroundImage="https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/public_bg/recuWolCCOlOCz.jpg"
/>
<LiveSummary showBtn />
</div>
);
};
export default JobStrategyPage;

File diff suppressed because it is too large Load Diff