230 lines
4.6 KiB
JavaScript
230 lines
4.6 KiB
JavaScript
import * as echarts from '../../ec-canvas/echarts.min';
|
||
import request from '~/api/request';
|
||
const app = getApp();
|
||
|
||
function initChart(canvas, width, height, dpr) {
|
||
const chart = echarts.init(canvas, null, {
|
||
width: width,
|
||
height: height,
|
||
devicePixelRatio: dpr // new
|
||
});
|
||
canvas.setChart(chart);
|
||
|
||
var option = {
|
||
title: {
|
||
text: '身高(cm)',
|
||
left: 'left',
|
||
fontSize: 6
|
||
},
|
||
legend: {
|
||
data: ['实际身高', '标准范围'],
|
||
bottom: 0,
|
||
left: 'center',
|
||
z: 100
|
||
},
|
||
grid: {
|
||
containLabel: true,
|
||
top: '12%',
|
||
left: '5%',
|
||
right: '5%',
|
||
bottom: '10%'
|
||
},
|
||
tooltip: {
|
||
show: true,
|
||
trigger: 'axis'
|
||
},
|
||
xAxis: {
|
||
type: 'category',
|
||
boundaryGap: false,
|
||
data: ['一个月', '两个月', '三个月', '四个月', '五个月', '六个月'],
|
||
// show: false
|
||
},
|
||
yAxis: {
|
||
x: 'center',
|
||
type: 'value',
|
||
splitLine: {
|
||
lineStyle: {
|
||
type: 'dashed'
|
||
}
|
||
}
|
||
// show: false
|
||
},
|
||
series: [{
|
||
name: '实际身高',
|
||
type: 'line',
|
||
smooth: true,
|
||
data: [131, 135, 140, 145, 150, 155]
|
||
}, {
|
||
name: '标准范围',
|
||
type: 'line',
|
||
smooth: true,
|
||
data: [120, 130, 140, 150, 160, 170]
|
||
}]
|
||
};
|
||
|
||
chart.setOption(option);
|
||
return chart;
|
||
}
|
||
|
||
function initChart2(canvas, width, height, dpr) {
|
||
const chart = echarts.init(canvas, null, {
|
||
width: width,
|
||
height: height,
|
||
devicePixelRatio: dpr // new
|
||
});
|
||
canvas.setChart(chart);
|
||
|
||
var option = {
|
||
title: {
|
||
text: '体重(kg)',
|
||
left: 'left',
|
||
fontSize: 12
|
||
},
|
||
legend: {
|
||
data: ['实际体重', '标准范围'],
|
||
bottom: 0,
|
||
left: 'center',
|
||
z: 100
|
||
},
|
||
grid: {
|
||
containLabel: true,
|
||
top: '12%',
|
||
left: '5%',
|
||
right: '5%',
|
||
bottom: '10%'
|
||
},
|
||
tooltip: {
|
||
show: true,
|
||
trigger: 'axis'
|
||
},
|
||
xAxis: {
|
||
type: 'category',
|
||
boundaryGap: false,
|
||
data: ['一个月', '两个月', '三个月', '四个月', '五个月', '六个月'],
|
||
// show: false
|
||
},
|
||
yAxis: {
|
||
x: 'center',
|
||
type: 'value',
|
||
splitLine: {
|
||
lineStyle: {
|
||
type: 'dashed'
|
||
}
|
||
}
|
||
// show: false
|
||
},
|
||
series: [{
|
||
name: '实际体重',
|
||
type: 'line',
|
||
smooth: true,
|
||
data: [131, 135, 140, 145, 150, 155]
|
||
}, {
|
||
name: '标准范围',
|
||
type: 'line',
|
||
smooth: true,
|
||
data: [120, 130, 140, 150, 160, 170]
|
||
}]
|
||
};
|
||
|
||
chart.setOption(option);
|
||
return chart;
|
||
}
|
||
|
||
Page({
|
||
onShareAppMessage: function (res) {
|
||
return {
|
||
title: 'ECharts 可以在微信小程序中使用啦!',
|
||
path: '/pages/index/index',
|
||
success: function () { },
|
||
fail: function () { }
|
||
}
|
||
},
|
||
data: {
|
||
ec: {
|
||
onInit: initChart
|
||
},
|
||
ec2: {
|
||
onInit: initChart2
|
||
},
|
||
activeIndex: 0,
|
||
sfData:{},
|
||
sfListLength: 0,
|
||
article:{},
|
||
articlesLength: 0
|
||
},
|
||
|
||
// Helper function to strip HTML tags and convert to plain text
|
||
stripHtml(html) {
|
||
if (!html) return '';
|
||
return html.replace(/<[^>]*>/g, '');
|
||
},
|
||
|
||
async getSfList(){
|
||
const res = await request('patient/follow_plans', 'get', {
|
||
page: 1,
|
||
page_size: 10,
|
||
type: 1
|
||
})
|
||
|
||
// Calculate days between today and plan_date
|
||
const today = new Date()
|
||
const planDate = new Date(res.list[0].plan_date)
|
||
const diffTime = planDate - today
|
||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
|
||
|
||
this.setData({
|
||
sfListLength: res.total,
|
||
sfData: {
|
||
...res.list[0],
|
||
daysUntilPlan: diffDays
|
||
}
|
||
})
|
||
|
||
const res2 = await request('patient/articles', 'get', { title: '', page: 1, page_size: 10 });
|
||
// Convert rich text content to plain text
|
||
const plainTextContent = this.stripHtml(res2.list[0].content);
|
||
this.setData({
|
||
articlesLength: res2.total,
|
||
article: {
|
||
...res2.list[0],
|
||
contentText: plainTextContent
|
||
}
|
||
})
|
||
},
|
||
onLoad(){
|
||
this.getSfList()
|
||
},
|
||
|
||
changeChart(e) {
|
||
const index = e.currentTarget.dataset.index;
|
||
console.log(index);
|
||
this.setData({
|
||
activeIndex: index
|
||
})
|
||
},
|
||
|
||
onReady() {
|
||
},
|
||
|
||
toClockIn(){
|
||
wx.navigateTo({
|
||
url: '/pages/clockIn/index',
|
||
})
|
||
},
|
||
toEmergency(){
|
||
wx.navigateTo({
|
||
url: '/pages/emergency/index',
|
||
})
|
||
},
|
||
toArticle(){
|
||
wx.navigateTo({
|
||
url: '/pages/articleList/index',
|
||
})
|
||
},
|
||
async toArticleDelit(){
|
||
await wx.setStorageSync('article',JSON.stringify(this.data.article));
|
||
wx.navigateTo({
|
||
url: '/pages/article/index',
|
||
})
|
||
},
|
||
}); |