const app = getApp() Page({ data: { menuTop: 0, step: 1, // 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: '', }, onLoad() { const menuRes = wx.getMenuButtonBoundingClientRect() const now = new Date() const currentMonth = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}` this.setData({ menuTop: menuRes.top, 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 = { 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', }) } }) }, }) export {}