信达小程序
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.

218 lines
5.3 KiB

import dayjs from 'dayjs'
const filterColumns = {}
const app = getApp<IAppOption>()
Page({
data: {
active: 0,
list: [] as any[],
total: 0,
pagination: {
page: 1,
pages: 1,
count: 1,
},
// form
Search: '',
HasAdl: 0,
DoubleStandard: 0,
AdlTime: 0,
AdlScore: [] as any,
AdlScoreChange: [],
AdlScoreChangeType: 0,
AdlScoreChangeMax: '',
AdlScoreChangeMin: '',
SteroidDailyDose: [] as any,
SteroidDailyDoseChange: [] as any,
IsThisWeekAdl: 0,
PharyngealSymptoms: 0,
AntibodyType: 0,
ThyroidAbnormal: 0,
PreviousConvulsion: 0,
TraditionalImmunosuppressant: 0,
MedicalInsuranceType: 0,
BindStartDate: '',
BindEndDate: '',
HasAdlIndex: 0,
HasAdlName: '全部',
DoubleStandardIndex: 0,
DoubleStandardName: '全部',
AdlTimeIndex: 0,
AdlTimeName: '全部',
...filterColumns,
},
onLoad(options) {
this.setData({
BindStartDate: options.BindStartDate || '',
BindEndDate: options.BindEndDate || '',
HasAdl: Number(options.HasAdl || ''),
DoubleStandard: Number(options.DoubleStandard || ''),
AdlScore: options.AdlScore ? options.AdlScore.split('-').map(Number) : [],
SteroidDailyDose: options.SteroidDailyDose ? options.SteroidDailyDose.split('-').map(Number) : [],
IsThisWeekAdl: Number(options.IsThisWeekAdl || ''),
})
},
onShow() {
app.waitLogin().then((_res) => {
2 weeks ago
app.mpBehavior({ PageName: 'PG_DoctorPatientList' })
this.getList()
3 weeks ago
app.getUserInfo(2).then((userInfo) => {
this.setData({
userInfo,
})
})
})
},
handleReset() {
this.setData({
Search: '',
HasAdl: 0,
HasAdlIndex: 0,
HasAdlName: '全部',
DoubleStandard: 0,
DoubleStandardIndex: 0,
DoubleStandardName: '全部',
AdlTime: 0,
AdlTimeName: '全部',
AdlScore: [],
AdlScoreChange: [],
AdlScoreChangeType: 0,
AdlScoreChangeMax: '',
AdlScoreChangeMin: '',
SteroidDailyDose: [],
SteroidDailyDoseChange: [],
IsThisWeekAdl: 0,
PharyngealSymptoms: 0,
AntibodyType: 0,
ThyroidAbnormal: 0,
PreviousConvulsion: 0,
TraditionalImmunosuppressant: 0,
MedicalInsuranceType: 0,
BindStartDate: '',
BindEndDate: '',
})
this.getList()
},
handleTapSearch() {
2 weeks ago
app.mpBehavior({ PageName: 'BTN_DoctorPatientListSearch' })
},
handleNav(e) {
const { active } = e.currentTarget.dataset
this.setData({
active,
})
this.handleSearch()
},
handleSearch() {
this.getList()
},
getList(newPage = 1) {
const { active } = this.data
const params = {
search: this.data.Search,
}
const url = {
0: '?r=zd/doctor/patient/get-my-list',
1: '?r=zd/doctor/patient/get-my-list&IsEDC=1',
}[active] as string
wx.ajax({
method: 'GET',
url,
data: {
page: newPage,
...params,
},
}).then((res) => {
res.list.forEach((item) => {
if (item.BecomePatientTime) {
item.BecomePatientTime = dayjs(item.BecomePatientTime).format('YYYY-MM-DD')
}
})
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]
this.setData({
total: res.count,
list,
pagination: {
page: res.page,
pages: res.pages,
count: res.count,
},
})
})
},
onReachBottom() {
const { page, pages } = this.data.pagination
if (pages > page) {
this.getList(page + 1)
}
},
handlePickerChange(e: any) {
const { key } = e.currentTarget.dataset
const index = e.detail.value
const data = this.data[`${key}Column`]
this.setData({
[`${key}Index`]: index,
[`${key}Name`]: data[index].value,
[`${key}`]: data[index].id,
})
this.handleSearch()
},
handleRadio(e: any) {
const { key, index } = e.currentTarget.dataset
const data = this.data[`${key}Column`]
this.setData({
[`${key}`]: data[index].id,
[`${key}Name`]: data[index].value,
[`${key}Index`]: index,
})
},
handleCheckbox(e: any) {
const { index, key } = e.currentTarget.dataset
const data = this.data[`${key}Column`]
const oldValue = this.data[`${key}`]
const value = oldValue.includes(data[index].id)
? oldValue.filter((item: any) => item !== data[index].id)
: [...oldValue, data[index].id]
this.setData({
[`${key}`]: data[index].id ? value : [],
})
},
handleDetail(e: any) {
2 weeks ago
app.mpBehavior({ PageName: 'BTN_DoctorPatientList' })
const { index } = e.currentTarget.dataset
const item = this.data.list[index]
wx.navigateTo({
url: `/pages/d_patientDetail/index?id=${item.PatientId}`,
})
},
handleSend(e) {
2 weeks ago
app.mpBehavior({ PageName: 'BTN_DoctorPatientListSendMessage' })
const { index } = e.currentTarget.dataset
wx.navigateTo({
url: `/pages/d_interactiveDoctor/index?patientId=${this.data.list[index].PatientId}`,
})
},
handleSendGroup() {
wx.navigateTo({
url: '/pages/d_taskList/index',
})
},
onShareAppMessage() {
return {
title: '重症肌无力加油站,重拾生活掌控感!',
path: '/pages/d_patient/index',
}
},
handleBack() {
wx.navigateBack()
},
})