vue横向树级组件(流程图、组件递归)

本文介绍了如何在Vue中创建一个横向展示的树级组件,类似于流程图。关键依赖是LeaderLine插件,通过npm安装并引用。提供了官方文档链接以及名为RightTree.vue的源码示例,供开发者参考和学习。
摘要由CSDN通过智能技术生成

效果

在这里插入图片描述

唯一依赖

LeaderLine插件
npm安装方式:https://www.npmjs.com/package/leader-line-vue

官方文档
https://anseki.github.io/leader-line/

源码

RightTree.vue

<template>
  <div
    class="tree-right"
    v-if="showTree"
  >
    <div class="childs">
      <div
        class="child"
        v-for="(dataItem,index) in list"
        :key="dataItem.id +'-child-'+index"
      >
        <div
          class="child-item"
          :style="{
      marginRight: dataItem.children && dataItem.children.length > 1 ? '20px' :''}"
        >
          <div
            class="childname"
            :id="dataItem"
          >
            <div
              class="content-box"
              @click="traceDetail(dataItem)"
              :ref="dataItem.id"
              :id="dataItem.id"
            >
              <p
                v-for="(showItem,index3) in showfields"
                :key="'showItem'+index3"
              ><strong>{
  {showItem.name}}</strong><span :style="{
      'color':showItem.color}">{
  {dataItem[showItem.key]}}</span></p>
            </div>
            <div style="width:30px"></div>
            <div
              class="position-top"
              v-if="isFirst(dataItem.id) && domready"
              :style="position_top(dataItem.id,'top')"
            ></div>
            <div
              class="position-top"
              v-if="isLast(dataItem.id)"
              :style="position_top(dataItem.id,'bottom')"
            >
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
Vue.js是一种流行的JavaScript框架,可以用于构建用户界面。要实现流程图组件,可以使用Vue.js结合其他库或插件来实现。以下是一个使用Vue.js和GoJS库来实现流程图组件的示例: 首先,确保你已经安装了Vue.js和GoJS库。可以通过以下命令来安装它们: ```shell npm install vue npm install gojs ``` 然后,在Vue组件中引入GoJS库,并在`mounted`生命周期钩子中初始化流程图。在模板中,可以使用`div`元素作为容器来显示流程图。 ```javascript <template> <div id="flowchart"></div> </template> <script> import go from 'gojs'; export default { mounted() { const $ = go.GraphObject.make; const myDiagram = $(go.Diagram, 'flowchart'); // 在这里添加流程图的定义和布局 // 示例:添加一个节点 myDiagram.nodeTemplate = $(go.Node, 'Auto', $(go.Shape, 'RoundedRectangle', { fill: 'lightblue' }), $(go.TextBlock, { margin: 8 }, new go.Binding('text', 'key')) ); // 示例:添加一个连接线 myDiagram.linkTemplate = $(go.Link, $(go.Shape), $(go.Shape, { toArrow: 'Standard' }) ); // 示例:添加一些节点和连接线 myDiagram.model = new go.GraphLinksModel( [ { key: 'Node1' }, { key: 'Node2' }, { key: 'Node3' } ], [ { from: 'Node1', to: 'Node2' }, { from: 'Node2', to: 'Node3' } ] ); } } </script> ``` 在上述示例中,我们使用了GoJS的一些基本概念,如节点模板和连接线模板。你可以根据自己的需求自定义节点和连接线的样式。 请注意,上述示例只是一个简单的示例,你可以根据自己的需求进行更复杂的定制。同时,你还可以使用其他流程图库或自己手写一个组件来实现流程图功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值