vue elementui el-table 表格里邊展示四分位圖效果(功能實(shí)現(xiàn))
vue elementui el-table 表格里邊展示四分位圖
直接上代碼(效果圖在文章末尾):
父組件:
<template>
<el-table
size="small"
:header-cell-style="headerCellStyle()"
style="width: 100%;"
highlight-current-row
row-key="index"
:data="tableData1"
>
<el-table-column
label="標(biāo)題1"
prop="name1"
align="left">
<template slot-scope="scope">
<span>{{ scope.row.name1}}</span>
</template>
</el-table-column>
<el-table-column
label="數(shù)據(jù)1"
prop="value1"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.name1 === '指標(biāo)4'">
<quartileChart :quartile="scope.row.value1"></quartileChart>
</div>
<span v-else>{{ scope.row.value1}}</span>
</template>
</el-table-column>
<el-table-column
label="數(shù)據(jù)2"
prop="value2"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.name1 === '指標(biāo)4'">
<quartileChart :quartile="scope.row.value2"></quartileChart>
</div>
<span v-else>{{ scope.row.value2}}</span>
</template>
</el-table-column>
<el-table-column
label="數(shù)據(jù)3"
prop="value3"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.name1 === '指標(biāo)4'">
<quartileChart :quartile="scope.row.value3"></quartileChart>
</div>
<span v-else>{{ scope.row.value3}}</span>
</template>
</el-table-column>
<el-table-column
label="數(shù)據(jù)4"
prop="value4"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.name1 === '指標(biāo)4'">
<quartileChart :quartile="scope.row.value4"></quartileChart>
</div>
<span v-else>{{ scope.row.value4}}</span>
</template>
</el-table-column>
<el-table-column
label="數(shù)據(jù)5"
prop="value5"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.name1 === '指標(biāo)4'">
<quartileChart :quartile="scope.row.value5"></quartileChart>
</div>
<span v-else>{{ scope.row.value5}}</span>
</template>
</el-table-column>
</el-table>
</template>
<script>
import quartileChart from '@/components/quartileChart.vue' // 引入子組件(四分位圖),注意引入路徑
export default {
components: { quartileChart },
data() {
return {
tableData1: [
{
name1: '指標(biāo)1',
value1: '0.33%',
value2: '0.33%',
value3: '0.33%',
value4: '0.33%',
value5: '0.33%',
},
{
name1: '指標(biāo)2',
value1: '0.33%',
value2: '0.33%',
value3: '0.33%',
value4: '0.33%',
value5: '0.33%',
},
{
name1: '指標(biāo)3',
value1: '0.33%',
value2: '0.33%',
value3: '0.33%',
value4: '0.33%',
value5: '0.33%',
},
{
name1: '指標(biāo)4',
value1: '1',
value2: '2',
value3: '3',
value4: '4',
value5: null,
}
]
},
methods: {
headerCellStyle () {
return {
color: " #333 !important",
backgroundColor: "#cedff3 !important",
fontSize: '14px',
fontWeight: 500,
}
},
}
}
}
</script>子組件:
<template>
<div>
<div v-if="5 - Number(quartile) === 1" class="ranking rank_1">
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
<div v-else-if="5 - Number(quartile) === 2" class="ranking rank_2">
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
<div v-else-if="5 - Number(quartile) === 3" class="ranking rank_3">
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
<div v-else-if="5 - Number(quartile) === 4" class="ranking rank_4">
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
<div v-else class="ranking rank_5">
<div class="r4"></div>
<div class="r3"></div>
<div class="r2"></div>
<div class="r1"></div>
</div>
</div>
</template>
<script>
export default {
name: 'quartileChart',
components: {},
props: {
quartile: {
type: String,
}
},
data () {
return {
}
},
created () {},
mounted () {},
computed: {},
watch: {},
methods: {},
}
</script>
<style lang="scss" scoped>
.ranking{
width: 47px;
margin: 0 auto;
height: 39px;
margin-top: 1px;
margin-bottom: 2px;
div {
height: 9px;
zoom: 1;
overflow: hidden;
border: 1px solid #dcdcdc;
margin-top: -1px;
}
}
.rank_1 {
.r4 {
height: 11px;
}
.r3 {
height: 11px;
}
.r2 {
height: 11px;
}
.r1 {
border: 0;
background: #e1edfc;
height: 11px;
}
}
.rank_2 {
.r4 {
height: 11px;
}
.r3 {
height: 11px;
}
.r2 {
border: 0;
background: #cbdff8;
height: 11px;
}
.r1 {
border: 0;
background: #e1edfc;
height: 11px;
}
}
.rank_3 {
.r4 {
height: 11px;
}
.r3 {
border: 0;
background: #b3ceef;
height: 11px;
}
.r2 {
border: 0;
background: #cbdff8;
height: 11px;
}
.r1 {
border: 0;
background: #e1edfc;
height: 11px;
}
}
.rank_4 {
.r4 {
border: 0;
background: #94b7e3;
height: 11px;
}
.r3 {
border: 0;
background: #b3ceef;
height: 11px;
}
.r2 {
border: 0;
background: #cbdff8;
height: 11px;
}
.r1 {
border: 0;
background: #e1edfc;
height: 11px;
}
}
.rank_5 {
.r4 {
height: 11px;
}
.r3 {
height: 11px;
}
.r2 {
height: 11px;
}
.r1 {
height: 11px;
}
}
</style>展示效果圖:

到此這篇關(guān)于vue elementui el-table 表格里邊展示四分位圖的文章就介紹到這了,更多相關(guān)vue elementui el-table 四分位圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項(xiàng)目使用可選鏈操作符編譯報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了vue項(xiàng)目使用可選鏈操作符編譯報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue前端判斷數(shù)據(jù)對(duì)象是否為空的實(shí)例
這篇文章主要介紹了Vue前端判斷數(shù)據(jù)對(duì)象是否為空的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
解決VUE打包后與nginx代理出現(xiàn)加載速度超級(jí)慢的問(wèn)題
這篇文章主要介紹了解決VUE打包后與nginx代理出現(xiàn)加載速度超級(jí)慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
vuex中使用modules時(shí)遇到的坑及問(wèn)題
這篇文章主要介紹了vuex中使用modules時(shí)遇到的坑及問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vue如何自動(dòng)化打包測(cè)試環(huán)境和正式環(huán)境的dist/test文件
這篇文章主要介紹了vue如何自動(dòng)化打包測(cè)試環(huán)境和正式環(huán)境的dist/test文件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Vue實(shí)現(xiàn)各種類(lèi)型文件的預(yù)覽功能
這篇文章主要介紹了如何在Vue3中使用aceEditor插件和vue-ipynb插件實(shí)現(xiàn)不同類(lèi)型的文件預(yù)覽,包括txt、md、json、pkl、mps、py、ipynb、doc、docx、pdf、xlsx、csv等文件,需要的朋友可以參考下2025-03-03
vue el-table字段點(diǎn)擊出現(xiàn)el-input輸入框,失焦保存方式
這篇文章主要介紹了vue el-table字段點(diǎn)擊出現(xiàn)el-input輸入框,失焦保存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

