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.
1091 lines
39 KiB
1091 lines
39 KiB
import dayjs from 'dayjs' |
|
const app = getApp<IAppOption>() |
|
const licia = require('miniprogram-licia') |
|
|
|
let echarts: any = null |
|
|
|
Page({ |
|
data: { |
|
calendarDate: '', |
|
fold: true, |
|
ec: { |
|
lazyLoad: true, |
|
}, |
|
calendarConfig: { |
|
multi: false, |
|
hideSelectYear: true, |
|
autoChoosedWhenJump: true, |
|
firstDayOfWeek: 'Mon', |
|
theme: 'nuohe', |
|
takeoverTap: true, |
|
highlightToday: true, |
|
onlyShowCurrentMonth: true, |
|
disableMode: { |
|
type: 'after', // [‘before’, 'after'] |
|
}, |
|
}, |
|
foldAll: true, |
|
|
|
BeginMonth: '', |
|
EndMonth: '', |
|
Type: '2', |
|
Num: '' as string | number, |
|
fields: { |
|
1: 'day', |
|
2: 'month', |
|
3: 'year', |
|
}, |
|
|
|
detail: {}, |
|
alertAdl: {}, |
|
partNameList: app.globalData.partNameList, |
|
list: [], |
|
pagination: { |
|
page: 1, |
|
pages: 1, |
|
count: 1, |
|
}, |
|
defaultList: [], |
|
count: 0, |
|
defaultListLast: {}, |
|
|
|
mList: [], |
|
|
|
zdUserInfo: {} as any, |
|
todayBg: '', |
|
|
|
page: 0, |
|
|
|
tableData: [ |
|
{ |
|
title: '说话', |
|
key: 'TalkingScore', |
|
}, |
|
{ |
|
title: '咀嚼', |
|
key: 'ChewScore', |
|
}, |
|
{ |
|
title: '吞咽', |
|
key: 'SwallowScore', |
|
}, |
|
{ |
|
title: '呼吸', |
|
key: 'BreathScore', |
|
}, |
|
{ |
|
title: '刷牙梳头能力受损', |
|
key: 'BrushTeethAndCombHairScore', |
|
}, |
|
{ |
|
title: '从椅子上起身能力受损', |
|
key: 'GetUpFromChairScore', |
|
}, |
|
{ |
|
title: '复视/重影', |
|
key: 'DoubleVisionScore', |
|
}, |
|
{ |
|
title: '眼睑下垂', |
|
key: 'DroopyEyelidsScore', |
|
}, |
|
], |
|
|
|
selectLegends: { |
|
呼吸: false, |
|
延髓: false, |
|
眼肌: false, |
|
肢体: false, |
|
总分: true, |
|
}, |
|
|
|
tab: 1, |
|
|
|
theme: '', |
|
}, |
|
ecDataTrendComponent: null as any, |
|
ecDataHormoneComponent: null as any, |
|
onLoad() { |
|
app.zdGetTheme().then((res) => { |
|
this.setData({ |
|
theme: res, |
|
}) |
|
}) |
|
}, |
|
async onShow() { |
|
echarts = await require.async('../../compontnts/echart/echarts.js') |
|
this.ecDataTrendComponent = this.selectComponent('#mychart-dom-bar') |
|
this.ecDataHormoneComponent = this.selectComponent('#mychart-hormone') |
|
this.setData({ |
|
calendarDate: dayjs().format('YYYY-MM'), |
|
}) |
|
this.handleChangeType() |
|
app.waitLogin().then(() => { |
|
// 强制疾病患者以上身份 |
|
app.zdPermissionVerification(3, 0, `/gift/pages/myHealthRecord/index`).then(() => { |
|
app.mpBehavior({ PageName: 'PG_PATIENTHEALTHRECORD' }) |
|
app.getZdUserInfo(this, true, (res) => { |
|
if (res.UserType != 4) { |
|
this.setData({ |
|
tab: 2, |
|
}) |
|
} |
|
this.getCale() |
|
this.handleTabCallBack() |
|
this.getMedicationAlertAdl() |
|
}) |
|
}) |
|
}) |
|
}, |
|
handleChangeInput() { |
|
if (Number(this.data.Num) > 100) { |
|
this.setData({ |
|
Num: 100, |
|
}) |
|
} |
|
}, |
|
getCale() { |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/adl/cale', |
|
data: { |
|
Month: this.data.calendarDate, |
|
}, |
|
}).then((res) => { |
|
this.setCalendarTodos(res) |
|
}) |
|
}, |
|
setCalendarTodos({ adl = [], medication = [] }: { adl: any[]; medication: string[] }) { |
|
const theme = this.data.theme |
|
const calendar = this.selectComponent('#calendar').calendar |
|
const adlDate = adl.map((item) => item.Date) |
|
const dates: any[] = [] |
|
const intersectDate = licia.intersect(adlDate, medication) |
|
const filterAdlDate = adl.filter((item) => !intersectDate.includes(item.Date)) |
|
const filterMedication = medication.filter((item) => !intersectDate.includes(item)) |
|
const intersectAdlDate = adl.filter((item) => intersectDate.includes(item.Date)) |
|
const doc = theme === 'DRUG' ? 'doc' : ' ' |
|
filterMedication.forEach((Date: string) => { |
|
dates.push({ |
|
year: Date.split('-')[0], |
|
month: Date.split('-')[1], |
|
date: Date.split('-')[2], |
|
class: doc, |
|
}) |
|
}) |
|
intersectAdlDate.forEach(({ Date, TotalScore, LastTotalScore }) => { |
|
dates.push({ |
|
year: Date.split('-')[0], |
|
month: Date.split('-')[1], |
|
date: Date.split('-')[2], |
|
class: TotalScore > 5 || TotalScore - LastTotalScore >= 2 ? `error ${doc}` : `primary ${doc}`, |
|
}) |
|
}) |
|
filterAdlDate.forEach(({ Date, TotalScore, LastTotalScore }) => { |
|
dates.push({ |
|
year: Date.split('-')[0], |
|
month: Date.split('-')[1], |
|
date: Date.split('-')[2], |
|
class: TotalScore > 5 || TotalScore - LastTotalScore >= 2 ? 'error' : 'primary', |
|
}) |
|
}) |
|
calendar.setDateStyle(dates) |
|
}, |
|
getMedicationAlertAdl() { |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/medication/medication-alert-adl', |
|
data: {}, |
|
}).then((res) => { |
|
this.setData({ |
|
alertAdl: res, |
|
}) |
|
}) |
|
}, |
|
handleWhenChangeMonth(e: { detail: { next: any } }) { |
|
const current = e.detail.next |
|
this.setData({ |
|
calendarDate: dayjs(`${current.year}-${current.month}`).format('YYYY-MM'), |
|
}) |
|
this.getCale() |
|
}, |
|
handleChangeType(e?: WechatMiniprogram.CustomEvent) { |
|
let type = '' |
|
let callback = true |
|
if (e) { |
|
type = e.currentTarget.dataset.type |
|
} else { |
|
type = this.data.Type |
|
callback = false |
|
} |
|
let EndMonth = '' |
|
let BeginMonth = '' |
|
if (type == '1') { |
|
if (e) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDDAILYCURVE' }) |
|
} |
|
EndMonth = dayjs().format('YYYY-MM-DD') |
|
BeginMonth = dayjs().subtract(6, 'd').format('YYYY-MM-DD') |
|
} else if (type == '2') { |
|
if (e) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDMONTHLYCURVE' }) |
|
} |
|
EndMonth = dayjs().format('YYYY-MM') |
|
BeginMonth = dayjs().subtract(1, 'M').format('YYYY-MM') |
|
} else if (type == '3') { |
|
if (e) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDYEARLYCURVE' }) |
|
} |
|
EndMonth = dayjs().format('YYYY') |
|
BeginMonth = dayjs().subtract(1, 'y').format('YYYY') |
|
} else if (type == '4' && e) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDTIMECURVE' }) |
|
} |
|
this.setData({ |
|
page: 0, |
|
Type: type, |
|
Num: '5', |
|
EndMonth, |
|
BeginMonth, |
|
}) |
|
if (callback) { |
|
this.handleTabCallBack() |
|
} |
|
}, |
|
handleChange() { |
|
this.handleTabCallBack() |
|
}, |
|
handleTab(e) { |
|
const { index } = e.currentTarget.dataset |
|
this.setData({ |
|
tab: index, |
|
}) |
|
if (index == 1) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDCOMPREHENSIVEREPORT' }) |
|
} |
|
if (index == 2) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDDUALCOMPLIANCENOTES' }) |
|
} |
|
if (index == 3) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDMEDICATIONRECORD' }) |
|
} |
|
this.handleTabCallBack() |
|
}, |
|
handleTabCallBack() { |
|
const tab = this.data.tab |
|
this.setData({ |
|
pagination: { |
|
page: 1, |
|
pages: 1, |
|
count: 1, |
|
}, |
|
}) |
|
if (tab == 1) { |
|
this.getAllList() |
|
} |
|
if (tab == 2) { |
|
this.getList() |
|
} |
|
if (tab == 3) { |
|
this.getMedicationList() |
|
} |
|
this.getChart() |
|
}, |
|
getAllList(newPage = 1) { |
|
const { BeginMonth, EndMonth, Type, Num } = this.data |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/adl/composite-list', |
|
data: { |
|
Type: Number(Type) === 4 ? 2 : 1, |
|
DateType: Number(Type) === 4 ? '' : Number(Type), |
|
StartDate: BeginMonth, |
|
EndDate: EndMonth, |
|
Num, |
|
page: newPage, |
|
}, |
|
}).then((res) => { |
|
const list = res.list |
|
list.map((item) => { |
|
let grade = 1 |
|
if (item.TotalScore < 5) { |
|
grade = 1 |
|
} else if (item.TotalScore >= 5 && item.TotalScore < 15) { |
|
grade = 2 |
|
} else { |
|
grade = 3 |
|
} |
|
item.grade = grade |
|
item.fold = true |
|
return item |
|
}) |
|
|
|
const newList = res.page === 1 ? res.list : [...this.data.list, ...res.list] |
|
this.setData({ |
|
list: newList, |
|
pagination: { |
|
page: res.page, |
|
pages: res.pages, |
|
count: res.count, |
|
}, |
|
}) |
|
}) |
|
}, |
|
onReachBottom() { |
|
const { page, pages } = this.data.pagination |
|
const tab = this.data.tab |
|
if (pages > page) { |
|
if (tab == 1) { |
|
this.getAllList(page + 1) |
|
} |
|
if (tab == 2) { |
|
this.getList(page + 1) |
|
} |
|
if (tab == 3) { |
|
this.getMedicationList(page + 1) |
|
} |
|
} |
|
}, |
|
getList(newPage = 1) { |
|
const { BeginMonth, EndMonth, Type, Num } = this.data |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/adl/list', |
|
data: { |
|
Type: Number(Type) === 4 ? 2 : 1, |
|
DateType: Number(Type) === 4 ? '' : Number(Type), |
|
StartDate: BeginMonth, |
|
EndDate: EndMonth, |
|
Num, |
|
page: newPage, |
|
}, |
|
}).then((res) => { |
|
const list = res.list |
|
list.map((item) => { |
|
let grade = 1 |
|
if (item.TotalScore < 5) { |
|
grade = 1 |
|
} else if (item.TotalScore >= 5 && item.TotalScore < 15) { |
|
grade = 2 |
|
} else { |
|
grade = 3 |
|
} |
|
item.grade = grade |
|
item.fold = true |
|
item.Type = 1 |
|
return item |
|
}) |
|
const newList = res.page === 1 ? res.list : [...this.data.list, ...res.list] |
|
this.setData({ |
|
list: newList, |
|
pagination: { |
|
page: res.page, |
|
pages: res.pages, |
|
count: res.count, |
|
}, |
|
}) |
|
}) |
|
}, |
|
getMedicationList(newPage = 1) { |
|
const { BeginMonth, EndMonth, Type, Num } = this.data |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/medication/list', |
|
data: { |
|
Type: Number(Type) === 4 ? 2 : 1, |
|
DateType: Number(Type) === 4 ? '' : Number(Type), |
|
StartDate: BeginMonth, |
|
EndDate: EndMonth, |
|
Num, |
|
page: newPage, |
|
}, |
|
}).then((res) => { |
|
const list = res.list |
|
list.map((item) => { |
|
let grade = 1 |
|
if (item.TotalScore < 5) { |
|
grade = 1 |
|
} else if (item.TotalScore >= 5 && item.TotalScore < 15) { |
|
grade = 2 |
|
} else { |
|
grade = 3 |
|
} |
|
item.grade = grade |
|
item.fold = true |
|
item.Type = 2 |
|
return item |
|
}) |
|
const newList = res.page === 1 ? res.list : [...this.data.list, ...res.list] |
|
this.setData({ |
|
list: newList, |
|
pagination: { |
|
page: res.page, |
|
pages: res.pages, |
|
count: res.count, |
|
}, |
|
}) |
|
}) |
|
}, |
|
getChart() { |
|
const { BeginMonth, EndMonth, Type, Num } = this.data |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/adl/list', |
|
data: { |
|
Type: Number(Type) === 4 ? 2 : 1, |
|
DateType: Number(Type) === 4 ? '' : Number(Type), |
|
StartDate: BeginMonth, |
|
EndDate: EndMonth, |
|
Num, |
|
count: 0, |
|
IsAsc: 1, |
|
}, |
|
}).then(async (res) => { |
|
if (Number(Type) == 4) { |
|
this.setData({ |
|
defaultList: res.list, |
|
count: res.list.length, |
|
defaultListLast: res.list.at(-1), |
|
}) |
|
const chart1 = await this.initChart(res.list) |
|
const chart2 = await this.initHormoneChart(res.list) |
|
echarts.connect([chart1, chart2]) |
|
} |
|
}) |
|
if (Number(Type) != 4) { |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=zd/adl/graph', |
|
data: { |
|
Type: Number(Type) === 4 ? 2 : 1, |
|
DateType: Number(Type) === 4 ? '' : Number(Type), |
|
StartDate: BeginMonth, |
|
EndDate: EndMonth, |
|
count: 0, |
|
}, |
|
}).then(async (res) => { |
|
const medication = res.medication.map((item) => { |
|
return { |
|
Date: item.InjectionDate, |
|
...item, |
|
} |
|
}) |
|
const list = res.list |
|
const newList: any[] = this.mergeArr(list, medication) |
|
|
|
if (Number(Type) != 4) { |
|
this.setData({ |
|
defaultList: newList as never[], |
|
defaultListLast: newList.at(-1), |
|
count: list.length, |
|
}) |
|
const chart1 = await this.initChart(newList as never[]) |
|
const chart2 = await this.initHormoneChart(newList as never[]) |
|
echarts.connect([chart1, chart2]) |
|
} |
|
}) |
|
} |
|
}, |
|
mergeArr(array1: any[] = [], array2: any[] = []) { |
|
// 合并两个数组中相同Date字段的对象 |
|
const mergedArray: any[] = [] |
|
const mergedMap = new Map() |
|
|
|
array1.concat(array2).forEach((obj) => { |
|
const date = obj.Date |
|
if (mergedMap.has(date)) { |
|
mergedMap.get(date).push(obj) |
|
} else { |
|
mergedMap.set(date, [obj]) |
|
} |
|
}) |
|
|
|
mergedMap.forEach((objs: any) => { |
|
if (objs.length === 1) { |
|
mergedArray.push(objs[0]) |
|
} else { |
|
const mergedObj = objs.reduce((acc, cur) => ({ ...acc, ...cur })) |
|
mergedArray.push(mergedObj) |
|
} |
|
}) |
|
|
|
// 按照Date字段对合并后的数组进行排序 |
|
mergedArray.sort((a, b) => { |
|
return a.Date.localeCompare(b.Date) |
|
}) |
|
return mergedArray |
|
}, |
|
|
|
initChart(defaultList = []) { |
|
const { theme } = this.data |
|
const list: any = defaultList |
|
return new Promise((reslove) => { |
|
this.ecDataTrendComponent.init((canvas, width, height, dpr) => { |
|
const chart = echarts.init(canvas, null, { |
|
width, |
|
height, |
|
devicePixelRatio: dpr, // new |
|
}) |
|
canvas.setChart(chart) |
|
|
|
const option: any = { |
|
tooltip: { |
|
show: false, |
|
trigger: 'axis', |
|
axisPointer: { |
|
type: 'shadow', |
|
}, |
|
confine: true, |
|
backgroundColor: 'rgba(0, 0, 0, 0.5)', |
|
textStyle: { |
|
color: '#fff', |
|
fontSize: 10, |
|
}, |
|
order: 'seriesDesc', |
|
}, |
|
grid: { |
|
top: '30', |
|
left: '0', |
|
right: '0', |
|
bottom: '10', |
|
containLabel: true, |
|
}, |
|
xAxis: [ |
|
{ |
|
type: 'category', |
|
axisTick: { |
|
show: true, |
|
inside: true, |
|
length: 1, |
|
alignWithLabel: true, |
|
lineStyle: { |
|
type: 'dotted', |
|
color: '#D8D8D8', |
|
width: 4, |
|
cap: 'round', |
|
}, |
|
}, |
|
axisLine: { |
|
lineStyle: { |
|
color: '#8C8C8C', |
|
type: 'dashed', |
|
}, |
|
}, |
|
data: list.map((item) => dayjs(item.Date).format('MM-DD')), |
|
axisLabel: { |
|
formatter() { |
|
return '' |
|
}, |
|
}, |
|
}, |
|
], |
|
yAxis: [ |
|
{ |
|
type: 'value', |
|
minInterval: 1, |
|
}, |
|
], |
|
series: [ |
|
{ |
|
name: '总分', |
|
data: list.length ? list.map((item) => item.TotalScore) : [25], |
|
barWidth: '16', |
|
label: { |
|
show: true, |
|
position: 'top', |
|
color: '#CF5375', |
|
}, |
|
type: 'line', |
|
symbol: 'circle', |
|
symbolSize: 8, |
|
showSymbol: list.length >= 1, |
|
connectNulls: true, |
|
z: 10, |
|
itemStyle: { |
|
color: '#CF5375', |
|
}, |
|
markLine: { |
|
symbol: ['none', 'none'], |
|
data: [ |
|
{ |
|
name: '达标区(1分)', |
|
yAxis: 1, |
|
label: { |
|
formatter: '{b}', |
|
position: 'insideMiddle', |
|
color: '#24D8C8', |
|
fontSize: '10', |
|
}, |
|
lineStyle: { |
|
cap: '', |
|
color: '#34D7C7', |
|
type: 'dashed', |
|
}, |
|
}, |
|
], |
|
}, |
|
markArea: { |
|
itemStyle: { |
|
color: 'rgba(37,217,200,0.19)', |
|
}, |
|
data: [ |
|
[ |
|
{ |
|
yAxis: 0, |
|
}, |
|
{ |
|
yAxis: 1, |
|
}, |
|
], |
|
], |
|
}, |
|
}, |
|
], |
|
dataZoom: { |
|
type: 'inside', // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。 |
|
startValue: 0, |
|
endValue: 4, |
|
filterMode: 'none', |
|
}, |
|
} |
|
|
|
if (theme === 'DRUG') { |
|
const markLineData = list |
|
.filter((item) => item.InjectionBottles) |
|
.map((item) => { |
|
return { |
|
name: '', |
|
xAxis: dayjs(item.Date).format('MM-DD'), |
|
lineStyle: { |
|
color: 'rgba(37, 217, 200,0.5)', |
|
cap: '', |
|
type: 'solid', |
|
}, |
|
|
|
label: { |
|
formatter: '', |
|
position: 'insideEndBottom', |
|
rotate: 0, |
|
color: '#25D9C8', |
|
offset: [60, 0], |
|
}, |
|
} |
|
}) |
|
option.series.push({ |
|
name: '用药', |
|
data: list.map((item) => (item.InjectionBottles ? 0 : null)), |
|
type: 'line', |
|
symbol: |
|
'image://data:image/png;base64,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', |
|
symbolSize: [11, 16], |
|
symbolOffset: [0, 0], |
|
itemStyle: { |
|
color: '#25D9C8', |
|
}, |
|
lineStyle: { |
|
width: 0, |
|
}, |
|
tooltip: { |
|
show: false, |
|
}, |
|
z: 11, |
|
markLine: { |
|
symbol: ['none', 'none'], |
|
data: markLineData, |
|
}, |
|
}) |
|
// option.series.push({ |
|
// name: "用药时间", |
|
// data: list.map((item: any) => (item.InjectionBottles ? item.TotalScore : 0)), |
|
// type: "line", |
|
// symbol: |
|
// "image://data:image/png;base64,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", |
|
// symbolSize: [11, 16], |
|
// symbolOffset: [0, "100%"], |
|
// itemStyle: { |
|
// color: "#25D9C8", |
|
// }, |
|
// tooltip: { |
|
// show: false, |
|
// }, |
|
// lineStyle: { |
|
// width: 0, |
|
// }, |
|
// z: 1, |
|
// }); |
|
} |
|
|
|
chart.setOption(option) |
|
reslove(chart) |
|
return chart |
|
}) |
|
}) |
|
}, |
|
initHormoneChart(defaultList = []) { |
|
const { theme } = this.data |
|
const list: any = defaultList |
|
return new Promise((reslove) => { |
|
this.ecDataHormoneComponent.init((canvas, width, height, dpr) => { |
|
const chart = echarts.init(canvas, null, { |
|
width, |
|
height, |
|
devicePixelRatio: dpr, // new |
|
}) |
|
canvas.setChart(chart) |
|
|
|
const option: any = { |
|
tooltip: { |
|
show: false, |
|
trigger: 'axis', |
|
axisPointer: { |
|
type: 'shadow', |
|
}, |
|
confine: true, |
|
backgroundColor: 'rgba(0, 0, 0, 0.5)', |
|
textStyle: { |
|
color: '#fff', |
|
fontSize: 10, |
|
}, |
|
order: 'seriesDesc', |
|
}, |
|
grid: { |
|
top: '30', |
|
left: '0', |
|
right: '0', |
|
bottom: '10', |
|
containLabel: true, |
|
}, |
|
xAxis: [ |
|
{ |
|
type: 'category', |
|
axisTick: { |
|
show: true, |
|
inside: true, |
|
length: 1, |
|
alignWithLabel: true, |
|
lineStyle: { |
|
type: 'dotted', |
|
color: '#D8D8D8', |
|
width: 4, |
|
cap: 'round', |
|
}, |
|
}, |
|
axisLine: { |
|
lineStyle: { |
|
color: '#8C8C8C', |
|
type: 'dashed', |
|
}, |
|
}, |
|
data: list.map((item) => dayjs(item.Date).format('MM-DD')), |
|
}, |
|
], |
|
yAxis: [ |
|
{ |
|
type: 'value', |
|
minInterval: 1, |
|
max(value) { |
|
return value.max + 20 > 999 ? 999 : value.max + 20 |
|
}, |
|
axisLabel: { |
|
// width: 20, |
|
formatter(value: number) { |
|
return value |
|
}, |
|
}, |
|
}, |
|
], |
|
series: [ |
|
{ |
|
name: '激素用量', |
|
data: list.length ? list.map((item) => item.SteroidDailyDose) : [20], |
|
barWidth: '16', |
|
type: 'line', |
|
symbol: 'circle', |
|
symbolSize: 8, |
|
connectNulls: true, |
|
showSymbol: list.length >= 1, |
|
z: 10, |
|
label: { |
|
show: true, |
|
position: 'top', |
|
color: '#18474e', |
|
z: 11, |
|
formatter({ value }) { |
|
return `${value}mg` |
|
}, |
|
}, |
|
itemStyle: { |
|
color: '#3192A1', |
|
}, |
|
markLine: { |
|
symbol: ['none', 'none'], |
|
data: [ |
|
{ |
|
name: '达标区(5mg)', |
|
yAxis: 5, |
|
label: { |
|
formatter: '{b}', |
|
position: 'insideMiddle', |
|
color: '#24D8C8', |
|
fontSize: '10', |
|
}, |
|
lineStyle: { |
|
cap: '', |
|
color: '#34D7C7', |
|
type: 'dashed', |
|
}, |
|
}, |
|
], |
|
}, |
|
markArea: { |
|
itemStyle: { |
|
color: 'rgba(37,217,200,0.19)', |
|
}, |
|
data: [ |
|
[ |
|
{ |
|
yAxis: 0, |
|
}, |
|
{ |
|
yAxis: 5, |
|
}, |
|
], |
|
], |
|
}, |
|
}, |
|
], |
|
dataZoom: { |
|
type: 'inside', // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。 |
|
startValue: 0, |
|
endValue: 4, |
|
filterMode: 'none', |
|
}, |
|
} |
|
if (theme === 'DRUG') { |
|
const markLineData = list |
|
.filter((item) => item.InjectionBottles) |
|
.map((item) => { |
|
return { |
|
name: '', |
|
xAxis: dayjs(item.Date).format('MM-DD'), |
|
lineStyle: { |
|
color: 'rgba(37, 217, 200,0.5)', |
|
cap: '', |
|
type: 'solid', |
|
}, |
|
label: { |
|
formatter: '', |
|
position: 'insideEndBottom', |
|
rotate: 0, |
|
color: '#25D9C8', |
|
offset: [60, 0], |
|
}, |
|
} |
|
}) |
|
const maxValue = Math.max(...list.map((item) => item.SteroidDailyDose)) |
|
option.series.push({ |
|
name: '用药', |
|
data: list.map((item) => (item.InjectionBottles ? 0 : null)), |
|
type: 'line', |
|
symbol: |
|
'image://data:image/png;base64,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', |
|
symbolSize: [11, 16], |
|
symbolOffset: [0, 0], |
|
itemStyle: { |
|
color: '#25D9C8', |
|
}, |
|
lineStyle: { |
|
width: 0, |
|
}, |
|
tooltip: { |
|
show: false, |
|
}, |
|
z: 11, |
|
markLine: { |
|
symbol: ['none', 'none'], |
|
data: markLineData, |
|
}, |
|
}) |
|
// option.series.push({ |
|
// name: "用药时间", |
|
// data: list.map((item: any) => (item.InjectionBottles ? item.TotalScore : 0)), |
|
// type: "line", |
|
// symbol: |
|
// "image://data:image/png;base64,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", |
|
// symbolSize: [11, 16], |
|
// symbolOffset: [0, "100%"], |
|
// itemStyle: { |
|
// color: "#25D9C8", |
|
// }, |
|
// tooltip: { |
|
// show: false, |
|
// }, |
|
// lineStyle: { |
|
// width: 0, |
|
// }, |
|
// z: 1, |
|
// }); |
|
} |
|
|
|
chart.setOption(option) |
|
reslove(chart) |
|
return chart |
|
}) |
|
}) |
|
}, |
|
touchend(e) { |
|
const { type } = e.currentTarget.dataset |
|
const { page, defaultList } = this.data |
|
if (type == 'left' && page > 0) { |
|
this.setData({ |
|
page: page - 1, |
|
}) |
|
this.initChart(defaultList) |
|
this.initHormoneChart(defaultList) |
|
} else if (type == 'right' && page < defaultList.length / 5 - 1) { |
|
this.setData({ |
|
page: page + 1, |
|
}) |
|
this.initChart(defaultList) |
|
this.initHormoneChart(defaultList) |
|
} |
|
}, |
|
handleFoldAll() { |
|
const { list } = this.data |
|
this.setData({ |
|
list: list.map((item) => { |
|
item.fold = !this.data.foldAll |
|
return item |
|
}), |
|
foldAll: !this.data.foldAll, |
|
}) |
|
}, |
|
handleFold(e) { |
|
const { index } = e.currentTarget.dataset |
|
this.setData({ |
|
[`list[${index}].fold`]: !this.data.list[index].fold, |
|
}) |
|
}, |
|
handleDetail(e) { |
|
const { id, isi } = e.currentTarget.dataset |
|
const tab = this.data.tab |
|
if (isi == 1) { |
|
return |
|
} |
|
if (tab == 1) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDREPORTLIST' }) |
|
} |
|
if (tab == 2) { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDNOTESLIST' }) |
|
} |
|
|
|
wx.navigateTo({ |
|
url: `/pages/adlResult/index?id=${id}`, |
|
}) |
|
}, |
|
handleDel(e) { |
|
const { id, index, isi } = e.currentTarget.dataset |
|
if (isi == 1) { |
|
return |
|
} |
|
if (index != 0) return |
|
wx.showModal({ |
|
title: '确认删除?', |
|
confirmColor: '#cf5375', |
|
success: (res) => { |
|
if (res.confirm) { |
|
wx.ajax({ |
|
method: 'POST', |
|
url: '?r=zd/adl/delete', |
|
data: { |
|
Id: id, |
|
}, |
|
}).then(() => { |
|
this.handleTabCallBack() |
|
}) |
|
} |
|
}, |
|
}) |
|
}, |
|
handleAdd() { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDASSESSMENT' }) |
|
wx.navigateTo({ |
|
url: '/pages/adl/index', |
|
}) |
|
}, |
|
handleAddDrug() { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDMEDICATION' }) |
|
wx.navigateTo({ |
|
url: '/pages/drugRecord/index', |
|
}) |
|
}, |
|
handleChartDetail() { |
|
const that = this |
|
wx.navigateTo({ |
|
url: '/gift/pages/myHealthRecordChart/index', |
|
success(res) { |
|
res.eventChannel.emit('acceptDataFromOpenerPage', { |
|
list: that.data.defaultList, |
|
selectLegends: that.data.selectLegends, |
|
}) |
|
}, |
|
}) |
|
}, |
|
handleDetailDrug(e) { |
|
const { id, isi } = e.currentTarget.dataset |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDMEDICATIONLIST' }) |
|
if (isi == 1) { |
|
return |
|
} |
|
wx.navigateTo({ |
|
url: `/pages/drugRecord/index?id=${id}`, |
|
}) |
|
}, |
|
handleDelDrug(e) { |
|
const { id, isi } = e.currentTarget.dataset |
|
if (isi == 1) { |
|
return |
|
} |
|
wx.showModal({ |
|
title: '确认删除?', |
|
confirmColor: '#cf5375', |
|
success: (res) => { |
|
if (res.confirm) { |
|
wx.ajax({ |
|
method: 'POST', |
|
url: '?r=zd/medication/delete', |
|
data: { |
|
Id: id, |
|
}, |
|
}).then(() => { |
|
this.handleTabCallBack() |
|
}) |
|
} |
|
}, |
|
}) |
|
}, |
|
toggleFold() { |
|
this.setData({ |
|
fold: !this.data.fold, |
|
}) |
|
}, |
|
handleShare() { |
|
app.mpBehavior({ PageName: 'BTN_PATIENTHEALTHRECORDSHAREDUALCOMPLIANCEPOSTER' }) |
|
wx.navigateTo({ |
|
url: '/pages/adlShare/index', |
|
}) |
|
}, |
|
handleBack() { |
|
wx.navigateBack({ |
|
fail() { |
|
wx.reLaunch({ url: '/pages/index/index' }) |
|
}, |
|
}) |
|
}, |
|
onShareAppMessage() { |
|
return { |
|
title: 'MG-ADL测评表:评估重症肌无力患者症状对生活质量的影响', |
|
path: '/pages/adl/index', |
|
} |
|
}, |
|
})
|
|
|