226 lines
6 KiB
JavaScript
226 lines
6 KiB
JavaScript
|
|
import * as F from './func.js';
|
||
|
|
const Log = require('./log.js');
|
||
|
|
import C from './constant.js';
|
||
|
|
let lockToLogin = false;
|
||
|
|
const login = () => {
|
||
|
|
const user_id = wx.getStorageSync('user_id');
|
||
|
|
if (user_id) {
|
||
|
|
return Promise.resolve(user_id);
|
||
|
|
}
|
||
|
|
// return Promise.resolve();
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
wx.login({
|
||
|
|
success({ code }) {
|
||
|
|
console.log('aaaa', code);
|
||
|
|
// code = 'test';
|
||
|
|
// code:'test'
|
||
|
|
post('/index.php/api/v1/wx_login', { code }, true).then(({ model }) => {
|
||
|
|
console.log('wx_login', model);
|
||
|
|
wx.setStorageSync('user_id', model.user_id);
|
||
|
|
resolve(model);
|
||
|
|
}).catch((e) => {
|
||
|
|
reject(e)
|
||
|
|
})
|
||
|
|
},
|
||
|
|
fail(e) {
|
||
|
|
reject(e)
|
||
|
|
}
|
||
|
|
})
|
||
|
|
});
|
||
|
|
}
|
||
|
|
const post = (path, params, notLogin = false) => {
|
||
|
|
Log.info('post 请求:' + path + 'params:' + JSON.stringify(params));
|
||
|
|
const _ = ((resolve, reject) => {
|
||
|
|
const user_id = wx.getStorageSync('user_id');
|
||
|
|
if (!user_id && !notLogin) {
|
||
|
|
return reject(-1002);
|
||
|
|
}
|
||
|
|
wx.request({
|
||
|
|
url: F.getHost() + path,
|
||
|
|
data: params,
|
||
|
|
header: {
|
||
|
|
Cookie: '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 new Promise(_);
|
||
|
|
} else {
|
||
|
|
return login().then(() => new Promise(_));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const get = (path, params, notLogin = false) => {
|
||
|
|
Log.info('get 请求:' + path + 'params:' + JSON.stringify(params));
|
||
|
|
const _ = ((resolve, reject) => {
|
||
|
|
const user_id = wx.getStorageSync('user_id');
|
||
|
|
if (!user_id && !notLogin) {
|
||
|
|
return reject(-1002);
|
||
|
|
}
|
||
|
|
wx.request({
|
||
|
|
url: F.getHost() + path,
|
||
|
|
data: params,
|
||
|
|
header: {
|
||
|
|
Cookie: '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 new Promise(_);
|
||
|
|
} else {
|
||
|
|
return login().then(() => new Promise(_));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
const upload = (params, name, filePath, processCb) => {
|
||
|
|
const _ = new Promise((resolve, reject) => {
|
||
|
|
const user_id = wx.getStorageSync('user_id');
|
||
|
|
const task = wx.uploadFile({
|
||
|
|
url: F.getHost() + '/index.php/api/v1/wx_upload',
|
||
|
|
formData: params,
|
||
|
|
name,
|
||
|
|
filePath,
|
||
|
|
header: {
|
||
|
|
Cookie: 'user_id=' + user_id,
|
||
|
|
'Content-Type': 'multipart/form-data',
|
||
|
|
},
|
||
|
|
timeout: 120000,
|
||
|
|
method: 'POST',
|
||
|
|
success: (res) => {
|
||
|
|
resolve(res);
|
||
|
|
},
|
||
|
|
fail: (res) => {
|
||
|
|
const {
|
||
|
|
errMsg,
|
||
|
|
errno
|
||
|
|
} = res;
|
||
|
|
console.error('post fail:', errMsg, errno);
|
||
|
|
Log.error('upload post fail:' + errMsg + '|errno' + errno);
|
||
|
|
reject(res);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
if (processCb) {
|
||
|
|
task.onProgressUpdate(processCb);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
|
||
|
|
return login().then(() => _);
|
||
|
|
}
|
||
|
|
export default {
|
||
|
|
login,
|
||
|
|
post,
|
||
|
|
get,
|
||
|
|
upload,
|
||
|
|
};
|