let html = ''
$.ajax({
url: 'https://opsiteapi-cn.oneplus.com/api/public/v1/store/getDistrictsByCode?code=cn',
type: 'GET',
success: function(res) {
let provinces = res.data.districts.filter(function(v,k){
return v.pid === 7757
})
let temp = [], arr = []
provinces.forEach(function(province){
let obj = {
id: province.id,
name: province.name,
districts: []
}
res.data.districts.forEach(function(district){
if(province.id === district.pid){
obj.districts.push(district)
}
})
temp.push(obj)
})
let provinceLetterSort = [
{ letter: 'A', provincesList: ['澳门', '安徽'] },
{ letter: 'B', provincesList: ['北京'] },
{ letter: 'C', provincesList: ['重庆'] },
{ letter: 'F', provincesList: ['福建'] },
{ letter: 'G', provincesList: ['甘肃', '广东', '广西', '贵州'] },
{ letter: 'H', provincesList: ['海南', '黑龙江', '河北', '河南', '湖北', '湖南'] },
{ letter: 'J', provincesList: ['吉林', '江苏', '江西'] },
{ letter: 'L', provincesList: ['辽宁'] },
{ letter: 'N', provincesList: ['内蒙古', '宁夏'] },
{ letter: 'Q', provincesList: ['青海'] },
{ letter: 'S', provincesList: ['山东', '山西', '陕西', '上海', '四川'] },
{ letter: 'T', provincesList: ['台湾', '天津'] },
{ letter: 'X', provincesList: ['西藏', '新疆', '香港'] },
{ letter: 'Y', provincesList: ['云南'] },
{ letter: 'Z', provincesList: ['浙江'] }
]
provinceLetterSort.forEach(function(province){
let flag = province.provincesList.length > 1
province.provincesList.forEach(function(p) {
temp.forEach(function(v){
if(v.name.includes(p)){
if(flag || province.provincesList.length === 1){
v.letter = province.letter
}
flag = false
arr.push(v)
}
})
})
})
arr.forEach(function(k){
let li = ''
k.districts.forEach(function(v){
li += `
${v.name}`
})
let svg = k.districts.length > 1 ? '' : ''
html += `
${k.letter ? k.letter : ''}
${k.name}${svg}
`
})
$('#address-province').html(html)
$('#offline-address-search-input').on('focus', function(){
$('.province-city-list').show()
$(this).val('')
$('#jd-offline .icon-font-close-warp').hide()
$('#jd-offline .auto-list-content').hide()
$('.offline-address-search').addClass('show-result')
})
$('body').on('click', function(e){
if($(e.target).closest('.offline-address-search').length){
return
}
$('.province-city-list').hide()
$('.offline-address-search').removeClass('show-result')
})
$('#address-province').on('click', '.address-province-name', function(){
$(this).parent().siblings().removeClass('active')
$(this).parent().toggleClass('active')
if($(this).hasClass('no-children')){
let obj = {
type: 2,
data: {
name: $(this).data('name'),
id: $(this).data('id')
}
}
sessionStorage.setItem('MAP_STORAGE', JSON.stringify(obj))
location.href = 'retail/map'
}else{
$(this).siblings('.address-province-city').slideToggle()
}
})
$('.offline-banner-view').on('click', function(){
location.href = 'retail/map'
})
$('#address-province').on('click', '.address-province-city li', function(){
let obj = {
type: 2,
data: {
name: $(this).data('name'),
id: $(this).data('id')
}
}
sessionStorage.setItem('MAP_STORAGE', JSON.stringify(obj))
location.href = 'retail/map'
})
$('#offline-address-search-input').on('keyup', function(){
if($(this).val().length === 0) {
$('#jd-offline .auto-list-content').hide()
$('#jd-offline .icon-font-close-warp').hide()
return
}
$('#jd-offline .auto-list-content').show()
$('#jd-offline .icon-font-close-warp').show()
let html = ''
addressSearch($(this).val(), (res) => {
let data = formattersearchResult(res.tips)
if(data.length === 0){
$('#no-data').html(`没有找到相应的结果
`)
$('#address-detail').html('')
return
}
data.forEach(function(v){
html += `
`
})
$('#no-data').html('')
$('#address-detail').html(html)
$('#address-detail').on('click', 'li', function(){
let obj = {
type: 4,
data: $(this).data('obj')
}
sessionStorage.setItem('MAP_STORAGE', JSON.stringify(obj))
location.href = 'retail/map'
})
})
})
$('#jd-offline .icon-font-close-warp').on('click', function(){
$('#offline-address-search-input').val('')
$('#jd-offline .auto-list-content').hide()
$('#jd-offline .icon-font-close-warp').hide()
})
},
error: function(error) {
console.log('Error: ' + error);
}
})
function formattersearchResult(data = []) {
const result = []
data.forEach(item => {
// typecode 参考 POI分类编码 https://lbs.amap.com/api/webservice/download
switch (item.typecode) {
case '190102': // 190102 省级地名
item.isProvince = true
item.address = ''
break
case '190103': // 190103 直辖市级地名
case '190104': // 190104 地市级地名
item.isCity = true
item.address = ''
result.push(item)
break
default:
if (Array.isArray(item.address)) {
item.address = ''
}
if (item.location && item.adcode) { // 具体位置
result.push(item)
}
break
}
})
return result
}