liyangzheng 2 anos atrás
pai
commit
7f1786ff43

+ 1 - 1
src/api/document/document.js

@@ -38,7 +38,7 @@ function delDocument(data) {
 }
 function fileTree(data){
     return request({
-        url:`/biz/dir/file-tree/${data}`,
+        url:`/biz/dir/dir-tree/${data}`,
         method:"get"
     })
 }

+ 7 - 0
src/api/myfile/myfile.js

@@ -7,6 +7,12 @@ function getAllFileMenu(data) {
         params: data
     })
 }
+function getById(data) {
+    return request({
+        url: `/biz/info/list/${data}`,
+        method: "get",
+    })
+}
 // 新增
 function addNewMenu(data) {
     return request({
@@ -97,4 +103,5 @@ export default {
     fileDown,
     uploadFileMany,
     fileType,
+    getById,
 }

+ 2 - 2
src/components/OnlyOffice/index.vue

@@ -104,8 +104,8 @@
 							change: true
 						}
 					},
-					width: '100%',
-					height: document.body.clientHeight - 150,
+					width: document.body.clientWidth -400,
+					height: document.body.clientHeight - 100,
 					token: option.token || ''
 				}
 				// eslint-disable-next-line no-undef,no-unused-vars

+ 1 - 0
src/views/biz/onlyoffice/index.vue

