request.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  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. if (res.statusCode == 200) {
  52. if (res.data.code == 403) {
  53. store.commit('logout');
  54. user.loginByWeixinCode().then(res => {
  55. console.info(res)
  56. }).catch(err => {
  57. });
  58. } else {
  59. resolve(res.data);
  60. }
  61. } else {
  62. reject(res.errMsg);
  63. }
  64. },
  65. fail: function(err) {
  66. reject();
  67. // let errmsg = err.response.data;
  68. // switch (err.response.status) {
  69. // case 0:
  70. // console.log("网络连接错误")
  71. // errmsg = "网络连接错误";
  72. // break;
  73. // case 401:
  74. // console.log("请登录后操作")
  75. // errmsg = '请登录后操作';
  76. // store.dispatch('logout');
  77. // uni.redirectTo({
  78. // url: '/pages/auth/login'
  79. // })
  80. // break
  81. // case 404:
  82. // errmsg = "接口不存在";
  83. // break
  84. // }
  85. // uni.showToast({
  86. // title: errmsg,
  87. // icon: 'none'
  88. // })
  89. },
  90. complete: function() {
  91. uni.hideLoading();
  92. }
  93. });
  94. });
  95. }
  96. const get = function(url, data, showloading) {
  97. if (showloading != false) {
  98. uni.showLoading({
  99. mask: true,
  100. title: '加载中'
  101. });
  102. }
  103. return new Promise(function(resolve, reject) {
  104. data = dealObjectValue(data);
  105. const jwt = store.getters['getJwt'];
  106. const header = {
  107. 'token': jwt //自定义请求头信息
  108. }
  109. uni.request({
  110. url: envHost + url,
  111. method: 'GET',
  112. data: data,
  113. header: header,
  114. success: function(res) {
  115. //console.info(res)
  116. if (res.statusCode == 200) {
  117. if (res.data.code == 403) {
  118. store.commit('logout');
  119. user.loginByWeixinCode().then(res => {
  120. console.info(res)
  121. }).catch(err => {
  122. });
  123. } else {
  124. resolve(res.data);
  125. }
  126. } else {
  127. reject(res.errMsg);
  128. }
  129. },
  130. fail: function(err) {
  131. reject();
  132. // let errmsg = err.response.data;
  133. // switch (err.response.status) {
  134. // case 0:
  135. // console.log("网络连接错误")
  136. // errmsg = "网络连接错误";
  137. // break;
  138. // case 401:
  139. // console.log("请登录后操作")
  140. // errmsg = '请登录后操作';
  141. // store.dispatch('logout');
  142. // uni.redirectTo({
  143. // url: '/pages/auth/login'
  144. // })
  145. // break
  146. // case 404:
  147. // errmsg = "接口不存在";
  148. // break
  149. // }
  150. // uni.showToast({
  151. // title: errmsg,
  152. // icon: 'none'
  153. // })
  154. },
  155. complete: function() {
  156. uni.hideLoading();
  157. }
  158. });
  159. });
  160. }
  161. const upload = function(url, file, data, showloading) {
  162. if (showloading != false) {
  163. uni.showLoading({
  164. mask: true,
  165. title: '上传中...'
  166. });
  167. }
  168. return new Promise((resolve, reject) => {
  169. data = dealObjectValue(data);
  170. const jwt = store.getters['getJwt'];
  171. const header = {
  172. 'token': jwt //自定义请求头信息
  173. }
  174. uni.uploadFile({
  175. url: envHost + url,
  176. // files: files,
  177. filePath: file,
  178. name: 'file',
  179. formData: data,
  180. header: header,
  181. success: (res) => {
  182. console.info(res)
  183. resolve(res.data);
  184. },
  185. fail: (err) => {
  186. uni.showModal({
  187. content: err.errMsg,
  188. showCancel: false
  189. })
  190. reject(err);
  191. console.log('uploadImage fail', err);
  192. },
  193. complete: () => {
  194. uni.hideLoading();
  195. }
  196. })
  197. });
  198. }
  199. const uploadAsync = function(url, file, data, success, showloading) {
  200. if (showloading != false) {
  201. uni.showLoading({
  202. mask: true,
  203. title: '上传中...'
  204. });
  205. }
  206. data = dealObjectValue(data);
  207. const jwt = store.getters['getJwt'];
  208. const header = {
  209. 'token': jwt //自定义请求头信息
  210. }
  211. return uni.uploadFile({
  212. url: envHost + url,
  213. // files: files,
  214. filePath: file,
  215. name: 'file',
  216. formData: data,
  217. header: header,
  218. success: (res) => {
  219. console.info(res)
  220. if (success)
  221. success(JSON.parse(res.data));
  222. },
  223. fail: (err) => {
  224. uni.showModal({
  225. content: err.errMsg,
  226. showCancel: false
  227. })
  228. console.log('uploadImage fail', err);
  229. },
  230. complete: () => {
  231. uni.hideLoading();
  232. }
  233. });
  234. }
  235. const uploadFiles = function(url, files, data, showloading) {
  236. if (showloading != false) {
  237. uni.showLoading({
  238. mask: true,
  239. title: '上传中...'
  240. });
  241. }
  242. console.info(files)
  243. return new Promise((resolve, reject) => {
  244. data = dealObjectValue(data);
  245. const jwt = store.getters['getJwt'];
  246. const header = {
  247. 'token': jwt //自定义请求头信息
  248. }
  249. uni.uploadFile({
  250. url: envHost + url,
  251. files: files,
  252. formData: data,
  253. header: header,
  254. success: (res) => {
  255. console.info(JSON.stringify(res))
  256. resolve(JSON.parse(res.data));
  257. },
  258. fail: (err) => {
  259. uni.showModal({
  260. content: err.errMsg,
  261. showCancel: false
  262. })
  263. reject(err);
  264. console.log('uploadImage fail', err);
  265. },
  266. complete: () => {
  267. uni.hideLoading();
  268. }
  269. })
  270. });
  271. }
  272. export default {
  273. post,
  274. upload,
  275. uploadAsync,
  276. uploadFiles,
  277. get
  278. }