// pages/user/personalInfo/personalInfo.js const app = getApp(); const api = app.api; import WxValidate from '../../../utils/WxValidate' Page({ /** * 页面的初始数据 */ data: { // 性别 0 - 未知的性别,1 - 男性,2 - 女性,5 - 女性改(变)为男性,6 - 男性改(变)为女性,9 - 未说明的性别 // 最高学历 0初中,1高中/中专,2大专,3本科,4硕士,5博士 //性别字典 sexPickList:[ { name:"男", value:1, }, { name:"女", value:2, } ], sexPickListValue:'', //学历 EducationPickList:[], EducationPickValue:null, //学历状态 EducationStatePickList:[], EducationStatePickValue:null, upFileInfo:null, referrerFileInfo:null, //展览记录 showHistory:{ id:"", name:"", organ:"", time:"", }, //获奖记录 awardHistory:{ id:"", organ:"", prize:"", time:"", }, //缺少艺名 formData:{ type:0, photoId:"", name:"", artistName:"", sex:"", birthday:"", nationality:"", referrerName:"", referrerPosition:"", referrerFileId:"", mobile:"", email:"", address:"", weixinNo:"", highestDegreeOrg:"", highestDegreeStartTime:"", highestDegreeEndTime:"", highestDegree:"", highestDegreeStatus:"", awardHistoryList:[], showHistoryList:[], }, rules: { photoId:{ required: true, }, name:{ required: true, }, artistName:{ required: true, }, sex:{ required: true, }, birthday:{ required: true, }, nationality:{ required: true, }, referrerName:{ required: true, }, referrerPosition:{ required: true, }, referrerFileId:{ required: true, }, mobile: { required: true, tel:true, }, email: { required: true, email:true, }, address:{ required: true, }, weixinNo:{ required: true, }, highestDegreeOrg:{ required: true }, highestDegreeStartTime:{ required: true }, highestDegreeEndTime:{ required: true }, highestDegree:{ required: true }, highestDegreeStatus:{ required: true } }, awardRules:{ organ:{ required: true, }, prize:{ required: true, }, time:{ required: true, }, }, awardMessages:{ organ:{ required:'请输入奖项名称' }, prize:{ required:'请输入奖项机构' }, time:{ required:'请输入获奖时间' } }, showRules:{ name:{ required: true, }, organ:{ required: true, }, time:{ required: true, }, }, showMessages:{ name:{ required: '请输入展展览名称', }, organ:{ required: '请输入展展览机构', }, time:{ required: '请输入展览时间', }, }, messages: { photoId:{ required: '请上传个人形象照', }, name:{ required: '请输入姓名', }, artistName:{ required: '请输入艺名', }, sex:{ required: '请选择性别', }, birthday:{ required: '请选择出生日期', }, nationality:{ required: '请选择国籍', }, referrerName:{ required: '请输入推荐人姓名', }, referrerPosition:{ required: '请输入推荐人职业', }, referrerFileId:{ required: '请上传推荐信', }, mobile: { required: '请输入手机号', tel:"请输入正确的手机号" }, email: { required: '请输入邮箱地址', tel:"请输入正确的邮箱" }, address:{ required: '请输入地址', }, weixinNo:{ required: '请输入微信号', }, highestDegreeOrg:{ required: '请输入最高学历机构' }, highestDegreeStartTime:{ required: '请输入最高学历开始时间' }, highestDegreeEndTime:{ required: '请输入最高学历结束时间' }, highestDegree:{ required: '请选择最高学历', }, highestDegreeStatus:{ required: '请选择最高学历状态' } }, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { const type=options.type||0 const { formData, rules, messages, showHistory, awardHistory, awardRules, awardMessages, showRules, showMessages } = this.data; this.WxValidate = new WxValidate(rules, messages); this.awardValidate = new WxValidate(awardRules, awardMessages); this.showValidate = new WxValidate(showRules, showMessages); if(formData.awardHistoryList.length==0){ this.setData({ 'formData.awardHistoryList':[{...awardHistory}] }) } if(formData.showHistoryList.length==0){ this.setData({ 'formData.showHistoryList':[{...showHistory}] }) } //类型 0 个人 2策展 formData.type=type Promise.all([ this.findByCode('education'), this.findByCode('education_status') ]).then((res)=>{ console.log(res); const EducationPickList=res[0].data.dicInfoList; const EducationStatePickList=res[1].data.dicInfoList; this.setData({ EducationPickList:EducationPickList, EducationStatePickList:EducationStatePickList },this.getData()); }); //加载保存数据 //this.getData(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, getData(){ const {formData}=this.data; app.post(api.getPersonalSettledInfo).then(res=>{ console.log(res); const saveData=res.data; Object.keys(saveData).forEach(key=>{ if(saveData[key]==null){ delete saveData[key] } }) const formDataNew=Object.assign(formData,res.data); this.setData({ formData:formDataNew, upFileInfo:formDataNew.photoInfo, referrerFileInfo:formDataNew.referrerFile, sexPickListValue:formDataNew.sex==1?0:1, EducationPickValue:formDataNew.highestDegree, EducationStatePickValue:formDataNew.highestDegreeStatus }); }) }, saveData() { const {formData} = this.data; let flagAward=false; let flagShow=false; // 传入表单数据 if (!this.WxValidate.checkForm(formData)) { const error = this.WxValidate.errorList[0]; wx.showToast({ title: error.msg, icon: 'none', duration: 2000 }) return false } //验证获奖经历表单 formData.awardHistoryList.forEach(item=>{ if(flagAward){ return } if (!this.awardValidate.checkForm(item)) { const error = this.awardValidate.errorList[0]; wx.showToast({ title: error.msg, icon: 'none', duration: 2000 }); flagAward=true; return false } }); if(flagAward){ return } //验证展览经历表单 formData.showHistoryList.forEach(item=>{ if(flagShow){ return } if (!this.showValidate.checkForm(item)) { const error = this.showValidate.errorList[0]; wx.showToast({ title: error.msg, icon: 'none', duration: 2000 }); flagShow=true; return false } }); if(flagShow){ return } app.post(api.addPersonalDetails, formData).then(res => { console.log(res); wx.navigateTo({ url:"/pages/user/success/success", }) /* wx.redirectTo({ url:"/pages/invoice/contract/contract" })*/ }); }, changeInput(e){ console.log(e); const id = e.currentTarget.id; const value = e.detail.value; this.setData({ [id]: value }); }, changePicker(e){ console.log(e); const id = e.currentTarget.id; const value = e.detail.value; this.setData({ [id]: value }); }, /**上传形象**/ chooseFile(){ app.uploadFile({ extension:['jpg','png','jpeg'] }).then(res=>{ console.log(res) const data=JSON.parse(res.data); this.setData({ upFileInfo:data, 'formData.photoId':data.id }) }).catch(error=>{ console.log(error) }); }, /**删除形象**/ removeChooseFile(){ this.setData({ upFileInfo:null, 'formData.photoId':'' }) }, /** 上传推荐信 **/ chooseReferrerFile(){ app.uploadFile({ extension:['jpg','png','jpeg'] }).then(res=>{ console.log(res) const data=JSON.parse(res.data); this.setData({ referrerFileInfo:data, 'formData.referrerFileId':data.id }) }).catch(error=>{ console.log(error) }); }, /**删除推荐信**/ removeReferrerFile(){ this.setData({ referrerFileInfo:null, 'formData.referrerFileId':'' }) }, findByCode(code){ return app.post(api.findByCode,{ "code": code }) }, /** * 添加奖励 * */ addAward() { const awardHistoryList=this.data.formData.awardHistoryList; awardHistoryList.push(this.data.awardHistory) this.setData({ 'formData.awardHistoryList':awardHistoryList }) }, /** * 删除奖励 * */ removeAward(e) { const {index}=e.currentTarget.dataset; const awardHistoryList=this.data.formData.awardHistoryList; awardHistoryList.splice(index,1); this.setData({ 'formData.awardHistoryList':awardHistoryList }) }, /** * 添加展览记录 * */ addShow() { const showHistoryList=this.data.formData.showHistoryList; showHistoryList.push(this.data.showHistory); this.setData({ 'formData.showHistoryList':showHistoryList }) }, /** * 删除展览记录 * */ removeShow(e) { const {index}=e.currentTarget.dataset; const showHistoryList=this.data.formData.showHistoryList; showHistoryList.splice(index,1); this.setData({ 'formData.showHistoryList':showHistoryList }) }, /** * * */ sexPickHandler(e){ const {value}=e.detail; const {sexPickList}=this.data; this.setData({ sexPickListValue:value, 'formData.sex':sexPickList[value].value }); }, /** * 学历picker 选择 * **/ educationPickHandler(e){ const {value}=e.detail; const {EducationPickList}=this.data; this.setData({ EducationPickValue:value, 'formData.highestDegree':EducationPickList[value].code }) }, /** * 学历状态picker 选择 * **/ educationStatePickHandler(e){ const {value}=e.detail; const {EducationStatePickList}=this.data; this.setData({ EducationStatePickValue:value, 'formData.highestDegreeStatus':EducationStatePickList[value].code, }) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })