82 lines
2.0 KiB
JavaScript
82 lines
2.0 KiB
JavaScript
const Cache = require('../utils/storage');
|
||
import {
|
||
operatorUrl,
|
||
operatorPlug,
|
||
uploadImgUrl,
|
||
previewUrl,
|
||
copyrightUrl,
|
||
aiShopUrl,
|
||
imgAssets,
|
||
appUrl
|
||
} from '../net/mainUrl'
|
||
// 项目与基础URL映射关系
|
||
const PROJECT_URL_MAP = {
|
||
operator: operatorUrl,
|
||
copyright: copyrightUrl,
|
||
plug: operatorPlug,
|
||
aiShop: aiShopUrl,
|
||
// 添加新项目只需在此扩展
|
||
};
|
||
/**
|
||
* 传入请求参数,返回Promise支持链试调用
|
||
* @param url 请求地址
|
||
* @param method 请求方法类型,不传入默认是"GET"
|
||
* @param data 请求体数据
|
||
* @param params 请求参数
|
||
*/
|
||
function request(url, method = "GET", data = {}, project = "copyright", needToken = true) {
|
||
// 1. 参数预处理
|
||
const baseUrl = PROJECT_URL_MAP[project] || copyrightUrl;
|
||
const requestUrl = baseUrl + url;
|
||
// 2. 请求头配置
|
||
const headers = {
|
||
"Content-Type": "application/json"
|
||
};
|
||
|
||
if (needToken) {
|
||
const token = Cache.get('token');
|
||
if (token) {
|
||
headers.Auth = `Bearer ${token}`;
|
||
}
|
||
}
|
||
// 3. 请求配置
|
||
const requestConfig = {
|
||
url: requestUrl.toString(),
|
||
method: method.toUpperCase(),
|
||
data,
|
||
header: headers,
|
||
timeout: 10000,
|
||
dataType: "json"
|
||
};
|
||
return new Promise(function (resolve, reject) {
|
||
wx.request({
|
||
...requestConfig,
|
||
success(res) {
|
||
if (res.statusCode === 200) {
|
||
resolve(res.data)
|
||
} else {
|
||
console.log('错误success')
|
||
reject(res.data)
|
||
}
|
||
},
|
||
fail(err) {
|
||
console.log('错误')
|
||
if (err.data) {
|
||
reject(err.data)
|
||
} else {
|
||
reject(err)
|
||
}
|
||
}
|
||
})
|
||
})
|
||
}
|
||
|
||
// 导出请求和服务地址
|
||
export {
|
||
request,
|
||
uploadImgUrl,
|
||
previewUrl,
|
||
copyrightUrl,
|
||
imgAssets,
|
||
appUrl
|
||
} |