Prechádzať zdrojové kódy

标签打开、删除、限制数量

liuQiang 1 rok pred
rodič
commit
379ae148c1

+ 1 - 1
package.json

@@ -18,7 +18,7 @@
     "@ckeditor/ckeditor5-build-classic": "^39.0.2",
     "@ckeditor/ckeditor5-vue": "^5.1.0",
     "@element-plus/icons-vue": "2.0.10",
-    "@layui/layui-vue": "^2.16.1",
+    "@layui/layer-vue": "^2.3.1",
     "@vueup/vue-quill": "1.1.0",
     "@vueuse/core": "9.5.0",
     "axios": "0.27.2",

BIN
src/assets/images/newIndex/CaretRight.png


BIN
src/assets/images/newIndex/arrow.png


BIN
src/assets/images/newIndex/bgi.png


BIN
src/assets/images/newIndex/clock.png


BIN
src/assets/images/newIndex/collect.png


BIN
src/assets/images/newIndex/logo.png


BIN
src/assets/images/newIndex/more.png


BIN
src/assets/images/newIndex/scan.png


BIN
src/assets/images/newIndex/search.png


BIN
src/assets/images/newIndex/setting.png


BIN
src/assets/images/newIndex/upFolderLogo.png


BIN
src/assets/images/newIndex/users.png


+ 151 - 0
src/layout/NewIndex.vue

