222 lines
8.4 KiB
JavaScript
222 lines
8.4 KiB
JavaScript
|
|
|||
|
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();
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
})
|
|||
|
|