iview组件轮子。可能是你想要的二级城市多选。

01 需求来源

前阵子项目中有一个城市多选的需求,分解后有以下几个需要实现的指标:

  1. 一次性展示中国的所有省份
  2. 省份的下属城市,在鼠标hover到省份上时也触发显示
  3. 支持局部全选和反选
  4. 省份下属的城市若没有全选,显示当前已选择个数
  5. 支持省市下标和省市名称两种输出方式

02 效果

不多说先看效果。

再来几张静态图。

03 项目地址

git repertory:https://github.com/chokingwin/area-multi-selection,欢迎star

04 如何使用

需要说明的是,这是一个基于iview提供的 checkboxpoptip 组件封装而成。

1.导入area组件文件夹

area组件在项目 src/components/ 目录下,包括 area-source.jsonarea-producer.jsarea.vue 三个文件,直接复制这文件夹到你的vue工程中。

2.引入组件并注册
import areaMultiSelection from './components/area/area';
复制代码
components: {
    'area-multi-selection': areaMultiSelection
}
复制代码
3.直接使用
<area-multi-selection @areaData="receiveAreaData" :AreaData="areaIndexArr"></area-multi-selection>
复制代码

这里相应,还要准备一个传入组件的 data areaIndexArr ,还有一个接收组件输出结果的 method receiveAreaData

  data() {
    return {
      isShowAreaModel: false,
      areaIndexArr: [],
      areaNameArr: []
    };
  },
  methods: {
    receiveAreaData(data) {
      this.areaIndexArr = data.index;
      this.areaNameArr = data.name;
    }
  }
复制代码

05 最后

整个项目已经放到github上:https://github.com/chokingwin/area-multi-selection,再次欢迎star。
大伙可以 clone 下来,跑起来看看。项目里也写了个简单的页面,直观展示了城市多选的输出结果。


还有很多不足,这里说几点:

  • 多处循环遍历,代码可优化
  • 省市的源数据格式特定,后续会适应多种数据源格式的输入
  • 可以的话,后续会做到 npm 包里

就这样,周末愉快~

转载于:https://juejin.im/post/5b125891518825137f0d1d80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值