util.js 3.1 KB

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