import {
|
session,
|
} from "@/comm/utils.js"
|
export default {
|
common: {
|
data: {},
|
// header: {
|
// "Content-Type": "application/json;charset=UTF-8"
|
// },
|
method: "GET",
|
dataType: "json"
|
},
|
addLog(item) {
|
const list = session.getValue("request_log") || []
|
|
const res = typeof item.data == 'string' ? item.data : JSON.stringify(item.data)
|
if (res.length > 100 * 1024) {
|
const maxData = session.getValue("request_log_max_data") || {}
|
const key = `data${new Date().getTime()}`
|
maxData[key] = item.data
|
item.data_key = key
|
delete item.data
|
session.setValue("request_log_max_data", maxData)
|
}
|
list.unshift(item)
|
if (list.length > 1000) {
|
const oldItem = list.shift()
|
if (oldItem.data_key) {
|
const maxData = session.getValue("request_log_max_data") || {}
|
delete maxData[oldItem.data_key]
|
session.setValue("request_log_max_data", maxData)
|
}
|
}
|
session.setValue("request_log", list)
|
|
},
|
request(options = {}) {
|
options.data = options.data || this.common.data;
|
options.header = options.header || {
|
"Content-Type": "application/json;charset=UTF-8"
|
};
|
options.method = options.method || this.common.method;
|
options.dataType = options.dataType || this.common.dataType;
|
console.log("url", options.url, options.data)
|
return new Promise((resolve, reject) => {
|
const app = getApp()
|
uni.request({
|
url: options.url,
|
data: options.data,
|
// header: options.header,
|
method: options.method,
|
dataType: options.dataType,
|
success: (result) => {
|
console.log("result", result)
|
const now = new Date()
|
const date = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`
|
if (result.statusCode != 200) {
|
this.addLog({
|
date,
|
method: `${options.method || ""}`,
|
url: options.url,
|
param: options.data,
|
statusCode: result.statusCode,
|
data: ""
|
})
|
if (result.statusCode == 404) {
|
|
return reject({
|
msg: "地址不对,请检查该地址:" + options.url
|
});
|
}
|
return reject({
|
msg: "访问失败,状态码:" + result.statusCode
|
})
|
}
|
this.addLog({
|
date,
|
method: `${options.method || ""}`,
|
url: options.url,
|
param: options.data,
|
statusCode: result.statusCode,
|
data: result.data
|
})
|
var ret = result.data
|
if (typeof ret == 'string') {
|
try {
|
try {
|
try {
|
ret = JSON.parse(ret.replace(/\\"/g, '"'));
|
} catch (ex) {
|
ret = JSON.parse(ret.replace(/\\/g, '\\\\'))
|
}
|
} catch (ex) {
|
ret = JSON.parse(ret.replace(/\\"/g, "'").replace(
|
/[\r\n]/g,
|
'<br>').replace(/[\t]/g, ' '));
|
}
|
} catch (ex) {
|
|
return reject({
|
msg: '将【json string】转换为【json object】失败'
|
})
|
}
|
}
|
if (ret.code == 0) {
|
|
resolve(ret.data);
|
} else {
|
|
reject({
|
msg: ret.msg || ""
|
});
|
}
|
},
|
fail: (err) => {
|
console.log("fail", err)
|
const now = new Date()
|
const date = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}`
|
this.addLog({
|
date,
|
method: `${options.method || ""}`,
|
url: options.url,
|
param: options.data,
|
statusCode: -1,
|
data: err
|
})
|
return reject(err);
|
}
|
})
|
})
|
},
|
|
}
|