在vue中使用vant TreeSelect分类选择组件操作


Posted in Javascript onNovember 02, 2020

中文文档:TreeSelect 分类选择

效果展示:

在vue中使用vant TreeSelect分类选择组件操作

//先在你需要的页面中引入,第一个是弹出层,第二个是选择的
 import { Popup } from "vant";
 import { TreeSelect } from "vant";

代码部分:

<van-popup v-model="policeShow" position="top" :overlay="true">
  <van-tree-select
  :items="items"
  :active-id.sync="items.activeId"
  :main-active-index.sync="items.activeId"
  @click-nav="onNavClick" 
  >
  <template slot="content" >
   <ul class="right-content">
   <li v-for="(item,index) in policeList" :key="index"  :class="{active:policeCode==item.policeCode}" @click="onItemClick(item.policeName,item.policeCode)"> {{item.policeName}} </li>
   </ul>
  </template>
  </van-tree-select>
  <div class="btn" @click="onPoliceClick">完成</div>
 </van-popup>

现在我来解析我的业务逻辑,希望对你能有帮助:

1.首先:items,是个数组,我们需要给它传个数组过去,用来展示左侧的数据

//这是我的后台传过来的数据,我将这个数据加到items里面去,左侧的数据将就展示出来了,注意这里是循环的数据,我为了简单这么写了,还有items中的key尽量用text,要不会渲染不上,在picker上面是有个value-key去改变的,这一会儿在下一篇文章中讲
{
 "code": 200,
 "message": "success",
 "data": [
  {
   "substationCode": "1101010000",
   "substationName": "东城区分局"
  },
  {
   "substationCode": "100002",
   "substationName": "昌平区分局"
  },
  {
   "substationCode": "100003",
   "substationName": "海淀区分局"
  },
  {
   "substationCode": "100001003",
   "substationName": "海淀区分局"
  },
  {
   "substationCode": "1010101",
   "substationName": "昌平区分局"
  },
  {
   "substationCode": "1010101\t",
   "substationName": "111"
  },
  {
   "substationCode": "1000021",
   "substationName": "测试重复分局"
  },
  {
   "substationCode": "12223",
   "substationName": "河北分局"
  }
 ]
}
  this.items.push({
    activeId:substationCode,
    text:substationName
  })

2.我们要根据左侧的数据去渲染右侧的数据(右侧的数据是自定义的,所以你自己加事件就行)

@click-nav代码部分已经写了
 onNavClick(index) {
  console.log(index) 
  let substationCode = this.items[index].activeId //这是我们通过index获取到当前点击的值
  this.requestPoliceList(substationCode) //这是请求右侧列表的请求通过activeId去请求。
 },

总结:

1.渲染左侧,将后台给你的值push到items里面(注意只能使用text)

2.通过@click-nav获取当前的index并拿到id

3.通过id渲染右侧的数据

补充知识:vue-treeselect的自定义部分说明和使用心得

在vue中出现了各种各样的框架,vue-treeselect就是vue的树选择;就是基于vue的多选组件

在平常的情况下一般我把vue-treeselect再次封装一遍为自己业务提供便利

当然它的功能还是有很多的例如:单选、多选、模糊搜索、清除等等

不说废话了直接看代码吧

在vue中使用vant TreeSelect分类选择组件操作

咱们来一个一个说明一下吧

首先命名一个树的名字,到时候组件调用的时候好调用也就是name

之后是透传的参数和数据配置props组件肯定是子的嘛,props中的东西都是可以从父级里面透传过来的

template就是我所需要的的vue-treeselect的组件模板

data就是我子组件的数据参数

当然在这个TgElTreeSelect你还可以放入methods、vue中的生命周期、计算属性、侦听器等等

props中的透传的参数

在vue中使用vant TreeSelect分类选择组件操作

props里面可以有数据value也就是初始化的数据,dataList就是你的接口数据,接下来的就是你选择之后渲染的属性和上传的属性了,说的直白一点就是下拉中的label和value当然上面对应的就是我的labelField和selectField,之后的属性就是树形折叠属性,

defaultExpandLevel就是从哪一级来时折叠展开,

defaultExpandAll就是全部展开或者折叠

multiple是否为多选

disabled这个就是可选择与不可选择

validateEvent验证必填与不必填的属性

clearable是否有清除的属性

当然我也把我完整的代码粘出来

在vue中使用vant TreeSelect分类选择组件操作

在vue中使用vant TreeSelect分类选择组件操作

在vue中使用vant TreeSelect分类选择组件操作

当然给一个说明呗在这里我使用了requirejs通过define的属性也就是所谓的AMD来再次封装这个组件,首页先npm安装vue-treeselect

npm install --save @riophae/vue-treeselect

Vue.component('treeselect', VueTreeselect.Treeselect)

上面的这句代码就是下载完之后引入treeselect

当然官网上的更全面详细的可以看看官网的再研究研究

以上这篇在vue中使用vant TreeSelect分类选择组件操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
在JS中解析HTML字符串示例代码
Apr 16 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
javascript控制在光标位置插入文字适合表情的插入
Jun 09 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
May 28 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
Vue数据双向绑定的深入探究
Nov 27 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
vant自定义二级菜单操作
Nov 02 #Javascript
JavaScript动态生成表格的示例
Nov 02 #Javascript
JavaScript实现图片放大预览效果
Nov 02 #Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
Nov 02 #Javascript
在antd4.0中Form使用initialValue操作
Nov 02 #Javascript
vue+iview使用树形控件的具体使用
Nov 02 #Javascript
在antd Form表单中select设置初始值操作
Nov 02 #Javascript
You might like
基于文本的留言簿
2006/10/09 PHP
加速XP搜索功能堪比vista
2007/03/22 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
在项目中寻找代码的坏命名
2012/07/14 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
python中list列表的高级函数
2016/05/17 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python实现ftp文件传输功能
2020/03/20 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
卖房协议书
2014/04/11 职场文书
商务日语专业自荐信
2014/04/17 职场文书
师德师风演讲稿
2014/05/05 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
淘宝好评语句大全
2014/12/31 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Redis安装启动及常见数据类型
2021/04/14 Redis