Vue-treeselect 实现下拉树懒加载,末节点不要箭头
项目需要,可选择的下拉树,由于数据过多,显示要有层级感,所以使用了懒加载模式
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 实现下拉树懒加载,末节点不要箭头的更多相关文章
- 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据
感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...
- 页面滚动动态加载数据,页面下拉自动加载内容 jquery
<!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type=" ...
- Android UI--自定义ListView(实现下拉刷新+加载更多)
Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...
- Jquery页面滚动动态加载数据,页面下拉自动加载内容
<!DOCTYPE=html> <html> <head> <script src="js/jquery.js" type="t ...
- Android Demo 下拉刷新+加载更多+滑动删除
小伙伴们在逛淘宝或者是各种app上,都可以看到这样的功能,下拉刷新和加载更多以及滑动删除,刷新,指刷洗之后使之变新,比喻突破旧的而创造出新的,比如在手机上浏览新闻的时候,使用下拉刷新的功能,我们可以第 ...
- PullToRefresh下拉刷新 加载更多 详解 +示例
常用设置 项目地址:https://github.com/chrisbanes/Android-PullToRefresh a. 设置刷新模式 如果Mode设置成Mode.PULL_FROM_STAR ...
- Android智能下拉刷新加载框架—看这些就够了
一些值得学习的几个下拉刷新上拉加载开源库 Android智能下拉刷新框架-SmartRefreshLayout 支持所有的 View(AbsListView.RecyclerView.WebView. ...
- 微信小程序 - (下拉)加载更多数据
注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'& ...
- uni-app下拉刷新加载刷新数据
onPullDownRefresh监听该页面用户下拉刷新事件需要在 pages.json 里开启 enablePullDownRefresh "globalStyle": { } ...
- vue+element树组件 实现树懒加载
本文连接https://www.cnblogs.com/aknife/p/11709255.html 一.页面样式 二.数据库 三.前端页面代码 <template> <el-tre ...
随机推荐
- 如何在 vue3 中使用 jsx/tsx?
我们都知道,通常情况下我们使用 vue 大多都是用的 SFC(Signle File Component)单文件组件模式,即一个组件就是一个文件,但其实 Vue 也是支持使用 JSX 来编写组件的.这 ...
- 【机器学习与深度学习理论要点】11.什么是L1、L2正则化?
机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作 L1-norm 和L2-norm,中文称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数.L1正 ...
- 继承 extends
首先是基础的继承关系,用extend就可以继承. 再者是继承的东西,包括:变量(也包括类变量).全部非私有的属性和方法(除了父类的构造方法) 注:构造方法 class C{ public C() { ...
- springMVC中注解
其中常见注解: 1.@RequestMapping:用于请求url路径,可用于类和方法上,用于类上,则表示类中所有响应请求的方法都是以该路径作为父路径. 2.@RequestBody:注解实现接收 h ...
- node可以用nvm快速切换版本,golang如何快速切换版本?用gvm就行。
使用 gvm 可以带来以下好处: 快速切换 Golang 版本,方便进行版本测试和开发: 可以在多个项目中同时使用不同版本的 Golang 包和工具,避免冲突: 可以通过 gvm 管理不同版本的 Go ...
- 2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”, 并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成
2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个"块", 并将这些块分别进行排序.之后再连接起来,使得连接的结果和按升序排序后的原数组相同. ...
- 2020-12-24:MQ中,如何保证消息不丢失?
福哥答案2020-12-24: 生产者丢失消息:如网络传输中丢失消息.MQ 发生异常未成功接收消息等情况. 解决办法:主流的 MQ 都有确认或事务机制,可以保证生产者将消息送达到 MQ.如 Rabbi ...
- vue全家桶进阶之路10:修饰符
Vue2 中的修饰符是指在指令后面添加点号(.)和修饰符名称的方式,用于控制指令的行为.修饰符可以分为事件修饰符和属性修饰符两种类型,下面分别介绍它们的作用和使用方法. 事件修饰符 事件修饰符用于控制 ...
- 使用umi+dva做一个demo
最初只是使用react 进行开发项目,发现项目过大状态管理起来就相当困难,虽然有redux, mobx,但是使用起来还是相当繁琐,而目前umi有现成的轮子使用简单,当然愿意尝试了,趁现在假期有时间简单 ...
- 火爆,Github标星240K的编程学习路线图,适合所有程序员!
推荐一个涵盖开发.运维.产品设计的学习路线图,在Github已经start超过240K,包括各门编程语言! 一.涵盖的路线图 该项目涵盖了非常全面的学习路线图: 前端路线图 后端路线图 ASP.NET ...