liyangzheng před 1 rokem
rodič
revize
a2fba76c3a

+ 4 - 3
src/layout/indexCommon.vue

@@ -7,9 +7,10 @@
             <img class="logoImg" src="@/assets/images/logos.png" /><span>聚合智慧文档管理系统</span>
           </div>
           <div class="search">
-            <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">
+            <el-input style="position: relative;" v-model="searchText" maxlength="32" class="w-50 m-2" size="small"
+              placeholder="搜索文件" clearable @keyup.enter="toSearch">
+            </el-input>
+            <el-icon style="position: absolute;top: 15px;left: 0px;z-index: 1;" @click="toSearch">
               <Search />
             </el-icon>
           </div>

+ 58 - 16
src/views/myfile/modalComponebts/Transfer.vue

@@ -6,7 +6,7 @@
                 <div class="transBox">
                     <div class="allBag">
                         <el-input style="width: 220px;margin-left: 18px;margin-top:5px" v-model="allBag"
-                            placeholder="搜索"></el-input>
+                            @blur="searchPeople" placeholder="搜索"></el-input>
                         <div class="allLog">
                             <el-tree ref="treeRef" :data="allTreeData" :props="allTreeProps" show-checkbox node-key="id"
                                 :default-expanded-keys="openTree" @check-change="allTreeChange"
@@ -16,16 +16,16 @@
                     <div class="needBag">
                         <div style="border-bottom: 1px solid gray;" class="needBag_top">
                             <span>已选择{{ chooseTagData.length }}人</span>
-                            <span style="color: red;font-size: 14px;float: right;">清空</span>
+                            <span style="color: red;font-size: 14px;float: right;cursor: pointer;"
+                                @click="cleanPeople">清空</span>
                         </div>
                         <div class="needLog">
-                              <el-scrollbar height="349px">
-                                    <el-tag v-for="(item, index) in chooseTagData" :key="index" class="tagtag"
+                            <el-scrollbar height="349px">
+                                <el-tag v-for="(item, index) in chooseTagData" :key="index" class="tagtag"
                                     :closable="lastPeople" @close="handleClose(item)">
                                     {{ item.userName ? item.userName : item.name }}
-                                    </el-tag>
-                              </el-scrollbar>
-
+                                </el-tag>
+                            </el-scrollbar>
                         </div>
                     </div>
                 </div>
@@ -81,6 +81,7 @@ export default {
             disabled: false,
             id: "id"
         }
+        let treeRef = ref(null)
         let openTree = ref([])
         let chooseTagData = ref([])
         let allBag = ref('')
