Echartst圖表的封裝---v-charts

官網地址:https://v-charts.js.org/#/

在使用 echarts 生成圖表時烁登,經常需要做繁瑣的數(shù)據類型轉化喇完、修改復雜的配置項叽躯,v-charts 的出現(xiàn)正是為了解決這個痛點座云。基于 Vue2.0 和 echarts 封裝的 v-charts 圖表組件交掏,只需要統(tǒng)一提供一種對前后端都友好的數(shù)據格式設置簡單的配置項,便可輕松生成常見的圖表刃鳄。
1盅弛、安裝

npm i v-charts echarts -S

2、完整引入

// main.js
import Vue from 'vue'
import VCharts from 'v-charts'
import App from './App.vue'
 
Vue.use(VCharts)

3叔锐、按需引入

import Vue from 'vue'
import VeLine from 'v-charts/lib/line.common'
import App from './App.vue'
 
Vue.component(VeLine.name, VeLine)

更多的屬性暫時不介紹了挪鹏,感覺echarts用的久了,反而覺得這種封裝過的組件使用起來讓人覺得麻煩愉烙,還要學習使用方法讨盒,還要查找文檔,不過有興趣的小伙伴可以自行探索步责,先貼上一份源碼返顺,還有效果圖。

<template>
    <div class="tab-container">
        <el-row>
            <el-col :span="24">
                <div class="grid-content">
                    <ve-histogram
                            :data="chartData"
                            :colors="chartColor"
                            :legend-visible="true"
                            :loading="loading"
                            :data-empty="dataEmpty"
                            :extend="extend"
                            :settings="chartSettings">
                    </ve-histogram>
                </div>
            </el-col>
        </el-row>
    </div>
</template>
 
<script>
    const DATA_FROM_BACKEND = {
        rows: [
            {date: '2018-11-01', orderCount: 10, orderAmount: 1093},
            {date: '2018-11-02', orderCount: 20, orderAmount: 2230},
            {date: '2018-11-03', orderCount: 33, orderAmount: 3623},
            {date: '2018-11-04', orderCount: 50, orderAmount: 6423},
            {date: '2018-11-05', orderCount: 80, orderAmount: 8492},
            {date: '2018-11-06', orderCount: 60, orderAmount: 6293},
            {date: '2018-11-07', orderCount: 20, orderAmount: 2293},
            {date: '2018-11-08', orderCount: 60, orderAmount: 6293},
            {date: '2018-11-09', orderCount: 50, orderAmount: 5293},
            {date: '2018-11-10', orderCount: 30, orderAmount: 3293},
            {date: '2018-11-11', orderCount: 20, orderAmount: 2293},
            {date: '2018-11-12', orderCount: 80, orderAmount: 8293},
            {date: '2018-11-13', orderCount: 100, orderAmount: 10293},
            {date: '2018-11-14', orderCount: 10, orderAmount: 1293},
            {date: '2018-11-15', orderCount: 40, orderAmount: 4293}
        ]
    };
 
    import 'v-charts/lib/style.css'
    import 'v-charts/lib/style.css'
    export default {
        name: 'VCharts',
        data() {
            return {
                chartSettings: {
                    xAxisType: 'time',
                    area: true,
                    yAxisName: ['訂單總數(shù)', '訂單金額'],
                    axisSite: {right: ['orderAmount']},
                    labelMap: {'orderCount': '訂單數(shù)量', 'orderAmount': '訂單金額'}
                },
                chartData: {
                    columns: ['date', 'orderCount', 'orderAmount'],
                    rows: []
                },
                extend: {
                    series: {
                        symbolSize: 5,
                        label: {
                            normal: {
                                show: true
                            }
                        }
                    }
                },
                chartColor: ['#00B8B8', '#FAA375'],
                loading: false,
                dataEmpty: false,
                barMaxWidth: 5
            }
        },
        created() {
            this.getData()
        },
        methods: {
            async getData() {
                this.chartData.rows = DATA_FROM_BACKEND.rows; // 注意這里應該是接口給返回回來的數(shù)據勺择,為了方便展示data結構创南,我這里用的是靜態(tài)數(shù)據
                this.dataEmpty = false
                // const res = await getOrderData()
                // {
                //     if (res.data.length === 0) {
                //         this.dataEmpty = true
                //     } else {
                //this.chartData.rows = DATA_FROM_BACKEND.rows; // 注意這里應該是接口給返回回來的數(shù)據,為了方便展示data結構省核,我這里用的是靜態(tài)數(shù)據
                // this.dataEmpty = false
                //     }
                //     console.log(res)
                // }
            }
        }
    }
 
</script>
 
<style scoped lang="scss">
    .tab-container {
        margin-top: 15px;
        height: calc(100vh - 160px);
        border-radius: 5px;
 
        .el-row {
            height: 100%;
            margin-bottom: 15px;
 
            .el-col {
                height: 100%;
 
                .grid-content {
                    height: 100%;
                    padding: 10px;
                    background: #fff;
                    border-radius: 5px;
                    box-shadow: 0 2px 3px 0 #ccc;
                }
            }
        }
    }
</style>

效果圖:

圖片.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末稿辙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子气忠,更是在濱河造成了極大的恐慌邻储,老刑警劉巖赋咽,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吨娜,居然都是意外死亡脓匿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門宦赠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陪毡,“玉大人,你說我怎么就攤上這事勾扭≌绷穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵妙色,是天一觀的道長桅滋。 經常有香客問我,道長身辨,這世上最難降的妖魔是什么丐谋? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮煌珊,結果婚禮上号俐,老公的妹妹穿的比我還像新娘。我一直安慰自己怪瓶,他們只是感情好萧落,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著洗贰,像睡著了一般找岖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敛滋,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天许布,我揣著相機與錄音,去河邊找鬼绎晃。 笑死蜜唾,一個胖子當著我的面吹牛,可吹牛的內容都是我干的庶艾。 我是一名探鬼主播袁余,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咱揍!你這毒婦竟也來了颖榜?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掩完,沒想到半個月后噪漾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡且蓬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年欣硼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恶阴。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡诈胜,死狀恐怖,靈堂內的尸體忽然破棺而出冯事,到底是詐尸還是另有隱情耘斩,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布桅咆,位于F島的核電站,受9級特大地震影響坞笙,放射性物質發(fā)生泄漏岩饼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一薛夜、第九天 我趴在偏房一處隱蔽的房頂上張望籍茧。 院中可真熱鬧,春花似錦梯澜、人聲如沸寞冯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吮龄。三九已至,卻和暖如春咆疗,著一層夾襖步出監(jiān)牢的瞬間漓帚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工午磁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留尝抖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓迅皇,卻偏偏與公主長得像昧辽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子登颓,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355