湖南-瓶子小 2023-09-12 11:58 采纳率: 0%
浏览 20
已结题

vue2.0 加载部门树组件,默认只请求一条数据,也就是父ID为0的所有数据,目前只有一条,能过父ID去查找下面有没有子组才显示子数据

img


1、是在vue.js 写的,需要在移动端上显示,目前只有这个样子,这是没做完的

img

2、希望能做成这无限能加载的,默认显示所有的一级,点击谁才展示谁,不想一次性展所所有,因为有好几十条

  • 写回答

16条回答 默认 最新

  • 「已注销」 2023-09-12 12:06
    关注

    在Vue 2.0中,您可以使用递归组件来加载部门树组件。递归组件是一种可以在其模板中调用自身的组件。

    首先,您需要创建一个部门树组件,该组件会根据父ID加载数据并显示子数据。以下是一个示例:

    <template>
      <div>
        <ul>
          <li v-for="department in departments" :key="department.id">
            {{ department.name }}
            <department-tree v-if="department.children.length" :departments="department.children"></department-tree>
          </li>
        </ul>
      </div>
    </template>
    
    <script>
    export default {
      name: 'DepartmentTree',
      props: {
        departments: {
          type: Array,
          required: true
        }
      }
    }
    </script>
    

    在上面的示例中,DepartmentTree 组件接收一个 departments 属性,该属性是一个数组,包含了部门的数据。在模板中,我们使用 v-for 指令遍历每个部门,并显示部门的名称。然后,我们检查该部门是否有子部门(通过检查 department.children.length 是否大于零),如果有子部门,则递归调用 DepartmentTree 组件,并将子部门数组作为新的 departments 属性传递给子组件。

    接下来,您需要在父组件中加载默认数据(父ID为0的所有数据),并将其传递给 DepartmentTree 组件。以下是一个示例:

    <template>
      <div>
        <department-tree :departments="departments"></department-tree>
      </div>
    </template>
    
    <script>
    import DepartmentTree from './DepartmentTree.vue';
    
    export default {
      name: 'App',
      components: {
        DepartmentTree
      },
      data() {
        return {
          departments: [] // 默认数据为空数组
        };
      },
      mounted() {
        this.fetchData(); // 在组件挂载后加载数据
      },
      methods: {
        fetchData() {
          // 发起请求获取父ID为0的所有数据,并将其赋值给 departments 属性
          // 这里使用异步请求作为示例,您可以根据实际情况进行修改
          fetch('/api/departments') // 假设请求路径为 '/api/departments'
            .then(response => response.json())
            .then(data => {
              this.departments = data; // 将获取到的数据赋值给 departments 属性
            })
            .catch(error => {
              console.error(error);
            });
        }
      }
    }
    </script>
    

    在上面的示例中,我们在父组件的 data 中定义了一个空的 departments 数组,并在组件挂载后调用 fetchData 方法加载数据。在 fetchData 方法中,我们发起异步请求获取父ID为0的所有数据,并将返回的数据赋值给 departments 属性。一旦数据加载完成,它将被传递给 DepartmentTree 组件进行渲染。

    评论

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 创建了问题 9月12日

悬赏问题

  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 RPG游戏架构设计和开发方法
  • ¥15 python 计算股权结构
  • ¥30 为什么会失败呢,该如何调整
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变