Эх сурвалжийг харах

Merge branch 'v3' of http://94.191.59.107:3000/houwenfeng/cloudfile-ui into v3

“yueshang” 1 жил өмнө
parent
commit
1ee78145ab

+ 1 - 0
package.json

@@ -23,6 +23,7 @@
     "axios": "0.27.2",
     "clipboard": "^2.0.11",
     "echarts": "5.4.0",
+    "el-table-infinite-scroll": "^3.0.3",
     "element-plus": "2.2.27",
     "file-saver": "2.0.5",
     "fuse.js": "6.6.2",

+ 1 - 2
src/api/myfile/myfile.js

@@ -7,11 +7,10 @@ function getAllFileMenu(data) {
         params: data
     })
 }
-function getById(num,data) {
+function getById(num) {
     return request({
         url: `/biz/info/list/${num}`,
         method: "get",
-        params:data
     })
 }
 // 新增

+ 26 - 2
src/components/ImgPreview/ImgPreview.vue

@@ -19,6 +19,7 @@
   >
     <video
       :src="previewData"
+      ref="video"
       controls
       :style="{ width: '100%', height: '100%' }"
     ></video>
@@ -32,7 +33,7 @@
     v-if="copyFileType === '.mp3'"
     :before-close="closeImgPreview"
   >
-    <audio :src="previewData" controls></audio>
+    <audio :src="previewData" ref="audio" controls></audio>
   </el-dialog>
 </template>
 
@@ -45,6 +46,7 @@ import {
   watch,
   onMounted,
   defineExpose,
+  onDeactivated
 } from "vue";
 const props = defineProps({
   showPreview: {
@@ -65,6 +67,9 @@ watch(
   (newValue) => {
     // console.log(111);
     showImageViewer.value = newValue;
+    if(newValue == false){
+      console.log('watch',video.value);
+    }
   },
   () => props.previewData,
   (newValue) => {
@@ -74,6 +79,8 @@ watch(
 );
 const previewImg = ref(null);
 const showImageViewer = ref(false); //组件是否显示
+const video = ref(null); 
+const audio = ref(null); 
 const emit = defineEmits(["closeImgPreview"]);
 const showImg = () => {
   //预览大图
@@ -81,7 +88,18 @@ const showImg = () => {
 };
 const closeImgPreview = () => {
   //必须要这个事件 不然点击右上角关闭按钮没有反应
-  // console.log('sonClose');
+  console.log('sonClose');
+  if(props.copyFileType === '.mp3'){
+    const audioDom = document.getElementsByTagName("audio")[0];
+    audioDom.pause()
+  }
+  if(props.copyFileType === '.mp4'){
+    const videoDom = document.getElementsByTagName("video")[0];
+    videoDom.pause()
+  }
+
+  // video.value.pause();
+  // audio.value.pause();
   emit("closeImgPreview");
 };
 const canSeeImg = (copyFileType)=>{
@@ -94,6 +112,12 @@ const canSeeImg = (copyFileType)=>{
     return false
   }
 }
+onMounted(()=>{
+  console.log('audio',audio.value);
+})
+onDeactivated(()=>{
+  console.log('audio',audio.value);
+})
 </script>
 
 <style scoped>

+ 10 - 13
src/components/Pagination/index.vue

@@ -1,16 +1,8 @@
 <template>
   <div :class="{ 'hidden': hidden }" class="pagination-container">
-    <el-pagination
-      :background="background"
-      v-model:current-page="currentPage"
-      v-model:page-size="pageSize"
-      :layout="layout"
-      :page-sizes="pageSizes"
-      :pager-count="pagerCount"
-      :total="total"
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-    />
+    <el-pagination :background="background" v-model:current-page="currentPage" 
+      :layout="layout"  :pager-count="pagerCount" :total="total" @size-change="handleSizeChange"
+      @current-change="handleCurrentChange" />
   </div>
 </template>
 
@@ -72,7 +64,7 @@ const pageSize = computed({
   get() {
     return props.limit
   },
-  set(val){
+  set(val) {
     emit('update:limit', val)
   }
 })
@@ -96,10 +88,15 @@ function handleCurrentChange(val) {
 
 <style scoped>
 .pagination-container {
+  width: auto;
   background: #fff;
-  padding: 32px 16px;
+  padding: 302px 16px;
 }
+
 .pagination-container.hidden {
   display: none;
 }
+.pagination-container .el-pagination{
+  right: 20px;
+}
 </style>

+ 5 - 2
src/components/historyList/index.vue

@@ -49,7 +49,7 @@
   </div>
 </template>
     <script setup>
-import { nextTick, reactive, ref, toRaw, toRefs, watch } from "vue";
+import { nextTick, reactive, ref, toRaw, toRefs, watch,inject } from "vue";
 import FileEdit from "../../views/myfile/components/FileEdit.vue";
 import { ElMessage } from "element-plus";
 import fileImg from "@/assets/images/file-img.png";
@@ -59,6 +59,7 @@ import { listVersion } from "@/api/biz/version";
 import eyes from "@/assets/images/eyes.png";
 import useUserStore from "@/store/modules/user";
 import { defineEmits } from "vue";
+
 const props = defineProps({
   openFile: {
     type: Boolean,
@@ -91,7 +92,7 @@ watchEffect(() => {
   console.log('props.historyTotal', props.historyTotal)
   total.value=props.historyTotal
 });
-
+const addFileTab = inject("addFileTab");
 const pageNum=ref(1)
 const pageSize=ref(10)
 const defaultProps = {
@@ -136,6 +137,8 @@ const clickIndex = ref("");
 const emit = defineEmits(["changeMsgClose"]);
 //点击预览
 const previewFileClick = (item) => {
+  console.log('preitem',item);
+  // addFileTab(item,0);
   emit("changeMsgClose", true, item);
   isOpen.value = false;
 };

+ 67 - 40
src/layout/indexCommon.vue

@@ -7,8 +7,11 @@
             <img class="logoImg" src="@/assets/images/logos.png" /><span>聚合智慧文档管理系统</span>
           </div>
           <div class="search">
-            <el-input v-model="searchText" maxlength="32" class="w-50 m-2" size="small" placeholder="搜索文件"
-              suffix-icon="Search" clearable @keyup.enter="toSearch" />
+            <el-input style="position: relative;" v-model="searchText" maxlength="32" class="w-50 m-2" size="small" placeholder="搜索文件" clearable
+              @keyup.enter="toSearch" />
+            <el-icon style="position: absolute;top: 15px;left: 1190px;z-index: 1;" @click="toSearch">
+              <Search />
+            </el-icon>
           </div>
           <div>
             <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
@@ -355,40 +358,41 @@ const toSearch = async () => {
     keyword: searchText.value,
     isAsc: "asc",
     orderByColumn: "createTime",
-    pageSize: 3,
+    pageSize: 10,
     pageNum: 1,
   };
   const res = await flieSearch(query);
   console.log("res", res);
   if (res) {
     const itemData = {
-      label:'全局搜索',
-      path:'/search',
-      data:{
-          searchData: JSON.stringify(res),
-          searchText: searchText.value,
-        }
+      name: '全局搜索',
+      path: 'search',
+      clickRowId: {
+        searchData: res,
+        searchText: searchText.value,
+      }
     }
+    addFolderAdd(itemData)
     // console.log("res", res);
     // console.log("router", route.path);
-    if (route.path != "/search") {
-      let listArr = JSON.stringify(res);
-      router.push({
-        name: 'search',
-        params: {
-          listArr: listArr,
-          searchText: searchText.value
-        }
-      });
-    } else {
-      router.replace({
-        path: "/allback",
-        query: {
-          searchData: JSON.stringify(res),
-          searchText: searchText.value,
-        },
-      });
-    }
+    // if (route.path != "/search") {
+    //   let listArr = JSON.stringify(res);
+    //   router.push({
+    //     name: 'search',
+    //     params: {
+    //       listArr: listArr,
+    //       searchText: searchText.value
+    //     }
+    //   });
+    // } else {
+    //   router.replace({
+    //     path: "/allback",
+    //     query: {
+    //       searchData: JSON.stringify(res),
+    //       searchText: searchText.value,
+    //     },
+    //   });
+    // }
   }
 };
 const emits = defineEmits(["setLayout"]);
@@ -511,15 +515,38 @@ const clickPath = (index, items) => {
 };
 const clickTab = (item) => {
   let url = toRaw(item)
-  // console.log("item", url);
+  console.log("item", url);
   setTimeout(() => {
     console.log("toFileData.value", toFileData.value);
     if (toFileData.value) {
-      localStorage.setItem("inChat",0)
-      // console.log(
-      //   "tofolder",
-      //   JSON.stringify(toRaw(toFileData.value.clickRowId))
-      // );
+      localStorage.setItem("inChat", 0)
+      // 去全文搜索单独判断
+      if (toFileData.value.name == "全局搜索" || toFileData.value.label == "全局搜索") {
+        // console.log("clickRowId.value", JSON.stringify(toRaw(toFileData.value).clickRowId));
+        editableTabsValue.value = toFileData.value.path
+        isAlive.value = true
+        console.log('route', route.path);
+        // 如果当前已经在search就跳到中转页面
+        if (route.path == "/search") {
+          router.push({
+            path: '/allback',
+            query: {
+              // row: JSON.stringify(toRaw(toFileData.value.clickRowId)),
+              clickRowId: JSON.stringify(toRaw(toFileData.value).clickRowId),
+            },
+          });
+        } else {
+          // 否则去search
+          router.push({
+            name: toFileData.value.path,
+            state: {
+              // row: JSON.stringify(toRaw(toFileData.value.clickRowId)),
+              clickRowId: JSON.stringify(toRaw(toFileData.value).clickRowId),
+            },
+          });
+        }
+        return
+      }
       editableTabsValue.value = toFileData.value.path
       router.push({
         path: toFileData.value.path,
@@ -547,7 +574,7 @@ const clickTab = (item) => {
     } else {
       editableTabsValue.value = url
       router.push({
-        path: item+'?dirId='+item,
+        path: item + '?dirId=' + item,
       });
     }
   }, 0);
@@ -571,7 +598,6 @@ const filePaneClick = (item) => {
   localStorage.setItem("inChat", 0)
   console.log("filePaneClickitem", item);
   isSwitchFileIframe.value = true
-  console.log(98588546543);
   const row = toRaw(item);
   const arr = iFrameData.value.map((par) => {
     if (par.id === row.id) {
@@ -602,7 +628,7 @@ const filePaneClick = (item) => {
   //   console.log("editableTabsValue", editableTabsValue.value);
 };
 // 创建文件的标签
-const addFileTab = (data,bool) => {
+const addFileTab = (data, bool) => {
   // console.log("fileTabdata", data);
   console.log();
   const thisData = JSON.parse(JSON.stringify(toRaw(data)));
@@ -673,9 +699,9 @@ const addTab = (data) => {
   }
 };
 const addFolderAdd = (data) => {
-  // console.log("data", data);
+  console.log("data", data);
   const arr = toRaw(editableTabs.value);
-  if (!arr.some((item) => item.label == data.clickRowId.dirName)) {
+  if (!arr.some((item) => item.label == data.clickRowId.dirName || item.label == data.name)) {
     editableTabs.value.push({
       label: data.name,
       path: data.path,
@@ -1026,7 +1052,8 @@ watch(() => editableTabsValue.value, (newValue, oldValue) => {
     height: 1000px !important;
   }
 }
-:deep(.el-tabs--card>.el-tabs__header){
-  border-bottom:none !important ;
+
+:deep(.el-tabs--card>.el-tabs__header) {
+  border-bottom: none !important;
 }
 </style>

+ 4 - 2
src/router/index.js

@@ -118,14 +118,16 @@ export const constantRoutes = [{
 		},
 	},
 	{
-		path: '/search/:listArr/:searchText',
+		// path: '/search/:listArr/:searchText',
+		path: '/search',
 		component: () => import('@/views/search/index.vue'),
 		name: 'search',
+		props: true,
 		meta: {
 			title: '全文搜索',
 			icon: 'dashboard'
 		},
-		props: true
+		// props: true
 	},
 	// {
 	// 	path: "/myfile",

+ 52 - 52
src/views/collect/index.vue

@@ -337,7 +337,7 @@ onMounted(async () => {
   await getList();
   await getCollectList();
   await tabchange('second')
-  rowDrop();
+  // rowDrop();
   // 添加监听,点击其他地方关闭菜单
   window.addEventListener("click", closeMenu, true);
   window.addEventListener("click", closeFlieRMenu, true);
@@ -462,58 +462,58 @@ const reTabName = async () => {
   console.log("rename", res);
 };
 //拖拽事件
-const rowDrop = () => {
-  const el = document.querySelector(".tabSign .el-tabs__nav"); //找到想要拖拽的那一列
-  // console.log('el',el);
-  const _this = toRaw(JSON.parse(JSON.stringify(tabList.value))); //否则下面遍历会出错
-  // console.log("_this", _this);
-  Sortable.create(el, {
-    filter: "#tab-first,#tab-second", //限制哪些可以拖动
-    preventOnFilter: true,
-    onChoose: function (/**Event*/ evt) {
-      evt.oldIndex;
-      // console.log("evt", evt);
-    },
-    //结束拖拽事件
-    async onEnd({ newIndex, oldIndex, to }) {
-      //拿到交换前后对应的index
-      const ni = newIndex - 3;
-      const oi = oldIndex - 3;
-      let list = toRaw(tabList.value);
-      list = list.filter((item) => item); //筛除空数据
-      console.log("list", list);
-      console.log("newIndex", ni);
-      console.log("oldIndex", oi);
-      const newList = list.map((item, index) => {
-        console.log("item", item);
-        if (oi > ni) {
-          // 从后往前,需要将oi和ni之间的+1
-          if (index === oi) {
-            item.orderNum = _this[ni].orderNum;
-            // console.log("oiitem", item);
-          } else if (ni < index < oi) {
-            item.orderNum += 1;
-          }
-        } else if (oi < ni) {
-          // 从前往后,需要将oi和ni之间的-1
-          if (index === oi) {
-            item.orderNum = _this[ni].orderNum;
-            // console.log("oiitem", item);
-          } else if (oi < index < ni) {
-            item.orderNum -= 1;
-          }
-        }
+// const rowDrop = () => {
+//   const el = document.querySelector(".tabSign .el-tabs__nav"); //找到想要拖拽的那一列
+//   // console.log('el',el);
+//   const _this = toRaw(JSON.parse(JSON.stringify(tabList.value))); //否则下面遍历会出错
+//   // console.log("_this", _this);
+//   Sortable.create(el, {
+//     filter: "#tab-first,#tab-second", //限制哪些可以拖动
+//     preventOnFilter: true,
+//     onChoose: function (/**Event*/ evt) {
+//       evt.oldIndex;
+//       // console.log("evt", evt);
+//     },
+//     //结束拖拽事件
+//     async onEnd({ newIndex, oldIndex, to }) {
+//       //拿到交换前后对应的index
+//       const ni = newIndex - 3;
+//       const oi = oldIndex - 3;
+//       let list = toRaw(tabList.value);
+//       list = list.filter((item) => item); //筛除空数据
+//       console.log("list", list);
+//       console.log("newIndex", ni);
+//       console.log("oldIndex", oi);
+//       const newList = list.map((item, index) => {
+//         console.log("item", item);
+//         if (oi > ni) {
+//           // 从后往前,需要将oi和ni之间的+1
+//           if (index === oi) {
+//             item.orderNum = _this[ni].orderNum;
+//             // console.log("oiitem", item);
+//           } else if (ni < index < oi) {
+//             item.orderNum += 1;
+//           }
+//         } else if (oi < ni) {
+//           // 从前往后,需要将oi和ni之间的-1
+//           if (index === oi) {
+//             item.orderNum = _this[ni].orderNum;
+//             // console.log("oiitem", item);
+//           } else if (oi < index < ni) {
+//             item.orderNum -= 1;
+//           }
+//         }
 
-        return item;
-      });
-      console.log("newList", newList);
+//         return item;
+//       });
+//       console.log("newList", newList);
 
-      const res = await sortLabel(newList);
-      console.log("res", res);
-      await getList();
-    },
-  });
-};
+//       const res = await sortLabel(newList);
+//       console.log("res", res);
+//       await getList();
+//     },
+//   });
+// };
 
 const tabchange = async (labelId) => {
   console.log("labelId", toRaw(labelId));
@@ -739,7 +739,7 @@ const setIcon = (fileType) => {
 }
 .collapseItem_title {
   position: relative;
-  left: 40px;
+  left: 60px;
   color: #2e6bc8;
   font-family: Inter-Medium;
   font-size: 12px;

+ 197 - 96
src/views/department/MyFile.vue

@@ -4,15 +4,9 @@
             <div class="settingBox" @click="mouseClick">
                 <!-- 设置盒子顶部搜索 -->
                 <div class="topSearch">
-                    <div style="position: relative;width: 80%;">
-                        <el-input v-model="searchFire" class="searchFire" size="large" placeholder="搜索文件"
-                           />
-                        <el-icon style="color: gray;display: inline-block;position: absolute;top: 8px;right: 5px;">
-                            <Search />
-                        </el-icon>
-                    </div>
+                    <div class="spaceName">{{spaceName}}</div>
                     <div>
-                        <el-icon @click="createNewMenu(1,true)" color="#505870" size="24">
+                        <el-icon @click="createNewMenu(1)" color="#505870" size="24">
                             <Plus />
                         </el-icon>
                         <!-- @click="createNewFile" -->
@@ -20,36 +14,44 @@
                 </div>
                 <!-- 方块点击盒子 -->
                 <div
-                    style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;height: 75vh;align-content: flex-start;overflow-y: auto;">
+                    style="height: 75vh;overflow-y: auto;">
+                    <div class="searchBox">
+                        <el-input v-model="searchFire" class="searchFire" size="large" placeholder="搜索文件" />
+                        <el-icon class="SearchIcon">
+                            <Search />
+                        </el-icon>
+                    </div>
                     <!-- v-for盒子 -->
-                    <template v-for="(item, index) in fileMenu" :key="index">
-                        <div class="setBox" @click="changeFile(item, index)">
-                            <el-dropdown trigger="click" class="selectChe">
-                                <span class="el-dropdown-link">
-                                    ...
-                                </span>
-                                <template #dropdown>
-                                    <el-dropdown-menu>
-                                        <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
-                                        <el-dropdown-item v-if="item.dirType == '1'" @click="delName(item, index)">删除</el-dropdown-item>
-                                    </el-dropdown-menu>
-                                </template>
-                            </el-dropdown>
-                          <div class="left_fileBox">
-                            <el-tooltip
-                                  class="box-item tool-tip"
-                                  effect="dark"
-                                  placement="top-start"
-                                  v-if="item.encryptLevel"
-                               > 
-                               <template #content> 安全级别: {{ item.encryptLevel == 'L1'?'敏感':(item.encryptLevel == 'L2'?'涉密':(item.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
-                               <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;"></el-tooltip>
-                               <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;" v-else>
-                              <p class="ellipsis-text shouzhi">{{ item.dirName }}</p>
-                              <img class="levelImg" v-if="item.isEncrypt === 'Y'" :src="getLevelImg(item.encryptLevel)" alt="">
-                          </div>
-                        </div>
-                    </template>
+                    <div style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;align-content: flex-start;overflow-y: auto;">
+                        <template v-for="(item, index) in fileMenu" :key="index">
+                            <div class="setBox" @click="changeFile(item, index)">
+                                <el-dropdown trigger="click" class="selectChe">
+                                    <span class="el-dropdown-link">
+                                        ...
+                                    </span>
+                                    <template #dropdown>
+                                        <el-dropdown-menu>
+                                            <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
+                                            <el-dropdown-item v-if="item.dirType == '1'" @click="delName(item, index)">删除</el-dropdown-item>
+                                        </el-dropdown-menu>
+                                    </template>
+                                </el-dropdown>
+                            <div class="left_fileBox">
+                                <el-tooltip
+                                    class="box-item tool-tip"
+                                    effect="dark"
+                                    placement="top-start"
+                                    v-if="item.encryptLevel"
+                                > 
+                                <template #content> 安全级别: {{ item.encryptLevel == 'L1'?'敏感':(item.encryptLevel == 'L2'?'涉密':(item.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
+                                <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;"></el-tooltip>
+                                <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;" v-else>
+                                <p class="ellipsis-text shouzhi">{{ item.dirName }}</p>
+                                <img class="levelImg" v-if="item.isEncrypt === 'Y'" :src="getLevelImg(item.encryptLevel)" alt="">
+                            </div>
+                            </div>
+                        </template>
+                    </div>
                 </div>
                 <div class="expansion">
                     <div class="top_box">
@@ -87,21 +89,21 @@
                                 </span>
                             </div>
                         </div>
-                        <div v-if="thisFolder.dirType"
-                            style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
+                        <div v-if="!thisFolder.dirType"
+                            style="display: flex;width: 82px;opacity:0.5;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
                                     style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
-                                    @click="createNewMenu(0)">
+                                >
                                     <Plus />
                                 </el-icon>
                             </div>
-                            <div style="margin-left: 5px;" @click="createNewMenu(0)">
+                            <div style="margin-left: 5px;">
                                 <span style="font-size: 14px;" class="shouzhi">新建</span>
                             </div>
                         </div>
                         <div v-else
-                            style="display: flex;opacity:0.5;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
+                            style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
                                     style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
@@ -151,10 +153,11 @@
                 <!-- </div> -->
                 <!-- 展示文件夹盒子 -->
                 <!-- 文件夹 -->
-                <div class="detailBox file-jia" @click="mouseClick">
+                <div class="showBox">
+                  <div class="detailBox file-jia" @click="mouseClick">
                     <el-collapse v-model="folder">
                         <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
-                            <el-table v-if="folderGrid" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
+                            <el-table v-if="folderGrid" :data="folderList" height="37vh" style="width: 100%" :scrollbar-always-on="true"
                                 @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
                                 @row-contextmenu="folderRClick" ref="taskTableRef">
                                 <el-table-column type="selection" width="55" />
@@ -167,7 +170,7 @@
                                             <img v-else @click.stop="delCollect(scope.row,true)" src="../../assets/images/yellowstar.png" alt="" class="juli">
                                             <img src="../../assets/images/fileBox.png" style="width: 20px;height: 24px;"
                                                 alt="" class="juli">
-                                                 <el-tooltip
+                                                <el-tooltip
                                                     class="box-item"
                                                     effect="dark"
                                                     placement="top"
@@ -175,7 +178,7 @@
                                                     v-if="scope.row.encryptLevel"
                                                 > 
                                                 <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
-                                                   <span class="shouzhi"> {{ scope.row.dirName }}</span>
+                                                <span class="shouzhi"> {{ scope.row.dirName }}</span>
                                                 </el-tooltip>
                                                 <span class="shouzhi" v-else> {{ scope.row.dirName }}</span>
                                         </span>
@@ -222,7 +225,7 @@
                     <div class="fileTable">
                         <el-collapse v-model="files" >
                             <el-collapse-item title="文件" name="2" class="">
-                                <el-table v-if="fileGrid" :data="fileList" height="250" :scrollbar-always-on="true" style="width: 100%;position: relative;"
+                                <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="10" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid" height="38vh" :data="fileList" :scrollbar-always-on="true" style="width: 100%"
                                     @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
                                     @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
                                     <el-table-column type="selection" width="55" />
@@ -234,17 +237,16 @@
                                             </el-icon>
                                             <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="" class="juli">
                                             <img :src="getImage(scope.row.fileType)" alt="" class="juli">
-                                                  <el-tooltip
-                                                    class="box-item"
-                                                    effect="dark"
-                                                    placement="top"
-                                                    :show-after="1000"
-                                                    v-if="scope.row.encryptLevel"
-                                                >
-                                                <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
-                                                   <span class="shouzhi">{{ scope.row.fileName }}</span>
-                                                </el-tooltip>
-                                                <span class="shouzhi" v-else>{{ scope.row.fileName }}</span>
+                                                <el-tooltip
+                                                        class="box-item"
+                                                        effect="dark"
+                                                        placement="top"
+                                                        :show-after="1000"
+                                                        :content="scope.row.fileName"
+                                                    >
+                                                    <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
+                                                    <span class="shouzhi">{{ scope.row.fileName }}</span>
+                                                    </el-tooltip>
 
                                         </span>
                                         </template>
@@ -284,6 +286,8 @@
                             </p>
                         </div>
                     </div>
+
+                </div>
                     </div>
                 <div v-else>
                     <div>
@@ -303,7 +307,7 @@
             <div>
                 <CreateFloder v-if="folderCase" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :thisFolderRole="thisFolderRole"
-                    :getAllTop="getAllTop">
+                    :refreshFile="refreshFile">
                 </CreateFloder>
             </div>
             <!-- 文件上传 -->
@@ -417,8 +421,12 @@ import fileSpace from '../../api/filespace/fileSpace';
 import { getLeveldetail } from '../../api/level/level';
 import { encrypt, decrypt } from "@/utils/jsencrypt";
 import Cookies from "js-cookie";
+import elTableInfiniteScroll from 'el-table-infinite-scroll'
 
 export default {
+    directives: {
+            'el-table-infinite-scroll': elTableInfiniteScroll
+    },
     setup() {
         const { proxy } = getCurrentInstance();
         let fileTrees = ref(false)//filetree父传子
@@ -527,18 +535,6 @@ export default {
                 img: ImgFile.previewIcon,
                 name: "预览"
             },
-            // {
-            //     img: ImgFile.addolder,
-            //     name: "移动到...",
-            // },
-            // {
-            //     img: ImgFile.copy,
-            //     name: "复制到...",
-            // },
-            // {
-            //     img: ImgFile.clipboard,
-            //     name: "粘贴"
-            // },
             {
                 img: ImgFile.collect,
                 name: "收藏"
@@ -551,22 +547,22 @@ export default {
                 img: ImgFile.textbox,
                 name: "重命名"
             },
-            // {
-            //     img: ImgFile.goon,
-            //     name: "发送"
-            // },
-            // {
-            //     img: ImgFile.share,
-            //     name: "分享"
-            // },
+            {
+                img: ImgFile.goon,
+                name: "发送"
+            },
+            {
+                img: ImgFile.share,
+                name: "分享"
+            },
             {
                 img: ImgFile.notePencil,
                 name: "在线编辑"
             },
-            // {
-            //     img: ImgFile.togger,
-            //     name: "协作"
-            // },
+            {
+                img: ImgFile.togger,
+                name: "协作"
+            },
             {
                 img: ImgFile.icc,
                 name: "文字识别"
@@ -583,6 +579,22 @@ export default {
         let nameForm = ref({
             name: ""
         })
+        let ordinaryFolder = ref([ {
+                img: ImgFile.previewIcon,
+                name: "预览"
+            },
+            {
+                img: ImgFile.collect,
+                name: "收藏"
+            },
+            {
+                img: ImgFile.downLoad,
+                name: "下载"
+            },
+            {
+                img: ImgFile.textbox,
+                name: "重命名"
+            },])
         let fileNameChange = ref(false)
         let fileMenu = ref([])
         let copyRow = ref({})
@@ -615,6 +627,10 @@ export default {
         const addTab = inject("addTab");
         const addFileTab = inject("addFileTab");
         const addFolderAdd = inject("addFolderAdd");
+        const filePageNum = ref(1) //获取文件分页
+        const tableBeEnd = ref(true)//控制下拉是否到底
+        const tableTotal = ref(0)//表格数据总数
+        const spaceName = ref()
         // 获取文件夹,中栏,文件
         function getAllTop() {
             documents.getTop(2).then(res => {
@@ -625,6 +641,7 @@ export default {
                 newSpaceId.value = userMe[0].spaceId//变化
                 newDirId.value = userMe[0].dirId//变化
                 topPath.value = userMe[0].dirPath
+                spaceName.value = userMe[0].dirPath
                 let obj = {
                     pageNum: 1,
                     pageSize: 10
@@ -666,7 +683,7 @@ export default {
           const addData = {
                 path:'/department'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row
@@ -733,6 +750,7 @@ export default {
         // 文件名表格每一行点击事件
         function handleRowClick(row, col, e) {
             console.log('row',row);
+            // console.log('thisFolder',thisFolder.value);
             isFolder.value = "N"
             clickRow.value = row
             e.preventDefault();
@@ -1062,6 +1080,10 @@ export default {
 
         // 文件夹每行点击事件
         function folderClick(row, list) {
+            // 初始化分页数据
+            tableBeEnd.value = true
+            filePageNum.value = 1
+            tableTotal.value = 0
             // 上一级dirId就是下一级的parentId
             // 判断是点击打开还是右键菜单打开
             if(row){
@@ -1081,20 +1103,32 @@ export default {
             // console.log('topPath',toRaw(topPath.value));
             newDirId.value = row.dirId
             newSpaceId.value = row.spaceId
+            const query = `${newDirId.value}?pageSize=10&pageNum=${filePageNum.value}`
             documents.getALLdocument({
                 parentId: newDirId.value - 0,
                 spaceId: newSpaceId.value - 0
             }).then(res => {
                 folderList.value = res.data
                 if (res.data.length === 0) {
-                    myfile.getById(newDirId.value).then(res => {
+                   myfile.getById(query).then(res => {
                         if (res.code === 200) {
+                            tableTotal.value =res.total
+                            if(res.rows.length<res.total){
+                                //第一次拿到的数据少于总数开启下拉事件
+                                tableBeEnd.value = false
+                            }
                             fileList.value = res.rows
                         }
                     })
                 } else {
-                    myfile.getById(newDirId.value).then(res => {
+                    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
+                            }
                             fileList.value = JSON.parse(JSON.stringify(res.rows))
                             // console.log('fileList',toRaw(fileList.value));
                         }
@@ -1226,6 +1260,9 @@ export default {
             if(thisRole.value.length){
                 arr = publicRightMenuRole(toRaw(thisRole.value),arr)
             }
+            if(thisFolder.value.dirType == '1'){
+                arr = ordinaryFolder.value
+            }
             if(arr.length<1){
                 noMenuItem.value = true
             }else{
@@ -1493,6 +1530,34 @@ export default {
                 reader.readAsText(res);
             })
         }
+        // 触底加载事件
+        const setScroll =async ()=>{
+            console.log('setScroll','到底喽');
+
+            // console.log('tableBeEnd.value',tableBeEnd.value);
+            filePageNum.value = filePageNum.value+1
+            const query = `${thisFolder.value.dirId}?pageSize=10&pageNum=${filePageNum.value}`
+            // -------------先禁止掉事件 定时器1秒钟后才能再次触发
+            tableBeEnd.value = true
+            
+            // --------------------
+            const res = await myfile.getById(query)
+            console.log('setScrollres',res);
+            if (res.code === 200) {
+                // const newarr = res.rows.concat(toRaw(fileList.value))
+                const newarr = toRaw(fileList.value).concat(res.rows)
+                console.log('newarr',newarr);
+                fileList.value = JSON.parse(JSON.stringify(newarr))
+                if(newarr.length < tableTotal.value){
+                    //获取后的数量<total就可以再次获取
+                    setTimeout(()=>{
+                        tableBeEnd.value = false 
+                    },1000)
+                }
+            }
+            // console.log('query',query);
+            // console.log('fileList',fileList.value);
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1506,9 +1571,9 @@ 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);
+                        // console.log('tores',res);
                         thisFolder.value = res.data
                         refreshFile()
                     })
@@ -1707,7 +1772,13 @@ export default {
             downLoadfile,
             addTab,
             addFileTab,
-            addFolderAdd
+            addFolderAdd,
+            ordinaryFolder,
+            filePageNum,
+            setScroll,
+            tableBeEnd,
+            tableTotal,
+            spaceName
         }
     },
     watch: {
@@ -1769,16 +1840,30 @@ p {
     height: 48px;
     background-color: #EBEFF6;
     display: flex;
-    justify-content: space-around;
+    justify-content: space-between;
     align-items: center;
+    padding-left: 16px;
+    padding-right: 16px;
 }
 
 .searchFire {
     // width: 248px;
-    flex: 1;
+    width: 100%;
     height: 32px;
 }
+.searchBox{
+    display: flex;
+    justify-content: space-between;
+    position: relative;
+    padding: 8px 16px;
+    .SearchIcon{
+        color: gray;
+        position: absolute;
+        right: 5%;
+        top: 35%;
 
+    }
+}
 .setBox {
     width: 88px;
     height: 112px;
@@ -1798,6 +1883,7 @@ p {
     }
 }
 
+
 .setBox:hover {
     background-color: #EEF9FF;
 }
@@ -1887,6 +1973,8 @@ p {
     background-color: #F6F7F9;
 
     .topPath {
+        margin-left: 4px;
+        cursor: pointer;
         color: #6F85B5;
         font-size: 12px;
     }
@@ -1899,18 +1987,31 @@ p {
 
 .detailBox {
     width: 100%;
-    height: 270px;
+    height: 50%;
+    // overflow-y: auto;
+}
+.showBox{
+    height: calc(100% - 48px - 24px);
 }
 
 :deep(.el-dialog__header) {
     background-color: #ECEFF7;
     margin-right: 0px;
 }
+:deep(.el-collapse-item__content) {
+    // height: 235px;
+    overflow-y: auto;
+    padding-bottom: 0;
+}
+:deep(.el-scrollbar__wrap) {
+    height: 100% !important; 
+    // overflow-y: auto;
+}
 
 .fileTable {
-    height: 100%;
-    overflow-y: hidden;
-    margin-top: 55px;
+    height: 50%;
+    // overflow-y: auto;
+    // margin-top: 55px;
 }
 
 .setCli {
@@ -2040,7 +2141,7 @@ p {
 }
 
 :deep(.el-collapse-item__wrap) {
-    height: 300px;
+    // height: 300px;
 }
 
 // 隐藏全选按钮

+ 3 - 3
src/views/department/modalComponebts/CreateFloder.vue

@@ -94,7 +94,7 @@ export default {
             required: true,
             default: ()=>{},
         },
-        getAllTop: Function,
+        refreshFile: Function,
     },
     setup(props, { emit }) {
         const {
@@ -177,7 +177,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 } else {
                     let query = {}
@@ -221,7 +221,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 }
             }

+ 7 - 7
src/views/highSearch/SupplierAllBack.vue

@@ -9,13 +9,13 @@ import { useRouter, useRoute } from "vue-router";
 onMounted(() => {
   let router = useRouter();
   let route = useRoute();
-  const searchText = route.params.searchText;
-  const searchData = route.params.searchData;
-  router.replace({
-    path: "/search",
-    query: {
-      searchData: searchData,
-      searchText: searchText,
+  const JparData = route.query.clickRowId;
+  // console.log(JparData, 'allbackparData');
+  router.push({
+    name: 'search',
+    state: {
+      // row: JSON.stringify(toRaw(toFileData.value.clickRowId)),
+      clickRowId: JparData,
     },
   });
 });

+ 1 - 0
src/views/login.vue

@@ -277,6 +277,7 @@ async function handleLogin() {
           console.log("infoRes", infoRes);
           // console.log('loginres',res);
           if (infoRes.repass) {
+            // Cookies.remove('Admin-Token')
             //需要该密
             showEdit.value = true;
             loading.value = false;

+ 89 - 41
src/views/myfile/MyFile.vue

@@ -7,7 +7,7 @@
                     
                     <div class="spaceName">{{spaceName}}</div>
                     <div>
-                        <el-icon @click="createNewMenu(0)" color="#505870" size="24">
+                        <el-icon @click="createNewMenu(1)" color="#505870" size="24">
                             <Plus />
                         </el-icon>
                         <!-- @click="createNewFile" -->
@@ -34,7 +34,7 @@
                                 <template #dropdown>
                                     <el-dropdown-menu>
                                         <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
-                                        <el-dropdown-item @click="delName(item, index)">删除</el-dropdown-item>
+                                        <el-dropdown-item v-if="!item.encryptLevel" @click="delName(item, index)">删除</el-dropdown-item>
                                     </el-dropdown-menu>
                                 </template>
                             </el-dropdown>
@@ -106,7 +106,7 @@
                                 </span>
                             </div>
                         </div>
-                        <div v-if="thisFolder.dirType"
+                        <div v-if="thisFolder.dirType" class="shouzhi"
                             style="display: flex;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
@@ -119,16 +119,16 @@
                                 <span style="font-size: 14px;" class="shouzhi">新建</span>
                             </div>
                         </div>
-                        <div v-else
+                        <div v-else class="shouzhi"
                             style="display: flex;opacity:0.5;width: 82px;height: 32px;justify-content: flex-start;align-items: center;">
                             <div style="margin-left: 5px;">
                                 <el-icon
                                     style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
-                                    @click="createNewMenu(0)">
+                                    >
                                     <Plus />
                                 </el-icon>
                             </div>
-                            <div style="margin-left: 5px;" @click="createNewMenu(0)">
+                            <div style="margin-left: 5px;">
                                 <span style="font-size: 14px;" class="shouzhi">新建</span>
                             </div>
                         </div>
@@ -137,11 +137,11 @@
                             <div style="margin-left: 5px;">
                                 <el-icon
                                     style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
-                                    @click="createNewMenu(1)">
+                                    @click="thisFolder.dirType?createNewMenu(2):null">
                                     <Plus />
                                 </el-icon>
                             </div>
-                            <div style="margin-left: 5px;" @click="createNewMenu(1)">
+                            <div style="margin-left: 5px;" @click="thisFolder.dirType?createNewMenu(1):null">
                                 <span style="font-size: 14px;" class="shouzhi">新建文档</span>
                             </div>
                         </div>
@@ -186,9 +186,9 @@
                 <!-- 文件夹 -->
                 <div class="showBox">
                     <div class="detailBox file-jia" @click="mouseClick">
-                        <el-collapse v-model="folder" style="height: 100%;">
+                        <el-collapse v-model="folder" >
                             <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
-                                <el-table v-if="folderGrid" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
+                                <el-table v-if="folderGrid" height="37vh" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
                                     @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
                                     @row-contextmenu="folderRClick" ref="taskTableRef">
                                     <el-table-column type="selection" width="55" />
@@ -255,9 +255,9 @@
                         </div>
                         <!-- 文件 -->
                         <div class="fileTable">
-                            <el-collapse v-model="files" style="height: 100%;" >
-                                <el-collapse-item title="文件" name="2" class="">
-                                    <el-table v-if="fileGrid" :data="fileList" :scrollbar-always-on="true" style="width: 100%;position: relative;"
+                            <el-collapse v-model="files"  >
+                                <el-collapse-item  title="文件" name="2" class="custom-collapse-item">
+                                     <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="10" :infinite-scroll-disabled="tableBeEnd"  v-if="fileGrid" height="38vh" :data="fileList" :scrollbar-always-on="true" style="width: 100%;"
                                         @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
                                         @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
                                         <el-table-column type="selection" width="55" />
@@ -274,12 +274,12 @@
                                                         effect="dark"
                                                         placement="top"
                                                         :show-after="1000"
-                                                        v-if="scope.row.encryptLevel"
+                                                        :content="scope.row.fileName"
                                                     >
-                                                    <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
+                                                    <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
                                                     <span class="shouzhi">{{ scope.row.fileName }}</span>
                                                     </el-tooltip>
-                                                    <span class="shouzhi" v-else>{{ scope.row.fileName }}</span>
+                                                    <!-- <span class="shouzhi">{{ scope.row.fileName }}</span> -->
                                             </span>
                                             </template>
                                         </el-table-column>
@@ -339,7 +339,7 @@
             <div>
                 <CreateFloder v-if="folderCase" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :thisFolderRole="thisFolderRole"
-                    :getAllTop="getAllTop">
+                    :refreshFile="refreshFile">
                 </CreateFloder>
             </div>
             <!-- 文件上传 -->
@@ -389,7 +389,7 @@
                     :copyFolderName="copyFolderName" @getRename="getRename">
                 </FolderReName>
             </div>
-            <ImgPreview  :previewData="previewData" :copyFileType="copyFileType" :showPreview="showPreview"
+            <ImgPreview :previewData="previewData" :copyFileType="copyFileType" :showPreview="showPreview"
                 @closeImgPreview="closeImgPreview"></ImgPreview>
             <div>
                 <FileTree v-if="fileTrees" :fileTrees="fileTrees" :newSpaceId="newSpaceId" :fileId="clickRowId"
@@ -457,8 +457,12 @@ import fileSpace from '../../api/filespace/fileSpace';
 import { getLeveldetail } from '../../api/level/level';
 import { encrypt, decrypt } from "@/utils/jsencrypt";
 import Cookies from "js-cookie";
+import elTableInfiniteScroll from 'el-table-infinite-scroll'
 
 export default {
+     directives: {
+        'el-table-infinite-scroll': elTableInfiniteScroll
+    },
     setup() {
         const { proxy } = getCurrentInstance();
         let fileTrees = ref(false)//filetree父传子
@@ -524,18 +528,6 @@ export default {
             }
         ])
         let useMenu = ref([
-            // {
-            //     img: ImgFile.copy,
-            //     name: "复制"
-            // },
-            // {
-            //     img: ImgFile.clipboard,
-            //     name: "粘贴"
-            // },
-            {
-                img: ImgFile.share,
-                name: "分享给"
-            },
             {
                 img: ImgFile.trash,
                 name: "删除"
@@ -655,6 +647,9 @@ export default {
         const addFileTab = inject("addFileTab");
         const addFolderAdd = inject("addFolderAdd");
         const spaceName = ref()
+        const filePageNum = ref(1) //获取文件分页
+        const tableBeEnd = ref(true)//控制下拉是否到底
+        const tableTotal = ref(0)//表格数据总数
         // 获取文件夹,中栏,文件
         function getAllTop() {
             documents.getTop(3).then(res => {
@@ -708,7 +703,7 @@ export default {
             const addData = {
                 path:'/myfile'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row
@@ -993,7 +988,7 @@ export default {
             anyP.value = false
         }
         function createNewMenu(num) {
-            if(num==1) {
+            if(num==2) {
                 newAdd.value = true
             }else{
                 oneOrTwo.value = num
@@ -1176,6 +1171,10 @@ export default {
 
         // 文件夹每行点击事件
         function folderClick(row, list) {
+            // 初始化分页数据
+            tableBeEnd.value = true
+            filePageNum.value = 1
+            tableTotal.value = 0
             // 上一级dirId就是下一级的parentId
             // 判断是点击打开还是右键菜单打开
             if(row){
@@ -1194,20 +1193,32 @@ export default {
             // console.log('topPath',toRaw(topPath.value));
             newDirId.value = row.dirId
             newSpaceId.value = row.spaceId
+            const query = `${newDirId.value}?pageSize=10&pageNum=${filePageNum.value}`
             documents.getALLdocument({
                 parentId: newDirId.value - 0,
                 spaceId: newSpaceId.value - 0
             }).then(res => {
                 folderList.value = res.data
                 if (res.data.length === 0) {
-                    myfile.getById(newDirId.value).then(res => {
+                    myfile.getById(query).then(res => {
                         if (res.code === 200) {
+                            tableTotal.value =res.total
+                            if(res.rows.length<res.total){
+                                //第一次拿到的数据少于总数开启下拉事件
+                                tableBeEnd.value = false
+                            }
                             fileList.value = res.rows
                         }
                     })
                 } else {
-                    myfile.getById(newDirId.value).then(res => {
+                    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
+                            }
                             fileList.value = JSON.parse(JSON.stringify(res.rows))
                             // console.log('fileList',toRaw(fileList.value));
                         }
@@ -1597,6 +1608,34 @@ export default {
                 reader.readAsText(res);
             })
         }
+        // 触底加载事件
+        const setScroll =async ()=>{
+            console.log('setScroll','到底喽');
+
+            // console.log('tableBeEnd.value',tableBeEnd.value);
+            filePageNum.value = filePageNum.value+1
+            const query = `${thisFolder.value.dirId}?pageSize=10&pageNum=${filePageNum.value}`
+            // -------------先禁止掉事件 定时器1秒钟后才能再次触发
+            tableBeEnd.value = true
+            
+            // --------------------
+            const res = await myfile.getById(query)
+            // console.log('setScrollres',res);
+            if (res.code === 200) {
+                // const newarr = res.rows.concat(toRaw(fileList.value))
+                const newarr = toRaw(fileList.value).concat(res.rows)
+                console.log('newarr',newarr);
+                fileList.value = JSON.parse(JSON.stringify(newarr))
+                if(newarr.length < tableTotal.value){
+                    //获取后的数量<total就可以再次获取
+                    setTimeout(()=>{
+                        tableBeEnd.value = false 
+                    },1000)
+                }
+            }
+            // console.log('query',query);
+            // console.log('fileList',fileList.value);
+        }
         onMounted(() => {
             // if(!thisFolder.value){
                 getAllTop()
@@ -1625,9 +1664,9 @@ 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);
+                        // console.log('tores',res);
                         thisFolder.value = res.data
                         refreshFile()
                     })
@@ -1829,7 +1868,11 @@ export default {
             addFileTab,
             threeBe,
             newAdd,
-            spaceName
+            spaceName,
+            filePageNum,
+            setScroll,
+            tableBeEnd,
+            tableTotal
         }
     },
     watch: {
@@ -2036,12 +2079,13 @@ p {
     background-color: #EBEFF6 !important;
 }
 .showBox{
-    height: 100%;
+    height: calc(100% - 48px - 24px);
 }
 
 .detailBox {
     width: 100%;
     height: 50%;
+    // overflow-y: auto;
 }
 
 :deep(.el-dialog__header) {
@@ -2051,8 +2095,7 @@ p {
 
 .fileTable {
     height: 50%;
-    overflow-y: hidden;
-    margin-top: 55px;
+    // overflow-y: auto;
 }
 
 .setCli {
@@ -2109,13 +2152,18 @@ p {
 
 :deep([data-v-69cdaa40] .el-collapse-item__header) {
     padding-left: 10px;
+    box-sizing: border-box;
 }
 
 :deep(.el-collapse-item__content) {
     // height: 235px;
     overflow-y: auto;
+    padding-bottom: 0;
+}
+:deep(.el-scrollbar__wrap) {
+    height: 100% !important; 
+    // overflow-y: auto;
 }
-
 .ellipsis-text {
     white-space: nowrap;
     overflow: hidden;

+ 3 - 3
src/views/myfile/modalComponebts/CreateFloder.vue

@@ -70,7 +70,7 @@ export default {
             required: true,
             default: ()=>{},
         },
-        getAllTop: Function,
+        refreshFile: Function,
     },
     setup(props, { emit }) {
         let { addBack, sureAddBoser, diClose } = toRef(props)
@@ -123,7 +123,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 } else {
                     let query = {}
@@ -157,7 +157,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 }
             }

+ 172 - 63
src/views/publicment/MyFile.vue

@@ -4,14 +4,9 @@
             <div class="settingBox" @click="mouseClick">
                 <!-- 设置盒子顶部搜索 -->
                 <div class="topSearch">
-                    <div style="position: relative;width: 80%;">
-                        <el-input v-model="searchFire" class="searchFire" size="large" placeholder="搜索文件"/>
-                        <el-icon style="color: gray;display: inline-block;position: absolute;top: 8px;right: 5px;">
-                            <Search/>
-                        </el-icon>
-                    </div>
+                    <div class="spaceName">{{spaceName}}</div>
                     <div>
-                        <el-icon @click="createNewMenu(1,true)" color="#505870" size="24">
+                        <el-icon @click="createNewMenu(1)" color="#505870" size="24">
                             <Plus />
                         </el-icon>
                         <!-- @click="createNewFile" -->
@@ -19,36 +14,44 @@
                 </div>
                 <!-- 方块点击盒子 -->
                 <div
-                    style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;height: 75vh;align-content: flex-start;overflow-y: auto;">
+                    style="height: 75vh;overflow-y: auto;">
+                    <div class="searchBox">
+                        <el-input v-model="searchFire" class="searchFire" size="large" placeholder="搜索文件"/>
+                        <el-icon class="SearchIcon">
+                            <Search/>
+                        </el-icon>
+                    </div>
                     <!-- v-for盒子 -->
-                    <template v-for="(item, index) in fileMenu" :key="index">
-                        <div class="setBox" @click="changeFile(item, index)">
-                            <el-dropdown trigger="click" class="selectChe">
-                                <span class="el-dropdown-link">
-                                    ...
-                                </span>
-                                <template #dropdown>
-                                    <el-dropdown-menu>
-                                        <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
-                                        <el-dropdown-item v-if="item.dirType == '1'" @click="delName(item, index)">删除</el-dropdown-item>
-                                    </el-dropdown-menu>
-                                </template>
-                            </el-dropdown>
-                          <div class="left_fileBox">
-                            <el-tooltip
-                                  class="box-item tool-tip"
-                                  effect="dark"
-                                  placement="top-start"
-                                  v-if="item.encryptLevel"
-                               > 
-                               <template #content> 安全级别: {{ item.encryptLevel == 'L1'?'敏感':(item.encryptLevel == 'L2'?'涉密':(item.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
-                               <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;"></el-tooltip>
-                               <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;" v-else>
-                              <p class="ellipsis-text shouzhi">{{ item.dirName }}</p>
-                              <img class="levelImg" v-if="item.isEncrypt === 'Y'" :src="getLevelImg(item.encryptLevel)" alt="">
-                          </div>
-                        </div>
-                    </template>
+                    <div style="display: flex;justify-content: flex-start;align-items: flex-start;flex-wrap: wrap;align-content: flex-start;overflow-y: auto;">
+                        <template v-for="(item, index) in fileMenu" :key="index">
+                            <div class="setBox" @click="changeFile(item, index)">
+                                <el-dropdown trigger="click" class="selectChe">
+                                    <span class="el-dropdown-link">
+                                        ...
+                                    </span>
+                                    <template #dropdown>
+                                        <el-dropdown-menu>
+                                            <el-dropdown-item @click="restName(item, index)">重命名</el-dropdown-item>
+                                            <el-dropdown-item v-if="item.dirType == '1'" @click="delName(item, index)">删除</el-dropdown-item>
+                                        </el-dropdown-menu>
+                                    </template>
+                                </el-dropdown>
+                            <div class="left_fileBox">
+                                <el-tooltip
+                                    class="box-item tool-tip"
+                                    effect="dark"
+                                    placement="top-start"
+                                    v-if="item.encryptLevel"
+                                > 
+                                <template #content> 安全级别: {{ item.encryptLevel == 'L1'?'敏感':(item.encryptLevel == 'L2'?'涉密':(item.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
+                                <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;"></el-tooltip>
+                                <img src="../../assets/images/fileStyle.png" style="width: 72px;height: 72px;" v-else>
+                                <p class="ellipsis-text shouzhi">{{ item.dirName }}</p>
+                                <img class="levelImg" v-if="item.isEncrypt === 'Y'" :src="getLevelImg(item.encryptLevel)" alt="">
+                            </div>
+                            </div>
+                        </template>
+                    </div>
                 </div>
                 <!-- <div class="expansion">
                     <div class="top_box">
@@ -104,11 +107,11 @@
                             <div style="margin-left: 5px;">
                                 <el-icon
                                     style="background-color: #7084B4;width: 24px;height: 24px;border-radius: 50%;color: white;"
-                                    @click="createNewMenu(0)">
+                                    >
                                     <Plus />
                                 </el-icon>
                             </div>
-                            <div style="margin-left: 5px;" @click="createNewMenu(0)">
+                            <div style="margin-left: 5px;">
                                 <span style="font-size: 14px;" class="shouzhi">新建</span>
                             </div>
                         </div>
@@ -149,11 +152,12 @@
                     </div>
                 <!-- </div> -->
                 <!-- 展示文件夹盒子 -->
+            <div class="showBox">
                 <!-- 文件夹 -->
                 <div class="detailBox file-jia" @click="mouseClick">
                     <el-collapse v-model="folder">
                         <el-collapse-item title="文件夹" name="1" class="custom-collapse-item">
-                            <el-table v-if="folderGrid" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
+                            <el-table v-if="folderGrid" height="37vh" :data="folderList" style="width: 100%" :scrollbar-always-on="true"
                                 @selection-change="handleSelectionChange1" :single-select="true" @row-click="folderClick"
                                 @row-contextmenu="folderRClick" ref="taskTableRef">
                                 <el-table-column type="selection" width="55" />
@@ -221,7 +225,7 @@
                     <div class="fileTable">
                         <el-collapse v-model="files" >
                             <el-collapse-item title="文件" name="2" class="">
-                                <el-table v-if="fileGrid" :data="fileList" height="250" :scrollbar-always-on="true" style="width: 100%;position: relative;"
+                                <el-table v-el-table-infinite-scroll="setScroll" :infinite-scroll-distance="10" :infinite-scroll-disabled="tableBeEnd" v-if="fileGrid" :data="fileList" height="38vh" :scrollbar-always-on="true" style="width: 100%"
                                     @row-contextmenu="handleRowClick" @selection-change="handleSelectionChange"
                                     @row-click="mouseClick" :default-sort="{ prop: 'createTime', order: 'descending' }">
                                     <el-table-column type="selection" width="55" />
@@ -234,16 +238,15 @@
                                             <img v-else @click.stop="delCollect(scope.row,false)" src="../../assets/images/yellowstar.png" alt="" class="juli">
                                             <img :src="getImage(scope.row.fileType)" alt="" class="juli">
                                                   <el-tooltip
-                                                    class="box-item"
-                                                    effect="dark"
-                                                    placement="top"
-                                                    :show-after="1000"
-                                                    v-if="item.encryptLevel"
-                                                >
-                                                <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template>
-                                                   <span class="shouzhi">{{ scope.row.fileName }}</span>
-                                                </el-tooltip>
-                                                <span class="shouzhi" v-else>{{ scope.row.fileName }}</span>
+                                                        class="box-item"
+                                                        effect="dark"
+                                                        placement="top"
+                                                        :show-after="1000"
+                                                        :content="scope.row.fileName"
+                                                    >
+                                                    <!-- <template #content> {{ scope.row.encryptLevel == 'L1'?'敏感':(scope.row.encryptLevel == 'L2'?'涉密':(scope.row.encryptLevel == 'L3'?'机密':'绝密')) }} </template> -->
+                                                    <span class="shouzhi">{{ scope.row.fileName }}</span>
+                                                    </el-tooltip>
                                         </span>
                                         </template>
                                     </el-table-column>
@@ -282,6 +285,7 @@
                             </p>
                         </div>
                     </div>
+            </div>
                     </div>
                 <div v-else>
                     <div>
@@ -301,7 +305,7 @@
             <div>
                 <CreateFloder v-if="folderCase" :thisType="thisFolder" :thisRole="thisRole" :folderCase="folderCase" @getChildrenC="getChildrenC" :oneOrTwo="oneOrTwo"
                     :impDirId="impDirId" :impSpaceId="impSpaceId" :newDirId="newDirId" :newSpaceId="newSpaceId" :thisFolderRole="thisFolderRole"
-                    :getAllTop="getAllTop">
+                    :refreshFile="refreshFile">
                 </CreateFloder>
             </div>
             <!-- 文件上传 -->
@@ -415,8 +419,12 @@ import fileSpace from '../../api/filespace/fileSpace';
 import { getLeveldetail } from '../../api/level/level';
 import { encrypt, decrypt } from "@/utils/jsencrypt";
 import Cookies from "js-cookie";
+import elTableInfiniteScroll from 'el-table-infinite-scroll'
 
 export default {
+    directives: {
+        'el-table-infinite-scroll': elTableInfiniteScroll
+    },
     setup() {
         const { proxy } = getCurrentInstance();
         let fileTrees = ref(false)//filetree父传子
@@ -583,6 +591,22 @@ export default {
         let nameForm = ref({
             name: ""
         })
+        let ordinaryFolder = ref([ {
+            img: ImgFile.previewIcon,
+            name: "预览"
+        },
+        {
+            img: ImgFile.collect,
+            name: "收藏"
+        },
+        {
+            img: ImgFile.downLoad,
+            name: "下载"
+        },
+        {
+            img: ImgFile.textbox,
+            name: "重命名"
+        },])
         let fileNameChange = ref(false)
         let fileMenu = ref([])
         let copyRow = ref({})
@@ -613,6 +637,10 @@ export default {
         const addTab = inject("addTab");
         const addFileTab = inject("addFileTab");
         const addFolderAdd = inject("addFolderAdd");
+        const filePageNum = ref(1) //获取文件分页
+        const spaceName = ref()
+        const tableBeEnd = ref(true)//控制下拉是否到底
+        const tableTotal = ref(0)//表格数据总数
         // 获取文件夹,中栏,文件
         function getAllTop() {
             documents.getTop(1).then(res => {
@@ -627,6 +655,7 @@ export default {
                 newSpaceId.value = userMe[0].spaceId//变化
                 newDirId.value = userMe[0].dirId//变化
                 topPath.value = userMe[0].dirPath
+                spaceName.value = userMe[0].dirPath
                 let obj = {
                     pageNum: 1,
                     pageSize: 10
@@ -668,7 +697,7 @@ export default {
              const addData = {
                 path:'/publicment'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row
@@ -1062,6 +1091,10 @@ export default {
 
         // 文件夹每行点击事件
         function folderClick(row, list) {
+            // 初始化分页数据
+            tableBeEnd.value = true
+            filePageNum.value = 1
+            tableTotal.value = 0
             // 上一级dirId就是下一级的parentId
             // 判断是点击打开还是右键菜单打开
             if(row){
@@ -1081,20 +1114,32 @@ export default {
             // console.log('topPath',toRaw(topPath.value));
             newDirId.value = row.dirId
             newSpaceId.value = row.spaceId
+            const query = `${newDirId.value}?pageSize=10&pageNum=${filePageNum.value}`
             documents.getALLdocument({
                 parentId: newDirId.value - 0,
                 spaceId: newSpaceId.value - 0
             }).then(res => {
                 folderList.value = res.data
                 if (res.data.length === 0) {
-                    myfile.getById(newDirId.value).then(res => {
+                     myfile.getById(query).then(res => {
                         if (res.code === 200) {
+                            tableTotal.value =res.total
+                            if(res.rows.length<res.total){
+                                //第一次拿到的数据少于总数开启下拉事件
+                                tableBeEnd.value = false
+                            }
                             fileList.value = res.rows
                         }
                     })
                 } else {
-                    myfile.getById(newDirId.value).then(res => {
+                   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
+                            }
                             fileList.value = JSON.parse(JSON.stringify(res.rows))
                             // console.log('fileList',toRaw(fileList.value));
                         }
@@ -1224,6 +1269,9 @@ export default {
             if(thisRole.value.length){
                 arr = publicRightMenuRole(toRaw(thisRole.value),arr)
             }
+            if(thisFolder.value.dirType == '1'){
+                arr = ordinaryFolder.value
+            }
             if(arr.length<1){
                 noMenuItem.value = true
             }else{
@@ -1492,6 +1540,34 @@ export default {
                 reader.readAsText(res);
             })
         }
+        // 触底加载事件
+        const setScroll =async ()=>{
+            console.log('setScroll','到底喽');
+
+            // console.log('tableBeEnd.value',tableBeEnd.value);
+            filePageNum.value = filePageNum.value+1
+            const query = `${thisFolder.value.dirId}?pageSize=10&pageNum=${filePageNum.value}`
+            // -------------先禁止掉事件 定时器1秒钟后才能再次触发
+            tableBeEnd.value = true
+            
+            // --------------------
+            const res = await myfile.getById(query)
+            // console.log('setScrollres',res);
+            if (res.code === 200) {
+                // const newarr = res.rows.concat(toRaw(fileList.value))
+                const newarr = toRaw(fileList.value).concat(res.rows)
+                console.log('newarr',newarr);
+                fileList.value = JSON.parse(JSON.stringify(newarr))
+                if(newarr.length < tableTotal.value){
+                    //获取后的数量<total就可以再次获取
+                    setTimeout(()=>{
+                        tableBeEnd.value = false 
+                    },1000)
+                }
+            }
+            // console.log('query',query);
+            // console.log('fileList',fileList.value);
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1506,9 +1582,9 @@ 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);
+                        // console.log('tores',res);
                         thisFolder.value = res.data
                         refreshFile()
                     })
@@ -1706,7 +1782,13 @@ export default {
             downLoadfile,
             addFolderAdd,
             addFileTab,
-            addTab
+            addTab,
+            ordinaryFolder,
+            filePageNum,
+            setScroll,
+            tableBeEnd,
+            tableTotal,
+            spaceName
         }
     },
     watch: {
@@ -1768,15 +1850,30 @@ p {
     height: 48px;
     background-color: #EBEFF6;
     display: flex;
-    justify-content: space-around;
+    justify-content: space-between;
     align-items: center;
+    padding-left: 16px;
+    padding-right: 16px;
 }
 
 .searchFire {
     // width: 248px;
-    flex: 1;
+    width: 100%;
     height: 32px;
 }
+.searchBox{
+    display: flex;
+    justify-content: space-between;
+    position: relative;
+    padding: 8px 16px;
+    .SearchIcon{
+        color: gray;
+        position: absolute;
+        right: 5%;
+        top: 35%;
+
+    }
+}
 
 .setBox {
     width: 88px;
@@ -1886,6 +1983,8 @@ p {
     background-color: #F6F7F9;
 
     .topPath {
+         margin-left: 4px;
+        cursor: pointer;
         color: #6F85B5;
         font-size: 12px;
     }
@@ -1898,8 +1997,13 @@ p {
 
 .detailBox {
     width: 100%;
-    height: 30vh;
+    height: 50%;
+    // overflow-y: auto;
 }
+.showBox{
+    height: calc(100% - 48px - 24px);
+}
+
 
 :deep(.el-dialog__header) {
     background-color: #ECEFF7;
@@ -1907,9 +2011,9 @@ p {
 }
 
 .fileTable {
-    height: 45vh;
-    overflow-y: hidden;
-    margin-top: 48px;
+    height: 50%;
+    // overflow-y: hidden;
+    // margin-top: 48px;
 }
 
 .setCli {
@@ -1971,6 +2075,11 @@ p {
 :deep(.el-collapse-item__content) {
     // height: 235px;
     overflow-y: auto;
+    padding-bottom: 0;
+}
+:deep(.el-scrollbar__wrap) {
+    height: 100% !important; 
+    // overflow-y: auto;
 }
 
 .ellipsis-text {

+ 3 - 3
src/views/publicment/modalComponebts/CreateFloder.vue

@@ -94,7 +94,7 @@ export default {
             required: true,
             default: ()=>{},
         },
-        getAllTop: Function,
+        refreshFile: Function,
     },
     setup(props, { emit }) {
         const {
@@ -177,7 +177,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 } else {
                     let query = {}
@@ -221,7 +221,7 @@ export default {
                         }
                         addBoser.value = false
                         emit("getChildrenC", addBoser.value)
-                        props.getAllTop()
+                        props.refreshFile()
                     })
                 }
             }

+ 94 - 27
src/views/search/index.vue

@@ -22,9 +22,10 @@
       <div class="searchFor">
         <div class="search_title">分类:</div>
         <el-tabs v-model="searchType" class="demo-tabs" @tab-change="changeSearchType">
+          <el-tab-pane label="全部" name="all"></el-tab-pane>
           <el-tab-pane label="文档" name="doc"></el-tab-pane>
           <el-tab-pane label="图片" name="img"></el-tab-pane>
-          <el-tab-pane label="音频" name="audio "></el-tab-pane>
+          <el-tab-pane label="音频" name="audio"></el-tab-pane>
           <el-tab-pane label="视频" name="video"></el-tab-pane>
           <el-tab-pane label="压缩包" name="zip"></el-tab-pane>
         </el-tabs>
@@ -45,9 +46,10 @@
     <!-- 文件列表 -->
     <div class="fileList">
       <div>
-        <div v-if="isList">
+        <div v-if="isList" style="height: calc(98vh - 420px);overflow-y: auto;">
           <!-- 表格 -->
-          <el-table :data="tableData" style="width: 100%" :scrollbar-always-on="true">
+          <el-table :data="tableData" style="width: 100%;height:calc(98vh - 420px) ;" ref="container"
+            @scroll="handleScroll">
             <el-table-column fixed label="名称" width="500">
               <template #default="scope">
                 <div class="flie_name">
@@ -72,14 +74,17 @@
               </template>
             </el-table-column>
           </el-table>
-          <Pagination :total="total" :page="page" :limit="limit" @pagination="pagination"></Pagination>
+          <!-- <div class="pageBox">
+            <Pagination :total="total" :page="page" :limit="limit" @pagination="pagination"></Pagination>
+          </div> -->
         </div>
         <div v-else>
           <!-- 平铺 -->
           <div class="tile_box">
             <div class="file_box" v-for="item in tableData" :key="item">
               <img class="big_file_img" :src="setIcon(item.fileType)" alt="" />
-              <span>{{ item.fileName }}</span>
+              <span class="missing">{{ item.fileName }}</span>
+              <span class="missingPass">{{ item.fileName }}</span>
             </div>
           </div>
         </div>
@@ -89,11 +94,12 @@
 </template>
 
 <script setup>
-import { onMounted, ref, toRaw, inject } from "vue";
+import { onMounted, ref, toRaw, inject, watch } from "vue";
 import { search } from "@/api/search/search.js";
 import { flieSearch } from "@/api/search/search.js";
 import { useRoute, useRouter, onBeforeRouteUpdate } from "vue-router";
 import Pagination from "@/components/Pagination/index.vue";
+import { ElTable, ElTableColumn, ElInfiniteScroll } from 'element-plus';
 //---------------导入图片--------------------------
 import file_DOC from "@/assets/images/fileType/file_DOC.png";
 import file_pdf from "@/assets/images/fileType/file_pdf.png";
@@ -116,26 +122,19 @@ const searchText = ref(""); //搜索ipt的值
 const baseData = ref(); //搜索出的原始数据
 const isAsc = ref("asc");
 const router = useRouter(); //注册路由
+const route = useRoute(); //注册路由
 
 //---------分页--------------
 const total = ref(0);
 const page = ref(1);
 const limit = ref(2); //pagesize
 //---------------------------
+const container = ref(null)
+const historyParams = history.state.params
+console.log('historyParams', historyParams);
 
 const reload = inject("reload");
-onMounted(() => {
-  let route = useRoute();
-  console.log(route.params, 'route');
-  searchText.value = route.params.searchText;
-  let searchData = route.params.listArr;
-  // console.log("searchData", searchData);
-  baseData.value = JSON.parse(searchData).rows;
-  tableData.value = JSON.parse(searchData).rows;
-  total.value = JSON.parse(searchData).total;
-  changeSearchFor(searchFor.value);
-  console.log("total", baseData.value);
-});
+
 const tableData = ref([]);
 // 切换搜索范围
 const changeSearchFor = (name) => {
@@ -151,14 +150,19 @@ const changeSearchFor = (name) => {
 // 切换搜索分类
 const changeSearchType = (name) => {
   let baseDataObj = toRaw(baseData.value);
-  // console.log("baseDataObj", baseDataObj);
-  // 获取分类具体数据
-  const typeArr = setType(name);
-  tableData.value = toRaw(baseDataObj).filter(
-    (item) =>
-      typeArr.includes(item.fileType) && item.space.spaceType == searchFor.value
-  );
-  // console.log('tableData',tableData.value);
+  if (name == 'all') {
+    tableData.value = baseDataObj
+  } else {
+    // 获取分类具体数据
+    console.log(name, 'name');
+    const typeArr = setType(name);
+    console.log(typeArr, '类型');
+    tableData.value = toRaw(baseDataObj).filter((item) => {
+      console.log(item,'遍历');
+      return typeArr.includes(item.fileType) && item.space.spaceType === searchFor.value;
+    });
+    console.log(tableData.value,'数组');
+  }
 };
 const changeShow = () => {
   isList.value = !isList.value;
@@ -193,6 +197,7 @@ const handleCurrentChange = (val) => {
   page.value = val;
 };
 const pagination = async (obj) => {
+  console.log(obj, 'page');
   isAsc.value == "asc" ? (isAsc.value = "desc") : (isAsc.value = "asc");
   const query = {
     keyword: searchText.value,
@@ -249,7 +254,7 @@ const setIcon = (fileType) => {
 const setType = (fileType) => {
   switch (fileType) {
     case "doc":
-      return [".txt", ".ppt", ".pdf", ".docx", ".csv", ".wps", ".xls",'.pptxs'];
+      return [".txt", ".ppt", ".pdf", ".docx", ".csv", ".wps", ".xls", '.pptxs', '.dll', '.pptx', '.doc'];
       break;
     case "img":
       return [".png", ".jpg", ".jpeg"];
@@ -283,10 +288,48 @@ function formatFileSize(fileSize) {
     return fileSize + "B";
   }
 }
+let numnum = 1
+async function handleScroll(e) {
+  // console.log(e, '出发了');
+  const tableContainer = e.target;
+  const scrollPosition = tableContainer.scrollTop + tableContainer.clientHeight;
+  const contentHeight = tableContainer.scrollHeight;
+  console.log(scrollPosition,contentHeight,'对比');
+  if (scrollPosition + 0.40005 >= contentHeight) {
+    numnum++
+    const query = {
+      keyword: searchText.value,
+      isAsc: "asc",
+      orderByColumn: "createTime",
+      pageSize: 10,
+      pageNum: numnum,
+    };
+    const res = await flieSearch(query);
+    tableData.value = [...tableData.value,...res.rows]
+  }
+}
+onMounted(() => {
+  let antherContainer = container.value.$el.querySelector('.el-scrollbar__wrap')
+  antherContainer.addEventListener('scroll', handleScroll);
+  const JparData = history.state.clickRowId
+  const parData = JSON.parse(JparData)
+  searchText.value = parData.searchText;
+  let searchData = parData.searchData;
+  baseData.value = searchData.rows;
+  tableData.value = searchData.rows;
+  total.value = searchData.total;
+  changeSearchFor(searchFor.value);
+});
 onBeforeRouteUpdate((to, from) => {
   console.log('to', to);
   console.log('from', from);
 })
+watch(() => history, (newValue, oldValue) => {
+  console.log('history 发生改变了', newValue, oldValue);
+}, {
+  immediate: true,
+  deep: true
+});
 </script>
 
 <style lang="scss" scoped>
@@ -294,6 +337,7 @@ onBeforeRouteUpdate((to, from) => {
   height: calc(98vh - 48px - 8px - 32px - 8px);
   background-color: #fff;
   border-radius: 4px;
+  overflow: hidden;
 }
 
 .searchTitle {
@@ -586,4 +630,27 @@ onBeforeRouteUpdate((to, from) => {
     }
   }
 }
+
+.missing {
+  width: 90px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis
+}
+
+.missing:hover~.missingPass {
+  display: block;
+}
+
+.missingPass {
+  display: none;
+  width: 140px;
+  background-color: black;
+  border-radius: 5px;
+  color: white;
+  text-align: center;
+  z-index: 30 important;
+  margin-left: 25px;
+  font-size: 14px;
+}
 </style>