欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)

 更新時(shí)間:2020年07月20日 09:54:11   作者:羅錦天  
這篇文章主要介紹了解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

在VUE實(shí)例中使用Echarts

安裝echarts依賴:

npm install echarts -s

編寫代碼:

引入echarts對象:

鑒于準(zhǔn)備工作中已經(jīng)通過npm安裝了echarts依賴,所以可以直接在vue文件中使用代碼import echarts from “echarts”引入echarts對象:

<script>
 import echarts from 'echarts/lib/echarts'
</script>

注意:只引入了echarts還不能直接使用markLine(作為前端菜鳥爬坑了好久?)

引入markLine對象:

<script>
 import echarts from 'echarts/lib/echarts'
 import 'echarts/lib/component/markLine'
</script>

以下是我畫圖的所有echarts依賴:

 import echarts from 'echarts/lib/echarts'
 import 'echarts/lib/chart/candlestick'
 import 'echarts/lib/chart/bar'
 import 'echarts/lib/component/legend'
 import 'echarts/lib/component/title'
 import 'echarts/lib/component/markLine'

markLine終于有用了?

我的代碼:

這是我的markLine配置

let price = [13.9, 14.95, 16];

markLine: {
 symbol: 'none',
 silent: true,
 data: [
 {yAxis: price[0]},
 {yAxis: price[1]},
 {yAxis: price[2]}
 ],
 lineStyle: {
 show: true,
 color: '#808C94',
 type: 'dashed'
 }
}

markLine效果:

然而 Echarts 的 series[i]-bar.markLine.precision 配置項(xiàng)不太厚道

Echarts文檔中的描述:

series[i]-bar.markLine.precision number

[ default: 2 ]

標(biāo)線數(shù)值的精度,在顯示平均值線的時(shí)候有用。

根據(jù)上圖展示,并沒有我想要的精度。

——注:13.9應(yīng)該顯示13.90,16應(yīng)該顯示16.00

precision配置默認(rèn)為2

怎么辦?填坑!

仔細(xì)翻看Echarts文檔發(fā)現(xiàn)了一個(gè)配置:

series[i]-bar.markLine.label.formatter

里面有個(gè)回調(diào)函數(shù),而且與axisLabel.formatter不太一樣

修改配置一:

請確保你的Number.toFixed(2)是滿足要求的

markLine: {
 symbol: 'none',
 silent: true,
 data: [
  {yAxis: price[0]},
  {yAxis: price[1]},
  {yAxis: price[2]}
 ],
 lineStyle: {
  show: true,
  color: '#808C94',
  type: 'dashed'
 },
 // 先讓markLine精確到3,默認(rèn)為2
 precision: 3,
 label: {
  formatter: function(value) {
   // 確保你的Number.toFixed(2)是滿足要求的
  return value.value.toFixed(2);
  }
 }
}

修改配置二:

markLine: {
 symbol: 'none',
 silent: true,
 data: [
  {yAxis: price[0]},
  {yAxis: price[1]},
  {yAxis: price[2]}
 ],
 lineStyle: {
  show: true,
  color: '#808C94',
  type: 'dashed'
 },
 // 先讓markLine精確到3,默認(rèn)為2
 precision: 3,
 label: {
  // 沒有寫通用代碼了,針對性解決一下當(dāng)前問題
  formatter: function(value) {
   // 這里的value 是一個(gè)label對象,使用value.value獲取到真正的值
   let strVal = value.value.toString();
   let splitStr = strVal.split('.');
   let tailStr = splitStr[1];
   if (tailStr == null) {
    return value.value.toString() + '.00';
   }
  // 0.995 ~ 0.999 = 1
  if (tailStr >= 995) {
  return (parseInt(splitStr[0]) + 1).toString() + '.00';
  }
   if (tailStr.length >= 3) {
    let lastStr = tailStr.substr(2, 1);
    // 解決toFixed(2)方法四舍五入無效
    if (lastStr >= 5) {
     // 數(shù)值+101有些取巧,但能解決問題...
     tailStr = (parseInt(tailStr.substr(0, 2)) + 101).toString().substr(1, 2);
     return splitStr[0] + '.' + tailStr;
    } else {
     return splitStr[0] + '.' + tailStr.substr(0, 2);
    }
   } else if (tailStr.length === 1) {
    return value.value.toString() + '0';
   } else {
    return value.value.toString();
   }
  }
 }
}

