chore: 迁移项目到新仓库并整理代码
- 更新多个组件的功能优化 - 整理简历映射数据 - 优化视频播放和面试模拟相关组件 - 更新就业策略和公司职位页面 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -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": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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. 协调制定“设计×商业”主题体系及空间动线布局方案,保障7–14号馆的内容叙事与观展体验顺畅; \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. 协助交通与住宿安排:收集大巴/高铁时刻表、民宿与酒店报价,整理对比文档,为最终选型提供数据支持;",
|
||||
|
||||
@@ -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可视化看板的整理与发布,辅助完成月度数据初步分析。",
|
||||
|
||||
@@ -27,27 +27,27 @@
|
||||
"会展策划师": {
|
||||
"projectExperience": "### (一)项目名称:2024年深圳国际家具展策划项目 \n \n### (二)实习岗位:会展策划师助理 \n \n### (三)实习时间:XXXX时间 \n \n### (四)实习单位:某某公司 \n \n### (五)岗位职责: \n \n1. 协调制定“设计×商业”主题体系及空间动线布局方案,保障7–14号馆的内容叙事与观展体验顺畅; \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. 活动结束后,对模板物料、流程手册与视觉文档进行系统归档,支持未来漫展内容可复用标准化。",
|
||||
|
||||
@@ -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. 协助交通与住宿安排:收集大巴/高铁时刻表、民宿与酒店报价,整理对比文档,为最终选型提供数据支持;",
|
||||
|
||||
@@ -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>
|
||||
</>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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 (
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
31
src/components/Locked/index.jsx.backup_20251017_192257
Normal file
31
src/components/Locked/index.jsx.backup_20251017_192257
Normal 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>
|
||||
);
|
||||
};
|
||||
@@ -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>
|
||||
|
||||
@@ -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: "提炼项目亮点,用数据和成果征服面试官。"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -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电子产业博览会”项目中,我参与了从前期规划、视觉执行、现场流程控制、突发事件应对到数据复盘的全过程工作,锻炼了统筹执行、沟通协调与细节把控能力。我具备较强学习能力和执行力,擅于快速跟进任务节奏并协助团队达成目标。希望未来在会展与活动运营领域继续成长,成为一名可信赖且具备高执行力的执行专员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任规划助理,积累了资源调研、线路策划和方案编制的实践经验。在实习中,我善于学习并能结合导师的意见完成创意方案,具备一定的逻辑思维与文案整理能力。我对旅游规划工作充满热情,乐于研究文化与市场结合的创新路径,期待在贵公司继续提升自己,成长为能够独立负责项目的旅游规划专员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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: "我是一名市场营销专业的大专毕业生,曾在贵州黔东南非遗文化探索线路设计项目中担任计调助理,积累了行程编排、资源落实、用户反馈整理的实践经验。在实习中,我注重细节,能够按时完成导师交付的任务,并在团队中保持积极沟通和协作。虽然经验尚浅,但我对旅游计调工作充满热情,具备快速学习与执行的能力,希望能在贵公司获得锻炼机会,逐步成长为一名独立的计调人员。"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
|
||||
377
src/pages/CompanyJobsPage/index.jsx.backup_20251017_175941
Normal file
377
src/pages/CompanyJobsPage/index.jsx.backup_20251017_175941
Normal 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;
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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">
|
||||
经过系统训练后的面试表现,展示个人成长和进步,体现出更强的职场竞争力和专业素养
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
};
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
17
src/pages/JobStrategyPage/index.jsx.backup_20251017_192255
Normal file
17
src/pages/JobStrategyPage/index.jsx.backup_20251017_192255
Normal 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;
|
||||
1180
可试看功能实现文档.md
Normal file
1180
可试看功能实现文档.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user