Files
jxc4_app_and_mini/src/apis/address/index.js
2025-11-28 10:10:21 +08:00

171 lines
4.1 KiB
JavaScript

import api from '../request'
import { gdMapKey } from "@/apis/config"
import { json2query } from '@/utils'
export default {
/**
* 高德坐标解析
*/
posToCity: async (data) => {
try {
let res = await api('v3/geocode/regeo', {
data: {
key: gdMapKey,
location: `${data.longitude},${data.latitude}`,
extensions: data.extensions ? 'all' : 'base'
}
}, 'gdMap')
return res
} catch (e) {
console.error('posToCity', e)
throw (e)
}
},
/**
* 获取建议地址
*/
getSuggestion: async (keywords, city) => {
try {
let res = await api('v3/place/text', {
data: {
key: gdMapKey,
keywords,
city,
citylimit: true
}
}, 'gdMap')
return res
} catch (e) {
console.error('getSuggestion', e)
throw (e)
}
},
/**
* 按当前位置匹配门店
*/
storeListByLocation: async (data) => {
try {
// #ifdef MP-KUAISHOU
// data.lat = 30.69015
// data.lng = 104.05293
// #endif
let res = await api('v2/store/GetStoreListByLocation', {
data
})
return res
} catch (e) {
console.error('storeListByLocation', e)
throw (e)
}
},
/**
* 关键字检索城市
*/
getCity: async (params) => {
try {
let res = await api('v2/cms/GetPlaces', {
data: {
level: params.level,
includeDisabled: true,
keyword: params.keyword
}
})
return mapCity(res || [])
} catch (e) {
console.error('getCity', e)
throw (e)
}
},
/**
* 查询地址管理
* @param {*} params 暂无
*/
getMyDeliveryAddress: async (params = {}) => {
try {
let res = await api('v2/user2/QueryMyDeliveryAddress', {
data: params
})
return res
} catch (e) {
console.error('getMyDeliveryAddress', e)
throw (e)
}
},
/**
* 添加地址
* @param {Object} form 参数对象
* consigneeName 收货人
* consigneeMobile 收货人手机
* address 详细地址
* detailAddress
* lng 经度 Number
* lat 纬度 Number
*
* 非必须
* tag 标签(家、公司、学校)
* remark 备注
* isDefault 是否是默认 true false
*/
addAddressList: async (form = {}) => {
try {
let res = await api('v2/user2/AddMyDeliveryAddress', {
method: 'POST',
data: json2query(form)
})
return res
} catch (e) {
console.error('addMyDeliveryAddress', e)
throw (e)
}
},
/**
* 修改地址
* @param {Object} form
*/
updateMyDeliveryAddress: async (form = {}) => {
try {
let res = await api('v2/user2/UpdateMyDeliveryAddress', {
method: 'PUT',
data: json2query(form)
})
return res
} catch (e) {
console.error('updateMyDeliveryAddress', e)
throw (e)
}
},
/**
* 删除地址
* @param {Number} addressID 地址ID
*/
delMyDeliveryAddress: async (addressID) => {
try {
let res = await api('v2/user2/DeleteMyDeliveryAddress?id=' + addressID, {
method: 'DELETE'
})
return res
} catch (e) {
console.error('delMyDeliveryAddress', e)
throw (e)
}
}
}
const mapCity = (arr) => {
if (arr.length === 0) return []
return arr.map(item => ({
id: item.id,
code: item.code,
name: item.name
}))
}