rest.ts 4.1 KB

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