mkl_power_box/components/safe-curve-chart.js

222 lines
8.4 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.

Vue.component("safe-curve-chart", {
template: `
<div :style="{height: height+'px'}" ref="chart">
</div>
`,
props: {
height:{
type: Number,
},
momentdata:{
type: Object,
}
},
data() {
return {
}
},
mounted(){
this.init()
},
methods: {
init(){
this.momentCurveChart(this.momentdata)
},
momentCurveChart(data){
let newPromise = new Promise((resolve) => {
resolve()
})
//然后异步执行echarts的初始化函数
newPromise.then(() => {
var myChart = echarts.init(this.$refs.chart);
var color = '#20bc00'
/* if(data.state == 1){
color = '#ff9600'
}*/
var Xmax = Math.max.apply(null,data.dataX);
var Ymax = Math.max.apply(null,data.dataY);
option = {
tooltip: {
position: "top",
formatter: function (params) {
var fd = params.data[0];
var dz = params.data[1]
res = '<div style="padding: 5px 10px;">' +
'<div style="padding-bottom: 5px;">幅度:<span>'+fd+'</span> m</div>' +
'<div>吊重:<span>'+dz+'</span> t</div>' +
'</div>'
return res
},
},
grid: {
top: "20%",
right: "15%",
left: "4%",
bottom: "5%",
containLabel: true
},
xAxis: [
{
type: "value",
name:'幅度/m',
max:60,
nameTextStyle: {
color: "#c5d9fc",
fontSize:14,
},
splitLine: {
//去除网格线
show: false,
},
axisTick: { show: false },
axisLabel: {
//坐标轴刻度标签的相关设置
textStyle: {
color: "#c5d9fc",
margin: 20,
fontSize:16
},
},
},
{
type: "category",
boundaryGap: false,
position: "bottom",
axisLine: {
//坐标轴轴线相关设置。数学上的x轴
show: true,
lineStyle: {
color: "#194e92",
type: "dashed",
},
},
axisTick: { show: false },
axisLabel: {
show: false,
//坐标轴刻度标签的相关设置
textStyle: {
color: "#c5d9fc",
margin: 20,
fontSize:16
},
},
data: data.dataX,
},
],
yAxis: [
{
name:'吊重/t',
nameTextStyle: {
color: "#c5d9fc",
fontSize:14,
},
max:Ymax+1,
type: "value",
splitNumber: 7,
splitLine: {
show: false,
},
axisLine: {
//坐标轴轴线相关设置。数学上的x轴
show: true,
lineStyle: {
color: "#194e92",
type: "dashed",
},
},
axisLabel: {
margin: 20,
textStyle: {
color: "#c5d9fc",
fontSize:16
},
},
axisTick: { show: false },
},
],
series: [
{
name: "吊重",
type: "effectScatter",
rippleEffect:{ // 设置涟漪动画样式
color:'purple', // 涟漪颜色,默认为散点自身颜色
brushType:'fill', // 动画方式,全填充或只有线条,'stroke' 'fill'
period:2, //动画周期
scale:'3', //涟漪规模
},
xAxisIndex: 0,
yAxisIndex: 0,
symbolSize:15, //散点的固定大小
/*label: {
emphasis: {
show: true,
position: "right",
textStyle: {
color: color,
fontSize: 20,
},
},
},*/
itemStyle: {
color: color,
},
data: data.point,
},
{
type: "line",
symbol: "none",
smooth: true,
xAxisIndex: 1,
yAxisIndex: 0,
lineStyle: {
normal: {
width: 3,
color: "#5968db", // 线条颜色
},
},
areaStyle: {
//区域填充样式
normal: {
//线性渐变前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是true则该四个值是绝对像素位置。
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "rgb(25,43,115,0.9)" },
{ offset: 0.7, color: "rgba(25,43,115, 0)" },
],
false
),
shadowColor: "rgba(25,43,115, 1)", //阴影颜色
},
},
data: data.dataY,
},
],
};
myChart.setOption(option);
window.onresize = myChart.resize;
})
},
},
watch:{
momentdata: function (n,o) {
this.init();
}
},
})