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.

124 lines
3.0 KiB

5 days ago
const app = getApp<IAppOption>()
1 week ago
Page({
data: {
menuTop: 0,
step: 1,
5 days ago
// Step 1: 基础信息
ageRange: 0 as number,
gender: 0 as number,
provinceId: '' as string | number,
provinceName: '',
cityId: '' as string | number,
cityName: '',
regionText: '',
// Step 2: PSVT情况
diagnosisStatus: 0 as number,
diagnosisTime: '',
surgeryStatus: 0 as number,
currentMonth: '',
1 week ago
},
onLoad() {
const menuRes = wx.getMenuButtonBoundingClientRect()
5 days ago
const now = new Date()
const currentMonth = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}`
1 week ago
this.setData({
menuTop: menuRes.top,
5 days ago
currentMonth,
})
},
handleSelect(e: WechatMiniprogram.TouchEvent) {
const { key, value } = e.currentTarget.dataset
this.setData({
[key]: Number(value),
})
},
handleRegionChange(e: WechatMiniprogram.PickerChange) {
const region = e.detail.value as string[]
this.setData({
provinceName: region[0],
cityName: region[2] || region[1],
regionText: region.filter((r) => r && r !== '全部').join(' '),
})
},
handleDiagnosisTimeChange(e: WechatMiniprogram.PickerChange) {
this.setData({
diagnosisTime: e.detail.value as string,
})
},
handleNext() {
const { ageRange, gender } = this.data
if (!ageRange) {
wx.showToast({ title: '请选择年龄段', icon: 'none' })
return
}
if (!gender) {
wx.showToast({ title: '请选择性别', icon: 'none' })
return
}
this.setData({ step: 2 })
},
handlePrev() {
this.setData({ step: 1 })
},
handleSubmit() {
const { diagnosisStatus, surgeryStatus } = this.data
if (!diagnosisStatus) {
wx.showToast({ title: '请选择确诊状态', icon: 'none' })
return
}
if (!surgeryStatus) {
wx.showToast({ title: '请选择手术状态', icon: 'none' })
return
}
const {
ageRange,
gender,
provinceId,
provinceName,
cityId,
cityName,
diagnosisStatus: ds,
diagnosisTime,
surgeryStatus: ss,
} = this.data
const channelId = app.globalData.scene?.channelId || ''
const data: Record<string, any> = {
ageRange,
gender,
diagnosisStatus: ds,
surgeryStatus: ss,
channelId,
}
if (provinceName) data.provinceName = provinceName
if (provinceId) data.provinceId = provinceId
if (cityName) data.cityName = cityName
if (cityId) data.cityId = cityId
if (diagnosisTime) data.diagnosisTime = diagnosisTime
wx.ajax({
method: 'POST',
url: '?r=psvt/patient/register',
data,
loading: true,
loadingText: '提交中...',
}).then((res) => {
const { isRegistered } = res
if (isRegistered) {
if (app.globalData.initLoginInfo) {
app.globalData.initLoginInfo.isInfoSubmitted = true
}
wx.reLaunch({
url: '/pages/index/index',
})
}
1 week ago
})
},
})
export {}