使用mint ui 的picker解决城市三级联动



<
mt-popup v-model="popupVisible" position="bottom"> <div class="pop-btn">    <p @click="cancel()">取消</p> <p @click="save()">确定</p> </div> <mt-picker :slots="slots" value-key="name" @change="changeCity"></mt-picker> </mt-popup>
new Vue({
  data(){
    return(){
        slots: [
          {
            flex: 1,
            defaultIndex: 1,
            values: [], //省份数组
            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'
          }
        ],
        popupVisible:false,//是否显示popup弹出层
    }
  } 
  methods:{
      //城市的picker改变时调用
      changeCity(picker, values) {
        if (values[0]) {
          picker.setSlotValues(1, Object.keys(this.pca[values[0]]));//只要有一级数据就绑二级数据
          picker.setSlotValues(2, this.pca[values[0]][values[1]]);//只要有二级数据就帮三级数据
          this.selectAddress = values;
        }
      },
    //获取城市数据 _getCityData() { $.ajax({ url:
'/static/json/pca.json', type: 'get', success: function (res) { vm.pca = res; vm.slots[0].values = Object.keys(res);//绑定一级数据 } }); } }, mounted() {
this._getCityData();
} })

城市数据地址 github:https://github.com/artiely/Administrative-divisions-of-China

城市数据地址 码云:https://gitee.com/yagerya/Administrative-divisions-of-China

原文地址:https://www.cnblogs.com/xinchenhui/p/11243670.html