@@ -94,6 +95,7 @@ export default {
         }
         // 分享穿梭框
         function allTreeChange(e) {
+            console.log('触发了change事件');
             const id = e.id;
             const label = e.label;
             const disabled = e.disabled;
@@ -104,15 +106,15 @@ export default {
                 chooseTagData.value.splice(existingIndex, 1);
             } else {
                 // 选择操作,将数据添加到 needTagData 中
-                chooseTagData.value.push({ userId: id, userName: label ,disabled:disabled});
+                chooseTagData.value.push({ userId: id, userName: label, disabled: disabled });
             }
             if (chooseTagData.value.length === 1) {
                 lastPeople.value = true
             } else {
                 lastPeople.value = false
             }
-            chooseTagData.value = chooseTagData.value.filter(item=>!item.disabled)
-            console.log('chooseTagData',chooseTagData.value);
+            chooseTagData.value = chooseTagData.value.filter(item => !item.disabled)
+            // console.log('chooseTagData初始数组',chooseTagData.value);
         }
         // 确认分享
         function sureShare() {
@@ -166,9 +168,7 @@ export default {
         }
         // 获取用户树
         function getAllUser() {
-            console.log('feeh',feeh);
             userTree.getUserTree({}).then(res => {
-                console.log('userTree',res);
                 allTreeData.value = [res]
                 userTree.getUserTree({}).then(res => {
                     allTreeData.value = [res];
@@ -196,8 +196,8 @@ export default {
                     })
                 })
             }
-            if(feeh === 0){
-                 fileCount.getActor(dees).then(res => {
+            if (feeh === 0) {
+                fileCount.getActor(dees).then(res => {
                     // 去除数组内部的重复元素
                     // const uniqueRes = Array.from(new Set(res.map(item => item.userName))).map(id => res.find(item => item.userName === id));
                     // 现在的 uniqueRes 数组不包含重复元素
@@ -213,6 +213,42 @@ export default {
             }
 
         }
+        function cleanPeople() {
+            treeRef.value.setCheckedKeys([]);
+            chooseTagData.value = [];
+            ElMessage({
+                message: "再次点击以完全清空",
+                type: "warning",
+                duration: 1000
+            })
+        }
+        function searchInTreeData(treeData, searchValue) {
+            const foundItems = [];
+            function traverseTree(node) {
+                if (node.label.includes(searchValue)) {
+                    foundItems.push(node);
+                }
+                if (node.children) {
+                    node.children.forEach(childNode => traverseTree(childNode));
+                }
+            }
+            treeData.forEach(node => traverseTree(node));
+            return foundItems;
+        }
+        function searchPeople() {
+            let treeNew = allTreeData.value
+            if (allBag.value == '') {
+                getAllUser()
+            } else {
+                const foundData = searchInTreeData(allTreeData.value, allBag.value);
+                if (foundData.length > 0) {
+                    allTreeData.value = foundData
+                } else {
+                    allTreeData.value = treeNew
+                }
+            }
+        }
+
         function getBack() {
             transferModals.value = false
             emit("getCback", transferModals.value)
@@ -248,6 +284,9 @@ export default {
             lastPeople,
             feeh,
             backToFather: getBack,
+            cleanPeople,
+            treeRef,
+            searchPeople,
         }
     }
 }
@@ -292,15 +331,18 @@ export default {
     /* border: 1px solid red; */
     overflow-y: auto;
 }
-.needBag_top{
+
+.needBag_top {
     padding: 0 10px;
     height: 30px;
     display: flex;
     align-items: center;
     justify-content: space-between;
 }
-.needLog{
+
+.needLog {
     height: 100%;
+    overflow-y: auto;
 }
 
 :deep(.el-tag__content) {

+ 5 - 5
src/views/search/index.vue

@@ -48,7 +48,7 @@
       <div>
         <div v-if="isList" style="height: calc(98vh - 420px);overflow-y: auto;">
           <!-- 表格 -->
-          <el-table :data="tableData" style="width: 100%;height:calc(98vh - 420px) ;" ref="container"
+          <el-table :data="tableData" style="width: 100%;height:calc(98vh - 620px) ;" ref="container"
             @scroll="handleScroll">
             <el-table-column fixed label="名称" width="500">
               <template #default="scope">
@@ -59,14 +59,14 @@
               </template>
             </el-table-column>
             <el-table-column prop="space.spaceName" label="所属空间" width="180" />
-            <el-table-column prop="createTime" label="时间" width="200" />
-            <el-table-column prop="fileType" label="类型" width="80" />
-            <el-table-column prop="fileSize" label="大小" width="160">
+            <el-table-column prop="createTime" label="时间" width="auto" header-align="left" />
+            <el-table-column prop="fileType" label="类型" width="auto" />
+            <el-table-column prop="fileSize" label="大小" width="auto">
               <template #default="scope">
                 <div>{{ formatFileSize(scope.row.fileSize) }}</div>
               </template>
             </el-table-column>
-            <el-table-column prop="dir.dirPath" label="文件夹" width="180">
+            <el-table-column prop="dir.dirPath" label="文件夹" width="auto">
               <template #default="scope">
                 <div class="folder">
                   {{ scope.row.dir ? scope.row.dir.dirPath : "" }}