teamBackgroundFile.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { BaseApi } from './baseApi.js'
  2. import api from './index.js'
  3. function parseResult(response) {
  4. let result = response && response.data
  5. if (typeof result === 'string') {
  6. try {
  7. result = JSON.parse(result)
  8. } catch (error) {
  9. throw new Error('上传失败,请重试')
  10. }
  11. }
  12. if (!response || response.statusCode !== 200 || !result || result.code !== 0) {
  13. throw new Error(result && result.msg ? result.msg : '上传失败,请重试')
  14. }
  15. return result.data
  16. }
  17. function unwrap(response) {
  18. const result = response && response.data
  19. if (!result || result.code !== 0) {
  20. throw new Error(result && result.msg ? result.msg : '请求失败,请重试')
  21. }
  22. return result.data
  23. }
  24. export function uploadTeamBackgroundFile(teamId, filePath, onProgress = () => {}) {
  25. return new Promise((resolve, reject) => {
  26. const task = uni.uploadFile({
  27. url: `${BaseApi}/core/user/team/${teamId}/background-files`,
  28. filePath,
  29. name: 'file',
  30. header: { token: uni.getStorageSync('token') },
  31. success: response => {
  32. try {
  33. resolve(parseResult(response))
  34. } catch (error) {
  35. reject(error)
  36. }
  37. },
  38. fail: reject
  39. })
  40. task.onProgressUpdate(progress => onProgress(progress.progress))
  41. })
  42. }
  43. export const listTeamBackgroundFiles = teamId => api
  44. .get(`/core/user/team/${teamId}/background-files`, {}, false)
  45. .then(unwrap)
  46. export const disableTeamBackgroundFile = (teamId, fileId) => api
  47. .del(`/core/user/team/${teamId}/background-files/${fileId}`, {}, false)
  48. .then(unwrap)
  49. export const createTeamBackgroundSession = teamId => api
  50. .post(`/core/user/team/${teamId}/background-upload-session`, {}, false)
  51. .then(unwrap)
  52. export function downloadTeamBackgroundFile(teamId, fileId) {
  53. return new Promise((resolve, reject) => {
  54. uni.downloadFile({
  55. url: `${BaseApi}/core/user/team/${teamId}/background-files/${fileId}/download`,
  56. header: { token: uni.getStorageSync('token') },
  57. success: result => {
  58. if (result.statusCode !== 200) {
  59. reject(new Error('下载失败,请重试'))
  60. return
  61. }
  62. wx.openDocument({
  63. filePath: result.tempFilePath,
  64. showMenu: true,
  65. success: resolve,
  66. fail: reject
  67. })
  68. },
  69. fail: reject
  70. })
  71. })
  72. }