request.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. import store from '@/store'
  2. //获取环境接口地址
  3. import {
  4. envHost
  5. } from '@/common/env';
  6. var user = require('@/common/user.js');
  7. /**
  8. * 判断传入参数的类型,以字符串的形式返回
  9. * @obj:数据
  10. **/
  11. function dataType(obj) {
  12. if (obj === null) return "Null";
  13. if (obj === undefined) return "Undefined";
  14. return Object.prototype.toString.call(obj).slice(8, -1);
  15. };
  16. /**
  17. * 处理对象参数值,排除对象参数值为”“、null、undefined,并返回一个新对象
  18. **/
  19. function dealObjectValue(obj) {
  20. var param = {};
  21. if (obj === null || obj === undefined || obj === "") return param;
  22. for (var key in obj) {
  23. if (dataType(obj[key]) === "Object") {
  24. param[key] = dealObjectValue(obj[key]);
  25. } else if (obj[key] !== null && obj[key] !== undefined && obj[key] !== "") {
  26. param[key] = obj[key];
  27. }
  28. }
  29. return param;
  30. };
  31. const post = function(url, data, showloading) {
  32. if (showloading != false) {
  33. uni.showLoading({
  34. mask: true,
  35. title: '加载中'
  36. });
  37. }
  38. return new Promise(function(resolve, reject) {
  39. data = dealObjectValue(data);
  40. const jwt = store.getters['getJwt'];
  41. const header = {
  42. 'content-type': 'application/x-www-form-urlencoded',
  43. 'token': jwt //自定义请求头信息
  44. }
  45. uni.request({
  46. url: envHost + url,
  47. method: 'POST',
  48. data: data,
  49. header: header,
  50. success: function(res) {
  51. console.info(res)
  52. if (res.statusCode == 200) {
  53. if (res.data.code == 403 || res.data.code == 601) {
  54. store.commit('logout');
  55. user.loginByWeixinCode().then(res => {
  56. console.info(res)
  57. }).catch(err => {
  58. });
  59. } else {
  60. resolve(res.data);
  61. }
  62. } else {
  63. reject(res.errMsg);
  64. }
  65. },
  66. fail: function(err) {
  67. reject();
  68. // let errmsg = err.response.data;
  69. // switch (err.response.status) {
  70. // case 0:
  71. // console.log("网络连接错误")
  72. // errmsg = "网络连接错误";
  73. // break;
  74. // case 401:
  75. // console.log("请登录后操作")
  76. // errmsg = '请登录后操作';
  77. // store.dispatch('logout');
  78. // uni.redirectTo({
  79. // url: '/pages/auth/login'
  80. // })
  81. // break
  82. // case 404:
  83. // errmsg = "接口不存在";
  84. // break
  85. // }
  86. // uni.showToast({
  87. // title: errmsg,
  88. // icon: 'none'
  89. // })
  90. },
  91. complete: function() {
  92. uni.hideLoading();
  93. }
  94. });
  95. });
  96. }
  97. const get = function(url, data, showloading) {
  98. if (showloading != false) {
  99. uni.showLoading({
  100. mask: true,
  101. title: '加载中'
  102. });
  103. }
  104. return new Promise(function(resolve, reject) {
  105. data = dealObjectValue(data);
  106. const jwt = store.getters['getJwt'];
  107. const header = {
  108. 'token': jwt //自定义请求头信息
  109. }
  110. uni.request({
  111. url: envHost + url,
  112. method: 'GET',
  113. data: data,
  114. header: header,
  115. success: function(res) {
  116. //console.info(res)
  117. if (res.statusCode == 200) {
  118. if (res.data.code == 403 || res.data.code == 601) {
  119. store.commit('logout');
  120. user.loginByWeixinCode().then(res => {
  121. console.info(res)
  122. }).catch(err => {
  123. });
  124. } else {
  125. resolve(res.data);
  126. }
  127. } else {
  128. reject(res.errMsg);
  129. }
  130. },
  131. fail: function(err) {
  132. reject();
  133. // let errmsg = err.response.data;
  134. // switch (err.response.status) {
  135. // case 0:
  136. // console.log("网络连接错误")
  137. // errmsg = "网络连接错误";
  138. // break;
  139. // case 401:
  140. // console.log("请登录后操作")
  141. // errmsg = '请登录后操作';
  142. // store.dispatch('logout');
  143. // uni.redirectTo({
  144. // url: '/pages/auth/login'
  145. // })
  146. // break
  147. // case 404:
  148. // errmsg = "接口不存在";
  149. // break
  150. // }
  151. // uni.showToast({
  152. // title: errmsg,
  153. // icon: 'none'
  154. // })
  155. },
  156. complete: function() {
  157. uni.hideLoading();
  158. }
  159. });
  160. });
  161. }
  162. const upload = function(url, file, data, showloading) {
  163. if (showloading != false) {
  164. uni.showLoading({
  165. mask: true,
  166. title: '上传中...'
  167. });
  168. }
  169. return new Promise((resolve, reject) => {
  170. data = dealObjectValue(data);
  171. const jwt = store.getters['getJwt'];
  172. const header = {
  173. 'token': jwt //自定义请求头信息
  174. }
  175. uni.uploadFile({
  176. url: envHost + url,
  177. // files: files,
  178. filePath: file,
  179. name: 'file',
  180. formData: data,
  181. header: header,
  182. success: (res) => {
  183. console.info(res)
  184. resolve(JSON.parse(res.data));
  185. },
  186. fail: (err) => {
  187. uni.showModal({
  188. content: err.errMsg,
  189. showCancel: false
  190. })
  191. reject(err);
  192. console.log('uploadImage fail', err);
  193. },
  194. complete: () => {
  195. uni.hideLoading();
  196. }
  197. })
  198. });
  199. }
  200. const uploadAsync = function(url, file, data, success, showloading) {
  201. if (showloading != false) {
  202. uni.showLoading({
  203. mask: true,
  204. title: '上传中...'
  205. });
  206. }
  207. data = dealObjectValue(data);
  208. const jwt = store.getters['getJwt'];
  209. const header = {
  210. 'token': jwt //自定义请求头信息
  211. }
  212. return uni.uploadFile({
  213. url: envHost + url,
  214. // files: files,
  215. filePath: file,
  216. name: 'file',
  217. formData: data,
  218. header: header,
  219. success: (res) => {
  220. console.info(res)
  221. if (success)
  222. success(JSON.parse(res.data));
  223. },
  224. fail: (err) => {
  225. uni.showModal({
  226. content: err.errMsg,
  227. showCancel: false
  228. })
  229. console.log('uploadImage fail', err);
  230. },
  231. complete: () => {
  232. uni.hideLoading();
  233. }
  234. });
  235. }
  236. const uploadFiles = function(url, files, data, showloading) {
  237. if (showloading != false) {
  238. uni.showLoading({
  239. mask: true,
  240. title: '上传中...'
  241. });
  242. }
  243. console.info(files)
  244. return new Promise((resolve, reject) => {
  245. data = dealObjectValue(data);
  246. const jwt = store.getters['getJwt'];
  247. const header = {
  248. 'token': jwt //自定义请求头信息
  249. }
  250. uni.uploadFile({
  251. url: envHost + url,
  252. files: files,
  253. formData: data,
  254. header: header,
  255. success: (res) => {
  256. console.info(JSON.stringify(res))
  257. resolve(JSON.parse(res.data));
  258. },
  259. fail: (err) => {
  260. uni.showModal({
  261. content: err.errMsg,
  262. showCancel: false
  263. })
  264. reject(err);
  265. console.log('uploadImage fail', err);
  266. },
  267. complete: () => {
  268. uni.hideLoading();
  269. }
  270. })
  271. });
  272. }
  273. export default {
  274. post,
  275. upload,
  276. uploadAsync,
  277. uploadFiles,
  278. get
  279. }