中文文档: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再次封装一遍为自己业务提供便利
当然它的功能还是有很多的例如:单选、多选、模糊搜索、清除等等
不说废话了直接看代码吧
咱们来一个一个说明一下吧
首先命名一个树的名字,到时候组件调用的时候好调用也就是name
之后是透传的参数和数据配置props组件肯定是子的嘛,props中的东西都是可以从父级里面透传过来的
template就是我所需要的的vue-treeselect的组件模板
data就是我子组件的数据参数
当然在这个TgElTreeSelect你还可以放入methods、vue中的生命周期、计算属性、侦听器等等
props中的透传的参数
props里面可以有数据value也就是初始化的数据,dataList就是你的接口数据,接下来的就是你选择之后渲染的属性和上传的属性了,说的直白一点就是下拉中的label和value当然上面对应的就是我的labelField和selectField,之后的属性就是树形折叠属性,
defaultExpandLevel就是从哪一级来时折叠展开,
defaultExpandAll就是全部展开或者折叠
multiple是否为多选
disabled这个就是可选择与不可选择
validateEvent验证必填与不必填的属性
clearable是否有清除的属性
当然我也把我完整的代码粘出来
当然给一个说明呗在这里我使用了requirejs通过define的属性也就是所谓的AMD来再次封装这个组件,首页先npm安装vue-treeselect
npm install --save @riophae/vue-treeselect
Vue.component('treeselect', VueTreeselect.Treeselect)
上面的这句代码就是下载完之后引入treeselect
当然官网上的更全面详细的可以看看官网的再研究研究
以上这篇在vue中使用vant TreeSelect分类选择组件操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]