目錄:
- 實現效果圖
- 完成首頁table部分代碼
- ECharts介紹
一、實現效果圖

二、完成首頁table部分代碼
這一塊主要借助 element-ui的 Table 表格 組件 完成的
2.1、編輯Home.vue
<template> <div> <el-row class="home" :gutter="20"> <el-col :span="8"> <el-card shadow="hover" style="height: 290px"> ..... </el-card> <el-card shadow="hover" style="height: 633px;margin-top: 20px"> <el-table :data="tabeData"> <!--show-overflow-tooltip單行顯示 默認為true--> <el-table-column show-overflow-tooltip v-for="(val,key) in tableLable" :key="key" :prop="key" :label="val"></el-table-column> </el-table> </el-card> </el-col> <el-col :span="16"> ..... </el-col> </el-row> </div> </template> <script> import '../../assets/css/home.css' export default { data(){ return { ....., tabeData: [], tableLable: { name: '課程', todayBuy: '今日購買', monthBuy: '本月購買', totalBuy: '總購買' } } }, methods: { getTableData(){ //定義事件,獲取 mock數據 this.$http.get('/home/getData').then(res => { res = res.data; this.tabeData = res.data.tableData; console.log(this.tabeData); }); } }, created() { //在 實例創建的時候,就去調用 getTableData方法 this.getTableData(); } } </script>
注意:show-overflow-tooltip單行顯示 默認為true,什么意思吶,就是如果我們表格中的字符串 太長的話,就會自動換行,則如下顯示:

所以我們需要在標簽上加上show-overflow-tooltip屬性,就會顯示如下:

2.2.編輯mock下的home.js的數據改變
import Mock from 'mockjs' //圖標數據 let List = []; export default { getSatisticalData: () =>{ for(let i = 0; i <7; i++){ List.push( Mock.mock({ vue: Mock.Random.float(100,8000,0,2), wechat: Mock.Random.float(100,8000,0,2), ES6: Mock.Random.float(100,8000,0,2), Redis: Mock.Random.float(100,8000,0,2), React: Mock.Random.float(100,8000,0,2), springboot: Mock.Random.float(100,8000,0,2), }) ) } //餅圖 let videoData= [ { name: 'SpringBoot', value: Mock.Random.float(1000,10000,0,2) }, { name: 'Vue', value: Mock.Random.float(1000,10000,0,2) }, { name: '小程序', value: Mock.Random.float(1000,10000,0,2) }, { name: 'Python', value: Mock.Random.float(1000,10000,0,2) }, { name: 'ES6', value: Mock.Random.float(1000,10000,0,2) }, { name: 'JAVA', value: Mock.Random.float(1000,10000,0,2) } ]; return { code: 2000, data:{videoData:videoData,userData:List,OrderData:List,tableData:[ { name: 'SpringBoot', todayBuy: Mock.Random.float(1000,10000,0,2), monthBuy: Mock.Random.float(1000,10000,0,2), totalBuy: Mock.Random.float(1000,10000,0,2) }, { name: 'JAVA', todayBuy: Mock.Random.float(1000,10000,0,2), monthBuy: Mock.Random.float(1000,10000,0,2), totalBuy: Mock.Random.float(1000,10000,0,2) }, { name: 'python', todayBuy: Mock.Random.float(1000,10000,0,2), monthBuy: Mock.Random.float(1000,10000,0,2), totalBuy: Mock.Random.float(1000,10000,0,2) }, { name: 'Vue', todayBuy: Mock.Random.float(1000,10000,0,2), monthBuy: Mock.Random.float(1000,10000,0,2), totalBuy: Mock.Random.float(1000,10000,0,2) }, ]} } } }
2.3、編輯 mock 下的index.js
...... //調用getSatisticalData方法 Mock.mock(/\home\/getData/,'get',HomeApi.getSatisticalData);
三、ECharts介紹
1. Echarts 官網:5 分鍾上手 ECharts
2.Echarts 圖形下載地址: 實例下載
3.echarts組件的一些想法:
- 圖表的大分類
- 組件的一些動態參數抽離
- 組件的基本配置
- 主題顏色
color: [
'#2ec7c9',
'#b6a2de',
'#5ab1ef',
'#ffb980',
'#d87a80',
...
]
目錄結構:
....
-src
-api
...
-common
-...
-Echarts.vue(新增Echarts組件)
-...
-...
....
安裝echarts:
> npm install echarts
編輯 Echarts.vue組件
<template>
<div style="height: 100%" ref="echart"> <!--ref添加屬性元素,通過vm.$ref獲取dom元素-->
echart
</div>
</template>
<script>
import echarts from 'echarts'
export default {
props: {
chartData: {
type: Object,
default(){
return {
xData: [],
series: []
}
}
},
isAxisChart: { //判斷是否有坐標軸
type: Boolean,
default: true
}
},
computed: {
options() { //通過計算屬性來判斷是不是有坐標
return this.isAxisChart ? this.axisOptions : this.normalOptions
}
},
data(){
return { //動態傳入的參數定義出來
echarts: null,
axisOptions: {},
normalOptions: {}
}
},
methods: {
initChart(){ //初始化echarts
if(this.echarts){
this.echarts.setOption(this.options)
}else {
this.echarts = echarts.init(this.$refs.echarts);
this.echarts.setOption(this.options)
}
},
initChartData(){ //初始化數據
if(this.isAxisChart) {
console.log('axis');
}else {
console.log('normal');
}
}
}
}
</script>
<style scoped>
</style>
