12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886 |
- "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: "",
- gender: "",
- ethnic: "",
- currentAddress: "",
- height: "",
- weight: "",
- expectedSalary: "",
- skills: "",
- training: "",
- threePeriod: ""
- // 添加这一行
- },
- // Add loading state
- isLoading: true,
- familyMemberErrors: {
- relation: "",
- name: "",
- phone: "",
- workplaceOrAddress: "",
- position: ""
- },
- workErrors: {
- startTime: "",
- endTime: "",
- companyName: "",
- department: "",
- position: "",
- employeeCount: "",
- monthlySalary: "",
- supervisor: "",
- supervisorPhone: ""
- },
- // 在 data 中添加教育经历的错误提示对象
- educationErrors: {
- startTime: "",
- endTime: "",
- schoolName: "",
- major: "",
- degree: ""
- },
- // 添加统一的验证规则
- validationRules: {
- name: {
- required: true,
- message: "请输入姓名"
- },
- phone: {
- required: true,
- pattern: /^1[3-9]\d{9}$/,
- message: "请输入正确的手机号码"
- },
- idCard: {
- required: true,
- pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
- message: "请输入正确的身份证号码"
- },
- gender: {
- required: true,
- message: "请选择性别"
- },
- ethnic: {
- required: true,
- message: "请选择民族"
- },
- currentAddress: {
- required: true,
- message: "请输入现居住地址"
- },
- height: {
- pattern: /^\d+(\.\d{1,2})?$/,
- message: "请输入正确的身高(cm)"
- },
- weight: {
- pattern: /^\d+(\.\d{1,2})?$/,
- message: "请输入正确的体重(kg)"
- },
- expectedSalary: {
- pattern: /^\d+(\.\d{1,2})?$/,
- message: "请输入正确的期望薪资"
- }
- },
- // 获取配置信息
- configData: (() => {
- try {
- const configStr = common_vendor.index.getStorageSync("configData");
- if (configStr && configStr.trim()) {
- return JSON.parse(configStr);
- }
- return {};
- } catch (error) {
- console.warn("解析配置数据失败:", error);
- return {};
- }
- })()
- };
- },
- onLoad() {
- this.fetchUserData();
- console.log(this.configData);
- },
- 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);
- },
- // 添加安全的配置访问器
- safeConfigData() {
- return this.configData || {};
- },
- safeProfileFieldsConfig() {
- return this.safeConfigData.profile_fields_config || {};
- },
- safeFamilyFieldsConfig() {
- return this.safeConfigData.family_fields_config || {};
- },
- safeEducationFieldsConfig() {
- return this.safeConfigData.education_fields_config || {};
- },
- safeWorkFieldsConfig() {
- return this.safeConfigData.work_experience_fields_config || {};
- },
- // 字段显示控制方法
- showNameField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.name) == null ? void 0 : _a.visible) !== false;
- },
- showGenderField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.gender) == null ? void 0 : _a.visible) !== false;
- },
- showPhoneField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.phone) == null ? void 0 : _a.visible) !== false;
- },
- showIdCardField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.id_card) == null ? void 0 : _a.visible) !== false;
- },
- showEthnicField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.ethnic) == null ? void 0 : _a.visible) !== false;
- },
- showHeightField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.height) == null ? void 0 : _a.visible) !== false;
- },
- showWeightField() {
- var _a;
- return Object.keys(this.safeProfileFieldsConfig).length === 0 || ((_a = this.safeProfileFieldsConfig.weight) == null ? void 0 : _a.visible) !== false;
- },
- // 家庭成员字段显示控制
- showFamilyRelationField() {
- var _a;
- return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.relation) == null ? void 0 : _a.visible) !== false;
- },
- showFamilyNameField() {
- var _a;
- return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.name) == null ? void 0 : _a.visible) !== false;
- },
- showFamilyWorkplaceField() {
- var _a;
- return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.workplace_or_address) == null ? void 0 : _a.visible) !== false;
- },
- showFamilyPositionField() {
- var _a;
- return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.position) == null ? void 0 : _a.visible) !== false;
- },
- showFamilyPhoneField() {
- var _a;
- return Object.keys(this.safeFamilyFieldsConfig).length === 0 || ((_a = this.safeFamilyFieldsConfig.phone) == null ? void 0 : _a.visible) !== false;
- },
- // 教育经历字段显示控制
- showEducationTimeField() {
- var _a;
- return Object.keys(this.safeEducationFieldsConfig).length === 0 || ((_a = this.safeEducationFieldsConfig.start_time) == null ? void 0 : _a.visible) !== false;
- },
- showEducationSchoolField() {
- var _a;
- return Object.keys(this.safeEducationFieldsConfig).length === 0 || ((_a = this.safeEducationFieldsConfig.school_name) == null ? void 0 : _a.visible) !== false;
- },
- showEducationMajorField() {
- var _a;
- return Object.keys(this.safeEducationFieldsConfig).length === 0 || ((_a = this.safeEducationFieldsConfig.major) == null ? void 0 : _a.visible) !== false;
- },
- showEducationDegreeField() {
- var _a;
- return Object.keys(this.safeEducationFieldsConfig).length === 0 || ((_a = this.safeEducationFieldsConfig.degree) == null ? void 0 : _a.visible) !== false;
- },
- // 工作经历字段显示控制
- showWorkTimeField() {
- var _a;
- return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.start_time) == null ? void 0 : _a.visible) !== false;
- },
- showWorkCompanyField() {
- var _a;
- return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.company_name) == null ? void 0 : _a.visible) !== false;
- },
- showWorkDepartmentField() {
- var _a;
- return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.department) == null ? void 0 : _a.visible) !== false;
- },
- showWorkEmployeeCountField() {
- var _a;
- return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.employee_count) == null ? void 0 : _a.visible) !== false;
- },
- showWorkPositionField() {
- var _a;
- return Object.keys(this.safeWorkFieldsConfig).length === 0 || ((_a = this.safeWorkFieldsConfig.position) == null ? void 0 : _a.visible) !== false;
- }
- },
- methods: {
- // 添加承诺书相关方法
- togglePromiseChecked() {
- this.promiseChecked = !this.promiseChecked;
- },
- confirmPromise() {
- if (this.promiseChecked) {
- this.showPromiseModal = false;
- } else {
- common_vendor.index.showToast({
- title: "请先阅读并同意承诺书内容",
- icon: "none"
- });
- }
- },
- // 添加字段是否需要验证的判断方法
- shouldValidateField(fieldName, section) {
- section = section || "profile";
- switch (section) {
- case "profile":
- const fieldShowMap = {
- "name": this.showNameField,
- "gender": this.showGenderField,
- "phone": this.showPhoneField,
- "idCard": this.showIdCardField,
- "ethnic": this.showEthnicField,
- "height": this.showHeightField,
- "weight": this.showWeightField,
- "currentAddress": true,
- // 现居住地址总是显示和必填
- "expectedSalary": true,
- // 期望薪资总是显示
- "skills": true,
- // 专业技能总是显示和必填
- "training": true,
- // 培训经历总是显示和必填
- "threePeriod": this.formData.gender === "女"
- // 只有女性时才需要验证三期状态
- };
- return fieldShowMap[fieldName] !== false;
- case "family":
- const familyFieldShowMap = {
- "relation": this.showFamilyRelationField,
- "name": this.showFamilyNameField,
- "phone": this.showFamilyPhoneField,
- "workplaceOrAddress": this.showFamilyWorkplaceField,
- "position": this.showFamilyPositionField
- };
- return familyFieldShowMap[fieldName] !== false;
- case "education":
- const educationFieldShowMap = {
- "startTime": this.showEducationTimeField,
- "endTime": this.showEducationTimeField,
- "schoolName": this.showEducationSchoolField,
- "major": this.showEducationMajorField,
- "degree": this.showEducationDegreeField
- };
- return educationFieldShowMap[fieldName] !== false;
- case "work":
- const workFieldShowMap = {
- "startTime": this.showWorkTimeField,
- "endTime": this.showWorkTimeField,
- "companyName": this.showWorkCompanyField,
- "department": this.showWorkDepartmentField,
- "position": this.showWorkPositionField,
- "employeeCount": this.showWorkEmployeeCountField,
- "monthlySalary": true,
- // 月薪总是需要验证
- "supervisor": true,
- // 直接领导总是需要验证
- "supervisorPhone": true
- // 领导电话总是需要验证
- };
- return workFieldShowMap[fieldName] !== false;
- default:
- return true;
- }
- },
- bindGenderChange(e) {
- this.genderIndex = e.detail.value;
- this.formData.gender = this.genderOptions[this.genderIndex];
- if (this.formErrors.gender) {
- this.formErrors.gender = "";
- }
- if (this.formData.gender !== "女") {
- this.formData.threePeriod = "";
- this.threePeriodIndex = -1;
- this.formErrors.threePeriod = "";
- }
- },
- bindThreePeriodChange(e) {
- this.threePeriodIndex = e.detail.value;
- this.formData.threePeriod = this.threePeriodOptions[this.threePeriodIndex];
- if (this.formErrors.threePeriod) {
- this.formErrors.threePeriod = "";
- }
- },
- 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];
- if (this.formErrors.ethnic) {
- this.formErrors.ethnic = "";
- }
- },
- bindMarriageChange(e) {
- this.marriageIndex = e.detail.value;
- this.formData.marriage = this.marriageOptions[this.marriageIndex];
- },
- bindDateChange(e) {
- this.formData.birthDate = e.detail.value;
- },
- saveFamilyMember() {
- this.resetFamilyMemberErrors();
- let isValid = true;
- if (this.shouldValidateField("relation", "family") && !this.familyMemberForm.relation) {
- this.familyMemberErrors.relation = "请输入称谓";
- isValid = false;
- }
- if (this.shouldValidateField("name", "family") && !this.familyMemberForm.name) {
- this.familyMemberErrors.name = "请输入姓名";
- isValid = false;
- }
- if (this.shouldValidateField("workplaceOrAddress", "family") && !this.familyMemberForm.workplaceOrAddress) {
- this.familyMemberErrors.workplaceOrAddress = "请输入工作单位/家庭地址";
- isValid = false;
- }
- if (this.shouldValidateField("position", "family") && !this.familyMemberForm.position) {
- this.familyMemberErrors.position = "请输入职务";
- isValid = false;
- }
- if (this.shouldValidateField("phone", "family") && !this.familyMemberForm.phone) {
- this.familyMemberErrors.phone = "请输入联系电话";
- isValid = false;
- } else if (this.shouldValidateField("phone", "family") && this.familyMemberForm.phone && !/^1[3-9]\d{9}$/.test(this.familyMemberForm.phone)) {
- this.familyMemberErrors.phone = "请输入正确的手机号";
- isValid = false;
- }
- if (!isValid) {
- common_vendor.index.showToast({
- title: "请完善家庭成员信息",
- icon: "none"
- });
- return;
- }
- if (this.isEditing) {
- 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.resetFamilyMemberForm();
- },
- // 添加重置错误信息的方法
- resetFamilyMemberErrors() {
- this.familyMemberErrors = {
- relation: "",
- name: "",
- phone: "",
- workplaceOrAddress: "",
- position: ""
- };
- },
- // 修改重置表单的方法
- resetFamilyMemberForm() {
- this.familyMemberForm = {
- relation: "",
- name: "",
- workplaceOrAddress: "",
- position: "",
- phone: "",
- isEmergencyContact: false
- };
- this.resetFamilyMemberErrors();
- },
- 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() {
- this.resetEducationErrors();
- let isValid = true;
- if (this.shouldValidateField("startTime", "education") && !this.educationForm.startTime) {
- this.educationErrors.startTime = "请选择开始时间";
- isValid = false;
- }
- if (this.shouldValidateField("endTime", "education") && !this.educationForm.endTime) {
- this.educationErrors.endTime = "请选择结束时间";
- isValid = false;
- }
- if (this.shouldValidateField("schoolName", "education") && !this.educationForm.schoolName) {
- this.educationErrors.schoolName = "请输入学校名称";
- isValid = false;
- }
- if (this.shouldValidateField("major", "education") && !this.educationForm.major) {
- this.educationErrors.major = "请输入专业";
- isValid = false;
- }
- if (this.shouldValidateField("degree", "education") && !this.educationForm.degree) {
- this.educationErrors.degree = "请选择学历";
- isValid = false;
- }
- if (!isValid) {
- 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() {
- this.workErrors = {
- startTime: "",
- endTime: "",
- companyName: "",
- department: "",
- position: "",
- employeeCount: "",
- monthlySalary: "",
- supervisor: "",
- supervisorPhone: ""
- };
- let isValid = true;
- if (this.shouldValidateField("startTime", "work") && !this.workForm.startTime) {
- this.workErrors.startTime = "请选择开始时间";
- isValid = false;
- }
- if (this.shouldValidateField("endTime", "work") && !this.workForm.endTime) {
- this.workErrors.endTime = "请选择结束时间";
- isValid = false;
- }
- if (this.shouldValidateField("companyName", "work") && !this.workForm.companyName) {
- this.workErrors.companyName = "请输入单位名称";
- isValid = false;
- }
- if (this.shouldValidateField("department", "work") && !this.workForm.department) {
- this.workErrors.department = "请输入任职部门";
- isValid = false;
- }
- if (this.shouldValidateField("position", "work") && !this.workForm.position) {
- this.workErrors.position = "请输入担任职务";
- isValid = false;
- }
- if (this.shouldValidateField("employeeCount", "work") && !this.workForm.employeeCount) {
- this.workErrors.employeeCount = "请输入单位人数";
- isValid = false;
- }
- if (this.shouldValidateField("monthlySalary", "work") && !this.workForm.monthlySalary) {
- this.workErrors.monthlySalary = "请输入月薪";
- isValid = false;
- }
- if (this.shouldValidateField("supervisor", "work") && !this.workForm.supervisor) {
- this.workErrors.supervisor = "请输入直属上级";
- isValid = false;
- }
- if (this.shouldValidateField("supervisorPhone", "work") && !this.workForm.supervisorPhone) {
- this.workErrors.supervisorPhone = "请输入直属上级电话";
- isValid = false;
- }
- if (!isValid) {
- 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() {
- var _a, _b;
- if (!this.validateCurrentStep()) {
- return;
- }
- const allRequired = [
- "name",
- "gender",
- "phone",
- "idCard",
- "ethnic",
- "currentAddress"
- ];
- let isValid = true;
- allRequired.forEach((field) => {
- if (this.shouldValidateField(field) && !this.validateField(field, this.formData[field])) {
- isValid = false;
- }
- });
- if (this.shouldValidateField("skills") && !((_a = this.formData.skills) == null ? void 0 : _a.trim())) {
- this.formErrors.skills = "请描述您的专业技能";
- isValid = false;
- }
- if (this.shouldValidateField("training") && !((_b = this.formData.training) == null ? void 0 : _b.trim())) {
- this.formErrors.training = "请描述您的培训经历";
- isValid = false;
- }
- if (!isValid) {
- common_vendor.index.showToast({
- title: "请完善所有必填信息",
- icon: "none"
- });
- 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_card: 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() {
- var _a, _b;
- let isValid = true;
- switch (this.currentStep) {
- case 1:
- const basicFields = ["name", "gender", "phone", "idCard", "ethnic", "currentAddress"];
- basicFields.forEach((field) => {
- if (this.shouldValidateField(field) && !this.validateField(field, this.formData[field])) {
- isValid = false;
- }
- });
- if (this.shouldValidateField("threePeriod") && this.formData.gender === "女" && this.threePeriodIndex === -1) {
- this.formErrors.threePeriod = "请选择三期状态";
- isValid = false;
- }
- if (this.shouldValidateField("height") && this.formData.height) {
- isValid = this.validateField("height", this.formData.height) && isValid;
- }
- if (this.shouldValidateField("weight") && this.formData.weight) {
- isValid = this.validateField("weight", this.formData.weight) && isValid;
- }
- if (this.shouldValidateField("expectedSalary") && this.formData.expectedSalary) {
- isValid = this.validateField("expectedSalary", this.formData.expectedSalary) && isValid;
- }
- break;
- case 3:
- console.log(this.familyMembers.length);
- if (this.familyMembers.length == 0) {
- common_vendor.index.showToast({
- title: "请至少添加一位家庭成员",
- icon: "none"
- });
- isValid = false;
- }
- break;
- case 5:
- if (this.educationList.length === 0) {
- common_vendor.index.showToast({
- title: "请至少添加一项教育经历",
- icon: "none"
- });
- isValid = false;
- }
- break;
- case 6:
- if (this.shouldValidateField("skills") && !((_a = this.formData.skills) == null ? void 0 : _a.trim())) {
- this.formErrors.skills = "请描述您的专业技能";
- isValid = false;
- }
- if (this.shouldValidateField("training") && !((_b = this.formData.training) == null ? void 0 : _b.trim())) {
- this.formErrors.training = "请描述您的培训经历";
- isValid = false;
- }
- break;
- case 8:
- if (this.workList.length === 0) {
- common_vendor.index.showToast({
- title: "请至少添加一项工作经历",
- icon: "none"
- });
- isValid = false;
- }
- break;
- }
- return isValid;
- },
- // 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;
- }
- },
- // 添加重置教育经历错误信息的方法
- resetEducationErrors() {
- this.educationErrors = {
- startTime: "",
- endTime: "",
- schoolName: "",
- major: "",
- degree: ""
- };
- },
- // 添加通用验证方法
- validateField(fieldName, value) {
- const rule = this.validationRules[fieldName];
- if (!rule)
- return true;
- if (!this.shouldValidateField(fieldName)) {
- return true;
- }
- this.formErrors[fieldName] = "";
- if (rule.required && !value) {
- this.formErrors[fieldName] = rule.message;
- return false;
- }
- if (rule.pattern && value && !rule.pattern.test(value)) {
- this.formErrors[fieldName] = rule.message;
- return false;
- }
- return true;
- }
- },
- // 添加监听器来清除错误信息
- 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 = "";
- }
- },
- "formData.gender": function(newVal) {
- if (newVal && this.formErrors.gender) {
- this.formErrors.gender = "";
- }
- },
- "formData.ethnic": function(newVal) {
- if (newVal && this.formErrors.ethnic) {
- this.formErrors.ethnic = "";
- }
- },
- "formData.currentAddress": function(newVal) {
- if (newVal && this.formErrors.currentAddress) {
- this.formErrors.currentAddress = "";
- }
- },
- "formData.height": function(newVal) {
- if (newVal && this.formErrors.height) {
- this.formErrors.height = "";
- }
- },
- "formData.weight": function(newVal) {
- if (newVal && this.formErrors.weight) {
- this.formErrors.weight = "";
- }
- },
- "formData.expectedSalary": function(newVal) {
- if (newVal && this.formErrors.expectedSalary) {
- this.formErrors.expectedSalary = "";
- }
- },
- "familyMemberForm.relation": function(newVal) {
- if (newVal)
- this.familyMemberErrors.relation = "";
- },
- "familyMemberForm.name": function(newVal) {
- if (newVal)
- this.familyMemberErrors.name = "";
- },
- "familyMemberForm.phone": function(newVal) {
- if (newVal)
- this.familyMemberErrors.phone = "";
- },
- /* 'familyMemberForm.workplaceOrAddress': function(newVal) {
- if (newVal) this.familyMemberErrors.workplaceOrAddress = '';
- },
- 'familyMemberForm.position': function(newVal) {
- if (newVal) this.familyMemberErrors.position = '';
- }, */
- "workForm.companyName": function(newVal) {
- if (newVal && this.workErrors.companyName) {
- this.workErrors.companyName = "";
- }
- },
- "workForm.department": function(newVal) {
- if (newVal && this.workErrors.department) {
- this.workErrors.department = "";
- }
- },
- "workForm.position": function(newVal) {
- if (newVal && this.workErrors.position) {
- this.workErrors.position = "";
- }
- },
- "workForm.employeeCount": function(newVal) {
- if (newVal && this.workErrors.employeeCount) {
- this.workErrors.employeeCount = "";
- }
- },
- "workForm.monthlySalary": function(newVal) {
- if (newVal && this.workErrors.monthlySalary) {
- this.workErrors.monthlySalary = "";
- }
- },
- "workForm.supervisor": function(newVal) {
- if (newVal && this.workErrors.supervisor) {
- this.workErrors.supervisor = "";
- }
- },
- "workForm.supervisorPhone": function(newVal) {
- if (newVal && this.workErrors.supervisorPhone) {
- this.workErrors.supervisorPhone = "";
- }
- },
- "formData.training": function(newVal) {
- if (newVal && this.formErrors.training) {
- this.formErrors.training = "";
- }
- },
- "educationForm.startTime": function(newVal) {
- if (newVal)
- this.educationErrors.startTime = "";
- },
- "educationForm.endTime": function(newVal) {
- if (newVal)
- this.educationErrors.endTime = "";
- },
- "educationForm.schoolName": function(newVal) {
- if (newVal)
- this.educationErrors.schoolName = "";
- },
- "educationForm.major": function(newVal) {
- if (newVal)
- this.educationErrors.major = "";
- },
- "educationForm.degree": function(newVal) {
- if (newVal)
- this.educationErrors.degree = "";
- },
- // 添加对表单字段的实时验证
- "formData": {
- handler(newVal) {
- const currentStepFields = {
- 1: ["name", "gender", "phone", "idCard", "ethnic", "currentAddress", "height", "weight", "expectedSalary"],
- 6: ["skills", "training"]
- }[this.currentStep];
- if (currentStepFields) {
- currentStepFields.forEach((field) => {
- if (newVal[field] !== void 0 && this.shouldValidateField(field)) {
- this.validateField(field, newVal[field]);
- }
- });
- }
- },
- deep: true
- }
- }
- };
- 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: $options.showNameField
- }, $options.showNameField ? common_vendor.e({
- i: $data.formErrors.name ? 1 : "",
- j: $data.formData.name,
- k: common_vendor.o(($event) => $data.formData.name = $event.detail.value),
- l: $data.formErrors.name
- }, $data.formErrors.name ? {
- m: common_vendor.t($data.formErrors.name)
- } : {}) : {}, {
- n: $options.showGenderField
- }, $options.showGenderField ? common_vendor.e({
- o: common_vendor.t($data.genderOptions[$data.genderIndex] || "请选择性别"),
- p: $data.formErrors.gender ? 1 : "",
- q: common_vendor.o((...args) => $options.bindGenderChange && $options.bindGenderChange(...args)),
- r: $data.genderIndex,
- s: $data.genderOptions,
- t: $data.formErrors.gender
- }, $data.formErrors.gender ? {
- v: common_vendor.t($data.formErrors.gender)
- } : {}) : {}, {
- w: $data.formData.gender === "女"
- }, $data.formData.gender === "女" ? common_vendor.e({
- x: common_vendor.t($data.threePeriodOptions[$data.threePeriodIndex] || "请选择"),
- y: common_vendor.o((...args) => $options.bindThreePeriodChange && $options.bindThreePeriodChange(...args)),
- z: $data.threePeriodIndex,
- A: $data.threePeriodOptions,
- B: $data.formErrors.threePeriod ? 1 : "",
- C: $data.formErrors.threePeriod
- }, $data.formErrors.threePeriod ? {
- D: common_vendor.t($data.formErrors.threePeriod)
- } : {}) : {}, {
- E: $options.showPhoneField
- }, $options.showPhoneField ? common_vendor.e({
- F: $data.formErrors.phone ? 1 : "",
- G: $data.formData.phone,
- H: common_vendor.o(($event) => $data.formData.phone = $event.detail.value),
- I: $data.formErrors.phone
- }, $data.formErrors.phone ? {
- J: common_vendor.t($data.formErrors.phone)
- } : {}) : {}, {
- K: $options.showIdCardField
- }, $options.showIdCardField ? common_vendor.e({
- L: $data.formErrors.idCard ? 1 : "",
- M: $data.formData.idCard,
- N: common_vendor.o(($event) => $data.formData.idCard = $event.detail.value),
- O: $data.formErrors.idCard
- }, $data.formErrors.idCard ? {
- P: common_vendor.t($data.formErrors.idCard)
- } : {}) : {}, {
- Q: $options.showEthnicField
- }, $options.showEthnicField ? common_vendor.e({
- R: common_vendor.t($data.ethnicOptions[$data.ethnicIndex] || "请选择民族"),
- S: $data.formErrors.ethnic ? 1 : "",
- T: common_vendor.o((...args) => $options.bindEthnicChange && $options.bindEthnicChange(...args)),
- U: $data.ethnicIndex,
- V: $data.ethnicOptions,
- W: $data.formErrors.ethnic
- }, $data.formErrors.ethnic ? {
- X: common_vendor.t($data.formErrors.ethnic)
- } : {}) : {}, {
- Y: $options.showHeightField
- }, $options.showHeightField ? {
- Z: $data.formData.height,
- aa: common_vendor.o(($event) => $data.formData.height = $event.detail.value)
- } : {}, {
- ab: $options.showWeightField
- }, $options.showWeightField ? {
- ac: $data.formData.weight,
- ad: common_vendor.o(($event) => $data.formData.weight = $event.detail.value)
- } : {}, {
- ae: $data.formErrors.currentAddress ? 1 : "",
- af: $data.formData.currentAddress,
- ag: common_vendor.o(($event) => $data.formData.currentAddress = $event.detail.value),
- ah: $data.formErrors.currentAddress
- }, $data.formErrors.currentAddress ? {
- ai: common_vendor.t($data.formErrors.currentAddress)
- } : {}, {
- aj: $data.formData.residence,
- ak: common_vendor.o(($event) => $data.formData.residence = $event.detail.value),
- al: common_vendor.t($data.marriageOptions[$data.marriageIndex] || "请选择婚育状况"),
- am: common_vendor.o((...args) => $options.bindMarriageChange && $options.bindMarriageChange(...args)),
- an: $data.marriageIndex,
- ao: $data.marriageOptions,
- ap: $data.formData.expectedSalary,
- aq: common_vendor.o(($event) => $data.formData.expectedSalary = $event.detail.value)
- }) : {}, {
- ar: $data.currentStep === 3
- }, $data.currentStep === 3 ? common_vendor.e({
- as: $data.familyMembers.length > 0
- }, $data.familyMembers.length > 0 ? {
- at: common_vendor.f($data.familyMembers, (member, index, i0) => {
- return common_vendor.e({
- a: common_vendor.t(index + 1),
- b: common_vendor.o(($event) => $options.editFamilyMember(index), index),
- c: common_vendor.o(($event) => $options.deleteFamilyMember(index), index)
- }, $options.showFamilyRelationField ? {
- d: common_vendor.t(member.relation)
- } : {}, $options.showFamilyNameField ? {
- e: common_vendor.t(member.name)
- } : {}, $options.showFamilyWorkplaceField ? {
- f: common_vendor.t(member.workplaceOrAddress)
- } : {}, $options.showFamilyPositionField ? {
- g: common_vendor.t(member.position)
- } : {}, $options.showFamilyPhoneField ? {
- h: common_vendor.t(member.phone)
- } : {}, {
- i: common_vendor.t(member.isEmergencyContact ? "是" : "否"),
- j: index
- });
- }),
- av: $options.showFamilyRelationField,
- aw: $options.showFamilyNameField,
- ax: $options.showFamilyWorkplaceField,
- ay: $options.showFamilyPositionField,
- az: $options.showFamilyPhoneField
- } : {}, {
- aA: common_vendor.t($data.isEditing ? "编辑家庭成员" : "添加家庭成员"),
- aB: $data.isEditing
- }, $data.isEditing ? {
- aC: common_vendor.o((...args) => $options.cancelEdit && $options.cancelEdit(...args))
- } : {}, {
- aD: $options.showFamilyRelationField
- }, $options.showFamilyRelationField ? common_vendor.e({
- aE: $data.familyMemberErrors.relation ? 1 : "",
- aF: $data.familyMemberForm.relation,
- aG: common_vendor.o(($event) => $data.familyMemberForm.relation = $event.detail.value),
- aH: $data.familyMemberErrors.relation
- }, $data.familyMemberErrors.relation ? {
- aI: common_vendor.t($data.familyMemberErrors.relation)
- } : {}) : {}, {
- aJ: $options.showFamilyNameField
- }, $options.showFamilyNameField ? common_vendor.e({
- aK: $data.familyMemberErrors.name ? 1 : "",
- aL: $data.familyMemberForm.name,
- aM: common_vendor.o(($event) => $data.familyMemberForm.name = $event.detail.value),
- aN: $data.familyMemberErrors.name
- }, $data.familyMemberErrors.name ? {
- aO: common_vendor.t($data.familyMemberErrors.name)
- } : {}) : {}, {
- aP: $options.showFamilyWorkplaceField
- }, $options.showFamilyWorkplaceField ? {
- aQ: $data.familyMemberForm.workplaceOrAddress,
- aR: common_vendor.o(($event) => $data.familyMemberForm.workplaceOrAddress = $event.detail.value)
- } : {}, {
- aS: $options.showFamilyPositionField
- }, $options.showFamilyPositionField ? {
- aT: $data.familyMemberForm.position,
- aU: common_vendor.o(($event) => $data.familyMemberForm.position = $event.detail.value)
- } : {}, {
- aV: $options.showFamilyPhoneField
- }, $options.showFamilyPhoneField ? common_vendor.e({
- aW: $data.familyMemberErrors.phone ? 1 : "",
- aX: $data.familyMemberForm.phone,
- aY: common_vendor.o(($event) => $data.familyMemberForm.phone = $event.detail.value),
- aZ: $data.familyMemberErrors.phone
- }, $data.familyMemberErrors.phone ? {
- ba: common_vendor.t($data.familyMemberErrors.phone)
- } : {}) : {}, {
- bb: $data.familyMemberForm.isEmergencyContact,
- bc: common_vendor.o((...args) => $options.handleEmergencyContactChange && $options.handleEmergencyContactChange(...args)),
- bd: common_vendor.t($data.isEditing ? "✓" : "+"),
- be: common_vendor.o((...args) => $options.saveFamilyMember && $options.saveFamilyMember(...args)),
- bf: common_vendor.t($data.isEditing ? "保存修改" : "添加成员")
- }) : {}, {
- bg: $data.currentStep === 5
- }, $data.currentStep === 5 ? common_vendor.e({
- bh: $data.educationList.length > 0
- }, $data.educationList.length > 0 ? {
- bi: common_vendor.f($data.educationList, (edu, index, i0) => {
- return common_vendor.e({
- a: common_vendor.t(index === 0 ? "第一学历" : "最高学历"),
- b: common_vendor.o(($event) => $options.editEducation(index), index),
- c: common_vendor.o(($event) => $options.deleteEducation(index), index)
- }, $options.showEducationTimeField ? {
- d: common_vendor.t(edu.startTime),
- e: common_vendor.t(edu.endTime)
- } : {}, $options.showEducationSchoolField ? {
- f: common_vendor.t(edu.schoolName)
- } : {}, $options.showEducationMajorField ? {
- g: common_vendor.t(edu.major)
- } : {}, $options.showEducationDegreeField ? {
- h: common_vendor.t(edu.degree)
- } : {}, {
- i: index
- });
- }),
- bj: $options.showEducationTimeField,
- bk: $options.showEducationSchoolField,
- bl: $options.showEducationMajorField,
- bm: $options.showEducationDegreeField
- } : {}, {
- bn: $data.educationList.length < 2 || $data.isEditingEducation
- }, $data.educationList.length < 2 || $data.isEditingEducation ? common_vendor.e({
- bo: common_vendor.t($data.isEditingEducation ? "编辑教育经历" : $data.educationList.length === 0 ? "添加第一学历" : "添加最高学历"),
- bp: $data.isEditingEducation
- }, $data.isEditingEducation ? {
- bq: common_vendor.o((...args) => $options.cancelEditEducation && $options.cancelEditEducation(...args))
- } : {}, {
- br: $options.showEducationTimeField
- }, $options.showEducationTimeField ? common_vendor.e({
- bs: common_vendor.t($data.educationForm.startTime || "开始时间"),
- bt: $data.educationForm.startTime,
- bv: common_vendor.o((...args) => $options.bindStartTimeChange && $options.bindStartTimeChange(...args)),
- bw: $data.educationErrors.startTime ? 1 : "",
- bx: common_vendor.t($data.educationForm.endTime || "结束时间"),
- by: $data.educationForm.endTime,
- bz: common_vendor.o((...args) => $options.bindEndTimeChange && $options.bindEndTimeChange(...args)),
- bA: $data.educationErrors.endTime ? 1 : "",
- bB: $data.educationErrors.startTime
- }, $data.educationErrors.startTime ? {
- bC: common_vendor.t($data.educationErrors.startTime)
- } : {}, {
- bD: $data.educationErrors.endTime
- }, $data.educationErrors.endTime ? {
- bE: common_vendor.t($data.educationErrors.endTime)
- } : {}) : {}, {
- bF: $options.showEducationSchoolField
- }, $options.showEducationSchoolField ? common_vendor.e({
- bG: $data.educationErrors.schoolName ? 1 : "",
- bH: $data.educationForm.schoolName,
- bI: common_vendor.o(($event) => $data.educationForm.schoolName = $event.detail.value),
- bJ: $data.educationErrors.schoolName
- }, $data.educationErrors.schoolName ? {
- bK: common_vendor.t($data.educationErrors.schoolName)
- } : {}) : {}, {
- bL: $options.showEducationMajorField
- }, $options.showEducationMajorField ? common_vendor.e({
- bM: $data.educationErrors.major ? 1 : "",
- bN: $data.educationForm.major,
- bO: common_vendor.o(($event) => $data.educationForm.major = $event.detail.value),
- bP: $data.educationErrors.major
- }, $data.educationErrors.major ? {
- bQ: common_vendor.t($data.educationErrors.major)
- } : {}) : {}, {
- bR: $options.showEducationDegreeField
- }, $options.showEducationDegreeField ? common_vendor.e({
- bS: common_vendor.t($data.degreeOptions[$data.degreeIndex] || "请选择学历"),
- bT: common_vendor.o((...args) => $options.bindDegreeChange && $options.bindDegreeChange(...args)),
- bU: $data.degreeIndex,
- bV: $data.degreeOptions,
- bW: $data.educationErrors.degree ? 1 : "",
- bX: $data.educationErrors.degree
- }, $data.educationErrors.degree ? {
- bY: common_vendor.t($data.educationErrors.degree)
- } : {}) : {}, {
- bZ: common_vendor.t($data.isEditingEducation ? "✓" : "+"),
- ca: common_vendor.o((...args) => $options.saveEducation && $options.saveEducation(...args)),
- cb: common_vendor.t($data.isEditingEducation ? "保存修改" : "添加学历")
- }) : {}) : {}, {
- cc: $data.currentStep === 6
- }, $data.currentStep === 6 ? common_vendor.e({
- cd: $data.formErrors.skills ? 1 : "",
- ce: $data.formData.skills,
- cf: common_vendor.o(($event) => $data.formData.skills = $event.detail.value),
- cg: $data.formErrors.skills
- }, $data.formErrors.skills ? {
- ch: common_vendor.t($data.formErrors.skills)
- } : {}, {
- ci: $data.formErrors.training ? 1 : "",
- cj: $data.formData.training,
- ck: common_vendor.o(($event) => $data.formData.training = $event.detail.value),
- cl: $data.formErrors.training
- }, $data.formErrors.training ? {
- cm: common_vendor.t($data.formErrors.training)
- } : {}) : {}, {
- cn: $data.currentStep === 8
- }, $data.currentStep === 8 ? common_vendor.e({
- co: $data.workList.length > 0
- }, $data.workList.length > 0 ? {
- cp: common_vendor.f($data.workList, (work, index, i0) => {
- return common_vendor.e({
- a: common_vendor.t(index + 1),
- b: common_vendor.o(($event) => $options.editWork(index), index),
- c: common_vendor.o(($event) => $options.deleteWork(index), index)
- }, $options.showWorkTimeField ? {
- d: common_vendor.t(work.startTime),
- e: common_vendor.t(work.endTime)
- } : {}, $options.showWorkCompanyField ? {
- f: common_vendor.t(work.companyName)
- } : {}, $options.showWorkDepartmentField ? {
- g: common_vendor.t(work.department)
- } : {}, $options.showWorkEmployeeCountField ? {
- h: common_vendor.t(work.employeeCount)
- } : {}, $options.showWorkPositionField ? {
- 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
- });
- }),
- cq: $options.showWorkTimeField,
- cr: $options.showWorkCompanyField,
- cs: $options.showWorkDepartmentField,
- ct: $options.showWorkEmployeeCountField,
- cv: $options.showWorkPositionField
- } : {}, {
- cw: $data.workList.length < 2 || $data.isEditingWork
- }, $data.workList.length < 2 || $data.isEditingWork ? common_vendor.e({
- cx: common_vendor.t($data.isEditingWork ? "编辑工作经历" : "添加工作经历"),
- cy: $data.isEditingWork
- }, $data.isEditingWork ? {
- cz: common_vendor.o((...args) => $options.cancelEditWork && $options.cancelEditWork(...args))
- } : {}, {
- cA: $options.showWorkTimeField
- }, $options.showWorkTimeField ? common_vendor.e({
- cB: common_vendor.t($data.workForm.startTime || "开始时间"),
- cC: $data.workForm.startTime,
- cD: common_vendor.o((...args) => $options.bindWorkStartTimeChange && $options.bindWorkStartTimeChange(...args)),
- cE: $data.workErrors.startTime ? 1 : "",
- cF: common_vendor.t($data.workForm.endTime || "结束时间"),
- cG: $data.workForm.endTime,
- cH: common_vendor.o((...args) => $options.bindWorkEndTimeChange && $options.bindWorkEndTimeChange(...args)),
- cI: $data.workErrors.endTime ? 1 : "",
- cJ: $data.workErrors.startTime
- }, $data.workErrors.startTime ? {
- cK: common_vendor.t($data.workErrors.startTime)
- } : {}, {
- cL: $data.workErrors.endTime
- }, $data.workErrors.endTime ? {
- cM: common_vendor.t($data.workErrors.endTime)
- } : {}) : {}, {
- cN: $options.showWorkCompanyField
- }, $options.showWorkCompanyField ? common_vendor.e({
- cO: $data.workErrors.companyName ? 1 : "",
- cP: $data.workForm.companyName,
- cQ: common_vendor.o(($event) => $data.workForm.companyName = $event.detail.value),
- cR: $data.workErrors.companyName
- }, $data.workErrors.companyName ? {
- cS: common_vendor.t($data.workErrors.companyName)
- } : {}) : {}, {
- cT: $options.showWorkEmployeeCountField
- }, $options.showWorkEmployeeCountField ? common_vendor.e({
- cU: $data.workErrors.employeeCount ? 1 : "",
- cV: $data.workForm.employeeCount,
- cW: common_vendor.o(($event) => $data.workForm.employeeCount = $event.detail.value),
- cX: $data.workErrors.employeeCount
- }, $data.workErrors.employeeCount ? {
- cY: common_vendor.t($data.workErrors.employeeCount)
- } : {}) : {}, {
- cZ: $options.showWorkDepartmentField
- }, $options.showWorkDepartmentField ? common_vendor.e({
- da: $data.workErrors.department ? 1 : "",
- db: $data.workForm.department,
- dc: common_vendor.o(($event) => $data.workForm.department = $event.detail.value),
- dd: $data.workErrors.department
- }, $data.workErrors.department ? {
- de: common_vendor.t($data.workErrors.department)
- } : {}) : {}, {
- df: $options.showWorkPositionField
- }, $options.showWorkPositionField ? common_vendor.e({
- dg: $data.workErrors.position ? 1 : "",
- dh: $data.workForm.position,
- di: common_vendor.o(($event) => $data.workForm.position = $event.detail.value),
- dj: $data.workErrors.position
- }, $data.workErrors.position ? {
- dk: common_vendor.t($data.workErrors.position)
- } : {}) : {}, {
- dl: $data.workForm.monthlySalary,
- dm: common_vendor.o(($event) => $data.workForm.monthlySalary = $event.detail.value),
- dn: $data.workErrors.monthlySalary
- }, $data.workErrors.monthlySalary ? {
- dp: common_vendor.t($data.workErrors.monthlySalary)
- } : {}, {
- dq: $data.workForm.supervisor,
- dr: common_vendor.o(($event) => $data.workForm.supervisor = $event.detail.value),
- ds: $data.workErrors.supervisor
- }, $data.workErrors.supervisor ? {
- dt: common_vendor.t($data.workErrors.supervisor)
- } : {}, {
- dv: $data.workForm.supervisorPhone,
- dw: common_vendor.o(($event) => $data.workForm.supervisorPhone = $event.detail.value),
- dx: $data.workErrors.supervisorPhone
- }, $data.workErrors.supervisorPhone ? {
- dy: common_vendor.t($data.workErrors.supervisorPhone)
- } : {}, {
- dz: common_vendor.t($data.isEditingWork ? "✓" : "+"),
- dA: common_vendor.o((...args) => $options.saveWork && $options.saveWork(...args)),
- dB: common_vendor.t($data.isEditingWork ? "保存修改" : "添加工作经历")
- }) : {}) : {}, {
- dC: $options.showPrevButton
- }, $options.showPrevButton ? {
- dD: common_vendor.o((...args) => $options.prevStep && $options.prevStep(...args))
- } : {}, {
- dE: $options.showNextButton
- }, $options.showNextButton ? {
- dF: common_vendor.o((...args) => $options.nextStep && $options.nextStep(...args))
- } : {}, {
- dG: $options.showSubmitButton
- }, $options.showSubmitButton ? {
- dH: common_vendor.o((...args) => $options.submitForm && $options.submitForm(...args))
- } : {});
- }
- const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
- wx.createPage(MiniProgramPage);
|