liuQiang 2 лет назад
Родитель
Сommit
8a85df50db

+ 17 - 3
src/layout/indexCommon.vue

@@ -125,10 +125,11 @@
       </el-container>
     </el-container>
   </div>
+    <div v-loading.fullscreen="loadingPreview" v-if="loadingPreview" class="lodingBox"></div>
 </template>
 
 <script setup>
-import { nextTick, onMounted, provide, ref, watchEffect, watch } from "vue";
+import { nextTick, onMounted,onBeforeMount, provide, ref, watchEffect, watch } from "vue";
 import { ElMessageBox, ElMessage } from "element-plus";
 import useAppStore from "@/store/modules/app";
 import useUserStore from "@/store/modules/user";
@@ -172,6 +173,7 @@ const selectValue = ref(1); //文档空间类型
 const wangzhi = import.meta.env.VITE_APP_BASE_API;
 const isAlive = ref(true);
 const toFileData = ref();
+const loadingPreview = ref(true)
 const uid = useUserStore().uid;
 let hasNewMessage = ref(false)
 let isSwitchFileIframe = ref(false); //是否切换到文件预览标签
@@ -287,8 +289,12 @@ function toggleSideBar() {
 }
 const logingName = ref("");
 let lisetenMessageTime = null;
-onMounted(() => {
-  needRepass()
+onBeforeMount(()=>{
+   needRepass()
+   loadingPreview.value = false
+})
+onMounted(async () => {
+
   logingName.value = Cookies.get("username");
   clearInterval(lisetenMessageTime)
   lisetenMessageTime = setInterval(() => {
@@ -937,6 +943,14 @@ watch(() => editableTabsValue.value, (newValue, oldValue) => {
 .el-container {
   height: 94vh;
 }
+.lodingBox {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100vh;
+    height: 100vh;
+    z-index: 10000000;
+}
 
 :deep .el-main {
   --el-main-padding: 8px !important;

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

@@ -224,7 +224,7 @@
                                 </el-table-column>
 
                                 </el-table>
-                                <PlaceGridFolder v-else @folderClick="folderClick" :restName="restName"
+                                <PlaceGridFolder v-else @folderClick="folderClick" :folderList="folderList" :restName="restName"
                                     :collectFolder="collectFolder" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack"  :thisFolder="thisFolder" :impDirId="impDirId">
                                 </PlaceGridFolder>
                             </el-collapse-item>
@@ -754,6 +754,11 @@ export default {
             })
         }
         function changeFile(row, num) {
+             const labelItem = {
+                name:row.dirName,
+                dirId:row.dirId
+            }      
+            pathLabelData.value = [labelItem]
           const addData = {
                 path:'/department'+row.dirId,
                 name:row.dirName,
@@ -1238,6 +1243,12 @@ export default {
                     }
                     console.log('newArr',newArr);
                     pathLabelData.value = JSON.parse(JSON.stringify(oldArr))
+                }else{
+                    const labelItem = {
+                        name:row.dirName,
+                        dirId:row.dirId
+                    }      
+                    pathLabelData.value = [labelItem]
                 }
             }else{
                 row =thisFolder.value

+ 21 - 7
src/views/department/components/PlaceGridFolder.vue

@@ -2,8 +2,8 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderListGrid?.length">
-                <template v-for="(item, index) in folderListGrid" :key="index">
+            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+                <template v-for="(item, index) in folderList" :key="index">
                     <!-- 循环盒子 -->
                     <div class="flexBox" @contextmenu="rightClick(item, $event)" @click="folderClickGrid(item)">
                         <!-- 图片 -->
@@ -46,7 +46,7 @@
 </template>
 
 <script>
-import { ref, onMounted } from "vue"
+import { ref, onMounted , toRaw,watch} from "vue"
 import { ElMessage } from "element-plus";
 import myfile from "../../../api/myfile/myfile";
 import documents from "../../../api/document/document";
@@ -58,7 +58,7 @@ export default {
     props: {
         folderClick: {
             type: Function,
-            required: true,
+            // required: true,
         },
         restName: {
             type: Function,
@@ -75,6 +75,10 @@ export default {
         thisFolder: {
             type: Object,
             required: true
+        },
+        folderList: {
+            type: Object,
+            required: true
         }
 
     },
@@ -95,6 +99,7 @@ export default {
         let copySpa = ref(0)
         let copyNma = ref("")
         let copyFir = ref("")
+        let folderList = ref(toRaw(props.folderList))
         // 获取文件夹,中栏,文件
         function getAllTop() {
             documents.getTop(2).then(res => {
@@ -186,14 +191,22 @@ export default {
             emit('folderBack', copyDir.value, copySpa.value, copyNma.value)
         }
         const folderClickGrid = (item) => {
-            getAllTop()
+            // getAllTop()
             emit("folderClick", item)
            console.log('item', item)
         }
         onMounted(() => {
-            getAllTop()
+            // getAllTop()
             window.addEventListener("click", mouseClick, true);
         })
+        watch(() => props.folderList, (newValue, oldValue) => {
+            console.log('newValue 发生改变了', newValue, oldValue);
+            folderList.value = newValue
+
+            }, {
+            immediate: true,
+            deep: true
+        });
         return {
             folderClickGrid,
             getAllTop,
@@ -218,7 +231,8 @@ export default {
             copyNma,
             copyFir,
             ordinaryList,
-            fileBox
+            fileBox,
+            folderList
         }
     },
     components:{

+ 12 - 7
src/views/myfile/MyFile.vue

@@ -236,12 +236,6 @@
                                             </template>
                                         </el-table-column>
                                         <el-table-column prop="createTime" label="时间" width="280" />
-                                        <!-- <el-table-column prop="dirType" label="类型">
-                                            <template #default="scope">
-                                                <span v-if="scope.row.isEncrypt == 'N'">公开目录</span>
-                                                <span v-else>加密目录</span>
-                                            </template>
-                                        </el-table-column> -->
                                         <el-table-column label="加密等级">
                                             <template #default="scope">
                                                 <span>
@@ -250,7 +244,7 @@
                                             </template>
                                         </el-table-column>
                                     </el-table>
-                                    <PlaceGridFolder v-else @folderClick="folderClick" :restName="restName"
+                                    <PlaceGridFolder v-else @folderClick="folderClick" :folderList="folderList" :restName="restName"
                                         :collectFolder="collectFolder" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack" :thisFolder="thisFolder">
                                     </PlaceGridFolder>
                                 </el-collapse-item>
@@ -764,6 +758,11 @@ export default {
         }
         function changeFile(row, num) {
             // 创建标签
+             const labelItem = {
+                name:row.dirName,
+                dirId:row.dirId
+            }      
+            pathLabelData.value = [labelItem]
             const addData = {
                 path: '/myfile' + row.dirId,
                 name: row.dirName,
@@ -1364,6 +1363,12 @@ export default {
                     }
                     console.log('newArr',newArr);
                     pathLabelData.value = JSON.parse(JSON.stringify(oldArr))
+                }else{
+                    const labelItem = {
+                        name:row.dirName,
+                        dirId:row.dirId
+                    }      
+                    pathLabelData.value = [labelItem]
                 }
             } else {
                 row = thisFolder.value

+ 61 - 62
src/views/myfile/components/PlaceGridFolder.vue

@@ -2,8 +2,8 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderListGrid?.length">
-                <template v-for="(item, index) in folderListGrid" :key="index">
+            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+                <template v-for="(item, index) in folderList" :key="index">
                     <!-- 循环盒子 -->
                     <div class="flexBox" @contextmenu="rightClick(item, $event)" @click="folderClickGrid(item)">
                         <!-- 图片 -->
@@ -42,7 +42,7 @@
 </template>
 
 <script>
-import { ref, onMounted } from "vue"
+import { ref, onMounted, toRaw,watch } from "vue"
 import { ElMessage } from "element-plus";
 import myfile from "../../../api/myfile/myfile";
 import documents from "../../../api/document/document";
@@ -52,7 +52,7 @@ export default {
     props: {
         folderClick: {
             type: Function,
-            required: true,
+            // required: true,
         },
         restName: {
             type: Function,
@@ -69,6 +69,10 @@ export default {
         thisFolder: {
             type: Object,
             required: true
+        },
+        folderList: {
+            type: Object,
+            required: true
         }
     },
     setup(props, { emit }) {
@@ -88,60 +92,45 @@ export default {
         let copySpa = ref(0)
         let copyNma = ref("")
         let copyFir = ref("")
+        let folderList = ref(toRaw(props.folderList))
         // 获取文件夹,中栏,文件
-        function getAllTop() {
-            documents.getTop(3).then(res => {
-                let userMe = [res]
-                impDirId.value = userMe[0].dirId//固定
-                impSpaceId.value = userMe[0].spaceId//固定
-                newSpaceId.value = userMe[0].spaceId//变化
-                newDirId.value = userMe[0].dirId//变化
-                topPath.value = userMe[0].dirPath
-                let obj = {
-                    pageNum: 1,
-                    pageSize: 10
-                }
-                const fileId =props.thisFolder.dirId?props.thisFolder.dirId:userMe[0].dirId - 0
-                documents.getALLdocument({ parentId:fileId, spaceId: userMe[0].spaceId, pageNum: obj.pageNum, pageSize: obj.pageSize }).then(res => {
-                    fileMenu.value = res.data
-                    folderListGrid.value = res.data
-                })
-                // myfile.getById(userMe[0].dirId - 0, obj).then(res => {
-                //     if (res.code === 200) {
-                //         fileList.value = res.rows
-                //         fileTotal.value = res.total
-                //         if (fileTotal.value / 10 != 1) {
-                //             let x = Math.trunc(fileTotal.value / 10) + 1
-                //             for (var i = 1; i <= x; i++) {
-                //                 obj.pageNum = i
-                //                 myfile.getById(userMe[0].dirId - 0, obj).then(res => {
-                //                     fileList.value = fileList.value.concat(res.rows)
-                //                     const uniqueFileList = Array.from(new Set(fileList.value.map(item => item.docId)))
-                //                         .map(docId => fileList.value.find(item => item.docId === docId));
-                //                     // 合并数组并更新 fileList.value
-                //                     fileList.value = uniqueFileList
-                //                 })
-                //             }
-                //         }
-                //     }
-                // })
-            })
-        }
-        // function rightClick(row, num, eve) {
-        //     console.log('row=====', row,num,eve)
-        //     eve.preventDefault();
-        //     eve.stopPropagation();
-        //     folderleft.value = eve.pageX
-        //     foldertop.value = eve.pageY
-        //     copyDir.value = row.dirId
-        //     copySpa.value = row.spaceId
-        //     copyNma.value = row.dirName
-        //     copyFir.value = row.dirName
-        //     if (folderVisible.value) {
-        //         folderVisible.value = false
-        //     } else {
-        //         folderVisible.value = true
-        //     }
+        // function getAllTop() {
+        //     documents.getTop(3).then(res => {
+        //         let userMe = [res]
+        //         impDirId.value = userMe[0].dirId//固定
+        //         impSpaceId.value = userMe[0].spaceId//固定
+        //         newSpaceId.value = userMe[0].spaceId//变化
+        //         newDirId.value = userMe[0].dirId//变化
+        //         topPath.value = userMe[0].dirPath
+        //         let obj = {
+        //             pageNum: 1,
+        //             pageSize: 10
+        //         }
+        //         const fileId =props.thisFolder.dirId?props.thisFolder.dirId:userMe[0].dirId - 0
+        //         documents.getALLdocument({ parentId:fileId, spaceId: userMe[0].spaceId, pageNum: obj.pageNum, pageSize: obj.pageSize }).then(res => {
+        //             fileMenu.value = res.data
+        //             folderListGrid.value = res.data
+        //         })
+        //         // myfile.getById(userMe[0].dirId - 0, obj).then(res => {
+        //         //     if (res.code === 200) {
+        //         //         fileList.value = res.rows
+        //         //         fileTotal.value = res.total
+        //         //         if (fileTotal.value / 10 != 1) {
+        //         //             let x = Math.trunc(fileTotal.value / 10) + 1
+        //         //             for (var i = 1; i <= x; i++) {
+        //         //                 obj.pageNum = i
+        //         //                 myfile.getById(userMe[0].dirId - 0, obj).then(res => {
+        //         //                     fileList.value = fileList.value.concat(res.rows)
+        //         //                     const uniqueFileList = Array.from(new Set(fileList.value.map(item => item.docId)))
+        //         //                         .map(docId => fileList.value.find(item => item.docId === docId));
+        //         //                     // 合并数组并更新 fileList.value
+        //         //                     fileList.value = uniqueFileList
+        //         //                 })
+        //         //             }
+        //         //         }
+        //         //     }
+        //         // })
+        //     })
         // }
        const rightClick = (row,e)=>{
         emit("folderRClick", row,null,e)
@@ -179,16 +168,25 @@ export default {
             emit('folderBack', copyDir.value, copySpa.value, copyNma.value)
         }
         const folderClickGrid = (item) => {
-            getAllTop()
-            emit("folderClick", item)
+            // getAllTop()
            console.log('item', item)
+            emit("folderClick", item)
         }
         onMounted(() => {
-            getAllTop()
+            // props.getAllTop()
+            // getAllTop()
+            console.log('folderList',folderList);
             window.addEventListener("click", mouseClick, true);
         })
+        watch(() => props.folderList, (newValue, oldValue) => {
+            console.log('newValue 发生改变了', newValue, oldValue);
+            folderList.value = newValue
+
+            }, {
+            immediate: true,
+            deep: true
+        });
         return {
-            getAllTop,
             impDirId,
             impSpaceId,
             newDirId,
@@ -209,7 +207,8 @@ export default {
             copySpa,
             copyNma,
             copyFir,
-            folderClickGrid
+            folderClickGrid,
+            folderList
         }
     },
     components:{

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

@@ -222,7 +222,7 @@
                                 </el-table-column>
 
                                 </el-table>
-                                <PlaceGridFolder v-else  @folderClick="folderClick" :restName="restName"
+                                <PlaceGridFolder v-else  @folderClick="folderClick" :folderList="folderList" :restName="restName"
                                     :collectFolder="collectFolder" @folderRClick="folderRClick" :getAllTop="getAllTop" @folderBack="folderBack" :thisFolder="thisFolder">
                                 </PlaceGridFolder>
                             </el-collapse-item>
@@ -762,6 +762,11 @@ export default {
             }
         }
         function changeFile(row, num) {
+             const labelItem = {
+                name:row.dirName,
+                dirId:row.dirId
+            }      
+            pathLabelData.value = [labelItem]
              const addData = {
                 path:'/publicment'+row.dirId,
                 name:row.dirName,
@@ -1237,6 +1242,12 @@ export default {
                     }
                     console.log('newArr',newArr);
                     pathLabelData.value = JSON.parse(JSON.stringify(oldArr))
+                }else{
+                    const labelItem = {
+                        name:row.dirName,
+                        dirId:row.dirId
+                    }      
+                    pathLabelData.value = [labelItem]
                 }
             }else{
                 row =thisFolder.value

+ 21 - 7
src/views/publicment/components/PlaceGridFolder.vue

@@ -2,8 +2,8 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderListGrid?.length">
-                <template v-for="(item, index) in folderListGrid" :key="index">
+            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+                <template v-for="(item, index) in folderList" :key="index">
                     <!-- 循环盒子 -->
                     <div class="flexBox" @contextmenu="rightClick(item,$event)" @click="folderClickGrid(item)">
                         <!-- 图片 -->
@@ -46,7 +46,7 @@
 </template>
 
 <script>
-import { ref, onMounted } from "vue"
+import { ref, onMounted , toRaw,watch} from "vue"
 import { ElMessage } from "element-plus";
 import myfile from "../../../api/myfile/myfile";
 import documents from "../../../api/document/document";
@@ -58,7 +58,7 @@ export default {
     props: {
         folderClick: {
             type: Function,
-            required: true,
+            // required: true,
         },
         restName: {
             type: Function,
@@ -75,6 +75,10 @@ export default {
         thisFolder: {
             type: Object,
             required: true
+        },
+        folderList: {
+            type: Object,
+            required: true
         }
 
     },
@@ -95,6 +99,7 @@ export default {
         let copySpa = ref(0)
         let copyNma = ref("")
         let copyFir = ref("")
+        let folderList = ref(toRaw(props.folderList))
         // 获取文件夹,中栏,文件
         function getAllTop() {
             documents.getTop(1).then(res => {
@@ -185,14 +190,22 @@ export default {
             emit('folderBack', copyDir.value, copySpa.value, copyNma.value)
         }
         const folderClickGrid = (item) => {
-            getAllTop()
+            // getAllTop()
             emit("folderClick", item)
            console.log('item', item)
         }
         onMounted(() => {
-            getAllTop()
+            // getAllTop()
             window.addEventListener("click", mouseClick, true);
         })
+        watch(() => props.folderList, (newValue, oldValue) => {
+            console.log('newValue 发生改变了', newValue, oldValue);
+            folderList.value = newValue
+
+            }, {
+            immediate: true,
+            deep: true
+        });
         return {
             folderClickGrid,
             getAllTop,
@@ -217,7 +230,8 @@ export default {
             copyNma,
             copyFir,
             ordinaryList,
-            fileBox
+            fileBox,
+            folderList
         }
     },
     components:{

+ 3 - 2
src/views/search/index.vue

@@ -47,7 +47,7 @@
     <!-- 文件列表 -->
     <div class="fileList">
       <div>
-        <div v-if="isList" style="height: calc(98vh - 320px);overflow-y: auto;">
+        <div v-if="isList" style="height: calc(98vh - 320px);overflow-y: hidden;">
           <!-- 表格 -->
           <el-table :data="tableData" style="width: 100%;height:calc(98vh - 220px);" ref="container"
             @scroll="handleScroll" @row-click="clickRow">
@@ -149,6 +149,7 @@ const addFileTab = inject("addFileTab");
 const tableData = ref([]);
 // 切换搜索范围
 const changeSearchFor = async(name) => {
+  numnum = 1
   const typeArr = setType(searchType.value);
   let baseDataObj = toRaw(baseData.value);
   var fileTypes = ''
@@ -345,7 +346,7 @@ async function handleScroll(e) {
   const tableContainer = e.target;
   const scrollPosition = tableContainer.scrollTop + tableContainer.clientHeight;
   const contentHeight = tableContainer.scrollHeight;
-  console.log(scrollPosition, contentHeight, '对比');
+  // console.log(scrollPosition, contentHeight, '对比');
   if (scrollPosition + 0.40005 >= contentHeight) {
     numnum++
     const query = {