diff --git a/.gitignore b/.gitignore
index a547bf3..833f8f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,3 +22,6 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+
+# YoYo AI version control directory
+.yoyo/
diff --git a/generateTeacherData.js b/generateTeacherData.js
index b81a72f..fa401fc 100644
--- a/generateTeacherData.js
+++ b/generateTeacherData.js
@@ -6,7 +6,7 @@ const teacherData = {
name: "刘杰",
introduction: "15年民宿产业化研发与标准设计经验,专注民宿产品创新、职业化培训体系搭建及乡村文旅业态升级,主导多项国家级行业标准制定与落地实践。木亚文旅创始人兼董事长,全面负责民宿产业研发、标准制定及全国业务拓展,同时也是莫干山民宿行业协会执行会长兼秘书长以及浙江大学城市学院旅游管理专业校外导师。曾作为核心起草人,主持《乡村民宿服务质量规范》《民宿管家职业技能等级评定规范》等国标编制,推动民宿行业标准化发展;申报并推动'民宿管家'入选国家新职业目录,建立首个国家级职业技能评定体系。",
specialties: ["一听就懂", "思路很清晰", "课堂不枯燥", "学习氛围爆棚"],
- avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.png",
+ avatar: "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.jpg",
type: "复合课导师",
courses: []
},
diff --git a/src/components/CoursesVideoPlayer/index.css b/src/components/CoursesVideoPlayer/index.css
index 8c548da..b7122fa 100644
--- a/src/components/CoursesVideoPlayer/index.css
+++ b/src/components/CoursesVideoPlayer/index.css
@@ -117,10 +117,25 @@
/* 刘杰导师头像特殊调整 */
.teacher-avatar.teacher-liujie {
img {
- width: 400%; /* 大幅放大 */
- height: 400%;
+ width: 200%; /* 大幅放大 */
+ height: 200%;
object-position: center 30%; /* 调整位置 */
- top: -100%; /* 继续大幅上移 */
+ top: -50%; /* 继续大幅上移 */
+ }
+ }
+
+ /* 李奇导师头像特殊调整 - 居中显示 */
+ .teacher-avatar.teacher-liqi {
+ overflow: hidden !important;
+ img {
+ width: 140% !important;
+ height: 140% !important;
+ object-fit: cover !important;
+ object-position: center 35% !important;
+ position: absolute !important;
+ top: 55% !important;
+ left: 50% !important;
+ transform: translate(-50%, -50%) !important;
}
}
diff --git a/src/components/CoursesVideoPlayer/index.jsx b/src/components/CoursesVideoPlayer/index.jsx
index a0c0754..d9ed418 100644
--- a/src/components/CoursesVideoPlayer/index.jsx
+++ b/src/components/CoursesVideoPlayer/index.jsx
@@ -2,7 +2,7 @@ import { Avatar, Tooltip } from "@arco-design/web-react";
import Locked from "@/components/Locked";
import "./index.css";
-export default ({ className = "", isLock = false, selectedCourse, teacherData, unitPosters }) => {
+export default ({ className = "", isLock = false, selectedCourse, teacherData, unitPosters, isPublicCourse = false }) => {
const handleClickBtn = (item) => {
console.log(item);
};
@@ -101,7 +101,7 @@ export default ({ className = "", isLock = false, selectedCourse, teacherData, u
/* 选中课程时显示模糊的海报图和锁定状态 */
{eventItem.description}
diff --git a/src/pages/CalendarPage/index.css b/src/pages/CalendarPage/index.css
index e798de9..2fb88e6 100644
--- a/src/pages/CalendarPage/index.css
+++ b/src/pages/CalendarPage/index.css
@@ -242,44 +242,37 @@
/* 复合技能课 */
.event-item.compound-skill {
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ background: #5AC6FF;
}
/* 垂直技能课 */
.event-item.vertical-skill {
- background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%);
+ background: #CB78E0;
}
-/* 公开课 */
+/* 企业高管公开课 */
.event-item.public-course {
- background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
+ background: #D0A474;
+}
+
+/* AI课程 */
+.event-item.ai-course {
+ background: #F7A133;
+}
+
+/* 营销课 */
+.event-item.marketing-course {
+ background: #FF4277;
}
/* 1v1规划 */
.event-item.one-on-one {
- background: linear-gradient(135deg, #ec4899 0%, #f472b6 100%);
+ background: #FFCC3F;
}
/* 线下面试模拟 */
.event-item.interview {
- background: linear-gradient(135deg, #06b6d4 0%, #3b82f6 100%);
-}
-
-/* 默认类型保留 */
-.event-item.class {
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
-}
-
-.event-item.meeting {
- background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
-}
-
-.event-item.lab {
- background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
-}
-
-.event-item.exam {
- background: linear-gradient(135deg, #ff6b6b 0%, #ff8e53 100%);
+ background: #0743DA;
}
.event-more {
diff --git a/src/pages/HomeworkPage/index.css b/src/pages/HomeworkPage/index.css
index 5e022c5..bc66921 100644
--- a/src/pages/HomeworkPage/index.css
+++ b/src/pages/HomeworkPage/index.css
@@ -16,26 +16,68 @@
.homework-page-content-list {
width: 1120px;
min-height: 360px;
- border-radius: 8px;
+ border-radius: 12px;
background-color: #fff;
- margin-bottom: 20px;
+ margin-bottom: 24px;
box-sizing: border-box;
- padding: 20px 15px;
+ padding: 24px 20px 20px;
position: relative;
- overflow: hidden; /* 重要:隐藏溢出内容 */
+ overflow: hidden;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
- .homework-page-content-list-title {
- font-size: 20px;
- font-weight: 600;
- color: #000;
+ .homework-page-content-list-header {
+ margin-bottom: 16px;
+
+ .homework-page-content-list-title {
+ font-size: 18px;
+ font-weight: 600;
+ color: #1d2129;
+ margin: 0;
+ line-height: 1;
+ }
}
+
+ .homework-page-unit-nav {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+ flex-wrap: wrap;
+ margin-bottom: 20px;
+ padding-bottom: 16px;
+ border-bottom: 1px solid #f2f3f5;
+
+ .unit-nav-item {
+ padding: 5px 14px;
+ font-size: 13px;
+ color: #4e5969;
+ background: #f7f8fa;
+ border: 1px solid transparent;
+ border-radius: 14px;
+ cursor: pointer;
+ transition: all 0.2s ease;
+ white-space: nowrap;
+ font-weight: 400;
+
+ &:hover {
+ background: #e8f3ff;
+ color: #2c7aff;
+ }
+
+ &.active {
+ background: #2c7aff;
+ color: #fff;
+ font-weight: 500;
+ }
+ }
+ }
+
.homework-page-content-list-class {
- width: calc(100% + 30px); /* 扩展到padding外 */
- height: 300px;
- margin-top: 20px;
- margin-left: -15px;
- margin-right: -15px;
- padding: 0 15px;
+ width: calc(100% + 40px); /* 扩展到padding外 */
+ height: 280px;
+ margin-top: 0;
+ margin-left: -20px;
+ margin-right: -20px;
+ padding: 0 20px;
padding-bottom: 10px;
overflow-x: auto;
overflow-y: hidden;
diff --git a/src/pages/HomeworkPage/index.jsx b/src/pages/HomeworkPage/index.jsx
index 3065d2c..1d76c75 100644
--- a/src/pages/HomeworkPage/index.jsx
+++ b/src/pages/HomeworkPage/index.jsx
@@ -9,7 +9,12 @@ import "./index.css";
const HomeworkPage = () => {
const { homework } = mockData;
const scrollContainerRef = useRef(null);
+ const verticalScrollContainerRef = useRef(null);
const [showIframe, setShowIframe] = useState(false);
+ const [selectedUnits, setSelectedUnits] = useState({
+ 1: "全部", // 复合能力课的选中单元
+ 2: "全部" // 垂直能力课的选中单元
+ });
// 调试:打印课程数量
console.log('作业数据:', homework);
@@ -19,67 +24,90 @@ const HomeworkPage = () => {
// 添加鼠标滚轮横向滚动支持(更丝滑的滚动)
useEffect(() => {
- const container = scrollContainerRef.current;
- if (!container) return;
+ // 如果显示iframe,不初始化滚动
+ if (showIframe) return;
+
+ const containers = [scrollContainerRef.current, verticalScrollContainerRef.current].filter(Boolean);
+ if (containers.length === 0) return;
- let animationId = null;
- let targetScrollLeft = container.scrollLeft;
+ const animationIds = new Map();
+ const targetScrollLefts = new Map();
+ const handlers = new Map();
- // 平滑滚动动画
- const smoothScroll = () => {
- const currentScrollLeft = container.scrollLeft;
- const diff = targetScrollLeft - currentScrollLeft;
+ containers.forEach(container => {
+ targetScrollLefts.set(container, container.scrollLeft);
- if (Math.abs(diff) > 0.5) {
- container.scrollLeft = currentScrollLeft + diff * 0.15; // 缓动系数
- animationId = requestAnimationFrame(smoothScroll);
- } else {
- container.scrollLeft = targetScrollLeft;
- if (animationId) {
- cancelAnimationFrame(animationId);
- animationId = null;
+ // 平滑滚动动画
+ const smoothScroll = () => {
+ const currentScrollLeft = container.scrollLeft;
+ const targetScrollLeft = targetScrollLefts.get(container);
+ const diff = targetScrollLeft - currentScrollLeft;
+
+ if (Math.abs(diff) > 0.5) {
+ container.scrollLeft = currentScrollLeft + diff * 0.15; // 缓动系数
+ const animId = requestAnimationFrame(smoothScroll);
+ animationIds.set(container, animId);
+ } else {
+ container.scrollLeft = targetScrollLeft;
+ const animId = animationIds.get(container);
+ if (animId) {
+ cancelAnimationFrame(animId);
+ animationIds.delete(container);
+ }
}
- }
- };
+ };
- // 鼠标滚轮横向滚动
- const handleWheel = (e) => {
- e.preventDefault();
+ // 鼠标滚轮横向滚动
+ const handleWheel = (e) => {
+ e.preventDefault();
+
+ // 计算滚动距离,使用较小的值让滚动更平滑
+ const scrollAmount = e.deltaY * 0.8;
+ let newTargetScrollLeft = targetScrollLefts.get(container) + scrollAmount;
+
+ // 限制滚动范围
+ newTargetScrollLeft = Math.max(0, Math.min(newTargetScrollLeft, container.scrollWidth - container.clientWidth));
+ targetScrollLefts.set(container, newTargetScrollLeft);
+
+ // 如果没有正在进行的动画,启动平滑滚动
+ if (!animationIds.has(container)) {
+ const animId = requestAnimationFrame(smoothScroll);
+ animationIds.set(container, animId);
+ }
+ };
- // 计算滚动距离,使用较小的值让滚动更平滑
- const scrollAmount = e.deltaY * 0.8;
- targetScrollLeft = container.scrollLeft + scrollAmount;
-
- // 限制滚动范围
- targetScrollLeft = Math.max(0, Math.min(targetScrollLeft, container.scrollWidth - container.clientWidth));
-
- // 如果没有正在进行的动画,启动平滑滚动
- if (!animationId) {
- animationId = requestAnimationFrame(smoothScroll);
- }
- };
-
- container.addEventListener('wheel', handleWheel, { passive: false });
+ handlers.set(container, handleWheel);
+ container.addEventListener('wheel', handleWheel, { passive: false });
+ });
return () => {
- container.removeEventListener('wheel', handleWheel);
- if (animationId) {
- cancelAnimationFrame(animationId);
- }
+ containers.forEach(container => {
+ const handleWheel = handlers.get(container);
+ if (handleWheel) {
+ container.removeEventListener('wheel', handleWheel);
+ }
+ const animId = animationIds.get(container);
+ if (animId) {
+ cancelAnimationFrame(animId);
+ }
+ });
};
- }, []);
+ }, [showIframe]);
- const handleClickBtn = (sectionId, itemId) => {
- // 只有复合能力培养的第72个项目(展会策划教学)可以点击
- if (sectionId === 1 && itemId === 72) {
+ const handleClickBtn = (sectionId, item) => {
+ // 垂直能力课中标记为isShowCase的课程可以点击
+ if (sectionId === 2 && item.isShowCase) {
setShowIframe(true);
}
};
// 判断是否应该显示灰色图片和禁用按钮
- const isDisabled = (sectionId, itemId) => {
- // 只有复合能力培养的展会策划教学(第72个)是启用状态
- return !(sectionId === 1 && itemId === 72);
+ const isDisabled = (sectionId, item) => {
+ // 垂直能力课中标记为isShowCase的课程是启用状态
+ if (sectionId === 2 && item.isShowCase) {
+ return false;
+ }
+ return true;
};
// 如果显示iframe,渲染全页面的iframe
@@ -105,18 +133,62 @@ const HomeworkPage = () => {
);
}
+ // 获取筛选后的课程列表
+ const getFilteredCourses = (sectionId) => {
+ const section = homework.find(h => h.id === sectionId);
+ if (!section) return [];
+
+ const selectedUnit = selectedUnits[sectionId];
+
+ // 如果有units结构,使用新结构
+ if (section.units) {
+ if (selectedUnit === "全部") {
+ // 将所有单元的课程合并
+ return section.units.flatMap(unit => unit.courses);
+ } else {
+ // 返回选中单元的课程
+ const unit = section.units.find(u => u.name === selectedUnit);
+ return unit ? unit.courses : [];
+ }
+ }
+
+ // 兼容旧结构
+ return section.list || [];
+ };
+
// 正常渲染作业列表
return (
{homework.map((item) => (
-
-
{item.name}
+
+ {item.units && (
+
+ setSelectedUnits({...selectedUnits, [item.id]: "全部"})}
+ >
+ 全部
+
+ {item.units.map((unit, index) => (
+ setSelectedUnits({...selectedUnits, [item.id]: unit.name})}
+ >
+ {unit.name}
+
+ ))}
+
+ )}
- {item.list.map((contentItem) => (
+ {getFilteredCourses(item.id).map((contentItem) => (
- {
!isDisabled(item.id, contentItem.id) && handleClickBtn(item.id, contentItem.id)}
+ onClick={() => !isDisabled(item.id, contentItem) && handleClickBtn(item.id, contentItem)}
>
已完成
diff --git a/src/pages/InterviewSimulationPage/components/InterviewRating/index.jsx b/src/pages/InterviewSimulationPage/components/InterviewRating/index.jsx
index 554c24f..a5e7674 100644
--- a/src/pages/InterviewSimulationPage/components/InterviewRating/index.jsx
+++ b/src/pages/InterviewSimulationPage/components/InterviewRating/index.jsx
@@ -11,7 +11,7 @@ export default ({ 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_offline_vedio/recuUpJT02CMM5.mp4";
+ 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 "第二次线下面试模拟":
diff --git a/src/pages/PublicCourses/index.jsx b/src/pages/PublicCourses/index.jsx
index e478c7a..2b3c3cc 100644
--- a/src/pages/PublicCourses/index.jsx
+++ b/src/pages/PublicCourses/index.jsx
@@ -18,7 +18,8 @@ const PublicCourses = () => {
diff --git a/teacherData.json b/teacherData.json
index fc082d1..eef2b73 100644
--- a/teacherData.json
+++ b/teacherData.json
@@ -9,7 +9,7 @@
"课堂不枯燥",
"学习氛围爆棚"
],
- "avatar": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.png",
+ "avatar": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.jpg",
"type": "复合课导师",
"courses": []
},
diff --git a/原始文件数据/导师信息.csv b/原始文件数据/导师信息.csv
index 770e797..a279612 100644
--- a/原始文件数据/导师信息.csv
+++ b/原始文件数据/导师信息.csv
@@ -1,25 +1,25 @@
-❌查询导师名称,导师介绍,导师专长,导师头像url链接,导师类型
+❌查询导师名称,导师介绍,导师专长,导师头像url链接,导师类型
刘杰,"15年民宿产业化研发与标准设计经验,专注民宿产品创新、职业化培训体系搭建及乡村文旅业态升级,主导多项国家级行业标准制定与落地实践。
木亚文旅创始人兼董事长,全面负责民宿产业研发、标准制定及全国业务拓同时也是莫干山民宿行业协会执行会长兼秘书长以及浙江大学城市学院旅游管理专业校外导师。
曾作为核心起草人,主持《乡村民宿服务质量规范》《民宿管家职业技能等级评定规范》等国标编制,推动民宿行业标准化发展;申报并推动“民宿管家”入选国家新职业目录,建立首个国家级职业技能评定体系。","# � 一听就懂
# � 思路很清晰
# � 课堂不枯燥
-# � 学习氛围爆棚",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.png,复合课导师
+# � 学习氛围爆棚",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.jpg,复合课导师
郭建辉,拥有18年文化旅游规划与产业运营经验,专注景区产品创新设计、文旅人才培养体系构建及城市文化更新模式研究,主导多项省部级文旅项目及行业标准实践落地。山行文旅研究院创始人兼院长,全面负责文旅规划研发、运营标准制定与全国学术交流,同时兼任中国文化旅游协会文创专委会副主任委员、华东师范大学旅游与会展专业硕士生导师。,"# � 经验传授权威
# � 实用可落地
# � 表达沟通提升
-# � 跨界经验丰富",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBMNLZL5.png,复合课导师
+# � 跨界经验丰富",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBMNLZL5.png,复合课导师
赵志强,"深耕乡村旅游与民宿产业12年,从一线管家服务到国家级标准制定,全程参与中国民宿职业化与产业化进程。
曾作为首席讲师为苏浙沪皖四地文旅部门提供“乡村振兴十大模式”培训,设计桑蚕文化园、谢家路村等沉浸式研学路线,促成区域人才协作机制,获江苏省人社厅列为省级高级研修示范项目。
曾担任标准起草专家组核心成员,牵头《德清县地方民宿管理办法》试点,联合政府申报“民宿管理师”新职业,制定长三角区域民宿评级体系,推动了紫蓬山民宿学校(安徽)、吴江农文旅融合示范区落地,形成可复制的“民宿+”乡村振兴模式。","# � 讲解有节奏
# � 讲解通俗
# ✨ 幽默又有料
-# � 善于启发",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJC2oLPpC.png,复合课导师
+# � 善于启发",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJC2oLPpC.png,复合课导师
孙应战,拥有18年制造业与产品营销经验,曾在上市公司与世界500强外企任职,参与大众MEB平台、奥迪EA888发动机及新能源汽车项目开发。作为德企内训讲师、国际演讲学会资深会员和中国心理卫生协会会员,善于将实践经验转化为通俗讲解,课堂氛围轻松易懂。,"# � 经验传授权威
# � 实用可落地
# � 表达沟通提升
-# � 跨界经验丰富",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJCc6qecx.jpg,公共课导师
+# � 跨界经验丰富",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJCc6qecx.jpg,公共课导师
魏立慧,企业资深一线HR主讲,专注于为求职者提供一对一的个性化指导。通过真实招聘视角,深入剖析个人优势与短板、传授面试技巧、规划职业定位与发展路径,帮助学生快速提升求职竞争力。求职策略以实用落地为核心,注重互动交流与角色定位,让学员在轻松氛围中获得直击痛点的求职策略。,"# � 点评直击要害
# � 擅长挖掘优势
# � 职业规划达人
-# � 深谙用人逻辑",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpSO4gUtJz.png,企业资深HR
+# � 深谙用人逻辑",https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpSO4gUtJz.png,企业资深HR
diff --git a/网页未导入数据/导师信息.json b/网页未导入数据/导师信息.json
index 85506a8..f6a856d 100644
--- a/网页未导入数据/导师信息.json
+++ b/网页未导入数据/导师信息.json
@@ -4,7 +4,7 @@
"垂直方向倾向": "项目经营管理",
"导师介绍": "15年民宿产业化研发与标准设计经验,专注民宿产品创新、职业化培训体系搭建及乡村文旅业态升级,主导多项国家级行业标准制定与落地实践。\n木亚文旅创始人兼董事长,全面负责民宿产业研发、标准制定及全国业务拓同时也是莫干山民宿行业协会执行会长兼秘书长以及浙江大学城市学院旅游管理专业校外导师。\n曾作为核心起草人,主持《乡村民宿服务质量规范》《民宿管家职业技能等级评定规范》等国标编制,推动民宿行业标准化发展;申报并推动“民宿管家”入选国家新职业目录,建立首个国家级职业技能评定体系。",
"导师专长": "# � 一听就懂\n# � 思路很清晰\n# � 课堂不枯燥\n# � 学习氛围爆棚\n# � 民宿产业化专家",
- "导师头像url链接": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.png",
+ "导师头像url链接": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuUpJBE4VCCx.jpg",
"导师类型": "复合课导师"
},
{
@@ -68,7 +68,7 @@
"垂直方向倾向": "",
"导师介绍": "毕业于南洋理工学院,拥有硕士学位,具备扎实的人工智能理论基础与产业实践经验。近年来,专注于大模型工程化与AI应用课程体系建设,主持完成《AIGC实战:从模型调用到产品落地》《AI在视觉设计与内容生成中的应用》等多个应用型教学项目。曾主导开发“AI技能地图导航系统”,实现课程内容与岗位技能的精准对齐,在2024年全国高校AI课程创新大赛中荣获一等奖。擅长将复杂的算法模型转化为通俗易懂的教学内容,致力于打造“人人可用AI”的实训课程体系,是众多高校与职业培训机构特聘的AI技术与课程体系顾问。",
"导师专长": "# � 老师超懂学生\n# �️ 技巧随手教\n# ✨ 幽默又有料\n# � 讲解有节奏\n# � 人工智能技术顾问\n# � 大模型工程化研究者\n# � AI应用课程体系建设者\n# � 全国高校AI课程创新大赛一等奖获得者\n# �️ 教学内容转化能力强\n# � AI教育与应用场景落地推动者",
- "导师头像url链接": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuVU7LDWK6iG.jpg",
+ "导师头像url链接": "https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/img/teach_sys_teacher-avatar/recuW8gePZvRn6.jpg",
"导师类型": "AI课导师"
}
]
\ No newline at end of file
diff --git a/网页未导入数据/营销能力课.json b/网页未导入数据/营销能力课.json
new file mode 100644
index 0000000..3c24143
--- /dev/null
+++ b/网页未导入数据/营销能力课.json
@@ -0,0 +1,104 @@
+[
+ {
+ "日期": "2024/7/15",
+ "星期": "星期一",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "PM产品经理思维",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ },
+ {
+ "日期": "2024/7/16",
+ "星期": "星期二",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "了解你的客户群体",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ },
+ {
+ "日期": "2024/7/17",
+ "星期": "星期三",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "营销与沟通",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ },
+ {
+ "日期": "2024/7/18",
+ "星期": "星期四",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "营销的模式",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ },
+ {
+ "日期": "2024/7/19",
+ "星期": "星期五",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "自我营销第一步:面试",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ },
+ {
+ "日期": "2024/7/20",
+ "星期": "星期六",
+ "AI课": "",
+ "复合技能课": "",
+ "营销课": "如何在职场中包装自己",
+ "公开课": "",
+ "垂直课(方向二:商业活动策划)": "",
+ "1V1 规划阶段": "",
+ "模拟面试实战练习": "",
+ "上课时间": "20:00~21:00",
+ "上课地点": "线上",
+ "课程状态": "已完成",
+ "就业管家": "文旅",
+ "❌课程状态": "有课",
+ "❌导师姓名查询": "孙应战"
+ }
+]
\ No newline at end of file