flat: 页面初始化

This commit is contained in:
史典卓
2024-11-18 16:33:37 +08:00
parent cf8fc80b20
commit ad4eb162a5
83 changed files with 8250 additions and 89 deletions

View File

@@ -0,0 +1,106 @@
/**
* @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 Objectheaders默认{}
* @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
}