問題:因為el-select上級的數據層次較多,選擇option后數據沒有回顯到select框中,但選擇值是正確的,el-input也無法輸入值
<el-table-column prop="td_mbid" label="數據編號" align="center" >
<template slot="header">
數據編號
<el-popover ref="popover5" placement="top" width="200" > <el-select v-model="filter.td_mbid.selectvalue"> <el-option v-for="item in options" :key="item" :label="item" :value="item"> </el-option> </el-select> <el-input v-model="filter.td_mbid.filtervalue"></el-input> <el-button type="text" @click="tablefilter('td_mbid')">篩選</el-button> <el-button type="text" @click="resetfilter('td_mbid')">重置</el-button> </el-popover>
<el-button v-popover:popover1 type="text" style="color:#303133" >
<i class="fa fa-filter" aria-hidden="true"></i></el-button>
</template>
</el-table-column>
使用this.$forceUpdate()或vm.$set()強制更新都沒有成功,參考https://blog.csdn.net/PGguoqi/article/details/90240650中的方法都沒有解決。
所以暫時采用原始的js來解決:
<el-table-column prop="td_mbid" label="數據編號" align="center" > <template slot="header"> 數據編號 <el-popover ref="popover1" placement="bottom" width="220" > <select class="el-input el-input--medium el-input--suffix select td_mbidselect"> <option v-for="item in options" :key="item" :label="item" :value="item"></option> </select> <input type="text" class="el-input__inner td_mbidinput" style="height: 36px; line-height: 36px;"> <el-button style="margin:10px 0;width:100px" type="primary" size="medium" @click="tablefilter('td_mbid','td_mbidselect','td_mbidinput')">篩選</el-button> <el-button style="margin:10px 0;width:100px;float:right" type="primary" plain size="medium" @click="resetfilter('td_mbid','td_mbidselect','td_mbidinput')">重置</el-button> </el-popover> <el-button v-popover:popover1 type="text" style="color:#303133" > <i class="fa fa-filter" aria-hidden="true"></i></el-button> </template> </el-table-column>
methods: {
tablefilter(name,s,i){
this.filters[name].selectvalue = $("."+s).val()
this.filters[name].filtervalue = $("."+i).val()
this.page = 1
//api調用
},
resetfilter(name,s,i){
$("."+s).val('包含')
$("."+i).val('')
this.filters[name].selectvalue = '包含'
this.filters[name].filtervalue = ''
},