Ver Fonte

新建、删除一级目录刷新问题,首页最近文件预览bug

liuQiang há 1 ano atrás
pai
commit
0e2ee82e6c

+ 35 - 2
src/views/HomePage/HomePage.vue

@@ -120,6 +120,17 @@
     :spaceId="spaceId"
     @closeOpenScanMove="closeOpenScanMove"
   ></MoveTo>
+  <ImgPreview
+    :previewData="previewData"
+    :copyFileType="copyFileType"
+    :showPreview="showPreview"
+    @closeImgPreview="closeImgPreview"
+  ></ImgPreview>
+  <div
+    v-loading.fullscreen="loadingPreview"
+    v-if="loadingPreview"
+    class="lodingBox"
+  ></div>
 </template>
 
 <script setup>
@@ -133,6 +144,8 @@ import ScanFile from "@/components/ScanFile/ScanFile.vue";
 import MoveTo from "@/components/MoveTo/MoveTo.vue";
 import { listInfo, selectInfo, getFileByScanerId } from "@/api/scanner/info.js";
 import { listFavoriteById } from "@/api/biz/favorite.js";
+import { preview } from "@/api/common/common.js";
+import ImgPreview from '@/components/ImgPreview/ImgPreview.vue'
 const tableFileData = ref([]);
 const tableFolderData = ref([]);
 const useSpace = ref();
@@ -148,6 +161,10 @@ const openScan = ref(false); //控制扫描文档显示
 const scanFileArr = ref([]); //认领的扫描文件数组
 const colllectArr = ref([]); // 收藏文件夹
 const addFileTab = inject("addFileTab");
