html5地区级联选择,【JS】vue+vant移动端地区级联选择组件

首页

专栏

javascript

文章详情

0

vue+vant移动端地区级联选择组件

110293.htmlquanta发布于 今天 08:25

写在开头:项目的框架是vue+vant,业务需求一个级联的地区选择,写完才发现vant本身也有这组件….后来看vant本身用的逻辑跟我不太一样,觉得还有点思考价值那就发上来当做实现记录吧~

总体思路(select与tabs独立):

列表选择(select)

1)获取当前tabs的长度 -> 设置当前active的name

2)通过levelCollect(最终选择的数据集)设置每个层级,例:[‘第一层数据’,’第二层数据’,’第三层数据’,…]

3)删除后级数据,更新tabs长度

4)如果有下级,新增active并选中,如果没有设置完成

tab选择(tabsClick)

1)拷贝一次原始数据,设置列表筛选数据:0级使用原始数据,其它选用存储数据设置高亮

2)滚动到选中

目前功能支持:

·自定义数据

·N级数据联动

·上级数据选择后修改

·选择项高亮

todo:

数据回填

效果图:

7c132cb8a491acb4afe5aefe2ffcfa0b.gif

addressCard.vue

请选择所在地区

.

{ {item.name}}

import { Tab,Tabs } from 'vant';

import areaJson from './areaJson/pcas-code.json'

export default {

components: {

[Tab.name]: Tab,

[Tabs.name]:Tabs

},

data(){

return{

active:1,

levelCollect:[],

originArea:areaJson,

areaJson,

tabsData:[{

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个功能,可以使用 Vant 4.x 中的 Cascader 级联选择组件。在 Cascader 中,可以通过配置 options 属性来设置级联数据源,然后通过配置 value 属性来获取用户选择的数据。同时,Cascader 还提供了 slot 来自定义显示内容,可以根据自己的需求来进行定制。 对于多选,可以使用 Vant 4.x 中的 Checkbox 复选框组件。在 Cascader 中,可以通过配置 show-checkbox 属性来开启多选模式,然后通过配置 checked-options 属性来获取用户选择的数据。 下面是一个简单的示例代码: ```html <van-cascader :options="options" :value="value" :show-checkbox="true" :checked-options="checkedOptions" @change="handleChange" > <template #title="{option}"> <van-checkbox v-model="option.checked">{{ option.label }}</van-checkbox> </template> </van-cascader> ``` ```javascript export default { data() { return { options: [ { value: 'beijing', label: '北京', children: [ { value: 'haidian', label: '海淀区', }, { value: 'chaoyang', label: '朝阳区', }, ], }, { value: 'shanghai', label: '上海', children: [ { value: 'pudong', label: '浦东新区', }, { value: 'minhang', label: '闵行区', }, ], }, ], value: [], checkedOptions: [], }; }, methods: { handleChange(value, selectedOptions, checkedOptions) { this.value = value; this.checkedOptions = checkedOptions; }, }, }; ``` 在上面的代码中,我们通过配置 options 属性来设置级联数据源,通过配置 value 和 checkedOptions 属性来获取用户选择的数据。同时,我们使用了 slot 来自定义级联选择器的显示内容,将每个选项的 label 和 checkbox 组合在一起。最后,我们监听了 Cascader 的 change 事件,在事件处理函数中更新 value 和 checkedOptions 的值。 希望这个示例代码能够帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值