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, };