import MD5 from 'js-md5'
export default {
common: {
data: {},
header: {},
method: "GET",
dataType: "json"
},
request(options = {}) {
options.data = options.data || this.common.data;
options.header = options.header || {};
options.method = options.method || this.common.method;
options.dataType = options.dataType || this.common.dataType;
return new Promise((resolve, reject) => {
const app = getApp()
let url = options.url
let sessionID = app.globalData.userdata?.session_id || ""
if (sessionID) {
if (url.includes("?")) {
url = `${options.url}&sessionid=${encodeURI(sessionID)}`
} else {
url = `${options.url}?sessionid=${encodeURI(sessionID)}`
}
}
// console.log("request:", url, options);
uni.request({
url: url,
data: options.data,
header: options.header,
method: options.method,
dataType: options.dataType,
success: (result) => {
// console.log("result", result)
if (result.statusCode != 200) {
return reject({
errMsg: "访问失败,状态码:" + result.statusCode
})
}
if (options.raw) {
return resolve(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,
'
').replace(/[\t]/g, ' '));
}
} catch (ex) {
console.log(ret)
return reject({
errMsg: '将【json string】转换为【json object】失败'
})
}
}
if (ret.code == '00000' || ret.err_code == 0) {
resolve(ret.result);
} else if (ret.code == '1102' || ret.err_code == 1102 || ret.errCode == 1102) {
uni.reLaunch({
url: '/pages/loading/loading'
})
} else if (ret.code == '12201' || ret.err_code == 12201 || ret.errCode ==
12201) {
reject({
errMsg: ret.msg || ret.err_msg || ret.errMsg || '未知错误!',
errCode: 12201
});
} else {
reject({
errMsg: ret.msg || ret.err_msg || ret.errMsg || '未知错误!'
});
}
},
fail: (err) => {
console.log("fail", err)
return reject(err);
}
})
})
},
requestGungho(options = {}) {
options.data = options.data || this.common.data;
options.header = options.header || {};
options.method = options.method || this.common.method;
options.dataType = options.dataType || this.common.dataType;
return new Promise((resolve, reject) => {
const app = getApp()
let url = options.url
//验证信息
const token = app.globalData.userdata ?
`login=${encodeURI(app.globalData.userdata.user_login)}&userName=${encodeURI(app.globalData.userdata.user_name)}&sessionId=${encodeURI(app.globalData.userdata.session_id)}` :
"login=sa"
if (url.includes("?")) {
url = `${options.url}&${token}`
} else {
url = `${options.url}?${token}`
}
// console.log("requestGungho ",url,options)
uni.request({
url: url,
data: options.data,
header: options.header,
method: options.method,
dataType: options.dataType,
success: (result) => {
// console.log("result", result)
if (result.statusCode != 200) {
return reject({
errMsg: "访问失败,状态码:" + result.statusCode
})
}
if (options.raw) {
return resolve(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,
'
').replace(/[\t]/g, ' '));
}
} catch (ex) {
console.log(ret)
return reject({
errMsg: '将【json string】转换为【json object】失败'
})
}
}
if (ret.code == '00000' || ret.err_code == 0) {
resolve(ret.result);
} else if (ret.code == '1102' || ret.err_code == 1102 || ret.errCode == 1102) {
uni.reLaunch({
url: '/pages/loading/loading'
})
} else {
reject({
errMsg: ret.msg || ret.err_msg || ret.errMsg
});
}
},
fail: (err) => {
console.log("requestGungho fail", err)
return reject(err);
}
})
})
},
/**
* 服务器间授权验证,就是登录前调用接口
*/
verifyRequest(options) {
const time = new Date().getTime() / 1000;
const appKey = "OpenInfo"
const appSecret = "OpenInfoSecret"
const verify = MD5(`${appKey}${appSecret}${time}`)
options.data = options.data || this.common.data;
options.header = {
'AppKey': appKey,
'ReqTime': `${time}`,
'ReqVerify': verify,
'content-type': 'application/json'
}
options.method = options.method || this.common.method;
options.dataType = options.dataType || this.common.dataType;
return new Promise((resolve, reject) => {
uni.request({
url: options.url,
data: options.data,
header: options.header,
method: options.method,
dataType: options.dataType,
success: (result) => {
if (result.statusCode != 200) {
return reject({
errMsg: "访问失败,状态码:" + result.statusCode
})
}
if (options.raw) {
return resolve(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,
'
').replace(/[\t]/g, ' '));
}
} catch (ex) {
console.log(ret)
return reject({
errMsg: '将【json string】转换为【json object】失败'
})
}
}
if (ret.code == '00000' || ret.err_code == 0) {
resolve(ret.result);
} else {
reject({
errMsg: ret.msg || ret.err_msg || ret.errMsg
});
}
},
fail: (err) => {
console.log("fail", err)
return reject(err);
}
})
})
},
}