203 lines
No EOL
5.4 KiB
JavaScript
203 lines
No EOL
5.4 KiB
JavaScript
import * as F from './func.js';
|
|
const Log = require('./log.js');
|
|
import C from './constant.js';
|
|
let lockToLogin = false;
|
|
const login = () => {
|
|
return Promise.resolve();
|
|
}
|
|
const post = (path, params, notLogin = false) => {
|
|
Log.info('post 请求:' + path + 'params:' + JSON.stringify(params));
|
|
const _ = new Promise((resolve, reject) => {
|
|
const user_id = wx.getStorageSync('act_user_id');
|
|
if (!user_id && !notLogin) {
|
|
return reject(-1001);
|
|
}
|
|
wx.request({
|
|
url: F.getHost() + path,
|
|
data: params,
|
|
header: {
|
|
Cookie: 'act_user_id=' + user_id,
|
|
},
|
|
method: 'POST',
|
|
success: (res) => {
|
|
console.log('res', res);
|
|
const {
|
|
data,
|
|
statusCode,
|
|
cookies
|
|
} = res;
|
|
if (statusCode != 200) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: 'statusCode:' + statusCode
|
|
});
|
|
Log.error('post 请求失败1:' + statusCode + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-1);
|
|
} else {
|
|
const message = data.errorMsg || data.message;
|
|
const errorCode = data.errorCode;
|
|
if (errorCode == -1000) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: "登录超时,请重新登录"
|
|
});
|
|
if (!lockToLogin) {
|
|
lockToLogin = true;
|
|
wx.navigateTo({
|
|
url: '/pages/login/index'
|
|
});
|
|
setTimeout(() => {
|
|
lockToLogin = false;
|
|
}, 1000)
|
|
}
|
|
reject(-4);
|
|
} else if (errorCode < 0) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: message || errorCode + '请求失败'
|
|
});
|
|
Log.error('post 请求失败2:' + message + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-3);
|
|
} else {
|
|
resolve(data);
|
|
}
|
|
}
|
|
},
|
|
fail: ({
|
|
errMsg,
|
|
errno
|
|
}) => {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: '接口异常:' + errMsg
|
|
});
|
|
console.error('post fail:', errMsg, errno);
|
|
Log.error('post error:' + errMsg + '|errno:' + errno + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-2);
|
|
}
|
|
});
|
|
})
|
|
|
|
if (notLogin) {
|
|
return _;
|
|
} else {
|
|
return login().then(() => _);
|
|
}
|
|
}
|
|
const get = (path, params, notLogin = false) => {
|
|
Log.info('get 请求:' + path + 'params:' + JSON.stringify(params));
|
|
const _ = new Promise((resolve, reject) => {
|
|
const user_id = wx.getStorageSync('act_user_id');
|
|
if (!user_id && !notLogin) {
|
|
return reject(-1001);
|
|
}
|
|
wx.request({
|
|
url: F.getHost() + path,
|
|
data: params,
|
|
header: {
|
|
Cookie: 'act_user_id=' + user_id,
|
|
},
|
|
method: 'GET',
|
|
success: ({
|
|
data,
|
|
statusCode,
|
|
cookies
|
|
}) => {
|
|
if (statusCode != 200) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: 'statusCode:' + statusCode
|
|
});
|
|
Log.error('get 请求失败1:' + statusCode + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-1);
|
|
} else {
|
|
const message = data.errorMsg || data.message;
|
|
const errorCode = data.errorCode;
|
|
if (errorCode == -1000) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: "登录超时,请重新登录"
|
|
});
|
|
if (!lockToLogin) {
|
|
lockToLogin = true;
|
|
wx.navigateTo({
|
|
url: '/pages/login/index'
|
|
});
|
|
setTimeout(() => {
|
|
lockToLogin = false;
|
|
}, 1000)
|
|
}
|
|
reject(-4);
|
|
} else if (errorCode < 0) {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: message || errorCode + '请求失败'
|
|
});
|
|
Log.error('get 请求失败2:' + message + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-3);
|
|
} else {
|
|
resolve(data);
|
|
}
|
|
}
|
|
},
|
|
fail: ({
|
|
errMsg,
|
|
errno
|
|
}) => {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: '接口异常:' + errMsg
|
|
});
|
|
console.error('get fail:', errMsg, errno);
|
|
Log.error('get error:' + errMsg + '|errno:' + errno + '|' + path + ' params:' + JSON.stringify(params));
|
|
reject(-2);
|
|
}
|
|
});
|
|
})
|
|
|
|
if (notLogin) {
|
|
return _;
|
|
} else {
|
|
return login().then(() => _);
|
|
}
|
|
}
|
|
const upload = (params, name, filePath, processCb) => {
|
|
const _ = new Promise((resolve, reject) => {
|
|
const user_id = wx.getStorageSync('act_user_id');
|
|
const task = wx.uploadFile({
|
|
url: F.getHost() + '/index.php/api/act1/wx_upload',
|
|
formData: params,
|
|
name,
|
|
filePath,
|
|
header: {
|
|
Cookie: 'act_user_id=' + user_id,
|
|
'Content-Type': 'multipart/form-data',
|
|
},
|
|
timeout: 120000,
|
|
method: 'POST',
|
|
success: (res) => {
|
|
resolve(res);
|
|
},
|
|
fail: (res) => {
|
|
const {
|
|
errorMsg,
|
|
errorCode
|
|
} = res;
|
|
console.error('post fail:', errorMsg, errorCode);
|
|
Log.error('upload post fail:' + errorMsg + '|errorCode' + errorCode);
|
|
reject(res);
|
|
}
|
|
});
|
|
if (processCb) {
|
|
task.onProgressUpdate(processCb);
|
|
}
|
|
})
|
|
|
|
return login().then(() => _);
|
|
}
|
|
export default {
|
|
login,
|
|
post,
|
|
get,
|
|
upload,
|
|
}; |