当前位置: 首页 > news >正文

vue项目使用vue2-org-tree

在这里插入图片描述

实现方式

  1. 安装依赖
npm i vue2-org-tree
  1. 使用的vue页面引入

<template><div class="container"><div class="oTree" ><vue2-org-tree name="test":data="data":horizontal="horizontal":collapsable="collapsable":render-content="renderContent"  :label-class-name="renderLabelClass"@on-expand="onExpand"@on-node-click="handleNodeClick" /></div></div>
</template><script>
import Vue2OrgTree from 'vue2-org-tree' 
export default {components: {Vue2OrgTree},data () {return {data: {id: 0,label: '流程1',name: '188.00',children: [{id: 1,label: '流程2',children: [{id: 11,label: '流程3',children: [{id: 111,label: '流程4'}]},{id: 12,label: '流程5',children: [{id: 121,label: '流程6'}]},{id: 13,label: '流程7',children: [{id: 131,label: '流程8'}]},{id: 14,label: '流程9',children: [{id: 141,label: '流程10'}]}]},{id: 2,label: '流程11',children: [{id: 21,label: '流程12',children: [{id: 211,label: '流程13'},{id: 212,label: '流程14'},{id: 213,label: '流程15'},{id: 214,label: '流程16'},{id: 215,label: '流程17'},{id: 216,label: '流程18'},{id: 217,label: '流程19'},{id: 218,label: '流程20'}]},{id: 22,label: '流程21',children: [{id: 221,label: '流程22'},{id: 222,label: '流程23'}]}]},{id: 3,label: '流程24',children: [{id: 31,label: '流程25'}]},{id: 4,label: '流程26',children: [{id: 41,label: '流程27'}]},{id: 5,label: '流程28',children: [{id: 51,label: '流程29',children: [{id: 511,label: '流程30'}]},{id: 52,label: '流程31',children: [{id: 521,label: '流程32'},{id: 522,label: '流程33'},{id: 523,label: '流程34'}]},{id: 53,label: '流程35',children: [{id: 531,label: '流程36'},{id: 532,label: '流程37'},{id: 533,label: '流程38'}]},{id: 54,label: '流程39'},{id: 55,label: '流程40'}]},{id: 6,label: '流程41',children: [{id: 61,label: '流程42',url: 'https://world.taobao.com/'},{id: 62,label: '流程43',url: 'http://www.baidu.com'},{id: 63,label: '流程44',url: 'https://www.google.com/'}]}]},expandAll: false,horizontal: true,collapsable: true}},mounted() {this.toggleExpand(this.data, true)},methods:{renderLabelClass (node) {return node.label.length<16? 'companyItem': 'companyHItem'},toggleExpand(data, val) {if (Array.isArray(data)) {data.forEach((item)=> {this.$set(item, "expand", val);if (item.children) {this.toggleExpand(item.children, val);}});} else {this.$set(data, "expand", val);if (data.children) {this.toggleExpand(data.children, val);}}},onExpand: function(e, data) {if ('expand' in data) {data.expand = !data.expandif (!data.expand && data.children) {console.log('kkkkkkkkkkk')this.collapse(data.children)}} else {this.$set(data, 'expand', true)}},collapse: function(list) {var _this = thisconsole.log(list,'kkkkkkk')list.forEach(function(child) {console.log(child,'kkkkkkkkkk')if (child.expand) {child.expand = false}child.children && _this.collapse(child.children)})},handleNodeClick (e, data) {console.log(data)},renderContent: function (h, data) {console.log(data, 'kkkkk')return h('div', [h('span', data.label),h('br'),h('span', '已完成')])},}
};
</script></style>
  • :render-content=“renderContent”

    设置label,renderContent 函数中返回一个包含多个文本并换行显示的元素

 renderContent(h, data) {return h('div', {class: 'custom-node',  // 添加类名也可以使用:label-class-name进行添加}, [h('span', data.label),h('br'),h('span', '已完成'),]);
},
http://www.lryc.cn/news/304821.html

相关文章:

  • Vue30 自定义指令 函数式 对象式
  • JAVA高并发——单例模式和不变模式
  • RabbitMQ(一):消息队列MQ
  • HarmonyOS—使用预览器查看应用/服务效果
  • 大项目中,某个cpp文件读取所在包路径的方法
  • gem5学习(25):用于异构SoC的片上网络模型——Garnet2.0
  • 康威生命游戏
  • vscode与vue环境配置
  • Linux的ACL权限以及特殊位和隐藏属性
  • 使用openai-whisper实现语音转文字
  • C++模板为什么不能声明和定义分离
  • 啊丢的刷题记录手册
  • 用nginx正向代理https网站
  • 面向对象设计模式
  • 人工智能_CPU微调ChatGLM大模型_使用P-Tuning v2进行大模型微调_007_微调_002---人工智能工作笔记0102
  • Android自编译Pixel3内核加入KernelSU
  • Go 数据库编程精粹:database/sql 实用技巧解析
  • AI-Gateway:一款整合了OpenAI、Anthropic、LLama2等大语言模型的统一API接口
  • Android 广播的基本概念
  • 【Docker实操】部署php项目
  • 多线程-初阶
  • Object和Function是函数,函数都有一个prototype属性
  • stm32利用CubeMX按键控制数码管加减数
  • 前端页面生成条形码,借助layui打印标签
  • 第1~8章 综合复习
  • 转运机器人,AGV底盘小车:打造高效、精准的汽车电子生产线
  • Spring Boot 的参数校验方案
  • 第N3周:Pytorch文本分类入门
  • 宝塔面板安装了mysql5.7和phpMyadmin,但是访问phpMyadmin时提示502 Bad Gateway
  • K8S—Pod详解