
如下例子:
选择三级1-1-1、三级1-1-2(或二级1-1),所得结果为一级1;选择二级2-1、二级2-2,所得结果一级2
项目使用Element UI框架,查找了tree组件对外接口,没有提供,然后自己结合tree组件的方法实现一下
在点击某个节点,选择状态完成更新后的回调函数中,判断当前点击节点的父节点是否选中,若选中,就把该父节点下的所有子节点从结果数组中移除,把当前节点加入结果数组,然后判断该父节点的父节点是否选中,循环上述步骤直到它们的根节点或状态为未选中;若该父节点未选中,检查当前节点状态是否为选中,选中,则加入结果数组,否则就认为是当前点击 *** 作取消了之前的选中状态,那么就需要在结果数组中删除当前点击项,考虑到之前可能是点击节点的父节点被选中状态,所以需要针对这个情况,需要在结果数组中删除父节点项,加入除当前点击项外的兄弟节点项(因为结果数组中存储的是最高一层的所选节点,所以不需要处理点击项的子节点)
tree组件中
使用方法
展示时删除某一选中项
在element+vue项目中,需求要表格内已有数据,点击新增在首行添加一行带输入框内容table的数据为datas=[],那么下面是一列的数据,多列可循环或复制
<el-table-column
prop="name"
label="件号"
sortable
show-overflow-tooltip:
true
align="center"
width="180"
>
<template slot-scope="scope">
<template
v-if="scope.row.show"
>
<el-form-item
label=" "
prop="name"
>
<el-input
v-model="ruleForm.name"
disabled="true"
size="mini"
>
<i
slot="suffix"
class="el-input__icon el-icon-search"
@click="Partnum"
/>
</el-input>
</el-form-item>
</template>
<template v-else>
<span @click="partNumber(scope.$index, scope.row)">{{ scope.row.name }}</span>
</template>
</template>
</el-table-column>
这思路主要是template里面还有2个template,在data数组的 *** 作中每条加一个属性show来控制是显示输入框还是里面的某个字段,
addBtn () {// 添加按钮事件
let data = { show: true }
this.datasNew.unshift(data)
},
同思路可自定义添加各种属性给表格做相应 *** 作。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)