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/menus.vue |  283 ++++++++++++--------------------------------------------
 1 files changed, 61 insertions(+), 222 deletions(-)

diff --git a/src/components/menus.vue b/src/components/menus.vue
index 00667d0..fb946b4 100644
--- a/src/components/menus.vue
+++ b/src/components/menus.vue
@@ -7,7 +7,7 @@
         class="logo"
       />
       <div class="logo_name">
-        <h3>鏁板瓧鏈堢悆绯荤粺</h3>
+        <h3>鏈堢悆澶ф暟鎹湴鐞嗙┖闂村垎鏋愬睍绀哄钩鍙�</h3>
         <img
           src="../assets/img/logob.png"
           alt=""
@@ -16,52 +16,27 @@
       </div>
     </div>
     <div class="menus_box">
-      <div class="menus_btn">
-        <div
-          class="menus_btn_btn1"
-          :class="{ CDactive: btnstate.CDbj }"
-          @click="isactive('CDbj')"
-        ></div>
-        <div
-          class="menus_btn_btn2"
-          :class="{ SSactive: btnstate.SSbj }"
-          @click="isactive('SSbj')"
-        ></div>
-        <div
-          class="menus_btn_btn3"
-          :class="{ SZactive: btnstate.SZbj }"
-          @click="isactive('SZbj')"
-        ></div>
-        <div
-          class="menus_btn_btn4"
-          :class="{ TCactive: btnstate.TCbj }"
-          @click="isactive('TCbj')"
-        ></div>
-      </div>
-      <div class="menus_content">
-        <div class="menus_content_TC">
-          <div class="menus_content_TC_h">
-            <i></i>
-            <h3>鏁板瓧鏈堢悆绯荤粺</h3>
-          </div>
-          <div class="menus_content_TC_c">
-            <el-tree
-              :data="data"
-              show-checkbox
-              node-key="id"
-              :default-expanded-keys="[2, 3]"
-              :default-checked-keys="[5]"
-              :props="defaultProps"
-            />
-          </div>
-        </div>
+      <div
+        class="imgBox"
+        v-for="(item,i) in menuOptions"
+        @click="setMenuClick(item)"
+      >
+        <img
+          v-if="checkMenuFlag != item.id"
+          class="imgIcon"
+          :src="require('../assets/img/leftBtn/'+item.imgUrl)"
+        >
+        <img
+          v-if="checkMenuFlag == item.id"
+          class="imgIcon"
+          :src="require('../assets/img/leftBtn/'+item.checkImgUrl)"
+        >
       </div>
     </div>
   </div>
 </template>
 
 <script lang="ts" setup>
-// import { layerList } from "@/api/api";
 import {
   ref,
   onMounted,
@@ -70,203 +45,67 @@
   defineProps,
   defineEmits,
 } from "vue";
