From 7540886ea5a498085052104c054cf9f0853310c9 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期一, 05 六月 2023 10:20:58 +0800
Subject: [PATCH] 顶部菜单,左侧菜单,图图层管理界面

---
 src/components/topBtn.vue |  223 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 114 insertions(+), 109 deletions(-)

diff --git a/src/components/topBtn.vue b/src/components/topBtn.vue
index acaa101..f4dc141 100644
--- a/src/components/topBtn.vue
+++ b/src/components/topBtn.vue
@@ -1,52 +1,49 @@
 <template>
   <div class="top_btn">
-    <div>
-      <ul>
-        <li
-          class="firstMenu"
-          v-for="(item,i) in menuOptions"
-          @mousemove="setFirstLevlMenu(item,1)"
-          @mouseleave="setFirstLevlMenu(item,2)"
-        >
-          <div
-            class="menuDiv"
-            :title="item.name"
-            :class="{ 'border_left' : i == 0, 'border_right' :i == (menuOptions.length -1)}"
-            @click="setMenuClick(item)"
+    <div class="menu_Box">
+      <div
+        class="first_Menu"
+        :title="item.name"
+        v-for="(item,i) in menuOptions"
+        @click="setMenuClick(item)"
+      >
+        <div class="First_img">
+          <img
+            class="imgIcon"
+            :src="require('../assets/img/topBtn/'+item.imgUrl)"
           >
+        </div>
+        <div
+          class="menu_second"
+          v-if="item.children && item.children.length > 0"
+          v-show="menuFlag == item.id"
+        >
+          <div class="upTop">
+            <div class="upimg"></div>
+          </div>
+          <div class="second_Box">
             <div
-              class="menuFirstImage"
-              :class="item.class"
+              class="second_Menu"
+              :title="res.name"
+              v-for="(res,j) in item.children"
+              @click="setMenuClick(res)"
+              :class="{'second_Menu_click':checkFlag == res.id}"
             >
+              <img
+                class="imgIcon"
+                style="margin-bottom: 5px;"
+                :src="require('../assets/img/topBtn/'+res.imgUrl)"
+              >
+              <div>
+                {{ res.name }}
+              </div>
+
             </div>
           </div>
-          <ul
-            @mouseleave="setFirstLevlMenu(item,2)"
-            v-show="item.children &&menuFlag == item.id"
-          >
-            <li v-for="(res,j) in item.children">
-              <div
-                class="tmenuDiv"
-                :title="res.name"
-                @click="setMenuClick(res)"
-              >
-                <div class="tmenuImg">
-                  <div
-                    class="menuFirstImage"
-                    :class="res.class"
-                  >
 
-                  </div>
-                </div>
-                <div class="tmenulabel">
-                  {{ res.name }}
-                </div>
-              </div>
-            </li>
+        </div>
 
-          </ul>
-        </li>
-      </ul>
+      </div>
     </div>
   </div>
 </template>
@@ -61,21 +58,27 @@
   defineEmits,
 } from "vue";
 import menuData from "@/assets/js/Map/menuData.js";
+import menuTool from "@/assets/js/Map/menuTool.js";
 const menuFlag = ref(null);
 const menuOptions = ref([]);
-const setFirstLevlMenu = (res, flag) => {
-  if (flag == 1) {
-    menuFlag.value = res.id;
-  } else {
-    menuFlag.value = null;
-  }
-};
+const checkFlag = ref(null);
 const setMenuClick = (res) => {
-  if (res.children && res.children.length > 0) {
-    return;
+  if (res.children) {
+    if (menuFlag.value && menuFlag.value == res.id) {
+      menuFlag.value = null;
+      checkFlag.value = null;
+    } else {
+      menuFlag.value = res.id;
+    }
+  } else {
+    if (res.level == 1) {
+      checkFlag.value = null;
+    } else if (res.level == 2) {
+      checkFlag.value = res.id;
+    }
+    menuFlag.value = null;
+    menuTool.menuTools(res);
   }
-  menuFlag.value = null;
-  menuData.menuTools(res);
 };
 onMounted(() => {
   menuOptions.value = menuData.topMenu;
@@ -86,68 +89,70 @@
 .top_btn {
   position: absolute;
   top: 23px;
-  right: 25px;
+  right: 0px;
   display: flex;
   cursor: pointer;
+  .menu_Box {
+    margin-right: 104px;
+    display: flex;
+    .imgIcon {
+      width: 30px;
+      height: 30px;
+    }
+    .first_Menu {
+      min-width: 50px;
+      height: 50px;
+      margin-right: 7px;
+      background: url("../assets/img/topBtn/鍥炬爣bj.png") no-repeat;
+      background-size: 100% 100%;
+      .First_img {
+        width: 100%;
+        height: 100%;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+    .upTop {
+      width: 100%;
+      height: 10px;
+      display: flex;
+      justify-content: center;
+      .upimg {
+        width: 15px;
+        height: 100%;
+        background: url("../assets/img/topBtn/鍚戜笂1.png") no-repeat;
+      }
+    }
+    .menu_second {
+      margin-top: 0px;
+    }
+    .second_Box {
+      background: #07080e;
+      box-shadow: inset 0px 0px 15px 0px rgb(38, 47, 71, 0.68);
 
-  .menuDiv {
-    width: 72px;
-    padding: 20px 0px;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    background: rgba(1, 10, 28, 1);
-    border-top: 1px solid gray;
-    border-bottom: 1px solid gray;
-  }
-  .border_left {
-    border-radius: 5px 0px 0px 5px;
-    border-left: 1px solid gray;
-  }
-  .border_right {
-    border-radius: 0px 5px 5px 0px;
-    border-right: 1px solid gray;
-  }
-  .tmenuDiv {
-    width: 70px;
-    padding: 10px 0px;
-    border-right: 1px solid gray;
-    border-left: 1px solid gray;
-    border-bottom: 1px solid gray;
-    background: rgba(1, 10, 28, 1);
-  }
-  .tmenuDiv :hover {
-    color: #409eff;
-  }
-  .tmenuImg {
-    width: 100%;
+      .second_Menu {
+        background: #07080e;
+        box-shadow: inset 0px 0px 8px 0px rgb(38, 47, 71, 0.68);
+        margin-top: 1px;
+        font-size: 12px;
+        font-family: Source Han Sans CN;
+        padding: 10px 10px;
+        font-weight: 300;
+        color: #d1e0ff;
+        line-height: 7px;
+        text-align: center;
+        border: 1px solid none;
+      }
 
-    display: flex;
-    justify-content: center;
-  }
-  .tmenulabel {
-    width: 100%;
-
-    display: flex;
-    justify-content: center;
-    color: #fff;
-    font-size: 12px;
-    margin-top: 2px;
-  }
-  .firstMenu {
-    float: left;
-  }
-  .menuScond {
-    width: 100%;
-    display: flex;
-    justify-content: center;
-  }
-  .menuFirstImage {
-    width: 15px;
-    height: 15px;
-  }
-  .twoMenu_imge21 {
-    background: url("../assets/img/cd.png") no-repeat 100% 100%;
+      .second_Menu_click {
+        background: #171e2e;
+        border: 1px solid;
+        border-image: linear-gradient(47deg, #397bc9, #77a5cd, #397bc9) 1 1;
+        box-shadow: 0px 0px 6px 0px #080c13,
+          0px 7px 8px 0px rgba(38, 47, 71, 0.68);
+      }
+    }
   }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3