项目需要,可选择的下拉树,由于数据过多,显示要有层级感,所以使用了懒加载模式

vue-treeselect官网:https://www.vue-treeselect.cn/

1、前端代码

1、下载依赖

npm install --save @riophae/vue-treeselect

2、引用进来

import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Treeselect from "@riophae/vue-treeselect";
import {LOAD_CHILDREN_OPTIONS} from '@riophae/vue-treeselect'

3、html

<treeselect
v-model="form.deptId"
:options="deptList"
:loadOptions="loadOptions"
placeholder="选择组织机构"
></treeselect>

4、js

查看代码
 <script>
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Treeselect from "@riophae/vue-treeselect";
import {LOAD_CHILDREN_OPTIONS} from '@riophae/vue-treeselect'
export default {
name: "deptCoding",
components: {
Treeselect
},
data(){
return{
form: {},
// 部门集合
deptList: [],
}
},
created() {
//初始化组织机构
this.getdatafromback("-1")
},
watch:{
// 监听deptId
'form.deptId':'selectChangedBindDeptName'
},
methods: {
// 获取选择组织对应组织名称
selectChangedBindDeptName(deptId){
console.log("=========",deptId);
const deptList = this.deptList;
// 获取选择的对应组织名称
this.recursionDept(deptId,deptList);
},
// 递归寻找组织名称
recursionDept(deptId,deptList) {
deptList.forEach(value => {
if (value.id === deptId) {
this.form.deptName = value.label;
return;
}
if (value.children) {
this.recursionDept(deptId, value.children);
}
})
},
// 查询树父组织列表
getdatafromback2(orgCode) {
getorganization({'searchParams': {'orgCode': orgCode}}).then(res => {
const deptList = res.responseBody;
deptList.forEach(d => {
var dept = {};
dept.id = d.orgCode;
dept.label = d.orgName;
dept.children = null;
this.deptList.push(dept);
})
})
},
// 加载子节点数据
loadOptions({action,parentNode,callback}) {
if (action === LOAD_CHILDREN_OPTIONS) {
// 加载点击节点的子节点数据
getorganization({'searchParams': {'orgCode': parentNode.id}}).then(res => {
const deptList = res.responseBody;
var arr = [];
if (deptList.length > 0) {
deptList.forEach(d => {
var dept = {};
dept.id = d.orgCode;
dept.label = d.orgName;
dept.children = null
// 后端返回参数,判断是否还有子节点
if (!d.attributes.count) {
delete dept.children // 为末级时删掉children,就不会出现末级小箭头
}
arr.push(dept);
})
}
parentNode.children = arr;
})
callback();
}
},
}
}
</script>

2、后端返回结构

至此over

最终效果图:

Vue-treeselect 实现下拉树懒加载,末节点不要箭头的更多相关文章

  1. 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据

    感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...

  2. 页面滚动动态加载数据,页面下拉自动加载内容 jquery

    <!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type=" ...

  3. Android UI--自定义ListView(实现下拉刷新+加载更多)

    Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...

  4. Jquery页面滚动动态加载数据,页面下拉自动加载内容

    <!DOCTYPE=html> <html> <head> <script src="js/jquery.js" type="t ...

  5. Android Demo 下拉刷新+加载更多+滑动删除

    小伙伴们在逛淘宝或者是各种app上,都可以看到这样的功能,下拉刷新和加载更多以及滑动删除,刷新,指刷洗之后使之变新,比喻突破旧的而创造出新的,比如在手机上浏览新闻的时候,使用下拉刷新的功能,我们可以第 ...

  6. PullToRefresh下拉刷新 加载更多 详解 +示例

    常用设置 项目地址:https://github.com/chrisbanes/Android-PullToRefresh a. 设置刷新模式 如果Mode设置成Mode.PULL_FROM_STAR ...

  7. Android智能下拉刷新加载框架—看这些就够了

    一些值得学习的几个下拉刷新上拉加载开源库 Android智能下拉刷新框架-SmartRefreshLayout 支持所有的 View(AbsListView.RecyclerView.WebView. ...

  8. 微信小程序 - (下拉)加载更多数据

    注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'& ...

  9. uni-app下拉刷新加载刷新数据

    onPullDownRefresh监听该页面用户下拉刷新事件需要在 pages.json 里开启 enablePullDownRefresh "globalStyle": { } ...

  10. vue+element树组件 实现树懒加载

    本文连接https://www.cnblogs.com/aknife/p/11709255.html 一.页面样式 二.数据库 三.前端页面代码 <template> <el-tre ...

随机推荐

  1. extend笔记

    JavaScript面向对象 继承extend 1. 概念(主要用途) 将子类中的共性代码 ( 属性和方法 ) 抽取出来 放到父类中 每当有一个新的子类需要用到共性的属性或者方法时 不需要在自己内容复 ...

  2. 以SQLserver为例的Dapper详细讲解

    Dapper是一种轻量级的ORM(对象关系映射)工具,它提供了高效且易于使用的方式来执行数据库操作.Dapper是由Stack Overflow团队开发并维护的,它的主要目标是提供比EF更快.更直接的 ...

  3. ToF技术全解读

    文章目录 ToF技术全解读 1. 什么是ToF 2. ToF的原理 3. ToF 优缺点 ToF技术全解读 1. 什么是ToF ToF: Time of flight. 飞行时间.当然这只是一种翻译的 ...

  4. Centos7.x 安装jenkins

    一.安装 前提:需查看是否安装了JDK 1.第一种方法 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat ...

  5. 基于 Rainbond 的混合云管理解决方案

    内容概要:文章探讨了混合云场景中的难点.要点,以及Rainbond平台在跨云平台的混合云管理方面的解决方案.包括通过通过统一控制台对多集群中的容器进行编排和管理,实现了对混合云中应用的一致性管理.文章 ...

  6. SpringBoot定义优雅全局统一Restful API 响应框架四

    如果没有看前面几篇文章请先看前面几篇 SpringBoot定义优雅全局统一Restful API 响应框架 SpringBoot定义优雅全局统一Restful API 响应框架二 SpringBoot ...

  7. 消息推送平台的实时数仓?!flink消费kafka消息入到hive

    大家好,3y啊.好些天没更新了,并没有偷懒,只不过一直在安装环境,差点都想放弃了. 上一次比较大的更新是做了austin的预览地址,把企业微信的应用和机器人消息各种的消息类型和功能给完善了.上一篇文章 ...

  8. 2023-03-04:定义一个二维数组N*M,比如5*5数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,

    2023-03-04:定义一个二维数组NM,比如55数组下所示: 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 ...

  9. @GrpcServise 注解的作用和使用

    转载请注明出处: 1. @GrpcServise 的作用和优势 在没有使用 @GrpcServise 注解编写服务端时,我们通常需要自定义 Server 以及端口,包括 start,stop ,注册s ...

  10. phpstudy-sqlilabs-less-1

    题目:POST - Error Based - Double quotes- String - with twist 基于错误的双引号post型字符变形的注入 先抓下包,拿到格式 uname=1#&a ...