FileTree.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <template>
  2. <div>
  3. <el-dialog v-model="treeOpen" :title="options" width="30%" :close-on-click-modal="false">
  4. <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" />
  5. <template #footer>
  6. <span class="dialog-footer">
  7. <el-button @click="backToFile">取消</el-button>
  8. <el-button type="primary" @click="sureCopy">确认</el-button>
  9. </span>
  10. </template>
  11. </el-dialog>
  12. </div>
  13. </template>
  14. <script>
  15. import { ref, onMounted, toRefs } from 'vue';
  16. import documents from '../../../api/document/document';
  17. import myfile from '../../../api/myfile/myfile'
  18. import { ElMessage } from 'element-plus'
  19. export default {
  20. props: {
  21. fileTrees: {
  22. type: Boolean,
  23. required: true
  24. },
  25. newSpaceId: {
  26. type: Number,
  27. required: true
  28. },
  29. fileId: {
  30. type: String,
  31. required: true
  32. },
  33. copyOrMove: {
  34. type: Number,
  35. required: true
  36. }
  37. },
  38. setup(props, { emit }) {
  39. let { backToFile, sureCopy } = toRefs(props)
  40. let result = props.fileTrees
  41. let spaceIds = props.newSpaceId
  42. let fileIds = props.fileId
  43. let changeMes = props.copyOrMove - 0
  44. let dirIds = ref('')
  45. let treeOpen = ref(false)
  46. let options = ref("复制")
  47. let treeData = ref([])
  48. let defaultProps = ref({
  49. label: "label",
  50. value: "id",
  51. disable: false
  52. })
  53. //获取文件树
  54. function getFileTree() {
  55. documents.fileTree(3).then(res => {
  56. treeData.value = [res]
  57. console.log(res, 'file');
  58. })
  59. }
  60. function modalOpen() {
  61. console.log(changeMes,'mes');
  62. if (result) {
  63. treeOpen.value = result
  64. }
  65. }
  66. function everyWhere() {
  67. treeOpen.value = false
  68. emit("getChildren", treeOpen.value)
  69. }
  70. function knowEvery() {
  71. if (changeMes === 0) {
  72. myfile.fileCopy({ dirId: dirIds.value - 0, docId: fileIds, spaceId: spaceIds }).then(res => {
  73. if (res.code === 200) {
  74. ElMessage({
  75. type: "success",
  76. message: "复制成功"
  77. })
  78. }
  79. })
  80. } else if (changeMes === 1) {
  81. myfile.fileMove({ dirId: dirIds.value - 0, docId: fileIds, spaceId: spaceIds }).then(res => {
  82. if (res.code === 200) {
  83. ElMessage({
  84. message: "移动成功",
  85. type: "success"
  86. })
  87. }
  88. })
  89. }
  90. treeOpen.value = false
  91. emit("getChildren", treeOpen.value)
  92. }
  93. function handleNodeClick(data) {
  94. dirIds.value = data.id
  95. }
  96. function changes() {
  97. if (changeMes === 1) {
  98. options.value = "移动"
  99. } else if (changeMes === 0) {
  100. options.value = '复制'
  101. }
  102. }
  103. onMounted(() => {
  104. modalOpen()
  105. getFileTree()
  106. changes()
  107. })
  108. return {
  109. getFileTree,
  110. result,
  111. treeOpen,
  112. options,
  113. backToFile: everyWhere,
  114. sureCopy: knowEvery,
  115. treeData,
  116. handleNodeClick,
  117. defaultProps,
  118. dirIds,
  119. spaceIds,
  120. fileIds,
  121. changeMes,
  122. }
  123. },
  124. }
  125. </script>
  126. <style scoped></style>