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

vue?echarts移動(dòng)端踩坑解決記錄

 更新時(shí)間:2023年07月26日 09:28:31   作者:emcty  
這篇文章主要為大家介紹了vue?echarts移動(dòng)端踩坑解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

最近手頭一個(gè)項(xiàng)目需要做兩個(gè)圖,一個(gè)是折線圖,一個(gè)餅圖。由于是基于Vue的項(xiàng)目,第一時(shí)間就想到用vue-echarts來(lái)實(shí)現(xiàn)。vue-echarts本質(zhì)上也是使用了echarts.js,只是包裝成vue組件。

1、安裝vue-echarts包

npm install vue-echarts

2、折線圖代碼

template:

<echarts :options="trendChart" ref="trendEchart"></echarts>

js:

import ECharts from 'vue-echarts/components/ECharts.vue'; //引用vue-echarts
import "echarts/lib/component/tooltip"; //按需加載相關(guān)的包
import "echarts/lib/chart/pie";
import "echarts/lib/chart/line";
export default {
  trendChart: {
    grid: {
      left: '10%',
      top: 52,
    },
    tooltip: {
        trigger: 'axis',
        showContent: true,
        position:function(p){   
          return [p[0] + 10000000000, 0]; //不需要顯示彈層信息
        },
        formatter: (parmes)=>{  //選擇折線圖上的坐標(biāo)可以獲得相關(guān)值
          let value1 = parmes[0];
          let value2 = parmes[1];
          //拿到值后,需要在哪顯示可以在這操作
        }
    },
    textStyle: {
      color: "#999",
    },
    label:{
      fontSize: 44,
    },
    xAxis: {
        type: 'category', //類目的行式,原樣展示
        boundaryGap: false, //兩邊留白策略
        offset: 3, 
        axisLine:{
          show:false, //是否顯示坐標(biāo)軸軸線,默認(rèn)顯示
        },
        axisTick:{
          show: false, //是否顯示坐標(biāo)軸刻度
        },
        axisLabel: {
          interval: 10000,   //默認(rèn)1,表示【隔一個(gè)標(biāo)簽顯示一個(gè)標(biāo)簽】
          showMinLabel: true, //x軸只需要展示最小的和最大的值
          showMaxLabel: true,
          fontSize: 20,
          //padding: [10, 0, 0, 0], 這里可以設(shè)置坐標(biāo)軸的標(biāo)簽的padding值
        },
        data: [], 
    },
    yAxis: {
        type: 'value',
        boundaryGap: false,
        axisLine:{
          show:false,
        },
        axisLabel:{
          fontSize: 22,
          formatter: '{value}%'  //格式化標(biāo)簽值
        },
        axisTick:{
          show: false,
        },
       lineStyle: {
        //網(wǎng)絡(luò)線設(shè)置(只作用于非類目鈾)
        show: true,
        color: "#f5f5f5",
        width: 1,
        type: "solid"
      },
      splitNumber: 5, //Y軸分格為幾段
      min: value => {
        return value.min - 1; //最小顯示的值
      },
      max: null, //最大顯示的值
      interval: 2 //間隔
    },
    series: [{
        name: '本組合',
        type: 'line',
        silent: false,
        showSymbol: false, //不顯示折線上的數(shù)據(jù)點(diǎn),只在hover的時(shí)候顯示
        smooth: false, //0-1之間,true時(shí)為曲線,flase為折線,線彎曲度
        color: '#e2b256',
        lineStyle:{
          width: 3, //線條寬度
        },
        data: []
    },{
      name: '上證指數(shù)',
      type: 'line',
      silent: false,
      showSymbol: false, //不顯示折線上的數(shù)據(jù)點(diǎn),只在hover的時(shí)候顯示
      smooth: false, //0-1之間,true時(shí)為曲線,flase為折線,線彎曲度
      color: '#5eb8e2',
      data: []
    }]
  },
},
methods: {
    //計(jì)算Y鈾min,max,interval三個(gè)值,保證Y鈾能夠均等
    computeYaxis(data) {
      let allValues = [];
      for (let k of data) {
        for (let v of Object.values(k)) {
          if (Number(v)) {
            allValues.push(v);
          }
        }
      }
      //拿到數(shù)據(jù)當(dāng)中的最小值
      const min = Number.parseFloat(Math.min(...new Set(allValues))).toFixed(2);
      //讓顯示在坐標(biāo)上的最小值<數(shù)據(jù)當(dāng)中的最小值
      const newMin = min - 1;
      //拿到數(shù)據(jù)當(dāng)中的最大值
      const max = Number.parseFloat(Math.max(...new Set(allValues))).toFixed(2);
      let interval = Math.abs(
         //移動(dòng)端interval必須取整數(shù)才生效
        Math.ceil(Number.parseFloat((max - min) / 5).toFixed(2)) 
      );
      let newMax = Number.parseFloat(newMin + interval * 5).toFixed(2);
      //存在算出來(lái)的newMax值可能小于數(shù)據(jù)當(dāng)中的max值
      if (newMax < max) {
        interval++; 
        newMax = Number.parseFloat(newMin + interval * 5).toFixed(2);
      }
      this.trendChart.yAxis.max = newMax;
      this.trendChart.yAxis.interval = interval;
    },
},
components: {
  echarts: ECharts,
}