-const defaultProps = {
-  children: "children",
-  label: "label",
-};
-const data = [
-  {
-    id: 1,
-    label: "Level one 1",
-    children: [
-      {
-        id: 4,
-        label: "Level two 1-1",
-      },
-    ],
-  },
-  {
-    id: 2,
-    label: "Level one 2",
-    children: [
-      {
-        id: 5,
-        label: "Level two 2-1",
-      },
-      {
-        id: 6,
-        label: "Level two 2-2",
-      },
-    ],
-  },
-  {
-    id: 3,
-    label: "Level one 3",
-    children: [
-      {
-        id: 7,
-        label: "Level two 3-1",
-      },
-      {
-        id: 8,
-        label: "Level two 3-2",
-      },
-    ],
-  },
-];
-let btnstate = reactive({
-  CDbj: false,
-  SSbj: false,
-  SZbj: false,
-  TCbj: false,
-});
-const isactive = (e: string) => {
-  for (const k in btnstate) {
-    btnstate[k] = false;
-    if (k == e) {
-      btnstate[k] = true;
-    }
+import menuData from "@/assets/js/Map/menuData";
+const menuOptions = ref([]);
+const checkMenuFlag = ref("");
+const setMenuClick = (res) => {
+  if (checkMenuFlag.value && checkMenuFlag.value == res.id) {
+    checkMenuFlag.value = null;
+  } else {
+    checkMenuFlag.value = res.id;
   }
 };
-const getList = async () => {
-  // const data = await layerList();
-  console.log(data);
-};
-getList();
+onMounted(() => {
+  menuOptions.value = menuData.leftMenu;
+});
 </script>
 <style lang="less" scoped>
 .menus {
-  // height: ;
   position: absolute;
-  top: 23px;
-  left: 10px;
-}
-.logo_box {
-  display: flex;
-  align-items: center;
-  // justify-content: space-between;
-  padding-left: 6px;
-  margin-bottom: 14px;
-  .logo {
-    width: 68px;
-    height: 68px;
-  }
-  .logo_name {
-    margin-left: 18px;
-    h3 {
-      font-size: 36px;
-      font-weight: 400;
-      color: #ffffff;
-      margin: 0;
-    }
-    .logo_name_b {
-      text-align: center;
-      width: 208px;
-      height: 9px;
-    }
-  }
-}
-.menus_box {
-  height: 70vh;
-  display: flex;
-  .menus_btn {
-    height: 100%;
-    width: 72px;
-    padding-top: 60px;
-    box-sizing: border-box;
-    background: url("../assets/img/menusbtnb.png") no-repeat center;
-    background-size: 100% 100%;
+  top: 27px;
+  left: 14px;
+  .logo_box {
     display: flex;
-    flex-direction: column;
     align-items: center;
-    // justify-content: space-evenly;
-    margin-right: 6px;
-    .menus_btn_btn1 {
-      width: 32px;
-      height: 32px;
-      background: url("../assets/img/cd.png") no-repeat center;
-      background-size: 100% 100%;
-      margin-bottom: 50px;
-      cursor: pointer;
+    .logo {
+      width: 68px;
+      height: 68px;
     }
-    .menus_btn_btn2 {
-      width: 32px;
-      height: 32px;
-      background: url("../assets/img/ss.png") no-repeat center;
-      background-size: 100% 100%;
-      margin-bottom: 50px;
-      cursor: pointer;
-    }
-    .menus_btn_btn3 {
-      width: 32px;
-      height: 32px;
-      background: url("../assets/img/sz.png") no-repeat center;
-      background-size: 100% 100%;
-      margin-bottom: 50px;
-      cursor: pointer;
-    }
-    .menus_btn_btn4 {
-      width: 32px;
-      height: 32px;
-      background: url("../assets/img/tc.png") no-repeat center;
-      background-size: 100% 100%;
-      cursor: pointer;
-    }
-    .CDactive {
-      background: url("../assets/img/cdl.png") no-repeat center;
-      background-size: 100% 100%;
-    }
-    .SSactive {
-      background: url("../assets/img/ssl.png") no-repeat center;
-      background-size: 100% 100%;
-    }
-    .SZactive {
-      background: url("../assets/img/szl.png") no-repeat center;
-      background-size: 100% 100%;
-    }
-    .TCactive {
-      background: url("../assets/img/tcl.png") no-repeat center;
-      background-size: 100% 100%;
-    }
-  }
-  .menus_content {
-    height: 100%;
-  }
-  .menus_content_TC {
-    width: 359px;
-    height: 100%;
-    .menus_content_TC_h {
-      padding: 12px;
-      background: #171e2e;
-      box-shadow: 0px 10px 10px 0px #262f47,
-        0px 20px 20px 0px rgba(8, 12, 19, 0.3);
-      display: flex;
-      align-items: center;
+    .logo_name {
+      margin-left: 14px;
 
-      i {
-        display: inline-block;
-        width: 11px;
-        height: 18px;
-        background: url("../assets/img/jiantouZ.png") no-repeat center;
-        background-size: 100% 100%;
-        cursor: pointer;
-        margin-right: 10px;
-      }
       h3 {
-        font-size: 18px;
+        font-size: 36px;
+        font-family: Source Han Sans CN;
         font-weight: 400;
         color: #ffffff;
-        font-family: Source Han Sans CN;
+        line-height: 9px;
+      }
+      .logo_name_b {
+        text-align: center;
+        width: 100%;
+        height: 9px;
       }
     }
-    .menus_content_TC_c {
-    }
   }
-}
-.el-tree {
-  background: transparent;
-  /deep/ .el-tree-node__label {
-    color: #ffffff;
+  .menus_box {
+    background: url("../assets/img/鐭╁舰 1.png");
+    left: 7px;
+    position: absolute;
+    top: 105px;
+    width: 71px;
+    height: 628px;
+    padding: 36px 0px;
+    .imgBox {
+      width: 100%;
+      display: flex;
+      justify-content: center;
+      margin-bottom: 52px;
+      img {
+        width: 30px;
+        height: 30px;
+      }
+    }
   }
 }
 </style>

--
Gitblit v1.9.3