| | |
| | | errors.phone = '请输入正确的手机号'; |
| | | } |
| | | |
| | | if (formData.gender === null) { |
| | | errors.gender = '请选择性别'; |
| | | } |
| | | |
| | | // 区域验证(可选) |
| | | // 暂时不强制要求区域选择 |
| | | |
| | | // 头像验证(可选) |
| | | // 暂时不强制要求头像上传 |
| | | |
| | | if (!formData.projectName.trim()) { |
| | | // 项目名称为必填项 |
| | | if (!formData.projectName || !formData.projectName.trim()) { |
| | | errors.projectName = '请输入项目名称'; |
| | | } |
| | | |
| | | if (!formData.description.trim()) { |
| | | errors.description = '请输入项目描述'; |
| | | } |
| | | // 保持原有逻辑:不强制附件必填,不校验所属区域必填 |
| | | |
| | | this.setData({ errors }); |
| | | return Object.keys(errors).length === 0; |
| | |
| | | }, |
| | | regionId: formData.regionId, |
| | | projectName: formData.projectName, |
| | | description: formData.description |
| | | // 项目描述不采集,不提交到后端 |
| | | } |
| | | |
| | | // 第一步:先提交注册数据到后台,获得注册ID |
| | |
| | | // 第三步:报名成功后强制调用wxlogin获取新的JWT token |
| | | console.log('📱 报名成功,开始强制调用wxlogin获取新的JWT token') |
| | | try { |
| | | await app.wxLogin() |
| | | await app.login() |
| | | console.log('✅ 报名成功后wxlogin调用成功,已获取新的JWT token') |
| | | } catch (wxLoginError) { |
| | | console.error('❌ 报名成功后wxlogin调用失败:', wxLoginError) |
| | |
| | | |
| | | } catch (error) { |
| | | console.error('提交失败:', error) |
| | | wx.showToast({ |
| | | title: error.message || '提交失败,请重试', |
| | | icon: 'none' |
| | | wx.showModal({ |
| | | title: '提交失败', |
| | | content: error.message || '提交失败,请重试', |
| | | showCancel: false, |
| | | confirmText: '我知道了' |
| | | }) |
| | | } finally { |
| | | this.setData({ isSubmitting: false }) |
| | |
| | | }, |
| | | regionId: submitData.regionId || null, |
| | | projectName: submitData.projectName || '', |
| | | description: submitData.description || '', |
| | | attachmentMediaIds: [] // 先不传附件 |
| | | }; |
| | | |