| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- // pages/setup/index.js
- import * as echarts from '../../ec-canvas/echarts';
-
- const api = require('../../api/index.js');
- var fitness=''
- Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- // 状态栏高度
- statusBarHeight: wx.getStorageSync('statusBarHeight'),
- // 导航栏高度
- navBarHeight: wx.getStorageSync('navBarHeight'),
- // 导航栏和状态栏高度
- navStatusBarHeight: wx.getStorageSync('navStatusBarHeight'),
- // 胶囊
- menu:wx.getStorageSync('menu'),
- fitness:{},
- ec: {
- onInit: initChart
- }
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad(options) {
- this.getuser()
- },
- getuser(){
- api.request(`/station/fitness/${wx.getStorageSync('station').id}`, 'POST')
- .then((res) => {
- // console.log(res);
- fitness = res.data
- this.setData({
- fitness:res.data
- })
- // console.log(this.data.fitness.temperature);
- })
- .catch((err) => {
- console.error('请求失败:', err);
- // 在这里处理请求失败的情况
-
-
- });
- },
- // 返回上一级
- onIconTap(){
- wx.navigateBack({
- delta: 1
- });
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady() {
-
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow() {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide() {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload() {
-
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh() {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom() {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage() {
-
- }
- })
- function initChart(canvas, width, height) {
- const chart = echarts.init(canvas, null, {
- width: width,
- height: height
- });
- canvas.setChart(chart);
-
- let colors = ['#35d964', '#d9bc39', '#da5660'],
- color;
- let subtext = ''
- if (fitness.alarmStatus==0) {
- subtext = '状态:' + '{a|离线}'
- } else if(fitness.alarmStatus==1) {
- subtext = '状态:' + '{b|在线}'
- }else{
- subtext = '状态:' + '{c|故障}'
- }
- let data = fitness.temperature; //数值大小
- let max = 75; //满刻度大小
- let title = {
- text: data + ' ' + '℃',
- subtext: subtext,
- x: 'center',
- y: 'center',
- textStyle: {
- color: '#222',
- fontSize: 30,
- },
- subtextStyle: {
- fontSize: 18,
- rich: {
- a: {
- color: '#FFA500', // 设置 '正常' 的文本颜色为橙色
- fontSize: 18
- },
- b: {
- color: '#15DB9B', //设置 '离线' 的文本颜色为绿色
- fontSize: 18
- },
- c: {
- color: '#FF6347', // 设置 '故障' 的文本颜色为红色
- fontSize: 18
- }
- }
- }
- };
-
- if (data < 150) {
- color = colors[0];
- } else if (data > 150 && data < 250) {
- color = colors[1];
- } else if (data > 250 || data == 250) {
- color = colors[2];
- }
- var option = {
- title: title,
- series: [
- {
- name: "",
- type: 'gauge',
- splitNumber: 40, //刻度数量
- min: 0,
- max: 100,
- radius: '80%', //图表尺寸
- center: ['50%', '50%'],
- startAngle: 90,
- endAngle: -269.9999,
- axisLine: {
- show: false,
- lineStyle: {
- width: 0,
- shadowBlur: 0,
- color: [
- [1, '#0dc2fe']
- ]
- }
- },
- axisTick: {
- show: false,
- lineStyle: {
- color: 'auto',
- width: 2
- },
- length: 20,
- splitNumber: 5
- },
- splitLine: {
- show: true,
- length: 10,
- lineStyle: {
- color: 'auto',
- }
- },
- axisLabel: {
- show: false
- },
- pointer: { //仪表盘指针
- show: 0,
- },
- detail: {
- show: 0,
- },
- },
- {
- type: "pie",
- center: ["50%", "50%"],
- radius: ["75%", "80%"],
- hoverAnimation: false,
-
- data: [
- {
- name: "",
- value: data * 0.8,
- itemStyle: {
- borderColor: color,
- borderRadius: 10,
- borderWidth: 5,
- color: color,
- },
- labelLine: {
- show: false,
- lineStyle: {
- color: 'rgba(0,0,0,0)',
- width: 2
- }
- }
-
- },
- { //画中间的图标
- name: "",
- value: 0,
- label: {
- position: 'inside',
- backgroundColor: color,
- borderRadius: 100,
- borderWidth: 10,
- borderColor: '#ffffff',
- padding: 20,
- },
- },
- {
- name: "",
- value: data * 0.2,
- itemStyle: {
- borderColor: color,
- borderWidth: 5,
- color: color,
- },
- labelLine: {
- show: false,
- lineStyle: {
- color: 'rgba(0,0,0,0)',
- width: 2
- }
- }
-
- },
- { //画剩余的刻度圆环
- name: "",
- value: max - data,
- label: {
- show: false
- },
- itemStyle: {
- borderType: 'dashed',
- borderRadius: 10,
- borderColor: '#919192',
- borderWidth: 0,
- color: 'rgba(0,0,0,0)',
- },
- labelLine: {
- show: true,
- lineStyle: {
- color: 'rgba(0,0,0,0)',
- width: 2
- }
- },
-
- }
- ]
- },
- ]
- };
-
- chart.setOption(option, true);
-
- return chart;
- }
|