树的第一层展开需要加上 default-expand-all和v-if="props.treeData.length>0
class="draggable-tree" :tree-data="props.treeData" :replaceFields="{ children: 'children', title: 'name', key: 'id' }" //设置children,key值的字段 default-expand-all //展开树 @select="clickRow" v-model:selectedKeys="rowKeys" v-if="props.treeData.length>0" //如果树不展开就加这个v-if /> 监听treeData,默认点击树的第一层第一个children(比较笨的方法) watch( () => props.treeData, (val) => { val.forEach(item=>{ //判断rowKey是否有值和treeData第一层数据是有children if(item.children.length && rowKeys.value.length==0){ rowKeys.value= [val[0].children[0].id]; emit('select', rowKeys.value); } }) }, ); 需要点击第一个层的按钮不响应: const clickRow = (selectedKeys, e) => { const arr = []; // 循环判断第一层不做传值 props.treeData.forEach((item) => { if (item.id == selectedKeys) { arr.push(item); } }); if (selectedKeys.length&&arr.length == 0) { //如果满足条件就做传参 emit('select', selectedKeys); } }; 好文阅读
发表评论