vant+cell+picker+级联选择默认选中

文章目录

  • 一、代码示例-父组件调用
  • 二、代码示例-子组件
  • 总结

一、代码示例-父组件调用

<myCellTree v-model="test" title="测试"></myCellTree>

二、代码示例-子组件

/* vant@2.8.1暂时只支持二级联动,更多的没有测试注意:defaultIndex="defaultIndex[0]",defaultIndex[0]意味着第一级选中的下标this.$refs.cellTreePicker.setColumnIndex(1, this.defaultIndex[1]);依照文档意思setColumnIndex第一个参数应该是第一列的激活下标,但是经过测试根本无效,设置为1时效果正常,第一层依旧依托于:defaultIndex
*/
<template><div class="myCellTree"><van-cell :title="title" :value="text" is-link @Click="showPopup" /><van-popup v-model="visible" position="bottom"><van-pickerref="cellTreePicker":title="'选择' + title"show-toolbar:defaultIndex="defaultIndex[0]":columns="columns"@confirm="choosePicker"@cancel="closePicker"/></van-popup></div>
</template>
<script>
export default {name: "MyCellTree",model: {prop: "value",},props: {title: {type: String,default: "",},value: null,clearable: {type: Boolean,default: false,},list: {type: Array,default: function () {return [{dictCode: "10",dictName: "沥青路线养护",childDict: [{dictCode: "101",dictName: "基层维修",},{dictCode: "102",dictName: "裂缝维修",},{dictCode: "106",dictName: "剥落维修",},],},{dictCode: "20",dictName: "水泥混凝土路面养护",childDict: [{dictCode: "201",dictName: "日常养护",},{dictCode: "202",dictName: "裂缝维修",},],},];},},prop: {type: Object,default: function () {return {code: "dictCode",name: "dictName",children: "childDict",};},},},data() {return {choose: null,text: "",columns: [],list_: [],defaultIndex: [],visible: false,};},watch: {value(val) {this.choose = val;this.setDefaultIndex();},list(val) {this.list_ = [...val];this.setColumns();this.setDefaultIndex();},},async mounted() {if (this.list.length) this.list_ = JSON.parse(JSON.stringify(this.list));this.choose = this.value;this.setColumns();this.setDefaultIndex();},methods: {loopTree(arr, fatherIndex_ = -1) {arr.forEach((item, index) => {item.text = item[this.prop.name];item.code = item[this.prop.code];item.children = item[this.prop.children];item.index_ = index;item.fatherIndex_ = fatherIndex_;if (item[this.prop.children]?.length) {this.loopTree(item[this.prop.children], item.index_);}});},findIndex(arr, code) {arr.forEach((item, index) => {if (item.code === code) {this.defaultIndex = [item.fatherIndex_, index];this.text = item.text;this.choose = item.code;}if (item.children?.length) {this.findIndex(item.children, code);}});},// 设置columnssetColumns() {this.loopTree(this.list_);this.columns = this.list_;},showPopup() {this.visible = true;this.$nextTick(() => {this.$refs.cellTreePicker.setColumnIndex(1, this.defaultIndex[1]);this.$forceUpdate();});},choosePicker() {let data = this.$refs.cellTreePicker.getValues();this.choose = data[data.length - 1].code;this.text = data[data.length - 1].text;this.$emit("input", this.choose);this.$forceUpdate();this.visible = false;},closePicker() {if (this.clearable) {this.choose = null;this.text = null;}this.visible = false;},// 设置默认选择setDefaultIndex() {let arr = JSON.parse(JSON.stringify(this.list_));this.findIndex(arr, this.choose);},},
};
</script>

总结

vant@2.8.1
1.暂时只支持二级联动,更多的没有测试
2. 注意:defaultIndex=“defaultIndex[0]”,defaultIndex[0]意味着第一级选中的下标
3.this.$refs.cellTreePicker.setColumnIndex(1, this.defaultIndex[1]);
4.依照文档意思setColumnIndex第一个参数应该是第一列的激活下标,但是经过测试根本无效,设置为1时效果正常,第一层依旧依托于:defaultIndex

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大地win11 64位旗舰版系统v2021.08

大地win11 64位旗舰版系统v2021.08是一款非常稳定的电脑操作系统&#xff0c;集成多个针对系统用户优化的补丁&#xff0c;且无需输入相关的序列号等&#xff0c;可以完美激活合法权益&#xff0c;感兴趣的用户们就快来下载使用该系统吧。 大地win11 64位旗舰版系统v2021.08 …

Surely Vue-去除水印

解决水印问题 let domArr document.getElementsByTagName(div)for (let i 0; i < domArr.length; i) {if ([Unlicensed Product].includes(domArr[i].innerText)) {domArr[i].remove()}if ([Powered by Surely Vue].includes(domArr[i].innerText)) {domArr[i].style.opac…

番茄花园win11 32位专业版镜像v2021.08

番茄花园win11 32位专业版镜像v2021.08是一款非常好用的操作系统&#xff0c;这款系统在稳定性上进一步优化和提升&#xff0c;可以更好的获得整个纯版系统的稳定性&#xff0c;系统中的功能十分的强大&#xff0c;能够智能判断出电脑的型号&#xff0c;然后为广大用户们安装相…

钉钉怎么查看收到的文件 钉钉查看文件的方法

钉钉可以收发文件&#xff0c;如果收到一份文件&#xff0c;该怎么打开查看内容呢?下面我们就来看看详细钉钉查看文件的教程。 1、打开聊天窗口&#xff0c;点击工具栏上面的“文件夹”发送文件图标。 钉钉怎么查看收到的文件? 钉钉查看文件的方法 2、分别可以发送本地文件…

360天气怎么设置方法 360天气如何设置城市

1.首先打开我们的360天气APP&#xff0c;在主页左上方找到一个小加号的图标&#xff0c;如下图所示。 360天气怎么设置方法 360天气如何设置城市 2.点击加号后&#xff0c;我们便可以进入城市管理界面了&#xff0c;现在我们需要继续点击屏幕中的【】功能&#xff0c;以此来开…

手机优酷怎么删除自己发的弹幕

1.手机上&#xff0c;打开优酷app&#xff0c;点击右下角“我的” 手机优酷怎么删除自己发的弹幕&#xff1f; 2.点击个人头像 手机优酷怎么删除自己发的弹幕&#xff1f; 3.个人资料下方&#xff0c;就能看到自己以前发过的弹幕 手机优酷怎么删除自己发的弹幕&#xff1f…

Win11语音助手怎么开启 Win11语音助手开启的方法

自从Win10系统内置cortana小娜开始&#xff0c;就有很多用户非常喜欢这个AI人工智能&#xff0c;而不少小伙伴在更新的到Win11的系统之后也想使用语音助手却不知道如何开启&#xff0c;下面就和小编一起来看看应该怎么操作吧。 Win11语音助手开启的方法 1、首先我们点击任务栏…

腾讯视频怎样开启深色模式保护眼睛

1、点击打开腾讯视频软件&#xff0c;如图; 腾讯视频怎样开启深色模式保护眼睛 2、然后在软件首页点击【个人中心】&#xff0c;如图; 腾讯视频怎样开启深色模式保护眼睛 3、进入【个人中心】界面&#xff0c;往下滑找到【设置】选项点击&#xff0c;如图; 腾讯视频怎样开…

物联网协议比较 MQTT CoAP RESTful/HTTP XMPP

物联网协议 ProtocolCoAPXMPPRESTful HTTPMQTTTransportUDPTCPTCPTCPMessagingRequest/ResponsePublish/Subscribe Request/ResponseRequest/ResponsePublish/Subscribe Request/Response2G, 3G, 4G Suitability (1000s nodes)ExcellentExcellentExcellentExcellentLLN Suitab…

Windows平台如何查看一个dll依赖的其他dll

好多开发者在做windows开发的时候&#xff0c;容易遇到dll依赖的问题&#xff0c;VS自带一个小工具dumpbin, 这个工具挺好用&#xff0c;可以查看dll相关依赖库&#xff0c;还可以看dll导出接口。 下面演示下查依赖库用法: 运行 dumpbin /dependents nm.exe 输出&#xff1a…

中关村win11 32位官方原版iso文件v2021.08

中关村win11 32位官方原版iso文件v2021.08是一款非常不错的电脑操作系统&#xff0c;该系统在装机方面进行了专门的优化和升级&#xff0c;可以以短短数分钟的时候进行安装&#xff0c;自带安全功能&#xff0c;非常的好用&#xff0c;而且不用激活&#xff0c;安装完成就能立即…

海康、大华网络摄像机RTSP URL格式组成及参数配置

经常有开发者咨询我们关于海康、大华网络摄像机RTSP url拼接规则和相关参数配置&#xff0c;虽然很简单&#xff0c;考虑到资料不全&#xff0c;写个博客记录下&#xff1a; 1. 海康摄像机&#xff1a; 在IE浏览器输入网络摄像机的IP地址&#xff0c;输入配置的用户名、密码&…

电脑公司win11旗舰版32位镜像v2021.07

电脑公司win11旗舰版32位镜像v2021.07是一款非常好用的电脑操作系统&#xff0c;系统中的功能较为全面&#xff0c;且充满了独具的特色&#xff0c;让你可以快速的将系统完成安装&#xff0c;而且不用激活&#xff0c;安装完成就能立即使用&#xff0c;大大节省用户时间! 电脑…

直播系统中使用SEI传输用户自定义数据方案讨论

在直播系统中&#xff0c;除了直播音视频之外&#xff0c;有时候还想从主播端发布文本信息等&#xff0c;这些信息可以不通过视频传输通道发送给用户播放端&#xff0c;但如果传输的数据想和视频保持精准同步&#xff0c;那最好的办法就是这些信息和视频数据打包在一起传输, 通…

apicloud如何对接大牛直播SDK

随着apicloud的普及&#xff0c;越来越多的用户苦于apicloud下没有一款真正靠谱低延迟的rtmp/rtsp直播播放器苦恼。 鉴于此&#xff0c;大牛直播SDK携手apicloud资深版主&#xff0c;推出apicloud对接方案&#xff1a; 相关接口如下&#xff1a; daniuPlayer 模块概述 本模…

Win11新特性:在平板锁屏界面还有酷炫的3D视差效果

在深入挖掘 Windows 11 系统之后&#xff0c;用户再次发现了隐藏的 Windows 10 Mobile 保留功能。知名破解达人 ADeltaX 表示&#xff0c;如果你的设备有合适的硬件&#xff0c;Windows 11 将在锁屏上有一个很酷的 3D 视差&#xff08;Paralla&#xff09;效果。 Win11新特性&…

播放RTMP协议的流媒体的几种选择

播放网络视频&#xff0c;通常解析库我们可以有多个选择 FFMPEG&#xff0c;Daniulive 或者 vitamio。 什么FFMPEG? 官网地址&#xff1a; 地址 FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了…

安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流

关于4K分辨率 4K分辨率即40962160的像素分辨率&#xff0c;它是2K投影机和高清电视分辨率的4倍&#xff0c;属于超高清分辨率。在此分辨率下&#xff0c;观众将可以看清画面中的每一个细节&#xff0c;每一个特写。影院如果采用惊人的40962160像素&#xff0c;无论在影院的哪个…

企业微信如何设置发票抬头 管理员在企业微信设置发票抬头的方法介绍

企业微信如何设置发票抬头?公司的发票抬头在企业微信中是由管理员在后台进行设置的&#xff0c;接下来的文章中小编将会带来详细的操作流程&#xff0c;感兴趣的朋友不要错过哦! 管理员在企业微信设置发票抬头的方法介绍 1、管理员在管理后台设置发票抬头信息 管理员登录企…

mingw64+msys2下使用cmake问题

直接pacman -S cmake 安装的并不好用&#xff0c;直接下载windows版本的cmake. 比如安装在D:\\cmake下. 然后设置环境变量 export PATHD:/cmake/bin:$PATH 然后编辑一个 toolchain-mingw64.cmake文件: SET(CMAKE_SYSTEM_NAME Windows) SET(CMAKE_C_COMPILER x86_64-w64-min…