|
|
@@ -0,0 +1,3998 @@
|
|
|
+import * as echarts from '../../ec-canvas/echarts';
|
|
|
+let chart000;
|
|
|
+let chart00;
|
|
|
+let chart0;
|
|
|
+let chart;
|
|
|
+let chart1;
|
|
|
+let chart2;
|
|
|
+let chart3;
|
|
|
+let chart4;
|
|
|
+let chart5;
|
|
|
+let chart6;
|
|
|
+let chart7;
|
|
|
+let chart8;
|
|
|
+let chart81;
|
|
|
+let chart9;
|
|
|
+let chart10;
|
|
|
+let chart11;
|
|
|
+// pages/data/data.js
|
|
|
+function addZero(str) {
|
|
|
+ if (String(str).length == 1) {
|
|
|
+ return "0" + String(str);
|
|
|
+ } else {
|
|
|
+ return String(str);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart000() {
|
|
|
+ var option = {
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ type: 'pie',
|
|
|
+ radius: ['60%', '70%'], // 外环半径和内环半径,控制圆环宽度
|
|
|
+ data: [
|
|
|
+ { value: 0, name: '暂无', itemStyle: {color: '#eaeaea'} }, // 进度数据
|
|
|
+ { value: 100, name: '暂无', itemStyle: {color: '#eaeaea'} } // 剩余数据,用于形成完整的圆环
|
|
|
+ ],
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'center',
|
|
|
+ // formatter: function (params) {
|
|
|
+ // // 这里假设进度数据在第一个数据项中
|
|
|
+ // if (params.dataIndex === 0) {
|
|
|
+ // // return `第一行文字\n${params.percent.toFixed(2)}% 第二行文字`;
|
|
|
+ // return '<text class="text-line text-line-1">'+rscore_desc+'</text>'+'\n '+
|
|
|
+ // '<text class="text-line text-line-2">'+rscore_value+'</text>';
|
|
|
+ // }
|
|
|
+ // return ''; // 其他数据项不显示标签
|
|
|
+ // },
|
|
|
+ rich: {
|
|
|
+ // ... 如果需要设置富文本样式,可以在这里定义
|
|
|
+ },
|
|
|
+ textStyle: { // 设置标签文本样式
|
|
|
+ fontSize: 16, // 根据需要调整字体大小
|
|
|
+ color: '#333', // 根据需要调整字体颜色
|
|
|
+ // ... 其他样式设置
|
|
|
+ },
|
|
|
+ alignTo: 'labelLine', // 文本水平居中到标签线
|
|
|
+ align: 'center' // 文本垂直居中对齐到标签线
|
|
|
+ },
|
|
|
+
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'center',
|
|
|
+ // formatter: function (params) {
|
|
|
+ // // 假设 params.percent 是进度百分比
|
|
|
+ // return `{normal|`+rscore_desc+`}\n\n{bold|`+rscore_value+`}`;
|
|
|
+ // },
|
|
|
+ rich: {
|
|
|
+ bold: {
|
|
|
+ fontWeight: 'bold', // 加粗
|
|
|
+ fontSize: 18, // 字体大小,根据需要调整
|
|
|
+ color: '#333' // 字体颜色,根据需要调整
|
|
|
+ // 其他样式配置...
|
|
|
+ },
|
|
|
+ normal: {
|
|
|
+ fontWeight: 'normal', // 普通字体
|
|
|
+ fontSize: 14, // 字体大小,根据需要调整
|
|
|
+ color: '#666' // 字体颜色,根据需要调整
|
|
|
+ // 其他样式配置...
|
|
|
+ }
|
|
|
+ // 可以继续定义其他样式...
|
|
|
+ },
|
|
|
+ // 其他 label 配置...
|
|
|
+ }
|
|
|
+ // ... 其他配置项
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ chart000.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart00(rscore_desc,rscore_value,that) {
|
|
|
+ var option = {
|
|
|
+ backgroundColor: 'white',
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ type: 'pie',
|
|
|
+ radius: ['60%', '70%'], // 外环半径和内环半径,控制圆环宽度
|
|
|
+ data: [
|
|
|
+ // { value: rscore_value?rscore_value:0, name: '进度', itemStyle: {color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{offset: 0, color: '#874bff'}, {offset: 0.6, color: '#a87cff'},{offset: 0.9, color: '#f19cff'},{offset: 1, color: '#ff55ff'}])} }, // 进度数据
|
|
|
+ { value: rscore_value?rscore_value:0, name: '进度', itemStyle: {color: '#874bff'} },
|
|
|
+ { value: 100-(rscore_value?rscore_value:0), name: '剩余', itemStyle: {color: '#eaeaea'} } // 剩余数据,用于形成完整的圆环
|
|
|
+ ],
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'center',
|
|
|
+ formatter: function (params) {
|
|
|
+ // 这里假设进度数据在第一个数据项中
|
|
|
+ if (params.dataIndex === 0) {
|
|
|
+ // return `第一行文字\n${params.percent.toFixed(2)}% 第二行文字`;
|
|
|
+ return '<text class="text-line text-line-1">'+rscore_desc+'</text>'+'\n '+
|
|
|
+ '<text class="text-line text-line-2">'+rscore_value+'</text>';
|
|
|
+ }
|
|
|
+ return ''; // 其他数据项不显示标签
|
|
|
+ },
|
|
|
+ rich: {
|
|
|
+ // ... 如果需要设置富文本样式,可以在这里定义
|
|
|
+ },
|
|
|
+ textStyle: { // 设置标签文本样式
|
|
|
+ fontSize: 16, // 根据需要调整字体大小
|
|
|
+ color: '#333', // 根据需要调整字体颜色
|
|
|
+ // ... 其他样式设置
|
|
|
+ },
|
|
|
+ alignTo: 'labelLine', // 文本水平居中到标签线
|
|
|
+ align: 'center' // 文本垂直居中对齐到标签线
|
|
|
+ },
|
|
|
+
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'center',
|
|
|
+ formatter: function (params) {
|
|
|
+ // 假设 params.percent 是进度百分比
|
|
|
+ return `{normal|`+rscore_desc+`}\n\n{bold|`+rscore_value+`}`;
|
|
|
+ },
|
|
|
+ rich: {
|
|
|
+ bold: {
|
|
|
+ fontWeight: 'bold', // 加粗
|
|
|
+ fontSize: 18, // 字体大小,根据需要调整
|
|
|
+ color: '#333' // 字体颜色,根据需要调整
|
|
|
+ // 其他样式配置...
|
|
|
+ },
|
|
|
+ normal: {
|
|
|
+ fontWeight: 'normal', // 普通字体
|
|
|
+ fontSize: 14, // 字体大小,根据需要调整
|
|
|
+ color: '#666' // 字体颜色,根据需要调整
|
|
|
+ // 其他样式配置...
|
|
|
+ }
|
|
|
+ // 可以继续定义其他样式...
|
|
|
+ },
|
|
|
+ // 其他 label 配置...
|
|
|
+ }
|
|
|
+ // ... 其他配置项
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ that.setData({
|
|
|
+ flushChart00Flag:true
|
|
|
+ });
|
|
|
+ console.log('that.data.flushChart00Flag='+that.data.flushChart00Flag);
|
|
|
+ chart00.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart0(data) {
|
|
|
+ var option = {
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '进度',
|
|
|
+ type: 'pie',
|
|
|
+ radius: ['50%', '70%'],
|
|
|
+ avoidLabelOverlap: false,
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'center'
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ fontSize: '30',
|
|
|
+ fontWeight: 'bold'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ labelLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ chart0.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart(data) {
|
|
|
+ var option = {
|
|
|
+ backgroundColor: '#0c1041',
|
|
|
+ // title: {
|
|
|
+ // text: '当天睡眠时间曲线图',
|
|
|
+ // left: 'center',
|
|
|
+ // color: '#ffffff',
|
|
|
+ // backgroundColor: '#ff0000'
|
|
|
+ // },
|
|
|
+ color: ["#62c4d9"],
|
|
|
+ legend: {
|
|
|
+ data: ['睡眠时间'],
|
|
|
+ top: 20,
|
|
|
+ left: 'right',
|
|
|
+ backgroundColor: '#0c1041',
|
|
|
+ textStyle:{
|
|
|
+ color:'#fff',
|
|
|
+ }
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ show: true,
|
|
|
+ trigger: 'axis'
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ axisLine:{
|
|
|
+ lineStyle:{
|
|
|
+ color: '#fff',
|
|
|
+ width:1,//这里是为了突出显示加上的
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ name: "时长" ,
|
|
|
+ x: 'center',
|
|
|
+ type: 'value',
|
|
|
+ axisLine:{
|
|
|
+ lineStyle:{
|
|
|
+ color: '#fff',
|
|
|
+ width:1,//这里是为了突出显示加上的
|
|
|
+ }
|
|
|
+ // splitLine: {
|
|
|
+ // lineStyle: {
|
|
|
+ // type: 'dashed'
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ // show: false
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ name: '睡眠时间',
|
|
|
+ type: 'line',
|
|
|
+ smooth: true,
|
|
|
+ data: data,
|
|
|
+ color: '#62c4d9'
|
|
|
+ }]
|
|
|
+ };
|
|
|
+ chart.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart1(data1,data2) {
|
|
|
+ var option = {
|
|
|
+ // title: {
|
|
|
+ // text: '睡眠心率监测',
|
|
|
+ // left: 'center',
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#ffffff', // 字体颜色
|
|
|
+ // fontStyle: 'normal', // 字体风格
|
|
|
+ // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // fontSize: 18 // 字体大小
|
|
|
+ // },
|
|
|
+ // backgroundColor: '#57f7ff'
|
|
|
+ // },
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000' // 设置 x 轴标签颜色为白色
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '单位:次',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(255, 0, 255, 0.8)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'rgba(255, 85, 127, 0.1)' // 奶白色,80% 透明度
|
|
|
+ // },
|
|
|
+ showSymbol: false, // 是否显示标记图形
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(255, 0, 255, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(255, 0, 255, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ }]
|
|
|
+ };
|
|
|
+ chart1.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function flushChart2(data) {
|
|
|
+ var option = {
|
|
|
+ // title: {
|
|
|
+ // text: '睡眠状态监测',
|
|
|
+ // left: 'center',
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#ffffff', // 字体颜色
|
|
|
+ // fontStyle: 'normal', // 字体风格
|
|
|
+ // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // fontSize: 18 // 字体大小
|
|
|
+ // },
|
|
|
+ // backgroundColor: '#57f7ff'
|
|
|
+ // },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item'
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ orient: 'vertical',
|
|
|
+ left: 'left',
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'pie',
|
|
|
+ radius: '55%',
|
|
|
+ data: data?data:[]
|
|
|
+ }],
|
|
|
+ graphic: [{
|
|
|
+ type: 'text',
|
|
|
+ left: '2%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ top: '84%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ style: {
|
|
|
+ text: '时长(分钟)分析', // 文本内容
|
|
|
+ textFill: '#333', // 文本颜色
|
|
|
+ textFontSize: 14, // 文本字体大小
|
|
|
+ textAlign: 'left', // 文本水平对齐方式
|
|
|
+ verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ };
|
|
|
+ chart2.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart3(data1,data2) {
|
|
|
+ var option = {
|
|
|
+ // title: {
|
|
|
+ // text: '睡眠呼吸监测',
|
|
|
+ // left: 'center',
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#ffffff', // 字体颜色
|
|
|
+ // fontStyle: 'normal', // 字体风格
|
|
|
+ // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // fontSize: 18 // 字体大小
|
|
|
+ // },
|
|
|
+ // backgroundColor: '#57f7ff'
|
|
|
+ // },
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '单位:次',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[]
|
|
|
+ }]
|
|
|
+ };
|
|
|
+ chart3.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart4(data) {
|
|
|
+ var option = {
|
|
|
+ // title: {
|
|
|
+ // text: '睡眠与清醒时间',
|
|
|
+ // left: 'center',
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#ffffff', // 字体颜色
|
|
|
+ // fontStyle: 'normal', // 字体风格
|
|
|
+ // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // fontSize: 18 // 字体大小
|
|
|
+ // },
|
|
|
+ // backgroundColor: '#57f7ff'
|
|
|
+ // },
|
|
|
+ tooltip: {},
|
|
|
+ series: [{
|
|
|
+ type: 'gauge',
|
|
|
+ // 设置刻度盘的最大值
|
|
|
+ max: 24,
|
|
|
+ // 设置刻度盘的最小值
|
|
|
+ min: 0,
|
|
|
+ pointer: {
|
|
|
+ width: 5,
|
|
|
+ // 可以调整第二个指针的样式以区分
|
|
|
+ itemStyle: {
|
|
|
+ color: '#FF0000'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 刻度盘轴
|
|
|
+ axisLine: {
|
|
|
+ textStyle: {
|
|
|
+ fontSize: 14
|
|
|
+ },
|
|
|
+ lineStyle: {
|
|
|
+ width: 30,
|
|
|
+ color: [[0.2, '#80FF80'], [0.8, '#FF8080'], [1, '#8080FF']] // 刻度盘颜色分区
|
|
|
+ },
|
|
|
+ rich: {
|
|
|
+ // 为第一个刻度盘设置刻度颜色
|
|
|
+ '0%': {
|
|
|
+ color: '#FF0000'
|
|
|
+ },
|
|
|
+ '50%': {
|
|
|
+ color: '#00FF00'
|
|
|
+ },
|
|
|
+ '100%': {
|
|
|
+ color: '#0000FF'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ detail: {formatter: '{value} 小时'},
|
|
|
+ data: data?data:{}
|
|
|
+ }
|
|
|
+ // ,{
|
|
|
+ // type: 'gauge',
|
|
|
+ // // 设置刻度盘的最大值
|
|
|
+ // max: 24,
|
|
|
+ // // 设置刻度盘的最小值
|
|
|
+ // min: 0,
|
|
|
+ // // 刻度盘轴
|
|
|
+ // axisLine: {
|
|
|
+ // textStyle: {
|
|
|
+ // fontSize: 14
|
|
|
+ // },
|
|
|
+ // lineStyle: {
|
|
|
+ // width: 30,
|
|
|
+ // color: [[0.2, '#80FF80'], [0.8, '#FF8080'], [1, '#8080FF']] // 刻度盘颜色分区
|
|
|
+ // },
|
|
|
+ // rich: {
|
|
|
+ // // 为第二个刻度盘设置刻度颜色
|
|
|
+ // '0%': {
|
|
|
+ // color: '#FFFF00'
|
|
|
+ // },
|
|
|
+ // '50%': {
|
|
|
+ // color: '#00FFFF'
|
|
|
+ // },
|
|
|
+ // '100%': {
|
|
|
+ // color: '#FF00FF'
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // detail: {formatter: '{value} 小时'},
|
|
|
+ // data: data2?data2:{}
|
|
|
+ // },
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ chart4.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart5(data1,data2,that) {
|
|
|
+ var option = {
|
|
|
+ // title: {
|
|
|
+ // text: '睡眠状态监测',
|
|
|
+ // left: 'center',
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#ffffff', // 字体颜色
|
|
|
+ // fontStyle: 'normal', // 字体风格
|
|
|
+ // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // fontSize: 18 // 字体大小
|
|
|
+ // },
|
|
|
+ // backgroundColor: '#57f7ff'
|
|
|
+ // },
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '单位:次',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLabel: {
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepStateChange(value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[]
|
|
|
+ }]
|
|
|
+ };
|
|
|
+ chart5.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart6(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ var option = {
|
|
|
+ backgroundColor: '#000000', // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '睡眠状态',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLabel: {
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepStateChange(value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ lineStyle: { // 系列级个性化折线样式
|
|
|
+ width: 10,
|
|
|
+ type: 'solid',
|
|
|
+ color: new echarts.graphic.LinearGradient(0, 0.4, 0.7, 1, [{
|
|
|
+ offset: 0,
|
|
|
+ color: '#ffb71b'
|
|
|
+ } , {
|
|
|
+ offset: 0.4,
|
|
|
+ color: '#b75cee'
|
|
|
+ }, {
|
|
|
+ offset: 0.7,
|
|
|
+ color: '#66acfc'
|
|
|
+ }, {
|
|
|
+ offset: 1,
|
|
|
+ color: '#3843fa'
|
|
|
+ }]),//线条渐变色
|
|
|
+ },
|
|
|
+ }
|
|
|
+ // {
|
|
|
+ // name: '分类2',
|
|
|
+ // type: 'line',
|
|
|
+ // data: data2,
|
|
|
+ // lineStyle: { // 系列级个性化折线样式
|
|
|
+ // width: 4,
|
|
|
+ // type: 'solid',
|
|
|
+ // color: new echarts.graphic.LinearGradient(0, 0.4, 0.7, 1, [{
|
|
|
+ // offset: 0,
|
|
|
+ // color: '#ffb71b'
|
|
|
+ // } , {
|
|
|
+ // offset: 0.4,
|
|
|
+ // color: '#b75cee'
|
|
|
+ // }, {
|
|
|
+ // offset: 0.7,
|
|
|
+ // color: '#66acfc'
|
|
|
+ // }, {
|
|
|
+ // offset: 1,
|
|
|
+ // color: '#3843fa'
|
|
|
+ // }]),//线条渐变色
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ ],
|
|
|
+ graphic: [{
|
|
|
+ type: 'text',
|
|
|
+ left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ style: {
|
|
|
+ text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ textFill: '#333', // 文本颜色
|
|
|
+ textFontSize: 14, // 文本字体大小
|
|
|
+ textAlign: 'left', // 文本水平对齐方式
|
|
|
+ verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ type: 'text',
|
|
|
+ right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ style: {
|
|
|
+ text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ textFill: '#333', // 文本颜色
|
|
|
+ textFontSize: 14, // 文本字体大小
|
|
|
+ textAlign: 'right', // 文本水平对齐方式
|
|
|
+ verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ };
|
|
|
+
|
|
|
+ // var list0 = [];
|
|
|
+ // var list10 = [];
|
|
|
+ // var list20 = [];
|
|
|
+ // var list30 = [];
|
|
|
+ // if(data2){
|
|
|
+ // for (let i = 0; i < data2.length; i++) {
|
|
|
+ // if (data2[i] == '0') {
|
|
|
+ // list0.push(data2[i]);
|
|
|
+ // }else if (data2[i] == '10') {
|
|
|
+ // list10.push(data2[i]);
|
|
|
+ // }else if (data2[i] == '20') {
|
|
|
+ // list20.push(data2[i]);
|
|
|
+ // }else if (data2[i] == '30') {
|
|
|
+ // list30.push(data2[i]);
|
|
|
+ // }else{
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // var option = {
|
|
|
+ // xAxis: {
|
|
|
+ // type: 'category',
|
|
|
+ // data: data1
|
|
|
+ // },
|
|
|
+ // yAxis: {
|
|
|
+ // type: 'value',
|
|
|
+ // axisLabel: {
|
|
|
+ // show: true,
|
|
|
+ // position: 'buttom' // 分类标签显示在顶部,相当于曲线下方位置
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // series: [
|
|
|
+ // {
|
|
|
+ // name: '清醒',
|
|
|
+ // type: 'line',
|
|
|
+ // data: list0,
|
|
|
+ // itemStyle: {
|
|
|
+ // areaColor: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [{ offset: 0, color: 'rgba(255, 0, 0, 0.3)' }, { offset: 1, color: 'rgba(255, 0, 0, 0)' }]
|
|
|
+ // )
|
|
|
+ // },
|
|
|
+ // smooth: true,
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'red' // 线条颜色
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: '浅睡',
|
|
|
+ // type: 'line',
|
|
|
+ // data: list10,
|
|
|
+ // itemStyle: {
|
|
|
+ // areaColor: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [{ offset: 0, color: 'rgba(0, 255, 0, 0.3)' }, { offset: 1, color: 'rgba(0, 255, 0, 0)' }]
|
|
|
+ // )
|
|
|
+ // },
|
|
|
+ // smooth: true,
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'green' // 线条颜色
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: '中睡',
|
|
|
+ // type: 'line',
|
|
|
+ // data: list20,
|
|
|
+ // itemStyle: {
|
|
|
+ // areaColor: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [{ offset: 0, color: 'rgba(0, 255, 0, 0.3)' }, { offset: 1, color: 'rgba(0, 255, 0, 0)' }]
|
|
|
+ // )
|
|
|
+ // },
|
|
|
+ // smooth: true,
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'green' // 线条颜色
|
|
|
+ // }
|
|
|
+ // } ,
|
|
|
+ // {
|
|
|
+ // name: '深睡',
|
|
|
+ // type: 'line',
|
|
|
+ // data: list30,
|
|
|
+ // itemStyle: {
|
|
|
+ // areaColor: new echarts.graphic.LinearGradient(
|
|
|
+ // 0, 0, 0, 1,
|
|
|
+ // [{ offset: 0, color: 'rgba(0, 255, 0, 0.3)' }, { offset: 1, color: 'rgba(0, 255, 0, 0)' }]
|
|
|
+ // )
|
|
|
+ // },
|
|
|
+ // smooth: true,
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'green' // 线条颜色
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // // 如果有更多分类,继续添加...
|
|
|
+ // ],
|
|
|
+ // tooltip: {
|
|
|
+ // trigger: 'axis',
|
|
|
+ // axisPointer: {
|
|
|
+ // type: 'cross',
|
|
|
+ // label: {
|
|
|
+ // backgroundColor: '#6a7985'
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime, // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime, // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ // };
|
|
|
+
|
|
|
+ chart6.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart7(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ data1 = (!data1 || data1.length === 0)?['']:data1;
|
|
|
+ data2 = (!data2 || data2.length === 0)?['']:data2;
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: rgba(168, 115, 182, 0.5), // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#a5a5a5' ,// 设置 x 轴标签颜色为白色
|
|
|
+ fontSize: 12,
|
|
|
+ // interval: 0, // 设置为0表示全部显示,设置为非零值表示间隔显示
|
|
|
+ // rotate: 45, // 旋转45度
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1,
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // inverse: true,// 设置 Y 轴逆序
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '离床次数',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ show: true,
|
|
|
+ fontSize: 12,
|
|
|
+ formatter: function (value) {
|
|
|
+ if(value == 0){
|
|
|
+ return '离床';
|
|
|
+ }else if(value == 1){
|
|
|
+ return '在床';
|
|
|
+ }else{
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(222, 222, 222, 0.1)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2,
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(85, 255, 127, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(85, 255, 127, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(85, 255, 127, 0.8)' // 奶白色,80% 透明度
|
|
|
+ },
|
|
|
+ showSymbol: false // 是否显示标记图形
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // graphic: {
|
|
|
+ // type: 'rect',
|
|
|
+ // left: 'center', // 相对于容器左侧的距离
|
|
|
+ // top: 'bottom', // 相对于容器上侧的距离
|
|
|
+ // width: 'auto', // 宽度自适应
|
|
|
+ // height: '10', // 设置你想要的渐变高度
|
|
|
+ // shape: {
|
|
|
+ // // 可以通过 shape 来调整矩形的形状以适应你的需求
|
|
|
+ // },
|
|
|
+ // style: {
|
|
|
+ // fill: {
|
|
|
+ // type: 'linear',
|
|
|
+ // x: 0,
|
|
|
+ // y: 0,
|
|
|
+ // x2: 0,
|
|
|
+ // y2: 1,
|
|
|
+ // colorStops: [{
|
|
|
+ // offset: 0, color: 'rgba(0,0,0,0)' // 开始颜色,透明
|
|
|
+ // }, {
|
|
|
+ // offset: 1, color: 'rgba(255,0,0,0.3)' // 结束颜色,半透明红色
|
|
|
+ // }],
|
|
|
+ // global: false // 缺省为 false
|
|
|
+ // },
|
|
|
+ // // 其他样式配置
|
|
|
+ // },
|
|
|
+ // z: -1 // 设置层级,确保在折线图下方
|
|
|
+ // }
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart7.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart8(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: rgba(168, 115, 182, 0.5), // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000' // 设置 x 轴标签颜色为白色
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '睡眠状态',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepRmove_arrChange(value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(222, 222, 222, 0.1)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(255, 255, 255, 0.8)' // 奶白色,80% 透明度
|
|
|
+ },
|
|
|
+ showSymbol: false, // 是否显示标记图形
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(0, 170, 255, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(0, 170, 255, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ },
|
|
|
+
|
|
|
+ ],
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart8.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart81(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: rgba(168, 115, 182, 0.5), // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000' // 设置 x 轴标签颜色为白色
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '呼吸平均值',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ // formatter: function (value) {
|
|
|
+ // return that.sleepRmove_arrChange(value);
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(222, 222, 222, 0.1)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(0, 182, 182, 0.8)' // 奶白色,80% 透明度
|
|
|
+ },
|
|
|
+ showSymbol: false ,// 是否显示标记图形
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(0, 182, 182, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(0, 182, 182, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart81.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart9(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: rgba(168, 115, 182, 0.5), // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000' // 设置 x 轴标签颜色为白色
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '睡眠状态',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepRsnoring_arrChange(value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(222, 222, 222, 0.1)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(255, 170, 127, 0.8)' // 奶白色,80% 透明度
|
|
|
+ },
|
|
|
+ showSymbol: false ,// 是否显示标记图形
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(255, 170, 127, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(255, 170, 127, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart9.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart10(data1,data2,startSleepTime,endSleepTime,that) {
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: rgba(168, 115, 182, 0.5), // 设置背景色
|
|
|
+ tooltip: {},
|
|
|
+ xAxis: {
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000' // 设置 x 轴标签颜色为白色
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false, // 是否显示刻度线
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ // 不显示X轴轴线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ // Y 轴配置
|
|
|
+ type: 'value',
|
|
|
+ // 设置 Y 轴名称
|
|
|
+ name: '睡眠状态',
|
|
|
+ // 设置 Y 轴名称的位置
|
|
|
+ nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ axisLine: {
|
|
|
+ // 不显示Y轴轴线
|
|
|
+ show: false,
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ // 不显示Y轴刻度线
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepRhxstop_arrChange(value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(222, 222, 222, 0.1)', // 灰色并调整透明度
|
|
|
+ width: 1, // 刻度线宽度
|
|
|
+ type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [{
|
|
|
+ type: 'line',
|
|
|
+ data: data2?data2:[],
|
|
|
+ lineStyle: {
|
|
|
+ color: 'rgba(0, 85, 255, 0.8)' // 奶白色,80% 透明度
|
|
|
+ },
|
|
|
+ showSymbol: false ,// 是否显示标记图形
|
|
|
+ smooth: true, // 使折线平滑
|
|
|
+ markPoint: {
|
|
|
+ symbol: 'circle', // 标记的符号为圆圈
|
|
|
+ symbolSize: 10, // 标记的大小
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(0, 85, 255, 0.8)',
|
|
|
+ // borderColor: 'blue',
|
|
|
+ borderWidth: 1, // 设置边框宽度
|
|
|
+ fill: 'none' // 设置填充颜色为无,即空心
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ // 假设 data[0] 和 data[data.length - 1] 分别是开始和结束的数据点
|
|
|
+ {coord: [data1?data1[0]:'', data2?data2[0]:''], name: '开始'},
|
|
|
+ {coord: [data1?data1[data1.length-1]:'', data2?data2[data2.length-1]:''], name: '结束'}
|
|
|
+ // 如果要添加拐角处的标记,需要手动计算并添加
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ areaStyle: { // 折线下方的区域样式
|
|
|
+ color: new echarts.graphic.LinearGradient(
|
|
|
+ 0, 0, 0, 1, // 渐变方向
|
|
|
+ [ // 渐变颜色
|
|
|
+ {offset: 0, color: 'rgba(0, 85, 255, 0.8)'}, // 使用之前定义的渐变
|
|
|
+ {offset: 0.9, color: 'rgba(255, 255, 255, 1)'} // 可选,结束颜色
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ opacity: 0.3 // 区域的不透明度,可以根据需要调整
|
|
|
+ },
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ // graphic: [{
|
|
|
+ // type: 'text',
|
|
|
+ // left: '5%', // 文本水平位置,这里设置为居中,你可以根据需要调整
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离顶部 10% 的位置,作为左下方的文本
|
|
|
+ // style: {
|
|
|
+ // text: '入睡时间:'+startSleepTime?startSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'left', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }, {
|
|
|
+ // type: 'text',
|
|
|
+ // right: '5%', // 文本水平位置,这里设置为距离右侧 10% 的位置,作为右下方的文本
|
|
|
+ // top: '90%', // 文本垂直位置,这里设置为距离底部 10% 的位置
|
|
|
+ // style: {
|
|
|
+ // text: '醒来时间:'+endSleepTime?endSleepTime:'', // 文本内容
|
|
|
+ // textFill: '#333', // 文本颜色
|
|
|
+ // textFontSize: 14, // 文本字体大小
|
|
|
+ // textAlign: 'right', // 文本水平对齐方式
|
|
|
+ // verticalAlign: 'middle' // 文本垂直对齐方式
|
|
|
+ // }
|
|
|
+ // }],
|
|
|
+ };
|
|
|
+
|
|
|
+ chart10.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+function flushChart11(data1,data2,that) {
|
|
|
+ // data2 = data2?data2.map(value => {
|
|
|
+ // return value+10;
|
|
|
+ // }):[];
|
|
|
+ let adjustedData = data2?data2.map(value => {
|
|
|
+ return 10;
|
|
|
+ }):[];
|
|
|
+ // var option = {
|
|
|
+ // // title: {
|
|
|
+ // // text: '睡眠呼吸监测',
|
|
|
+ // // left: 'center',
|
|
|
+ // // textStyle: {
|
|
|
+ // // color: '#ffffff', // 字体颜色
|
|
|
+ // // fontStyle: 'normal', // 字体风格
|
|
|
+ // // // fontWeight: 'bold', // 字体粗细
|
|
|
+ // // fontFamily: 'sans-serif', // 字体族
|
|
|
+ // // fontSize: 18 // 字体大小
|
|
|
+ // // },
|
|
|
+ // // backgroundColor: '#57f7ff'
|
|
|
+ // // },
|
|
|
+ // // grid: {
|
|
|
+ // // top: '10%',
|
|
|
+ // // height: '30%',
|
|
|
+ // // },
|
|
|
+ // tooltip: {},
|
|
|
+ // xAxis: {
|
|
|
+ // type: 'category',
|
|
|
+ // axisLabel: {
|
|
|
+ // color: 'rgba(0, 0, 0, 0.8)' // 设置 x 轴标签颜色为白色
|
|
|
+ // },
|
|
|
+ // axisTick: {
|
|
|
+ // // 不显示Y轴刻度线
|
|
|
+ // show: false
|
|
|
+ // },
|
|
|
+ // axisLine: {
|
|
|
+ // // 不显示X轴轴线
|
|
|
+ // show: false
|
|
|
+ // },
|
|
|
+ // splitLine: {
|
|
|
+ // show: false, // 是否显示刻度线
|
|
|
+ // },
|
|
|
+ // data: data1?data1:[]
|
|
|
+ // },
|
|
|
+ // yAxis: {
|
|
|
+ // // Y 轴配置
|
|
|
+ // type: 'value',
|
|
|
+ // // 设置 Y 轴名称
|
|
|
+ // name: '睡眠状态',
|
|
|
+ // // 设置 Y 轴名称的位置
|
|
|
+ // nameLocation: 'end', // 可以是 'start'、'middle' 或 'end'
|
|
|
+ // axisLine: {
|
|
|
+ // // 不显示Y轴轴线
|
|
|
+ // show: false,
|
|
|
+ // },
|
|
|
+ // axisTick: {
|
|
|
+ // // 不显示Y轴刻度线
|
|
|
+ // show: false
|
|
|
+ // },
|
|
|
+ // axisLabel: {
|
|
|
+ // color: '#000',
|
|
|
+ // formatter: function (value) {
|
|
|
+ // return that.sleepStateChange(value);
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // splitLine: {
|
|
|
+ // show: false ,// 不显示纵坐标轴的刻度线
|
|
|
+ // lineStyle: {
|
|
|
+ // color: 'rgba(0, 170, 255, 0.9)', // 灰色并调整透明度
|
|
|
+ // width: 1, // 刻度线宽度
|
|
|
+ // type: 'solid' // 刻度线类型,默认为实线
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // series: [{
|
|
|
+ // type: 'bar',
|
|
|
+ // data: data2?data2:[],
|
|
|
+ // // barCategoryGap: '50%', // 类别间柱形距离
|
|
|
+ // // label: {
|
|
|
+ // // show: true,
|
|
|
+ // // position: 'top',
|
|
|
+ // // formatter: '{b}: {c}'
|
|
|
+ // // },
|
|
|
+ // stack: 'stackGroup',
|
|
|
+ // itemStyle: {
|
|
|
+ // color: 'rgba(0,0,0,0)' // 透明颜色
|
|
|
+ // },
|
|
|
+ // // itemStyle: {
|
|
|
+ // // color: function(params) {
|
|
|
+ // // // 根据数据或其他条件返回颜色值
|
|
|
+ // // // 这里只是简单地返回了一个颜色数组中的颜色
|
|
|
+ // // // var colorList = ['#c23531','#2f4554','#61a0a8','#d48265','#91c7ae','#749f83','#ca8622','#bda29a','#6e7074','#546570','#c4ccd3'];
|
|
|
+ // // if(params.value == '0'){
|
|
|
+ // // return '#e2e2e2'
|
|
|
+ // // }else if(params.value == '10'){
|
|
|
+ // // return '#8cc4ff'
|
|
|
+ // // }else if(params.value == '20'){
|
|
|
+ // // return '#a6b2ff'
|
|
|
+ // // }else if(params.value == '30'){
|
|
|
+ // // return '#9b79ff'
|
|
|
+ // // }else{
|
|
|
+ // // return '';
|
|
|
+ // // }
|
|
|
+ // // // return colorList[params.dataIndex % colorList.length];
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // }]
|
|
|
+ // };
|
|
|
+
|
|
|
+ var option = {
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ data: data1?data1:[]
|
|
|
+ },
|
|
|
+ yAxis: {
|
|
|
+ type: 'value',
|
|
|
+ min: 0, // 确保 Y 轴从 0 开始
|
|
|
+ // max 可以根据需要设置,但通常不需要为了固定柱子高度而设置
|
|
|
+ axisLabel: {
|
|
|
+ color: '#000',
|
|
|
+ formatter: function (value) {
|
|
|
+ return that.sleepStateChange(value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ // 透明柱子,占满整个柱子空间
|
|
|
+ {
|
|
|
+ data: data2?data2:[],
|
|
|
+ type: 'bar',
|
|
|
+ stack: 'stackGroup',
|
|
|
+ itemStyle: {
|
|
|
+ color: 'rgba(0,0,0,0)' // 透明颜色
|
|
|
+ },
|
|
|
+ barGap: '-100%', // 设置柱子间距为负值,让柱子紧挨在一起
|
|
|
+ barMaxWidth: '30px' // 根据需要调整柱子宽度
|
|
|
+ },
|
|
|
+ // 有色柱子,只显示上半部分(固定高度)
|
|
|
+ {
|
|
|
+ data: adjustedData, // 固定高度数据
|
|
|
+ type: 'bar',
|
|
|
+ stack: 'stackGroup', // 与透明系列使用相同的叠加组名
|
|
|
+ itemStyle: {
|
|
|
+ color: function(params) {
|
|
|
+ console.log('params='+JSON.stringify(params))
|
|
|
+ if(data2 && data2[params.dataIndex] == 0){
|
|
|
+ return '#e2e2e2'
|
|
|
+ }else if(data2 && data2[params.dataIndex] == 10){
|
|
|
+ return '#d8c6ff'
|
|
|
+ }else if(data2 && data2[params.dataIndex] == 20){
|
|
|
+ return '#c6b3ff'
|
|
|
+ }else if(data2 && data2[params.dataIndex] == 30){
|
|
|
+ return '#b090ff'
|
|
|
+ }else{
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ barGap: '-100%', // 保持与透明系列相同的柱子间距
|
|
|
+ barMaxWidth: '30px' // 保持与透明系列相同的宽度
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ chart11.setOption(option, true);
|
|
|
+}
|
|
|
+
|
|
|
+var homeApi = "https://haold.aidsleep.cn";
|
|
|
+var homeApi_http = "http://haold.aidsleep.cn";
|
|
|
+var homeApi_http_port = "8123";
|
|
|
+var homeApi_https = "https://haold.aidsleep.cn";
|
|
|
+const aipushApi = "https://aipush.aidsleep.cn";
|
|
|
+const token_15 = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiN2JlOGE0MDExZjY0NjA2OGUxYjJiZTE4M2Y2NzU0NSIsImlhdCI6MTcxMTYxNDY2NCwiZXhwIjoyMDI2OTc0NjY0fQ.XJ73cXAoEsouTgvgpNVobq9oKdwlJr88TiAFLYlaahE";
|
|
|
+var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJlZGVjOWI3YWQ0MTQ0ZTIxYWQ1NTE1Nzc5NTkzNjBjNiIsImlhdCI6MTcxMjEzNTM2MywiZXhwIjoyMDI3NDk1MzYzfQ.IfrvdiaVuhCKsdy69JvUYhJ64bnhMT8MI1hN8R38whc";
|
|
|
+const token_push = "b74fd5754c5ef24cf600c39194abdaeb";
|
|
|
+
|
|
|
+Page({
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面的初始数据
|
|
|
+ */
|
|
|
+ data: {
|
|
|
+ header: false,
|
|
|
+ nowDate: [{ //日历的初始化数据
|
|
|
+ month: 'current',
|
|
|
+ day: new Date().getDate(),
|
|
|
+ color: '#ffd700',
|
|
|
+ background: 'white'
|
|
|
+ }],
|
|
|
+ total1: 0,
|
|
|
+ total2: 0,
|
|
|
+ total3: 0,
|
|
|
+ temArr: [],
|
|
|
+ humArr: [],
|
|
|
+ clickDate: "",
|
|
|
+ status: "",
|
|
|
+
|
|
|
+ isShow: false,
|
|
|
+
|
|
|
+ year: addZero(new Date().getFullYear()),
|
|
|
+ month: addZero(new Date().getMonth()),
|
|
|
+ date: addZero(new Date().getDate()),
|
|
|
+ hours: addZero(new Date().getHours()),
|
|
|
+
|
|
|
+ moke_data: {
|
|
|
+ "20240414": [
|
|
|
+ {
|
|
|
+ sleepAllTime: 902,
|
|
|
+ sleepFeedback: "很好"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ sleepAllTime: 222,
|
|
|
+ sleepFeedback: "疲惫"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "20240415": [
|
|
|
+ {
|
|
|
+ sleepAllTime: 902,
|
|
|
+ sleepFeedback: "很好"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ sleepAllTime: 222,
|
|
|
+ sleepFeedback: "疲惫"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ sleepAllTime: 902,
|
|
|
+ sleepFeedback: "很好"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ sleepAllTime: 222,
|
|
|
+ sleepFeedback: "疲惫"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ sleepAllTime: 902,
|
|
|
+ sleepFeedback: "很好"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ rdt_arr: [],
|
|
|
+ rrh_arr: [],
|
|
|
+ rhx_arr: [],
|
|
|
+ rsnoring_arr: [],
|
|
|
+ routbed_arr: [],
|
|
|
+ rmove_arr: [],
|
|
|
+ rhxstop_arr: [],
|
|
|
+ rsleep_arr: [],
|
|
|
+
|
|
|
+ rdt_arrNew:[],//睡眠时间轴数据集合
|
|
|
+ rrh_arrNew:[],//睡眠心率数据集合
|
|
|
+ rhx_arrNew:[],//睡眠呼吸数据集合
|
|
|
+ rmove_arrNew:[],//体动状态数据集合,0-否,1-体动状态
|
|
|
+ rsleep_arrNew:[],//睡眠状态数据集合,0-清醒,10-浅睡,20-中睡,30-深睡
|
|
|
+ rsleep_arr_all_New:[],//睡眠状态数据集合,0-清醒,10-浅睡,20-中睡,30-深睡
|
|
|
+ durationData:[], //睡眠时长
|
|
|
+ sleep_duration:[], //睡眠和清醒对比
|
|
|
+
|
|
|
+ rdeep_duration: 0,
|
|
|
+ rlight_duration: 0,
|
|
|
+ rin_duration: 0,
|
|
|
+ rawake_duration: 0,
|
|
|
+
|
|
|
+ rrs_duration: 0,//入睡时长
|
|
|
+ routbed_count_value: 0,//离床次数
|
|
|
+ rsleep_eff_value: '',//睡眠效率
|
|
|
+
|
|
|
+ rdeep_durationFormat: '',
|
|
|
+ rlight_durationFormat: '',
|
|
|
+ rin_durationFormat: '',
|
|
|
+ rawake_durationFormat: '',
|
|
|
+
|
|
|
+ ravg_hx_value: 0,
|
|
|
+ ravg_hx_desc: '',
|
|
|
+ ravg_rh_value: 0,
|
|
|
+ ravg_rh_desc: '',
|
|
|
+ rscore_value: 0,
|
|
|
+ rscore_desc: '',
|
|
|
+
|
|
|
+ sleep_efficiency: '',//睡眠效率
|
|
|
+
|
|
|
+ zdTime: ["00:00","01:00","02:00","03:00","04:00","05:00",
|
|
|
+ ,"06:00","07:00","08:00","09:00","10:00","11:00"
|
|
|
+ ,"12:00","13:00","14:00","15:00","16:00","17:00"
|
|
|
+ ,"18:00","19:00","20:00","21:00","22:00","23:00"],
|
|
|
+ zdPoint: [],
|
|
|
+ percentage: 75, // 初始百分比值
|
|
|
+
|
|
|
+ canvasWidth: 0,
|
|
|
+ canvasHeight: 0,
|
|
|
+
|
|
|
+ rsn: '',
|
|
|
+ rdate: '',
|
|
|
+ rtotal_duration: 0,
|
|
|
+ rinbed_duration: 0,
|
|
|
+ rgobed_time: 0,
|
|
|
+ routbed_time: 0,
|
|
|
+ rgobed_routbed: 0,
|
|
|
+ sleepHourSub: 0,
|
|
|
+ routbed_count_value: 0,
|
|
|
+ isButtonClicked: false, // 用来控制按钮是否被点击的标记
|
|
|
+ home_room: [
|
|
|
+ 'company_laboratory',
|
|
|
+ '2802',
|
|
|
+ ],
|
|
|
+ isButtonPressed: false, // 用来标记按钮是否被按下
|
|
|
+ reportDate: '',
|
|
|
+ currentDate: '',
|
|
|
+ currentTime: '',
|
|
|
+ rmove_arrFrequency: 0,//体动次数
|
|
|
+ routbed_arrFrequency: 0,//离床次数
|
|
|
+ rsnoring_arrFrequency: 0,//打鼾次数
|
|
|
+ rhxstop_arrFrequency: 0,//呼吸暂停次数
|
|
|
+ sleep_durationCountA: 0,//睡眠时间
|
|
|
+ sns: [],
|
|
|
+ tvEntityIds: [],
|
|
|
+ ifOneMoreTV: false,//数据推送是否有多于一台电视
|
|
|
+ selectedValue: '', // 用于存储选中的值
|
|
|
+ tvEntityIdsValue: '', // 用于存储选中的值
|
|
|
+ selectedIndex: 0, // 默认选中第一个选项
|
|
|
+ tvEntityIdsIndex: 0, // 默认选中第一个选项
|
|
|
+ hotelcode: '',//酒店编码
|
|
|
+ roomcode: '',//房间编码
|
|
|
+
|
|
|
+ rdeep_duration_efficiency: '',//深睡比例
|
|
|
+ rlight_duration_efficiency: '',//浅睡比例
|
|
|
+ rin_duration_efficiency: '',//中睡比例
|
|
|
+ isLoading: false,
|
|
|
+
|
|
|
+ ec7: '',
|
|
|
+ width7: '',
|
|
|
+ height7: '',
|
|
|
+
|
|
|
+ ec8: '',
|
|
|
+ width8: '',
|
|
|
+ height8: '',
|
|
|
+
|
|
|
+ ec1: '',
|
|
|
+ width1: '',
|
|
|
+ height1: '',
|
|
|
+
|
|
|
+ ec81: '',
|
|
|
+ width81: '',
|
|
|
+ height81: '',
|
|
|
+
|
|
|
+ ec9: '',
|
|
|
+ width9: '',
|
|
|
+ height9: '',
|
|
|
+
|
|
|
+ ec10: '',
|
|
|
+ width10: '',
|
|
|
+ height10: '',
|
|
|
+
|
|
|
+ ec11: '',
|
|
|
+ width11: '',
|
|
|
+ height11: '',
|
|
|
+ flushChart00Flag:false,
|
|
|
+ arrayFourth: [ [], []],//多级选择数组
|
|
|
+ valueFourth: [0, 0],//多级选择结果index
|
|
|
+ sourceFourth: [
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ text: '2024-05-24',
|
|
|
+ children: [{
|
|
|
+ id: 1,
|
|
|
+ text: '01:01~01:20',
|
|
|
+ reportId: '11111',
|
|
|
+ }, {
|
|
|
+ id: 2,
|
|
|
+ text: '03:05~04:20',
|
|
|
+ reportId: '22222',
|
|
|
+ }, {
|
|
|
+ id: 3,
|
|
|
+ text: '05:21~07:20',
|
|
|
+ reportId: '33333',
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ text: '2024-05-23',
|
|
|
+ children: [{
|
|
|
+ id: 3,
|
|
|
+ text: '00:01~03:20',
|
|
|
+ reportId: '454545',
|
|
|
+ }, {
|
|
|
+ id: 4,
|
|
|
+ text: '00:03~06:20',
|
|
|
+ reportId: '66666',
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ ],//后台读取的所及数据源
|
|
|
+ reportId: '',
|
|
|
+ hotelname: '',
|
|
|
+ roomname: '',
|
|
|
+ pushReportId: '',//推送用:reportId
|
|
|
+ },
|
|
|
+ //点击确定选择结果时,保存结果
|
|
|
+ bindMultiPickerChange: function (e) {
|
|
|
+ var result = e.detail.value;
|
|
|
+ var data = this.data.sourceFourth;
|
|
|
+ console.info('result='+result);
|
|
|
+ console.info('result[0]='+result[0]);
|
|
|
+ console.info('data[result[0]].text='+data[Number(result[0])].text);
|
|
|
+ console.info('data[result[0]].children[result[1]].text='+data[Number(result[0])].children[Number(result[1])].text);
|
|
|
+ this.setData({
|
|
|
+ reportDate: data[Number(result[0])].text,
|
|
|
+ rgobed_routbed: data[Number(result[0])].children[Number(result[1])].text,
|
|
|
+ reportId: data[Number(result[0])].children[Number(result[1])].reportId,
|
|
|
+ });
|
|
|
+ this.onPickerDateTimeChange(this.data.reportId);
|
|
|
+ },
|
|
|
+ //选择列变更时,处理下级数组变更
|
|
|
+ bindMultiPickerColumnChange: function (e) {
|
|
|
+ var column = e.detail.column;
|
|
|
+ var index = e.detail.value;
|
|
|
+ var array = this.data.arrayFourth;
|
|
|
+
|
|
|
+ if (column == 0) {
|
|
|
+ array[1] = array[column][index].children;
|
|
|
+ this.setData({
|
|
|
+ arrayFourth: array
|
|
|
+ });
|
|
|
+ } else if (column == 1) {
|
|
|
+ //最后一列不处理
|
|
|
+ }
|
|
|
+ },
|
|
|
+ drawCircle: function() {
|
|
|
+ // 创建 canvas 上下文
|
|
|
+ const ctx = wx.createCanvasContext('myCanvas');
|
|
|
+
|
|
|
+ // 设置圆环的颜色和样式
|
|
|
+ ctx.setStrokeStyle('green'); // 圆环的颜色
|
|
|
+ ctx.setLineWidth(20); // 圆环的宽度
|
|
|
+
|
|
|
+ // 绘制外圆
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(80, 80, 50, 0, 2 * Math.PI); // 圆心 (100, 100),半径 100
|
|
|
+ ctx.stroke(); // 绘制外圆
|
|
|
+
|
|
|
+ // 绘制内圆(与外圆同圆心,但半径小20rpx,即80rpx)
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(80, 80, 50, 0, 2 * Math.PI);
|
|
|
+ ctx.setFillStyle('white'); // 设置内圆的填充颜色为白色(或者透明,取决于你希望的效果)
|
|
|
+ ctx.fill(); // 填充内圆,这样圆环内部就是白色或透明的了
|
|
|
+
|
|
|
+ // 结束绘制并更新 canvas
|
|
|
+ ctx.draw();
|
|
|
+ },
|
|
|
+ startInterval: function () {
|
|
|
+ // 使用 setInterval 创建定时任务,每8秒执行一次 this.myMethod 方法
|
|
|
+ var that = this;
|
|
|
+ this.intervalId = setInterval(() => {
|
|
|
+ console.log(Date.now());
|
|
|
+ }, 6000);
|
|
|
+ },
|
|
|
+ clearInterval: function () {
|
|
|
+ // 清除定时任务
|
|
|
+ if (this.intervalId) {
|
|
|
+ clearInterval(this.intervalId);
|
|
|
+ this.intervalId = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ tvEntityIdsChange: function(e) {
|
|
|
+ var that = this;
|
|
|
+ console.log('this.data.tvEntityIds_tv='+JSON.stringify(this.data.tvEntityIds))
|
|
|
+ var selectedOption = this.data.tvEntityIds[e.detail.value];
|
|
|
+ console.log('selectedOption_tv='+JSON.stringify(selectedOption))
|
|
|
+ if(!this.data.tvEntityIds || !selectedOption){
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择需要推送的电视',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ tvEntityIdsIndex: e.detail.value,
|
|
|
+ tvEntityIdsValue: selectedOption.friendly_name1,
|
|
|
+ });
|
|
|
+ this.telScreeProjection(selectedOption.entity_id);
|
|
|
+ },
|
|
|
+ tvEntityIdChange: function(e) {
|
|
|
+ this.telScreeProjection();
|
|
|
+ },
|
|
|
+ onPickerChange: function(e) {
|
|
|
+ var that = this;
|
|
|
+ var selectedOption = this.data.sns[e.detail.value];
|
|
|
+ this.setData({
|
|
|
+ selectedIndex: e.detail.value,
|
|
|
+ selectedValue: selectedOption.pos,
|
|
|
+ rsn: selectedOption.sn,
|
|
|
+ });
|
|
|
+ console.log("e.detail.value="+e.detail.value);
|
|
|
+ console.log("selectedOption="+JSON.stringify(selectedOption));
|
|
|
+ this.getData(selectedOption.sn,this.data.hotelcode,this.data.roomcode,null);
|
|
|
+
|
|
|
+ //-----
|
|
|
+
|
|
|
+ //-----
|
|
|
+
|
|
|
+ this.selectComponent('#mychart-dom-bar00').init((canvas, width, height) => {
|
|
|
+ that.initChart00(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar7').init((canvas, width, height) => {
|
|
|
+ that.initChart7(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar8').init((canvas, width, height) => {
|
|
|
+ that.initChart8(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar1').init((canvas, width, height) => {
|
|
|
+ that.initChart1(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar81').init((canvas, width, height) => {
|
|
|
+ that.initChart81(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar9').init((canvas, width, height) => {
|
|
|
+ that.initChart9(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar10').init((canvas, width, height) => {
|
|
|
+ that.initChart10(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar11').init((canvas, width, height) => {
|
|
|
+ that.initChart11(canvas, width, height,null)
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onPickerDateTimeChange: function(reportId) {
|
|
|
+ var that = this;
|
|
|
+ // var selectedOption = this.data.sns[e.detail.value];
|
|
|
+ // this.setData({
|
|
|
+ // selectedIndex: e.detail.value,
|
|
|
+ // selectedValue: selectedOption.pos,
|
|
|
+ // rsn: selectedOption.sn,
|
|
|
+ // });
|
|
|
+ // console.log("e.detail.value="+e.detail.value);
|
|
|
+ // console.log("selectedOption="+JSON.stringify(selectedOption));
|
|
|
+ this.getData(that.data.sn,this.data.hotelcode,this.data.roomcode,reportId);
|
|
|
+ this.selectComponent('#mychart-dom-bar00').init((canvas, width, height) => {
|
|
|
+ that.initChart00(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar7').init((canvas, width, height) => {
|
|
|
+ that.initChart7(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar8').init((canvas, width, height) => {
|
|
|
+ that.initChart8(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar1').init((canvas, width, height) => {
|
|
|
+ that.initChart1(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar81').init((canvas, width, height) => {
|
|
|
+ that.initChart81(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar9').init((canvas, width, height) => {
|
|
|
+ that.initChart9(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar10').init((canvas, width, height) => {
|
|
|
+ that.initChart10(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ this.selectComponent('#mychart-dom-bar11').init((canvas, width, height) => {
|
|
|
+ that.initChart11(canvas, width, height,reportId)
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onButtonTap: function() {
|
|
|
+ // 切换按钮的样式类
|
|
|
+ this.setData({
|
|
|
+ isButtonPressed: !this.data.isButtonPressed
|
|
|
+ });
|
|
|
+ },
|
|
|
+ dayClick(event) { //日历点击选择日期
|
|
|
+ var that = this;
|
|
|
+ var clickDate = String(event.detail.year) + addZero(event.detail.month) + addZero(event.detail.day)
|
|
|
+ // that.getTargetData(clickDate)
|
|
|
+ console.log("change date", that.data.target_sleep_list)
|
|
|
+ flushChart(that.data.target_sleep_list)
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ nowDate: [{
|
|
|
+ month: 'current',
|
|
|
+ day: event.detail.day,
|
|
|
+ color: 'white',
|
|
|
+ background: '#82d5f8'
|
|
|
+ }, {
|
|
|
+ month: 'current',
|
|
|
+ day: new Date().getDate(),
|
|
|
+ color: '#ffd700',
|
|
|
+ background: 'white'
|
|
|
+ }],
|
|
|
+ clickDate: clickDate,
|
|
|
+ ec: {
|
|
|
+ onInit: that.construct_sleep_plot
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ getTargetData(date) {
|
|
|
+ var that = this;
|
|
|
+ var sleep_data = wx.getStorageSync("sleep_data")
|
|
|
+ console.log("find date is", date)
|
|
|
+ if (sleep_data || that.data.moke_data){
|
|
|
+ if (date == "20240414" || date == "20240415"){
|
|
|
+ var parse_sleep_data = that.data.moke_data[date]
|
|
|
+ }else{
|
|
|
+ var parse_sleep_data = JSON.parse(sleep_data)[date]
|
|
|
+ }
|
|
|
+ var sleep_cnt = 0
|
|
|
+ if (parse_sleep_data){
|
|
|
+ sleep_cnt = parse_sleep_data.length;
|
|
|
+ }
|
|
|
+ var sleep_time = 0.0;
|
|
|
+ var sleep_desc = "";
|
|
|
+ var sleep_tj_map = {
|
|
|
+ '早醒': 0,
|
|
|
+ '疲惫': 0,
|
|
|
+ '多梦': 0,
|
|
|
+ '很好': 0
|
|
|
+ };
|
|
|
+ var slepp_sugg = "";
|
|
|
+ var target_sleep_list = [];
|
|
|
+ for (var i in parse_sleep_data){
|
|
|
+ var fix_sleep_tm = (parse_sleep_data[i].sleepAllTime / 60).toFixed(1);
|
|
|
+ sleep_time += parseFloat(fix_sleep_tm);
|
|
|
+ sleep_tj_map[parse_sleep_data[i].sleepFeedback] += 1
|
|
|
+ target_sleep_list.push(parseFloat(fix_sleep_tm))
|
|
|
+ }
|
|
|
+
|
|
|
+ for(var j in sleep_tj_map){
|
|
|
+ if (sleep_tj_map[j] > 0){
|
|
|
+ sleep_desc += j + String(sleep_tj_map[j]) + " 次."
|
|
|
+ }
|
|
|
+ }
|
|
|
+ switch (sleep_cnt) {
|
|
|
+ case 5:
|
|
|
+ slepp_sugg = "继续保持睡前良好状态";
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ slepp_sugg = "学会释放工作压力";
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ slepp_sugg = "睡前一小时不要进行有氧运动";
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ slepp_sugg = "睡前尽量不要摄入高热量餐饮";
|
|
|
+ break;
|
|
|
+ case 0:
|
|
|
+ slepp_sugg = "还未产生睡眠报告";
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ slepp_sugg = "做一些助眠工作";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ data_dispaly: true,
|
|
|
+ sleep_cnt: sleep_cnt,
|
|
|
+ sleep_time: sleep_time.toFixed(1),
|
|
|
+ sleep_desc: sleep_desc,
|
|
|
+ slepp_sugg: slepp_sugg,
|
|
|
+ target_sleep_list: target_sleep_list,
|
|
|
+ ec0: {onInit: target_sleep_list},
|
|
|
+ ec: {onInit: target_sleep_list},
|
|
|
+ ec1: {onInit: target_sleep_list},
|
|
|
+ ec2: {onInit: target_sleep_list},
|
|
|
+ ec3: {onInit: target_sleep_list},
|
|
|
+ ec4: {onInit: target_sleep_list},
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+initChart000(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ chart000 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart000);
|
|
|
+ flushChart000();
|
|
|
+ },
|
|
|
+
|
|
|
+initChart00(canvas, width, height,reportId){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {
|
|
|
+ // "hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ // "roomcode":that.data.hotelcode?that.data.roomcode:"nuange",
|
|
|
+ "hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ console.log("res.data=sn="+JSON.stringify(res.data));
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {
|
|
|
+ "sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "rpids":reportId,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let rscore_descTemp = [];
|
|
|
+ if(ress.data.results.rscore_desc){
|
|
|
+ rscore_descTemp = ress.data.results.rscore_desc;
|
|
|
+ }
|
|
|
+ let rscore_valueTemp = [];
|
|
|
+ if(ress.data.results.rscore_value){
|
|
|
+ rscore_valueTemp = ress.data.results.rscore_value;
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ rscore_desc:rscore_descTemp,
|
|
|
+ rscore_value:rscore_valueTemp,
|
|
|
+ });
|
|
|
+ chart00 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart00);
|
|
|
+ flushChart00(rscore_descTemp,rscore_valueTemp,that);
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ // console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ // console.log("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart0(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ chart0 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart0);
|
|
|
+ var percentage = parseFloat(that.data.percentage)
|
|
|
+ var unPercentage = 100-percentage;
|
|
|
+ var percentages = []
|
|
|
+ var obj = {};
|
|
|
+ obj.name = '已完成';
|
|
|
+ obj.value = percentage;
|
|
|
+ percentages.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '未完成';
|
|
|
+ obj.value = unPercentage;
|
|
|
+ percentages.push(obj);
|
|
|
+ console.log("that.data.rdt_arrNew,that.data.rrh_arrNew="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ flushChart0(percentages);
|
|
|
+ },
|
|
|
+
|
|
|
+ initChart(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ chart = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart);
|
|
|
+ flushChart(that.data.target_sleep_list)
|
|
|
+ },
|
|
|
+
|
|
|
+ initChart1(canvas, width, height,reportId){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {
|
|
|
+ // "hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ // "roomcode":that.data.hotelcode?that.data.roomcode:"nuange",
|
|
|
+ "hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ console.log("res.data=sn="+JSON.stringify(res.data));
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {
|
|
|
+ "sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let rdt_arrTemp = [];
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rdt_arrTemp = that.splitN(ress.data.results.rdt_arr.split(","),100);
|
|
|
+ }
|
|
|
+ if(ress.data.results.rdate){
|
|
|
+ that.setData({
|
|
|
+ reportDate: ress.data.results.rdate
|
|
|
+ });
|
|
|
+ }
|
|
|
+ let rrh_arrTemp = [];
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rrh_arrTemp = that.splitN(ress.data.results.rrh_arr.split(","),100);
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ rdt_arrNew:rdt_arrTemp,
|
|
|
+ rrh_arrNew:rrh_arrTemp,
|
|
|
+ });
|
|
|
+ chart1 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ // console.log("plot in ......")
|
|
|
+ canvas.setChart(chart1);
|
|
|
+ console.log("that.data.rdt_arrNew,that.data.rrh_arrNew="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ flushChart1(that.data.rdt_arrNew,that.data.rrh_arrNew);
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ // console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ // console.log("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart2(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress&&ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let durationDataTemp = [];
|
|
|
+ let obj = {};
|
|
|
+ obj.name = '深睡';
|
|
|
+ obj.value = ress.data.results.rdeep_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '中睡';
|
|
|
+ obj.value = ress.data.results.rin_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '浅睡';
|
|
|
+ obj.value = ress.data.results.rlight_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '清醒';
|
|
|
+ obj.value = ress.data.results.rawake_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ console.log("durationDataTemp="+JSON.stringify(durationDataTemp));
|
|
|
+ that.setData({
|
|
|
+ durationData:durationDataTemp,
|
|
|
+ });
|
|
|
+ chart2 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ // console.log("plot in ......")
|
|
|
+ canvas.setChart(chart2);
|
|
|
+ flushChart2(that.data.durationData)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ // console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ // console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart3(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let rdt_arrTemp = [];
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rdt_arrTemp = that.splitN(ress.data.results.rdt_arr.split(","),100);
|
|
|
+ }
|
|
|
+ let rhx_arrTemp = [];
|
|
|
+ if(ress.data.results.rhx_arr){
|
|
|
+ rhx_arrTemp = that.splitN(ress.data.results.rhx_arr.split(","),100);
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ rdt_arrNew:rdt_arrTemp,
|
|
|
+ rhx_arrNew:rhx_arrTemp,
|
|
|
+ });
|
|
|
+ chart3 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart3);
|
|
|
+ flushChart3(that.data.rdt_arrNew,that.data.rhx_arrNew)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ // console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ // console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart11(canvas, width, height,reportId){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let rdt_arrTemp = [];
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rdt_arrTemp = that.splitN(ress.data.results.rdt_arr.split(","),100);
|
|
|
+ }
|
|
|
+ let rsleep_arr_Temp = [];
|
|
|
+ if(ress.data.results.rsleep_arr){
|
|
|
+ rsleep_arr_Temp = that.splitN(ress.data.results.rsleep_arr.split(","),100);
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ rdt_arrNew:rdt_arrTemp,
|
|
|
+ rsleep_arr:rsleep_arr_Temp,
|
|
|
+ rdeep_durationFormat: that.convertTimeToHoursAndMinutes(ress.data.results.rdeep_duration,1),
|
|
|
+ rlight_durationFormat: that.convertTimeToHoursAndMinutes(ress.data.results.rlight_duration,1),
|
|
|
+ rin_durationFormat: that.convertTimeToHoursAndMinutes(ress.data.results.rin_duration,1),
|
|
|
+ rawake_durationFormat: that.convertTimeToHoursAndMinutes(ress.data.results.rawake_duration,1),
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log('ress.data.results.rdeep_duration='+ress.data.results.rdeep_duration);
|
|
|
+ console.log('ress.data.results.rlight_duration='+ress.data.results.rlight_duration);
|
|
|
+ console.log('ress.data.results.rin_duration='+ress.data.results.rin_duration);
|
|
|
+ console.log('ress.data.results.rawake_duration='+ress.data.results.rawake_duration);
|
|
|
+
|
|
|
+ chart11 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart11);
|
|
|
+ flushChart11(that.data.rdt_arrNew,that.data.rsleep_arr,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("that.data.rsleep_arr="+that.data.rsleep_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart4(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let sleep_durationCount = 0;
|
|
|
+ if(ress.data.results.rdeep_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rdeep_duration)
|
|
|
+ }
|
|
|
+ if(ress.data.results.rlight_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rlight_duration)
|
|
|
+ }
|
|
|
+ if(ress.data.results.rin_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rin_duration)
|
|
|
+ }
|
|
|
+ let sleep_durationTemp = [];
|
|
|
+ // let data1 = [];
|
|
|
+ let obj1 = {};
|
|
|
+ obj1.name = '睡眠时间';
|
|
|
+ obj1.value = Math.ceil(sleep_durationCount / 60);
|
|
|
+ sleep_durationTemp.push(obj1);
|
|
|
+ // data1.push(obj1);
|
|
|
+ // let data2 = [];
|
|
|
+ obj1 = {};
|
|
|
+ obj1.name = '清醒时间';
|
|
|
+ obj1.value = Math.ceil(parseFloat(ress.data.results.rawake_duration) / 60);
|
|
|
+ sleep_durationTemp.push(obj1);
|
|
|
+ // data2.push(obj1);
|
|
|
+ that.setData({
|
|
|
+ sleep_duration:sleep_durationTemp,
|
|
|
+ });
|
|
|
+ chart4 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart4);
|
|
|
+ // console.log("that.data.sleep_duration="+JSON.stringify(that.data.sleep_duration))
|
|
|
+ flushChart4(that.data.sleep_duration)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart5(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ let rdt_arrTemp = [];
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rdt_arrTemp = that.splitN(ress.data.results.rdt_arr.split(","),100);
|
|
|
+ }
|
|
|
+ let rsleep_arrTemp = [];
|
|
|
+ if(ress.data.results.rsleep_arr){
|
|
|
+ rsleep_arrTemp = that.splitN(ress.data.results.rsleep_arr.split(","),100);
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ rdt_arrNew:rdt_arrTemp,
|
|
|
+ rsleep_arrNew:rsleep_arrTemp,
|
|
|
+
|
|
|
+ });
|
|
|
+ chart5 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart5);
|
|
|
+ flushChart5(that.data.rdt_arrNew,that.data.rsleep_arrNew,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart6(canvas, width, height){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rsleep_arr_all_Temp = [];
|
|
|
+ if(ress.data.results.rsleep_arr){
|
|
|
+ rsleep_arr_all_Temp = ress.data.results.rsleep_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rsleep_arr_all: that.splitN(rsleep_arr_all_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart6 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart6);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart6(that.data.rdt_arr,that.data.rsleep_arr_all,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart7(canvas, width, height,reportId){//离床次数
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var routbed_arr_Temp = [];
|
|
|
+ if(ress.data.results.routbed_arr){
|
|
|
+ routbed_arr_Temp = ress.data.results.routbed_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ // rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ // routbed_arr: that.splitN(routbed_arr_Temp,100),
|
|
|
+ rdt_arr: ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],
|
|
|
+ routbed_arr: routbed_arr_Temp,
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart7 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart7);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ // flushChart7(that.takePortionDateData(that.data.rdt_arr,that.data.routbed_arr,0),that.takePortionData(that.data.routbed_arr,0),that.data.routbed_time,that)
|
|
|
+ flushChart7(that.data.rdt_arr,that.data.routbed_arr,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("that.data.routbed_arr="+that.data.routbed_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart8(canvas, width, height,reportId){//体动次数
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rmove_arr_Temp = [];
|
|
|
+ if(ress.data.results.rmove_arr){
|
|
|
+ rmove_arr_Temp = ress.data.results.rmove_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rmove_arr: that.splitN(rmove_arr_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart8 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart8);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart8(that.data.rdt_arr,that.data.rmove_arr,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("c8_that.data.rmove_arr="+that.data.rmove_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart81(canvas, width, height,reportId){//平均呼吸率
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rhx_arr_Temp = [];
|
|
|
+ if(ress.data.results.rhx_arr){
|
|
|
+ rhx_arr_Temp = ress.data.results.rhx_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rhx_arr: that.splitN(rhx_arr_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart81 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart81);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart81(that.data.rdt_arr,that.data.rhx_arr,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("c81_that.data.ravg_hx_value="+that.data.ravg_hx_value);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart9(canvas, width, height,reportId){//体动次数
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rsnoring_arr_Temp = [];
|
|
|
+ if(ress.data.results.rsnoring_arr){
|
|
|
+ rsnoring_arr_Temp = ress.data.results.rsnoring_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rsnoring_arr: that.splitN(rsnoring_arr_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart9 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart9);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart9(that.data.rdt_arr,that.data.rsnoring_arr,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("c8_that.data.rmove_arr="+that.data.rmove_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ initChart10(canvas, width, height,reportId){//体动次数
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":that.data.rsn?that.data.rsn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rhxstop_arr_Temp = [];
|
|
|
+ if(ress.data.results.rhxstop_arr){
|
|
|
+ rhxstop_arr_Temp = ress.data.results.rhxstop_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rhxstop_arr: that.splitN(rhxstop_arr_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart10 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart10);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart10(that.data.rdt_arr,that.data.rhxstop_arr,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("c8_that.data.rhxstop_arr="+that.data.rhxstop_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getRsleep_arr(list){
|
|
|
+ if(list){
|
|
|
+ console.log("getRsleep_arr_list1=="+JSON.stringify(list));
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ if (list[i] == '0') {
|
|
|
+ list[i] = '清醒';
|
|
|
+ }else if (list[i] == '10') {
|
|
|
+ list[i] = '浅睡';
|
|
|
+ }else if (list[i] == '20') {
|
|
|
+ list[i] = '中睡';
|
|
|
+ }else if (list[i] == '30') {
|
|
|
+ list[i] = '深睡';
|
|
|
+ }else{
|
|
|
+ list[i] = '其他';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log("getRsleep_arr_list2=="+JSON.stringify(list));
|
|
|
+ },
|
|
|
+ getFrequency(list){//获取
|
|
|
+ if(list){
|
|
|
+ console.log("getRsleep_arr_list1=="+JSON.stringify(list));
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ if (list[i] == '0') {
|
|
|
+ list[i] = '清醒';
|
|
|
+ }else if (list[i] == '10') {
|
|
|
+ list[i] = '浅睡';
|
|
|
+ }else if (list[i] == '20') {
|
|
|
+ list[i] = '中睡';
|
|
|
+ }else if (list[i] == '30') {
|
|
|
+ list[i] = '深睡';
|
|
|
+ }else{
|
|
|
+ list[i] = '其他';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log("getRsleep_arr_list2=="+JSON.stringify(list));
|
|
|
+ },
|
|
|
+ initChart12(canvas, width, height){//体动次数
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":that.data.hotelcode?that.data.hotelcode:"club",
|
|
|
+ "roomcode":that.data.roomcode?that.data.roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+ try {
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":res.data[0].sn,
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ if(ress && ress.data){
|
|
|
+ // console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ try {
|
|
|
+ var rsnoring_arr_Temp = [];
|
|
|
+ if(ress.data.results.rsnoring_arr){
|
|
|
+ rsnoring_arr_Temp = ress.data.results.rsnoring_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ rdt_arr: that.splitN(ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],100),
|
|
|
+ rsnoring_arr: that.splitN(rsnoring_arr_Temp,100),
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,
|
|
|
+ routbed_time: ress.data.results.routbed_time,
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ });
|
|
|
+ chart9 = echarts.init(canvas, null, {
|
|
|
+ width: width,
|
|
|
+ height: height
|
|
|
+ });
|
|
|
+ console.log("plot in ......")
|
|
|
+ canvas.setChart(chart9);
|
|
|
+ // var list = that.getRsleep_arr(ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(","):[])
|
|
|
+ flushChart9(that.data.rdt_arr,that.data.rsnoring_arr,that.data.rgobed_time,that.data.routbed_time,that)
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("c8_that.data.rmove_arr="+that.data.rmove_arr);
|
|
|
+ console.log("");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ })
|
|
|
+ },
|
|
|
+ sleepStateChange(data){
|
|
|
+ console.log("change-data=="+data)
|
|
|
+ switch(data) {
|
|
|
+ case 0:
|
|
|
+ return '清醒';
|
|
|
+ case 10:
|
|
|
+ return '浅睡';
|
|
|
+ case 20:
|
|
|
+ return '中睡';
|
|
|
+ case 30:
|
|
|
+ return '深睡';
|
|
|
+ default:
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ sleepRoutbed_arrChange(data){
|
|
|
+ console.log("change-data=="+data)
|
|
|
+ switch(data) {
|
|
|
+ case 0:
|
|
|
+ return '离床';
|
|
|
+ case 1:
|
|
|
+ return '在床';
|
|
|
+ default:
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ sleepRmove_arrChange(data){
|
|
|
+ console.log("change-data=="+data)
|
|
|
+ switch(data) {
|
|
|
+ case 0:
|
|
|
+ return '否';
|
|
|
+ case 1:
|
|
|
+ return '体动';
|
|
|
+ default:
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ sleepRsnoring_arrChange(data){
|
|
|
+ console.log("change-data=="+data)
|
|
|
+ switch(data) {
|
|
|
+ case 0:
|
|
|
+ return '否';
|
|
|
+ case 1:
|
|
|
+ return '打鼾';
|
|
|
+ default:
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ sleepRhxstop_arrChange(data){
|
|
|
+ console.log("change-data=="+data)
|
|
|
+ switch(data) {
|
|
|
+ case 0:
|
|
|
+ return '否';
|
|
|
+ case 1:
|
|
|
+ return '停止';
|
|
|
+ default:
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitN(originalArray,n){
|
|
|
+ if(!originalArray) return [];
|
|
|
+ // 计算每份的大小
|
|
|
+ let chunkSize = Math.ceil(originalArray.length / n);
|
|
|
+
|
|
|
+ // 分割数组并获取每份的最后一个元素
|
|
|
+ let lastElements = [];
|
|
|
+ for (let i = 0; i < originalArray.length; i += chunkSize) {
|
|
|
+ let chunk = originalArray.slice(i, i + chunkSize);
|
|
|
+ lastElements.push(chunk[chunk.length - 1]);
|
|
|
+ }
|
|
|
+ // 输出每份的最后一个元素
|
|
|
+ console.log('lastElements='+lastElements);
|
|
|
+ return lastElements;
|
|
|
+ },
|
|
|
+ takePortionDateData(rdt_arrArray,originalArray,n){
|
|
|
+ if(!rdt_arrArray || !originalArray) return [];
|
|
|
+ var portionDateData = [];
|
|
|
+ var portionData = [];
|
|
|
+ for (let i = 0; i < originalArray.length; i ++) {
|
|
|
+ if(originalArray[i] == n){
|
|
|
+ portionDateData.push(rdt_arrArray[i]);
|
|
|
+ portionData.push(originalArray[i]);
|
|
|
+ } else{
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log('portionDateData='+JSON.stringify(portionDateData));
|
|
|
+ return portionDateData;
|
|
|
+ },
|
|
|
+ takePortionData(originalArray,n){
|
|
|
+ if(!originalArray) return [];
|
|
|
+ var portionData = [];
|
|
|
+ for (let i = 0; i < originalArray.length; i ++) {
|
|
|
+ if(originalArray[i] == n){
|
|
|
+ portionData.push(originalArray[i])
|
|
|
+ } else{
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log('portionData='+JSON.stringify(portionData));
|
|
|
+ return portionData;
|
|
|
+ },
|
|
|
+ getFrequency(list,o){//获取次数
|
|
|
+ if(!list) return 0;
|
|
|
+ let frequency = 0;
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ if(list[i] == o) frequency++;
|
|
|
+ }
|
|
|
+ console.log('frequency='+frequency);
|
|
|
+ return frequency;
|
|
|
+ },
|
|
|
+ getTimeDiffInHours: function(startTimeStr, endTimeStr) {
|
|
|
+ // 假设两个时间都是同一天的,这里我们使用当前日期作为基准
|
|
|
+ if(!startTimeStr || !endTimeStr) return null;
|
|
|
+ const now = new Date();
|
|
|
+ const startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), ...startTimeStr.split(':').map(Number));
|
|
|
+ const endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), ...endTimeStr.split(':').map(Number));
|
|
|
+
|
|
|
+ // 处理跨天的情况
|
|
|
+ if (endDate < startDate) {
|
|
|
+ endDate.setDate(endDate.getDate() + 1); // 将结束时间设置为第二天的同一时间
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算时间差(毫秒)
|
|
|
+ const diffInMs = endDate - startDate;
|
|
|
+
|
|
|
+ // 转换为小时
|
|
|
+ const diffInHours = diffInMs / (1000 * 60 * 60);
|
|
|
+
|
|
|
+ return diffInHours;
|
|
|
+ },
|
|
|
+ drawProgressCircle: function() {
|
|
|
+ const ctx = wx.createCanvasContext('progressCircleCanvas');
|
|
|
+ // 假设屏幕的宽度为 windowWidth px
|
|
|
+ const windowWidth = wx.getSystemInfoSync().windowWidth;
|
|
|
+
|
|
|
+ // 假设你有一个以 rpx 为单位的值
|
|
|
+ const valueInRpx = 300;
|
|
|
+
|
|
|
+ // 计算对应的 px 值
|
|
|
+ const valueInPx = (valueInRpx / 750) * windowWidth;
|
|
|
+
|
|
|
+ const radius = 60; // 圆的半径
|
|
|
+ const centerX = valueInPx; // 圆心的x坐标
|
|
|
+ const centerY = valueInPx/2; // 圆心的y坐标
|
|
|
+ const strokeWidth = 10; // 进度条的宽度
|
|
|
+ const percentage = this.data.percentage; // 进度百分比
|
|
|
+
|
|
|
+ // 绘制外圆
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
|
|
|
+ ctx.setStrokeStyle('#46ff81'); // 外圆颜色
|
|
|
+ ctx.setLineWidth(strokeWidth * 2); // 外圆线宽
|
|
|
+ ctx.stroke();
|
|
|
+
|
|
|
+ // 绘制内圆(进度条背景)
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(centerX, centerY, radius - strokeWidth, 0, 2 * Math.PI);
|
|
|
+ ctx.setStrokeStyle('#e0e0e0'); // 内圆颜色
|
|
|
+ ctx.setLineWidth(strokeWidth); // 内圆线宽
|
|
|
+ ctx.stroke();
|
|
|
+
|
|
|
+ // 绘制进度条
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(centerX, centerY, radius - strokeWidth, -0.5 * Math.PI, -0.5 * Math.PI + 2 * Math.PI * (percentage / 100));
|
|
|
+ ctx.setStrokeStyle('#007aff'); // 进度条颜色
|
|
|
+ ctx.setLineWidth(strokeWidth);
|
|
|
+ ctx.setLineCap('round'); // 设置线条端点的样式为圆形
|
|
|
+ ctx.stroke();
|
|
|
+
|
|
|
+ // 绘制中心圆点
|
|
|
+ ctx.beginPath();
|
|
|
+ ctx.arc(centerX, centerY, 5, 0, 2 * Math.PI);
|
|
|
+ ctx.setFillStyle('#ffffff');
|
|
|
+ ctx.fill();
|
|
|
+
|
|
|
+ // 绘制完成,将内容渲染到canvas中
|
|
|
+ ctx.draw();
|
|
|
+ },
|
|
|
+ // 假设你有一个方法来更新进度条的值
|
|
|
+ updateProgress: function(newPercentage) {
|
|
|
+ this.setData({
|
|
|
+ percentage: newPercentage
|
|
|
+ });
|
|
|
+ this.drawProgressCircle(); // 重新绘制进度条
|
|
|
+ },
|
|
|
+
|
|
|
+ buttonClicked: function() {
|
|
|
+ var that = this;
|
|
|
+ // 切换按钮的点击状态
|
|
|
+ this.setData({
|
|
|
+ isButtonClicked: !that.data.isButtonClicked,
|
|
|
+ });
|
|
|
+
|
|
|
+ // 在这里可以添加其他点击后的逻辑,比如调用接口等
|
|
|
+ },
|
|
|
+
|
|
|
+ telScreeProjection: function(tvEntityId) {
|
|
|
+ var that = this;
|
|
|
+ that.setData({
|
|
|
+ isLoading: true,
|
|
|
+ });
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getbigreport',
|
|
|
+ method: 'POST',
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/json', // 默认值
|
|
|
+ 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
|
|
|
+ },
|
|
|
+ data:{
|
|
|
+ "sn":that.data.rsn,"tokens":token_push
|
|
|
+ },
|
|
|
+ success(ress) {
|
|
|
+ console.log('wx.getStorageSync(tvEntityId)='+wx.getStorageSync('tvEntityId'));
|
|
|
+ console.log('tvEntityId='+JSON.stringify(tvEntityId));
|
|
|
+ let tvEntityIdss = tvEntityId?tvEntityId:wx.getStorageSync('tvEntityId')
|
|
|
+ if(ress && ress.data && tvEntityIdss){
|
|
|
+ console.log("ress.data=="+JSON.stringify(ress.data.url));
|
|
|
+ console.log("tvEntityIdss=="+tvEntityIdss);
|
|
|
+ wx.request({
|
|
|
+ // url: `${homeApi_http}`+':'+`${homeApi_http_port}`+'/api/services/media_player/play_media', //http
|
|
|
+ // url: `${homeApi_https}`+'/api/services/media_player/play_media', //https
|
|
|
+ url: `${homeApi_https}`+'/api/services/media_player/select_source', //https
|
|
|
+ method: 'POST',
|
|
|
+ header: {
|
|
|
+ 'content-type': 'application/json', // 默认值
|
|
|
+ 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
|
|
|
+ },
|
|
|
+ data:{
|
|
|
+ "entity_id": tvEntityIdss,
|
|
|
+ // "media_content_id": ress.data.url,
|
|
|
+ // "media_content_id": 'https://alifei01.cfp.cn/creative/vcg/800/new/VCG41175510742.jpg',
|
|
|
+ // "media_content_id": 'https://alifei01.cfp.cn/creative/vcg/veer/1600water/veer-368621010.jpg',
|
|
|
+ // "media_content_type": "image/jpeg/png",
|
|
|
+ "source": "X浏览器"
|
|
|
+ },
|
|
|
+ success(res) {
|
|
|
+ that.setData({
|
|
|
+ isLoading: false,
|
|
|
+ });
|
|
|
+ if(res && res.data){
|
|
|
+ var resData = res.data
|
|
|
+ console.log('res-推送='+JSON.stringify(res));
|
|
|
+ console.log('res.data-推送='+JSON.stringify(resData));
|
|
|
+ wx.showToast({
|
|
|
+ title: "推送成功",
|
|
|
+ icon: "success",
|
|
|
+ mask: true,
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ wx.showToast({
|
|
|
+ title: '推送失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: function (error) {
|
|
|
+ // 请求失败后的回调函数
|
|
|
+ console.error('推送失败', error);
|
|
|
+ // 在这里处理请求失败的情况,比如显示错误信息给用户
|
|
|
+ that.setData({
|
|
|
+ isLoading: false,
|
|
|
+ });
|
|
|
+ wx.showToast({
|
|
|
+ title: '推送失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ that.setData({
|
|
|
+ isLoading: false,
|
|
|
+ });
|
|
|
+ wx.showToast({
|
|
|
+ title: '找不到电视,推送失败',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getData(sn,hotelcode,roomcode,reportId){
|
|
|
+ var that = this;
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsn',
|
|
|
+ data: {"hotelcode":hotelcode?hotelcode:"club",
|
|
|
+ "roomcode":roomcode?roomcode:"nuange",
|
|
|
+ "token":token_push},
|
|
|
+ method: 'POST',
|
|
|
+ success(res) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ // that.setData({
|
|
|
+ // airText: now.category, //空气质量
|
|
|
+ // airValue: now.aqi //空气指数
|
|
|
+ // })
|
|
|
+ if(res && res.data && res.data[0]){
|
|
|
+ that.setData({
|
|
|
+ roomname: res.data[0].rn
|
|
|
+ });
|
|
|
+ console.log("res.data-sn="+JSON.stringify(res.data));
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}`+'/getsingle',
|
|
|
+ data: {"sn":sn?sn:res.data[0].sn,
|
|
|
+ "token":token_push,
|
|
|
+ "rpids":reportId},
|
|
|
+ method: 'POST',
|
|
|
+ success(ress) {
|
|
|
+ try {
|
|
|
+ if(ress && ress.data){
|
|
|
+ console.log('ress.data-getsingle='+JSON.stringify(ress.data.results));
|
|
|
+ // that.setData({
|
|
|
+ // airText: now.category, //空气质量
|
|
|
+ // airValue: now.aqi //空气指数
|
|
|
+ // })
|
|
|
+ // rdt_arr = ress.data.results.rdt_arr //睡眠时间轴数据集合
|
|
|
+ // rrh_arr = ress.data.results.rdt_arr//睡眠心率数据集合
|
|
|
+ // rhx_arr = ress.data.results.rhx_arr//睡眠呼吸数据集合
|
|
|
+ // rsnoring_arr = ress.data.results.rsnoring_arr//睡眠打鼾数据集合,0-否,1-打鼾状态
|
|
|
+ // routbed_arr = ress.data.results.routbed_arr//离床状态数据集合,0-离床,1-在床
|
|
|
+ // rmove_arr = ress.data.results.rmove_arr//体动状态数据集合,0-否,1-体动状态
|
|
|
+ // rhxstop_arr = ress.data.results.rhxstop_arr//呼吸停止状态数据集合
|
|
|
+ // rsleep_arr = ress.data.results.rsleep_arr//睡眠状态数据集合,0-清醒,10-浅睡,20-中睡,30-深睡
|
|
|
+
|
|
|
+ // rdeep_duration = ress.data.results.rdeep_duration//深睡时长,单位分钟
|
|
|
+ // rlight_duration = ress.data.results.rlight_duration//浅睡时长,单位分钟
|
|
|
+ // rin_duration = ress.data.results.rin_duration//中睡时长,单位分钟
|
|
|
+ // rawake_duration = ress.data.results.rawake_duration//清醒时长,单位分钟
|
|
|
+ // ravg_hx_value = ress.data.results.ravg_hx_value//呼吸平均值
|
|
|
+ // ravg_hx_desc = ress.data.results.ravg_hx_desc//呼吸平均值评分描述
|
|
|
+ // ravg_rh_value = ress.data.results.ravg_rh_value//心率平均值
|
|
|
+ // ravg_rh_desc = ress.data.results.ravg_rh_desc//心率平均值评分描述
|
|
|
+ // rscore_value = ress.data.results.rscore_value//睡眠报告得分值
|
|
|
+ // rscore_desc = ress.data.results.rscore_desc//睡眠报告得分评比描述
|
|
|
+
|
|
|
+
|
|
|
+ // that.setData({
|
|
|
+ // rdt_arr: ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],
|
|
|
+ // rrh_arr: ress.data.results.rrh_arr?ress.data.results.rrh_arr.split(','):[],
|
|
|
+ // rhx_arr: ress.data.results.rhx_arr?ress.data.results.rhx_arr.split(','):[],
|
|
|
+ // rsnoring_arr: ress.data.results.rsnoring_arr?ress.data.results.rsnoring_arr.split(','):[],
|
|
|
+ // routbed_arr: ress.data.results.routbed_arr?ress.data.results.routbed_arr.split(','):[],
|
|
|
+ // rmove_arr: ress.data.results.rmove_arr?ress.data.results.rmove_arr.split(','):[],
|
|
|
+ // rhxstop_arr: ress.data.results.rhxstop_arr?ress.data.results.rhxstop_arr.split(','):[],
|
|
|
+ // rsleep_arr: ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(','):[],
|
|
|
+
|
|
|
+ // rdeep_duration: ress.data.results.rdeep_duration,
|
|
|
+ // rlight_duration: ress.data.results.rlight_duration,
|
|
|
+ // rin_duration: ress.data.results.rin_duration,
|
|
|
+ // rawake_duration: ress.data.results.rawake_duration,
|
|
|
+ // ravg_hx_value: ress.data.results.ravg_hx_value,
|
|
|
+ // ravg_hx_desc: ress.data.results.ravg_hx_desc,
|
|
|
+ // ravg_rh_value: ress.data.results.ravg_rh_value,
|
|
|
+ // ravg_rh_desc: ress.data.results.ravg_rh_desc,
|
|
|
+ // rscore_value: ress.data.results.rscore_value,
|
|
|
+ // rscore_desc: ress.data.results.rscore_desc,
|
|
|
+
|
|
|
+ // rsn: ress.data.results.rsn,
|
|
|
+ // rdate: ress.data.results.rdate,
|
|
|
+ // rtotal_duration: ress.data.results.rtotal_duration,//睡眠总时长,单位分钟
|
|
|
+ // rinbed_duration: ress.data.results.rinbed_duration,//在床时长,单位分钟
|
|
|
+ // rgobed_time: ress.data.results.rgobed_time,//上床时间
|
|
|
+ // routbed_time: ress.data.results.routbed_time,//离床时间
|
|
|
+ // routbed_count_value: ress.data.results.routbed_count_value,//离床次数
|
|
|
+ // rsn: ress.data.results.rsn,
|
|
|
+
|
|
|
+ // });
|
|
|
+
|
|
|
+ let durationDataTemp = [];
|
|
|
+ let obj = {};
|
|
|
+ obj.name = '深睡';
|
|
|
+ obj.value = ress.data.results.rdeep_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '浅睡';
|
|
|
+ obj.value = ress.data.results.rlight_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '中睡';
|
|
|
+ obj.value = ress.data.results.rin_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ obj = {};
|
|
|
+ obj.name = '清醒';
|
|
|
+ obj.value = ress.data.results.rawake_duration;
|
|
|
+ durationDataTemp.push(obj);
|
|
|
+ console.log("durationDataTemp="+JSON.stringify(durationDataTemp));
|
|
|
+
|
|
|
+ let sleep_durationCount = 0;
|
|
|
+ if(ress.data.results.rdeep_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rdeep_duration)
|
|
|
+ }
|
|
|
+ if(ress.data.results.rlight_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rlight_duration)
|
|
|
+ }
|
|
|
+ if(ress.data.results.rin_duration){
|
|
|
+ sleep_durationCount += parseFloat(ress.data.results.rin_duration)
|
|
|
+ }
|
|
|
+
|
|
|
+ let sleep_efficiency_temp = ress.data.results.rtotal_duration?(Math.ceil((sleep_durationCount / ress.data.results.rtotal_duration)*100)+'%'):'%'
|
|
|
+
|
|
|
+ let rdeep_duration_efficiency_temp = ress.data.results.rtotal_duration?(Math.ceil(((ress.data.results.rdeep_duration?parseFloat(ress.data.results.rdeep_duration):0) / ress.data.results.rtotal_duration)*100)+'%'):'%'
|
|
|
+ let rlight_duration_efficiency_temp = ress.data.results.rtotal_duration?(Math.ceil(((ress.data.results.rlight_duration?parseFloat(ress.data.results.rlight_duration):0) / ress.data.results.rtotal_duration)*100)+'%'):'%'
|
|
|
+ let rin_duration_efficiency_temp = ress.data.results.rtotal_duration?(Math.ceil(((ress.data.results.rin_duration?parseFloat(ress.data.results.rin_duration):0) / ress.data.results.rtotal_duration)*100)+'%'):'%'
|
|
|
+
|
|
|
+
|
|
|
+ let sleep_durationTemp = [];
|
|
|
+ let obj1 = {};
|
|
|
+ obj1.name = '睡眠时间';
|
|
|
+ obj1.value = Math.ceil(sleep_durationCount / 60);
|
|
|
+ sleep_durationTemp.push(obj1);
|
|
|
+ obj1 = {};
|
|
|
+ obj1.name = '清醒时间';
|
|
|
+ obj1.value = Math.ceil(parseFloat(ress.data.results.rawake_duration) / 60);
|
|
|
+ sleep_durationTemp.push(obj1);
|
|
|
+
|
|
|
+ let zdPointTemp = [];
|
|
|
+ let rdt_arrTemp = [];
|
|
|
+
|
|
|
+ let rrh_arrTemp = [];
|
|
|
+
|
|
|
+ let rhx_arrTemp = [];
|
|
|
+
|
|
|
+
|
|
|
+ let rmove_arrTemp = [];
|
|
|
+
|
|
|
+ let rsleep_arrTemp = [];
|
|
|
+
|
|
|
+ let rsleep_arr_all_Temp = [];
|
|
|
+
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rdt_arrTemp = that.splitN(ress.data.results.rdt_arr.split(","),100);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ress.data.results.rrh_arr){
|
|
|
+ rrh_arrTemp = that.splitN(ress.data.results.rrh_arr.split(","),100);
|
|
|
+ }
|
|
|
+ if(ress.data.results.rhx_arr){
|
|
|
+ rhx_arrTemp = that.splitN(ress.data.results.rhx_arr.split(","),100);
|
|
|
+ }
|
|
|
+ if(ress.data.results.rmove_arr){
|
|
|
+ rmove_arrTemp = that.splitN(ress.data.results.rmove_arr.split(","),100);
|
|
|
+ }
|
|
|
+ if(ress.data.results.rsleep_arr){
|
|
|
+ rsleep_arrTemp = that.splitN(ress.data.results.rsleep_arr.split(","),100);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ress.data.results.rsleep_arr){
|
|
|
+ rsleep_arr_all_Temp = ress.data.results.rsleep_arr.split(",");
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log("rdt_arrTemp="+JSON.stringify(rdt_arrTemp));
|
|
|
+ console.log("rrh_arrTemp="+JSON.stringify(rrh_arrTemp));
|
|
|
+ console.log("rhx_arrTemp="+JSON.stringify(rhx_arrTemp));
|
|
|
+ console.log("rmove_arrTemp="+JSON.stringify(rmove_arrTemp));
|
|
|
+ console.log("rsleep_arrTemp="+JSON.stringify(rsleep_arrTemp));
|
|
|
+ console.log("rsleep_arr_all_Temp="+JSON.stringify(rsleep_arr_all_Temp));
|
|
|
+ console.log("sleep_durationTemp="+JSON.stringify(sleep_durationTemp));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+
|
|
|
+ rdt_arr: ress.data.results.rdt_arr?ress.data.results.rdt_arr.split(','):[],
|
|
|
+ rrh_arr: ress.data.results.rrh_arr?ress.data.results.rrh_arr.split(','):[],
|
|
|
+ rhx_arr: ress.data.results.rhx_arr?ress.data.results.rhx_arr.split(','):[],
|
|
|
+ rsnoring_arr: ress.data.results.rsnoring_arr?ress.data.results.rsnoring_arr.split(','):[],
|
|
|
+ routbed_arr: ress.data.results.routbed_arr?ress.data.results.routbed_arr.split(','):[],
|
|
|
+ rmove_arr: ress.data.results.rmove_arr?ress.data.results.rmove_arr.split(','):[],
|
|
|
+ rhxstop_arr: ress.data.results.rhxstop_arr?ress.data.results.rhxstop_arr.split(','):[],
|
|
|
+ rsleep_arr: ress.data.results.rsleep_arr?ress.data.results.rsleep_arr.split(','):[],
|
|
|
+
|
|
|
+ rsnoring_arrFrequency: that.getFrequency(ress.data.results.rsnoring_arr?ress.data.results.rsnoring_arr.split(','):[],1),
|
|
|
+ routbed_arrFrequency: that.getFrequency(ress.data.results.routbed_arr?ress.data.results.routbed_arr.split(','):[],0),
|
|
|
+ rmove_arrFrequency: that.getFrequency(ress.data.results.rmove_arr?ress.data.results.rmove_arr.split(','):[],1),
|
|
|
+ rhxstop_arrFrequency: that.getFrequency(ress.data.results.rhxstop_arr?ress.data.results.rhxstop_arr.split(','):[],1),
|
|
|
+
|
|
|
+ rdeep_duration: that.convertTimeToHoursAndMinutes(ress.data.results.rdeep_duration),
|
|
|
+ rlight_duration: ress.data.results.rlight_duration,
|
|
|
+ rin_duration: ress.data.results.rin_duration,
|
|
|
+ rawake_duration: ress.data.results.rawake_duration,
|
|
|
+ ravg_hx_value: ress.data.results.ravg_hx_value,
|
|
|
+ ravg_hx_desc: ress.data.results.ravg_hx_desc,
|
|
|
+ ravg_rh_value: ress.data.results.ravg_rh_value,
|
|
|
+ ravg_rh_desc: ress.data.results.ravg_rh_desc,
|
|
|
+ rscore_value: ress.data.results.rscore_value,
|
|
|
+ rscore_desc: ress.data.results.rscore_desc,
|
|
|
+
|
|
|
+ rsn: ress.data.results.rsn,
|
|
|
+ rdate: ress.data.results.rdate,
|
|
|
+ rtotal_duration: that.convertTimeToHoursAndMinutes(ress.data.results.rtotal_duration),//睡眠总时长,单位小时分钟
|
|
|
+ rinbed_duration: that.convertTimeToHoursAndMinutes(ress.data.results.rinbed_duration),//在床时长,单位小时分钟
|
|
|
+ rgobed_time: ress.data.results.rgobed_time,//上床时间
|
|
|
+ routbed_time: ress.data.results.routbed_time,//离床时间
|
|
|
+ rgobed_routbed: ress.data.results.rgobed_time + '~' + ress.data.results.routbed_time,
|
|
|
+ sleepHourSub: that.getTimeDiffInHours(ress.data.results.rgobed_time,ress.data.results.routbed_time),
|
|
|
+ routbed_count_value: ress.data.results.routbed_count_value,//离床次数
|
|
|
+ rsn: ress.data.results.rsn,
|
|
|
+ zdPointT:zdPointTemp,
|
|
|
+ rdt_arrNew:rdt_arrTemp,
|
|
|
+ rrh_arrNew:rrh_arrTemp,
|
|
|
+ rhx_arrNew:rhx_arrTemp,
|
|
|
+ rmove_arrNew:rmove_arrTemp,
|
|
|
+ rsleep_arrNew:rsleep_arrTemp,
|
|
|
+ rsleep_arr_all_New:rsleep_arr_all_Temp,
|
|
|
+ durationData:durationDataTemp,
|
|
|
+ sleep_duration:sleep_durationTemp,
|
|
|
+ sleep_efficiency:sleep_efficiency_temp,
|
|
|
+ sleep_durationCountA:that.convertTimeToHoursAndMinutes(sleep_durationCount?sleep_durationCount.toString():'0'),
|
|
|
+ sns:res.data,
|
|
|
+ tvEntityIds:wx.getStorageSync('tvEntityIds'),
|
|
|
+ ifOneMoreTV:(wx.getStorageSync('tvEntityIds') && wx.getStorageSync('tvEntityIds').length>1),
|
|
|
+ hotelname:res.data[0].hn,
|
|
|
+ rdeep_duration_efficiency:rdeep_duration_efficiency_temp,
|
|
|
+ rlight_duration_efficiency:rlight_duration_efficiency_temp,
|
|
|
+ rin_duration_efficiency:rin_duration_efficiency_temp,
|
|
|
+ pushReportId:ress.data.results.rdid,
|
|
|
+
|
|
|
+ rrs_duration:that.convertTimeToHoursAndMinutes(ress.data.results.rrs_duration?ress.data.results.rrs_duration.toString():'0'),
|
|
|
+ routbed_count_value:ress.data.results.routbed_count_value,
|
|
|
+ rsleep_eff_value:ress.data.results.rsleep_eff_value,
|
|
|
+ });
|
|
|
+
|
|
|
+ that.getDateTimeJsonData(sn?sn:res.data[0].sn);
|
|
|
+ // resolve(ress.data); // 请求成功,使用 resolve 返回数据
|
|
|
+ console.log('ress.data.results-'+ress.data.results)
|
|
|
+ if(!ress.data.results || ress.data.results == ''){
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '无数据',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '无数据',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ console.log("that.data.rdt_arrNew1,that.data.rrh_arrNew1="+that.data.rdt_arrNew+","+that.data.rrh_arrNew);
|
|
|
+ console.log("");
|
|
|
+ },
|
|
|
+ fail: function (error) {
|
|
|
+ wx.showToast({
|
|
|
+ title: "无数据",
|
|
|
+ icon: "error",
|
|
|
+ mask: true,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // that.startInterval();
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}/getha`, //
|
|
|
+ method: 'POST',
|
|
|
+ // header: {
|
|
|
+ // 'content-type': 'application/json', // 默认值
|
|
|
+ // 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
|
|
|
+ // },
|
|
|
+ data:{
|
|
|
+ "locations":hotelcode,"room":(hotelcode && hotelcode.includes('hotel'))?roomcode:"","token":token_push
|
|
|
+ },
|
|
|
+ success(res) {
|
|
|
+ if(!res || !res.data){
|
|
|
+ that.setData({
|
|
|
+ isLoading: false,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var resData = res.data
|
|
|
+ console.log('res.data.睡眠报告.ha='+JSON.stringify(resData));
|
|
|
+ if (res.data.code == "400") {
|
|
|
+ console.error("400错误!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (res.data.code == "401") {
|
|
|
+ console.error("401错误!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ homeApi_https = resData.loc;
|
|
|
+ token = resData.token;
|
|
|
+ },
|
|
|
+ fail: function (error) {
|
|
|
+ console.error('error', error);
|
|
|
+ that.setData({
|
|
|
+ isLoading: false,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ convertTimeToHoursAndMinutes: function(timeWithText,flag) {
|
|
|
+ if(!timeWithText) return;
|
|
|
+ // 移除'分钟'两个字
|
|
|
+ var minutesStr = timeWithText.replace('分钟', '');
|
|
|
+ var minutes = parseInt(minutesStr); // 将字符串转换为整数
|
|
|
+
|
|
|
+ if (isNaN(minutes)) {
|
|
|
+ // 如果转换失败,则可能是输入的不是有效的数字
|
|
|
+ console.error('Invalid minutes format');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var hours = Math.floor(minutes / 60); // 整除60得到小时数
|
|
|
+ var remainingMinutes = minutes % 60; // 取余得到剩余的分钟数
|
|
|
+
|
|
|
+ // 如果小时数或分钟数小于10,前面补0
|
|
|
+ // var formattedHours = hours < 10 ? '0' + hours : hours;
|
|
|
+ var formattedHours = hours;
|
|
|
+ // var formattedMinutes = remainingMinutes < 10 ? '0' + remainingMinutes : remainingMinutes;
|
|
|
+ var formattedMinutes = remainingMinutes;
|
|
|
+
|
|
|
+ // 拼接小时和分钟,形成HH:mm格式
|
|
|
+ var formattedTime = '';
|
|
|
+ if(flag){
|
|
|
+ formattedTime = formattedHours + 'H ' + formattedMinutes + 'M';
|
|
|
+ }else{
|
|
|
+ formattedTime = formattedHours + '小时' + formattedMinutes;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新数据
|
|
|
+ // this.setData({
|
|
|
+ // formattedTime: formattedTime
|
|
|
+ // });
|
|
|
+ return formattedTime;
|
|
|
+ },
|
|
|
+ getDateTimeJsonData: function(sn) {
|
|
|
+ var that = this;
|
|
|
+ var sourceFourthTemp = [];
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}/getdatefromsn`, //
|
|
|
+ method: 'POST',
|
|
|
+ // header: {
|
|
|
+ // 'content-type': 'application/json', // 默认值
|
|
|
+ // 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
|
|
|
+ // },
|
|
|
+ data:{
|
|
|
+ "sn":sn,"token":token_push
|
|
|
+ },
|
|
|
+ success(res) {
|
|
|
+ if(!res || !res.data || !res.data.results){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var resDataSn = res.data.results
|
|
|
+ console.log('resDataSn===='+JSON.stringify(resDataSn))
|
|
|
+ var tt = 0;
|
|
|
+ resDataSn.forEach(function(item, index) {
|
|
|
+ wx.request({
|
|
|
+ url: `${aipushApi}/getimefromsn`, //
|
|
|
+ method: 'POST',
|
|
|
+ // header: {
|
|
|
+ // 'content-type': 'application/json', // 默认值
|
|
|
+ // 'Authorization': 'Bearer ' + token // 在头部设置认证信息,例如使用Bearer Token
|
|
|
+ // },
|
|
|
+ data:{
|
|
|
+ "sn":sn,"date":item.rdate,"token":token_push
|
|
|
+ },
|
|
|
+ success(ress) {
|
|
|
+ if(!ress || !ress.data || !ress.data.results){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var resDataItem = ress.data.results;
|
|
|
+ resDataItem.forEach(function(item_item, index) {
|
|
|
+ item_item.text = item_item.durations;
|
|
|
+ item_item.reportId = item_item.rpids;
|
|
|
+ });
|
|
|
+ var json = {};
|
|
|
+ json.text = item.rdate;
|
|
|
+ json.children = resDataItem;
|
|
|
+ sourceFourthTemp.push(json);
|
|
|
+ console.log('sourceFourthTemp0='+JSON.stringify(sourceFourthTemp));
|
|
|
+ if (tt == (resDataSn.length - 1)) {
|
|
|
+ console.log('sourceFourthTemp='+JSON.stringify(sourceFourthTemp));
|
|
|
+
|
|
|
+ // 使用 sort 方法进行排序
|
|
|
+ sourceFourthTemp.sort(function(a, b) {
|
|
|
+ // 将字符串转换为 Date 对象
|
|
|
+ let dateA = new Date(a.text);
|
|
|
+ let dateB = new Date(b.text);
|
|
|
+ if (dateA < dateB) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ if (dateA > dateB) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ // 如果日期相等,返回 0
|
|
|
+ return 0;
|
|
|
+ });
|
|
|
+ console.log('sourceFourthTemp1='+JSON.stringify(sourceFourthTemp));
|
|
|
+ //初始化弹出面板
|
|
|
+ var array = that.data.arrayFourth;
|
|
|
+ array[0] = sourceFourthTemp;
|
|
|
+ array[1] = array[0][0].children;
|
|
|
+
|
|
|
+ that.setData({
|
|
|
+ valueFourth: [0, 0],
|
|
|
+ sourceFourth: sourceFourthTemp,
|
|
|
+ arrayFourth: array,
|
|
|
+ })
|
|
|
+ tt = 0;
|
|
|
+ }
|
|
|
+ tt++
|
|
|
+ },
|
|
|
+ fail: function (error) {
|
|
|
+
|
|
|
+ console.error('error', error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: function (error) {
|
|
|
+ console.error('error', error);
|
|
|
+ } ,
|
|
|
+ complete: function (e) {
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 在全局或者组件中定义函数
|
|
|
+ fontSize: function(res) {
|
|
|
+ const clientWidth = wx.getSystemInfoSync().windowWidth; // 获取屏幕宽度
|
|
|
+ if (!clientWidth) return;
|
|
|
+ let fontSize = clientWidth / 1920; // 假设以1920为基准宽度
|
|
|
+ return res * fontSize;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面加载
|
|
|
+ */
|
|
|
+ onShow: function(options) {
|
|
|
+ var that = this;
|
|
|
+ console.log("that.data.month + 1", that.data.month + 1)
|
|
|
+ var clickDate = String(that.data.year) + String(that.data.month) + String(that.data.date)
|
|
|
+ clickDate = String(parseInt(clickDate) + 100)
|
|
|
+ // that.getTargetData(clickDate)
|
|
|
+ that.setData({
|
|
|
+ clickDate: clickDate,
|
|
|
+ // ec000: {
|
|
|
+ // onInit: that.initChart000
|
|
|
+ // },
|
|
|
+ ec00: {
|
|
|
+ onInit: that.initChart00
|
|
|
+ },
|
|
|
+ ec0: {
|
|
|
+ onInit: that.initChart0
|
|
|
+ },
|
|
|
+ ec: {
|
|
|
+ onInit: that.initChart
|
|
|
+ },
|
|
|
+ ec1: {
|
|
|
+ onInit: that.initChart1
|
|
|
+ },
|
|
|
+ ec2: {
|
|
|
+ onInit: that.initChart2
|
|
|
+ },
|
|
|
+ ec3: {
|
|
|
+ onInit: that.initChart3
|
|
|
+ },
|
|
|
+ ec4: {
|
|
|
+ onInit: that.initChart4
|
|
|
+ },
|
|
|
+ ec5: {
|
|
|
+ onInit: that.initChart5
|
|
|
+ },
|
|
|
+ ec6: {
|
|
|
+ onInit: that.initChart6
|
|
|
+ },
|
|
|
+ ec7: {
|
|
|
+ onInit: that.initChart7
|
|
|
+ },
|
|
|
+ ec8: {
|
|
|
+ onInit: that.initChart8
|
|
|
+ },
|
|
|
+ ec81: {
|
|
|
+ onInit: that.initChart81
|
|
|
+ },
|
|
|
+ ec9: {
|
|
|
+ onInit: that.initChart9
|
|
|
+ },
|
|
|
+ ec10: {
|
|
|
+ onInit: that.initChart10
|
|
|
+ },
|
|
|
+ ec11: {
|
|
|
+ onInit: that.initChart11
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+onLoad(option){
|
|
|
+ var that = this;
|
|
|
+ console.log("data页面");
|
|
|
+ // wx.clearStorage();
|
|
|
+ console.log('option.res='+JSON.stringify(wx.getStorageSync('res')));
|
|
|
+ if(!wx.getStorageSync('res') || !wx.getStorageSync('res').result){
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '请先扫描房间二维码',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(function() {
|
|
|
+ wx.reLaunch({
|
|
|
+ url: '/pages/scan/scan',
|
|
|
+ })
|
|
|
+ }, 2000) // 设置延时时间,单位为毫秒
|
|
|
+ }else if(wx.getStorageSync('res').result.split('|').length != 2){
|
|
|
+ wx.showModal({
|
|
|
+ title: '提示',
|
|
|
+ content: '房间二维码不正确,请重新扫码',
|
|
|
+ showCancel: false
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(function() {
|
|
|
+ wx.reLaunch({
|
|
|
+ url: '/pages/scan/scan',
|
|
|
+ })
|
|
|
+ }, 2000) // 设置延时时间,单位为毫秒
|
|
|
+ }else{
|
|
|
+ // const expiresAt = wx.getStorageSync('scanResultExpiresAt');
|
|
|
+ // const now = Date.now()
|
|
|
+ // if (expiresAt || expiresAt < now) {
|
|
|
+ // // 扫码结果已过期
|
|
|
+ // wx.showToast({
|
|
|
+ // title: '扫码结果失效或已过期,请重新扫码',
|
|
|
+ // icon: 'none'
|
|
|
+ // });
|
|
|
+ // // 清除过期的扫码结果
|
|
|
+ // wx.removeStorageSync('scanResultExpiresAt');
|
|
|
+ // setTimeout(function() {
|
|
|
+ // wx.reLaunch({
|
|
|
+ // url: '/pages/scan/scan',
|
|
|
+ // })
|
|
|
+ // }, 2000) // 设置延时时间,单位为毫秒
|
|
|
+
|
|
|
+ // }else{
|
|
|
+ // //续期
|
|
|
+ // wx.setStorageSync('scanResultExpiresAt', Date.now() + 2 * 60 * 60 * 1000)
|
|
|
+ // }
|
|
|
+
|
|
|
+ let hotelcodeTemp = '';
|
|
|
+ let roomcodeTemp = '';
|
|
|
+
|
|
|
+ hotelcodeTemp = wx.getStorageSync('res').result.split('|')[0];
|
|
|
+ roomcodeTemp = wx.getStorageSync('res').result.split('|')[1];
|
|
|
+ this.getData(null,hotelcodeTemp,roomcodeTemp,null);
|
|
|
+ // const result = await this.getData();
|
|
|
+ // console.log('result='+JSON.stringify(result));
|
|
|
+ this.drawProgressCircle();
|
|
|
+ // 获取系统信息
|
|
|
+ const systemInfo = wx.getSystemInfoSync();
|
|
|
+ const windowWidth = systemInfo.windowWidth; // 窗口宽度
|
|
|
+
|
|
|
+ // 计算canvas的宽度和高度
|
|
|
+ const canvasWidth = windowWidth; // 可以根据需求调整canvas的宽度
|
|
|
+ const canvasHeight = windowWidth * 0.5; // 假设高度是宽度的一半,可以根据需求调整
|
|
|
+
|
|
|
+
|
|
|
+ // var now = new Date(); // 创建一个Date对象,表示当前的日期和时间
|
|
|
+ // var year = now.getFullYear(); // 获取年份
|
|
|
+ // var month = now.getMonth() + 1; // 获取月份(注意月份是从0开始的,所以需要+1)
|
|
|
+ // var date = now.getDate(); // 获取日期
|
|
|
+ // var hours = now.getHours(); // 获取小时
|
|
|
+ // var minutes = now.getMinutes(); // 获取分钟
|
|
|
+ // var seconds = now.getSeconds(); // 获取秒
|
|
|
+
|
|
|
+ // month = month < 10 ? '0' + month : month;
|
|
|
+ // date = date < 10 ? '0' + date : date;
|
|
|
+ // hours = hours < 10 ? '0' + hours : hours;
|
|
|
+ // minutes = minutes < 10 ? '0' + minutes : minutes;
|
|
|
+ // seconds = seconds < 10 ? '0' + seconds : seconds;
|
|
|
+
|
|
|
+ // // 拼接日期和时间字符串
|
|
|
+ // var currentDateTime = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + seconds;
|
|
|
+
|
|
|
+ // console.log(currentDateTime);
|
|
|
+ // var currentDate = year + '-' + month + '-' + date;
|
|
|
+ // var currentTime = hours + ':' + minutes + ':' + seconds;
|
|
|
+
|
|
|
+ // this.selectComponent('#mychart-dom-bar00').init((canvas, width, height) => {
|
|
|
+ // that.initChart00(canvas, width, height)
|
|
|
+ // });
|
|
|
+
|
|
|
+ // 设置canvas的宽高
|
|
|
+ this.setData({
|
|
|
+ // currentDate: currentDate,
|
|
|
+ // currentTime: currentTime,
|
|
|
+ canvasWidth: canvasWidth,
|
|
|
+ canvasHeight: canvasHeight,
|
|
|
+ hotelcode: hotelcodeTemp,
|
|
|
+ roomcode: roomcodeTemp,
|
|
|
+// roomname: wx.getStorageSync('roomname'),
|
|
|
+
|
|
|
+ // arrayFourth: array,
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // else if(!this.data.home_room.includes(wx.getStorageSync('res').result)){
|
|
|
+ // wx.showModal({
|
|
|
+ // title: '提示',
|
|
|
+ // content: '房间二维码不正确,请重新扫描',
|
|
|
+ // showCancel: false
|
|
|
+ // });
|
|
|
+
|
|
|
+ // setTimeout(function() {
|
|
|
+ // wx.reLaunch({
|
|
|
+ // url: '/pages/scan/scan',
|
|
|
+ // })
|
|
|
+ // }, 2000) // 设置延时时间,单位为毫秒
|
|
|
+
|
|
|
+ // }
|
|
|
+ // else if(this.data.home_room.includes(wx.getStorageSync('res').result) && wx.getStorageSync('res').result.includes('辰悦颐养斋')){
|
|
|
+ // else if(wx.getStorageSync('res').result.includes('辰悦颐养斋')){
|
|
|
+
|
|
|
+ // homeApi = "http://zhh.aidsleep.cn";
|
|
|
+ // homeApi_http = "http://zhh.aidsleep.cn";
|
|
|
+ // homeApi_http_port = "9123";
|
|
|
+ // homeApi_https = "https://zhh.aidsleep.cn";
|
|
|
+ // }
|
|
|
+
|
|
|
+ this.drawCircle();
|
|
|
+
|
|
|
+},
|
|
|
+mounted() {
|
|
|
+
|
|
|
+},
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面隐藏
|
|
|
+ */
|
|
|
+ onHide: function() {
|
|
|
+ // wx.clearStorage();
|
|
|
+ // this.clearInterval();
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面卸载
|
|
|
+ */
|
|
|
+ onUnload: function() {
|
|
|
+ // wx.clearStorage();
|
|
|
+ // this.clearInterval();
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面相关事件处理函数--监听用户下拉动作
|
|
|
+ */
|
|
|
+ onPullDownRefresh: function() {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面上拉触底事件的处理函数
|
|
|
+ */
|
|
|
+ onReachBottom: function() {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户点击右上角分享
|
|
|
+ */
|
|
|
+ onShareAppMessage: function() {
|
|
|
+
|
|
|
+ }
|
|
|
+})
|