request.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. import {
  2. baseUrl,
  3. api_version
  4. } from './setting.js'
  5. import {
  6. getToken,
  7. getSign,
  8. getSycCache,
  9. setSycCache,
  10. } from './cache.js'
  11. /*
  12. * 获取配置信息
  13. */
  14. const apiGetConfig = async (refresh = false) => {
  15. let config = getSycCache('config');
  16. if (!config || refresh) {
  17. const res = await apiGet('/config');
  18. if (res.success == true) {
  19. let config = typeof(res.data) != 'undefined' ? res.data : {};
  20. setSycCache('config', config)
  21. return config;
  22. }
  23. }
  24. return config;
  25. }
  26. /*
  27. * 获取用户信息
  28. */
  29. const apiGetUserInfo = async (vue, refresh = false, type = 'mine') => {
  30. let info = getSycCache('userInfo');
  31. if (!info || refresh) {
  32. const res = await apiGet('/user/info');
  33. if (res.success == true) {
  34. let info = typeof(res.data) != 'undefined' ? res.data : {};
  35. setSycCache('userInfo', info)
  36. return info;
  37. } else if (res.code == '403') {
  38. uni.navigateTo({
  39. url: '/pages/login/login?type=' + type
  40. })
  41. }
  42. }
  43. return info;
  44. }
  45. /*
  46. * 请求带token
  47. */
  48. const apiGet = (url = '', data = {}, header = '') => {
  49. url = '/api/' + api_version + url
  50. data = typeof(data) != 'undefined' && data ? data : {};
  51. data.system = {}
  52. data.system.uuid = uni.getSystemInfoSync().deviceId;
  53. data.system.sys_time = (Date.parse(new Date()) / 1000);
  54. var token = getToken();
  55. token = typeof(token) != 'undefined' ? token : '';
  56. if (typeof(header) != 'undefined' && header) {
  57. if (token) {
  58. header.Authorization = 'Bearer ' + token
  59. }
  60. let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time;
  61. let sign = getSign(signStr)
  62. header.Sign = sign;
  63. } else {
  64. let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time;
  65. let sign = getSign(signStr)
  66. header = {
  67. 'Content-Type': 'application/json',
  68. 'Authorization': token ? 'Bearer ' + token : '',
  69. 'Sign': sign,
  70. };
  71. }
  72. try {
  73. return new Promise((resolve, reject) => {
  74. uni.request({
  75. method: 'GET',
  76. url: baseUrl + url,
  77. data: data,
  78. header: header,
  79. dataType: 'json',
  80. timeout: 8000,
  81. }).then((response) => {
  82. let [error, res] = response;
  83. if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') {
  84. resolve(res.data);
  85. } else {
  86. throw response
  87. }
  88. }).catch(error => {
  89. //console.log('请求错误:', error)
  90. let err = typeof(error[0].errMsg) ? error[0].errMsg : '';
  91. let patt = /^request:fail/;
  92. err = patt.test(err) ? '网络错误' : err;
  93. resolve({
  94. success: false,
  95. msg: err ? err : '请求失败'
  96. })
  97. })
  98. });
  99. } catch (e) {
  100. //console.log('请求异常', e)
  101. // console.log(e)
  102. return {
  103. 'success': false,
  104. 'msg': 'request error'
  105. };
  106. }
  107. }
  108. /*
  109. * 请求带token
  110. */
  111. const api = (url = '', data = {}, header = '', type = 'post') => {
  112. url = '/api/' + api_version + url
  113. data = typeof(data) != 'undefined' && data ? data : {};
  114. data.system = {}
  115. data.system.app_version = uni.getSystemInfoSync().appVersion;
  116. data.system.app_sources = uni.getSystemInfoSync().osName;
  117. data.system.sys_version = uni.getSystemInfoSync().osVersion;
  118. data.system.sys_model = uni.getSystemInfoSync().deviceModel;
  119. data.system.uuid = uni.getSystemInfoSync().deviceId;
  120. data.system.sys_time = (Date.parse(new Date()) / 1000);
  121. var token = getToken();
  122. token = typeof(token) != 'undefined' ? token : '';
  123. if (typeof(header) != 'undefined' && header) {
  124. if (token) {
  125. header.Authorization = 'Bearer ' + token
  126. }
  127. let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time;
  128. let sign = getSign(signStr)
  129. header.Sign = sign;
  130. } else {
  131. let signStr = url + '&' + data.system.uuid + '&' + data.system.sys_time;
  132. let sign = getSign(signStr)
  133. header = {
  134. 'Content-Type': 'application/json',
  135. 'Authorization': token ? 'Bearer ' + token : '',
  136. 'Sign': sign,
  137. };
  138. }
  139. try {
  140. return new Promise((resolve, reject) => {
  141. uni.request({
  142. method: type,
  143. url: baseUrl + url,
  144. data: data,
  145. header: header,
  146. dataType: 'json',
  147. timeout: 8000,
  148. }).then((response) => {
  149. let [error, res] = response;
  150. if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') {
  151. resolve(res.data);
  152. } else {
  153. throw response
  154. }
  155. }).catch(error => {
  156. //console.log('请求错误:', error)
  157. let err = typeof(error[0].errMsg) ? error[0].errMsg : '';
  158. let patt = /^request:fail/;
  159. err = patt.test(err) ? '网络错误' : err;
  160. resolve({
  161. success: false,
  162. msg: err ? err : '请求失败'
  163. })
  164. })
  165. });
  166. } catch (e) {
  167. //console.log('请求异常', e)
  168. // console.log(e)
  169. return {
  170. 'success': false,
  171. 'msg': 'request error'
  172. };
  173. }
  174. }
  175. /*
  176. * 请求带token
  177. */
  178. const uploadApi = (url = '', data = {}, header = '', type = 'post') => {
  179. url = '/api/' + api_version + url
  180. data = typeof(data) != 'undefined' && data ? data : {};
  181. data.system = {}
  182. data.system.app_version = uni.getSystemInfoSync().appVersion;
  183. data.system.app_sources = uni.getSystemInfoSync().osName;
  184. data.system.sys_version = uni.getSystemInfoSync().osVersion;
  185. data.system.sys_model = uni.getSystemInfoSync().deviceModel;
  186. data.system.uuid = uni.getSystemInfoSync().deviceId;
  187. data.system.sys_time = (Date.parse(new Date()) / 1000);
  188. var token = getToken();
  189. token = typeof(token) != 'undefined' ? token : '';
  190. if (header) {
  191. if (token) {
  192. header.Authorization = 'Bearer ' + token
  193. }
  194. } else {
  195. header = {
  196. 'Content-Type': 'application/json',
  197. 'Authorization': token ? 'Bearer ' + token : '',
  198. };
  199. }
  200. try {
  201. return new Promise((resolve, reject) => {
  202. uni.uploadFile({
  203. url: baseUrl + url, // 服务器接口地址
  204. filePath: data.file_url,
  205. header: header,
  206. name: 'video', // 对应后台的参数名称
  207. formData: data, // 其他需要发送到服务器的formdata信息
  208. dataType: 'json',
  209. success(response) {
  210. // console.log(response)
  211. let res = response ? JSON.parse(response.data) : {};
  212. if (typeof(res) != 'undefined' && typeof(res.data) != 'undefined') {
  213. resolve(res);
  214. } else {
  215. throw response
  216. }
  217. },
  218. fail(error) {
  219. console.log('上传失败:', error)
  220. reject(error)
  221. }
  222. });
  223. });
  224. } catch (e) {
  225. console.log('请求异常', e)
  226. return {
  227. 'success': false,
  228. 'msg': 'request error'
  229. };
  230. }
  231. }
  232. export default {
  233. api,
  234. apiGet,
  235. apiGetConfig,
  236. apiGetUserInfo,
  237. uploadApi,
  238. }