| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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 = <any>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(<any>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()
- }
- },
- })
|