intention.js 6.2 KB

1
  1. "use strict";const e=require("../../common/vendor.js"),t=require("../../api/dict.js"),n=require("../../api/student.js"),a=require("../../common/assets.js"),i={components:{StepLayout:()=>"../../components/step-layout/step-layout.js"},setup(){const a=e.ref([]),i=e.ref(""),o=e.ref(""),l=e.ref([]),s=e.ref([]),u=e.computed((()=>{var e;return(null==(e=a.value.find((e=>"实习"===e.name)))?void 0:e.selected)||!1})),d=e.computed((()=>{if(!i.value)return"";const e=l.value.find((e=>e.dictValue===i.value));return e?e.dictLabel:i.value})),c=e.computed((()=>{if(!o.value)return"";const e=s.value.find((e=>e.dictValue===o.value));return e?e.dictLabel:o.value})),r=e.ref([]),m=e.ref([]),v=e.ref(!1),p=e.ref("");let g=-1;const f=e.ref(!1);e.onMounted((async()=>{const u=getCurrentPages()[getCurrentPages().length-1].options;u&&"1"===u.editMode&&(f.value=!0),e.index.$on("submit_companies",(e=>{m.value=[...e]})),await(async()=>{var n,u,d;e.index.showLoading({title:"加载中..."});try{const[c,m,v,p]=await Promise.all([t.getDicts("main_arrival_time"),t.getDicts("main_position_type"),t.getDicts("main_position_intention"),t.getDicts("main_internship_duration")]);200===c.code&&(l.value=c.data||c.rows||[],l.value.length>0&&(i.value=(null==(n=l.value[1])?void 0:n.dictValue)||(null==(u=l.value[0])?void 0:u.dictValue)||"")),p&&200===p.code&&(s.value=p.data||p.rows||[],s.value.length>0&&(o.value=(null==(d=s.value[0])?void 0:d.dictValue)||"")),200===m.code&&(a.value=(m.data||m.rows||[]).map(((e,t)=>({name:e.dictLabel,value:e.dictValue,selected:0===t})))),200===v.code&&(r.value=(v.data||v.rows||[]).map(((e,t)=>({name:e.dictLabel,value:e.dictValue,selected:t<2}))))}catch(c){console.error(c)}finally{e.index.hideLoading()}})(),f.value&&await(async()=>{const t=e.index.getStorageSync("userInfo");if(t&&t.studentId)try{const e=await n.getStudent(t.studentId);if(200===e.code&&e.data){const t=e.data;if(t.availability){const e=l.value.find((e=>e.dictValue===t.availability||e.dictLabel===t.availability));e&&(i.value=e.dictValue)}if(t.internshipDuration){const e=s.value.find((e=>e.dictValue===t.internshipDuration||e.dictLabel===t.internshipDuration));e&&(o.value=e.dictValue)}if(t.jobType&&a.value.forEach((e=>{e.selected=e.value===t.jobType||e.name===t.jobType})),t.jobIntention){const e=t.jobIntention.split(",").map((e=>e.trim())).filter((e=>e));r.value.forEach((t=>{t.selected=e.includes(t.value)||e.includes(t.name)}))}if(t.intentionCompanies){const e=t.intentionCompanies.split(",").map((e=>e.trim())).filter((e=>e));m.value=e.map((e=>({name:e})))}}}catch(u){console.error("加载学员数据失败",u)}})()})),e.onUnmounted((()=>{e.index.$off("submit_companies")}));const y=()=>{v.value=!1};return{intentions:a,arrivalTime:i,arrivalTimeLabel:d,internDuration:o,internDurationLabel:c,isIntern:u,jobTypes:r,targetCompanies:m,showModal:v,modalContent:p,closeModal:y,confirmDelete:()=>{-1!==g&&m.value.splice(g,1),y()},toggleIntention:e=>{a.value.forEach(((t,n)=>{t.selected=n===e}))},selectTime:()=>{0!==l.value.length&&e.index.showActionSheet({itemList:l.value.map((e=>e.dictLabel)),success:e=>{i.value=l.value[e.tapIndex].dictValue}})},selectInternDuration:()=>{0!==s.value.length&&e.index.showActionSheet({itemList:s.value.map((e=>e.dictLabel)),success:e=>{o.value=s.value[e.tapIndex].dictValue}})},toggleType:e=>{r.value[e].selected=!r.value[e].selected},addCompany:()=>{const t=m.value.map((e=>e.name));e.index.setStorageSync("selected_companies",JSON.stringify(t)),e.index.navigateTo({url:"/pages/intention/company-select"})},deleteCompany:e=>{((e,t)=>{p.value=e,g=t,v.value=!0})("确定要删除这家意向公司吗?",e)},onSubmit:async()=>{var t;console.log("intention.js: onSubmit called"),e.index.showLoading({title:"提交中..."});try{const l=e.index.getStorageSync("userInfo");console.log("intention.js: userInfo from storage:",l);const s=l?l.studentId||l.id:null;if(console.log("intention.js: studentId identified:",s),!s)return e.index.hideLoading(),void e.index.showToast({title:"登录状态失效",icon:"none"});const d=(null==(t=a.value.find((e=>e.selected)))?void 0:t.value)||"",c=r.value.filter((e=>e.selected)).map((e=>e.value)).join(","),v={id:s,jobIntention:c,intentionCompanies:m.value.map((e=>e.name)).join(","),jobType:d,availability:i.value,internshipDuration:u.value?o.value:""};console.log("intention.js: sending updateStudent request with data:",v);const p=await n.updateStudent(v);console.log("intention.js: updateStudent response:",p),e.index.hideLoading(),200===p.code?(e.index.showToast({title:f.value?"保存成功":"提交成功",icon:"success"}),setTimeout((()=>{e.index.reLaunch({url:"/pages/my/my",success:()=>{setTimeout((()=>{e.index.navigateTo({url:"/pages/my/resume_view"})}),100)}})}),1e3)):e.index.showToast({title:p.msg||"保存失败",icon:"none"})}catch(l){console.error(l),e.index.hideLoading(),e.index.showToast({title:"网络异常",icon:"none"})}},onSkip:()=>{e.index.reLaunch({url:"/pages/my/my",success:()=>{setTimeout((()=>{e.index.navigateTo({url:"/pages/my/resume_view"})}),100)}})},isEditMode:f}}};if(!Array){e.resolveComponent("step-layout")()}Math;const o=e._export_sfc(i,[["render",function(t,n,i,o,l,s){return e.e({a:e.f(t.intentions,((n,a,i)=>({a:e.t(n.name),b:a,c:e.n(n.selected?"active":""),d:e.o((e=>t.toggleIntention(a)),a)}))),b:t.isIntern},t.isIntern?{c:e.t(t.internDurationLabel||"请选择"),d:e.n(t.internDuration?"":"is-empty"),e:e.o(((...e)=>t.selectInternDuration&&t.selectInternDuration(...e)))}:{},{f:e.t(t.arrivalTimeLabel||"1周内"),g:e.n(t.arrivalTime?"":"is-empty"),h:e.o(((...e)=>t.selectTime&&t.selectTime(...e))),i:e.f(t.jobTypes,((n,a,i)=>({a:e.t(n.name),b:a,c:e.n(n.selected?"active":""),d:e.o((e=>t.toggleType(a)),a)}))),j:e.o(((...e)=>t.addCompany&&t.addCompany(...e))),k:0===t.targetCompanies.length},0===t.targetCompanies.length?{l:a._imports_0$1}:{},{m:e.f(t.targetCompanies,((n,a,i)=>({a:e.o((e=>t.deleteCompany(a)),a),b:e.t(n.name),c:a}))),n:e.o(((...e)=>t.closeModal&&t.closeModal(...e))),o:e.t(t.modalContent),p:e.o(((...e)=>t.closeModal&&t.closeModal(...e))),q:e.o(((...e)=>t.confirmDelete&&t.confirmDelete(...e))),r:t.showModal?1:"",s:e.o(t.onSubmit),t:e.o(t.onSkip),v:e.p({title:"填写工作意向",nextText:"提交",showSkip:!t.isEditMode,subtitle:"我们会妥善保护你的隐私,后续你也可以在设置中将简历隐藏"})})}],["__scopeId","data-v-04c20a53"]]);wx.createPage(o);