Element中el-select下拉框?qū)崿F(xiàn)選中圖標(biāo)并回顯圖標(biāo)
一、背景
需求:在下拉框中選擇圖標(biāo),并同時(shí)顯示圖標(biāo)和文字,以便用戶可以直觀地選擇所需的圖標(biāo)。
二、功能實(shí)現(xiàn)
<template>
<div>
<el-table ref="table" :data="featureCustom2List" height="200" border="true">
<el-table-column label="圖標(biāo)" prop="prop" width="150" align="center" header-align="center">
<div class="iconSelect">
<img :src="`/minigram/${selectedImage}`" v-if="selectedImage" alt="Selected Image" width="20" height="20" />
<el-select v-model="selectedImage" placeholder="請(qǐng)選擇" @change="iconChange" size="mini" style=" width: 100px;margin-left: 10px;">
<el-option
v-for="item in imageList"
:key="item.id"
:label="item.iconDesc"
:value="item.iconAddress"
>
<img :src="`/minigram/${item.iconAddress}`" alt="Selected Image" width="20" height="20">
<span style="margin-left: 10px;">{{ item.iconDesc }}</span>
</el-option>
</el-select>
</div>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
selectedImage: '',//選中的圖標(biāo)
featureCustom2List:[],//表格數(shù)據(jù)集合,從接口獲取的數(shù)據(jù)
imageList:[],//圖標(biāo)數(shù)據(jù)集合,從接口獲取的數(shù)據(jù)
};
},
methods: {
//監(jiān)聽(tīng)下拉框
iconChange(e){
//下拉框選中的圖標(biāo)進(jìn)行賦值
this.selectedImage = e
}
}
}
</script>說(shuō)明:imageList數(shù)組是從接口中獲取的,iconDesc表示圖標(biāo)描述,iconAddress表示圖標(biāo)地址??????

三、下拉框選中圖標(biāo)后無(wú)顯示
3.1、問(wèn)題描述
下拉框選中圖標(biāo)后頁(yè)面沒(méi)有顯示圖標(biāo),但當(dāng)手動(dòng)拖動(dòng)el-table組件的圖標(biāo)列寬度時(shí),此時(shí)圖標(biāo)列的寬度發(fā)生了變化,選中的圖標(biāo)就在頁(yè)面中顯示了
3.2、問(wèn)題分析
這個(gè)問(wèn)題是由于在渲染 el-table 組件時(shí),圖標(biāo)列所在的單元格高度沒(méi)有被正確計(jì)算,導(dǎo)致下拉框和圖片無(wú)法顯示。拖動(dòng)表格寬度后,單元格高度重新計(jì)算,就能正常顯示了。
3.3、解決方法
在 iconChange 方法中手動(dòng)觸發(fā)表格重新渲染的操作,讓表格重新計(jì)算單元格高度,從而使下拉框和圖片正常顯示。
① 在 data() 中新增一個(gè)名為 tableKey 的屬性,用于指定表格唯一的 key 值

② 在el-table 組件的 :key 屬性上綁定tableKey屬性

③ 在 iconChange 方法中,修改 selectedImage 的值后,手動(dòng)更新 tableKey 的值

總結(jié):這樣做的效果是,每次下拉框選中了新的圖標(biāo)時(shí),會(huì)手動(dòng)更新
tableKey的值,從而觸發(fā)表格重新渲染,使下拉框和圖片正常顯示。
3.4、最終效果

到此這篇關(guān)于Element中el-select下拉框?qū)崿F(xiàn)選中圖標(biāo)并回顯圖標(biāo)的文章就介紹到這了,更多相關(guān)Element el-select選中圖標(biāo)并回顯圖標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- VUE?Element修改el-input和el-select長(zhǎng)度的具體步驟
- element?el-select下拉框選擇失效解決辦法
- 基于element-ui中el-select下拉框選項(xiàng)過(guò)多的優(yōu)化方案
- vue之elementUi的el-select同時(shí)獲取value和label的三種方式
- elementui?el-select?change事件傳參問(wèn)題
- element中el-select的使用及說(shuō)明
- elementUI動(dòng)態(tài)表單?+?el-select?按要求禁用問(wèn)題
- Vue element-UI el-select循環(huán)選中的問(wèn)題
- 解決element-ui的el-select選擇器的@blur事件失效的坑
- vue+element開(kāi)發(fā)使用el-select不能回顯的處理方案
- element修改form的el-input寬度,el-select寬度的方法實(shí)現(xiàn)
相關(guān)文章
vue radio單選框,獲取當(dāng)前項(xiàng)(每一項(xiàng))的value值操作
這篇文章主要介紹了vue radio單選框,獲取當(dāng)前項(xiàng)(每一項(xiàng))的value值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
vue.js項(xiàng)目 el-input 組件 監(jiān)聽(tīng)回車鍵實(shí)現(xiàn)搜索功能示例
今天小編就為大家分享一篇vue.js項(xiàng)目 el-input 組件 監(jiān)聽(tīng)回車鍵實(shí)現(xiàn)搜索功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
關(guān)于Vue中使用alibaba的iconfont矢量圖標(biāo)的問(wèn)題
這篇文章主要介紹了Vue使用alibaba的iconfont矢量圖標(biāo)的問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁(yè)面的實(shí)現(xiàn)方式
這篇文章主要介紹了vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁(yè)面的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
解決vue cli4升級(jí)sass-loader(v8)后報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了解決vue cli4升級(jí)sass-loader(v8)后報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07

