Browse Source

收藏文件打开

liuQiang 1 year ago
parent
commit
257e806630
4 changed files with 251 additions and 104 deletions
  1. 151 97
      src/views/collect/index.vue
  2. 32 1
      src/views/department/MyFile.vue
  3. 36 5
      src/views/myfile/MyFile.vue
  4. 32 1
      src/views/publicment/MyFile.vue

+ 151 - 97
src/views/collect/index.vue

@@ -1,14 +1,12 @@
 <template>
   <div class="container">
-    <div class="topPath">
-      <!-- <el-icon><ArrowDown /></el-icon> -->
+    <!-- <div class="topPath">
       <span @click="backTopPath">收藏文件</span>
       <PathLabel
         @folderClick="folderClick"
         :pathLabelData="pathLabelData"
       ></PathLabel>
-      <!-- <BreadMenu></BreadMenu> -->
-    </div>
+    </div> -->
     <!-- 标签 -->
     <div class="tags">
       <div class="tags_left">
@@ -148,7 +146,7 @@
           <el-table
             :data="fileArr"
             style="width: 100%"
-            height="40vh"
+            height="42vh"
             :scrollbar-always-on="true"
             @row-contextmenu="fileRightTable"
             @row-click="clickFile"
@@ -210,7 +208,7 @@
             <span class="collapseItem_title">文件夹</span>
           </template>
           <!-- 平铺 -->
-          <el-scrollbar style="height: 37vh">
+          <el-scrollbar style="height: 39vh">
             <div class="tile_box">
               <div
                 class="file_box"
@@ -299,7 +297,7 @@
     v-show="showFlieRM"
     @folderClick="folderClick"
     @delCollect="delCollect"
-    @openFile='openFile'
+    @openFile="openFile"
     :isTop="isTop"
     :fileRightXY="fileRightXY"
     :isFolder="isFolder"
@@ -344,6 +342,7 @@ import RightMenu from "@/components/RightMenu/index.vue";
 import documents from "@/api/document/document";
 import myfile from "@/api/myfile/myfile";
 import PathLabel from "@/components/PathLabel/index.vue";
+import { getDir } from "@/api/biz/dir.js";
 const activeNames = ref(["folder", "file"]);
 const clickCollect = ref("second"); //当前标签
 const isAddCollect = ref(false); //是否在添加标签
@@ -378,6 +377,10 @@ const loadingPreview = ref(false);
 const previewData = ref();
 const copyFileType = ref();
 const addFileTab = inject("addFileTab");
+const addFolderAdd = inject("addFolderAdd");
+const folersArr = ref([]); //路劲上的文件夹
+const openFolderTop = ref(); // 所在的空间
+const firstFolderData = ref(); // 第一层目录
 //----引入图片----
 import file_DOC from "../../assets/images/fileType/file_DOC.png";
 import file_pdf from "../../assets/images/fileType/file_pdf.png";
@@ -399,89 +402,141 @@ onMounted(async () => {
   window.addEventListener("click", closeFlieRMenu, true);
 });
 // 文件夹每行点击事件
