uploadFile.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import Api from "../../model/api";
  2. import Route from "../../model/route";
  3. import {getDataSet, showLoading, toast} from "../../utils/utils";
  4. import Upload from "../../model/upload";
  5. import Config from "../../model/config";
  6. Page({
  7. data: {
  8. xcpArr: [],
  9. pid: 0,
  10. barTitle: '文件上传',
  11. teamId: ''
  12. },
  13. async onLoad(options) {
  14. let pid = options.pid;
  15. let title = options.title;
  16. let teamId = options.teamId;
  17. if (!pid) {
  18. pid = 0
  19. }
  20. wx.setNavigationBarTitle({title})
  21. this.setData({
  22. pid,
  23. teamId
  24. }, async () => {
  25. showLoading();
  26. await this.getData();
  27. wx.hideLoading();
  28. })
  29. },
  30. async getData() {
  31. const res = await Api.getUploadFile({pid: this.data.pid, teamId: this.data.teamId});
  32. if (res.data) {
  33. res.data.forEach(item => {
  34. item.size = this.formatSize(item.fileSize)
  35. })
  36. this.setData({
  37. xcpArr: res.data,
  38. })
  39. }
  40. },
  41. formatSize(fileSize) {
  42. let newSize = fileSize + "b";
  43. if (fileSize > 1024) {
  44. newSize = (fileSize / 1024).toFixed(1);
  45. fileSize = newSize + "kb"
  46. }
  47. if (newSize > 1024) {
  48. newSize = (newSize / 1024).toFixed(1);
  49. fileSize = newSize + "mb"
  50. }
  51. if (newSize > 1024) {
  52. newSize = (newSize / 1024).toFixed(1);
  53. fileSize = "大于1gb"
  54. }
  55. return fileSize
  56. },
  57. clickDir(e) {
  58. let item = getDataSet(e, "item");
  59. Route.toUploadFile(item.id, item.fileName, this.data.teamId)
  60. },
  61. async deleteFile(e) {
  62. let item = getDataSet(e, "item");
  63. showLoading()
  64. await Api.deleteFile(item.id)
  65. await this.getData();
  66. wx.hideLoading();
  67. },
  68. async upload(e) {
  69. if (this.data.pid == 0) {
  70. toast("根目录不允许上传文件")
  71. return;
  72. }
  73. try {
  74. const data = await wx.chooseMessageFile({count: 1,})
  75. data.tempFiles[0].url = data.tempFiles[0].path;
  76. const file = data.tempFiles[0];
  77. showLoading()
  78. await Upload.uploadRes(Config.UPLOAD_PATH.CLASS_DIR, file);
  79. await Api.uploadFile({
  80. id: null,
  81. filePath: file.url,
  82. fileSize: file.size,
  83. fileName: file.name,
  84. fileType: '文件',
  85. fileExtension: file.fileExtension,
  86. pid: this.data.pid,
  87. teamId: this.data.teamId
  88. })
  89. await this.getData();
  90. wx.hideLoading();
  91. } catch (e) {
  92. console.log(e)
  93. if (e.errMsg == 'chooseMessageFile:fail cancel') {
  94. } else {
  95. toast("只支持选择手机文件")
  96. }
  97. }
  98. }
  99. })