更新记录

1.0(2020-06-30)

嵌入式联动插件


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

嵌入式地区联动插件

在 >template 中引用组件

 <picker-view indicator-style="height: 50px;" style="width: 100%; height: 150px;" :value="value" @change="bindChange">
            <picker-view-column> 
             <view v-for="(item,Index) in provinces" :key="Index">{{item}}</view>
            </picker-view-column>
            <picker-view-column>
                <view  v-for="(item,Index) in citys" :key="Index">{{item}}</view>
            </picker-view-column>
            <picker-view-column>
                <view   v-for="(item,Index) in areas" :key="Index">{{item}}</view>
            </picker-view-column> 
        </picker-view>

在 >script 中引用组件


   const cityData = require('@/components/gxlcms-area/citydata.json');

    export default {
        data(){
            return {
                    citysData: cityData,
                    provinces: [],
                    citys: [],
                    areas: [],
                    value: [0,0,0],
                    name: '',
                    regionName:false
            }
        },
        onLoad(e){
              this.initData();
              this.sex=e.sex;
        },
        methods:{
            // 获取选择的地区
           initData(){
                   var provinces = [];
                   var citys = [];
                   var areas = [];

                   this.citysData.forEach(function(province,i){
                       provinces.push(province.name);
                       if(i===0){
                           citys.push(province.citys[i].name);
                           areas = province.citys[i].areas;
                       }
                   });

                  this.provinces=provinces;
                  this.citys=citys;
                  this.areas=areas; 

               },

               bindChange(e){
                   var citysData = this.citysData;
                   var value = this.value;
                   var current_value = e.detail.value;
                   var citys = [];
                   var provinceObj = {};
                   var cityObj = {};
                   provinceObj = citysData[current_value[0]];

                   if (value[0] !== current_value[0]) {
                       // 滑动省份
                       provinceObj.citys.forEach(function(v){
                           citys.push(v.name);
                       });

                    this.citys=citys;
                       cityObj = provinceObj.citys[0];

                       this.areas=cityObj.areas;
                       this.value=[current_value[0],0,0];
                   }else if(value[0] === current_value[0] && value[1] !== current_value[1]){
                       // 滑动城市
                       if(current_value[1]>=provinceObj.citys.length){
                           // 数据不存在 跳过
                           return;
                       }
                       cityObj = provinceObj.citys[current_value[1]];
                         this.areas=cityObj.areas;
                         this.value=[current_value[0],current_value[1],0];

                   }else{
                       // 滑动区县
                       cityObj = provinceObj.citys[current_value[1]];
                       this.value=current_value;

                   }
                     this.name=provinceObj.name+'-'+cityObj.name+'-'+cityObj.areas[this.value[2]];
                     this.regionName=true
                    console.log(this.name)
               }

        }
    }

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问