util.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. var api = require('../config/api.js');
  2. function formatTime(date) {
  3. var year = date.getFullYear()
  4. var month = date.getMonth() + 1
  5. var day = date.getDate()
  6. var hour = date.getHours()
  7. var minute = date.getMinutes()
  8. var second = date.getSeconds()
  9. return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  10. }
  11. function formatNumber(n) {
  12. n = n.toString()
  13. return n[1] ? n : '0' + n
  14. }
  15. /**
  16. * 封封微信的的request
  17. */
  18. function request(url, data = {}, method = "GET") {
  19. return new Promise(function (resolve, reject) {
  20. wx.request({
  21. url: url,
  22. data: data,
  23. method: method,
  24. header: {
  25. 'Content-Type': 'application/json',
  26. 'Authorization': wx.getStorageSync('token')
  27. },
  28. success: function (res) {
  29. console.log("success");
  30. if (res.statusCode == 200) {
  31. if (res.data.errno == 3003) {
  32. //TOKEN_IS_EMPTY
  33. //需要登录后才可以操作
  34. wx.navigateTo({
  35. url: '/pages/auth/auth'
  36. })
  37. } else if (res.data.errno == 3004){
  38. // TOKEN_IS_EXPIRED
  39. let code = null;
  40. return new Promise(function (resolve, reject) {
  41. return util.login().then((res) => {
  42. code = res.code;
  43. }).then(() => {
  44. //登录远程服务器
  45. util.request(api.AuthLoginByWeixin, {
  46. code: code,
  47. detail: detail,
  48. expiredToken: wx.getStorageSync('token')
  49. }, 'POST').then(res => {
  50. if (res.errno === 0) {
  51. //存储用户信息
  52. wx.setStorageSync('userInfo', res.data.userInfo);
  53. wx.setStorageSync('token', res.data.token);
  54. //反应到当前登录
  55. app.globalData.userInfo = res.data.userInfo;
  56. app.globalData.token = res.data.token;
  57. resolve(res.data.userInfo);
  58. } else {
  59. reject(res.data.userInfo);
  60. }
  61. }).catch((err) => { //request
  62. reject(err);
  63. });
  64. }).catch((err) => { //login
  65. reject(err);
  66. })
  67. });
  68. } else {
  69. resolve(res.data);
  70. }
  71. } else {
  72. reject(res.errMsg);
  73. }
  74. },
  75. fail: function (err) {
  76. reject(err)
  77. console.log("failed")
  78. }
  79. })
  80. });
  81. }
  82. /**
  83. * 检查微信会话是否过期
  84. */
  85. function checkSession() {
  86. return new Promise(function (resolve, reject) {
  87. wx.checkSession({
  88. success: function () {
  89. resolve(true);
  90. },
  91. fail: function () {
  92. reject(false);
  93. }
  94. })
  95. });
  96. }
  97. /**
  98. * 调用微信登录
  99. */
  100. function login() {
  101. return new Promise(function (resolve, reject) {
  102. wx.login({
  103. success: function (res) {
  104. if (res.code) {
  105. //登录远程服务器
  106. console.log(res)
  107. resolve(res);
  108. } else {
  109. reject(res);
  110. }
  111. },
  112. fail: function (err) {
  113. reject(err);
  114. }
  115. });
  116. });
  117. }
  118. function getUserInfo() {
  119. return new Promise(function (resolve, reject) {
  120. wx.getUserInfo({
  121. withCredentials: true,
  122. success: function (res) {
  123. console.log(res)
  124. resolve(res);
  125. },
  126. fail: function (err) {
  127. reject(err);
  128. }
  129. })
  130. });
  131. }
  132. function redirect(url) {
  133. //判断页面是否需要登录
  134. if (false) {
  135. wx.redirectTo({
  136. url: '/pages/auth/login/login'
  137. });
  138. return false;
  139. } else {
  140. wx.redirectTo({
  141. url: url
  142. });
  143. }
  144. }
  145. function showErrorToast(msg) {
  146. wx.showToast({
  147. title: msg,
  148. image: '/static/images/icon_error.png'
  149. })
  150. }
  151. module.exports = {
  152. formatTime,
  153. request,
  154. redirect,
  155. showErrorToast,
  156. checkSession,
  157. login,
  158. getUserInfo,
  159. }