-const folderClick = (row, list, e, jump) => {
-  console.log("thisFolder.value", thisFolder.value);
-  // 初始化分页数据
-  tableBeEnd.value = true;
-  filePageNum.value = 1;
-  tableTotal.value = 0;
-  if (row) {
-    thisFolder.value = row.docDir ? row.docDir : row;
-  } else {
-    row = thisFolder.value;
+const folderClick = async (row, list, e, jump) => {
+  folersArr.value = []
+  openFolderTop.value = null
+  firstFolderData.value = null
+  // console.log("thisFolder.value", thisFolder.value);
+  const thisFolderD = toRaw(thisFolder.value); //打开的收藏文件
+  async function getFoldersData(info) {
+    if (info.parentId) {
+      folersArr.value.push(JSON.parse(JSON.stringify(info)));
+      const res = await getDir(info.parentId);
+      // console.log('res====',res);
+      await getFoldersData(res.data);
+    } else {
+      openFolderTop.value = info;
+      return;
+    }
   }
-  console.log("row", row);
-
-  if (row.favoriteId) {
-    // 说明是拿到的收藏数据 也就是第一层
-    pathLabelData.value = []; // 先把数据清空
-    const labelItem = {
-      name: row.docDir.dirName,
-      dirId: row.docDir.dirId,
+  await getFoldersData(thisFolderD.docDir);
+  // folersArr = JSON.parse(JSON.stringify(folersArr))
+  folersArr.value.reverse();
+  firstFolderData.value = folersArr.value[0];
+  // console.log("folersArr", folersArr.value);
+  // console.log("openFolderTop", openFolderTop.value);
+  sessionStorage.setItem('folderArr',JSON.stringify(folersArr.value))
+  // 判断空间
+  if (openFolderTop.value.dirName.includes("个人空间")) {
+    // 创建标签
+    const addData = {
+      path: "/myfile" + firstFolderData.value.dirId,
+      name: firstFolderData.value.dirName,
+      clickRowId:firstFolderData.value,
     };
-    pathLabelData.value = [labelItem];
+    addFolderAdd(addData);
+  } else if (openFolderTop.value.dirName.includes("部门空间")) {
+        // 创建标签
+    const addData = {
+      path: "/department" + firstFolderData.value.dirId,
+      name: firstFolderData.value.dirName,
+      clickRowId:firstFolderData.value,
+    };
+    addFolderAdd(addData);
   } else {
-    // 说明是点开拿到的数据 也就是第二层往后
-    const oldArr = toRaw(pathLabelData.value);
-    let newArr;
-    if (jump == undefined) {
-      newArr = oldArr.push({
-        name: row.dirName,
-        dirId: row.dirId,
-      });
-    } else {
-      newArr = oldArr.splice(jump + 1);
-    }
-    pathLabelData.value = JSON.parse(JSON.stringify(oldArr));
+            // 创建标签
+    const addData = {
+      path: "/publicment" + firstFolderData.value.dirId,
+      name: firstFolderData.value.dirName,
+      clickRowId:firstFolderData.value,
+    };
+    addFolderAdd(addData);
   }
-  newDirId.value = row.docDir ? row.docDir.dirId : row.dirId;
-  newSpaceId.value = row.docDir ? row.docDir.spaceId : row.spaceId;
-  const query = `${newDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=${pageSize.value}&pageNum=${filePageNum.value}`;
-  documents
-    .getALLdocumentByType(
-      {
-        parentId: newDirId.value - 0,
-        spaceId: newSpaceId.value - 0,
-        isAsc: isAsc.value,
-        orderByColumn: "createTime"
-      },
-      2
-    )
-    .then((res) => {
-      folderArr.value = res.rows;
-      if (res.rows.length === 0) {
-        myfile.getById(query).then((res) => {
-          if (res.code === 200) {
-            tableTotal.value = res.total;
-            if (res.rows.length < res.total) {
-              //第一次拿到的数据少于总数开启下拉事件
-              tableBeEnd.value = false;
-            }
-            fileArr.value = res.rows;
-          }
-        });
-      } else {
-        myfile.getById(query).then((res) => {
-          console.log("folerFile", res);
-          if (res.code === 200) {
-            tableTotal.value = res.total;
-            if (res.rows.length < res.total) {
-              //第一次拿到的数据少于总数开启下拉事件
-              tableBeEnd.value = false;
-            }
-            fileArr.value = JSON.parse(JSON.stringify(res.rows));
-            // console.log('fileList',toRaw(fileList.value));
-          }
-        });
-      }
-      loadingPreview.value = false
-    });
+  // 初始化分页数据
 };
+// const folderClick = (row, list, e, jump) => {
+//   console.log("thisFolder.value", thisFolder.value);
+//   // 初始化分页数据
+//   tableBeEnd.value = true;
+//   filePageNum.value = 1;
+//   tableTotal.value = 0;
+//   if (row) {
+//     thisFolder.value = row.docDir ? row.docDir : row;
+//   } else {
+//     row = thisFolder.value;
+//   }
+//   console.log("row", row);
+
+//   if (row.favoriteId) {
+//     // 说明是拿到的收藏数据 也就是第一层
+//     pathLabelData.value = []; // 先把数据清空
+//     const labelItem = {
+//       name: row.docDir.dirName,
+//       dirId: row.docDir.dirId,
+//     };
+//     pathLabelData.value = [labelItem];
+//   } else {
+//     // 说明是点开拿到的数据 也就是第二层往后
+//     const oldArr = toRaw(pathLabelData.value);
+//     let newArr;
+//     if (jump == undefined) {
+//       newArr = oldArr.push({
+//         name: row.dirName,
+//         dirId: row.dirId,
+//       });
+//     } else {
+//       newArr = oldArr.splice(jump + 1);
+//     }
+//     pathLabelData.value = JSON.parse(JSON.stringify(oldArr));
+//   }
+//   newDirId.value = row.docDir ? row.docDir.dirId : row.dirId;
+//   newSpaceId.value = row.docDir ? row.docDir.spaceId : row.spaceId;
+//   const query = `${newDirId.value}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=${pageSize.value}&pageNum=${filePageNum.value}`;
+//   documents
+//     .getALLdocumentByType(
+//       {
+//         parentId: newDirId.value - 0,
+//         spaceId: newSpaceId.value - 0,
+//         isAsc: isAsc.value,
+//         orderByColumn: "createTime"
+//       },
+//       2
+//     )
+//     .then((res) => {
+//       folderArr.value = res.rows;
+//       if (res.rows.length === 0) {
+//         myfile.getById(query).then((res) => {
+//           if (res.code === 200) {
+//             tableTotal.value = res.total;
+//             if (res.rows.length < res.total) {
+//               //第一次拿到的数据少于总数开启下拉事件
+//               tableBeEnd.value = false;
+//             }
+//             fileArr.value = res.rows;
+//           }
+//         });
+//       } else {
+//         myfile.getById(query).then((res) => {
+//           console.log("folerFile", res);
+//           if (res.code === 200) {
+//             tableTotal.value = res.total;
+//             if (res.rows.length < res.total) {
+//               //第一次拿到的数据少于总数开启下拉事件
+//               tableBeEnd.value = false;
+//             }
+//             fileArr.value = JSON.parse(JSON.stringify(res.rows));
+//             // console.log('fileList',toRaw(fileList.value));
+//           }
+//         });
+//       }
+//       loadingPreview.value = false
+//     });
+// };
 // 文件点击事件
 const clickFile = () => {};
 // 返回最顶层
 const backTopPath = () => {
-  thisFolder.value = null
+  thisFolder.value = null;
   tabchange(clickCollect.value);
 };
 //取消收藏
@@ -603,16 +658,15 @@ const addCollectFn = async () => {
   }
 
   const list = toRaw(tabList.value);
-  if(list.length>=10){
-     isAddCollect.value = false;
+  if (list.length >= 10) {
+    isAddCollect.value = false;
     tabName.value = "";
-    return ElMessage.error("已到最大数量,请先删除其他收藏标签!")
+    return ElMessage.error("已到最大数量,请先删除其他收藏标签!");
+  }
+  const hasIt = list.some((item) => item.labelName === tabName.value);
+  if (hasIt) {
+    return ElMessage.error("标签名已存在!");
   }
-  const hasIt = list.some(item=>item.labelName === tabName.value)
-  if(hasIt){
-
-    return ElMessage.error("标签名已存在!")
-    } 
   let order = 0;
   if (list.length > 0) {
     order = getBigOrder(list);
@@ -728,9 +782,9 @@ const reTabName = async () => {
 
 const tabchange = async (labelId) => {
   console.log("labelId", toRaw(labelId));
-  thisFolder.value = null
+  thisFolder.value = null;
   const query = {
-    pageSize:9999,
+    pageSize: 9999,
     isAsc: isAsc.value,
     orderByColumn: "createTime",
   };
@@ -749,7 +803,7 @@ const tabchange = async (labelId) => {
   fileArr.value = res.rows.filter((item) => item.isFolder === "N");
   //把路径清楚
   pathLabelData.value = [];
-  loadingPreview.value = false
+  loadingPreview.value = false;
   console.log("folderArr", folderArr.value);
   console.log("fileArr", fileArr.value);
 };
@@ -765,12 +819,12 @@ const changeShow = () => {
   sessionStorage.setItem("fileGrid", isList.value);
 };
 const changeSort = async () => {
-  loadingPreview.value = true
+  loadingPreview.value = true;
   isAsc.value == "asc" ? (isAsc.value = "desc") : (isAsc.value = "asc");
-  if(!thisFolder.value){
-    tabchange(clickCollect.value)
-  }else{
-    folderClick()
+  if (!thisFolder.value) {
+    tabchange(clickCollect.value);
+  } else {
+    folderClick();
   }
   // console.log("res", res);
 };

+ 32 - 1
src/views/department/MyFile.vue

@@ -1537,6 +1537,9 @@ export default {
                     })
                 }
             })
+            setTimeout(() => {
+                sessionStorage.setItem('folderArr','')
+            }, 1500);
         }
         // 左边树节点每行点击事件
         function listfolderClick(row,firstData) {
@@ -2184,6 +2187,31 @@ export default {
                 clickPath(null,addData)
             }
         }
+        // 别处过来需要层层打开的文件夹
+        const openFolderPath = ()=>{
+            const FolderStr = sessionStorage.getItem('folderArr')
+            let foldersArr
+            if(FolderStr){
+                foldersArr = JSON.parse(FolderStr)
+            }else{
+                return
+            }
+            const oldLabelData = []
+            foldersArr.forEach((item,index)=>{
+                if(index<foldersArr.length - 1){
+                    oldLabelData.push({
+                        name:item.dirName,
+                        dirId:item.dirId
+                    })
+                }
+            })
+            pathLabelData.value = JSON.parse(JSON.stringify(oldLabelData))
+            // 打开文件夹
+            folderClick(foldersArr[foldersArr.length - 1])
+            // sessionStorage.setItem('folderArr','')
+            // console.log('pathLabelData',pathLabelData.value);
+
+        }
         watch(() => folder.value, async(newValue, oldValue) => {
             // console.log('iFrameData 发生改变了', newValue, oldValue);
             console.log('files',newValue);
@@ -2254,6 +2282,7 @@ export default {
                 // console.log('response',response);
                 maxFileSize.value = response.msg
             });  
+            openFolderPath()
             // 添加监听,点击其他地方关闭文件夹右键菜单
             window.addEventListener("click", closeRMenu, true);
             window.addEventListener("mousewheel", mouseClick, true);
@@ -2286,6 +2315,7 @@ export default {
                             dirId:res.data.dirId
                         }      
                         pathLabelData.value = [labelItem]
+                        openFolderPath()
                         refreshFile()
                     })
                 }
@@ -2560,7 +2590,8 @@ export default {
             delFolder,
             changeListSort,
             folderBlur,
-            delFolderDataFn
+            delFolderDataFn,
+            openFolderPath
         }
     },
     watch: {

+ 36 - 5
src/views/myfile/MyFile.vue

@@ -1718,6 +1718,9 @@ export default {
                     })
                 }
             })
