@zuopngfei e49b8b8de2 dads
2025-06-10 18:22:58 +08:00

250 lines
5.0 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();
let height = []
let weight = []
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: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// show: false
},
yAxis: {
x: 'center',
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
}
// show: false
},
series: [{
name: '实际身高',
type: 'line',
smooth: true,
data: height
}, {
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: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// show: false
},
yAxis: {
x: 'center',
type: 'value',
splitLine: {
lineStyle: {
type: 'dashed'
}
}
// show: false
},
series: [{
name: '实际体重',
type: 'line',
smooth: true,
data: weight
}, {
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: ''
},
ec2: {
onInit: ''
},
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
}
})
},
async getChartData(){
const res = await request('patient/chat/0', 'get')
if(res.list.length > 0){
res.list.forEach(item => {
height.push(item.height)
weight.push(item.weight)
})
}
this.setData({
ec: {
onInit: initChart
},
ec2: {
onInit: initChart2
},
})
},
onLoad(){
this.getChartData()
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',
})
},
});