You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

155 lines
3.8 KiB

import dayjs from 'dayjs'
const app = getApp<IAppOption>()
const licia = require('miniprogram-licia')
Page({
data: {
userInfo: {} as any,
bron: '',
age: '',
ageStart: '1930-01-01',
ageEnd: '',
ageRangeList: [
{ id: 5, value: '18岁以下' },
{ id: 1, value: '18岁-44岁' },
{ id: 2, value: '45岁-59岁' },
{ id: 3, value: '60岁-74岁' },
{ id: 4, value: '75岁以上' },
],
diagnosisTimeRangeList: [
{ id: 1, value: '6个月以内' },
{ id: 2, value: '6个月-3年' },
{ id: 3, value: '3年以上' },
],
},
onShow() {
const ageEnd = licia.dateFormat(new Date(), 'yyyy-mm-dd')
this.setData({
ageEnd,
})
app.waitLogin().then(() => {
app.mpBehavior({ PageName: 'PG_PATIENTPERSONALINFO' })
const that = this
app.getUserInfo(that, true, that.formatUserInfo.bind(that))
})
},
formatUserInfo(res) {
this.formatBorn(res.Birth)
},
formatBorn(Birth) {
let bron = ''
let age = ''
const date = new Date()
const year = date.getFullYear()
const month = date.getMonth() + 1
if (!Birth) {
bron = `${Birth}`
age = '岁'
} else if (Birth && Birth.split('-').length > 1) {
bron = `${Birth.split('-')[0]}${Birth.split('-')[1]}`
age =
month - Birth.split('-')[1] >= 0
? `${year - Birth.split('-')[0]}${month - Birth.split('-')[1]}个月`
: `${year - Birth.split('-')[0] - 1}${12 - Birth.split('-')[1] + month}个月`
} else {
bron = `${Birth}`
age = `${year - Birth}`
}
age = age.replace('岁0个月', '岁')
this.setData({
bron,
age,
'userInfo.Birth': Birth,
'userInfo.AgeYear': Number(dayjs().format('YYYY')) - Birth.split('-')[0],
})
},
handleChaneAge(e) {
const Birth = e.detail.value
this.formatBorn(Birth)
this.updateUserInfo()
},
handleInput(e) {
const { key } = e.currentTarget.dataset
this.setData({
[`userInfo.${key}`]: e.detail.value,
})
},
handleRadio(e) {
const { id, key } = e.currentTarget.dataset
this.setData({
[`userInfo.${key}`]: id,
})
this.updateUserInfo(true)
},
updateUserInfo(update = true) {
if (!update) return
const { PatientName, RelationType, Gender, AgeRange, DiagnosisTimeRange, Birth, DiagnosisTime } = this.data.userInfo
wx.ajax({
method: 'POST',
url: '?r=igg4/account/update-info',
data: {
name: PatientName,
relationType: RelationType,
gender: Gender,
ageRange: AgeRange,
diagnosisTimeRange: DiagnosisTimeRange,
birth: Birth,
diagnosisTime: DiagnosisTime,
},
})
.then((_res) => {
wx.showToast({
title: '修改成功',
icon: 'none',
})
app.getUserInfo(this, true, this.formatUserInfo.bind(this))
})
.catch((err) => {
wx.showToast({
title: err.data.msg,
icon: 'none',
})
app.getUserInfo(this, true, this.formatUserInfo.bind(this))
})
},
handleChangeTel() {
app.mpBehavior({ PageName: 'PG_PATIENTPERSONALINFO_CHANGEPHONECLICK' })
wx.navigateTo({
url: '/pages/changePhone/index',
})
},
handleChangeUser() {
wx.navigateTo({
url: '/pages/changeUser/index',
})
},
handleLogout() {
app.mpBehavior({ PageName: 'BTN_PATIENTPERSONALINFOLOGOUT' })
wx.navigateTo({
url: '/pages/cancellation/index',
})
},
handleBack() {
wx.navigateBack()
},
routerTo(e) {
const { url } = e.currentTarget.dataset
if (url.includes('/doctor/pages/d_login/index')) {
app.mpBehavior({ PageName: 'BTN_PATIENTPERSONALINFOSWITCHDOCTORPORTAL' })
}
wx.navigateTo({
url,
})
},
})
export {}