@@ -62,6 +62,7 @@
 		mounted() {
 			const route = useRoute();
 			let row=JSON.parse(decodeURI(route.query.data))
+			console.log(row,'9999999');
 			console.log(111221,row.fileType.replace(".",""));
 			this.option.isEdit = row.isEdit;
 			this.option.url = `${window.location.origin}${import.meta.env.VITE_APP_BASE_API}/api/access/${row.fileId}`;

+ 83 - 57
src/views/myfile/MyFile.vue

@@ -11,7 +11,7 @@
                         </el-icon>
                     </div>
                     <div>
-                        <el-icon style="font-size: 24px;" @click="createNewMenu">
+                        <el-icon style="font-size: 24px;" @click="createNewMenu(1)">
                             <Plus />
                         </el-icon>
                         <!-- @click="createNewFile" -->
@@ -51,7 +51,7 @@
                 </div>
             </div>
             <!-- 右侧大盒子 -->
-            <div class="mesBox">
+            <div class="mesBox" v-if="editOnline">
                 <!-- 功能盒子  -->
                 <div class="useBox">
                     <!-- table切换 -->
@@ -104,12 +104,13 @@
                         </div>
                     </div>
                     <!-- 面包屑功能栏 -->
-                    <div class="breadBox" v-if="editOnline">
+                    <div class="breadBox">
                         <!-- 左侧 -->
                         <div style="display: flex;justify-content: space-around;align-items: center;">
                             <!-- 前进后退 -->
                             <div style="display: flex;justify-content: space-around;align-items: center;">
-                                <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt="" @click="getAllTop()">
+                                <img style="display:block;width: 11px;height: 11px;" :src="blueLeft" alt=""
+                                    @click="getAllTop()">
                                 <img style="display:block;width: 16px;height: 16px;" :src="grayRight" alt="">
                             </div>
                             <!-- 面包屑 -->
@@ -123,12 +124,9 @@
                             <img :src="squre" alt="">
                         </div>
                     </div>
-                    <div v-else>
-                        <el-button @click="editOnline = true">返回</el-button>
-                    </div>
                 </div>
                 <!-- 展示文件夹盒子 -->
-                <div v-if="editOnline">
+                <div>
                     <!-- 文件夹 -->
                     <div class="detailBox">
                         <el-collapse v-model="folder" accordion class="collapseSell">
@@ -253,7 +251,12 @@
                         </el-dialog>
                     </div>
                 </div>
-                <FileEdit v-else :docId="clickRowId" :copyRow="copyRow"></FileEdit>
+            </div>
+            <div v-else>
+                <div>
+                    <el-button @click="editOnline = true">返回</el-button>
+                </div>
+                <FileEdit :docId="clickRowId" :copyRow="copyRow"></FileEdit>
             </div>
             <!-- 扩容弹窗 -->
             <div>
@@ -420,6 +423,10 @@
                     </template>
                 </el-dialog>
             </div>
+            <div>
+                <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
+                    @getChildren="getChildren" :copyOrMove="copyOrMove"></FileTree>
+            </div>
         </div>
     </div>
     <!-- 图片预览 -->
@@ -429,15 +436,14 @@
 <script>
 import { ref } from 'vue'
 import myfile from '../../api/myfile/myfile'
-import space from '../../api/space/space'
 import documents from '../../api/document/document'
 import fileSpace from '../../api/filespace/fileSpace'
 import userTree from '../../api/user/userTree'
 import fileShare from '../../api/fileShare/fileShare'
 import collect from '../../api/collect/collect'
-import fileCount from '../../api/fileCount/fileCount'
+import FileTree from './components/FileTree.vue'
 import BreadMenu from './components/BreadMenu.vue'
-import FileEdit from './components/FileEdit.vue'
+import FileEdit from './components/fileedit.vue'
 import ImgFile from "./jsComponents/ImgFile"
 import { Search } from '@element-plus/icons-vue'
 import blueLeft from '../../assets/images/blueLeft.png'
@@ -447,6 +453,7 @@ import squre from '../../assets/images/squre.png'
 import { ElMessage } from 'element-plus'
 export default {
     setup() {
+        let fileTrees = ref(false)
         let editOnline = ref(true)
         let searchFire = ref('')
         let selectedIndex = ref(0)
@@ -485,9 +492,13 @@ export default {
         let copyFileType = ref('')//需要操作的文件类型
         let copyFileName = ref("")//需要操作的文件名
         let directoryId = ref('')
+        let impSpaceId = ref("")
+        let impDirId = ref("")
+        let impNum = ref(0)
         let copyParentId = ref("")//文件夹
         let allBag = ref("")//穿梭狂内搜索
         let needBag = ref("")
+        let copyOrMove = ref(0)//0代表复制,1代表移动
         let sortNum = ref(0)
         let boserForm = ref({
             spaceId: "",//空间id
@@ -678,11 +689,15 @@ export default {
         function getAllTop() {
             documents.getTop(3).then(res => {
                 let userMe = [res]
-                documents.getALLdocument({ dirId: userMe[0].dirId - 0, spaceId: userMe[0].spaceId }).then(res => {
+                impDirId.value = userMe[0].dirId//固定
+                impSpaceId.value = userMe[0].spaceId//固定
+                newSpaceId.value = userMe[0].spaceId//变化
+                newDirId.value = userMe[0].dirId//变化
+                documents.getALLdocument({ parentId: userMe[0].dirId - 0, spaceId: userMe[0].spaceId }).then(res => {
                     fileMenu.value = res.data
                     folderList.value = res.data
                 })
-                myfile.getAllFileMenu({ dirId: userMe[0].dirId - 0 }).then(res => {
+                myfile.getAllFileMenu({ parentId: userMe[0].dirId - 0 }).then(res => {
                     if (res.code === 200) {
                         fileList.value = res.rows
                     }
@@ -783,24 +798,12 @@ export default {
                 })
             }
             if (row.name === '复制') {
-                myfile.fileCopy({ dirId: copyDirId.value, docId: clickRowId.value, spaceId: copySpaceId.value }).then(res => {
-                    if (res.code === 200) {
-                        ElMessage({
-                            message: "复制成功",
-                            type: "success"
-                        })
-                    }
-                })
+                copyOrMove.value = 0
+                fileTrees.value = true
             }
             if (row.name === '移动') {
-                myfile.fileMove({ dirId: copyDirId.value, docId: clickRowId.value, spaceId: copySpaceId.value }).then(res => {
-                    if (res.code === 200) {
-                        ElMessage({
-                            message: "移动成功",
-                            type: "success"
-                        })
-                    }
-                })
+                copyOrMove.value = 1
+                fileTrees.value = true
             }
             if (row.name === '重命名') {
                 fileNameChange.value = true
@@ -825,31 +828,47 @@ export default {
 
         }
 
-        function createNewMenu() {
+        function createNewMenu(num) {
+            impNum.value = num
             addBoser.value = true
         }
         // 新建文件夹
         function sureAddBoser() {
-            if (newDirId.value === '' || newSpaceId.value === "") {
-                newDirId.value = fileMenu.value[0].dirId
-                newSpaceId.value = fileMenu.value[0].spaceId
+            if (impNum.value === 1) {
+                documents.addDocument(
+                    {
+                        "dirName": boserForm.value.dirName,
+                        "parentId": impDirId.value - 0,
+                        "spaceId": impSpaceId.value - 0,
+                    }
+                ).then(res => {
+                    if (res.code === 200) {
+                        ElMessage({
+                            message: '添加一级目录成功',
+                            type: 'success',
+                        })
+                    }
+                    addBoser.value = false
+                    getAllTop()
+                })
+            } else {
+                documents.addDocument(
+                    {
+                        "dirName": boserForm.value.dirName,
+                        "parentId": newDirId.value - 0,
+                        "spaceId": newSpaceId.value - 0,
+                    }
+                ).then(res => {
+                    if (res.code === 200) {
+                        ElMessage({
+                            message: '添加成功',
+                            type: 'success',
+                        })
+                    }
+                    addBoser.value = false
+                    getAllTop()
+                })
             }
-            documents.addDocument(
-                {
-                    "dirName": boserForm.value.dirName,
-                    "parentId": newDirId.value - 0,
-                    "spaceId": newSpaceId.value - 0,
-                }
-            ).then(res => {
-                if (res.code === 200) {
-                    ElMessage({
-                        message: '添加成功',
-                        type: 'success',
-                    })
-                }
-                addBoser.value = false
-                getAllTop()
-            })
         }
 
         function createNewFile() {
@@ -889,10 +908,6 @@ export default {
         // 确认上传
         function sureUpload() {
             if (fileArr.value.length > 0) {
-                if (newDirId.value === '' || newSpaceId.value === "") {
-                    newDirId.value = fileMenu.value[0].dirId
-                    newSpaceId.value = fileMenu.value[0].spaceId
-                }
                 for (var i = 0; i <= fileArr.value.length; i++) {
                     myfile.uploadFile({
                         spaceId: newSpaceId.value - 0,
@@ -1013,7 +1028,7 @@ export default {
             newSpaceId.value = row.spaceId
             documents.getALLdocument({ parentId: row.dirId - 0, spaceId: row.spaceId - 0 }).then(res => {
                 folderList.value = res.data
-                myfile.getAllFileMenu({ dirId: res.data[0].dirId - 0 }).then(res => {
+                myfile.getById(res.data[0].dirId - 0).then(res => {
                     if (res.code === 200) {
                         fileList.value = res.rows
                     }
@@ -1137,6 +1152,11 @@ export default {
                 }
             })
         }
+        // 子传父的数据
+        function getChildren(data) {
+            fileTrees.value = data
+
+        }
         return {
             allBag,
             folderList,//文件夹的数据
@@ -1246,6 +1266,12 @@ export default {
             spaceSelect,
             newDirId,
             newSpaceId,
+            fileTrees,
+            getChildren,//子传父
+            copyOrMove,
+            impDirId,
+            impNum,
+            impSpaceId
         }
     },
     created() {
@@ -1261,6 +1287,7 @@ export default {
     components: {
         BreadMenu,
         FileEdit,
+        FileTree,
     },
 }
 </script>
@@ -1332,8 +1359,7 @@ p {
 
 .mesBox {
     width: 70vw;
-    height: 43rem;
-    /* margin: 5px 5px; */
+    height: calc(100% + 200px);
     border-radius: 4px;
     background-color: white;
 }

+ 128 - 0
src/views/myfile/components/FileTree.vue

@@ -0,0 +1,128 @@
+<template>
+    <div>
+        <el-dialog v-model="treeOpen" :title="options" width="30%" :close-on-click-modal="false">
+            <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick" />
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="backToFile">取消</el-button>
+                    <el-button type="primary" @click="sureCopy">确认</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onMounted, toRefs } from 'vue';
+import documents from '../../../api/document/document';
+import myfile from '../../../api/myfile/myfile'
+import { ElMessage } from 'element-plus'
+export default {
+    props: {
+        fileTrees: {
+            type: Boolean,
+            required: true
+        },
+        newSpaceId: {
+            type: Number,
+            required: true
+        },
+        fileId: {
+            type: String,
+            required: true
+        },
+        copyOrMove: {
+            type: Number,
+            required: true
+        }
+    },
+    setup(props, { emit }) {
+        let { backToFile, sureCopy } = toRefs(props)
+        let result = props.fileTrees
+        let spaceIds = props.newSpaceId
+        let fileIds = props.fileId
+        let changeMes = props.copyOrMove - 0
+        let dirIds = ref('')
+        let treeOpen = ref(false)
+        let options = ref("复制")
+        let treeData = ref([])
+        let defaultProps = ref({
+            label: "label",
+            value: "id",
+            disable: false
+        })
+        //获取文件树
+        function getFileTree() {
+            documents.fileTree(3).then(res => {
+                treeData.value = [res]
+                console.log(res, 'file');
+            })
+        }
+        function modalOpen() {
+            console.log(changeMes,'mes');
+            if (result) {
+                treeOpen.value = result
+            }
+        }
+        function everyWhere() {
+            treeOpen.value = false
+            emit("getChildren", treeOpen.value)
+        }
+        function knowEvery() {
+            if (changeMes === 0) {
+                myfile.fileCopy({ dirId: dirIds.value - 0, docId: fileIds, spaceId: spaceIds }).then(res => {
+                    if (res.code === 200) {
+                        ElMessage({
+                            type: "success",
+                            message: "复制成功"
+                        })
+                    }
+                })
+            } else if (changeMes === 1) {
+                myfile.fileMove({ dirId: dirIds.value - 0, docId: fileIds, spaceId: spaceIds }).then(res => {
+                    if (res.code === 200) {
+                        ElMessage({
+                            message: "移动成功",
+                            type: "success"
+                        })
+                    }
+                })
+            }
+            treeOpen.value = false
+            emit("getChildren", treeOpen.value)
+        }
+        function handleNodeClick(data) {
+            dirIds.value = data.id
+        }
+        function changes() {
+            if (changeMes === 1) {
+                options.value = "移动"
+            } else if (changeMes === 0) {
+                options.value = '复制'
+            }
+        }
+        onMounted(() => {
+            modalOpen()
+            getFileTree()
+            changes()
+        })
+        return {
+            getFileTree,
+            result,
+            treeOpen,
+            options,
+            backToFile: everyWhere,
+            sureCopy: knowEvery,
+            treeData,
+            handleNodeClick,
+            defaultProps,
+            dirIds,
+            spaceIds,
+            fileIds,
+            changeMes,
+        }
+    },
+}
+</script>
+
+<style scoped></style>