Selaa lähdekoodia

档案管理入口

iZaiZaiA 2 vuotta sitten
vanhempi
commit
25657b2c45
1 muutettua tiedostoa jossa 50 lisäystä ja 5 poistoa
  1. 50 5
      src/layout/modules/MenuBar.vue

+ 50 - 5
src/layout/modules/MenuBar.vue

@@ -8,13 +8,16 @@
                 </div>
             </div>
         </el-menu-item>
-        <MenuItem :datas="datas" :cur="curKey" :collapse="isCollapse" @change="MenuClick"/>
+        <MenuItem :datas="menuDatas" :cur="curKey" :collapse="isCollapse" @change="MenuClick"/>
     </el-menu>
 </template>
 
 <script setup>
-import {ref,watch} from "vue";
+import {nextTick, ref, watch} from "vue";
 import MenuItem from "./MenuItem.vue"
+import {useAppStore} from "~src/store";
+import {getToken} from "~src/api/util/auth";
+const useAppState = useAppStore()
 const props = defineProps({
     datas: {
         type: Array,
@@ -31,23 +34,62 @@ const props = defineProps({
 })
 
 //初始变量
+const menuDatas = ref([]);
 const curKey = ref(props.cur);
 const isCollapse = ref(props.collapse);
 
+//监听
+/*watch(() => [
+    props.datas
+], ([datas]) => {
+    setMenuDatas(datas)
+})*/
+
 //监听
 watch(() => [
     props.cur,
     props.collapse
-], ([cur,collapse]) => {
+], ([cur, collapse]) => {
     curKey.value = cur
     isCollapse.value = collapse
 })
 
+//渲染完成
+nextTick(() => {
+    setMenuDatas(props.datas)
+});
+
+//设置菜单数据
+const setMenuDatas = (datas) => {
+    let newArr = datas || [];
+    const res = getToArchivesUrl();
+    if (res) {
+        newArr.push({
+            code: res.code,
+            source: res.source,
+            path: res.path,
+            name: res.name,
+            children: []
+        })
+    }
+    menuDatas.value = newArr
+}
+
+//获取档案管理的数据
+const getToArchivesUrl = () => {
+    return useAppState.getButtonsVal('to-archives-url')
+}
+
 //事件
 const emit = defineEmits(['change'])
 const MenuClick = (item) => {
-    curKey.value = item?.code || '';
-    emit('change', item)
+    if (item?.code === 'to-archives-url') {
+        const token = getToken()
+        window.open(item?.path + '/#/auth?token=' + token,'_blank')
+    } else {
+        curKey.value = item?.code || '';
+        emit('change', item)
+    }
 }
 </script>
 
@@ -69,6 +111,9 @@ const MenuClick = (item) => {
         white-space: nowrap;
         padding-left: 0;
     }
+    &.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title {
+        padding-right: 10px;
+    }
     .el-sub-menu__title {
         padding: 0;
     }