思路:将文件树的公共部分封装一个组件,组件内部根据子数据是否存在递归使用自身,至于数据通过props分层传递。如果在每一个文夹上都有相关事件处理的需求,建议不要使用emit,应在vuex中设置一个值,监听是否有事件触发;在对应文件中监听这个值的变化。
以下是关于这个组件的部分代码,虽然不全,但是整个组件的骨架和组件的核心代码已经给出:
<!--文件树组件,name='manage-tree'-->
<template>
<div class="manageFolder"
:folder-id="model.subprojectId"
:class="{open:model.open,leftStyle:isClass}">
<!--model.open是为了判断当前文件树是否展开-->
<div class="clearfloat one-folder flex-style"
@mouseenter='enterProject(model)'
@mouseleave='leaveProject(model)'>
<!--p为图标-->
<p class="icons left">
<i
v-show="showTriangle"
class="fa"
:class="[model.open