api.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. let Promises = Promise
  2. import url from "@/util/url";
  3. let {
  4. host
  5. } = url
  6. Promises.prototype.finally = function(callback) {
  7. let P = this.constructor
  8. return this.then(
  9. value => P.resolve(callback()).then(() => value),
  10. reason => P.resolve(callback()).then(() => {
  11. throw reason
  12. }))
  13. }
  14. class Https {
  15. request(url, method, data, loading) {
  16. var loading = loading || false
  17. if (!loading) {
  18. uni.showLoading({
  19. title: '加载中'
  20. })
  21. }
  22. var token = uni.getStorageSync('token')
  23. // var token = "df057579-73c8-4bdd-8312-f64db8efd699"
  24. return new Promises((resolve, reject) => {
  25. uni.request({
  26. // // #ifdef H5
  27. // url:'/apid'+url,
  28. // // #endif
  29. url: host + '/' + url, //
  30. method: method,
  31. data: data,
  32. header: {
  33. // application/json
  34. 'content-type': 'application/json', // 默认值
  35. 'Authorization': token || ''
  36. },
  37. success: function(res) {
  38. // console.log(res.data.code,98765)
  39. if (!loading) {
  40. uni.hideLoading()
  41. }
  42. if (res.statusCode == 401) {
  43. uni.navigateTo({
  44. url: '/pages/load/roles'
  45. })
  46. } else if (res.data.code == '00040000') {
  47. uni.showToast({
  48. title: res.data.message,
  49. duration: 1000,
  50. icon: 'none'
  51. });
  52. } else if (res.code == 1002) {
  53. uni.navigateTo({
  54. url: '/pages/load/roles'
  55. })
  56. } else if (res.data.code == 1002) {
  57. uni.navigateTo({
  58. url: '/pages/load/roles'
  59. })
  60. } else if (res.data.code == 401) {
  61. uni.clearStorage()
  62. uni.navigateTo({
  63. url: '/pages/login/login'
  64. })
  65. } else if (res.code == 401) {
  66. uni.navigateTo({
  67. url: '/pages/load/roles'
  68. })
  69. } else {
  70. resolve(res.data)
  71. }
  72. },
  73. fail: function(error) {
  74. uni.hideLoading()
  75. reject(error)
  76. }
  77. })
  78. })
  79. }
  80. // 下载二进制流
  81. downfile(url, method, data, loading) {
  82. var loading = loading || false
  83. if (!loading) {
  84. uni.showLoading({
  85. title: '加载中'
  86. })
  87. }
  88. var token = uni.getStorageSync('token')
  89. // var token = "df057579-73c8-4bdd-8312-f64db8efd699"
  90. return new Promises((resolve, reject) => {
  91. uni.request({
  92. url: host + '/' + url, //
  93. method: method,
  94. data: data,
  95. responseType: 'arrayBuffer',
  96. header: {
  97. // application/json
  98. 'content-type': 'application/json', // 默认值
  99. 'Authorization': token || '',
  100. },
  101. success: function(res) {
  102. // console.log(res, 88)
  103. // console.log(res.data.code,98765)
  104. if (!loading) {
  105. uni.hideLoading()
  106. }
  107. if (res.statusCode == 401) {
  108. uni.navigateTo({
  109. url: '/pages/load/roles'
  110. })
  111. } else if (res.data.code == '00040000') {
  112. uni.showToast({
  113. title: res.data.message,
  114. duration: 1000,
  115. icon: 'none'
  116. });
  117. } else if (res.code == 1002) {
  118. uni.navigateTo({
  119. url: '/pages/load/roles'
  120. })
  121. } else if (res.data.code == 1002) {
  122. uni.navigateTo({
  123. url: '/pages/load/roles'
  124. })
  125. } else if (res.data.code == 401) {
  126. uni.clearStorage()
  127. uni.navigateTo({
  128. url: '/pages/login/login'
  129. })
  130. } else if (res.code == 401) {
  131. uni.navigateTo({
  132. url: '/pages/load/roles'
  133. })
  134. } else {
  135. resolve(res.data)
  136. }
  137. },
  138. fail: function(error) {
  139. uni.hideLoading()
  140. reject(error)
  141. }
  142. })
  143. })
  144. }
  145. // 下载
  146. dowmload(data, fileName) {
  147. var fileManager = wx.getFileSystemManager();
  148. // 文件存储到本地的路径
  149. // var FilePath = wx.env.USER_DATA_PATH + "/" + new Date().getTime() + ".xlsx";
  150. var FilePath = wx.env.USER_DATA_PATH + "/" + fileName + ".xlsx";
  151. fileManager.writeFile({
  152. data: data, // 从后台获取的二进制流
  153. filePath: FilePath,
  154. encoding: "binary", //编码方式
  155. success: result => {
  156. // 读文件
  157. uni.openDocument({ //我这里成功之后直接打开
  158. filePath: FilePath,
  159. showMenu: true,
  160. fileType: 'xlsx',
  161. success: result => {
  162. console.log("打开文档成功");
  163. },
  164. fail: err => {
  165. console.log("打开文档失败", err);
  166. }
  167. });
  168. // 获取后缀
  169. // let fileT = FilePath.substring(FilePath.lastIndexOf(".") + 1, FilePath.length);
  170. // if (fileT == 'png' || fileT == 'jpg') {
  171. // uni.previewImage({
  172. // urls: [FilePath],
  173. // current: FilePath,
  174. // success: () => {},
  175. // fail: () => {
  176. // console.log('图片预览失败')
  177. // },
  178. // });
  179. // } else {
  180. // // 读文件
  181. // uni.openDocument({
  182. // filePath: FilePath,
  183. // showMenu: true,
  184. // fileType: 'xlsx',
  185. // success: result => {
  186. // console.log("打开文档成功");
  187. // },
  188. // fail: err => {
  189. // console.log("打开文档失败", err);
  190. // }
  191. // });
  192. // }
  193. },
  194. fail: err => {
  195. console.log('失败', err);
  196. }
  197. })
  198. }
  199. upLoad(params) {
  200. console.log(params)
  201. var token = uni.getStorageSync('token')
  202. let urls = ''
  203. return new Promises((resolve, reject) => {
  204. console.log(params.data)
  205. uni.uploadFile({
  206. url: url + '/common/upload',
  207. filePath: params.path,
  208. data: params,
  209. header: {
  210. 'content-type': 'multipart/form-data',
  211. 'Authorization': token
  212. },
  213. formData: {
  214. 'token': token
  215. },
  216. name: params.name || 'file',
  217. success: function(res) {
  218. console.log(res.data, 9875)
  219. urls = JSON.parse(res.data);
  220. let urliu = urls.url
  221. console.log(urliu)
  222. let url = urls.url
  223. resolve(url)
  224. },
  225. fail: function(error) {
  226. reject(error)
  227. }
  228. })
  229. })
  230. }
  231. upDown(params) {
  232. console.log(params)
  233. var token = uni.getStorageSync('token')
  234. return new Promises((resolve, reject) => {
  235. uni.uploadFile({
  236. url: host + '/common/download', //
  237. header: {
  238. 'Authorization': token
  239. },
  240. filePath: params.path,
  241. name: params.name || 'img',
  242. success: function(res) {
  243. console.log(res, 4)
  244. resolve(res.data)
  245. },
  246. fail: function(error) {
  247. reject(error)
  248. }
  249. })
  250. })
  251. }
  252. get(url, data) {
  253. return this.request(url, 'GET', data)
  254. }
  255. dele(url, data) {
  256. return this.request(url, 'delete', data)
  257. }
  258. post(url, data, loading) {
  259. return this.request(url, 'POST', data, loading)
  260. }
  261. put(url, data) {
  262. return this.request(url, 'put', data)
  263. }
  264. uniApi(params, data) {
  265. return new Promises((resolve, reject) => {
  266. params.events({
  267. ...data,
  268. success(res) {
  269. resolve(res)
  270. },
  271. fail(err) {
  272. reject(err)
  273. }
  274. })
  275. })
  276. }
  277. }
  278. const https = new Https()
  279. export default https