+const previewData = ref();
+const showPreview = ref(false);
+const loadingPreview = ref(false);
+const copyFileType = ref();
 
 const getList = async () => {
   const resY = await listRecent({ isFolder: "Y" });
@@ -261,9 +278,25 @@ const getCollectFolder = async () => {
   // console.log('colllectArr.value',colllectArr.value);
 };
 // 打开文件
-const toFile = (row) => {
+const toFile = async (row) => {
   console.log("row", row);
-  addFileTab(row, 0, 0);
+  copyFileType.value = row.fileType;
+  loadingPreview.value = true;
+  const filePreview = canPreviewFile(row.fileType);
+  if (filePreview) {
+    loadingPreview.value = false;
+    addFileTab(row, 0, 0);
+  } else {
+    const res = await preview(row.docId);
+    showPreview.value = true;
+    previewData.value = URL.createObjectURL(res);
+    loadingPreview.value = false;
+  }
+};
+//关闭图片预览事件
+const closeImgPreview = () => {
+  // console.log('close');
+  showPreview.value = false;
 };
 onMounted(() => {
   getList();

+ 12 - 3
src/views/department/MyFile.vue

@@ -378,7 +378,7 @@
             </div>
             <!-- 新增文件夹弹窗 -->
             <div>
-                <CreateFloder v-if="folderCase" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
+                <CreateFloder v-if="folderCase" :getFirstFolder="getFirstFolder" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :upFolderData="upFolderData" :thisFolderRole="thisFolderRole"
                     :refreshFile="refreshFile">
                 </CreateFloder>
@@ -883,7 +883,10 @@ export default {
                 }
             documents.getALLdocumentByType({ parentId: impDirId.value, spaceId: impSpaceId.value,isAsc: isAsc.value,orderByColumn: "createTime", pageNum: obj.pageNum, pageSize: obj.pageSize },2).then(res => {
                     fileMenu.value = res.rows
-                    folderList.value = res.rows
+                    // 如果label没有值说明不在一级目录下
+                    if(!pathLabelData.value[0]){
+                        folderList.value = res.rows
+                    }
                 })
         }
         function fileBlur() {
@@ -1399,7 +1402,13 @@ export default {
             row = row ? row : clickRow.value
             documents.delDocument(row.dirId).then(res => {
                 if (res.code === 200) {
-                    getAllTop()
+                    // 如果当前打开的是要删除的这个文件夹
+                    if(thisFolder.value.dirId === row.dirId){
+                        getAllTop()
+                        pathLabelData.value = []
+                    }else{
+                        getFirstFolder()
+                    }
                     getSpaceList()
                     ElMessage({
                         message: "删除成功",

+ 2 - 1
src/views/department/modalComponebts/CreateFloder.vue

@@ -109,6 +109,7 @@ export default {
             default: ()=>{},
         },
         refreshFile: Function,
+        getFirstFolder: Function,
     },
     setup(props, { emit }) {
         const {
@@ -204,7 +205,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.refreshFile()
+                        props.getFirstFolder()
                     })
                 } else {
                     let query = {}

+ 13 - 4
src/views/myfile/MyFile.vue

@@ -412,7 +412,7 @@
             </div>
             <!-- 新增文件夹弹窗 -->
             <div>
-                <CreateFloder v-if="folderCase" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
+                <CreateFloder v-if="folderCase" :getFirstFolder="getFirstFolder" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId"
                     :thisFolderRole="thisFolderRole" :refreshFile="refreshFile">
                 </CreateFloder>
@@ -828,7 +828,7 @@ export default {
             if(thisFolder.value.dirId){
                 const query = `${thisFolder.value.dirId}?isAsc=${isAsc.value}&orderByColumn=createTime&pageSize=${pageSize.value}&pageNum=${filePageNum.value}`
                 const res = await myfile.getById(query)
-                  console.log('filessetScrollres',res);
+                //   console.log('filessetScrollres',res);
                 if (res.code === 200) {
                     // const newarr = res.rows.concat(toRaw(fileList.value))
                     const newarr = res.rows
@@ -908,7 +908,10 @@ export default {
                 }
             documents.getALLdocumentByType({ parentId: impDirId.value, spaceId: impSpaceId.value,isAsc: isAsc.value,orderByColumn: "createTime", pageNum: obj.pageNum, pageSize: obj.pageSize },3).then(res => {
                     fileMenu.value = res.rows
-                    folderList.value = res.rows
+                    // 如果label没有值说明不在一级目录下
+                    if(!pathLabelData.value[0]){
+                        folderList.value = res.rows
+                    }
                 })
         }
         function getSpaceList() {
@@ -1559,7 +1562,13 @@ export default {
             row = row ? row : clickRow.value
             documents.delDocument(row.dirId).then(res => {
                 if (res.code === 200) {
-                    getAllTop()
+                    // 如果当前打开的是要删除的这个文件夹
+                    if(thisFolder.value.dirId === row.dirId){
+                        getAllTop()
+                        pathLabelData.value = []
+                    }else{
+                        getFirstFolder()
+                    }
                     getSpaceList()
                     ElMessage({
                         message: "删除成功",

+ 2 - 1
src/views/myfile/modalComponebts/CreateFloder.vue

@@ -75,6 +75,7 @@ export default {
             default: ()=>{},
         },
         refreshFile: Function,
+        getFirstFolder: Function,
     },
     setup(props, { emit }) {
         let { addBack, sureAddBoser, diClose } = toRef(props)
@@ -138,7 +139,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.refreshFile()
+                        props.getFirstFolder()
                     })
                     console.log('1111', 1111)
                 } else {  //二级目录

+ 12 - 3
src/views/publicment/MyFile.vue

@@ -374,7 +374,7 @@
             </div>
             <!-- 新增文件夹弹窗 -->
             <div>
-                <CreateFloder v-if="folderCase" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
+                <CreateFloder v-if="folderCase" :getFirstFolder="getFirstFolder" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :upFolderData="upFolderData" :thisFolderRole="thisFolderRole"
                     :refreshFile="refreshFile">
                 </CreateFloder>
@@ -888,7 +888,10 @@ export default {
                 }
             documents.getALLdocumentByType({ parentId: impDirId.value, spaceId: impSpaceId.value,isAsc: isAsc.value,orderByColumn: "createTime",  pageNum: obj.pageNum, pageSize: obj.pageSize },1).then(res => {
                     fileMenu.value = res.rows
-                    folderList.value = res.rows
+                    // 如果label没有值说明不在一级目录下
+                    if(!pathLabelData.value[0]){
+                        folderList.value = res.rows
+                    }
                 })
         }
         function getSpaceList() {
@@ -1378,7 +1381,13 @@ export default {
             row = row ? row : clickRow.value
             documents.delDocument(row.dirId).then(res => {
                 if (res.code === 200) {
-                    getAllTop()
+                    // 如果当前打开的是要删除的这个文件夹
+                    if(thisFolder.value.dirId === row.dirId){
+                        getAllTop()
+                        pathLabelData.value = []
+                    }else{
+                        getFirstFolder()
+                    }
                     getSpaceList()
                     ElMessage({
                         message: "删除成功",

+ 2 - 1
src/views/publicment/modalComponebts/CreateFloder.vue

@@ -109,6 +109,7 @@ export default {
             default: ()=>{},
         },
         refreshFile: Function,
+        getFirstFolder: Function,
     },
     setup(props, { emit }) {
         const {
@@ -203,7 +204,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.refreshFile()
+                        props.getFirstFolder()
                     })
                 } else {
                     let query = {}