From 796d6ab6577e6e65b10a04fa9fa4ae90a1810032 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Wed, 15 Oct 2025 22:41:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=87=8D=E6=9E=84=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 150 +------ src/components/Contact/ContactForm.vue | 135 +++++++ src/components/Contact/ContactInfo.vue | 31 ++ src/components/Contact/ContactSection.vue | 203 ++++++++++ src/components/ContactSection.vue | 370 ------------------ src/components/Education/EducationCard.vue | 42 ++ .../{ => Education}/EducationSection.vue | 61 +-- src/components/Experience/ExperienceCard.vue | 47 +++ .../{ => Experience}/ExperienceSection.vue | 97 ++--- src/components/{Footer.vue => Footerbar.vue} | 36 +- src/components/Navbar.vue | 2 +- src/components/Project/ProjectCard.vue | 53 +++ src/components/Project/ProjectSection.vue | 245 ++++++++++++ src/components/SkillsSection.vue | 10 +- src/store/profile.ts | 119 +++++- src/types/index.ts | 27 ++ 16 files changed, 983 insertions(+), 645 deletions(-) create mode 100644 src/components/Contact/ContactForm.vue create mode 100644 src/components/Contact/ContactInfo.vue create mode 100644 src/components/Contact/ContactSection.vue delete mode 100644 src/components/ContactSection.vue create mode 100644 src/components/Education/EducationCard.vue rename src/components/{ => Education}/EducationSection.vue (68%) create mode 100644 src/components/Experience/ExperienceCard.vue rename src/components/{ => Experience}/ExperienceSection.vue (71%) rename src/components/{Footer.vue => Footerbar.vue} (84%) create mode 100644 src/components/Project/ProjectCard.vue create mode 100644 src/components/Project/ProjectSection.vue create mode 100644 src/types/index.ts diff --git a/src/App.vue b/src/App.vue index acbdd5b..65669ba 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,45 +1,28 @@ @@ -48,14 +31,11 @@ import { ref, onMounted } from 'vue' import Navbar from './components/Navbar.vue' import HeroSection from './components/HeroSection.vue' import SkillsSection from './components/SkillsSection.vue' -import ExperienceSection from './components/ExperienceSection.vue' -import EducationSection from './components/EducationSection.vue' -import ContactSection from './components/ContactSection.vue' -import Footer from './components/Footer.vue' - -import { useProfileStore } from '@/store/profile.js' - -const profileStore = useProfileStore() +import ExperienceSection from './components/Experience/ExperienceSection.vue' +import ProjectSection from '@/components/Project/ProjectSection.vue' +import EducationSection from './components/Education/EducationSection.vue' +import ContactSection from './components/Contact/ContactSection.vue' +import Footerbar from './components/Footerbar.vue' // 滚动位置 const scrollPosition = ref(0) @@ -80,102 +60,6 @@ const scrollToSection = (sectionId) => { }) } } - -// 技能数据 -const skills = [ - { - icon: 'fa-code', - title: '前端开发', - description: '精通HTML5、CSS3和JavaScript(ES6+),熟悉响应式设计和跨浏览器兼容性处理。', - tags: ['HTML5', 'CSS3', 'JavaScript', 'TypeScript'] - }, - { - icon: 'fa-react', - title: '框架与库', - description: '熟练使用React、Vue等主流前端框架,以及相关的状态管理和路由库。', - tags: ['React', 'Vue', 'Redux', 'Vuex'] - }, - { - icon: 'fa-paint-brush', - title: 'UI/UX设计', - description: '具备良好的设计感,熟悉主流UI组件库和设计系统,能够实现高质量的用户界面。', - tags: ['Element UI', 'Ant Design', 'Figma', 'SCSS'] - }, - { - icon: 'fa-cogs', - title: '工程化', - description: '熟悉前端工程化工具和流程,能够提高开发效率和代码质量。', - tags: ['Webpack', 'Vite', 'Git', 'ESLint'] - }, - { - icon: 'fa-server', - title: '后端知识', - description: '了解Node.js和常用后端技术,能够与后端团队高效协作,实现全栈开发。', - tags: ['Node.js', 'Express', 'RESTful API', 'MongoDB'] - }, - { - icon: 'fa-globe', - title: '其他技能', - description: '掌握项目管理和沟通技巧,具备良好的英语能力,能够阅读英文技术文档。', - tags: ['敏捷开发', '英语', '团队协作', '问题解决'] - } -] - -// 工作经验数据 -const experiences = [ - { - period: '2020年3月 - 至今', - position: '高级前端工程师', - company: '科技创新有限公司', - description: '负责公司核心产品的前端架构设计和开发,优化前端性能,提升用户体验。主导多个大型项目的前端开发工作,带领5人团队完成产品迭代和维护。', - tags: ['React', 'TypeScript', 'Redux'], - image: 'https://picsum.photos/id/0/400/200' - }, - { - period: '2017年8月 - 2020年2月', - position: '前端开发工程师', - company: '互联网科技有限公司', - description: '参与多个企业级Web应用的开发,负责前端页面实现和交互逻辑编写。与产品和设计团队紧密合作,将设计稿转化为高质量的代码,解决各种浏览器兼容性问题。', - tags: ['Vue', 'SCSS', 'Webpack'], - image: 'https://picsum.photos/id/180/400/200' - }, - { - period: '2016年6月 - 2017年7月', - position: '前端开发实习生', - company: '数字技术有限公司', - description: '参与公司官网和内部管理系统的开发与维护,学习前端开发技术和最佳实践。协助 senior 工程师完成功能模块开发,修复已知bug,优化页面性能。', - tags: ['HTML5', 'CSS3', 'jQuery'], - image: 'https://picsum.photos/id/48/400/200' - } -] - -// 教育背景数据 -const education = [ - { - period: '2012年9月 - 2016年6月', - degree: '计算机科学与技术', - school: '北京大学', - description: '本科期间主修计算机科学与技术专业,系统学习了数据结构、算法、计算机网络等基础知识,参与多个课程设计和科研项目。', - detailsTitle: '主要课程', - details: ['数据结构', '算法分析', '计算机网络', '操作系统', '数据库原理'] - }, - { - period: '2016年9月 - 2018年6月', - degree: '软件工程', - school: '清华大学', - description: '研究生阶段专注于软件工程领域,研究方向为Web前端技术和用户界面设计,发表2篇相关领域的学术论文,参与校企合作项目开发。', - detailsTitle: '主要成果', - details: ['学术论文2篇', '优秀毕业生', '校企合作项目', '奖学金'] - } -] - -// 联系信息数据 -const contactInfo = [ - { icon: 'fa-map-marker', title: '地址', content: '北京市朝阳区建国路88号' }, - { icon: 'fa-phone', title: '电话', content: '138-1234-5678' }, - { icon: 'fa-envelope', title: '邮箱', content: 'liming@example.com' }, - { icon: 'fa-clock-o', title: '工作时间', content: '周一至周五: 9:00 - 18:00' } -] diff --git a/src/components/ContactSection.vue b/src/components/ContactSection.vue deleted file mode 100644 index f10f1be..0000000 --- a/src/components/ContactSection.vue +++ /dev/null @@ -1,370 +0,0 @@ - - - - - diff --git a/src/components/Education/EducationCard.vue b/src/components/Education/EducationCard.vue new file mode 100644 index 0000000..408afa8 --- /dev/null +++ b/src/components/Education/EducationCard.vue @@ -0,0 +1,42 @@ + + + diff --git a/src/components/EducationSection.vue b/src/components/Education/EducationSection.vue similarity index 68% rename from src/components/EducationSection.vue rename to src/components/Education/EducationSection.vue index 750c799..e06ccac 100644 --- a/src/components/EducationSection.vue +++ b/src/components/Education/EducationSection.vue @@ -1,5 +1,5 @@ - diff --git a/src/components/SkillsSection.vue b/src/components/SkillsSection.vue index 2df0a8e..a1234ce 100644 --- a/src/components/SkillsSection.vue +++ b/src/components/SkillsSection.vue @@ -8,7 +8,7 @@
import { defineProps, onMounted } from 'vue' +import { useProfileStore } from '@/store/profile.ts' + +const profileStore = useProfileStore() -// 接收技能数据和sectionId const props = defineProps({ - skills: { - type: Array, - required: true - }, sectionId: { type: String, required: true diff --git a/src/store/profile.ts b/src/store/profile.ts index b2292be..2cbabd3 100644 --- a/src/store/profile.ts +++ b/src/store/profile.ts @@ -12,7 +12,124 @@ export const useProfileStore = defineStore('profile', { { name: 'Twitter', icon: 'fa-brands fa-twitter', url: '#' }, { name: 'Email', icon: 'fa-solid fa-envelope', url: '#' } ] - } + }, + skills: [ + { + icon: 'fa-code', + title: '前端开发', + description: '精通HTML5、CSS3和JavaScript(ES6+),熟悉响应式设计和跨浏览器兼容性处理。', + tags: ['HTML5', 'CSS3', 'JavaScript', 'TypeScript'] + }, + { + icon: 'fa-react', + title: '框架与库', + description: '熟练使用React、Vue等主流前端框架,以及相关的状态管理和路由库。', + tags: ['React', 'Vue', 'Redux', 'Vuex'] + }, + { + icon: 'fa-paint-brush', + title: 'UI/UX设计', + description: '具备良好的设计感,熟悉主流UI组件库和设计系统,能够实现高质量的用户界面。', + tags: ['Element UI', 'Ant Design', 'Figma', 'SCSS'] + }, + { + icon: 'fa-cogs', + title: '工程化', + description: '熟悉前端工程化工具和流程,能够提高开发效率和代码质量。', + tags: ['Webpack', 'Vite', 'Git', 'ESLint'] + }, + { + icon: 'fa-server', + title: '后端知识', + description: '了解Node.js和常用后端技术,能够与后端团队高效协作,实现全栈开发。', + tags: ['Node.js', 'Express', 'RESTful API', 'MongoDB'] + }, + { + icon: 'fa-globe', + title: '其他技能', + description: '掌握项目管理和沟通技巧,具备良好的英语能力,能够阅读英文技术文档。', + tags: ['敏捷开发', '英语', '团队协作', '问题解决'] + } + ], + experiences: [ + { + period: '2020年3月 - 至今', + position: '高级前端工程师', + company: '科技创新有限公司', + description: '负责公司核心产品的前端架构设计和开发,优化前端性能,提升用户体验。主导多个大型项目的前端开发工作,带领5人团队完成产品迭代和维护。', + tags: ['React', 'TypeScript', 'Redux'], + image: 'https://picsum.photos/id/0/400/200' + }, + { + period: '2017年8月 - 2020年2月', + position: '前端开发工程师', + company: '互联网科技有限公司', + description: '参与多个企业级Web应用的开发,负责前端页面实现和交互逻辑编写。与产品和设计团队紧密合作,将设计稿转化为高质量的代码,解决各种浏览器兼容性问题。', + tags: ['Vue', 'SCSS', 'Webpack'], + image: 'https://picsum.photos/id/180/400/200' + }, + { + period: '2016年6月 - 2017年7月', + position: '前端开发实习生', + company: '数字技术有限公司', + description: '参与公司官网和内部管理系统的开发与维护,学习前端开发技术和最佳实践。协助 senior 工程师完成功能模块开发,修复已知bug,优化页面性能。', + tags: ['HTML5', 'CSS3', 'jQuery'], + image: 'https://picsum.photos/id/48/400/200' + } + ], + education: [ + { + period: '2012年9月 - 2016年6月', + degree: '计算机科学与技术', + school: '北京大学', + description: '本科期间主修计算机科学与技术专业,系统学习了数据结构、算法、计算机网络等基础知识,参与多个课程设计和科研项目。', + detailsTitle: '主要课程', + details: ['数据结构', '算法分析', '计算机网络', '操作系统', '数据库原理'] + }, + { + period: '2016年9月 - 2018年6月', + degree: '软件工程', + school: '清华大学', + description: '研究生阶段专注于软件工程领域,研究方向为Web前端技术和用户界面设计,发表2篇相关领域的学术论文,参与校企合作项目开发。', + detailsTitle: '主要成果', + details: ['学术论文2篇', '优秀毕业生', '校企合作项目', '奖学金'] + } + ], + projects: [ + { + name: '企业级电商平台', + period: '2022.03 - 2023.06', + role: '前端负责人', + description: '一个完整的B2B电商平台,包含商品管理、订单系统、支付系统等功能模块。', + responsibilities: [ + '负责前端架构设计和核心模块开发', + '带领5人前端团队完成项目开发', + '优化前端性能,提升页面加载速度40%', + '实现响应式设计,适配多种设备' + ], + tags: ['前端', 'Vue3', 'TypeScript', '负责人', '电商'], + image: '/images/projects/ecommerce.jpg' + }, + { + name: '智能数据分析系统', + period: '2021.07 - 2022.02', + role: '全栈开发工程师', + description: '为企业提供数据分析和可视化展示的系统,支持大数据处理和实时分析。', + responsibilities: [ + '参与前后端功能开发', + '设计并实现数据可视化模块', + '优化数据处理算法,提升性能30%', + '编写技术文档和单元测试' + ], + tags: ['全栈', 'React', 'Node.js', '大数据', '可视化'], + image: '/images/projects/analytics.jpg' + } + ], + contactInfo: [ + { icon: 'fa-map-marker', title: '地址', content: '南京市溧水区柘塘街道' }, + { icon: 'fa-phone', title: '电话', content: '138-1407-9242' }, + { icon: 'fa-envelope', title: '邮箱', content: 'njcxx0822@163.com' } + ] }), actions: { diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..f6329ea --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,27 @@ +export interface IEducation { + period: string; + degree: string; + school: string; + description: string; + detailsTitle: string; + details: string[]; +} + +export interface IExperience { + period: string; + position: string; + company: string; + description: string; + tags: string[]; + image: string; +} + +export interface IProject { + name: string + period: string + role: string + description: string + responsibilities?: string[] + tags: string[] + image?: string +}