2025-06-08 22:57:41 +08:00

230 lines
4.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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',
})
},
});