Http.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. class HTTP {
  2. constructor() {
  3. this.ENV = wx.getAccountInfoSync().miniProgram.envVersion;
  4. this.urls = [{
  5. name: "生产环境",
  6. url: "https://oms.idcgroup.com.cn:8079"
  7. }, {
  8. name: "开发环境",
  9. url: "http://61.164.207.46:8000"
  10. }]
  11. if (this.ENV === 'release') { // 正式版
  12. this.baseUrl = "https://oms.idcgroup.com.cn:8079";
  13. } else {
  14. this.baseUrl = "http://61.164.207.46:8000";
  15. // this.baseUrl = "https://oms.idcgroup.com.cn:8079";
  16. }
  17. console.log("环境",this.baseUrl)
  18. this.init = (content, init = false) => {
  19. return new Promise((resolve, reject) => {
  20. if (init.detail != undefined) init = init.detail;
  21. if (init) content.pageNumber = 1;
  22. content.pageNumber > content.pageTotal ? reject() : resolve(content)
  23. })
  24. }
  25. this.paging = (data, res, that, ownertable, list = [], _Http) => {
  26. let content = JSON.parse(JSON.stringify(data))
  27. content.pageNumber = res.pageNumber + 1;
  28. content.pageTotal = res.pageTotal;
  29. content.total = res.total;
  30. content.sort = res.sort;
  31. if (this.isShowEmpty) this.empty = res.total == 0;
  32. if (list.length) this.getTabs(that, ownertable, list, _Http)
  33. return content;
  34. }
  35. //得到缩略图或者压缩图 getType默认得到缩略图传true得到压缩图
  36. this.getSpecifiedImage = (obj, getType = false) => {
  37. obj.url = this.getImageUrl(obj.url)
  38. try {
  39. let type = getType ? 'compressed' : 'thumbnail';
  40. let imgObj = obj.subfiles.find(v => v.type == type);
  41. return this.getImageUrl(imgObj.url || obj.url);
  42. } catch (error) {
  43. return this.getImageUrl(obj.url);
  44. }
  45. }
  46. // 判断图片是本地还是云存储
  47. this.getImageUrl = (url) => {
  48. if (!url) return '';
  49. //判断url中是否存在http,没有的话要拼接 this.baseUrl
  50. if (!/^https?:\/\//.test(url)) {
  51. url = _Http.baseUrl + url + wx.getStorageSync('userMsg').token;
  52. }
  53. return url;
  54. }
  55. this.getTabs = (that, ownertable, list = [], _Http) => {
  56. if (list.length) _Http.basic({
  57. "id": 20221018102001,
  58. "content": {
  59. ownertable,
  60. ownerids: list.map(v => v[ownertable + 'id'])
  61. }
  62. }).then(res => {
  63. if (res.code != 1) return;
  64. list.forEach(item => item.tags = res.data[item[`${ownertable}id`]] || []);
  65. let newList = that.data.list;
  66. newList.splice(newList.length - list.length, list.length, ...list);
  67. that.setData({
  68. list: newList
  69. })
  70. })
  71. }
  72. this.getTypes = async (name, _Http) => {
  73. let params = null;
  74. if (name == 'tags') {
  75. params = {
  76. "id": 20221013104401,
  77. "content": {
  78. "nochace": true,
  79. "isExport": 1,
  80. "pageNumber": 1,
  81. sys_systemtagid: 2,
  82. "pageSize": 1000,
  83. "where": {
  84. "condition": ""
  85. }
  86. }
  87. }
  88. } else {
  89. params = {
  90. "classname": "sysmanage.develop.optiontype.optiontype",
  91. "method": "optiontypeselect",
  92. "content": {
  93. "nochace": true,
  94. "pageNumber": 1,
  95. "pageSize": 1000,
  96. "typename": name,
  97. "parameter": {
  98. "siteid": wx.getStorageSync('userMsg').siteid
  99. }
  100. }
  101. }
  102. }
  103. if (!params) return;
  104. let res = await _Http.basic(params);
  105. return res.code == '1' ? res.data : [];
  106. }
  107. // 千位符格式化金额
  108. this.formatMoney = (num, decimalPlaces = 2, prefix = '', removeTrailingZeros = true) => {
  109. if (isNaN(num)) return '';
  110. let fixedNum = Number(num).toFixed(decimalPlaces);
  111. if (removeTrailingZeros) {
  112. fixedNum = parseFloat(fixedNum).toString();
  113. }
  114. let parts = fixedNum.split('.');
  115. parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  116. return prefix + parts.join('.');
  117. }
  118. }
  119. request({
  120. url,
  121. data = {},
  122. method = "POST",
  123. header = {
  124. 'content-type': 'application/json'
  125. },
  126. loading = true
  127. }) {
  128. return new Promise((resolve, reject) => {
  129. this._request(url, resolve, reject, data, method, header, loading);
  130. })
  131. }
  132. _request(url, resolve, reject, data, method, header, loading) {
  133. /* if (loading) wx.showLoading({
  134. title: getApp().globalData.Language.getMapText('加载中...'),
  135. mask: true
  136. }) */
  137. if (data.method && data.method != "query_userauth") data.languagecode = wx.getStorageSync('languagecode') || 'ZH'
  138. wx.request({
  139. url: this.baseUrl + '/yos/rest/index' + url,
  140. data: data,
  141. method: method,
  142. header: header,
  143. timeout: 60000,
  144. success: res => resolve(res.data),
  145. fail: err => reject(err),
  146. complete: (res) => {
  147. // if (loading) wx.hideLoading()
  148. if (res.errMsg != 'request:ok') {
  149. console.error("请求失败", { request: data, result: res })
  150. wx.showToast({
  151. title: getApp().globalData.Language.getMapText('网络异常,请重新进入'),
  152. icon: "none"
  153. })
  154. return
  155. }
  156. if (res.data && res.data.code != 1) {
  157. console.error("错误的请求", {
  158. request: data,
  159. result: res.data
  160. })
  161. }
  162. if (res.data && (res.data.msg == '登陆状态已过期,请重新登陆!' || res.data.msg == getApp().globalData.Language.getMapText('登陆状态已过期,请重新登陆!'))) {
  163. wx.showToast({
  164. title: getApp().globalData.Language.getMapText(res.data.msg),
  165. icon: "none",
  166. mask: true
  167. })
  168. getApp().globalData.LaunchOptions = wx.getLaunchOptionsSync();
  169. count = setTimeout(() => {
  170. wx.reLaunch({
  171. url: '/pages/login/phone',
  172. });
  173. }, 1000)
  174. }
  175. }
  176. })
  177. }
  178. }
  179. export {
  180. HTTP
  181. }