Ver Fonte

解决报错

liyangzheng há 2 anos atrás
pai
commit
7859a2a95e

+ 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}`;

+ 203 - 175
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,7 +423,12 @@
                     </template>
                 </el-dialog>
             </div>
-          <ImgPreview  :previewData="previewData" :copyFileType="copyFileType" :showPreview="showPreview" @closeImgPreview="closeImgPreview"></ImgPreview>
+            <ImgPreview :previewData="previewData" :copyFileType="copyFileType" :showPreview="showPreview"
+                @closeImgPreview="closeImgPreview"></ImgPreview>
+            <div>
+                <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
+                    @getChildren="getChildren" :copyOrMove="copyOrMove"></FileTree>
+            </div>
         </div>
     </div>
     <!-- 图片预览 -->
@@ -429,15 +437,14 @@
 <script>
 import { ref, toRaw } 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'
@@ -449,6 +456,7 @@ import ImgPreview from '@/components/ImgPreview/ImgPreview.vue'
 import { preview } from "@/api/common/common.js";
 export default {
     setup() {
+        let fileTrees = ref(false)
         let editOnline = ref(true)
         let searchFire = ref('')
         let selectedIndex = ref(0)
@@ -487,9 +495,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
@@ -694,11 +706,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
                     }
@@ -745,7 +761,7 @@ export default {
         // 文件名表格每一行点击事件
         function handleRowClick(row) {
             copyRow.value = row
-            console.log('row = ',toRaw(row));
+            console.log('row = ', toRaw(row));
             clickRowId.value = row.docId
             copyDirId.value = row.dirId
             copySpaceId.value = row.spaceId
@@ -772,7 +788,7 @@ export default {
             this.askTo = false
         }
         //mouse弹框
-      async function chooseSet(row, num) {
+        async function chooseSet(row, num) {
             if (row.name == '在线编辑' || row.name == '协作') {
                 cliCC.value = true
             } else {
@@ -800,24 +816,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
@@ -851,31 +855,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() {
@@ -915,10 +935,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,
@@ -1039,7 +1055,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
                     }
@@ -1164,122 +1180,133 @@ export default {
             })
         }
         //关闭图片预览事件
-        const closeImgPreview = ()=>{
+        const closeImgPreview = () => {
             // console.log('close');
             showPreview.value = false
-        }
-        return {
-            allBag,
-            folderList,//文件夹的数据
-            fileList,//文件夹的数据
-            searchFire,//搜索文件的model
-            changeFile,//切换右侧视图的file
-            menuList,//右侧切换
-            tableChange,//改变class点击事件
-            selectedIndex,//当前选中下标
-            shotdown,//筛选出当前数据
-            useMenu,
-            arrorMenu,
-            blueLeft,//返回
-            grayRight,//前进
-            squre,//视图切换
-            sort,//排序
-            folder,
-            files,
-            handleRowClick,
-            askApply,//申请扩容
-            askTo,
-            sureAsk,
-            askNum,
-            askTalk,
-            cliCC,
-            mouseCli,//文件点击弹框
-            chooseSet,
-            transferModal,
-            trandata,
-            tranvalue,
-            anyP,
-            chooseSet1,
-            getSpace,//获取内存空间
-            fileMenu,
-            addBoser,
-            boserForm,
-            createNewMenu,
-            sureAddBoser,
-            // delBoser,
-            clickRowId,
-            addFile,
-            createNewFile,
-            fileForm,
-            sureAddFile,
-            // fileUpload,
-            getImage,//筛选文件类型
-            handleSelectionChange,
-            handleSelectionChange1,
-            selectedBox,//重命名相关
-            restName,//重命名相关
-            newName,//重命名相关
-            nameChange,
-            getMenu,
-            folderId,
-            fileId,
-            // getAllMiddle,//拿到所有空间信息
-            delName,//删除空间信息
-            useSpace,//使用空间
-            allSpace,//总空间
-            percent,
-            arrowClick,
-            uploadModal,
-            sureUpload,
-            onSuccess,
-            fileArr,
-            directoryId,
-            folderClick,
-            copyDirId,//复制移动需要的↓
-            copyDocId,
-            copySpaceId,
-            copyFileId,
-            copyFileName,
-            copyFileSize,
-            copyFileType,
-            sureChangeName,//文件重命名
-            fileNameChange,//文件重命名模态框
-            nameForm,
-            getAllUser,//获取所有用户
-            allTreeProps,//树形控件需要显示键名
-            allTreeData,//树形控件数据
-            allTreeChange,
-            sureShare,
-            openTree,
-            chooseTagData,
-            handleClose,
-            collectImg,//收藏小星星
-            fileCollect,
-            collectForm,
-            sureCollect,
-            getAllCollect,//获取所有收藏文件夹
-            collectList,//文件收藏表
-            createTag,
-            tagCollect,
-            tagBlur,
-            newTag,
-            collectChange,
-            sortNum,
-            needBag,
-            isId,
-            editOnline,//在线编辑
-            copyParentId,
-            folderName,
-            sureFolderName,
-            copyRow,
-            getAllTop,
-            spaceValue,
-            spaceSelect,
-            newDirId,
-            newSpaceId,
-            showPreview,//控制图片预览
-            closeImgPreview,//关闭预览事件
-            previewData,//预览文件数据
+            // 子传父的数据
+            function getChildren(data) {
+                fileTrees.value = data
+
+            }
+            return {
+                allBag,
+                folderList,//文件夹的数据
+                fileList,//文件夹的数据
+                searchFire,//搜索文件的model
+                changeFile,//切换右侧视图的file
+                menuList,//右侧切换
+                tableChange,//改变class点击事件
+                selectedIndex,//当前选中下标
+                shotdown,//筛选出当前数据
+                useMenu,
+                arrorMenu,
+                blueLeft,//返回
+                grayRight,//前进
+                squre,//视图切换
+                sort,//排序
+                folder,
+                files,
+                handleRowClick,
+                askApply,//申请扩容
+                askTo,
+                sureAsk,
+                askNum,
+                askTalk,
+                cliCC,
+                mouseCli,//文件点击弹框
+                chooseSet,
+                transferModal,
+                trandata,
+                tranvalue,
+                anyP,
+                chooseSet1,
+                getSpace,//获取内存空间
+                fileMenu,
+                addBoser,
+                boserForm,
+                createNewMenu,
+                sureAddBoser,
+                // delBoser,
+                clickRowId,
+                addFile,
+                createNewFile,
+                fileForm,
+                sureAddFile,
+                // fileUpload,
+                getImage,//筛选文件类型
+                handleSelectionChange,
+                handleSelectionChange1,
+                selectedBox,//重命名相关
+                restName,//重命名相关
+                newName,//重命名相关
+                nameChange,
+                getMenu,
+                folderId,
+                fileId,
+                // getAllMiddle,//拿到所有空间信息
+                delName,//删除空间信息
+                useSpace,//使用空间
+                allSpace,//总空间
+                percent,
+                arrowClick,
+                uploadModal,
+                sureUpload,
+                onSuccess,
+                fileArr,
+                directoryId,
+                folderClick,
+                copyDirId,//复制移动需要的↓
+                copyDocId,
+                copySpaceId,
+                copyFileId,
+                copyFileName,
+                copyFileSize,
+                copyFileType,
+                sureChangeName,//文件重命名
+                fileNameChange,//文件重命名模态框
+                nameForm,
+                getAllUser,//获取所有用户
+                allTreeProps,//树形控件需要显示键名
+                allTreeData,//树形控件数据
+                allTreeChange,
+                sureShare,
+                openTree,
+                chooseTagData,
+                handleClose,
+                collectImg,//收藏小星星
+                fileCollect,
+                collectForm,
+                sureCollect,
+                getAllCollect,//获取所有收藏文件夹
+                collectList,//文件收藏表
+                createTag,
+                tagCollect,
+                tagBlur,
+                newTag,
+                collectChange,
+                sortNum,
+                needBag,
+                isId,
+                editOnline,//在线编辑
+                copyParentId,
+                folderName,
+                sureFolderName,
+                copyRow,
+                getAllTop,
+                spaceValue,
+                spaceSelect,
+                newDirId,
+                newSpaceId,
+                showPreview,//控制图片预览
+                closeImgPreview,//关闭预览事件
+                previewData,//预览文件数据
+                fileTrees,
+                getChildren,//子传父
+                copyOrMove,
+                impDirId,
+                impNum,
+                impSpaceId
+            }
         }
     },
     created() {
@@ -1295,9 +1322,11 @@ export default {
     components: {
         BreadMenu,
         FileEdit,
-        ImgPreview
+        ImgPreview,
+        FileTree,
     },
 }
+
 </script>
 
 <style scoped>
@@ -1367,8 +1396,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>