106 lines
3.2 KiB
JavaScript
106 lines
3.2 KiB
JavaScript
/**
|
||
* @param title String,提示的内容
|
||
* @param duration String,提示的延迟时间,单位毫秒,默认:1500
|
||
* @param mask Boolean,是否显示透明蒙层,防止触摸穿透,默认:false
|
||
* @param icon String,图标:success、error、fail、exception、loading、none,默认:none
|
||
**/
|
||
export function createMessage(title, duration = 1500, mask = false, icon = "none") {
|
||
uni.showToast({
|
||
title,
|
||
duration: duration,
|
||
mask,
|
||
icon
|
||
});
|
||
}
|
||
|
||
/**
|
||
* @param url String,请求的地址,默认:none
|
||
* @param data Object,请求的参数,默认:{}
|
||
* @param method String,请求的方式,默认:GET
|
||
* @param loading Boolean,是否需要loading ,默认:false
|
||
* @param header Object,headers,默认:{}
|
||
* @returns promise
|
||
**/
|
||
export function createRequest(url, data = {}, loading = false, method = 'GET', header = {}) {
|
||
if (loading) {
|
||
uni.showLoading({
|
||
title: '请稍后',
|
||
mask: true
|
||
})
|
||
}
|
||
return new Promise((resolve, reject) => {
|
||
uni.request({
|
||
url: url,
|
||
method: method,
|
||
data: data,
|
||
header: header,
|
||
success: res => {
|
||
if (res.statusCode === 200) {
|
||
resolve(res.data)
|
||
} else {
|
||
if (res.data.msg) {
|
||
const str = typeof res.data.resolve === 'string' ? ',' + res.data.resolve :
|
||
''
|
||
createMessage(res.data.msg + str)
|
||
}
|
||
throw new Error('请求错误 ' + url)
|
||
reject()
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
reject(err)
|
||
},
|
||
complete: () => {
|
||
uni.hideLoading();
|
||
}
|
||
});
|
||
})
|
||
}
|
||
|
||
/**
|
||
* 数据格式化
|
||
* @param obj Object,响应的数据
|
||
* @param type Number 0 | 1,处理类型
|
||
* @returns Object {address = string, name = string, location = {lon, lat }, infomation = {}}
|
||
*/
|
||
export function formatterAdressLocation(obj, type) {
|
||
switch (type) {
|
||
case 1:
|
||
return {
|
||
address: obj.formatted_address,
|
||
name: '',
|
||
location: obj.location,
|
||
infomation: obj.addressComponent
|
||
}
|
||
break;
|
||
case 2:
|
||
const [lon, lat] = obj.lonlat.split(',')
|
||
return {
|
||
address: obj.address,
|
||
name: obj.name,
|
||
location: {
|
||
lon,
|
||
lat
|
||
},
|
||
infomation: obj
|
||
}
|
||
break
|
||
case 3:
|
||
return {
|
||
address: obj.location.keyWord,
|
||
name: '',
|
||
location: {
|
||
lon: obj.location.lon,
|
||
lat: obj.location.lat,
|
||
},
|
||
infomation: obj.location
|
||
}
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
export default {
|
||
createMessage,
|
||
createRequest,
|
||
formatterAdressLocation
|
||
} |