import DictionariesBehavior from "../../../../core/behavior/dictionaries.behavior"; import PageContainerBehavior from "../../../../core/behavior/page-container.behavior"; import tickleBehavior, { getTickleContext } from "../../../../core/behavior/tickle.behavior"; import { openPrivacyContract } from "../../../../lib/wx/open-api"; // module/user/pages/user-certification/user-certification.ts import { createUserInfoMethod, verifyCardnoMethod } from "../../request" import { usePhoneNumber } from "../../../../lib/use/use-phone"; Component({ behaviors: [ PageContainerBehavior, DictionariesBehavior, tickleBehavior, ], lifetimes: { attached() { const channel = this.getOpenerEventChannel(); channel.on('navigateBack', (data) => { this.setData(data); }) const { getPhoneNumber, updateStatus, updateValue } = usePhoneNumber(); this.getPhoneNumber = getPhoneNumber; updateStatus(status => this.setData({ 'loading': status === 'loading' })); updateValue(value => this.setData({ 'model.phone': value })); } }, properties: { hide: { type: Boolean, value: false }, }, data: { loading: false, verifying: false, model: {} as AnyObject, name: '', cardno: '', age: '', sex: '', privacyContract: { agree: false, name: '《隐私政策》', show: false }, }, /** * 组件的方法列表 */ methods: { getPhoneNumber() { /** usePhoneNumber 中实现 */ }, openPrivacyContract: openPrivacyContract, onPrivacySetting({ detail }: { detail: WechatMiniprogram.GetPrivacySettingSuccessCallbackResult }) { this.setData({ 'privacyContract.name': detail.privacyContractName, // 'privacyContract.agree': !detail.needAuthorization, }) }, onAgreeChange(event: any) { console.log(event); const agree = event?.detail?.checked; if (agree) this.setData({ 'privacyContract.show': true }); else this.setData({ 'privacyContract.agree': agree }); }, onAgree() { console.log('onAgree-->'); this.setData({ 'privacyContract.agree': true }); }, async verifyCardno(event: WechatMiniprogram.InputConfirm) { const value = event.detail.value; if (value.length !== 18) { wx.showToast({ title: '请输入正确的身份证号', icon: 'none' }); } else { this.setData({ verifying: true }); try { const data = await verifyCardnoMethod(value); this.setData({ 'age': data.age, 'sex': data.sex }); } catch (error) { this.setData({ 'cardno': '', 'age': '', 'sex': '' }); wx.showToast({ title: error.errMsg, icon: 'error' }); } this.setData({ verifying: false }); } }, async onSubmit(event: WechatMiniprogram.FormSubmit) { const data = { ...this.data.model, ...event.detail.value }; if (!data.cardno) data.cardno = this.data.cardno; if (data.sex == null) data.sex = this.data.sex; if (!data.agemust) data.agemust = this.data.privacyContract.agree ? 'Y' : 'N'; console.log(data); // if (!data.phone) return getTickleContext.call(this).showWarnMessage('请获取手机号码'); if (!data.name) return getTickleContext.call(this).showWarnMessage('请输入姓名'); if (data.cardno?.length !== 18) return getTickleContext.call(this).showWarnMessage('请输入正确的身份证号'); if (data.sex === '1' && !data.womenSpecialPeriod) return getTickleContext.call(this).showWarnMessage('请至少选择一项女性特殊期'); if (!data.height) return getTickleContext.call(this).showWarnMessage('请输入身高'); if (!data.weight) return getTickleContext.call(this).showWarnMessage('请输入体重'); console.log(data); if (data.agemust === 'N') { this.setData({ 'privacyContract.show': true }) return wx.showToast({ title: `请阅读并同意${this.data.privacyContract.name}`, icon: 'none' }) } wx.showLoading({ title: '保存中' }); try { const { patientId } = await createUserInfoMethod(data); // await wx.navigateBack(); // if (patientId) this.getOpenerEventChannel().emit('update', { patientId }); wx.setStorageSync('patientId', patientId); wx.redirectTo({ url: `/module/chats/pages/index/index?component=questionnaire` }); } catch (error) { getTickleContext.call(this).showErrorMessage(error.errMsg); } wx.hideLoading() } }, })