ionic2 省市縣三級聯動

首先要感謝女票幫我找了這么好用的一個插件
先上效果圖,效果和ionic2自帶的iOS日期(dateTime)模擬器樣式一樣


傳送門:https://github.com/HsuanXyz/ionic2-city-picker
寫的很詳細,用法我就不贅述了

有一點要說的就是默認字體是20px 略顯大,很多地方顯示不全用...代替了,于是改了下字體和字體模塊的高度

app.scss文件

//省市區三級聯動字體
.picker-opt{
  font-size: 1.2rem !important;
  height: 3.8rem !important;
}
.city-picker-text{
  margin-right: .6rem ;
}

———————————— 分割線 ————————————
2018年2月27日更新
調用高德獲取數據,并且拼接成city-picker組件需要的格式(國內高德暫不支持臺灣地區)

注意:這個組件有個地方很坑,它為三排屬性(省市縣),那么就必須要三排都有數據
如果其中一排沒有(有些市沒有縣),那么選擇了這個市之后再上下滑動進行選擇其他的市
就會發現第三排數據重疊在一起的現象,所以要用判斷,將所有市的三排數據都填滿

this.service.getTown('中國').subscribe(
      data => {
        let CityData = [];
        let allProvince = data['districts'][0]['districts'];
        // console.log(allProvince);
        allProvince.forEach((value, index) => {
          let tempData = {'name': value.name, 'code': value.adcode, 'children': []};
          if (value.name == '臺灣省') {
            tempData.children.push({'name': '臺灣', 'code': value.adcode, 'children': []});
            tempData.children[0]['children'].push({'name': '', 'code': value.adcode});
          } else {
            value.districts.forEach((value2, index2) => {
              tempData.children.push({'name': value2.name, 'code': value2.adcode, 'children': []});
              if (value2.districts.length == 0) {
                tempData.children[index2]['children'].push({'name': '', 'code': value2.adcode});
              } else {
                value2.districts.forEach((value3, index3) => {
                  tempData.children[index2]['children'].push({'name': value3.name, 'code': value3.adcode});
                });
              }
            });
          }
          CityData.push(tempData);
          localStorage.CityData = JSON.stringify(CityData);
        });
        // console.log(JSON.parse(localStorage.CityData));
      }
    );
// 高德行政區域查詢
  getTown(params?: any): Observable<any[]> {
    return this.http.get('http://restapi.amap.com/v3/config/district?keywords=' + params + '&subdistrict=3&key=' + YOUR_KEY)
      .map(this.extractData)
      .catch(this.handleError);
  }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容