demo及源码地址 https://github.com/artiely/citypicker

先去下载一个“省份、城市、区县、乡镇” 四级联动数据,然后

引入

import { Picker } from 'mint-ui'; //前提是npm install mint-ui -S

Vue.component(Picker.name, Picker);

组件使用

 <mt-picker :slots="addressSlots" class="picker" @change="onAddressChange" :visible-item-count="5" ></mt-picker >

<mt-picker :slots="streetSlots" ref="picker" class="picker" @change="onStreetChange" :visible-item-count="5" ></mt-picker >
上门服务地址:{{ addressProvince }} {{ addressCity }}

组件方法

<script type="text/ecmascript-6" >

  import s from '../../statics/mobile/json/address4.json'

  export default {
name: 'address',
data () {
return {
companyName:'',
addressSlots: [
{
flex: 1,
defaultIndex: 1,
values: Object.keys(s),
className: 'slot1',
textAlign: 'center'
}, {
divider: true,
content: '-',
className: 'slot2'
}, {
flex: 1,
values: [],
className: 'slot3',
textAlign: 'center'
}, {
divider: true,
content: '-',
className: 'slot4'
}, {
flex: 1,
values: [],
className: 'slot5',
textAlign: 'center'
}
],
streetSlots: [
{
flex: 1,
values: [],
className: 'slot1',
textAlign: 'center'
}
],
addressProvince: '省',
addressCity: '市',
addressXian: '区',
addressStreet: '街道', }
},
methods: { onAddressChange(picker, values) {
let sheng = Object.keys(s);
let shi = Object.keys(s[values[0]]);

      let index=shi.indexOf(values[1])
      let xian = s[values[0]][shi[index]];

     this.xianObj = xian;
picker.setSlotValues(1, shi);
this.addressProvince = values[0];
this.addressCity = values[1];
this.addressXian = values[2];
picker.setSlotValues(2, Object.keys(xian));
},
onStreetChange(picker, values){
this.addressStreet = values[0]
}, },
watch: {
'addressXian': {
handler(val, oval){
let street = this.xianObj[this.addressXian]
this.streetSlots[0].values = street
}
}
},
created(){ },
mounted(){
this.$nextTick(() => {
setTimeout(() => {//这个是一个初始化默认值的一个技巧
this.addressSlots[0].defaultIndex = 0;
}, 100);
}); }
}
</script >

完成效果

demo及源码地址 https://github.com/artiely/citypicker

最新文章

  1. 第一个移动前端开源项目-dailog
  2. javascript设计模式:策略模式
  3. 20145315&amp;20145307《信息安全系统设计基础》实验五
  4. 11月3日上午PHP练习《投票》
  5. 图片过大,在div中不压缩的居中方法
  6. iOS 推送小记
  7. 第 24 章 CSS3 变形效果[下]
  8. Openjudge 1.3-04 垂直直方图
  9. HTML5 程序设计笔记(一)
  10. [LeetCode] Interleaving String [30]
  11. Azure 网站上的 Java
  12. MongoDB大数据高并发读写性能测试报告
  13. elasticsearch视频
  14. Holer实现手机APP应用外网访问本地WEB应用
  15. java————数组 简单写出一个管理系统
  16. MVC5 方法扩展
  17. (转载)CPU、内存、硬盘、指令以及他们之间的关系
  18. 1131(★、※)Subway Map
  19. python贡献度分析20/80定律
  20. 7.0 FileProvide适配

热门文章

  1. React Native学习(九)—— 使用Flexbox布局
  2. emqtt 试用(二)验证 emq 和 mosquito 的共享订阅
  3. GIT入门笔记(9)- git的add和commit机制原理
  4. hadoop原理
  5. Python 爬取淘宝商品信息和相应价格
  6. java的分数类
  7. mongodb聚合的使用
  8. Java面向对象之封装 入门实例(一)
  9. nginx和nfs
  10. SpringBoot(七):集成DataSource 与 Druid监控配置