rest.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. import { BASE_URL } from "@/lib/config"
  2. import dlg from "@/lib/dlg"
  3. import { getToken, getTenant } from "@/lib/auth/token"
  4. function getHeader() {
  5. let header = {
  6. "Content-Type": "application/json"
  7. };
  8. //获取token
  9. let token = getToken()
  10. let tenant = getTenant()
  11. header["Authorization"] = "Bearer " + 'test1';
  12. if (token) {
  13. header["Authorization"] = "Bearer " + token;
  14. // header["token"] = token;
  15. }
  16. if (tenant) {
  17. header["tenant-id"] = tenant;
  18. }
  19. header["source-type"] = "app"
  20. // #ifdef APP
  21. let systemInfo = uni.getSystemInfoSync()
  22. let osName = systemInfo.osName
  23. let brand = systemInfo.brand
  24. let model = systemInfo.model
  25. let osVersion = systemInfo.osVersion
  26. let appVersion = systemInfo.appWgtVersion
  27. let channel = "uniapp"
  28. let userAgent = `app-${osName} ${brand} ${model}_${osVersion} APP_V${appVersion} CHANNEL_${channel}`
  29. header["user-agent"] = userAgent
  30. // #endif
  31. return header;
  32. }
  33. const fetch = async (method : any, url : string, data : any, loading = false) => {
  34. return await new Promise((resolve, reject) => {
  35. //显示加载动画
  36. if (loading) {
  37. uni.showLoading();
  38. }
  39. if (url.indexOf("http") == -1) {
  40. url = BASE_URL + url;
  41. }
  42. // console.log('request url = ' + url);
  43. try {
  44. //发起请求
  45. uni.request({
  46. url,
  47. method,
  48. data,
  49. header: getHeader(),
  50. success: res => {
  51. let statusCode = res.statusCode;
  52. console.log("res", res)
  53. if (statusCode == 200) {
  54. let { code, msg, data, message } = res.data
  55. // console.log(method + "[" + url + "]success", res);
  56. if (!isSuccess(code)) {
  57. if (msg) {
  58. reject(msg);
  59. }
  60. if (message) {
  61. dlg.error(message);
  62. reject(message);
  63. }
  64. }
  65. resolve(res.data['data']);
  66. } else {
  67. console.log(`\x1b[31m${res.data['status']} ${res.data['path']} ${res.data['error']}\x1b[0m`)
  68. reject(res.data)
  69. }
  70. },
  71. fail: err => {
  72. console.log("请求fail", err);
  73. reject(err);
  74. return null;
  75. },
  76. complete: () => {
  77. //结束加载动画
  78. if (loading) {
  79. uni.hideLoading();
  80. }
  81. }
  82. });
  83. } catch (e) {
  84. reject(e.message);
  85. }
  86. });
  87. }
  88. //文件上传
  89. const uploadSync = (filePath) => {
  90. return new Promise((resolve, reject) => {
  91. uni.uploadFile({
  92. url: BASE_URL + '/admin-api/infra/file/upload',
  93. // file: image,
  94. header: getHeader(),
  95. file: filePath,
  96. name: 'file',
  97. success: (res) => {
  98. let result = JSON.parse(res.data);
  99. console.log("upload ", result);
  100. if (result.code < 0) {
  101. // console.log("请求出错" + url, result);
  102. dlg.error('上传出错' + result.message);
  103. reject(result)
  104. return null;
  105. }
  106. let data = result.data;
  107. console.log("upload data= ", data);
  108. resolve(data);
  109. return data;
  110. },
  111. fail: err => {
  112. dlg.error('上传出错' + err);
  113. reject(err)
  114. return null;
  115. },
  116. });
  117. });
  118. }
  119. //上传
  120. const upload = async (file) => {
  121. console.log("file==>", JSON.stringify(file));
  122. return await uploadSync(file);
  123. }
  124. function isSuccess(code : number) {
  125. return code == 0 || code == 200 || code == 2001;
  126. }
  127. export const get = (url : string, params : any, loading = false) => {
  128. return fetch('GET', url, params, loading)
  129. }
  130. export const post = (url : string, params : any, loading = false) => {
  131. return fetch('POST', url, params, loading)
  132. }
  133. export const put = (url : string, params : any, loading = false) => {
  134. return fetch('PUT', url, params, loading)
  135. }
  136. export const del = (url : string, params : any, loading = false) => {
  137. return fetch('DELETE', url, params, loading)
  138. }
  139. export const checkErr = (fun : Function) => {
  140. try {
  141. return fun()
  142. } catch (e) {
  143. dlg.error(e.message)
  144. return null
  145. }
  146. }
  147. export default { get, post, put, del, checkErr, upload }