zhoushihao
2024-04-14 97dd2e40d01e6a0a6976931d27df46d6e929a11f
过度使用,调整登录路径,获取菜单路径
4个文件已修改
164 ■■■■ 已修改文件
UI-Project/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/layout/MainErpView.vue 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/LoginView.vue 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/vite.config.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/config.js
@@ -1,5 +1,5 @@
export default {
  serverUrl:"localhost:8080/mesModuleTools",
  serverUrl2:"localhost:8081/mesModuleTools"
  serverUrl: "localhost:8081",
  serverUrl2: "localhost:8081/mesModuleTools"
  //serverUrl:"res.abeim.cn"
}
UI-Project/src/layout/MainErpView.vue
@@ -1,57 +1,60 @@
<script setup>
import { RouterLink,useRouter} from 'vue-router'
import  useUserInfoStore from '@/stores/userInfo'
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 store = userInfo()
const router = useRouter()
const userStore = useUserInfoStore()
const user = userStore.user.userName
// store.createWebSocket();
function quit(){
function quit() {
  userStore.$patch({
    user:null
    user: null
  })
  router.push("/login")
}
//提取模块列表
let menuList=$ref([])
request.get("/menu").then((res) => {
  if(res.code==200){
    menuList= deepClone(res.data)
  }else{
let menuList = $ref([])
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
  indexKey.value = key
}
watch(indexKey,(newVal,oldVal) => {
  if(oldVal !== newVal && oldVal !== null){
    menu.value.close(oldVal)
  }
watch(indexKey, (newVal, oldVal) => {
      if (oldVal !== newVal && oldVal !== null) {
        menu.value.close(oldVal)
      }
},
    {deep:true}
)
@@ -81,39 +84,39 @@
        <div style="height: 100%;width: 100%;display: flex;background-color: #fff;">
          <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%">
          <h3 style="margin: 1rem  ;font-weight: bold;width: 20vw;"> 欢迎{{ user }}使用北玻MES系统!</h3>
          <span style="height: 70%;width: 78vw;margin-top: 1rem;" >
            <el-button  class="sys-quit" @click="quit" round>
              <el-icon size="large"><SwitchButton  size=""/></el-icon>
          <span style="height: 70%;width: 78vw;margin-top: 1rem;">
            <el-button class="sys-quit" @click="quit" round>
              <el-icon size="large"><SwitchButton size=""/></el-icon>
            </el-button>
          </span>
        </div>
      </el-header>
      <div id="line"></div>
      <el-container >
        <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)"  >
              <!-- <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">
                  <li v-for="menuItem in menuItemList"
                      v-show="items.id==menuItem.menuID"
                      style="margin-bottom: 2px"
                  >
                    <router-link
                        :to="{path:menuItem.url}">
                      {{ menuItem.itemName}}
                    </router-link>
                  </li>
                </ul>
      <el-container>
        <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)">
                <!-- <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">
                <li v-for="menuItem in items.children"
                    style="margin-bottom:2px">
                  <router-link :to="{path:menuItem.url}">
                    {{ menuItem.menuName }}
                  </router-link>
                </li>
              </ul>
            </div>
          </div>
        </el-aside>
UI-Project/src/views/LoginView.vue
@@ -1,9 +1,8 @@
<script lang="ts" setup>
import {onMounted, onUnmounted, reactive, ref} from "vue"
import {useRouter,useRoute } from 'vue-router'
import {useRoute, useRouter} from 'vue-router'
import type {FormInstance, FormRules} from 'element-plus'
import { ElMessage } from "element-plus";
import { Lock,Avatar } from '@element-plus/icons-vue'
import {ElMessage} from "element-plus";
import request from '@/utils/request'
import userInfo from '@/stores/userInfo'
@@ -48,20 +47,22 @@
  if (!formEl) return
  formEl.validate((valid) => {
    if (valid) {
      loginLoadings.value=true
      request.post('/user/login',
          userForm).then((res) => {
        if(res['code']==200){
          store.$patch({user:res.data})
      loginLoadings.value = true
      request
          .post('/userinfo/login', userForm)
          .then((res) => {
            if (res['code'] == 200) {
              store.$patch({user: res.data})
              console.log(res.data)
          router.push('/main')
          ElMessage.success(`登录成功`)
        } else {
          ElMessage.error(res['msg'])
          loginLoadings.value=false
          return false
        }
      }).catch(error => {
              router.push('/main')
              ElMessage.success(`登录成功`)
            } else {
              ElMessage.error(res['msg'])
              loginLoadings.value = false
              return false
            }
          }).catch(error => {
        ElMessage.error("服务器连接失败")
        loginLoadings.value=false
        return false
@@ -103,9 +104,9 @@
        src="../../src/assets/background.jpg"
      /> -->
      <div>
      <div style="position: absolute; left: 8vw; top: 6vw; ">
        <img src="../../src/assets/3.png">
      </div>
        <div style="position: absolute; left: 8vw; top: 6vw; ">
          <img src="../../src/assets/3.png">
        </div>
       <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
        北玻MES系统
      </div>
UI-Project/vite.config.js
@@ -1,6 +1,6 @@
import { fileURLToPath, URL } from 'node:url'
import {fileURLToPath, URL} from 'node:url'
import { defineConfig } from 'vite'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
@@ -22,9 +22,9 @@
    https: false,
    proxy: {
      '/api': {
        target: 'http://localhost:8080/mesModuleTools',
        target: 'http://localhost:8081/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '/mesModuleTools'),
        rewrite: (path) => path.replace(/^\/api/, '/'),
      },
      '/api2': {
        target: 'http://localhost:8081/mesModuleTools',