vue + echart 之热力图,关系图

注意:在默认引入echart 包的时候并没有关系图表,需要自己手动去官网自定义下载。我这边就是这么操作的

1.引入

2.使用

 

//初始化图表

initGraph() {

var chart = echarts.init(this.$refs.graph)

var graph = this.ChartData;

var newArr = this.ChartData.nodes;

for (var i = newArr.length - 1; i >= 0; i--) {

var targetNode = newArr[i];

for (var j = 0; j < i; j++) {

if (targetNode.name == newArr[j].name) {

newArr.splice(i, 1);

break;

}

}

}

var categories = [];

graph.nodes.map((node, index) => {

node.itemStyle = null;

node.size = null;

if (0 < node.value && node.value < 100) {

// console.log('0-100')

node.size = 10;

graph.nodes[index].symbolSize = node.size; //大小设置

graph.nodes[index].itemStyle = {

normal: {

color: '#c23531' //点的颜色设置

}

}

} else if (100 < node.value && node.value < 1000) {

// console.log('100-1000')

node.size = 20

graph.nodes[index].symbolSize = node.size; //大小设置

graph.nodes[index].itemStyle = {

normal: {

color: '#bda29a' //点的颜色设置

}

}

} else if (1000 < node.value && node.value < 10000) {

node.size = 30

graph.nodes[index].symbolSize = node.size; //大小设置

graph.nodes[index].itemStyle = {

normal: {

color: '#61a0a8' //点的颜色设置

}

}

} else if (10000 < node.value && node.value < 50000) {

node.size = 50

graph.nodes[index].symbolSize = node.size; //大小设置

graph.nodes[index].itemStyle = {

normal: {

color: '#d48265' //点的颜色设置

}

}

}else if( node.value == 0){

graph.nodes[index].symbolSize = 7; //大小设置

graph.nodes[index].itemStyle = {

normal: {

color: '#00BFFF' //点的颜色设置

}

}

}

 

// node.label = {

// //点文字的显示设置

// normal: {

// show: node.value > 500,

// color: 'blue'

// }

// };

// Use random x, y

node.x = node.y = null;

node.draggable = true;

})

// console.log(graph)

chart.setOption({

title: {

text: '文件外发关系图',

subtext: '',

top: 'top',

left: 'left'

},

//鼠标移动到点上显示

tooltip: {

trigger :'item',

formatter: function(params,e,c){

// console.log(params); 这里自己可以处理显示的内容

var targetValue = '';

var sourcetValue = '';

if(params.data.target){

// console.log(params.target)

graph.nodes.map((el,index)=>{

if(params.data.target == el.name ){

targetValue =el.value;

}

if(params.data.source == el.name ){

sourcetValue =el.value;

}

if(targetValue>sourcetValue){

//数值大小显示大小

params.data.name = params.data.target +'>'+ params.data.source

}else{

params.data.name = params.data.target +'<'+ params.data.source

}

})

return params.data.name

}else{

return params.data.name +':'+ params.data.value

}

}

},

legend: [{

// selectedMode: 'single',

data: categories.map(function(a) {

return a.name;

})

}],

animationDuration: 1500,

animationEasingUpdate: 'quinticInOut',

series: [{

name: '',

type: 'graph',

// layout: 'none',

layout: 'force',//这里显示的布局

data: graph.nodes,//点

links: graph.links,//线

categories: categories,//分类

roam: true,

focusNodeAdjacency: true,

// edgeSymbol: ['arrow',''],

itemStyle: {

normal: {

borderColor: '#fff',

borderWidth: 1,

shadowBlur: 1,

shadowColor: 'rgba(0, 0, 0, 0.3)'

}

},

label: {

position: 'right',

formatter: '{b}:{c}',

// normal: {

// // show: true //线条显示的文字

// color:'green'

// }

},

force: {

repulsion: 100

},

lineStyle: {

// type:'dashed'

// color: 'source',

// curveness: 0.1

},

emphasis: {

//鼠标移动过去线条的显示

formatter: '{b}:{c}',

label:{

normal: {

show: true //线条显示的文字

}

},

lineStyle: {

width: 6,

}

}

}]

})

}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。ECharts是一种用于创建交互性和可视化表的表库。在生产环境中,可以使用VueECharts来创建一个生产任务看板。 首先,我们可以使用Vue框架来构建用户界面。通过Vue的组件化架构,我们可以将任务看板拆分为多个可重用的组件,例如任务列表、进度条、功能按钮等。这样可以使代码更可维护和可扩展。同时,Vue提供了响应式的数据绑定机制,可以实时更新任务看板的数据,并与后端进行数据交互。 然后,我们可以使用ECharts表库来创建可视化表,以展示任务看板上的数据。例如,可以使用饼来显示任务的进度分布,柱状来展示各个任务的完成情况,折线来展示任务的趋势等。ECharts提供了丰富的表类型和交互功能,可以根据实际需求进行灵活配置。 在整个过程中,我们可以利用Vue的生命周期钩子函数来实现数据的获取、更新和渲染。当用户发起操作时,可以通过Vue的事件机制来触发相应的业务逻辑。例如,当用户点击任务列表中的某个任务时,可以发送请求获取该任务的详细信息,并在界面上展示出来。 最后,为了提高用户体验,我们可以将任务看板进行排版和样式的优化,使其在不同设备和浏览器上都能良好展示。同时,可以增加一些交互功能,例如拖拽任务、快速搜索任务等,以提高用户的生产效率。 总结而言,通过使用VueECharts,我们可以实现一个功能齐全、交互性强的生产任务看板。它可以直观展示任务的状态和进度,并提供方便的操作和管理功能,帮助用户更好地进行生产任务的监控和调度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值