jhwxapp/miniprogram/newComponents/safety-bar-chartss/index.js

231 lines
7.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// components/safety-pie-chart/index.js
import * as echarts from '../../ec-canvas/echarts'
Component({
/**
* 组件的属性列表
*/
properties: {
chartId:{
type: String
},
data:{
type: Array
},
height:{
type: Number
}
},
observers: {
data: function (val) {
this.initChart()
this.setData({
chartData:val
})
},
},
/**
* 组件的初始数据
*/
data: {
ec: {
lazyLoad: true
},
chart:undefined,
chartData:[]
},
lifetimes: {
created: function(){
//在组件实例刚刚被创建时执行,注意此时不能调用 setData
},
attached: function () {
//在组件实例进入页面节点树时执行
},
ready: function () {
// 在组件在视图层布局完成后执行
this.initChart();
},
detached: function () {
// 在组件实例被从页面节点树移除时执行
},
},
/**
* 组件的方法列表
*/
methods: {
initChart(){
var id ='#' + this.data.chartId;
this.component = this.selectComponent(id);
if(this.component){
this.component.init((canvas, width, height, dpr) => {
let chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr
})
chart.setOption(this.getData());
return chart;
})
}
},
getData() {
var data = this.data.chartData
console.log(data)
var yData_1 = []
var yData_2 = []
var xData = []
var legend = ['设计量','应耗量']
var unit = '单位m³'
data.forEach(item =>{
yData_1.push(item.sjQuantity)
yData_2.push(item.yesMonitor)
xData.push(item.name)
})
var option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
label: {
show: true,
},
},
},
grid:{
left: "15%",
top: "25%",
right: "5%",
bottom: "12%",
},
legend: {
data: legend,
right: 10,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
xAxis: {
data: xData,
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: "#2f4472",
width: 1,
},
},
axisTick: {
show: true, //隐藏X轴刻度
alignWithLabel: true,
},
axisLabel: {
show: true,
textStyle: {
color: "#cbdaff", //X轴文字颜色
fontSize: 12,
},
interval: 0,
},
},
yAxis: {
name:unit,
nameTextStyle: { //Y轴那么的样式
color: '#42d0ff',
fontSize: 12,
},
type: "value",
axisLabel: {
textStyle: {
color: "#cbdaff",
},
formatter: "{value}",
},
splitLine: {
lineStyle: {
type: "dashed",
color: "#2f4472",
},
},
axisLine: {
show: true,
lineStyle: {
color: "#2f4472",
},
},
},
series: [
{
name: legend[0],
type: "bar",
barWidth: 8,
barGap: 2,
label: {
normal: {
show: true,
position: "top",
color:"#fff"
},
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgba(64,124,254,1)",
},
{
offset: 1,
color: "rgba(64,124,254,0.2)",
},
]),
},
},
data: yData_1,
},
{
name: legend[1],
type: "bar",
barWidth: 8,
barGap: 2,
label: {
normal: {
show: true,
position: "inside",
color:"#fff"
},
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: "rgba(25,210,204,1)",
},
{
offset: 1,
color: "rgba(25,210,204,0.2)",
},
]),
},
},
data: yData_2,
},
],
};
return option;
}
}
})