最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中使用echarts以及簡單關(guān)系圖的點擊事件方式

 更新時間:2024年06月12日 10:44:25   作者:宣宣丿  
這篇文章主要介紹了vue中使用echarts以及簡單關(guān)系圖的點擊事件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1.安裝

在Vue項目中打開終端執(zhí)行命令:

npm install echarts --save

下載后在package.json文件中可以看到下載的Echarts版本:

2.導(dǎo)入

在需要使用Echarts圖表的頁面中導(dǎo)入:

import * as echarts from "echarts";

如果多個地方使用的話可以通過全局引入:

import * as echarts from 'echarts'
// 掛載到Vue實例
Vue.prototype.$echarts = echarts

3.繪制靜態(tài)圖表

在需要用到echarts的地方設(shè)置一個有寬高的div盒子

<div>
   <div
   ref="chart"
   style="width:800px;height:600px;margin: auto">
    </div>
</div>

定義echarts關(guān)系圖的數(shù)據(jù)

  data() {
   return {
     data: [
       {
         name: "Node 1",
         x: 300,
         y: 300,
       },
       {
         name: "Node 2",
         x: 800,
         y: 300,
       },
       {
         name: "Node 3",
         x: 550,
         y: 100,
       },
       {
         name: "Node 4",
         x: 550,
         y: 500,
       },
     ],
     links: [
       {
         source: 0,
         target: 1,
         symbolSize: [5, 20],
         label: {
           show: true,
         },
         lineStyle: {
           width: 5,
           curveness: 0.2,
         },
       },
       {
         source: "Node 2",
         target: "Node 1",
         label: {
           show: true,
         },
         lineStyle: {
           curveness: 0.2,
         },
       },
       {
         source: "Node 1",
         target: "Node 3",
       },
       {
         source: "Node 2",
         target: "Node 3",
       },
       {
         source: "Node 2",
         target: "Node 4",
       },
       {
         source: "Node 1",
         target: "Node 4",
       },
     ],
     num: 0,  // 點擊次數(shù)
   };
 },

在methods中定義實例化echarts對象的方法,在mounted生命周期中調(diào)用(確保dom元素已經(jīng)掛載到頁面當(dāng)中)

mounted() {
    this.getEchartData();
  },
  methods: {
    getEchartData() {
      const chart = this.$refs.chart;
       // 初始化echarts
      this.mychart = echarts.init(chart);
      let that = this;
       // option就是需要引進(jìn)echarts關(guān)系圖中的代碼
      let option = {
        title: {
          text: "Basic Graph",
        },
        tooltip: {},
        animationDurationUpdate: 1500,
        animationEasingUpdate: "quinticInOut",
        series: [
          {
            type: "graph",
            layout: "none",
            symbolSize: 50,
            roam: true,
            label: {
              show: true,
            },
            edgeSymbol: ["circle", "arrow"],
            edgeSymbolSize: [4, 10],
            edgeLabel: {
              fontSize: 20,
            },
            lineStyle: {
              opacity: 0.9,
              width: 2,
              curveness: 0,
            },
            // data: []
            data: that.data,
            // links: [],
            links: that.links,
          },
        ],
      };
       // option數(shù)據(jù)放入圖表中
      this.mychart.setOption(option);
    },
  },

啟動項目,在頁面中看到如下效果:

4.關(guān)系圖節(jié)點點擊事件

上面只是展示了靜態(tài)的關(guān)系圖,如節(jié)點數(shù)據(jù)太多,各節(jié)點關(guān)系復(fù)雜,就可只展示主要數(shù)據(jù),其他可通過點擊節(jié)點查看各節(jié)點關(guān)系

需求:新建一個Node5,Node5和Node2有關(guān)系,點擊Node2展示Node5節(jié)點

在上面原本的getEchartData()方法中,添加關(guān)系圖的節(jié)點點擊事件

通過事件參數(shù)param中的dataType屬性值確認(rèn)點擊的對象是關(guān)系圖節(jié)點還是節(jié)點之間的邊緣,值為node時點擊的是節(jié)點,值為edge時點擊的是邊緣

通過param中的dataIndex值確定點擊的節(jié)點元素

完整代碼如下:

getEchartData() {
      const chart = this.$refs.chart;
      // 初始化echarts
      this.mychart = echarts.init(chart);
      let that = this;
      // option就是需要引進(jìn)echarts關(guān)系圖中的代碼
      let option = {
        title: {
          text: "Basic Graph",
        },
        tooltip: {},
        animationDurationUpdate: 1500,
        animationEasingUpdate: "quinticInOut",
        series: [
          {
            type: "graph",
            layout: "none",
            symbolSize: 50,
            roam: true,
            label: {
              show: true,
            },
            edgeSymbol: ["circle", "arrow"],
            edgeSymbolSize: [4, 10],
            edgeLabel: {
              fontSize: 20,
            },
            lineStyle: {
              opacity: 0.9,
              width: 2,
              curveness: 0,
            },
            // data: []
            data: that.data,
            // links: [],
            links: that.links,
          },
        ],
      };

      // echarts圖表的點擊事件,可通過param參數(shù)確認(rèn)點擊的對象
      that.mychart.on("click", function (param) {
        if (param.dataType == "node") {
            // Node2的 param.dataIndex 值為1
          if (param.dataIndex == 1) {
              // 判斷點擊的次數(shù),單數(shù)顯示Node5數(shù)據(jù),雙數(shù)隱藏
            that.num++;
            if (that.num % 2 == 1) {
              that.data.push({
                name: "Node 5",
                x: 900,
                y: 300,
              });
              that.links.push({
                source: "Node 2",
                target: "Node 5",
              });
              that.mychart.setOption(option);
            } else {
              that.data.pop();
              that.links.pop();
              that.mychart.setOption(option);
            }
          }
        } else {
          console.log("點擊了邊", param);
        }
      });
      // option數(shù)據(jù)放入圖表中
      this.mychart.setOption(option);
    },

最終效果如下:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+elementui 實現(xiàn)新增和修改共用一個彈框的完整代碼

    vue+elementui 實現(xiàn)新增和修改共用一個彈框的完整代碼

    Element-Ul是餓了么前端團(tuán)隊推出的一款基于Vue.js 2.0 的桌面端UI框架,手機(jī)端有對應(yīng)框架是Mint UI ,今天給大家普及vue+elementui 實現(xiàn)新增和修改共用一個彈框的完整代碼,一起看看吧
    2021-06-06
  • 關(guān)于vue2強(qiáng)制刷新,解決頁面不會重新渲染的問題

    關(guān)于vue2強(qiáng)制刷新,解決頁面不會重新渲染的問題

    今天小編就為大家分享一篇關(guān)于vue2強(qiáng)制刷新,解決頁面不會重新渲染的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue如何監(jiān)聽某個元素的大小變化

    vue如何監(jiān)聽某個元素的大小變化

    這篇文章主要介紹了vue如何監(jiān)聽某個元素的大小變化問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 在vue-cli項目中如何使用swiper

    在vue-cli項目中如何使用swiper

    這篇文章主要介紹了在vue-cli項目中如何使用swiper問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue之nextTick全面解析

    vue之nextTick全面解析

    本篇文章主要介紹了vue之nextTick全面解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Vue Camera組件功能及常用使用方法

    Vue Camera組件功能及常用使用方法

    Vue Camera組件是一個用于在Web應(yīng)用中使用攝像頭的Vue插件,它提供了一些常見的功能和方法來控制攝像頭和捕獲圖像或視頻數(shù)據(jù),本文給大家介紹Vue Camera組件的常見功能和使用方法,感興趣的朋友一起看看吧
    2023-11-11
  • Vue使用localStorage存儲數(shù)據(jù)的方法

    Vue使用localStorage存儲數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了Vue使用localStorage存儲數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Vue字符串中如何添加多個空格

    Vue字符串中如何添加多個空格

    這篇文章主要介紹了Vue字符串中如何添加多個空格問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • vue3 可拖動的左右面板分割組件實現(xiàn)

    vue3 可拖動的左右面板分割組件實現(xiàn)

    最近在使用vue的時候,遇到一個需求,實現(xiàn)左右div可通過中間部分拖拽調(diào)整寬度,本文就整理一下,分享給大家,有興趣的可以學(xué)習(xí)
    2021-06-06
  • vue3中echarts圖表在頁面刷新后無法自適應(yīng)改變大小的解決過程

    vue3中echarts圖表在頁面刷新后無法自適應(yīng)改變大小的解決過程

    優(yōu)化ECharts圖表開發(fā)需獨立變量、創(chuàng)建顯示方法,并通過添加和移除窗口大小監(jiān)聽實現(xiàn)響應(yīng)式刷新,確保性能與資源管理
    2025-09-09

最新評論

绥阳县| 高淳县| 仲巴县| 灵宝市| 电白县| 诸城市| 陵川县| 普兰店市| 雷州市| 南乐县| 浪卡子县| 历史| 纳雍县| 彭山县| 保康县| 黄陵县| 遵义县| 如东县| 汾阳市| 固阳县| 龙胜| 宁远县| 郎溪县| 延安市| 安义县| 深泽县| 廉江市| 娱乐| 河南省| 宁波市| 察雅县| 阜阳市| 大悟县| 尉犁县| 浠水县| 凌源市| 桂东县| 乐业县| 汤原县| 上饶县| 汕头市|