|
|
|
|
import dayjs from 'dayjs'
|
|
|
|
|
const app = getApp<IAppOption>()
|
|
|
|
|
const licia = require('miniprogram-licia')
|
|
|
|
|
|
|
|
|
|
Page({
|
|
|
|
|
data: {
|
|
|
|
|
isEdit: false,
|
|
|
|
|
area: [] as string[][],
|
|
|
|
|
city: [] as string[][],
|
|
|
|
|
userInfo: {} as any,
|
|
|
|
|
areaValue: '',
|
|
|
|
|
bron: '',
|
|
|
|
|
age: '',
|
|
|
|
|
ageStart: '1930-01-01',
|
|
|
|
|
ageEnd: '',
|
|
|
|
|
|
|
|
|
|
rtValue: '0',
|
|
|
|
|
RTList: [
|
|
|
|
|
{ id: 1, value: '本人' },
|
|
|
|
|
{ id: 2, value: '亲友' },
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
genderValue: '0',
|
|
|
|
|
GenderList: [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
value: '男',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
value: '女',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
ageRangeValue: '0',
|
|
|
|
|
ageRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: 5,
|
|
|
|
|
value: '18岁以下',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
value: '18岁-44岁',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
value: '45岁-59岁',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 3,
|
|
|
|
|
value: '60岁-74岁',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 4,
|
|
|
|
|
value: '75岁以上',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
taskValue: 0,
|
|
|
|
|
TaskList: [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
value: '接受随访',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
value: '不接受随访',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
antibodyTypeRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
value: 'AchR',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
value: 'MuSK',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '3',
|
|
|
|
|
value: 'LRP4',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '4',
|
|
|
|
|
value: 'RyR',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
thyroidAbnormalRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
value: '是',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
value: '否',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
previousConvulsionRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
value: '是',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
value: '否',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
traditionalImmunosuppressantRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
value: '他克莫司',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
value: '硫唑嘌呤',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '3',
|
|
|
|
|
value: '吗替麦考酚酯',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '4',
|
|
|
|
|
value: '其它',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
medicalInsuranceTypeRangeList: [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
value: '城市职工',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
value: '城市居民',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '3',
|
|
|
|
|
value: '新农合',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
DiagnosisTime: '',
|
|
|
|
|
|
|
|
|
|
selectDiagnoseTypeIndex: '0',
|
|
|
|
|
diagnoseTypeShow: false,
|
|
|
|
|
diagnoseTypeValue: '0',
|
|
|
|
|
DTList: app.globalData.DiagnoseType.map((item) => {
|
|
|
|
|
return {
|
|
|
|
|
id: item.id,
|
|
|
|
|
value: item.name,
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
},
|
|
|
|
|
onShow() {
|
|
|
|
|
const SystemInfo = app.globalSystemInfo
|
|
|
|
|
if (SystemInfo) {
|
|
|
|
|
const { bottom } = SystemInfo.capsulePosition
|
|
|
|
|
this.setData({
|
|
|
|
|
bottom,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
this.handleChaneDiagnosisTime({ detail: { value: res.DiagnosisTime } }, false)
|
|
|
|
|
const diagnoseTypeValue = this.data.DTList.findIndex((item) => item.id == res.DiagnoseType)
|
|
|
|
|
this.handleChangeDiagnoseType({ detail: { value: [diagnoseTypeValue] } })
|
|
|
|
|
this.handleDiagnoseTypeSave(false)
|
|
|
|
|
// this.handleTapRT();
|
|
|
|
|
},
|
|
|
|
|
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()
|
|
|
|
|
},
|
|
|
|
|
handleChaneDiagnosisTime(e, update = true) {
|
|
|
|
|
const DiagnosisTime = e.detail.value
|
|
|
|
|
this.setData({
|
|
|
|
|
DiagnosisTime: dayjs(DiagnosisTime).format('YYYY年MM月'),
|
|
|
|
|
'userInfo.DiagnosisTime': DiagnosisTime,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
handleInput(e) {
|
|
|
|
|
const { key } = e.currentTarget.dataset
|
|
|
|
|
this.setData({
|
|
|
|
|
[`userInfo.${key}`]: e.detail.value,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleChangeRT(e, update = true) {
|
|
|
|
|
const value = e.detail.value
|
|
|
|
|
const id = this.data.RTList.filter((_item, index) => index == value)[0]?.id
|
|
|
|
|
this.setData({
|
|
|
|
|
rtValue: value,
|
|
|
|
|
'userInfo.RelationType': id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
handleChangeGender(e, update = true) {
|
|
|
|
|
const value = e.detail.value
|
|
|
|
|
const id = this.data.GenderList.filter((_item, index) => index == value)[0]?.id
|
|
|
|
|
this.setData({
|
|
|
|
|
genderValue: value,
|
|
|
|
|
'userInfo.Gender': id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
handleChangeTask(e, update = true) {
|
|
|
|
|
const value = e.detail ? 0 : 1
|
|
|
|
|
const id = this.data.TaskList.filter((_item, index) => index == value)[0]?.id
|
|
|
|
|
this.setData({
|
|
|
|
|
taskValue: value,
|
|
|
|
|
'userInfo.PatientCanFollowUp': id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
handleChangeAgeRange(e, update = true) {
|
|
|
|
|
const value = e.detail.value
|
|
|
|
|
const id = this.data.ageRangeList.filter((_item, index) => index == value)[0]?.id
|
|
|
|
|
this.setData({
|
|
|
|
|
ageRangeValue: value,
|
|
|
|
|
'userInfo.AgeRange': id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
handleDiagnoseTypeSave(update = true) {
|
|
|
|
|
const rangeIndex = this.data.selectDiagnoseTypeIndex
|
|
|
|
|
const id = this.data.DTList.filter((_item, index) => index == rangeIndex)[0]?.id
|
|
|
|
|
this.setData({
|
|
|
|
|
diagnoseTypeValue: rangeIndex,
|
|
|
|
|
'userInfo.DiagnoseType': id,
|
|
|
|
|
})
|
|
|
|
|
if (update) {
|
|
|
|
|
this.handleDiagnoseTypeShow()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.updateUserInfo(update)
|
|
|
|
|
},
|
|
|
|
|
handleRadio(e) {
|
|
|
|
|
const { id, key } = e.currentTarget.dataset
|
|
|
|
|
this.setData({
|
|
|
|
|
[`userInfo.${key}`]: id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo(true)
|
|
|
|
|
},
|
|
|
|
|
handleDiagnoseTypeShow() {
|
|
|
|
|
this.setData({
|
|
|
|
|
diagnoseTypeShow: !this.data.diagnoseTypeShow,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleChangeDiagnoseType(e) {
|
|
|
|
|
const value = e.detail.value[0]
|
|
|
|
|
this.setData({
|
|
|
|
|
selectDiagnoseTypeIndex: value,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleRedioSelect(e) {
|
|
|
|
|
const { key, id } = e.currentTarget.dataset
|
|
|
|
|
this.setData({
|
|
|
|
|
[`userInfo.${key}`]: id,
|
|
|
|
|
})
|
|
|
|
|
this.updateUserInfo()
|
|
|
|
|
},
|
|
|
|
|
updateUserInfo(update = true) {
|
|
|
|
|
if (!update) return
|
|
|
|
|
const { PatientName, RelationType, Gender, Birth, DiagnosisTime, DiagnoseType, ...userInfo } = this.data.userInfo
|
|
|
|
|
wx.ajax({
|
|
|
|
|
method: 'POST',
|
|
|
|
|
url: '?r=zd/account/update-info',
|
|
|
|
|
data: {
|
|
|
|
|
name: PatientName,
|
|
|
|
|
relationType: RelationType,
|
|
|
|
|
gender: Gender,
|
|
|
|
|
birth: Birth,
|
|
|
|
|
diagnosisTime: DiagnosisTime,
|
|
|
|
|
diagnoseType: DiagnoseType,
|
|
|
|
|
ageRange: userInfo.AgeRange,
|
|
|
|
|
patientCanFollowUp: userInfo.PatientCanFollowUp,
|
|
|
|
|
antibodyType: userInfo.AntibodyType,
|
|
|
|
|
thyroidAbnormal: userInfo.ThyroidAbnormal,
|
|
|
|
|
previousConvulsion: userInfo.PreviousConvulsion,
|
|
|
|
|
traditionalImmunosuppressant: userInfo.TraditionalImmunosuppressant,
|
|
|
|
|
medicalInsuranceType: userInfo.MedicalInsuranceType,
|
|
|
|
|
...userInfo,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
.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,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
redirectTo(e) {
|
|
|
|
|
const { url } = e.currentTarget.dataset
|
|
|
|
|
wx.redirectTo({
|
|
|
|
|
url,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
})
|