Files
offerpai_browser_plug/src/lib/constants.ts
T
2026-05-12 21:21:59 +08:00

429 lines
36 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 常量数据模块
* 包含表单标签数组、测试填写数据、UI组件库选择器配置、特殊标签修正配置等所有常量
*/
import type { FormLabelItem, UILibPickerConfig, ExperienceSectionConfig, ResumeData } from "./types"
// ============ 职位申请常用信息标签(中英文) ============
/**
* 职位申请表单常用信息标签数组
* 包含个人信息、联系方式、教育背景、求职意向等常见字段
*/
export const JOB_FORM_LABELS: FormLabelItem[] = [
// ---- 个人基本信息(主表) ----
{ key: "name", zh: ["姓名", "姓 名", "真实姓名", "名字"], en: ["Name", "Full Name", "Your Name", "Legal Name"], section: "main", resumeField: "name" },
{ key: "gender", zh: ["性别"], en: ["Gender", "Sex"], section: "main", resumeField: "" },
{ key: "birthday", zh: ["出生日期", "出生年月", "生日", "出生日期"], en: ["Date of Birth", "Birthday", "Birth Date", "DOB"], section: "main", resumeField: "" },
{ key: "idType", zh: ["证件类型"], en: ["ID Type", "Document Type"], section: "main", resumeField: "" },
{ key: "idNumber", zh: ["身份证号", "身份证", "证件号码", "证件号"], en: ["ID Number", "National ID", "ID Card Number"], section: "main", resumeField: "" },
{ key: "nationality", zh: ["国籍"], en: ["Nationality", "Country of Citizenship"], section: "main", resumeField: "" },
{ key: "ethnicity", zh: ["民族"], en: ["Ethnicity", "Race"], section: "main", resumeField: "" },
{ key: "maritalStatus", zh: ["婚姻状况", "婚姻"], en: ["Marital Status", "Marriage Status"], section: "main", resumeField: "" },
{ key: "hasChildren", zh: ["有无子女", "子女"], en: ["Children", "Has Children"], section: "main", resumeField: "" },
{ key: "politicalStatus", zh: ["政治面貌"], en: ["Political Status", "Political Affiliation"], section: "main", resumeField: "" },
{ key: "nativePlace", zh: ["籍贯", "户籍", "户口所在地"], en: ["Native Place", "Hometown", "Place of Origin"], section: "main", resumeField: "" },
{ key: "height", zh: ["身高", "身高(cm)"], en: ["Height"], section: "main", resumeField: "" },
{ key: "weight", zh: ["体重", "体重(kg)"], en: ["Weight"], section: "main", resumeField: "" },
{ key: "avatarUrl", zh: ["头像", "照片", "个人照片"], en: ["Avatar", "Photo", "Profile Photo"], section: "main", resumeField: "avatarUrl" },
{ key: "freshGraduate", zh: ["应届生", "应届生标识", "是否应届"], en: ["Fresh Graduate", "New Graduate", "Recent Graduate"], section: "main", resumeField: "" },
// ---- 联系方式(主表) ----
{ key: "phone", zh: ["手机号", "手机", "电话", "联系电话", "手机号码", "移动电话", "手机类型"], en: ["Phone", "Mobile", "Phone Number", "Cell Phone", "Telephone", "Contact Number"], section: "main", resumeField: "mobileNumber" },
{ key: "email", zh: ["邮箱", "电子邮箱", "邮件", "电子邮件"], en: ["Email", "E-mail", "Email Address"], section: "main", resumeField: "email" },
{ key: "address", zh: ["地址", "通讯地址", "联系地址", "现居住地", "家庭住址", "现住址"], en: ["Address", "Current Address", "Mailing Address", "Location", "Home Address"], section: "main", resumeField: "city" },
{ key: "zipCode", zh: ["邮编", "邮政编码"], en: ["Zip Code", "Postal Code", "ZIP"], section: "main", resumeField: "" },
{ key: "wechatNumber", zh: ["微信号", "微信", "微信账号"], en: ["WeChat", "WeChat ID", "WeChat Number"], section: "main", resumeField: "wechatNumber" },
{ key: "qq", zh: ["QQ", "QQ号", "QQ号码"], en: ["QQ", "QQ Number"], section: "main", resumeField: "" },
{ key: "emergencyContact", zh: ["紧急联系人", "紧急联系人姓名"], en: ["Emergency Contact", "Emergency Contact Name"], section: "main", resumeField: "" },
{ key: "emergencyPhone", zh: ["紧急联系方式", "紧急联系电话", "紧急联系人电话"], en: ["Emergency Phone", "Emergency Contact Number"], section: "main", resumeField: "" },
{ key: "portfolioUrl", zh: ["作品集", "作品链接", "个人作品", "作品集链接"], en: ["Portfolio", "Portfolio URL", "Portfolio Link", "Work Samples"], section: "main", resumeField: "portfolioUrl" },
// ---- 教育经历(数组) ----
{ key: "school", zh: ["学校", "学校名称", "毕业院校", "院校", "毕业学校"], en: ["School", "University", "College", "Institution", "School Name"], section: "education", resumeField: "school" },
{ key: "schoolLocation", zh: ["学校所在地", "学校所在城市"], en: ["School Location", "Campus Location"], section: "education", resumeField: "" },
{ key: "major", zh: ["专业", "专业名称", "所学专业", "主修课程"], en: ["Major", "Field of Study", "Specialization", "Program"], section: "education", resumeField: "major" },
{ key: "secondMajor", zh: ["第二专业", "辅修专业", "辅修"], en: ["Second Major", "Minor", "Double Major"], section: "education", resumeField: "" },
{ key: "degree", zh: ["学历", "学位", "最高学历", "最高学位"], en: ["Degree", "Education Level", "Qualification", "Education"], section: "education", resumeField: "degree" },
{ key: "studyType", zh: ["学习形式", "就读方式", "全日制/非全日制", "学习方式"], en: ["Study Type", "Study Mode", "Full-time/Part-time"], section: "education", resumeField: "studyType" },
{ key: "graduationDate", zh: ["毕业时间", "毕业日期", "毕业年份"], en: ["Graduation Date", "Graduation Year", "Expected Graduation"], section: "education", resumeField: "endDate" },
{ key: "eduPeriod", zh: ["就读时间", "就读期间", "起止时间"], en: ["Study Period", "Duration", "Period"], section: "education", resumeField: "startDate,endDate" },
{ key: "eduStartDate", zh: ["入学时间", "开始时间"], en: ["Start Date", "Enrollment Date", "From"], section: "education", resumeField: "startDate" },
{ key: "eduEndDate", zh: ["结束时间", "毕业时间"], en: ["End Date", "To", "Until"], section: "education", resumeField: "endDate" },
{ key: "eduDescription", zh: ["在校经历", "教育描述", "在校描述"], en: ["Education Description", "Academic Description"], section: "education", resumeField: "description" },
{ key: "gpa", zh: ["GPA", "绩点", "成绩", "平均分"], en: ["GPA", "Grade Point Average", "Academic Score"], section: "education", resumeField: "" },
{ key: "graduationThesis", zh: ["毕业论文", "毕业设计", "毕业论文/设计题目"], en: ["Thesis", "Graduation Thesis", "Dissertation"], section: "education", resumeField: "" },
// ---- 求职意向(主表) ----
{ key: "expectedSalary", zh: ["期望薪资", "期望月薪", "薪资要求", "期望薪酬", "薪酬", "薪资", "年薪", "月薪", "薪酬待遇", "期望年薪"], en: ["Expected Salary", "Desired Salary", "Salary Expectation", "Compensation"], section: "main", resumeField: "" },
{ key: "expectedPosition", zh: ["期望职位", "意向岗位", "应聘职位", "期望月薪/年薪"], en: ["Expected Position", "Desired Position", "Job Title", "Position Applied"], section: "main", resumeField: "targetPosition" },
{ key: "expectedCity", zh: ["期望城市", "工作城市", "意向城市", "期望工作地点", "期望工作地"], en: ["Preferred City", "Work Location", "Desired Location", "Preferred Location"], section: "main", resumeField: "city" },
{ key: "availableDate", zh: ["到岗时间", "入职时间", "可到岗日期"], en: ["Available Date", "Start Date", "Earliest Start Date", "Availability"], section: "main", resumeField: "" },
{ key: "workYears", zh: ["工作年限", "工作经验", "工作年限(年)", "期望工作地"], en: ["Work Experience", "Years of Experience", "Work Years"], section: "main", resumeField: "" },
{ key: "jobAcceptAdjust", zh: ["是否接受岗位调剂", "接受调剂", "服从调剂"], en: ["Accept Job Adjustment", "Open to Relocation", "Flexible Position"], section: "main", resumeField: "" },
{ key: "idCardNumber", zh: ["证件号", "证件号码"], en: ["ID Card Number", "Certificate Number"], section: "main", resumeField: "" },
// ---- 工作经历(数组) ----
{ key: "workCompany", zh: ["公司", "公司名称", "单位名称", "工作单位", "公司全称"], en: ["Company", "Company Name", "Employer", "Organization"], section: "work", resumeField: "companyName" },
{ key: "workCompanyShort", zh: ["公司简称"], en: ["Company Abbreviation", "Short Name"], section: "work", resumeField: "" },
{ key: "workCompanyScale", zh: ["公司规模"], en: ["Company Size", "Company Scale"], section: "work", resumeField: "" },
{ key: "workPosition", zh: ["职位", "职位名称", "岗位", "担任职务", "职位名称"], en: ["Job Title", "Position", "Title", "Role"], section: "work", resumeField: "position" },
{ key: "workPeriod", zh: ["起止时间", "在职时间", "就职时间"], en: ["Period", "Duration", "Employment Period"], section: "work", resumeField: "startDate,endDate" },
{ key: "workStartDate", zh: ["开始时间", "入职时间"], en: ["Start Date", "From"], section: "work", resumeField: "startDate" },
{ key: "workEndDate", zh: ["结束时间", "离职时间"], en: ["End Date", "To"], section: "work", resumeField: "endDate" },
{ key: "workDescription", zh: ["工作描述", "工作内容", "职责描述", "岗位职责", "职位描述"], en: ["Job Description", "Responsibilities", "Description", "Duties"], section: "work", resumeField: "description" },
// ---- 实习经历(数组) ----
{ key: "internCompany", zh: ["实习公司", "实习单位"], en: ["Intern Company", "Internship Company"], section: "internship", resumeField: "companyName" },
{ key: "internPosition", zh: ["实习职位", "实习岗位"], en: ["Intern Position", "Internship Role"], section: "internship", resumeField: "position" },
{ key: "internPeriod", zh: ["起止时间", "实习时间", "就职时间"], en: ["Period", "Duration", "Employment Period"], section: "internship", resumeField: "startDate,endDate" },
{ key: "internStartDate", zh: ["实习开始时间", "开始时间"], en: ["Internship Start Date", "Start Date", "From"], section: "internship", resumeField: "startDate" },
{ key: "internEndDate", zh: ["实习结束时间", "结束时间"], en: ["Internship End Date", "End Date", "To"], section: "internship", resumeField: "endDate" },
{ key: "internDescription", zh: ["实习描述", "实习内容","工作描述", "工作职责", "工作内容", "职责描述", "岗位职责", "职位描述"], en: ["Internship Description", "Intern Duties"], section: "internship", resumeField: "description" },
// ---- 项目经历(数组) ----
{ key: "projectName", zh: ["项目名称", "项目名", "项目", "项目名称"], en: ["Project Name", "Project", "Project Title"], section: "project", resumeField: "projectName" },
{ key: "projectCompany", zh: ["所属公司", "项目所属公司", "项目公司"], en: ["Project Company", "Company"], section: "project", resumeField: "companyName" },
{ key: "projectRole", zh: ["担任角色", "项目角色", "角色"], en: ["Role", "Project Role", "Your Role"], section: "project", resumeField: "role" },
{ key: "projectPeriod", zh: ["起止时间", "项目时间"], en: ["Period", "Duration", "Project Period"], section: "project", resumeField: "startDate,endDate" },
{ key: "projectStartDate", zh: ["项目开始时间", "开始时间"], en: ["Project Start Date", "Start Date", "From"], section: "project", resumeField: "startDate" },
{ key: "projectEndDate", zh: ["项目结束时间", "结束时间"], en: ["Project End Date", "End Date", "To"], section: "project", resumeField: "endDate" },
{ key: "projectDescription", zh: ["项目描述", "项目内容", "项目职责"], en: ["Project Description", "Project Details", "Project Responsibilities"], section: "project", resumeField: "description" },
// ---- 竞赛经历(数组) ----
{ key: "competitionName", zh: ["竞赛名称", "比赛名称", "竞赛"], en: ["Competition Name", "Contest Name", "Competition"], section: "competition", resumeField: "competitionName" },
{ key: "competitionAward", zh: ["获奖情况", "奖项", "获奖"], en: ["Award", "Prize", "Achievement"], section: "competition", resumeField: "award" },
{ key: "competitionDate", zh: ["获奖时间", "比赛时间"], en: ["Award Date", "Competition Date"], section: "competition", resumeField: "awardDate" },
{ key: "competitionDescription", zh: ["竞赛描述", "比赛描述"], en: ["Competition Description", "Contest Details"], section: "competition", resumeField: "description" },
// ---- 技能与证书(主表) ----
{ key: "skills", zh: ["技能", "专业技能", "技能特长", "专业特长"], en: ["Skills", "Technical Skills", "Competencies"], section: "main", resumeField: "skills" },
{ key: "language", zh: ["语言水平", "语言能力", "外语能力", "英语等级", "英语等级成绩", "英语水平", "外语水平", "语言考试"], en: ["Language Proficiency", "English Level", "Language Skills", "Foreign Language", "Language Level"], section: "main", resumeField: "" },
{ key: "certificate", zh: ["证书", "资格证书", "获得证书"], en: ["Certificate", "Certification", "License", "Credentials"], section: "main", resumeField: "certificates" },
// ---- 自我评价与附加信息(主表) ----
{ key: "selfIntro", zh: ["自我评价", "自我介绍", "个人简介", "个人总结", "自我描述"], en: ["Self Introduction", "About Me", "Summary", "Personal Statement", "Profile"], section: "main", resumeField: "summary" },
{ key: "hobby", zh: ["兴趣爱好", "爱好", "健身爱好", "个人爱好"], en: ["Hobbies", "Interests", "Hobbies & Interests"], section: "main", resumeField: "" },
{ key: "specialty", zh: ["特长", "个人特长"], en: ["Specialty", "Strengths", "Personal Strengths"], section: "main", resumeField: "" },
{ key: "rewardPunishment", zh: ["奖惩情况", "奖惩", "奖励情况"], en: ["Rewards & Punishments", "Awards & Disciplinary"], section: "main", resumeField: "" },
{ key: "academicWork", zh: ["学术专著", "学术著作"], en: ["Academic Works", "Publications"], section: "main", resumeField: "" },
{ key: "academicPaper", zh: ["学术论文", "论文发表"], en: ["Academic Papers", "Research Papers", "Thesis"], section: "main", resumeField: "" },
{ key: "patent", zh: ["专利发明", "专利", "发明专利"], en: ["Patents", "Inventions", "Patent"], section: "main", resumeField: "" },
{ key: "coverLetter", zh: ["求职信", "自荐信"], en: ["Cover Letter", "Application Letter"], section: "main", resumeField: "" },
{ key: "referral", zh: ["推荐人", "内推人", "推荐渠道", "渠道"], en: ["Referral", "Referred By", "How did you hear", "Source"], section: "main", resumeField: "" },
{ key: "agreement", zh: ["本人保证", "同意条款", "隐私协议", "声明"], en: ["Agreement", "I agree", "Terms", "Declaration", "Consent"], section: "main", resumeField: "" },
]
// ============ 测试数据 ============
/** 根据标签 key 生成的测试填写数据(中英文各一份),用于开发调试阶段 */
export const TEST_FILL_DATA: Record<string, { zh: string; en: string }> = {
name: { zh: "李华", en: "Hua Li" },
gender: { zh: "男", en: "Male" },
birthday: { zh: "2002-03-15", en: "2002-03-15" },
idType: { zh: "身份证", en: "ID Card" },
idNumber: { zh: "110101200203150011", en: "110101200203150011" },
nationality: { zh: "中国", en: "China" },
ethnicity: { zh: "汉族", en: "Han" },
maritalStatus: { zh: "未婚", en: "Single" },
hasChildren: { zh: "无", en: "No" },
politicalStatus: { zh: "共青团员", en: "Communist Youth League" },
nativePlace: { zh: "北京", en: "Beijing" },
height: { zh: "175", en: "175" },
weight: { zh: "70", en: "70" },
avatarUrl: { zh: "", en: "" },
freshGraduate: { zh: "是", en: "Yes" },
phone: { zh: "13800138000", en: "13800138000" },
email: { zh: "lihua@example.com", en: "lihua@example.com" },
address: { zh: "北京市海淀区中关村大街1号", en: "No.1 Zhongguancun Street, Haidian, Beijing" },
zipCode: { zh: "100080", en: "100080" },
wechatNumber: { zh: "lihua_wx", en: "lihua_wx" },
qq: { zh: "123456789", en: "123456789" },
emergencyContact: { zh: "李明", en: "Ming Li" },
emergencyPhone: { zh: "13900139000", en: "13900139000" },
portfolioUrl: { zh: "https://portfolio.example.com", en: "https://portfolio.example.com" },
school: { zh: "北京大学", en: "Peking University" },
schoolLocation: { zh: "北京", en: "Beijing" },
major: { zh: "计算机科学与技术", en: "Computer Science" },
secondMajor: { zh: "数学与应用数学", en: "Mathematics" },
degree: { zh: "硕士", en: "Master" },
studyType: { zh: "全日制", en: "Full-time" },
graduationDate: { zh: "2024-07-01", en: "2024-07-01" },
eduStartDate: { zh: "2020-09-01", en: "2020-09-01" },
eduEndDate: { zh: "2024-07-01", en: "2024-07-01" },
eduDescription: { zh: "主修计算机科学核心课程", en: "Majored in core CS courses" },
gpa: { zh: "3.8", en: "3.8" },
graduationThesis: { zh: "基于深度学习的文本分类研究", en: "Text Classification Based on Deep Learning" },
expectedSalary: { zh: "15000", en: "15000" },
expectedPosition: { zh: "前端开发工程师", en: "Frontend Developer" },
expectedCity: { zh: "北京", en: "Beijing" },
availableDate: { zh: "2024-08-01", en: "2024-08-01" },
workYears: { zh: "3", en: "3" },
jobAcceptAdjust: { zh: "是", en: "Yes" },
idCardNumber: { zh: "110101200203150011", en: "110101200203150011" },
workCompany: { zh: "字节跳动", en: "ByteDance" },
workCompanyShort: { zh: "字节", en: "ByteDance" },
workCompanyScale: { zh: "10000人以上", en: "10000+" },
workPosition: { zh: "前端开发工程师", en: "Frontend Developer" },
workStartDate: { zh: "2023-06-01", en: "2023-06-01" },
workEndDate: { zh: "2023-09-01", en: "2023-09-01" },
workDescription: { zh: "负责活动页面开发与性能优化", en: "Developed campaign pages and optimized performance" },
internCompany: { zh: "腾讯", en: "Tencent" },
internPosition: { zh: "前端实习生", en: "Frontend Intern" },
internStartDate: { zh: "2022-07-01", en: "2022-07-01" },
internEndDate: { zh: "2022-09-30", en: "2022-09-30" },
internDescription: { zh: "参与小程序开发", en: "Participated in mini-program development" },
projectName: { zh: "智能简历填写助手", en: "Smart Resume Filler" },
projectCompany: { zh: "字节跳动", en: "ByteDance" },
projectRole: { zh: "前端负责人", en: "Frontend Lead" },
projectStartDate: { zh: "2023-03-01", en: "2023-03-01" },
projectEndDate: { zh: "2023-06-01", en: "2023-06-01" },
projectDescription: { zh: "负责项目前端架构设计与开发", en: "Led frontend architecture design and development" },
competitionName: { zh: "ACM程序设计大赛", en: "ACM Programming Contest" },
competitionAward: { zh: "金奖", en: "Gold Award" },
competitionDate: { zh: "2023-07-01", en: "2023-07-01" },
competitionDescription:{ zh: "团队协作完成算法竞赛", en: "Team collaboration in algorithm competition" },
skills: { zh: "React, TypeScript, Node.js", en: "React, TypeScript, Node.js" },
language: { zh: "CET-6 550分", en: "CET-6 550" },
certificate: { zh: "软件设计师", en: "Software Designer Certificate" },
selfIntro: { zh: "热爱前端开发,有丰富的项目经验", en: "Passionate frontend developer with solid project experience" },
hobby: { zh: "篮球、游泳、阅读", en: "Basketball, Swimming, Reading" },
specialty: { zh: "全栈开发、算法竞赛", en: "Full-stack Development, Algorithm Competition" },
rewardPunishment: { zh: "校级优秀学生", en: "Outstanding Student Award" },
academicWork: { zh: "", en: "" },
academicPaper: { zh: "", en: "" },
patent: { zh: "", en: "" },
coverLetter: { zh: "您好,我对贵公司的岗位非常感兴趣", en: "Dear Hiring Manager, I am very interested in this position" },
referral: { zh: "学校招聘会", en: "Campus Job Fair" },
agreement: { zh: "同意", en: "I agree" },
}
// ============ 特殊标签 input 修正配置 ============
/**
* 特殊标签的 placeholder 关键词配置
* key: 标签的 keyplaceholders: 该标签对应 input 的 placeholder 应包含的关键词
*/
export const SPECIAL_LABEL_PLACEHOLDERS: Record<string, string[]> = {
/** 证件号码:前面常有证件类型 selectfindNearestInput 容易找到 select 的 input */
idNumber: ["证件号码", "证件号", "身份证号", "身份证", "ID Number", "ID Card"],
}
// ============ UI 组件库选择器类名数据 ============
/** 常用 PC 端 UI 组件库的各类选择器类名数据 */
export const UI_LIB_PICKER_CONFIGS: UILibPickerConfig[] = [
{ libName: "Element UI", dropdownClasses: ["el-select-dropdown", "el-date-picker", "el-picker-panel", "el-cascader-panel", "el-time-panel", "el-date-range-picker", "el-popper", "el-autocomplete-suggestion"], optionItemClasses: ["el-select-dropdown__item", "el-date-table td", "el-cascader-node", "el-time-spinner__item"], triggerClasses: ["el-select", "el-date-editor", "el-cascader", "el-time-select", "el-autocomplete"] },
{ libName: "Ant Design", dropdownClasses: ["ant-select-dropdown", "ant-picker-dropdown", "ant-cascader-dropdown", "ant-picker-panel", "ant-select-tree-dropdown", "ant-dropdown"], optionItemClasses: ["ant-select-item-option", "ant-picker-cell-inner", "ant-cascader-menu-item", "ant-select-tree-treenode"], triggerClasses: ["ant-select", "ant-picker", "ant-cascader", "ant-select-selector"] },
{ libName: "Arco Design", dropdownClasses: ["arco-select-popup", "arco-picker-container", "arco-trigger-popup", "arco-cascader-popup", "arco-datepicker-container"], optionItemClasses: ["arco-select-option", "arco-picker-cell-inner", "arco-cascader-option"], triggerClasses: ["arco-select", "arco-picker", "arco-cascader", "arco-select-view"] },
{ libName: "TDesign", dropdownClasses: ["t-select__dropdown", "t-date-picker__panel", "t-popup", "t-cascader__popup", "t-time-picker__panel"], optionItemClasses: ["t-select-option", "t-date-picker__cell-inner", "t-cascader__item"], triggerClasses: ["t-select", "t-date-picker", "t-cascader", "t-input__wrap"] },
{ libName: "Naive UI", dropdownClasses: ["n-base-select-menu", "n-date-panel", "n-cascader-menu", "n-time-picker-panel", "n-auto-complete-menu"], optionItemClasses: ["n-base-select-option", "n-date-panel-date", "n-cascader-option"], triggerClasses: ["n-select", "n-date-picker", "n-cascader", "n-auto-complete"] },
{ libName: "iView / View UI", dropdownClasses: ["ivu-select-dropdown", "ivu-date-picker-transfer", "ivu-cascader-transfer", "ivu-time-picker-transfer"], optionItemClasses: ["ivu-select-item", "ivu-date-picker-cells-cell", "ivu-cascader-menu-item"], triggerClasses: ["ivu-select", "ivu-date-picker", "ivu-cascader"] },
{ libName: "Vuetify", dropdownClasses: ["v-menu__content", "v-picker", "v-date-picker-table", "v-select-list", "v-autocomplete__content"], optionItemClasses: ["v-list-item", "v-date-picker-table__current", "v-btn--active"], triggerClasses: ["v-select", "v-text-field", "v-autocomplete", "v-input"] },
{ libName: "MUI", dropdownClasses: ["MuiPopover-root", "MuiMenu-paper", "MuiAutocomplete-popper", "MuiPickersPopper-root", "MuiPaper-root"], optionItemClasses: ["MuiMenuItem-root", "MuiAutocomplete-option", "MuiPickersDay-root"], triggerClasses: ["MuiSelect-select", "MuiAutocomplete-root", "MuiInputBase-root"] },
{ libName: "Semi Design", dropdownClasses: ["semi-select-option-list", "semi-datepicker-panel-container", "semi-cascader-option-lists", "semi-popover-wrapper"], optionItemClasses: ["semi-select-option", "semi-datepicker-day", "semi-cascader-option"], triggerClasses: ["semi-select", "semi-datepicker", "semi-cascader", "semi-input-wrapper"] },
]
// ============ 经历区块标题关键词配置 ============
/**
* 5大经历区块的标题关键词配置
* 用于在页面 DOM 中识别经历区块位置、统计已展开段数、查找添加按钮
*/
export const EXPERIENCE_SECTION_CONFIGS: ExperienceSectionConfig[] = [
{
section: "education",
zh: ["教育背景", "教育经历", "学历信息", "教育信息"],
en: ["Education", "Education Background", "Academic Background", "Education History"],
coreFieldKey: "school",
addButtonZh: ["添加", "新增", "添加教育", "添加教育经历", "新增教育经历", "+ 添加", "+ 新增"],
addButtonEn: ["Add", "Add Education", "Add More", "+ Add"],
},
{
section: "work",
zh: ["工作经历", "工作经验", "工作信息"],
en: ["Work Experience", "Employment History", "Work History", "Professional Experience"],
coreFieldKey: "workCompany",
addButtonZh: ["添加", "新增", "添加工作", "添加工作经历", "新增工作经历", "+ 添加", "+ 新增"],
addButtonEn: ["Add", "Add Work", "Add Experience", "Add More", "+ Add"],
},
{
section: "internship",
zh: ["实习经历", "实习经验", "实习信息"],
en: ["Internship", "Internship Experience", "Intern Experience"],
coreFieldKey: "internCompany",
addButtonZh: ["添加", "新增", "添加实习", "添加实习经历", "新增实习经历", "+ 添加", "+ 新增"],
addButtonEn: ["Add", "Add Internship", "Add More", "+ Add"],
},
{
section: "project",
zh: ["项目经历", "项目经验", "项目信息"],
en: ["Project", "Project Experience", "Projects"],
coreFieldKey: "projectName",
addButtonZh: ["添加", "新增", "添加项目", "添加项目经历", "新增项目经历", "+ 添加", "+ 新增"],
addButtonEn: ["Add", "Add Project", "Add More", "+ Add"],
},
{
section: "competition",
zh: ["竞赛经历", "获奖经历", "竞赛信息", "获奖情况"],
en: ["Competition", "Awards", "Competitions & Awards", "Contest Experience"],
coreFieldKey: "competitionName",
addButtonZh: ["添加", "新增", "添加竞赛", "添加竞赛经历", "新增竞赛经历", "+ 添加", "+ 新增"],
addButtonEn: ["Add", "Add Competition", "Add Award", "Add More", "+ Add"],
},
]
// ============ Mock 简历数据(模拟接口返回) ============
/**
* 模拟后端接口返回的完整简历数据
* 后续会替换为真实接口调用:javaApi.get<ResumeData>("/resume/detail")
*/
export function getMockResumeData(): ResumeData {
return {
main: {
avatarUrl: "",
name: "洪赫",
email: "1908796496@qq.com",
mobileNumber: "13713539828",
city: "",
wechatNumber: "13713539828",
portfolioUrl: "",
skills: ["数据分析", "模型训练", "模型测试", "算法部署", "图像识别", "目标识别", "目标检测", "Python"],
certificates: ["英语四级", "雅思6分"],
summary: "专业能力:掌握药学、医学相关理论知识,熟练使用Office办公软件(Word、Excel、PPT)进行数据整理和文档撰写,python熟练,了解数据库搭建和管理(sql),具备医学文献检索和数据分析能力。语言能力:英语四级,雅思6分,中英文书面与口头表达能力较强,能够进行跨部门沟通。普通话标准、流利。性格特质:工作态度认真,注重细节,有强烈的好奇心和学习能力,专业课排前20%,具备较强的逻辑分析能力,责任心强,团队合作意识强,能适应阶段性高强度工作。兴趣爱好:篮球、游戏、音乐等,参加院系篮球队、校院音乐节以及歌唱比赛并取得不错名次。",
},
education: [
{
id: "qLVFVDxh",
school: "香港理工大学",
major: "数据科学与分析",
degree: "硕士",
studyType: "全日制",
startDate: "2025.09",
endDate: "2026.12",
description: [
{ type: "text", content: "系统学习数据分析、统计建模、数据挖掘等核心课程,具备扎实的数据整理与逻辑分析能力" },
{ type: "text", content: "掌握数据库管理、医学文献检索工具使用方法,能够高效处理和分析大规模数据" },
],
},
{
id: "AntTOPmb",
school: "华南师范大学",
major: "人工智能",
degree: "本科",
studyType: "统招",
startDate: "2021.09",
endDate: "2025.07",
description: [
{ type: "text", content: "大一:高等数学、Python程序设计、面向对象程序设计、计算机体系结构、线性代数、离散数学等,培养严谨的逻辑思维能力" },
{ type: "text", content: "大二:Java、软件工程导论、概率论与数理统计、数据结构与算法、Web开发、数据库原理、操作系统等,具备数据管理与分析基础" },
{ type: "text", content: "大三:人工智能基础、计算机网络、计算机语言等,掌握数据挖掘与模式识别方法" },
{ type: "text", content: "熟练使用Office办公软件(Word、Excel、PPT)进行数据整理、报告撰写与汇报展示,注重细节与准确性" },
],
},
{
id: "AntTOPmj",
school: "华南师范大学2",
major: "人工智能",
degree: "本科",
studyType: "统招",
startDate: "2017.09",
endDate: "2021.07",
description: [
{ type: "text", content: "大一:高等数学、Python程序设计、面向对象程序设计、计算机体系结构、线性代数、离散数学等,培养严谨的逻辑思维能力" },
{ type: "text", content: "大二:Java、软件工程导论、概率论与数理统计、数据结构与算法、Web开发、数据库原理、操作系统等,具备数据管理与分析基础" },
{ type: "text", content: "大三:人工智能基础、计算机网络、计算机语言等,掌握数据挖掘与模式识别方法" },
{ type: "text", content: "熟练使用Office办公软件(Word、Excel、PPT)进行数据整理、报告撰写与汇报展示,注重细节与准确性" },
],
},
],
work: [],
internship: [
{
id: "EoNkjAF1",
companyName: "深圳乐动机器人科技有限公司4",
position: "机器人感知算法工程师",
startDate: "2024.05",
endDate: "2025.08",
description: [
{ type: "text", content: "4负责数据收集、分析、模型训练与测试、算法部署等全流程工作,注重数据准确性与细节管理;" },
{ type: "text", content: "参与割草机算法研发工作,包括分类、检测、分割、跟踪等模块,具备快速学习新技术领域的能力;" },
{ type: "text", content: "撰写技术文档与测试报告,进行跨部门沟通协作,确保项目按时交付并符合质量标准。" },
],
},
{
id: "cX5EGRDD",
companyName: "江西卓云深圳研发中心2",
position: "图像算法工程师",
startDate: "2020.12",
endDate: "2021.02",
description: [
{ type: "text", content: "2运用Python进行数据处理与分析,开发部署应用程序,具备较强的逻辑分析和数据整理能力;" },
{ type: "text", content: "独立完成项目全生命周期管理,包括数据收集、标注、模型训练、部署及性能调优,能应对重复性工作并保证准确性;" },
{ type: "text", content: "熟练掌握Office办公软件及数据库工具,具备文献检索与信息整理经验,工作态度认真负责。" },
],
},
{
id: "EoNkjAF2",
companyName: "深圳乐动机器人科技有限公司3",
position: "机器人感知算法工程师",
startDate: "2022.05",
endDate: "2023.08",
description: [
{ type: "text", content: "3负责数据收集、分析、模型训练与测试、算法部署等全流程工作,注重数据准确性与细节管理;" },
{ type: "text", content: "参与割草机算法研发工作,包括分类、检测、分割、跟踪等模块,具备快速学习新技术领域的能力;" },
{ type: "text", content: "撰写技术文档与测试报告,进行跨部门沟通协作,确保项目按时交付并符合质量标准。" },
],
},
{
id: "mX5EGRDA",
companyName: "江西卓云深圳研发中心1",
position: "图像算法工程师",
startDate: "2018.12",
endDate: "2019.02",
description: [
{ type: "text", content: "1运用Python进行数据处理与分析,开发部署应用程序,具备较强的逻辑分析和数据整理能力;" },
{ type: "text", content: "独立完成项目全生命周期管理,包括数据收集、标注、模型训练、部署及性能调优,能应对重复性工作并保证准确性;" },
{ type: "text", content: "熟练掌握Office办公软件及数据库工具,具备文献检索与信息整理经验,工作态度认真负责。" },
],
},
],
project: [
{
id: "q966EOx2",
companyName: "",
projectName: "微信小程序开发与测试",
role: "小程序工程师",
startDate: "2022.01",
endDate: "2023.01",
description: [
{ type: "text", content: "负责小程序功能模块的开发与测试,严格遵循开发规范和质量标准,确保系统稳定运行" },
{ type: "text", content: "参与需求分析与文档撰写工作,具备良好的书面表达能力和跨部门沟通协调能力" },
{ type: "text", content: "注重细节管理,对测试数据进行系统整理与分析,保证项目交付的准确性" },
],
},
{
id: "KVSEaywu",
companyName: "",
projectName: "多人游戏聊天网页开发",
role: "前端工程师",
startDate: "2022.08",
endDate: "2023.03",
description: [
{ type: "text", content: "负责网页功能开发与用户交互模块设计,具备快速学习新技术和解决问题的能力" },
{ type: "text", content: "熟练使用Office等办公软件进行项目文档管理和数据整理工作" },
{ type: "text", content: "具备团队合作精神,能够配合完成阶段性高强度工作任务" },
],
},
{
id: "KQtH64TE",
companyName: "",
projectName: "基于SEIR模型的疫情大数据追踪预测应用研究",
role: "工程师",
startDate: "2022.12",
endDate: "2023.08",
description: [
{ type: "text", content: "参与疫情数据监测与分析项目,运用数据模型进行风险评估和趋势预测" },
{ type: "text", content: "负责大量数据的收集、整理与分析工作,具备较强的逻辑分析能力和数据处理能力" },
{ type: "text", content: "撰写项目研究报告,具备文献检索和专业资料查阅能力,工作态度认真负责" },
{ type: "text", content: "对公共卫生安全监测工作有初步认知,理解数据监测在风险管理中的重要性" },
],
},
],
competition: [],
}
}