+            setTimeout(() => {
+                sessionStorage.setItem('folderArr','')
+            }, 1500);
         }
         // 左边树节点每行点击事件
         function listfolderClick(row,firstData) {
@@ -2352,6 +2355,31 @@ export default {
                 clickPath(null,addData)
             }
         }
+        // 别处过来需要层层打开的文件夹
+        const openFolderPath = ()=>{
+            const FolderStr = sessionStorage.getItem('folderArr')
+            let foldersArr
+            if(FolderStr){
+                foldersArr = JSON.parse(FolderStr)
+            }else{
+                return
+            }
+            const oldLabelData = []
+            foldersArr.forEach((item,index)=>{
+                if(index<foldersArr.length - 1){
+                    oldLabelData.push({
+                        name:item.dirName,
+                        dirId:item.dirId
+                    })
+                }
+            })
+            pathLabelData.value = JSON.parse(JSON.stringify(oldLabelData))
+            // 打开文件夹
+            folderClick(foldersArr[foldersArr.length - 1])
+            // sessionStorage.setItem('folderArr','')
+            // console.log('pathLabelData',pathLabelData.value);
+
+        }
         watch(() => folder.value, async(newValue, oldValue) => {
             // console.log('iFrameData 发生改变了', newValue, oldValue);
             console.log('files',newValue);
@@ -2423,6 +2451,7 @@ export default {
                 // console.log('response',response);
                 maxFileSize.value = response.msg
             });     
+            openFolderPath()
             // console.log('!thisFolder.value',thisFolder.value);
             // refreshFile()
             // 添加监听,点击其他地方关闭文件夹右键菜单
@@ -2431,12 +2460,12 @@ export default {
             window.addEventListener("click", mouseClick, true);
             window.addEventListener("mousewheel", mouseClick, true);
             window.addEventListener("click", closeTreeRMenu, true);
-            console.log('leftShowList',leftShowList.value);
-            console.log('onMounted');
+            // console.log('leftShowList',leftShowList.value);
+            // console.log('onMounted');
         })
         // 组件显示
         onActivated(() => {
-            console.log('onActivated.query',route.query);
+            // console.log('onActivated.query',route.query);
             loadingPreview.value = true
             //给pagesize复制
 
@@ -2452,7 +2481,7 @@ export default {
             setTimeout(() => {
                 if (route.query.clickRowId) {
                     const newRow = JSON.parse(route.query.clickRowId)
-                    console.log('newRow',newRow);
+                    // console.log('newRow',newRow);
                     myfile.getDir(newRow).then(res => {
                         // console.log('tores',res);
                         thisFolder.value = res.data
@@ -2462,6 +2491,7 @@ export default {
                             dirId:res.data.dirId
                         }      
                         pathLabelData.value = [labelItem]
+                        openFolderPath()
                         // console.log('pathLabelData',pathLabelData.value);
                         refreshFile()
                     })
@@ -2734,7 +2764,8 @@ export default {
             closeTreeRMenu,
             delFolder,
             changeListSort,
-            delFolderDataFn
+            delFolderDataFn,
+            openFolderPath
         }
     },
     watch: {

+ 32 - 1
src/views/publicment/MyFile.vue

@@ -1515,6 +1515,9 @@ export default {
                     })
                 }
             })
+            setTimeout(() => {
+                sessionStorage.setItem('folderArr','')
+            }, 1500);
         }
         // 左边树节点每行点击事件
         function listfolderClick(row,firstData) {
@@ -2174,6 +2177,31 @@ export default {
                 clickPath(null,addData)
             }
         }
+        // 别处过来需要层层打开的文件夹
+        const openFolderPath = ()=>{
+            const FolderStr = sessionStorage.getItem('folderArr')
+            let foldersArr
+            if(FolderStr){
+                foldersArr = JSON.parse(FolderStr)
+            }else{
+                return
+            }
+            const oldLabelData = []
+            foldersArr.forEach((item,index)=>{
+                if(index<foldersArr.length - 1){
+                    oldLabelData.push({
+                        name:item.dirName,
+                        dirId:item.dirId
+                    })
+                }
+            })
+            pathLabelData.value = JSON.parse(JSON.stringify(oldLabelData))
+            // 打开文件夹
+            folderClick(foldersArr[foldersArr.length - 1])
+            // sessionStorage.setItem('folderArr','')
+            // console.log('pathLabelData',pathLabelData.value);
+
+        }
         watch(() => folder.value, async(newValue, oldValue) => {
             // console.log('iFrameData 发生改变了', newValue, oldValue);
             console.log('files',newValue);
@@ -2244,6 +2272,7 @@ export default {
                 // console.log('response',response);
                 maxFileSize.value = response.msg
             });  
+            openFolderPath()
             // 添加监听,点击其他地方关闭文件夹右键菜单
             window.addEventListener("click", closeRMenu, true);
             window.addEventListener("click", mouseClick, true);
@@ -2277,6 +2306,7 @@ export default {
                             dirId:res.data.dirId
                         }      
                         pathLabelData.value = [labelItem]
+                        openFolderPath()
                         refreshFile()
                     })
                 }
@@ -2549,7 +2579,8 @@ export default {
             closeTreeRMenu,
             delFolder,
             changeListSort,
-            delFolderDataFn
+            delFolderDataFn,
+            openFolderPath
         }
     },
     watch: {