util.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. const { baseUrl } = require('./env.js').prod; // 正式
  2. // const { baseUrl } = require('./env.js').test; // 测试
  3. // token
  4. let Authorization = "";
  5. // 错误类型
  6. let statusCode = {
  7. '1': "请求数据失败",
  8. "400": "参数列表错误",
  9. "401": "请先登录",
  10. "403": "禁止访问",
  11. "404": "资源,服务未找到",
  12. "405": "错误请求方法",
  13. "409": "冲突",
  14. "413": "上传文件太大",
  15. "500": "服务器错误",
  16. "1000": "账户已在别处登录"
  17. }
  18. const formatTime = date => {
  19. const year = date.getFullYear()
  20. const month = date.getMonth() + 1
  21. const day = date.getDate()
  22. const hour = date.getHours()
  23. const minute = date.getMinutes()
  24. const second = date.getSeconds()
  25. return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
  26. }
  27. const formatNumber = n => {
  28. n = n.toString()
  29. return n[1] ? n : `0${n}`
  30. };
  31. // 封装wx.request
  32. function _show_error(error_code) {
  33. wx.showToast({
  34. "title": statusCode[error_code],
  35. "icon": "error",
  36. "duration": 1500
  37. });
  38. }
  39. //
  40. function request(url,data={},method="GET", header={}, isToken=true) {
  41. if(isToken) {
  42. try {
  43. var value = wx.getStorageSync('token')
  44. if (value) {
  45. const resData = JSON.parse(value);
  46. Authorization = resData.token;
  47. }
  48. } catch (e) {
  49. Authorization = "";
  50. }
  51. }
  52. // 拼接地址
  53. let fullurl = `${baseUrl}${url}`
  54. //返回异步操作成功的结果和返回异步操作失败的结果
  55. wx.showLoading({
  56. title: '加载中',
  57. });
  58. return new Promise((resolve,reject)=>{
  59. wx.request({
  60. url: fullurl,
  61. method,
  62. data,
  63. header:Object.assign({
  64. "content-type":"application/x-www-form-urlencoded",
  65. "appid": "wx08f94a3e90881910",
  66. "Authorization": isToken ? Authorization : undefined
  67. }, header),
  68. success(res){
  69. wx.hideLoading();
  70. if(res.statusCode !== 200 ) {
  71. wx.showToast({
  72. "title": "请求错误",
  73. "icon": "error",
  74. "duration": 1500
  75. });
  76. return;
  77. }
  78. if(res.data.code===0){
  79. resolve(res.data.data);
  80. } else if(res.data.code === 401) {
  81. // token过期
  82. try {
  83. // 删除过期token
  84. wx.removeStorageSync('token');
  85. } catch (e) {
  86. console.log("可能没有这个缓存")
  87. };
  88. // getCurrentPages()[0].login();
  89. // request(url,data,method,header,isToken);
  90. } else{
  91. _show_error(res.data.code)
  92. }
  93. },
  94. fail: (err) => {
  95. _show_error("1");
  96. wx.hideLoading();
  97. }
  98. })
  99. })
  100. }
  101. function isCN(str) {
  102. if (/^[\u3220-\uFA29]+$/.test(str)) {
  103. return true;
  104. } else {
  105. return false;
  106. }
  107. }
  108. module.exports = {
  109. formatTime,
  110. request,
  111. formatNumber,
  112. isCN
  113. }