@@ -0,0 +1,151 @@
+<template>
+  <div class="common-layout">
+    <TopMenu
+      @openMaxmin="openMaxmin"
+      :systemPath="systemPath"
+      :hasRole="hasRole"
+    ></TopMenu>
+    <DefaultPage @openMaxmin="openMaxmin"></DefaultPage>
+    <div class="footer"></div>
+  </div>
+</template>
+
+<script setup>
+import { onMounted, ref } from "vue";
+import TopMenu from "@/layout/components/TopMenu/TopMenu.vue";
+import DefaultPage from "@/layout/components/DefaultPage/DefaultPage.vue";
+import { layer } from "@layui/layer-vue";
+import { ElMessage, ElLoading, ElMessageBox } from "element-plus";
+import useUserStore from "@/store/modules/user";
+import usePermissionStore from "@/store/modules/permission";
+const permissionStore = usePermissionStore();
+const sidebarRouters = computed(() => permissionStore.sidebarRouters);
+const roles = useUserStore().roles;
+const permissionRoles = ["admin", "dept", "system", "audit"];
+const super_admin = "admin";
+const hasRole = ref(
+  roles.some((role) => {
+    return super_admin === role || permissionRoles.includes(role);
+  })
+);
+const systemPath = ref({});
+
+// 将标签信息保存到本地
+const openMaxmin = (title, path) => {
+  const item = {
+    title: title,
+    path: path,
+  };
+  // 判断是否存在标签列表,存在则添加,不存在则创建
+  const storage = sessionStorage.getItem("tagList");
+  if (storage) {
+    //如果标签数量超过11个,提示超出最大限制
+    if (JSON.parse(storage).length >= 11) {
+      ElMessage({ message: "标签数量超出最大限制", type: "error" });
+      return;
+    }
+    const oldStorage = JSON.parse(storage);
+    // 判断是否存在相同的标签
+    // if (oldStorage.find((item) => item.path === path)) {
+    //   //这里应该是打开旧的标签
+    //   return;
+    // } else {
+    const thisId = layer.open({
+      type: "iframe", //类型
+      move: false, //不可拖拽
+      maxmin: true,
+      title: title,
+      content: path,
+      shadeClose: false, // 点击遮罩关闭
+      area: ["80%", "80%"], //大小
+      close: (id) => {
+        console.log(`关闭:${id}`);
+        const oldData = JSON.parse(sessionStorage.getItem("tagList"));
+        // 删除本地存储中该标签的数据
+        const newStorage = oldData.filter((item) => item.id !== id);
+        sessionStorage.setItem("tagList", JSON.stringify(newStorage));
+      },
+    });
+    item.id = thisId;
+    sessionStorage.setItem(
+      "tagList",
+      JSON.stringify([...JSON.parse(sessionStorage.getItem("tagList")), item])
+    );
+    // }
+  } else {
+    const thisId = layer.open({
+      type: "iframe", //类型
+      move: false, //不可拖拽
+      maxmin: true,
+      title: title,
+      content: path,
+      shadeClose: false, // 点击遮罩关闭
+      area: ["80%", "80%"], //大小
+      close: (id) => {
+        console.log(`关闭:${id}`);
+        // 删除本地存储中该标签的数据
+        const oldData = JSON.parse(sessionStorage.getItem("tagList"));
+        const newStorage = oldData.filter((item) => item.id !== id);
+        sessionStorage.setItem("tagList", JSON.stringify(newStorage));
+      },
+    });
+    item.id = thisId;
+    sessionStorage.setItem("tagList", JSON.stringify([item]));
+  }
+};
+// 页面刷新后清除标签
+onMounted(() => {
+  // 判断是否页面刷新 刷新就清楚存储的标签
+  switch (performance.navigation.type) {
+    case 0:
+      console.log("首次加载出来了");
+      break;
+    case 1:
+      sessionStorage.removeItem("tagList");
+      break;
+  }
+  if (hasRole.value) {
+    console.log("sidebarRouters", sidebarRouters.value);
+    const thisItem = sidebarRouters.value.find(
+      (item) => item.redirect == "noRedirect"
+    ); //拿到系统管理的第一个菜单 判断依据:第一个redirect == "noRedirect"的路由
+    const path1 = thisItem.path; //一级路由
+    const path2 = thisItem.children[0].path; //二级路由
+    let path3;
+    if (thisItem.children[0].children) {
+      path3 = thisItem.children[0].children[0].path;
+    }
+    systemPath.value = {
+      label: "系统管理",
+      // path: "/biz/dirTemplate",
+      path: `${path1}/${path2}${path3 ? "/" + path3 : ""}`,
+    };
+  }
+});
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/styles/mixin.scss";
+@import "@/assets/styles/variables.module.scss";
+.common-layout {
+  width: 100vw;
+  height: 100vh;
+  background-image: url("@/assets/images/newIndex/bgi.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+}
+.topMenu {
+  width: 100%;
+  height: 80px;
+}
+.main {
+  width: 100%;
+  height: calc(100vh - 160px);
+}
+.footer {
+  width: 100%;
+  height: 80px;
+  // border: 1px solid #000;
+  background-color: #b5d2ea;
+}
+</style>

+ 278 - 0
src/layout/components/DefaultPage/DefaultPage.vue

@@ -0,0 +1,278 @@
+<template>
+  <div class="main">
+    <div class="search">
+      <input type="text" class="search_input" placeholder="请输入关键字" />
+      <div class="searchBtn">
+        <img src="@/assets/images/newIndex/search.png" alt="" />
+        <span>全局搜索</span>
+      </div>
+    </div>
+    <div class="btmBox">
+      <div class="upFile">
+        <img
+          src="@/assets/images/newIndex/upFolderLogo.png"
+          class="upImg"
+          alt=""
+        />
+        <span class="text1">上传你的文件</span>
+        <p class="text2">将文件拖到此处或 <span>选择文件</span></p>
+        <div class="line"></div>
+        <img src="@/assets/images/newIndex/scan.png" class="scanImg" alt="" />
+      </div>
+      <div class="recent">
+        <div class="top">
+          <span>最近文件</span>
+        </div>
+        <div class="list">
+          <div
+            v-for="item in tableFileData"
+            :key="item"
+            @click="toFile(item)"
+            class="oneBox"
+          >
+            <div class="imgBox">
+              <img :src="setImg(item == null ? '' : item.fileType)" alt="" />
+            </div>
+            <div class="rightBox">
+              <div class="text">{{ item.fileName }}</div>
+              <div class="time">{{ item.createTime }}</div>
+            </div>
+            <img
+              class="openArrow"
+              src="@/assets/images/newIndex/CaretRight.png"
+              alt=""
+            />
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <ImgPreview
+    :previewData="previewData"
+    :copyFileType="copyFileType"
+    :showPreview="showPreview"
+    @closeImgPreview="closeImgPreview"
+  ></ImgPreview>
+  <div
+    v-loading.fullscreen="loadingPreview"
+    v-if="loadingPreview"
+    class="lodingBox"
+  ></div>
+</template>
+
+<script setup>
+import { onMounted, ref, toRaw, inject } from "vue";
+import { getInfo, getInfoByDirId } from "@/api/biz/info";
+import { listRecent, getRecent } from "@/api/biz/recent";
+import { setIcon, canPreviewFile } from "@/utils/index.js";
+import { preview } from "@/api/common/common.js";
+import ImgPreview from '@/components/ImgPreview/ImgPreview.vue'
+const tableFileData = ref([]);
+const copyFileType = ref();
+const previewData = ref();
+const loadingPreview = ref(false);
+const showPreview = ref(false);
+const emit = defineEmits(["openMaxmin"]);
+// 获取数据
+const getList = async () => {
+  const resN = await listRecent({ isFolder: "N" });
+  if (resN.code === 200) {
+    var arr = [];
+    resN.rows.map(async (item) => {
+      const detail = await getInfo(item.relaId);
+      tableFileData.value.push(detail.data);
+    });
+  }
+};
+// 打开最近文件
+const toFile = async (row) => {
+  copyFileType.value = row.fileType;
+   console.log("row", row);
+  loadingPreview.value = true;
+  const filePreview = canPreviewFile(row.fileType);
+  if (filePreview) {
+    loadingPreview.value = false;
+    emit('openMaxmin',row.fileName,`${window.location.origin}/fileEdit?clickRowId=${row.docId}&canEdit=0&canCopy=0&history=0&fileId=0`)
+  } else {
+    const res = await preview(row.docId);
+    showPreview.value = true;
+    previewData.value = URL.createObjectURL(res);
+    loadingPreview.value = false;
+  }
+};
+// 设置icon
+const setImg = (type) => {
+  return setIcon(type);
+};
+//关闭图片预览事件
+const closeImgPreview = () => {
+  // console.log('close');
+  showPreview.value = false;
+};
+onMounted(() => {
+  getList();
+});
+</script>
+
+<style lang="scss" scoped>
+.main {
+  width: 100%;
+  height: calc(100vh - 160px);
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+}
+.search {
+  width: 1232px;
+  height: 64px;
+  background-color: #2e8bf6;
+  border-radius: 86px 86px 86px 86px;
+  display: flex;
+  justify-content: space-between;
+  padding-right: 24px;
+  .search_input {
+    width: 1080px;
+    height: 100%;
+    border: none;
+    outline: none;
+    background-color: #fff;
+    padding-left: 20px;
+    border-radius: 86px 86px 86px 86px;
+  }
+  .searchBtn {
+    color: #fff;
+    font-size: 18px;
+    cursor: pointer;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    span {
+      margin-left: 8px;
+    }
+  }
+}
+.btmBox {
+  margin-top: 16px;
+  width: 1232px;
+  height: 624px;
+  display: flex;
+  justify-content: space-between;
+  .upFile {
+    width: 494px;
+    height: 100%;
+    background-color: #fff;
+    border-radius: 16px 16px 16px 16px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    .upImg {
+      width: 194px;
+      height: 128px;
+    }
+    .text1 {
+      font-style: 18px;
+      color: #030102;
+      font-weight: bold;
+      margin-top: 16px;
+      margin-bottom: 8px;
+    }
+    .text2 {
+      font-weight: 400;
+      font-size: 16px;
+      color: #7c808d;
+      span {
+        font-weight: 500;
+        font-size: 16px;
+        color: #2e8bf6;
+        text-decoration-line: underline;
+      }
+    }
+    .line {
+      margin-top: 16px;
+      width: 124px;
+      height: 1px;
+      border-top: 1px solid #dbdbdb;
+    }
+    .scanImg {
+      width: 32px;
+      height: 32px;
+      margin-top: 16px;
+    }
+  }
+  .recent {
+    width: 722px;
+    height: 100%;
+    background-color: #fff;
+    border-radius: 16px 16px 16px 16px;
+    padding: 24px;
+    .top {
+      width: 100%;
+      height: 42px;
+      border-bottom: 1px solid #dbdbdb;
+      span {
+        font-weight: bold;
+        font-size: 18px;
+        color: #030102;
+      }
+    }
+    .list {
+      width: 100%;
+      height: calc(624px - 42px - 1px - 24px);
+      overflow-y: auto;
+      // padding-top: 12px;
+      box-sizing: border-box;
+      .oneBox {
+        width: 100%;
+        height: 60px;
+        padding: 8px 22px;
+        box-sizing: border-box;
+        border-radius: 12px 12px 12px 12px;
+        display: flex;
+        align-items: center;
+        .imgBox {
+          width: 44px;
+          height: 44px;
+          border-radius: 8px 8px 8px 8px;
+          border: 1px solid #d0d6e6;
+          display: flex;
+          justify-content: center;
+          align-items: center;
+          img {
+            width: 32px;
+            height: 32px;
+          }
+        }
+        .rightBox {
+          margin-left: 12px;
+          width: calc(100% - 44px - 12px);
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          .text {
+            font-weight: bold;
+            font-size: 16px;
+            color: #030102;
+          }
+          .time {
+            font-weight: 500;
+            font-size: 12px;
+            color: #7c808d;
+          }
+        }
+        .openArrow {
+          width: 20px;
+          height: 20px;
+        }
+        &:hover {
+          background: #f6f6f6;
+          .imgBox {
+            border: 1px solid #2e8bf6;
+          }
+        }
+      }
+    }
+  }
+}
+</style>

+ 203 - 0
src/layout/components/TopMenu/TopMenu.vue

@@ -0,0 +1,203 @@
+<template>
+  <div class="TopMenu">
+    <div class="logo"></div>
+    <div class="menu">
+      <div class="menuList">
+        <div class="oneMenu finger" @click="openTab('我的文件','/myfile')">
+          <img src="@/assets/images/newIndex/users.png" alt="" />
+          <span>我的文件</span>
+        </div>
+        <div class="oneMenu finger" @click="openTab('收藏文件','/collect')">
+          <img src="@/assets/images/newIndex/collect.png"  alt="" />
+          <span>收藏文件</span>
+        </div>
+        <div class="oneMenu finger" @click="showMoreMenu">
+          <img src="@/assets/images/newIndex/more.png" alt="" />
+          <span>更多</span>
+        </div>
+      </div>
+      <div v-if="showMore" class="moreMenu">
+        <div v-for="item in menuList" class="oneBox" :key="item.name" @click="openTab(item.name,item.path)">
+          <img :src="item.imgs" alt="" />
+          <span>{{ item.name }}</span>
+        </div>
+      </div>
+    </div>
+    <div class="user">
+      <img src="@/assets/images/newIndex/clock.png" @click="openTab('会话消息','/chat')" alt="" />
+      <img v-if="hasRole" src="@/assets/images/newIndex/setting.png" @click="openTab('系统管理',systemPath.path)" alt="" />
+      <div class="userInfo">
+        <span>admin</span>
+        <img src="@/assets/images/newIndex/arrow.png" alt="" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import {
+  nextTick,
+  onMounted,
+  onBeforeMount,
+  provide,
+  ref,
+  watchEffect,
+  watch,
+} from "vue";
+import bebumen from "@/assets/images/bebumen.png";
+import common from "@/assets/images/becommon.png";
+import manyBody from "@/assets/images/manyBodyFalse.png";
+const menuList = ref([
+  {
+    name: "部门文件",
+    icon: "@/assets/images/newIndex/users.png",
+    path:'/department',
+    imgs: bebumen,
+  },
+  {
+    name: "公共文件",
+    icon: "@/assets/images/newIndex/collect.png",
+    path:'/publicment',
+    imgs: common,
+  },
+  {
+    name: "协作",
+    icon: "@/assets/images/newIndex/more.png",
+    path:'/myjoin',
+    imgs: manyBody,
+  },
+]);
+const props = defineProps({
+  systemPath: {
+    type: Object,
+    default: ()=>{},
+  },
+  hasRole:{
+    type: Boolean,
+    default: false,
+  }
+});
+const showMore = ref(false); // 是否显示更多菜单
+const emit = defineEmits(["openMaxmin"]);
+// 鼠标移入 显示更多菜单
+const showMoreMenu = () => {
+  if (!showMore.value) {
+    setTimeout(() => {
+      showMore.value = true;
+    }, 200);
+  }
+};
+const hideMoreMenu = () => {
+  if (showMore.value) {
+    setTimeout(() => {
+      showMore.value = false;
+    }, 0);
+  }
+};
+//打开/新建标签
+const openTab = (title,path) => {
+  emit("openMaxmin",title,path);
+};
+onMounted(() => {
+  document.addEventListener("click", (e) => {
+    if (e.target.className !== "oneMenu finger") {
+      hideMoreMenu();
+    }
+  });
+});
+</script>
+
+<style lang="scss" scoped>
+.TopMenu {
+  width: 100%;
+  height: 80px;
+  display: flex;
+  justify-content: space-between;
+  padding: 16px;
+  //   align-items: center;
+}
+.logo {
+  width: 168px;
+  height: 48px;
+  background-image: url("@/assets/images/newIndex/logo.png");
+}
+.menu {
+  width: 350px;
+  height: 48px;
+  position: relative;
+  .menuList {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content: space-around;
+    .oneMenu {
+      display: flex;
+      align-items: center;
+      span {
+        color: #fff;
+        font-size: 16px;
+        font-weight: bold;
+      }
+    }
+  }
+  .moreMenu {
+    width: 250px;
+    // height: 280px;
+    background-color: #fff;
+    border-radius: 12px;
+    position: absolute;
+    bottom: -110px;
+    right: -130px;
+    display: flex;
+    font-size: 14px;
+    color: #030102;
+    font-weight: 500;
+    padding: 10px;
+    justify-content: space-around;
+    .oneBox {
+      width: 68px;
+      height: 84px;
+      border-radius: 8px 8px 8px 8px;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      img {
+        width: 48px;
+        height: 48px;
+        margin-top: 6px;
+        border: 1px solid #d0d6e6;
+        border-radius: 8px 8px 8px 8px;
+      }
+      &:hover {
+        background-color: #f5f7f9;
+        img {
+          border: 1px solid #2e8bf6;
+        }
+      }
+    }
+  }
+}
+.user {
+  width: 220px;
+  height: 44px;
+  display: flex;
+  justify-content: space-around;
+  .userInfo {
+    width: 104px;
+    height: 44px;
+    border-radius: 51px;
+    border: 1px solid #edf0fa;
+    color: #fff;
+    font-size: 16px;
+    padding: 0 14px;
+    display: flex;
+    align-items: center;
+    justify-content: space-around;
+  }
+}
+.finger {
+  cursor: pointer;
+}
+// 底部标签样式
+
+</style>

+ 0 - 21
src/layout/indexCommon.vue

@@ -62,15 +62,7 @@
         </el-aside>
         <el-main class="main">
           <div class="tab_box">
-            <!-- <el-tabs
-              v-model="editableTabsValue"
-              @tab-change="clickTab"
-              @tab-add="addTab"
-              type="card"
-              class="common-tabs"
-            > -->
             <el-tabs v-model="editableTabsValue" @tab-add="addTab" type="card" :class="{ inHome: editableTabsValue == '/home' }" class="common-tabs">
-              <!-- <el-tab-pane label="首页" @click="clickTab('/index')"> </el-tab-pane> -->
               <el-tab-pane v-for="(item, index) in toRaw(editableTabs)" :key="item.label" :label="item.label"
                 :name="item.path" :data-item="JSON.stringify(item)">
                 <template #label>
@@ -85,21 +77,8 @@
                         alt="" />
                     </div>
                   </div>
-                  <!-- <router-link
-                    :key="item"
-                    :data-path="item.path"
-                    :to="{
-                      path: item.path,
-                      query: { row: item.clickRowId },
-                    }"
-                    @click="paneClick(item)"
-                    class="tags-view-item"
-                  >
-                    {{ item.label }}
-                  </router-link> -->
                 </template>
               </el-tab-pane>
-              <!-- 文件的iframe -->
               <div v-for="item in iFrameData" :key="item.name">
                 <el-tab-pane :label="item.name" :name="item.id" v-if="item.src">
                   <template #label>

+ 3 - 3
src/main.js

@@ -5,8 +5,8 @@ import {
 import Cookies from 'js-cookie'
 
 import ElementPlus from 'element-plus'
-import Layui from '@layui/layui-vue'
-import '@layui/layui-vue/lib/index.css'
+import layer from '@layui/layer-vue';
+import '@layui/layer-vue/lib/index.css';
 import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
 
 import '@/assets/styles/index.scss' // global css
@@ -91,7 +91,7 @@ app.use(store)
 // app.use(VueDND)
 app.use(plugins)
 app.use(elementIcons)
-app.use(Layui)
+app.use(layer);
 app.component('svg-icon', SvgIcon)
 
 directive(app)

+ 176 - 10
src/router/index.js

@@ -62,15 +62,16 @@ export const constantRoutes = [{
 	name: "fileEdit",
 	// component: common,
 	component: () => import("@/views/myfile/components/FileEdit.vue"),
-	// children: [{
-	// 	path: '/fileEdit:docId(\\d+)',
-	// 	component: () => import("@/views/myfile/components/FileEdit.vue"),
-	// 	name: 'fileEdit',
-	// 	meta: {
-	// 		title: '文件预览',
-	// 		activeMenu: '/fileEdit'
-	// 	}
-	// }]
+	children: [{
+		path: '/fileEdit:docId(\\d+)',
+		component: () => import("@/views/myfile/components/FileEdit.vue"),
+		name: 'fileEdit',
+		hidden: true,
+		meta: {
+			title: '文件预览',
+			activeMenu: '/fileEdit'
+		}
+	}]
 },
 {
 	path: "/tempPre",
@@ -95,7 +96,7 @@ export const constantRoutes = [{
 },
 {
 	path: '',
-	component: () => import('@/layout/indexCommon.vue'),
+	component: () => import('@/layout/NewIndex.vue'),
 	redirect: '/index',
 	hidden: true,
 	children: [{
@@ -316,6 +317,171 @@ export const constantRoutes = [{
 	]
 },
 {
+	path: '/chat',
+	component: () => import('@/views/liveChat/index.vue'),
+	name: 'chat',
+	meta: {
+		title: '会话消息',
+		icon: 'dashboard',
+	},
+},
+{
+	path: '/user/profile',
+	component: () => import('@/views/system/user/profile/index'),
+	name: 'Profile',
+	hidden: true,
+	meta: {
+		title: '个人中心',
+		icon: 'user'
+	}
+},
+{
+	path: "/myfile",
+	component: () => import("@/views/myfile/MyFile"),
+	name: "myfile",
+	hidden: true,
+	meta: {
+		title: "我的文件",
+		icon: "myfile"
+	},
+	children: [{
+		path: '/myfile:dirId(\\d+)',
+		component: () => import('@/views/myfile/MyFile'),
+		name: 'myfile',
+		meta: {
+			title: '我的文件',
+			activeMenu: '/myfile'
+		}
+	}]
+},
+{
+	path: "/collect",
+	component: () => import("@/views/collect/index.vue"),
+	name: "collect",
+	hidden: true,
+	meta: {
+		title: "收藏文件",
+		icon: "department"
+	}
+},
+{
+	path: "/myjoin",
+	component: () => import("@/views/myjoin/MyJoin"),
+	name: "myjoin",
+	hidden: true,
+	meta: {
+		title: "我的协作",
+		icon: "myjoin"
+	}
+},
+{
+	path: "/department",
+	component: () => import("@/views/department/MyFile"),
+	name: "department",
+	hidden: true,
+	meta: {
+		title: "部门文件",
+		icon: "department"
+	},
+	children: [{
+		path: '/department:dirId(\\d+)',
+		component: () => import('@/views/department/MyFile'),
+		name: 'department',
+		meta: {
+			title: '部门文件',
+			activeMenu: '/department'
+		}
+	}]
+},
+{
+	path: "/publicment",
+	component: () => import("@/views/publicment/MyFile"),
+	name: "publicment",
+	hidden: true,
+	meta: {
+		title: "公共文件",
+		icon: "becommon"
+	},
+	children: [{
+		path: '/publicment:dirId(\\d+)',
+		component: () => import('@/views/publicment/MyFile'),
+		name: 'publicment',
+		hidden: true,
+		meta: {
+			title: '公共文件',
+			activeMenu: '/publicment'
+		}
+	}]
+},
+{
+	path: "/ws",
+	component: () => import("@/views/biz/test/index.vue"),
+	name: "ws",
+	hidden: true,
+	meta: {
+		title: "聊天",
+		icon: "department"
+	}
+},
+{
+	path: "/transFile",
+	component: () => import("@/views/transFile/index.vue"),
+	name: "transFile",
+	hidden: true,
+	meta: {
+		title: "聊天",
+		icon: "department"
+	}
+},
+{
+	path: "/highsearch",
+	component: () => import("@/views/highSearch/HighSearch.vue"),
+	name: "highsearch",
+	hidden: true,
+	meta: {
+		title: "高级搜索",
+		icon: "department"
+	}
+}, {
+	path: "/identifyFont",
+	component: () => import("@/components/IdentifyFont/IdentifyFont.vue"),
+	name: "identifyFont",
+	hidden: true,
+	meta: {
+		title: "图文识别",
+		icon: "department"
+	}
+}, {
+	path: "/pdf2word",
+	component: () => import("@/components/Pdf2Word/Pdf2Word.vue"),
+	name: "pdf2word",
+	hidden: true,
+	meta: {
+		title: "pdf2word",
+		icon: "department"
+	}
+}, {
+	path: "/iframe/*",
+	component: () => import("@/layout/iframe.vue"),
+	name: "iframe",
+	hidden: true,
+	meta: {
+		title: "iframe",
+		icon: "department"
+	}
+}, {
+	path: "/allback",
+	component: () => import("@/views/highSearch/SupplierAllBack.vue"),
+	name: "allback",
+	hidden: true,
+	meta: { title: "kongbaiye", icon: "department" }
+}, {
+	path: "/home",
+	component: () => import('@/views/HomePage/HomePage.vue'),
+	hidden: true,
+	name: 'home'
+},
+{
 	path: '/admin',
 	component: Layout,
 	redirect: '/admin/index',