rest.ts 4.0 KB

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