Browse Source

搜索宫格显示

liuQiang 1 year ago
parent
commit
e9b6c5ea90

+ 2 - 0
src/components/MoveTo/MoveTo.vue

@@ -131,6 +131,7 @@ const onSubmit = async () => {
 const checkoutNode = (node, data) => {
   // console.log('node',node);
   // console.log("data", data);
+  if(data.disabled) return
   thisNode.value = {
     label: data.label,
     value: data.id,
@@ -140,6 +141,7 @@ const checkoutNode = (node, data) => {
 //获取文件树
 function getFileTree() {
   documents.fileTree(props.spaceType).then((res) => {
+    res.disabled = true
     treeData.value = [res];
     console.log("treedata", res);
   });

+ 3 - 0
src/utils/index.js

@@ -104,6 +104,9 @@ export const rightMenuRole = (role,arr)=>{
   if(!roles.l1000){
     arr = arr.filter(item => item.name !== "删除")
   }
+  if(!roles.l0350){
+    arr = arr.filter(item => item.name !== "分享")
+  }
   if(!roles.l1200){
     arr = arr.filter(item => item.name !== "移动到..." && item.name !== "复制到...")
   }

+ 2 - 2
src/views/department/components/PalaceGridFile.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- flex盒子 -->
-        <div class="bigBox" style="height: 250px; overflow: auto;" v-if="fileList?.length">
+        <div class="bigBox" style="height: 38vh; overflow: auto;" v-if="fileList?.length">
             <template v-for="(item, index) in fileList" :key="index">
                 <!-- 循环盒子 -->
                 <div class="flexBox" @contextmenu="rightClick(item, $event)">
@@ -514,7 +514,7 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
 }
 

+ 3 - 2
src/views/department/components/PlaceGridFolder.vue

@@ -2,7 +2,7 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+            <div class="bigBox" style="height: 37vh; 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)">
@@ -248,8 +248,9 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
+    padding-top: 16px;
 }
 
 .imgBox {

+ 1 - 1
src/views/highSearch/HighSearch.vue

@@ -98,7 +98,7 @@ import ImgPreview from "@/components/ImgPreview/ImgPreview.vue";
 import { preview } from "@/api/common/common.js";
 // import IdentifyFont from "@/components/IdentifyFont/IdentifyFont.vue";
 const searchText = ref(""); //搜索ipt的值
-const selectValue = ref(1); //文档空间类型
+const selectValue = ref(3); //文档空间类型
 const page = ref(1); //页数
 const size = ref(10); //每页大小
 const total = ref(0); //数据总条数

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

@@ -461,7 +461,7 @@
     <!-- 可用扫描仪信息 -->
      <div>
         <el-dialog v-model="checkScanner" title="扫描仪" width="30%">
-            <div v-for="item in scannerList" :key="item.scannerId" @click="checkScanFn(item)" :class="{'checkScan':item.scannerId ==checkScanId }">
+            <div v-for="item in scannerList" :key="item.scannerId" @click="checkScanFn(item)" id="Onescan" :class="{'checkScan':item.scannerId ==checkScanId }">
                 {{item.scannerName}}
             </div>
             <template #footer>
@@ -1327,12 +1327,12 @@ export default {
                         datas.push(i.docId)
                     }
                 })
-                if(folderId.value.isEncrypt === 'Y'){
-                    return  ElMessage({
-                                message: "删除失败,加密目录不可删除",
-                                type: "error"
-                            })
-                }
+                // if(folderId.value.isEncrypt === 'Y'){
+                //     return  ElMessage({
+                //                 message: "删除失败,加密目录不可删除",
+                //                 type: "error"
+                //             })
+                // }
                 // 文件夹删除
                 if (isFile.value) {//文件
                     documents.delDocument(folderId.value.dirId).then(res => {
@@ -2487,7 +2487,12 @@ p {
     }
 }
 .checkScan{
-    background-color: #eee;
+    background-color: #F5F7F9;
+}
+#Onescan{
+    height: 30px;
+    line-height: 30px;
+    font-size: 14px;
 }
 
 :deep(.el-collapse-item__header) {

+ 2 - 2
src/views/myfile/components/PalaceGridFile.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- flex盒子 -->
-        <div class="bigBox" style="height: 250px; overflow: auto;" v-if="fileList?.length">
+        <div class="bigBox" style="height: 38vh; overflow: auto;" v-if="fileList?.length">
             <template v-for="(item, index) in fileList" :key="index">
                 <!-- 循环盒子 -->
                 <div class="flexBox" @contextmenu="rightClick(item, $event)">
@@ -518,7 +518,7 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
 }
 

+ 3 - 2
src/views/myfile/components/PlaceGridFolder.vue

@@ -2,7 +2,7 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+            <div class="bigBox" style="height: 37vh; 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)">
@@ -224,8 +224,9 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
+    padding-top: 16px;
 }
 
 .imgBox {

+ 2 - 2
src/views/publicment/components/PalaceGridFile.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <!-- flex盒子 -->
-        <div class="bigBox" style="height: 250px; overflow: auto;"  v-if="fileList?.length">
+        <div class="bigBox" style="height: 38vh; overflow: auto;"  v-if="fileList?.length">
             <template v-for="(item, index) in fileList">
                 <!-- 循环盒子 -->
                 <div class="flexBox" @contextmenu="rightClick(item, $event)">
@@ -514,7 +514,7 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
 }
 

+ 3 - 2
src/views/publicment/components/PlaceGridFolder.vue

@@ -2,7 +2,7 @@
     <div>
         <div>
             <!-- flex盒子 -->
-            <div class="bigBox" style="height: 250px; overflow: auto;" v-if="folderList?.length">
+            <div class="bigBox" style="height: 37vh; 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)">
@@ -246,8 +246,9 @@ export default {
     height: 100%;
     display: flex;
     justify-content: flex-start;
-    align-items: center;
+    // align-items: center;
     flex-wrap: wrap;
+    padding-top: 16px;
 }
 
 .imgBox {

+ 76 - 15
src/views/search/index.vue

@@ -81,7 +81,7 @@
         </div>
         <div v-else>
           <!-- 平铺 -->
-          <div class="tile_box">
+          <div class="tile_box" @scroll="handleScrollG">
             <div class="file_box" v-for="item in tableData" :key="item">
               <img class="big_file_img" :src="setIcon(item.fileType)" alt="" />
               <span class="missing">{{ item.fileName }}</span>
@@ -120,6 +120,7 @@ import file_zip from "@/assets/images/fileType/file_zip.png";
 //----------------------------------------
 const searchFor = ref(""); //搜索范围
 const searchType = ref("all"); //搜索对象
+const fileTypes = ref()
 const checkState = ref(false); //勾选框状态
 const activeNames = ref(["folder", "file"]);
 const isList = ref(true); //控制显示方式
@@ -150,29 +151,44 @@ const tableData = ref([]);
 // 切换搜索范围
 const changeSearchFor = async(name) => {
   numnum = 1
+  numG = 1
   const typeArr = setType(searchType.value);
   let baseDataObj = toRaw(baseData.value);
-  var fileTypes = ''
+   fileTypes.value = ''
   if (name == 'all') {
-    fileTypes = ''
+    fileTypes.value = ''
   } else if(name == '1') {
-    fileTypes = 1
+    fileTypes.value = 1
     // tableData.value = toRaw(baseDataObj).filter(
     //   (item) => item.space.spaceType == name && typeArr.includes(item.fileType)
     // );
   }else if(name == '2'){
-    fileTypes = 2
+    fileTypes.value = 2
   }else if(name == '3'){
-    fileTypes = 3
+    fileTypes.value = 3
   }
-  let res = await flieSearch({
-    keyword:searchText.value,
-    type:fileTypes,
-    pageSize: 20,
-    pageNum: 1,
-  })
-  console.log(res.rows,'filter');
+  
+  if(isList.value){
+    let res = await flieSearch({
+      keyword:searchText.value,
+      type:fileTypes.value,
+      pageSize: 20,
+      pageNum: 1,
+    })
+    total.value = res.total;
+  tableData.value = res.rows
+  console.log(res,'filter',fileTypes.value);
+  }else{
+    let res = await flieSearch({
+      keyword:searchText.value,
+      type:fileTypes.value,
+      pageSize: 80,
+      pageNum: numG,
+    })
+    total.value = res.total;
   tableData.value = res.rows
+  console.log(res,'filter',fileTypes.value);
+  }
 };
 // 切换搜索分类
 const changeSearchType = (name) => {
@@ -341,16 +357,19 @@ function formatFileSize(fileSize) {
   }
 }
 let numnum = 1
+let numG = 1
 async function handleScroll(e) {
-  // console.log(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) {
+    console.log('到底了');
     numnum++
     const query = {
       keyword: searchText.value,
+      type:fileTypes.value,
       isAsc: "asc",
       orderByColumn: "createTime",
       pageSize: 20,
@@ -360,6 +379,45 @@ async function handleScroll(e) {
     tableData.value = [...tableData.value, ...res.rows]
   }
 }
+async function handleScrollG(e) {
+    if(tableData.value.length >= total.value) return
+  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) {
+    numG++
+    const query = {
+      keyword: searchText.value,
+      type:fileTypes.value,
+      isAsc: "asc",
+      orderByColumn: "createTime",
+      pageSize: 90,
+      pageNum: numG,
+    };
+    const res = await flieSearch(query);
+    tableData.value = [...tableData.value, ...res.rows]
+  }
+}
+watch(() => isList.value, (newValue, oldValue) => {
+  // console.log('editableTabs 发生改变了', newValue, oldValue);
+  numG = 1
+  if(!newValue){
+    console.log('切换到宫格了');
+    const query = {
+      keyword: searchText.value,
+      isAsc: "asc",
+      orderByColumn: "createTime",
+      pageSize: 90,
+      pageNum: numG,
+    };
+     flieSearch(query).then(res=>{
+
+      tableData.value = [ ...res.rows]
+    });
+  }
+});
 onMounted(() => {
   let antherContainer = container.value.$el.querySelector('.el-scrollbar__wrap')
   antherContainer.addEventListener('scroll', handleScroll);
@@ -632,9 +690,12 @@ onMounted(() => {
 //平铺
 .tile_box {
   width: 100%;
-  height: 300px;
+  height: calc(98vh - 220px);
   display: flex;
   flex-wrap: wrap;
+  overflow-y:auto ;
+  align-items: flex-start;
+  align-content: flex-start;
 
   .file_box {
     width: 116px;