123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218 |
- "use strict";
- const common_vendor = require("../../common/vendor.js");
- const common_config = require("../../common/config.js");
- const _sfc_main = {
- data() {
- return {
- // 添加承诺书相关数据
- showPromiseModal: true,
- promiseChecked: false,
- formData: {
- name: "",
- gender: "",
- threePeriod: "",
- birthDate: "",
- idCard: "",
- political: "",
- ethnic: "",
- height: "",
- weight: "",
- nativePlace: "",
- residence: "",
- marriage: "",
- expectedSalary: "",
- phone: "",
- email: "",
- currentAddress: "",
- emergencyContact: "",
- emergencyPhone: "",
- hobby: "",
- motto: "",
- // 添加应聘来源相关字段
- sourceType: "social",
- // 默认为社招
- socialSource: "",
- // 社招来源
- otherSocialSource: "",
- // 其他社招来源
- otherSchoolSource: "",
- // 其他学校来源
- // 添加技能和培训字段
- skills: "",
- training: ""
- },
- genderOptions: ["男", "女"],
- genderIndex: -1,
- threePeriodOptions: ["无", "孕期", "产期", "哺乳期"],
- threePeriodIndex: -1,
- politicalOptions: ["群众", "共青团员", "中共党员", "民主党派"],
- politicalIndex: -1,
- ethnicOptions: ["汉族", "蒙古族", "回族", "藏族", "维吾尔族", "其他"],
- ethnicIndex: -1,
- marriageOptions: ["未婚", "已婚", "离异", "丧偶"],
- marriageIndex: -1,
- familyMembers: [],
- familyMemberForm: {
- relation: "",
- name: "",
- workplaceOrAddress: "",
- position: "",
- phone: "",
- isEmergencyContact: false
- // 添加新字段
- },
- isEditing: false,
- editingIndex: -1,
- // 添加教育经历相关数据
- educationList: [],
- educationForm: {
- startTime: "",
- endTime: "",
- schoolName: "",
- major: "",
- degree: ""
- },
- isEditingEducation: false,
- editingEducationIndex: -1,
- degreeOptions: ["高中", "中专", "大专", "本科", "硕士", "博士"],
- degreeIndex: -1,
- // 添加工作经历相关数据
- workList: [],
- workForm: {
- startTime: "",
- endTime: "",
- companyName: "",
- department: "",
- employeeCount: "",
- position: "",
- monthlySalary: "",
- supervisor: "",
- supervisorPhone: ""
- },
- isEditingWork: false,
- editingWorkIndex: -1,
- // 添加步骤控制
- currentStep: 1,
- steps: [
- { id: 1, name: "基本信息" },
- { id: 3, name: "家庭成员" },
- { id: 5, name: "教育经历" },
- { id: 6, name: "专业技能" },
- { id: 8, name: "工作经历" }
- ],
- formErrors: {
- name: "",
- idCard: "",
- phone: ""
- },
- // Add loading state
- isLoading: true
- };
- },
- onLoad() {
- this.fetchUserData();
- },
- computed: {
- // 添加计算属性来控制按钮显示
- showPrevButton() {
- return this.currentStep !== 1;
- },
- showNextButton() {
- return this.currentStep !== 8;
- },
- showSubmitButton() {
- return this.currentStep === 8;
- },
- // 获取当前步骤在数组中的索引
- currentStepIndex() {
- return this.steps.findIndex((step) => step.id === this.currentStep);
- }
- },
- methods: {
- // 添加承诺书相关方法
- togglePromiseChecked() {
- this.promiseChecked = !this.promiseChecked;
- },
- confirmPromise() {
- if (this.promiseChecked) {
- this.showPromiseModal = false;
- } else {
- common_vendor.index.showToast({
- title: "请先阅读并同意承诺书内容",
- icon: "none"
- });
- }
- },
- bindGenderChange(e) {
- this.genderIndex = e.detail.value;
- this.formData.gender = this.genderOptions[this.genderIndex];
- if (this.formData.gender !== "女") {
- this.formData.threePeriod = "";
- this.threePeriodIndex = -1;
- }
- },
- bindThreePeriodChange(e) {
- this.threePeriodIndex = e.detail.value;
- this.formData.threePeriod = this.threePeriodOptions[this.threePeriodIndex];
- },
- bindPoliticalChange(e) {
- this.politicalIndex = e.detail.value;
- this.formData.political = this.politicalOptions[this.politicalIndex];
- },
- bindEthnicChange(e) {
- this.ethnicIndex = e.detail.value;
- this.formData.ethnic = this.ethnicOptions[this.ethnicIndex];
- },
- bindMarriageChange(e) {
- this.marriageIndex = e.detail.value;
- this.formData.marriage = this.marriageOptions[this.marriageIndex];
- },
- bindDateChange(e) {
- this.formData.birthDate = e.detail.value;
- },
- saveFamilyMember() {
- if (!this.familyMemberForm.relation) {
- common_vendor.index.showToast({
- title: "请输入称谓",
- icon: "none"
- });
- return;
- }
- if (!this.familyMemberForm.name) {
- common_vendor.index.showToast({
- title: "请输入姓名",
- icon: "none"
- });
- return;
- }
- if (!this.familyMemberForm.phone) {
- common_vendor.index.showToast({
- title: "请输入联系电话",
- icon: "none"
- });
- return;
- }
- if (this.isEditing) {
- if (!this.familyMemberForm.isEmergencyContact && this.familyMembers[this.editingIndex].isEmergencyContact) {
- this.formData.emergencyContact = "";
- this.formData.emergencyPhone = "";
- }
- this.familyMembers[this.editingIndex] = { ...this.familyMemberForm };
- common_vendor.index.showToast({
- title: "修改成功",
- icon: "success"
- });
- this.isEditing = false;
- this.editingIndex = -1;
- } else {
- this.familyMembers.push({ ...this.familyMemberForm });
- common_vendor.index.showToast({
- title: "添加成功",
- icon: "success"
- });
- }
- this.familyMemberForm = {
- relation: "",
- name: "",
- workplaceOrAddress: "",
- position: "",
- phone: "",
- isEmergencyContact: false
- };
- },
- editFamilyMember(index) {
- this.isEditing = true;
- this.editingIndex = index;
- this.familyMemberForm = { ...this.familyMembers[index] };
- common_vendor.index.pageScrollTo({
- selector: ".family-member-form",
- duration: 300
- });
- },
- cancelEdit() {
- this.isEditing = false;
- this.editingIndex = -1;
- this.familyMemberForm = {
- relation: "",
- name: "",
- workplaceOrAddress: "",
- position: "",
- phone: "",
- isEmergencyContact: false
- };
- },
- deleteFamilyMember(index) {
- if (this.isEditing && this.editingIndex === index) {
- this.cancelEdit();
- }
- this.familyMembers.splice(index, 1);
- common_vendor.index.showToast({
- title: "已删除",
- icon: "none"
- });
- },
- // 选择应聘来源类型
- selectSourceType(type) {
- this.formData.sourceType = type;
- if (type === "social") {
- this.formData.socialSource = "BOSS";
- } else {
- this.formData.socialSource = "";
- }
- },
- // 选择社招来源
- selectSocialSource(source) {
- this.formData.sourceType = "social";
- this.formData.socialSource = source;
- },
- // 教育经历相关方法
- bindStartTimeChange(e) {
- this.educationForm.startTime = e.detail.value;
- },
- bindEndTimeChange(e) {
- this.educationForm.endTime = e.detail.value;
- },
- bindDegreeChange(e) {
- this.degreeIndex = e.detail.value;
- this.educationForm.degree = this.degreeOptions[this.degreeIndex];
- },
- saveEducation() {
- if (!this.educationForm.startTime) {
- common_vendor.index.showToast({
- title: "请选择开始时间",
- icon: "none"
- });
- return;
- }
- if (!this.educationForm.endTime) {
- common_vendor.index.showToast({
- title: "请选择结束时间",
- icon: "none"
- });
- return;
- }
- if (!this.educationForm.schoolName) {
- common_vendor.index.showToast({
- title: "请输入学校名称",
- icon: "none"
- });
- return;
- }
- if (!this.educationForm.major) {
- common_vendor.index.showToast({
- title: "请输入专业",
- icon: "none"
- });
- return;
- }
- if (!this.educationForm.degree) {
- common_vendor.index.showToast({
- title: "请选择学历",
- icon: "none"
- });
- return;
- }
- if (this.isEditingEducation) {
- this.educationList[this.editingEducationIndex] = { ...this.educationForm };
- common_vendor.index.showToast({
- title: "修改成功",
- icon: "success"
- });
- this.isEditingEducation = false;
- this.editingEducationIndex = -1;
- } else {
- this.educationList.push({ ...this.educationForm });
- common_vendor.index.showToast({
- title: "添加成功",
- icon: "success"
- });
- }
- this.educationForm = {
- startTime: "",
- endTime: "",
- schoolName: "",
- major: "",
- degree: ""
- };
- this.degreeIndex = -1;
- },
- editEducation(index) {
- this.isEditingEducation = true;
- this.editingEducationIndex = index;
- this.educationForm = { ...this.educationList[index] };
- this.degreeIndex = this.degreeOptions.findIndex((item) => item === this.educationForm.degree);
- common_vendor.index.pageScrollTo({
- selector: ".education-form",
- duration: 300
- });
- },
- cancelEditEducation() {
- this.isEditingEducation = false;
- this.editingEducationIndex = -1;
- this.educationForm = {
- startTime: "",
- endTime: "",
- schoolName: "",
- major: "",
- degree: ""
- };
- this.degreeIndex = -1;
- },
- deleteEducation(index) {
- if (this.isEditingEducation && this.editingEducationIndex === index) {
- this.cancelEditEducation();
- }
- this.educationList.splice(index, 1);
- common_vendor.index.showToast({
- title: "已删除",
- icon: "none"
- });
- },
- // 工作经历相关方法
- bindWorkStartTimeChange(e) {
- this.workForm.startTime = e.detail.value;
- },
- bindWorkEndTimeChange(e) {
- this.workForm.endTime = e.detail.value;
- },
- saveWork() {
- if (!this.workForm.startTime) {
- common_vendor.index.showToast({
- title: "请选择开始时间",
- icon: "none"
- });
- return;
- }
- if (!this.workForm.endTime) {
- common_vendor.index.showToast({
- title: "请选择结束时间",
- icon: "none"
- });
- return;
- }
- if (!this.workForm.companyName) {
- common_vendor.index.showToast({
- title: "请输入单位名称",
- icon: "none"
- });
- return;
- }
- if (!this.workForm.department) {
- common_vendor.index.showToast({
- title: "请输入任职部门",
- icon: "none"
- });
- return;
- }
- if (!this.workForm.position) {
- common_vendor.index.showToast({
- title: "请输入担任职务",
- icon: "none"
- });
- return;
- }
- if (this.isEditingWork) {
- this.workList[this.editingWorkIndex] = { ...this.workForm };
- common_vendor.index.showToast({
- title: "修改成功",
- icon: "success"
- });
- this.isEditingWork = false;
- this.editingWorkIndex = -1;
- } else {
- this.workList.push({ ...this.workForm });
- common_vendor.index.showToast({
- title: "添加成功",
- icon: "success"
- });
- }
- this.workForm = {
- startTime: "",
- endTime: "",
- companyName: "",
- department: "",
- employeeCount: "",
- position: "",
- monthlySalary: "",
- supervisor: "",
- supervisorPhone: ""
- };
- },
- editWork(index) {
- this.isEditingWork = true;
- this.editingWorkIndex = index;
- this.workForm = { ...this.workList[index] };
- common_vendor.index.pageScrollTo({
- selector: ".work-form",
- duration: 300
- });
- },
- cancelEditWork() {
- this.isEditingWork = false;
- this.editingWorkIndex = -1;
- this.workForm = {
- startTime: "",
- endTime: "",
- companyName: "",
- department: "",
- employeeCount: "",
- position: "",
- monthlySalary: "",
- supervisor: "",
- supervisorPhone: ""
- };
- },
- deleteWork(index) {
- if (this.isEditingWork && this.editingWorkIndex === index) {
- this.cancelEditWork();
- }
- this.workList.splice(index, 1);
- common_vendor.index.showToast({
- title: "已删除",
- icon: "none"
- });
- },
- submitForm() {
- if (!this.validateCurrentStep()) {
- return;
- }
- const userInfo = common_vendor.index.getStorageSync("userInfo");
- if (!userInfo) {
- common_vendor.index.showToast({
- title: "用户信息获取失败,请重新登录",
- icon: "none",
- duration: 2e3
- });
- return;
- }
- try {
- const userData = JSON.parse(userInfo);
- const submitData = {
- tenant_id: 1,
- user_id: userData.id,
- personal_info: {
- name: this.formData.name,
- gender: this.formData.gender,
- phone: this.formData.phone,
- id_card: this.formData.idCard,
- address: this.formData.currentAddress,
- professional_skills: this.formData.skills ? this.formData.skills.split(",") : []
- },
- profile: {
- female_status: this.getFemaleStatus(),
- marital_status: this.getMaritalStatus(),
- height: parseFloat(this.formData.height) || 0,
- weight: parseFloat(this.formData.weight) || 0,
- ethnicity: this.formData.ethnic,
- current_address: this.formData.currentAddress,
- expected_salary: parseFloat(this.formData.expectedSalary) || 0
- },
- educations: this.formatEducations(),
- family_members: this.formatFamilyMembers(),
- work_experiences: this.formatWorkExperiences()
- };
- if (!submitData.personal_info.name || !submitData.personal_info.gender || !submitData.personal_info.phone) {
- common_vendor.index.showToast({
- title: "基本信息不完整",
- icon: "none",
- duration: 2e3
- });
- return;
- }
- this.sendFormData(submitData);
- } catch (error) {
- console.error("数据处理错误:", error);
- common_vendor.index.showToast({
- title: "数据处理错误,请重试",
- icon: "none",
- duration: 2e3
- });
- }
- },
- // 辅助方法:发送表单数据
- sendFormData(submitData) {
- common_vendor.index.showLoading({ title: "提交中..." });
- const token = common_vendor.index.getStorageSync("token");
- common_vendor.index.request({
- url: `${common_config.apiBaseUrl}/wechat/user/profile/update`,
- method: "POST",
- data: submitData,
- header: {
- "content-type": "application/json",
- "Authorization": token ? `Bearer ${token}` : ""
- },
- success: (res) => {
- common_vendor.index.hideLoading();
- if (res.statusCode === 200) {
- if (res.data.code === 2e3) {
- common_vendor.index.showToast({
- title: "提交成功",
- icon: "success",
- duration: 2e3
- });
- setTimeout(() => {
- common_vendor.index.navigateTo({
- url: "/pages/interview-notice/interview-notice"
- });
- }, 2e3);
- } else {
- common_vendor.index.showToast({
- title: res.data.msg || "提交失败",
- icon: "none",
- duration: 2e3
- });
- }
- } else {
- common_vendor.index.showToast({
- title: "服务器响应错误",
- icon: "none",
- duration: 2e3
- });
- }
- },
- fail: (err) => {
- console.error("提交失败:", err);
- common_vendor.index.hideLoading();
- if (err.errMsg.includes("timeout")) {
- common_vendor.index.showToast({
- title: "请求超时,请检查网络后重试",
- icon: "none",
- duration: 2e3
- });
- } else if (err.errMsg.includes("fail")) {
- common_vendor.index.showToast({
- title: "网络连接失败,请检查网络设置",
- icon: "none",
- duration: 2e3
- });
- } else {
- common_vendor.index.showToast({
- title: "提交失败,请稍后重试",
- icon: "none",
- duration: 2e3
- });
- }
- },
- complete: () => {
- }
- });
- },
- // 数据格式化方法
- getFemaleStatus() {
- if (this.formData.gender !== "女")
- return 0;
- const statusMap = { "孕期": 1, "产期": 2, "哺乳期": 3 };
- return statusMap[this.formData.threePeriod] || 0;
- },
- getMaritalStatus() {
- const statusMap = { "未婚": 0, "已婚": 1, "离异": 2, "丧偶": 3 };
- return statusMap[this.formData.marriage] || 0;
- },
- formatEducations() {
- return this.educationList.map((edu, index) => ({
- education_type: index === 0 ? 1 : 2,
- degree: this.mapDegreeToNumber(edu.degree),
- start_date: edu.startTime,
- end_date: edu.endTime,
- school_name: edu.schoolName,
- major: edu.major
- }));
- },
- formatFamilyMembers() {
- return this.familyMembers.map((member) => ({
- relation: member.relation,
- name: member.name,
- workplace: member.workplaceOrAddress,
- position: member.position,
- phone: member.phone
- //is_emergency_contact: member.isEmergencyContact||false // 添加紧急联系人标识
- }));
- },
- formatWorkExperiences() {
- return this.workList.map((work) => ({
- start_date: work.startTime,
- end_date: work.endTime,
- company_name: work.companyName,
- department: work.department,
- company_size: work.employeeCount,
- position: work.position,
- monthly_salary: work.monthlySalary,
- supervisor_name: work.supervisor,
- supervisor_phone: work.supervisorPhone
- }));
- },
- // 学历映射辅助方法
- mapDegreeToNumber(degreeText) {
- const degreeMap = {
- "高中": 1,
- "中专": 1,
- "大专": 2,
- "本科": 3,
- "硕士": 4,
- "博士": 5
- };
- return degreeMap[degreeText] || 6;
- },
- prevStep() {
- const prevIndex = this.currentStepIndex - 1;
- if (prevIndex >= 0) {
- this.currentStep = this.steps[prevIndex].id;
- common_vendor.index.pageScrollTo({
- scrollTop: 0,
- duration: 300
- });
- }
- },
- nextStep() {
- if (!this.validateCurrentStep()) {
- return;
- }
- if (this.currentStep === 1) {
- this.verifyIdentity();
- return;
- }
- const nextIndex = this.currentStepIndex + 1;
- if (nextIndex < this.steps.length) {
- this.currentStep = this.steps[nextIndex].id;
- common_vendor.index.pageScrollTo({
- scrollTop: 0,
- duration: 300
- });
- }
- },
- // 身份验证方法
- verifyIdentity() {
- this.formErrors = {
- name: "",
- idCard: "",
- phone: ""
- };
- common_vendor.index.showLoading({
- title: "身份验证中..."
- });
- common_vendor.index.request({
- url: `${common_config.apiBaseUrl}/wechat/identity/verify`,
- method: "POST",
- data: {
- name: this.formData.name,
- id_number: this.formData.idCard,
- mobile: this.formData.phone
- },
- header: {
- "content-type": "application/x-www-form-urlencoded"
- },
- success: (res) => {
- common_vendor.index.hideLoading();
- console.log(res);
- if (res.data.code === 200) {
- const nextIndex = this.currentStepIndex + 1;
- if (nextIndex < this.steps.length) {
- this.currentStep = this.steps[nextIndex].id;
- common_vendor.index.pageScrollTo({
- scrollTop: 0,
- duration: 300
- });
- }
- this.setUserInfo(this.formData);
- } else {
- this.handleVerificationError(res.data);
- }
- },
- fail: (err) => {
- this.handleRequestError(err);
- }
- });
- },
- setUserInfo(data) {
- common_vendor.index.request({
- url: `${common_config.apiBaseUrl}/wechat/updateUserInfo`,
- method: "POST",
- data: {
- openid: JSON.parse(common_vendor.index.getStorageSync("userInfo")).openid,
- name: data.name,
- id_number: data.idCard,
- purePhoneNumber: data.phone,
- tenant_id: 1,
- examine: 0
- },
- header: {
- "content-type": "application/x-www-form-urlencoded"
- },
- success: (res) => {
- console.log(res);
- }
- });
- },
- // 处理验证错误
- handleVerificationError(data) {
- this.formErrors.name = "姓名验证失败,请检查姓名是否正确";
- this.formErrors.idCard = "身份证号验证失败,请检查身份证号是否正确";
- this.formErrors.phone = "手机号验证失败,请检查手机号是否正确";
- common_vendor.index.showToast({
- title: data.msg || "身份验证失败",
- icon: "none"
- });
- },
- // 处理请求错误
- handleRequestError(err) {
- common_vendor.index.hideLoading();
- common_vendor.index.showToast({
- title: "网络错误,请检查网络连接",
- icon: "none",
- duration: 2e3
- });
- console.error("请求失败:", err);
- },
- // 验证当前步骤的必填项
- validateCurrentStep() {
- const validations = {
- // 第一步:基本信息验证
- 1: () => {
- const basicChecks = [
- { value: this.formData.name, message: "请输入姓名" },
- { value: this.formData.gender, message: "请选择性别" },
- { value: this.formData.phone, message: "请输入手机号" },
- { value: this.formData.idCard, message: "请输入身份证号" }
- ];
- for (const check of basicChecks) {
- if (!check.value) {
- common_vendor.index.showToast({ title: check.message, icon: "none" });
- return false;
- }
- }
- if (this.formData.gender === "女" && this.threePeriodIndex === -1) {
- common_vendor.index.showToast({ title: "请选择是否为三期", icon: "none" });
- return false;
- }
- return true;
- },
- // 第二步:家庭成员验证
- 3: () => {
- if (this.familyMembers.length === 0) {
- common_vendor.index.showToast({ title: "请至少添加一位家庭成员", icon: "none" });
- return false;
- }
- return true;
- },
- // 第三步:教育经历验证
- 5: () => {
- if (this.educationList.length === 0) {
- common_vendor.index.showToast({ title: "请至少添加一项教育经历", icon: "none" });
- return false;
- }
- return true;
- },
- // 第四步:专业技能验证
- 6: () => {
- if (!this.formData.skills) {
- common_vendor.index.showToast({ title: "请描述您的专业技能", icon: "none" });
- return false;
- }
- return true;
- },
- // 第五步:工作经历验证
- 8: () => {
- if (this.workList.length === 0) {
- common_vendor.index.showToast({ title: "请至少添加一项工作经历", icon: "none" });
- return false;
- }
- for (let i = 0; i < this.workList.length; i++) {
- const work = this.workList[i];
- const workChecks = [
- { value: work.startTime, message: `单位${i + 1}:请选择开始时间` },
- { value: work.endTime, message: `单位${i + 1}:请选择结束时间` },
- { value: work.companyName, message: `单位${i + 1}:请输入单位名称` },
- { value: work.department, message: `单位${i + 1}:请输入任职部门` },
- { value: work.position, message: `单位${i + 1}:请输入担任职务` }
- ];
- for (const check of workChecks) {
- if (!check.value) {
- common_vendor.index.showToast({ title: check.message, icon: "none" });
- return false;
- }
- }
- }
- return true;
- }
- };
- return validations[this.currentStep] ? validations[this.currentStep]() : true;
- },
- // Add method to fetch user data
- fetchUserData() {
- this.isLoading = true;
- const userInfo = common_vendor.index.getStorageSync("userInfo") ? JSON.parse(common_vendor.index.getStorageSync("userInfo")) : {};
- const openid = userInfo.openid;
- if (!openid) {
- common_vendor.index.showToast({
- title: "用户信息获取失败,请重新登录",
- icon: "none"
- });
- this.isLoading = false;
- return;
- }
- common_vendor.index.request({
- url: `${common_config.apiBaseUrl}/api/wechat/user/get_full_info?tenant_id=1&openid=${openid}`,
- method: "GET",
- success: (res) => {
- this.showPromiseModal = true;
- this.populateFormData(res.data.data);
- },
- fail: (err) => {
- },
- complete: () => {
- this.isLoading = false;
- }
- });
- },
- // Add method to populate form data with fetched data
- populateFormData(data) {
- const { user_info, profile, educations, work_experiences, family_members } = data;
- if (user_info) {
- this.formData.name = user_info.name || "";
- this.formData.gender = user_info.gender_text || "";
- this.genderIndex = this.genderOptions.findIndex((item) => item === this.formData.gender);
- this.formData.idCard = user_info.id_card || "";
- this.formData.phone = user_info.phone || "";
- this.formData.email = user_info.email || "";
- }
- if (profile) {
- this.formData.political = profile.political_status || "";
- this.politicalIndex = this.politicalOptions.findIndex((item) => item === this.formData.political);
- this.formData.ethnic = profile.ethnicity || "";
- this.ethnicIndex = this.ethnicOptions.findIndex((item) => item === this.formData.ethnic);
- this.formData.height = profile.height || "";
- this.formData.weight = profile.weight || "";
- this.formData.nativePlace = profile.native_place || "";
- this.formData.residence = profile.household_location || "";
- this.formData.currentAddress = profile.current_address || "";
- this.formData.marriage = profile.marital_status_text || "";
- this.marriageIndex = this.marriageOptions.findIndex((item) => item === this.formData.marriage);
- if (this.formData.gender === "女" && profile.female_status !== void 0) {
- const femaleStatusMap = { 0: "无", 1: "孕期", 2: "产期", 3: "哺乳期" };
- this.formData.threePeriod = femaleStatusMap[profile.female_status] || "无";
- this.threePeriodIndex = this.threePeriodOptions.findIndex((item) => item === this.formData.threePeriod);
- }
- this.formData.expectedSalary = profile.expected_salary || "";
- this.formData.emergencyContact = profile.emergency_contact || "";
- this.formData.emergencyPhone = profile.emergency_phone || "";
- this.formData.hobby = profile.specialties || "";
- this.formData.motto = profile.life_motto || "";
- const sourceTypeMap = {
- 1: "school",
- 2: "social",
- 3: "social",
- 4: "social",
- 5: "social"
- };
- const socialSourceMap = {
- 2: "BOSS",
- 3: "zhilian",
- 4: "liepin",
- 5: "other"
- };
- this.formData.sourceType = sourceTypeMap[profile.recruitment_source] || "social";
- if (this.formData.sourceType === "social") {
- this.formData.socialSource = socialSourceMap[profile.recruitment_source] || "";
- if (this.formData.socialSource === "other") {
- this.formData.otherSocialSource = profile.recruitment_source_detail || "";
- }
- } else if (this.formData.sourceType === "school") {
- this.formData.otherSchoolSource = profile.recruitment_source_detail || "";
- }
- }
- if (educations && educations.length > 0) {
- this.educationList = educations.map((edu) => {
- const degreeMap = {
- 1: "高中",
- 2: "大专",
- 3: "本科",
- 4: "硕士",
- 5: "博士"
- };
- return {
- startTime: edu.start_date || "",
- endTime: edu.end_date || "",
- schoolName: edu.school_name || "",
- major: edu.major || "",
- degree: degreeMap[edu.degree] || ""
- };
- });
- }
- if (work_experiences && work_experiences.length > 0) {
- this.workList = work_experiences.map((work) => {
- return {
- startTime: work.start_date || "",
- endTime: work.end_date || "",
- companyName: work.company_name || "",
- department: work.department || "",
- employeeCount: work.company_size || "",
- position: work.position || "",
- monthlySalary: work.monthly_salary || "",
- supervisor: work.supervisor_name || "",
- supervisorPhone: work.supervisor_phone || ""
- };
- });
- }
- if (family_members && family_members.length > 0) {
- this.familyMembers = family_members.map((member) => {
- return {
- relation: member.relation || "",
- name: member.name || "",
- workplaceOrAddress: member.workplace || "",
- position: member.position || "",
- phone: member.phone || "",
- isEmergencyContact: member.isEmergencyContact || false
- };
- });
- }
- },
- // 处理紧急联系人开关变化
- handleEmergencyContactChange(e) {
- this.familyMemberForm.isEmergencyContact = e.detail.value;
- if (e.detail.value) {
- this.formData.emergencyContact = this.familyMemberForm.name;
- this.formData.emergencyPhone = this.familyMemberForm.phone;
- }
- }
- },
- // 添加监听器来清除错误信息
- watch: {
- "formData.name": function(newVal) {
- if (newVal && this.formErrors.name) {
- this.formErrors.name = "";
- }
- },
- "formData.idCard": function(newVal) {
- if (newVal && this.formErrors.idCard) {
- this.formErrors.idCard = "";
- }
- },
- "formData.phone": function(newVal) {
- if (newVal && this.formErrors.phone) {
- this.formErrors.phone = "";
- }
- }
- }
- };
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return common_vendor.e({
- a: $data.isLoading
- }, $data.isLoading ? {} : {}, {
- b: $data.showPromiseModal
- }, $data.showPromiseModal ? {
- c: $data.promiseChecked,
- d: common_vendor.o((...args) => $options.togglePromiseChecked && $options.togglePromiseChecked(...args)),
- e: !$data.promiseChecked,
- f: common_vendor.o((...args) => $options.confirmPromise && $options.confirmPromise(...args))
- } : {}, {
- g: $data.currentStep === 1
- }, $data.currentStep === 1 ? common_vendor.e({
- h: $data.formErrors.name ? 1 : "",
- i: $data.formData.name,
- j: common_vendor.o(($event) => $data.formData.name = $event.detail.value),
- k: $data.formErrors.name
- }, $data.formErrors.name ? {
- l: common_vendor.t($data.formErrors.name)
- } : {}, {
- m: common_vendor.t($data.genderOptions[$data.genderIndex] || "请选择性别"),
- n: common_vendor.o((...args) => $options.bindGenderChange && $options.bindGenderChange(...args)),
- o: $data.genderIndex,
- p: $data.genderOptions,
- q: $data.formData.gender === "女"
- }, $data.formData.gender === "女" ? {
- r: common_vendor.t($data.threePeriodOptions[$data.threePeriodIndex] || "请选择"),
- s: common_vendor.o((...args) => $options.bindThreePeriodChange && $options.bindThreePeriodChange(...args)),
- t: $data.threePeriodIndex,
- v: $data.threePeriodOptions
- } : {}, {
- w: $data.formErrors.phone ? 1 : "",
- x: $data.formData.phone,
- y: common_vendor.o(($event) => $data.formData.phone = $event.detail.value),
- z: $data.formErrors.phone
- }, $data.formErrors.phone ? {
- A: common_vendor.t($data.formErrors.phone)
- } : {}, {
- B: $data.formErrors.idCard ? 1 : "",
- C: $data.formData.idCard,
- D: common_vendor.o(($event) => $data.formData.idCard = $event.detail.value),
- E: $data.formErrors.idCard
- }, $data.formErrors.idCard ? {
- F: common_vendor.t($data.formErrors.idCard)
- } : {}, {
- G: common_vendor.t($data.ethnicOptions[$data.ethnicIndex] || "请选择民族"),
- H: common_vendor.o((...args) => $options.bindEthnicChange && $options.bindEthnicChange(...args)),
- I: $data.ethnicIndex,
- J: $data.ethnicOptions,
- K: $data.formData.height,
- L: common_vendor.o(($event) => $data.formData.height = $event.detail.value),
- M: $data.formData.weight,
- N: common_vendor.o(($event) => $data.formData.weight = $event.detail.value),
- O: $data.formData.currentAddress,
- P: common_vendor.o(($event) => $data.formData.currentAddress = $event.detail.value),
- Q: $data.formData.residence,
- R: common_vendor.o(($event) => $data.formData.residence = $event.detail.value),
- S: common_vendor.t($data.marriageOptions[$data.marriageIndex] || "请选择婚育状况"),
- T: common_vendor.o((...args) => $options.bindMarriageChange && $options.bindMarriageChange(...args)),
- U: $data.marriageIndex,
- V: $data.marriageOptions,
- W: $data.formData.expectedSalary,
- X: common_vendor.o(($event) => $data.formData.expectedSalary = $event.detail.value)
- }) : {}, {
- Y: $data.currentStep === 3
- }, $data.currentStep === 3 ? common_vendor.e({
- Z: $data.familyMembers.length > 0
- }, $data.familyMembers.length > 0 ? {
- aa: common_vendor.f($data.familyMembers, (member, index, i0) => {
- return {
- a: common_vendor.t(index + 1),
- b: common_vendor.o(($event) => $options.editFamilyMember(index), index),
- c: common_vendor.o(($event) => $options.deleteFamilyMember(index), index),
- d: common_vendor.t(member.relation),
- e: common_vendor.t(member.name),
- f: common_vendor.t(member.workplaceOrAddress),
- g: common_vendor.t(member.position),
- h: common_vendor.t(member.phone),
- i: common_vendor.t(member.isEmergencyContact ? "是" : "否"),
- j: index
- };
- })
- } : {}, {
- ab: common_vendor.t($data.isEditing ? "编辑家庭成员" : "添加家庭成员"),
- ac: $data.isEditing
- }, $data.isEditing ? {
- ad: common_vendor.o((...args) => $options.cancelEdit && $options.cancelEdit(...args))
- } : {}, {
- ae: $data.familyMemberForm.relation,
- af: common_vendor.o(($event) => $data.familyMemberForm.relation = $event.detail.value),
- ag: $data.familyMemberForm.name,
- ah: common_vendor.o(($event) => $data.familyMemberForm.name = $event.detail.value),
- ai: $data.familyMemberForm.workplaceOrAddress,
- aj: common_vendor.o(($event) => $data.familyMemberForm.workplaceOrAddress = $event.detail.value),
- ak: $data.familyMemberForm.position,
- al: common_vendor.o(($event) => $data.familyMemberForm.position = $event.detail.value),
- am: $data.familyMemberForm.phone,
- an: common_vendor.o(($event) => $data.familyMemberForm.phone = $event.detail.value),
- ao: $data.familyMemberForm.isEmergencyContact,
- ap: common_vendor.o((...args) => $options.handleEmergencyContactChange && $options.handleEmergencyContactChange(...args)),
- aq: common_vendor.t($data.isEditing ? "✓" : "+"),
- ar: common_vendor.o((...args) => $options.saveFamilyMember && $options.saveFamilyMember(...args)),
- as: common_vendor.t($data.isEditing ? "保存修改" : "添加成员")
- }) : {}, {
- at: $data.currentStep === 5
- }, $data.currentStep === 5 ? common_vendor.e({
- av: $data.educationList.length > 0
- }, $data.educationList.length > 0 ? {
- aw: common_vendor.f($data.educationList, (edu, index, i0) => {
- return {
- a: common_vendor.t(index === 0 ? "第一学历" : "最高学历"),
- b: common_vendor.o(($event) => $options.editEducation(index), index),
- c: common_vendor.o(($event) => $options.deleteEducation(index), index),
- d: common_vendor.t(edu.startTime),
- e: common_vendor.t(edu.endTime),
- f: common_vendor.t(edu.schoolName),
- g: common_vendor.t(edu.major),
- h: common_vendor.t(edu.degree),
- i: index
- };
- })
- } : {}, {
- ax: $data.educationList.length < 2 || $data.isEditingEducation
- }, $data.educationList.length < 2 || $data.isEditingEducation ? common_vendor.e({
- ay: common_vendor.t($data.isEditingEducation ? "编辑教育经历" : $data.educationList.length === 0 ? "添加第一学历" : "添加最高学历"),
- az: $data.isEditingEducation
- }, $data.isEditingEducation ? {
- aA: common_vendor.o((...args) => $options.cancelEditEducation && $options.cancelEditEducation(...args))
- } : {}, {
- aB: common_vendor.t($data.educationForm.startTime || "开始时间"),
- aC: $data.educationForm.startTime,
- aD: common_vendor.o((...args) => $options.bindStartTimeChange && $options.bindStartTimeChange(...args)),
- aE: common_vendor.t($data.educationForm.endTime || "结束时间"),
- aF: $data.educationForm.endTime,
- aG: common_vendor.o((...args) => $options.bindEndTimeChange && $options.bindEndTimeChange(...args)),
- aH: $data.educationForm.schoolName,
- aI: common_vendor.o(($event) => $data.educationForm.schoolName = $event.detail.value),
- aJ: $data.educationForm.major,
- aK: common_vendor.o(($event) => $data.educationForm.major = $event.detail.value),
- aL: common_vendor.t($data.degreeOptions[$data.degreeIndex] || "请选择学历"),
- aM: common_vendor.o((...args) => $options.bindDegreeChange && $options.bindDegreeChange(...args)),
- aN: $data.degreeIndex,
- aO: $data.degreeOptions,
- aP: common_vendor.t($data.isEditingEducation ? "✓" : "+"),
- aQ: common_vendor.o((...args) => $options.saveEducation && $options.saveEducation(...args)),
- aR: common_vendor.t($data.isEditingEducation ? "保存修改" : "添加学历")
- }) : {}) : {}, {
- aS: $data.currentStep === 6
- }, $data.currentStep === 6 ? {
- aT: $data.formData.skills,
- aU: common_vendor.o(($event) => $data.formData.skills = $event.detail.value),
- aV: $data.formData.training,
- aW: common_vendor.o(($event) => $data.formData.training = $event.detail.value)
- } : {}, {
- aX: $data.currentStep === 8
- }, $data.currentStep === 8 ? common_vendor.e({
- aY: $data.workList.length > 0
- }, $data.workList.length > 0 ? {
- aZ: common_vendor.f($data.workList, (work, index, i0) => {
- return {
- a: common_vendor.t(index + 1),
- b: common_vendor.o(($event) => $options.editWork(index), index),
- c: common_vendor.o(($event) => $options.deleteWork(index), index),
- d: common_vendor.t(work.startTime),
- e: common_vendor.t(work.endTime),
- f: common_vendor.t(work.companyName),
- g: common_vendor.t(work.department),
- h: common_vendor.t(work.employeeCount),
- i: common_vendor.t(work.position),
- j: common_vendor.t(work.monthlySalary),
- k: common_vendor.t(work.supervisor),
- l: common_vendor.t(work.supervisorPhone),
- m: index
- };
- })
- } : {}, {
- ba: $data.workList.length < 2 || $data.isEditingWork
- }, $data.workList.length < 2 || $data.isEditingWork ? common_vendor.e({
- bb: common_vendor.t($data.isEditingWork ? "编辑工作经历" : "添加工作经历"),
- bc: $data.isEditingWork
- }, $data.isEditingWork ? {
- bd: common_vendor.o((...args) => $options.cancelEditWork && $options.cancelEditWork(...args))
- } : {}, {
- be: common_vendor.t($data.workForm.startTime || "开始时间"),
- bf: $data.workForm.startTime,
- bg: common_vendor.o((...args) => $options.bindWorkStartTimeChange && $options.bindWorkStartTimeChange(...args)),
- bh: common_vendor.t($data.workForm.endTime || "结束时间"),
- bi: $data.workForm.endTime,
- bj: common_vendor.o((...args) => $options.bindWorkEndTimeChange && $options.bindWorkEndTimeChange(...args)),
- bk: $data.workForm.companyName,
- bl: common_vendor.o(($event) => $data.workForm.companyName = $event.detail.value),
- bm: $data.workForm.employeeCount,
- bn: common_vendor.o(($event) => $data.workForm.employeeCount = $event.detail.value),
- bo: $data.workForm.department,
- bp: common_vendor.o(($event) => $data.workForm.department = $event.detail.value),
- bq: $data.workForm.position,
- br: common_vendor.o(($event) => $data.workForm.position = $event.detail.value),
- bs: $data.workForm.monthlySalary,
- bt: common_vendor.o(($event) => $data.workForm.monthlySalary = $event.detail.value),
- bv: $data.workForm.supervisor,
- bw: common_vendor.o(($event) => $data.workForm.supervisor = $event.detail.value),
- bx: $data.workForm.supervisorPhone,
- by: common_vendor.o(($event) => $data.workForm.supervisorPhone = $event.detail.value),
- bz: common_vendor.t($data.isEditingWork ? "✓" : "+"),
- bA: common_vendor.o((...args) => $options.saveWork && $options.saveWork(...args)),
- bB: common_vendor.t($data.isEditingWork ? "保存修改" : "添加工作经历")
- }) : {}) : {}, {
- bC: $options.showPrevButton
- }, $options.showPrevButton ? {
- bD: common_vendor.o((...args) => $options.prevStep && $options.prevStep(...args))
- } : {}, {
- bE: $options.showNextButton
- }, $options.showNextButton ? {
- bF: common_vendor.o((...args) => $options.nextStep && $options.nextStep(...args))
- } : {}, {
- bG: $options.showSubmitButton
- }, $options.showSubmitButton ? {
- bH: common_vendor.o((...args) => $options.submitForm && $options.submitForm(...args))
- } : {});
- }
- const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
- wx.createPage(MiniProgramPage);
|