鬼知道Number.toFixed(2)為什么保留兩位小數(shù)時(shí)并沒有四舍五入,就寫了段惡心的代碼,個(gè)人能力有限?

修改后效果:

以上這篇解決Vue + Echarts 使用markLine標(biāo)線(precision精度問題)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Vue中使用icon 字體圖標(biāo)的方法

    在Vue中使用icon 字體圖標(biāo)的方法

    這篇文章主要介紹了在Vue中使用icon 字體圖標(biāo)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • vue獲取后臺json字符串方式

    vue獲取后臺json字符串方式

    這篇文章主要介紹了vue獲取后臺json字符串方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue和react的區(qū)別及優(yōu)缺點(diǎn)解讀

    vue和react的區(qū)別及優(yōu)缺點(diǎn)解讀

    這篇文章主要介紹了vue和react的區(qū)別及優(yōu)缺點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue3中的Fragment使用方法詳解

    Vue3中的Fragment使用方法詳解

    Fragment 是 Vue 3 中的新特性,允許一個(gè)組件模板返回多個(gè)根節(jié)點(diǎn),與傳統(tǒng)方式不同,不再需要一個(gè)額外的 DOM 元素來包裹所有內(nèi)容,本文將詳細(xì)介紹 Fragment 的概念、使用場景、優(yōu)點(diǎn)以及可能遇到的問題,需要的朋友可以參考下
    2024-08-08
  • Vue?PC前端掃碼登錄功能實(shí)現(xiàn)

    Vue?PC前端掃碼登錄功能實(shí)現(xiàn)

    最近在做APP客戶端掃描PC端二維碼登錄,于是記錄一下實(shí)現(xiàn)過程,下面這篇文章主要給大家介紹了關(guān)于Vue?PC前端掃碼登錄功能實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Vue首評加載速度及白屏?xí)r間優(yōu)化詳解

    Vue首評加載速度及白屏?xí)r間優(yōu)化詳解

    這篇文章主要介紹了vue項(xiàng)目優(yōu)化首評加載速度,以及白屏?xí)r間過久的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 基于Vue?+?ElementUI實(shí)現(xiàn)可編輯表格及校驗(yàn)

    基于Vue?+?ElementUI實(shí)現(xiàn)可編輯表格及校驗(yàn)

    這篇文章主要給大家介紹了基于Vue?+?ElementUI?實(shí)現(xiàn)可編輯表格及校驗(yàn),文中有詳細(xì)的代碼講解和實(shí)現(xiàn)思路,講解的非常詳細(xì),有需要的朋友可以參考下
    2023-08-08
  • vue+electron實(shí)現(xiàn)創(chuàng)建多窗口及窗口間的通信(實(shí)施方案)

    vue+electron實(shí)現(xiàn)創(chuàng)建多窗口及窗口間的通信(實(shí)施方案)

    這篇文章主要介紹了vue+electron實(shí)現(xiàn)創(chuàng)建多窗口及窗口間的通信,本文給大家分享實(shí)施方案結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue模態(tài)框?qū)崿F(xiàn)動態(tài)錨點(diǎn)

    vue模態(tài)框?qū)崿F(xiàn)動態(tài)錨點(diǎn)

    這篇文章主要為大家詳細(xì)介紹了vue模態(tài)框?qū)崿F(xiàn)動態(tài)錨點(diǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue.js第一天學(xué)習(xí)筆記(數(shù)據(jù)的雙向綁定、常用指令)

    Vue.js第一天學(xué)習(xí)筆記(數(shù)據(jù)的雙向綁定、常用指令)

    這篇文章主要為大家分享了Vue.js第一天的學(xué)習(xí)筆記,包括數(shù)據(jù)的雙向綁定、常用指令學(xué)習(xí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12

最新評論