vue table表格控制下拉框的显示隐藏
需求:点击表格的某一个列的吗某个值,显示那值得下拉框,失去焦点时则隐藏
平时
点击
失去焦点后变化平时的显示
<vxe-table-column align="center" title="类型" width="270" style="height:40px;" field="collectiontype"> <template slot-scope="scope"> <!-- @change="changeselect(scope,$event)" @visible-change="handleblur(scope,$event)" --> <el-select v-if="scope.row.ismodifiy2" ref="goodsselect" v-model="scope.row.collectiontype" size="mini" placeholder="请选择" @visible-change="handleblur(scope,$event)" @change="changeselect(scope.row,$event)"> <el-option v-for="item in selectdata" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <template v-else><div style="cursor:pointer">{{ scope.row.collectiontype }}</div></template> </template>
通过设置scope.row.ismodifiy2的属性判断下拉框的显示隐藏
通过插槽,获取整个表格具体的某一个值
通过这三个属性来获取到点击的某个值,
row获取那一行的数据,column获取那一列的数据,
const index = this.datatable.findindex((item) => { return column.property === item.prop }) //获取点击值那一列的索引 if (!this.datatable[index]) return if (this.datatable[index].ismodifiy !== undefined) { row.ismodifiy = true this.datatable[index].ismodifiy = true //上面的ismodifiy是为了解决复杂的表单需要的设置 this.datatable = object.assign([], this.datatable) //要进行数据的深拷贝,不然第一次点击的时会有点问题 this.$nexttick(() => {
e为false时,就是下拉框隐藏时,就会执行下面操作,让下拉框隐藏
vue下拉框清空
<select ref="vendorid" v-model="forminline.vendorid" @on-open-change="venselect" filterable style="width: 162px;" @on-change="vendorchange" v-if="vendorshow"> <option v-for="item in vendorlist" :value="item.vendorid" :key="item.vendorid">{{ item.venabbname + '-' + item.vendorcode }}</option> </select>
要重置查询的数据。在重置中清空refs
// 重置 reloadfun() { this.forminline = { vendorid: '', productcode: '', inventorycode: '', senddate: '', remark: '', cwhcode:'' } this.$refs.vendorid.query = ''//.query是因为this.$refs.vendorid只能清空展示的下拉框的数据,不能清空底层的数据所以要.query清空底层数据 this.tabledata = [] },
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论