vue添加第一行为空的多选框

vue添加第一行为空的多选框,第1张

有时候会用到card来进行展示数据,但是数据又要进行批量 *** 作,所以在循环的card数据下添加一个多选框能实现相应的功能满足需求。1、卡片内添加多选框:

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组件中实现每个节点后面添加输入框并保存的功能了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7956158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存