helper.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. // 相关配置
  2. const config = {
  3. development: {
  4. // 开发环境服务端地址,本地调试域名
  5. host: "http://ddcar.com/"
  6. },
  7. production: {
  8. // 生产环境服务端地址,编译后自动启用该地址
  9. host: "http://ddcar.brt999.com/"
  10. },
  11. // 身份认证状态码
  12. authErrorStatusCode: 401,
  13. // 登录页面路径
  14. loginPage: "/pages/login/login",
  15. // 跳转登录页面方式
  16. navigateLoginPageType: "navigateTo",
  17. // 接口异常提醒
  18. errorMessage: "服务器异常",
  19. // 认证token
  20. tokenField: '__token__',
  21. // 腾讯地图,请更换为自己的 key 否则有次数限制
  22. qqmapsdk: {
  23. key: 'QUSBZ-FUFLU-X2SV5-2UXFE-KVWRJ-C5FBE'
  24. }
  25. }
  26. // 开发环境
  27. const env = process.env.NODE_ENV;
  28. console.log('当前环境:' + env);
  29. // 平台
  30. const platform = uni.getSystemInfoSync().platform;
  31. // 封装消息提示方法
  32. const toast = (message) => {
  33. uni.showToast({
  34. title: message,
  35. duration: 2000,
  36. icon: 'none'
  37. });
  38. }
  39. // 对象转url参数
  40. const parseParam = (param) => {
  41. let paramArray = [];
  42. for (let [key, value] of Object.entries(param)) {
  43. paramArray.push(key + '=' + value);
  44. }
  45. return paramArray.join('&');
  46. }
  47. // 设置用户表示符
  48. const setUserToken = (token) => {
  49. return uni.setStorageSync(config.tokenField, token);
  50. }
  51. const clearUsetToken = () => {
  52. return uni.clearStorage(config.tokenField);
  53. }
  54. // 获取用户身份标示
  55. const getUserToken = () => {
  56. return uni.getStorageSync(config.tokenField);
  57. }
  58. //判断是否登录
  59. const hasLogin = () => {
  60. let token = uni.getStorageSync(config.tokenField);
  61. return token ? true : false;
  62. }
  63. // 封装get方法
  64. const get = (url, data) => {
  65. let token = uni.getStorageSync(config.tokenField);
  66. if(data){
  67. data.token=token
  68. }else{
  69. data={token}
  70. }
  71. return new Promise((resolve, reject) => {
  72. uni.request({
  73. url: config[env].host + url,
  74. data: data,
  75. header: {
  76. 'accept-language':'zh-CN,zh;q=0.9,en;q=0.8'
  77. },
  78. complete: (res) => {
  79. if (res.statusCode == config.authErrorStatusCode) {
  80. uni.removeStorageSync(config.tokenField);
  81. uni[config.navigateLoginPageType]({
  82. url: config.loginPage
  83. });
  84. return false;
  85. }
  86. if (res.statusCode == 200) {
  87. resolve(res.data);
  88. } else {
  89. toast(config.errorMessage);
  90. reject(res);
  91. }
  92. }
  93. })
  94. })
  95. }
  96. // 封装post方法
  97. const post = (url, data) => {
  98. let token = uni.getStorageSync(config.tokenField);
  99. if(data){
  100. data.token=token
  101. }else{
  102. data={token}
  103. }
  104. return new Promise((resolve, reject) => {
  105. uni.request({
  106. url: config[env].host + url,
  107. header: {
  108. 'content-type': 'application/x-www-form-urlencoded',
  109. 'accept-language':'zh-CN,zh;q=0.9,en;q=0.8'
  110. },
  111. data: data,
  112. method: 'POST',
  113. complete: (res) => {
  114. if (res.statusCode == config.authErrorStatusCode) {
  115. uni.removeStorageSync(config.tokenField);
  116. uni[config.navigateLoginPageType]({
  117. url: config.loginPage
  118. });
  119. return false;
  120. }
  121. if (res.statusCode == 200) {
  122. resolve(res.data);
  123. } else {
  124. toast(config.errorMessage);
  125. reject(res);
  126. }
  127. }
  128. })
  129. })
  130. }
  131. const date = (timestamp) => {
  132. // 获取当前日期
  133. const date = timestamp ? new Date(timestamp) : new Date();
  134. // 获取当前月份
  135. const nowMonth = date.getMonth() + 1;
  136. // 获取当前是几号
  137. let strDate = date.getDate();
  138. // 添加分隔符“-”
  139. const seperator = "-";
  140. // 对月份进行处理,1-9月在前面添加一个“0”
  141. if (nowMonth >= 1 && nowMonth <= 9) {
  142. nowMonth = "0" + nowMonth;
  143. }
  144. // 对月份进行处理,1-9号在前面添加一个“0”
  145. if (strDate >= 0 && strDate <= 9) {
  146. strDate = "0" + strDate;
  147. }
  148. // 最后拼接字符串,得到一个格式为(yyyy-MM-dd)的日期
  149. return date.getFullYear() + seperator + nowMonth + seperator + strDate;
  150. }
  151. export default {
  152. host: config[env].host,
  153. env,
  154. platform,
  155. get,
  156. post,
  157. parseParam,
  158. hasLogin,
  159. toast,
  160. setUserToken,
  161. date,
  162. config,
  163. getUserToken,
  164. clearUsetToken
  165. }