3、折線圖效果

初始狀態(tài)

mouseover狀態(tài)

移動(dòng)端還需要考慮當(dāng)touchmove到非echarts的地方,需要重置到初始狀態(tài),并到選中的當(dāng)前坐標(biāo)去掉等問(wèn)題。

4、餅圖代碼

template:

<echarts :options="overViewOption"></echarts>

js:

export defalut {
//pie圖   
pieColor: ["#edce91", "#deab6a", "#ffe2ac", "#fcefd6","#77623b"],               
overViewOption: {
    lineStyle: {
      color: "#e0bf80"
    },
    textStyle: {
      color: "#333",
      fontSize: 26
    },
    hoverOffset: 0,
    series: [
      {
        type: "pie",
        color: ["#edce91", "#deab6a", "#ffe2ac", "#fcefd6","#77623b"], 
        //每一塊對(duì)應(yīng)的色值
        hoverAnimation: false,
        // label:{
        //   normal:{
        //     show:false
        //   }
        // },
        radius: ["40%", "80%"],
        data: [],
      }
    ]   
 },
 //從后端獲取的數(shù)據(jù)
 let mainModelOverview = data.mainModelOverview.map((item,index) => {               
     return {
        value: Number.parseFloat(item.fundPercent),
        name: item.fundType + item.fundPercent +'%',
        emphasis:{
          itemStyle:{
            color: this.pieColor[index]   
            //鼠標(biāo)放在pie圖上對(duì)應(yīng)區(qū)域高亮顏色,防止高亮變色(這是個(gè)坑)
          }
        },   
    }; 
  }); 
  this.$set(this.overViewOption.series[0], "data", mainModelOverview);

5、拼圖效果

6、總結(jié)坑點(diǎn)

官網(wǎng)給的示例都是基于pc端,并沒(méi)有移動(dòng)端的示例。有些配置項(xiàng)的示例是用的echarts3,所以在使用的時(shí)候,同一個(gè)配置元素放在示例上編輯是沒(méi)有問(wèn)題的,但一旦放在項(xiàng)目當(dāng)中就不生效(本項(xiàng)目是基于echarts4)。

  • 事件支持:mouseover,click等pc端的事件。在移動(dòng)端,touchmove事件需要取消選中狀態(tài)需要自己加事件了。
  • interval: 官方給的建議是不推薦使用。示例給的interval可以為小數(shù)。但在移動(dòng)端interval加小數(shù)卻不管用,如果想均等每一列,并能夠正確展示數(shù)據(jù),那么需要自己去計(jì)算了。
  • api太多了,眼花...頭疼...

不過(guò),不得不佩服echarts的強(qiáng)大,能夠支持幾乎所有的定制化需求,具體怎么去實(shí)現(xiàn)你的需求,需要不斷的嘗試。在此需要這篇記錄能夠幫助到大家的工作,也希望大家能夠給予支持

以上就是vue echarts移動(dòng)端踩坑解決記錄的詳細(xì)內(nèi)容,更多關(guān)于vue echarts移動(dòng)端踩坑的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue3 elementPlus部分組件樣式修改的方法

    vue3 elementPlus部分組件樣式修改的方法

    這篇文章主要介紹了vue3 elementPlus部分組件樣式修改的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • element-ui在table中如何禁用其中幾行

    element-ui在table中如何禁用其中幾行

    這篇文章主要介紹了element-ui在table中如何禁用其中幾行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 安裝vue-cli的簡(jiǎn)易過(guò)程

    安裝vue-cli的簡(jiǎn)易過(guò)程

    安裝vue-cli的前提是你已經(jīng)安裝了npm,安裝npm你可以直接下載node的安裝包進(jìn)行安裝。接下來(lái)通過(guò)本文給大家介紹安裝vue-cli的簡(jiǎn)易過(guò)程,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 詳解auto-vue-file:一個(gè)自動(dòng)創(chuàng)建vue組件的包

    詳解auto-vue-file:一個(gè)自動(dòng)創(chuàng)建vue組件的包

    這篇文章主要介紹了auto-vue-file:一個(gè)自動(dòng)創(chuàng)建vue組件的包,需要的朋友可以參考下
    2019-04-04
  • Vue3中引用本地圖片路徑的方法詳解

    Vue3中引用本地圖片路徑的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue3中引用本地圖片路徑的常用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Vue3環(huán)境安裝以及項(xiàng)目搭建全過(guò)程

    Vue3環(huán)境安裝以及項(xiàng)目搭建全過(guò)程

    Vue工程化項(xiàng)目環(huán)境配置還是比較麻煩的,下面這篇文章主要給大家介紹了關(guān)于Vue3環(huán)境安裝以及項(xiàng)目搭建的相關(guān)資料,文中通過(guò)圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • vue3中el-table實(shí)現(xiàn)多表頭并表格合并行或列代碼示例

    vue3中el-table實(shí)現(xiàn)多表頭并表格合并行或列代碼示例

    這篇文章主要給大家介紹了關(guān)于vue3中el-table實(shí)現(xiàn)多表頭并表格合并行或列的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-02-02
  • Vue3 寫法示例與規(guī)范詳細(xì)指南

    Vue3 寫法示例與規(guī)范詳細(xì)指南

    本文給大家介紹Vue3寫法示例與規(guī)范詳細(xì)指南,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-09-09
  • Vue中router-view無(wú)法顯示的解決辦法

    Vue中router-view無(wú)法顯示的解決辦法

    這篇文章主要給大家介紹了關(guān)于Vue中router-view無(wú)法顯示的解決辦法,router-view組件作為vue最核心的路由管理組件,在項(xiàng)目中作為路由管理經(jīng)常被使用到,需要的朋友可以參考下
    2023-07-07
  • vue自定義指令之面板拖拽的實(shí)現(xiàn)

    vue自定義指令之面板拖拽的實(shí)現(xiàn)

    這篇文章主要介紹了vue自定義指令之面板拖拽的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論

临泉县| 丰镇市| 保康县| 泸溪县| 工布江达县| 孝义市| 怀安县| 武功县| 澄迈县| 天津市| 文成县| 银川市| 新丰县| 渭南市| 荆门市| 东平县| 许昌县| 河池市| 体育| 任丘市| 韩城市| 林州市| 建阳市| 博罗县| 千阳县| 瑞昌市| 静安区| 普宁市| 临汾市| 肇州县| 永顺县| 山丹县| 长阳| 平南县| 五原县| 阳西县| 牟定县| 台北县| 登封市| 明光市| 和平区|