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.

232 lines
5.6 KiB

1 week ago
const app = getApp<IAppOption>()
Page({
data: {
doctor: {} as any,
hospital: {},
popupDateShow: false,
popupDateFocus: false,
popupBriefShow: false,
popupBriefFocus: false,
ClinicList: [
{
name: '周一',
weekday: 1,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周二',
weekday: 2,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周三',
weekday: 3,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周四',
weekday: 4,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周五',
weekday: 5,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周六',
weekday: 6,
timeTypeActive1: false,
timeTypeActive2: false,
},
{
name: '周日',
weekday: 7,
timeTypeActive1: false,
timeTypeActive2: false,
},
],
PopupClinic: '',
},
onLoad() {},
onShow() {
app.waitLogin().then((_res) => {
app.mpBehavior({ doctor: true, PageName: 'PG_DOCTORPERSONALINFO' })
this.getDetail()
})
},
getDetail() {
wx.ajax({
method: 'GET',
url: '?r=igg4/doctor/account/info',
data: {},
}).then((res) => {
const { ClinicList } = this.data
let weekName = ''
if (res.doctor.ClinicType == 2) {
weekName = res.doctor.Clinic
} else {
;(res.doctor.Clinic ? res.doctor.Clinic : []).forEach((subItem: any) => {
if (subItem.timeType == 1) {
ClinicList[subItem.weekday - 1].timeTypeActive1 = true
}
if (subItem.timeType == 2) {
ClinicList[subItem.weekday - 1].timeTypeActive2 = true
}
})
weekName = (res.doctor.Clinic ? res.doctor.Clinic : [])
.map((subItem: { weekday: string | number; timeType: string | number }) => {
const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
const timeDay = { 1: '上午', 2: '下午' }
return `${week[Number(subItem.weekday) - 1]}${timeDay[subItem.timeType]}`
})
.join(',')
}
this.setData({
doctor: {
weekName,
...res.doctor,
Telephone: res.doctor.Telephone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'),
},
hospital: res.hospital,
ClinicList,
})
})
},
handleChangeClinicType(e) {
const value = e.detail.value
if (value) {
this.setData({
'doctor.ClinicType': 2,
'doctor.Clinic': '',
'doctor.weekName': '',
})
} else {
this.setData({
'doctor.ClinicType': 1,
'doctor.Clinic': [],
'doctor.weekName': '',
})
}
this.handleWeekIntroduceSubmit()
},
handleChangePhone() {
app.mpBehavior({ doctor: true, PageName: 'BTN_DOCTORPERSONALINFOCHANGEPHONE' })
wx.navigateTo({
url: '/doctor/pages/d_changePhone/index',
})
},
handleWeek() {
const { doctor } = this.data
this.setData({
PopupClinic: Array.isArray(doctor.Clinic) ? '' : doctor.Clinic,
popupDateShow: true,
})
setTimeout(() => {
this.setData({
popupDateFocus: true,
})
}, 300)
},
handleWeekSelect(e) {
const { type, index } = e.currentTarget.dataset
const ClinicList = this.data.ClinicList
ClinicList[index][`timeTypeActive${type}`] = !ClinicList[index][`timeTypeActive${type}`]
this.setData({
ClinicList,
})
},
handleWeekIntroduceSubmit() {
const { doctor, PopupClinic } = this.data
let Clinic = ''
if (doctor.ClinicType == 2) {
Clinic = PopupClinic
} else {
const ClinicList = this.data.ClinicList
Clinic = ClinicList.reduce((pre, cur) => {
if (cur.timeTypeActive1) {
pre.push({ weekday: cur.weekday, timeType: 1 })
}
if (cur.timeTypeActive2) {
pre.push({ weekday: cur.weekday, timeType: 2 })
}
return pre
}, [] as any)
}
wx.ajax({
method: 'POST',
url: '?r=igg4/doctor/account/update-info',
data: {
Introduce: this.data.doctor.Introduce,
Clinic,
ClinicType: doctor.ClinicType,
},
}).then(() => {
this.onClose()
})
},
handleBrief() {
this.setData({
popupBriefShow: true,
})
setTimeout(() => {
this.setData({
popupBriefFocus: true,
})
}, 300)
},
handleBriefInput(e) {
const doctor = this.data.doctor
doctor.Introduce = e.detail.value
this.setData({
doctor,
})
},
onClose() {
this.setData({
popupDateShow: false,
popupBriefShow: false,
popupBriefFocus: false,
popupDateFocus: false,
})
this.getDetail()
},
handleSwitch() {
app.mpBehavior({ doctor: true, PageName: 'BTN_DOCTORPERSONALINFOSWITCHACCOUNT' })
wx.navigateTo({
url: '/doctor/pages/d_changeDoctor/index',
})
},
handleLoginOut() {
wx.showModal({
title: '确认退出?',
confirmColor: '#62bed0',
success: (res) => {
if (res.confirm) {
wx.ajax({
method: 'POST',
url: '?r=igg4/doctor/account/reg-logout',
data: {},
}).then((_res) => {
app.globalData.loginType = 1
app.globalData.anyWhere = true
app.globalData.first = true
wx.reLaunch({
url: '/pages/login/index',
})
})
}
},
})
},
})