家政小程序
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

request.js 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * 网络请求模块
  3. * @author andy
  4. * @param {*} cmd 接口名称
  5. * @param {*} method 请求方法
  6. * @param {*} params 请求参数
  7. * @param {*} handleStatus 是否需要单独处理错误码
  8. */
  9. const request = (cmd, method = 'POST', params = {}, handleStatus = false) => {
  10. return new Promise((resolve, reject) => {
  11. const getHeader = (method) => {
  12. const userInfo = global.tools.memory.getData('USER_INFO') || {};
  13. const header = {
  14. 'token': userInfo.token || '',
  15. 'openid': userInfo.openid || ''
  16. };
  17. if (method && method.toUpperCase() === 'POST') {
  18. header['content-type'] = 'application/x-www-form-urlencoded';
  19. }
  20. return header;
  21. };
  22. const env = global.config.ENV;
  23. const requestUrl = env.toUpperCase() === 'PRD' ? global.config.REQUEST_URL : global.config.REQUEST_DEV_URL;
  24. wx.request({
  25. url: `${requestUrl}${cmd}`,
  26. header: getHeader(method),
  27. method,
  28. data: params,
  29. success: res => {
  30. res = res.data;
  31. if (res.status && res.status === 105) {
  32. // token失效
  33. global.memory.setData('USER_INFO', {}, {
  34. localSave: true
  35. });
  36. return global.router.goto({
  37. path: global.config.LAUNCH_PAGE,
  38. type: global.ROUTER_TYPE.CLOSE_ALL
  39. });
  40. } else {
  41. if (handleStatus || !res.status) {
  42. resolve(res);
  43. } else if (res.message) {
  44. global.wx.showToast({
  45. title: res.message
  46. });
  47. } else {
  48. global.wx.showToast({
  49. title: '服务不可用,请稍后再试'
  50. });
  51. }
  52. }
  53. },
  54. fail: reject
  55. });
  56. });
  57. };
  58. export default request;