소스 검색

搜索传参新建标签,协作可编辑,我的文件等bug

liuQiang 2 년 전
부모
커밋
fb4fc347fd
7개의 변경된 파일88개의 추가작업 그리고 75개의 파일을 삭제
  1. 2 2
      index.html
  2. 39 29
      src/layout/indexCommon.vue
  3. 3 1
      src/router/index.js
  4. 12 13
      src/views/department/MyFile.vue
  5. 9 9
      src/views/myfile/MyFile.vue
  6. 12 13
      src/views/publicment/MyFile.vue
  7. 11 8
      src/views/search/index.vue

+ 2 - 2
index.html

@@ -9,8 +9,8 @@
 		<link rel="icon" href="/favicon.ico">
 		<title>聚合智慧文档管理系统</title>
 		<!--引入onlyoffice组件-->
-		<!-- <script type="text/javascript" src="http://192.168.1.28:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
-		<script type="text/javascript" src="http://8.142.173.95:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
+		<script type="text/javascript" src="http://192.168.1.28:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script>
+		<!-- <script type="text/javascript" src="http://8.142.173.95:19531/web-apps/apps/api/documents/api.js" charset="utf-8" async></script> -->
 		<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
 		<style>
 			html,

+ 39 - 29
src/layout/indexCommon.vue

@@ -362,33 +362,34 @@ const toSearch = async () => {
   console.log("res", res);
   if (res) {
     const itemData = {
-      label:'全局搜索',
-      path:'/search',
-      data:{
-          searchData: JSON.stringify(res),
+      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 +512,24 @@ 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))
-      // );
+      // 去全文搜索单独判断
+      if(toFileData.value.name == "全局搜索"){
+        console.log("clickRowId.value", JSON.stringify(toRaw(toFileData.value).clickRowId));
+        editableTabsValue.value = toFileData.value.path
+        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,
@@ -673,9 +683,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,

+ 3 - 1
src/router/index.js

@@ -118,9 +118,11 @@ 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'

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

@@ -92,11 +92,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>
@@ -235,16 +235,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="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>
+                                                        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>
@@ -666,7 +665,7 @@ export default {
           const addData = {
                 path:'/department'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row

+ 9 - 9
src/views/myfile/MyFile.vue

@@ -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>
@@ -124,11 +124,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>
@@ -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(1):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>
@@ -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>
@@ -708,7 +708,7 @@ export default {
             const addData = {
                 path:'/myfile'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row

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

@@ -105,11 +105,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>
@@ -235,16 +235,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>
@@ -669,7 +668,7 @@ export default {
              const addData = {
                 path:'/publicment'+row.dirId,
                 name:row.dirName,
-                row:toRaw(row)
+                clickRowId:toRaw(row)
             }
             addFolderAdd(addData)
             thisFolder.value = row

+ 11 - 8
src/views/search/index.vue

@@ -125,14 +125,17 @@ const limit = ref(2); //pagesize
 
 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;
+  // let route = useRoute();
+  // console.log( history.state, 'route');
+  const JparData = history.state.clickRowId
+  const parData = JSON.parse(JparData)
+  console.log(parData, 'parData');
+  searchText.value = parData.searchText;
+  let searchData = parData.searchData;
+  console.log("searchData", searchData);
+  baseData.value = searchData.rows;
+  tableData.value = searchData.rows;
+  total.value = searchData.total;
   changeSearchFor(searchFor.value);
   console.log("total", baseData.value);
 });