当前位置: 首页 > news >正文

vue3+vant实现使用van-picker实现三级级联菜单展示(含递归遍历)

1、递归遍历三级展示,禁用自动弹起软键盘、设置文档自动换行避免过长文本省略号展示

<div class="text_div"><van-fieldclass="span_text":center="true"v-model="jobLevelCodeText"is-linklabel="任职岗位"autocomplete="off"@click="showPicker = true"//弹出弹出层@focus="handleFocus"//设置手机端不自动弹起软键盘
/><van-popup v-model:show="showPicker" round position="bottom" :style="{ height: '40%' }"><van-picker :columns="columns2" @cancel="showPicker = false" @confirm="onConfirm2" /></van-popup>
</div>const showPicker = ref(false)//弹出层开启标识
const jobLevelCodeText = ref('') //任职岗位
const columns2 = ref([])//任职岗位
//任职岗位
const onConfirm2 = ({ selectedOptions }) => {// console.log('选中任职岗位', selectedOptions)showPicker2.value = falsejobLevelCodeText.value = selectedOptions[selectedOptions.length - 1].text//展示的文本jobLevelCode.value = selectedOptions[selectedOptions.length - 1].value//实际选中的值// console.log('选中任职岗位code', jobLevelCode.value)
}//解决手机中选择器弹出键盘
const handleFocus = () => {const activeElement = document.activeElementif (activeElement) {activeElement.blur()}
}//获取任职岗位
const changeLine = () => {//任职岗位getList().then(res => {let elementToRemove = '一号位'let newArr = res.data.filter(item => item.levelName !== elementToRemove)//数组过滤function transformData(data) {//递归遍历return data.map(item => ({text: item.levelName,value: item.code,children: item.child ? transformData(item.child) : undefined // 第三层不设置children属性}))}const transformedData = transformData(newArr)columns2.value = transformedData})
}::v-deep {.van-field__control {text-align: right;}.van-ellipsis {//设置文本过长自动换行否则是省略号展示white-space: normal !important;word-wrap: break-word; /* 强制单词换行 */}
}

http://www.lryc.cn/news/478658.html

相关文章:

  • oracle-函数-grouping sets(x1,x2,x3...)的妙用
  • 人工智能在医疗病例诊断中的应用与展望
  • OceanBase 安装使用详细说明
  • CI_CD
  • Linux -- 初识线程
  • Uniapp底部导航栏设置(附带PS填充图标教程)
  • 单智能体carla强化学习实战工程介绍
  • 潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验
  • 什么是低代码?3000字低代码超全解读!
  • 雷池社区版7.1新版本自定义NGINX配置分析
  • [SAP ABAP] 面向对象程序设计-类和对象
  • 『大模型笔记』IBM技术团队:什么是智能体型RAG!
  • WPF 中 NavigationWindow 与 Page 的继承关系解析
  • WebRTC基础理论和通话原理
  • NPU 可不可以代替 GPU
  • Vue3版本的uniapp项目运行至鸿蒙系统
  • 部署stable-diffusion3.5 大模型,文生图
  • 数据采集之selenium模拟登录
  • 机器学习中的两种主要思路:数据驱动与模型驱动
  • 【计算机网络】TCP协议面试常考(一)
  • C#/.NET/.NET Core学习路线集合,学习不迷路!
  • 使用哈希表做计数排序js
  • 京津冀自动驾驶技术行业盛会|2025北京自动驾驶技术展会
  • Chrome与火狐哪个浏览器的隐私追踪功能更好
  • 探索 Python 图像处理的瑞士军刀:Pillow 库
  • JavaScript中的if、else if、else 和 switch
  • Python 使用 langchain 过程中的错误总结
  • MySQL基础篇总结
  • 全面解析:网络协议及其应用
  • 一文了解Java序列化