v-model 代表多选框中显示的状态,选中与非选中,一般绑定一个数组,数组中存在的值就是选中状态。
label 代表多选框中选中的值。change 多选框改变事件,每次点击改变多选框都触发事件,绑定了一个ids方法。2、多选框的函数处理:
//获取数组中数值的下标
indexOf(val, ids) {
for (let i = 0i <ids.lengthi++) {
//获取当前值的下标
if (ids[i] === val) {
return i
}
}
return -1
},
//多选赋值ids
ids(val) {
//检索下标,判断当前值(或对象是否在数组中)在则返回在的对象,不在就是所有选中的id的值。3、遇到的问题:
此时element checked要点击两次才会显示勾选原因是:v-model已经改变了@change改变的值,所以相当于改变了两次解决办法:
将v-model 改为 :value 即可解决
1.dom结构
<div class="liveInDetailList">
<div class="liveInDetail" v-for="(item,index) inPersonNamelist.guestList" :key="index">
<div class="infoDetail">
<span class="left">住客姓名</span>
<input type="text" placeholder="请输入姓名" class="searchRoomInp" autofocus="autofocus" v-model="item.name" ref="inputName" v-focus>
</div>
<div class="infoDetail">
<span class="left" >手机号</span>
<input type="text" placeholder="请输入手机号" class="searchRoomInp" v-model="item.mobilePhone" >
</div>
<div class="infoDetail">
<span class="left">身份z号</span>
<input type="text" placeholder="请输入身份z号" class="searchRoomInp" v-model="item.idCardNo">
</div>
<div class="handle" v-if="isShowDelete">
</div>
<div class="handle" v-else>
<i slot='rightIcon' class="iconfont icon-icon-shanchu deleterightIcon" @click.stop="delRoomCard(index)"></i>
</div>
</div>
</div>
2在data中定义
PersonNamelist:{
checkInRoomId:'',
guestList:[{id:"",name:"",mobilePhone:"",idCardNo:""}]
},
3.点击新增
1.定义一个obj
let obj={
id:"",
name:"",
mobilePhone:"",
idCardNo:""
}
2.点击一下将obj添加进数组PersonNamelist
4.该项目会从后台传来一个新增最多的人数所以需要判断下PersonNamelist中的guestList的长度
addPerson(){
let obj={
id:"",
name:"",
mobilePhone:"",
idCardNo:""
}
if(this.PersonNamelist.guestList.length<(后台数据))
this.PersonNamelist.guestList.push(obj)
}
else{
Toast({
message:'已超出该房间可住最大人数',
position:'bottom',
duration:1000,
className:'panduan'
})
}
}
Vueel-tree可以使用自定义渲染来实现每个节点后面添加输入框并保存的功能,具体步骤如下:1. 在Vueel-tree组件中添加render属性,用于渲染树节点:
<el-tree :data="data" :render-content="renderContent"></el-tree>
2. 在methods中定义renderContent函数,用于渲染树节点:
methods: { renderContent(h, { node, data }) { return h('span', [ h('span', node.label), h('el-input', { props: { value: data.inputValue }, on: { input: val =>{ data.inputValue = val } } }) ]) } }
3. 在data中定义inputValue,用于保存输入框的值:
data() { return { data: [], inputValue: '' } }
4. 在Vueel-tree组件中添加node-key属性,用于设置节点的key值:
<el-tree :data="data" :render-content="renderContent" node-key="id"></el-tree>
5. 在data中定义id,用于设置节点的key值:
data() { return { data: [ { id: 1, label: 'node1' }, { id: 2, label: 'node2' } ], inputValue: '' } }
这样,就可以在Vueel-tree组件中实现每个节点后面添加输入框并保存的功能了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)