import Taro from "@tarojs/taro"; import classnames from "classnames"; import { Block, View, Image, Text, Input } from "@tarojs/components"; import { Popup, Progress, Slider } from "@antmjs/vantui"; import { useRef } from "react"; import Echarts, { EChartOption, EchartsHandle } from "taro-react-echarts"; import echarts from "@/utils/echarts.min.js"; import "./index.less"; interface Props { Electricity: any; matrixElectricity: any; facialMaskConnectStatus: any; } function Index() { const echartsRef = useRef(null); function generateColorArray(startColor, endColor, steps) { var startRGB = hexToRgb(startColor); var endRGB = hexToRgb(endColor); var colors = []; for (var i = 0; i < steps; i++) { var r = interpolate(startRGB.r, endRGB.r, steps, i); var g = interpolate(startRGB.g, endRGB.g, steps, i); var b = interpolate(startRGB.b, endRGB.b, steps, i); colors.push(rgbToHex(r, g, b)); } return colors; } function hexToRgb(hex) { var bigint = parseInt(hex.slice(1), 16); var r = (bigint >> 16) & 255; var g = (bigint >> 8) & 255; var b = bigint & 255; return { r: r, g: g, b: b }; } function rgbToHex(r, g, b) { return ( "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1) ); } function interpolate(start, end, steps, count) { return start + ((end - start) / steps) * count; } const startColor = "#FFFF00"; // 黄色 const endColor = "#FF0000"; // 红色 const steps = 80; // 80个颜色 const colors = generateColorArray(startColor, endColor, steps); const xList = [...new Array(37).fill(0).map((item, key) => key)]; const seriesData = [ ...xList.map((item) => { return Math.random() * 80; }), ]; // let seriesData=[ // 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3, // 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3, // 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,8,5,1,2,3, // 1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ,1,2,2,3,3,4,5,1,2,3,4,2,3,5,1,2,3 // ] // console.log(seriesData,'seriesData',xList); const option: EChartOption ={ grid: { // 让图表占满容器 top: "10rpx", left: "45rpx", right: "28rpx", bottom: "17rpx", }, xAxis: { type: "category", data: [...xList], axisLabel: { interval: 5, formatter: function (value, index) { console.log(value,'查看'); return value * 10 + 's'; }, textStyle: { color: '#999999', // 文字颜色 fontSize: 8 // 文字大小 }, }, axisTick: { // alignWithLabel: true, show: false, interval: 9, }, // axisLine: { // show: false, // }, }, yAxis: [ { min: 0, max: 80, splitNumber: 10, axisLabel: { formatter: function (value, index) { const num = value / 10 + 1 return num === 9 ? '' : num + '级'; }, textStyle: { color: '#999999', // 文字颜色 fontSize: 8 // 文字大小 }, }, type: "value", splitLine: { lineStyle: { color: ["#ccc", "#ccc", "#ccc", "#ccc", "#ccc", "#ccc", "#ccc", "#ccc", "#fff"], type: 'dashed' }, } }, ], series: [ { barCategoryGap: '0%', data: seriesData, type: "bar", // barWidth: 15, gapWidth: "0%", itemStyle: { normal: { color: function (params) { var value = params.data; return new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: colors[parseInt(value)], // 红色 }, { offset: 1, color: colors[0], // 黄色 }, ]);; }, }, }, }, ], }; let arr = [2, 3, 4, 5, 6, 7] return ( {/* */} ); } export default Index;