zhoushihao
2024-04-14 97dd2e40d01e6a0a6976931d27df46d6e929a11f
UI-Project/src/layout/MainErpView.vue
@@ -1,17 +1,18 @@
<script setup>
import { RouterLink,useRouter} from 'vue-router'
import {useRouter} from 'vue-router'
import  useUserInfoStore from '@/stores/userInfo'
import userInfo from '@/stores/userInfo'
import request from "@/utils/request";
import {ElMessage} from "element-plus";
import {onMounted, reactive, ref, watch} from "vue"
import {ref, watch} from "vue"
import deepClone from "@/utils/deepClone"
import userInfo from '@/stores/userInfo'
import {Close, Grid, Histogram, MessageBox, SwitchButton} from "@element-plus/icons-vue";
const store=userInfo()
const router = useRouter()
const userStore = useUserInfoStore()
const user = userStore.user.userName
// store.createWebSocket();
function quit(){
  userStore.$patch({
@@ -23,31 +24,33 @@
//提取模块列表
let menuList=$ref([])
request.get("/menu").then((res) => {
request.get('/menu/sysMenu/list').then((res) => {
  if(res.code==200){
    menuList= deepClone(res.data)
  }else{
    ElMessage.warning(res.msg)
    router.push("/login")
    router.push('/login')
  }
})
//获取菜单列表
let menuItemList=$ref([])
request.get("/menuItem").then((res) => {
  if(res.code==200){
    menuItemList= deepClone(res.data)
  }else{
    ElMessage.warning(res.msg)
    router.push("/login")
  }
})
// let menuItemList = $ref([])
// request.get('/menuItem').then((res) => {
//   if (res.code == 200) {
//     menuItemList = deepClone(res.data)
//   } else {
//     ElMessage.warning(res.msg)
//     router.push('/login')
//   }
// })
const menu = ref(null)
let indexKey = ref(null)
function handleOpen(key) {
  indexKey.value=key
}
watch(indexKey,(newVal,oldVal) => {
  if(oldVal !== newVal && oldVal !== null){
    menu.value.close(oldVal)
@@ -90,25 +93,25 @@
      </el-header>
      <div id="line"></div>
      <el-container >
        <el-aside width="160px" style="height: 99%; background-color: #fff;" >
        <el-aside width="160px"
                  style="height: 99%; background-color: #fff;">
          <div class="menu"  >
             <div v-for="items in menuList">
                <div class='menu_title' @click="openMenu(items.id)"  >
              <div class='menu_title'
                   @click="openMenu(items.id)">
              <!-- <span class='indicator' >⌵</span> -->
              <!-- <span class='indicator' >≡</span> -->
              <!-- <img src="../assets/9.png" alt="" style="max-width: 50%;max-height: 50%;"> -->
                  <span>☰</span>
              {{items.menuName}}
                </div>
                <ul class='enter-x-left' v-show="openFlag==items.id">
              <ul class='enter-x-left'
                  v-show="openFlag==items.id">
                  <li v-for="menuItem in menuItemList"
                      v-show="items.id==menuItem.menuID"
                      style="margin-bottom: 2px"
                  >
                    <router-link
                        :to="{path:menuItem.url}">
                      {{ menuItem.itemName}}
                <li v-for="menuItem in items.children"
                    style="margin-bottom:2px">
                  <router-link :to="{path:menuItem.url}">
                    {{ menuItem.menuName }}
                    </router-link>
                  </li>