PalaceGridFile.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <div>
  3. <!-- flex盒子 -->
  4. <div class="bigBox">
  5. <template v-for="(item,index) in fileList">
  6. <!-- 循环盒子 -->
  7. <div>
  8. <!-- 图片 -->
  9. <div>
  10. <img :src="getImage(item.fileType)" alt="">
  11. </div>
  12. <!-- 名称 -->
  13. <div>
  14. <p>{{ item.fileName }}</p>
  15. </div>
  16. </div>
  17. </template>
  18. </div>
  19. </div>
  20. </template>
  21. <script>
  22. import { ref, onMounted } from "vue"
  23. import { ElMessage } from "element-plus";
  24. import myfile from "../../../api/myfile/myfile";
  25. import documents from "../../../api/document/document";
  26. import ImgFile from "../jsComponents/ImgFile";
  27. // import bigFolder from '../../../assets/images/folderBig.png'
  28. export default {
  29. setup() {
  30. let impDirId = ref(0)
  31. let impSpaceId = ref(0)
  32. let newSpaceId = ref(0)
  33. let newDirId = ref(0)
  34. let topPath = ref("")
  35. let fileList = ref([])
  36. let folderList = ref([])
  37. let fileTotal = ref(0)
  38. let fileMenu = ref([])
  39. // 获取文件夹,中栏,文件
  40. function getAllTop() {
  41. documents.getTop(3).then(res => {
  42. let userMe = [res]
  43. impDirId.value = userMe[0].dirId//固定
  44. impSpaceId.value = userMe[0].spaceId//固定
  45. newSpaceId.value = userMe[0].spaceId//变化
  46. newDirId.value = userMe[0].dirId//变化
  47. topPath.value = userMe[0].dirPath
  48. let obj = {
  49. pageNum: 1,
  50. pageSize: 10
  51. }
  52. documents.getALLdocument({ parentId: userMe[0].dirId - 0, spaceId: userMe[0].spaceId, pageNum: obj.pageNum, pageSize: obj.pageSize }).then(res => {
  53. fileMenu.value = res.data
  54. folderList.value = res.data
  55. })
  56. myfile.getById(userMe[0].dirId - 0, obj).then(res => {
  57. if (res.code === 200) {
  58. fileList.value = res.rows
  59. fileTotal.value = res.total
  60. if (fileTotal.value / 10 != 1) {
  61. let x = Math.trunc(fileTotal.value / 10) + 1
  62. for (var i = 1; i <= x; i++) {
  63. obj.pageNum = i
  64. myfile.getById(userMe[0].dirId - 0, obj).then(res => {
  65. fileList.value = fileList.value.concat(res.rows)
  66. const uniqueFileList = Array.from(new Set(fileList.value.map(item => item.docId)))
  67. .map(docId => fileList.value.find(item => item.docId === docId));
  68. // 合并数组并更新 fileList.value
  69. fileList.value = uniqueFileList
  70. console.log(fileList.value, 'iiii');
  71. })
  72. }
  73. }
  74. }
  75. })
  76. })
  77. }
  78. // 筛选后缀图片
  79. function getImage(file) {
  80. console.log(file,'file');
  81. if (file === '.txt') {
  82. return ImgFile.bigTxt
  83. } else if (file === '.xlxs' || file === '.docx') {
  84. return ImgFile.bigxlsx
  85. } else if (file === '.pptx') {
  86. return ImgFile.bigpptx
  87. } else if (file === '.word') {
  88. return ImgFile.bigdoc
  89. } else if (file === '.pdf') {
  90. return ImgFile.bigpdf
  91. }
  92. }
  93. onMounted(() => {
  94. getAllTop()
  95. })
  96. return {
  97. getAllTop,
  98. impDirId,
  99. impSpaceId,
  100. newDirId,
  101. newSpaceId,
  102. fileList,
  103. fileMenu,
  104. folderList,
  105. fileTotal,
  106. getImage,
  107. }
  108. }
  109. }
  110. </script>
  111. <style lang="scss" scoped></style>