瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
4.7 KiB

11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
10 months ago
11 months ago
  1. import http from './http.js'
  2. let limit = {}
  3. let debounce = {}
  4. const config = {
  5. // 示例
  6. // wxLogin : {url : '/api/wxLogin', method : 'POST',
  7. // auth : false, showLoading : true, loadingTitle : '加载中...',
  8. // limit : 1000
  9. // },
  10. getConfig : {url : '/api/getConfig', method : 'GET', limit : 500},
  11. // 微信登录接口
  12. wxLogin: {
  13. url: '/login/login',
  14. method: 'GET',
  15. limit : 500,
  16. showLoading : true,
  17. },
  18. // 修改个人信息接口
  19. updateInfo: {
  20. url: '/token/updateInfo',
  21. method: 'POST',
  22. auth: true,
  23. limit : 500,
  24. showLoading : true,
  25. },
  26. // 获取个人信息接口
  27. getInfo: {
  28. url: '/token/getInfo',
  29. method: 'GET',
  30. auth: true,
  31. limit : 500,
  32. },
  33. //隐私政策
  34. getPrivacyPolicy: {
  35. url: '/login/getPrivacyPolicy',
  36. method: 'GET',
  37. },
  38. //用户协议
  39. getUserAgreement: {
  40. url: '/login/getUserAgreement',
  41. method: 'GET',
  42. },
  43. // 不需要登录的接口
  44. //获取分类
  45. getClassInfo: {
  46. url: '/city/getClassInfo',
  47. method: 'GET',
  48. },
  49. //获取首页头部信息
  50. getIndexHeaderInfo: {
  51. url: '/city/getIndexHeaderInfo',
  52. method: 'GET',
  53. },
  54. //获取banner列表
  55. getBannerList: {
  56. url: '/city/getBannerList',
  57. method: 'GET',
  58. },
  59. //获取分类类型列表
  60. getClassifyList: {
  61. url: '/city/getClassifyList',
  62. method: 'GET',
  63. },
  64. //获取工作信息列表
  65. getJobPage: {
  66. url: '/city/getJobPage',
  67. method: 'GET',
  68. },
  69. //获取工作详情
  70. getJobDetail: {
  71. url: '/city/getJobDetail',
  72. method: 'GET',
  73. },
  74. //根据分类获取租房信息列表
  75. getRentPage: {
  76. url: '/city/getRentPage',
  77. method: 'GET',
  78. },
  79. //获取租房详情
  80. getRentDetail: {
  81. url: '/city/getRentDetail',
  82. method: 'GET',
  83. },
  84. //获取动态帖子列表
  85. getPostPage: {
  86. url: '/city/getPostPage',
  87. method: 'GET',
  88. },
  89. //获取帖子详情
  90. getPostDetail: {
  91. url: '/city/getPostDetail',
  92. method: 'GET',
  93. },
  94. //获取活动列表信息
  95. getActivityPage: {
  96. url: '/city/getActivityPage',
  97. method: 'GET',
  98. },
  99. //获取活动详情
  100. getActivityDetail: {
  101. url: '/city/getActivityDetail',
  102. method: 'GET',
  103. },
  104. //根据分类获取门店信息列表(美食)
  105. getStorePage: {
  106. url: '/city/getStorePage',
  107. method: 'GET',
  108. },
  109. //发布按钮列表
  110. getPublishList: {
  111. url: '/city/getPublishList',
  112. method: 'GET',
  113. },
  114. //获取城市列表服务区域
  115. getCityList: {
  116. url: '/city/getCityList',
  117. method: 'GET',
  118. },
  119. //获取景点列表带分页
  120. getScenicPage: {
  121. url: '/city/getScenicPage',
  122. method: 'GET',
  123. },
  124. //获取评论列表type-0帖子-1租房-2工作-3景点-4美食-5活动
  125. getCommentPage: {
  126. url: '/city/getCommentPage',
  127. method: 'GET',
  128. },
  129. //发布帖子\动态
  130. publishPost: {
  131. url: '/token/publishPost',
  132. method: 'POST',
  133. limit : 1000,
  134. auth : true,
  135. },
  136. //查询自己发布的动态
  137. getMyPostPage: {
  138. url: '/token/getMyPostPage',
  139. method: 'GET',
  140. auth : true,
  141. },
  142. //删除自己发布的动态
  143. deletePost: {
  144. url: '/token/deletePost',
  145. method: 'POST',
  146. auth : true,
  147. },
  148. //店铺认证
  149. companyAuthentication: {
  150. url: '/token/companyAuthentication',
  151. method: 'POST',
  152. limit : 1000,
  153. auth : true,
  154. },
  155. //个人认证
  156. personalAuthentication: {
  157. url: '/token/personalAuthentication',
  158. method: 'POST',
  159. limit : 1000,
  160. auth : true,
  161. },
  162. //获取分享二维码
  163. getQrCode: {
  164. url: '/token/getQrCode',
  165. method: 'GET',
  166. auth : true,
  167. },
  168. //发布评论
  169. addComment: {
  170. url: '/token/addComment',
  171. method: 'POST',
  172. limit : 1000,
  173. auth : true,
  174. },
  175. //获取粉丝列表接口
  176. getFansList: {
  177. url: '/token/getFansList',
  178. method: 'GET',
  179. auth : true,
  180. },
  181. }
  182. export function api(key, data, callback, loadingTitle) {
  183. let req = config[key]
  184. if (!req) {
  185. console.error('无效key--------' + key);
  186. return
  187. }
  188. if (typeof callback == 'string') {
  189. loadingTitle = callback
  190. }
  191. if (typeof data == 'function') {
  192. callback = data
  193. data = {}
  194. }
  195. // 接口限流
  196. if (req.limit) {
  197. let storageKey = req.url
  198. let storage = limit[storageKey]
  199. if (storage && new Date().getTime() - storage < req.limit) {
  200. return
  201. }
  202. limit[storageKey] = new Date().getTime()
  203. }
  204. //必须登录
  205. if (req.auth) {
  206. if (!uni.getStorageSync('token')) {
  207. uni.navigateTo({
  208. url: '/pages_order/auth/wxLogin'
  209. })
  210. console.error('需要登录')
  211. return
  212. }
  213. }
  214. // 接口防抖
  215. if(req.debounce){
  216. let storageKey = req.url
  217. let storage = debounce[storageKey]
  218. if (storage) {
  219. clearTimeout(storage)
  220. }
  221. debounce[storageKey] = setTimeout(() => {
  222. clearTimeout(storage)
  223. delete debounce[storageKey]
  224. http.http(req.url, data, callback, req.method,
  225. loadingTitle || req.showLoading, loadingTitle || req.loadingTitle)
  226. }, req.debounce)
  227. return
  228. }
  229. http.http(req.url, data, callback, req.method,
  230. loadingTitle || req.showLoading, loadingTitle || req.loadingTitle)
  231. }
  232. export default api