From 07b0cdcb34db682b51ca972f5c23da653aa5d32d Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期一, 21 十月 2024 15:49:01 +0800 Subject: [PATCH] 钢化完整版图样式逻辑更改 --- UI-Project/src/layout/MainErpView.vue | 200 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 151 insertions(+), 49 deletions(-) diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue index 91453ae..5528ee9 100644 --- a/UI-Project/src/layout/MainErpView.vue +++ b/UI-Project/src/layout/MainErpView.vue @@ -1,57 +1,129 @@ <script setup> -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 {ref, watch} from 'vue' +import {ref, watch, onMounted } from 'vue' import deepClone from '@/utils/deepClone' - +import { useRouter } from 'vue-router'; +import { useI18n } from 'vue-i18n' + const { t } = useI18n() + let language = ref(localStorage.getItem('lang') || 'zh') const store = userInfo() - +const isCollapse = ref(false); +// const { $i18n } = useI18n(); // 鑾峰彇 i18n 瀹炰緥 const router = useRouter() const userStore = useUserInfoStore() -const user = userStore.user.userName +// const user = userStore.user.userName -// store.createWebSocket(); -function quit() { - userStore.$patch({ - user: null, - }) - // router.push('/login') - let token = window.localStorage.getItem('userInfo') -console.log(token); - request.get("/loadGlass/sys/user/login").then((res) => { - if (res.code === 200) { - ElMessage.success(res.msg); - console.log(res.data); - } else { - ElMessage.warning(res.msg); - // router.push("/login"); - } - }); +let userInfoStr = window.localStorage.getItem('userInfo') +console.log(userInfoStr); +// const userInfoStr = localStorage.getItem('userInfo'); +// let userInfo = userInfoStr.user.token; +let token = userInfo; // 鎻愬彇 token +// 閫�鍑虹櫥褰曟柟娉� +function quit() { + // localStorage.removeItem('token'); + store.$patch({ + user: null, + }) + router.push('/login') } - + function replaceChineseWithEnglish(menuData) { + // 瀹氫箟涓縿鏂囧鐓у叧绯诲璞� + const translation = { + '涓婄墖鏈�': '小褌芯谢 蟹邪谐褉褍蟹泻懈', + '涓婄墖': '袙械褉褏薪褟褟 褔邪褋褌褜', + '鎺扮墖/璇嗗埆': '袪邪蟹谢芯屑/懈写械薪褌懈褎懈泻邪褑懈褟', + '鍗у紡缂撳瓨': ' 袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉', + '纾ㄨ竟鍓嶅崸寮忕紦瀛�': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 锌械褉械写 褕谢懈褎芯胁泻芯泄', + '涓嬬墖鍗у紡缂撳瓨': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈', + '纾ㄨ竟锛堝喎鍔犲伐锛�': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)', + '1绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 1 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)', + '2绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 2 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)', + '澶х悊鐗囩': '袘褍褎械褉薪邪褟 褋懈褋褌械屑邪', + '閽㈠寲': '袟邪泻邪谢泻邪', + '閽㈠寲鍓�': '袩械褉械写 蟹邪泻邪谢泻懈', + '閽㈠寲鍚�': '袩芯褋谢械 蟹邪泻邪谢泻懈', + '涓嬬墖鍙�': '小褌芯谢 褉邪蟹谐褉褍蟹泻懈', + '绯荤粺绠$悊': '校锌褉邪胁谢械薪懈械 褋懈褋褌械屑芯泄', + '鐢ㄦ埛绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢械屑', + '鏉冮檺绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢薪芯屑芯褔懈褟屑懈', + '瑙掕壊绠$悊': '校锌褉邪胁谢械薪懈械 褉芯谢褜褞', + '鍙鍖栫郴缁�': '袙懈蟹褍邪谢褜薪邪褟 褋懈褋褌械屑邪', + '鎶ュ伐绠$悊': '校锌褉邪胁谢械薪懈械 芯褌褔械褌薪芯褋褌褜褞', + '浠撳偍涓績': '小泻谢邪写褋泻芯泄 褑械薪褌褉', + '鍘熺墖浠撳偍': '小泻谢邪写 褋褘褉褜褟', + }; + menuData.forEach(menu => { + menu.menuName = translation[menu.menuName] || menu.menuName; + // if (menu.children) { + menu.children && menu.children.forEach(submenu => { + submenu.menuName = translation[submenu.menuName] || submenu.menuName; + }); + // } + }); +} +function replaceChineseWithRussian(menuData) { + // 瀹氫箟涓嫳鏂囧鐓у叧绯诲璞� + const translation = { + '涓婄墖鏈�': 'Loading Machine', + '涓婄墖': 'Start showing a movie', + '鎺扮墖/璇嗗埆': 'Breaking /Identification', + '鍗у紡缂撳瓨': 'Horizontal cache', + '纾ㄨ竟鍓嶅崸寮忕紦瀛�': 'Horizontal buffer before edge grinding', + '涓嬬墖鍗у紡缂撳瓨': 'Offline horizontal cache', + '纾ㄨ竟锛堝喎鍔犲伐锛�': 'Grinding edge (cold processing)', + '1绾跨(杈�(鍐峰姞宸�)': '1-line edge grinding (cold processing)', + '2绾跨(杈�(鍐峰姞宸�)': '2-line edge grinding (cold processing)', + '澶х悊鐗囩': 'Dali slice cage', + '閽㈠寲': 'Toughened', + '閽㈠寲鍓�': 'Before Tempering', + '閽㈠寲鍚�': 'After Tempering', + '涓嬬墖鍙�': 'Next Stage', + '绯荤粺绠$悊': 'System Management', + '鐢ㄦ埛绠$悊': 'User Management', + '鏉冮檺绠$悊': 'Rights Management', + '瑙掕壊绠$悊': 'Roles', + '鍙鍖栫郴缁�': 'visualization system', + '鎶ュ伐绠$悊': 'Job reporting management', + '浠撳偍涓績': 'Storage Center', + '鍘熺墖浠撳偍': 'Original film storage', + }; + menuData.forEach(menu => { + menu.menuName = translation[menu.menuName] || menu.menuName; + // if (menu.children) { + menu.children && menu.children.forEach(submenu => { + submenu.menuName = translation[submenu.menuName] || submenu.menuName; + }); + // } + }); +} //鎻愬彇鑿滃崟妯″潡鍒楄〃 let menuList = $ref([]) -// request.get('/loadGlass/menu/sysMenu/list').then((res) => { + request.get('/loadGlass/sys/menu/getMenuTree').then((res) => { if (res.code == 200) { - menuList = deepClone(res.data) - console.log(response.data.token); + menuList = res.data + console.log(language.value) + // translateMenu(menuList.value, language.value); + if (language.value === 'en') { + replaceChineseWithRussian(menuList); + } + if (language.value === 'py') { + replaceChineseWithEnglish(menuList); + } } 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) => { @@ -75,6 +147,9 @@ openFlag = menuID } } +function toggleCollapse() { + isCollapse.value = !isCollapse.value; +} </script> <template> @@ -83,61 +158,80 @@ <el-header> <div style="height: 100%;width: 100%;display: flex;background-color: #fff;"> <img src="../assets/northGlass.ico" - alt="" + alt="" @click="toggleCollapse" style="max-width: 100%;max-height: 100%"> - <h3 style="margin: 1rem ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓MES绯荤粺锛�</h3> + <h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ userName }}{{ $t('main.titleLast') }}</h3> <span style="height: 70%;width: 78vw;margin-top: 1rem;"> + <!-- <el-button class="sys-quit" + @click="quit" + round> + <el-icon size="large"> + <SwitchButton size=""/>{{ $t('main.quit') }} + </el-icon> + </el-button> --> <el-button class="sys-quit" @click="quit" round> <el-icon size="large"> - <SwitchButton size=""/>閫�鍑� + <SwitchButton size=""/>{{ $t('main.quit') }} </el-icon> </el-button> + <!-- <div class="header-left"> + <el-button @click="toggleCollapse" style="height: 30px;"> + <el-icon><Expand /></el-icon> + </el-button> + </div> --> </span> </div> </el-header> <div id="line"></div> <el-container> - <el-aside width="160px" - style="height: 99%; background-color: #fff;"> - <div class="menu"> + <el-aside :width="isCollapse ? '0px' : '200px'" style="background-color: #fff;"> + <el-row :span="20"> + <el-menu :default-active="activePath" class="el-menu-vertical-demo" > + <div class="menu"> <div v-for="items in menuList"> - <div class='menu_title' + <div class='menu_title' v-show="!isCollapse" @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> - - <el-main> + </li> + </ul> + </div> + </div> + </el-menu> + </el-row> +</el-aside> +<el-main> <div id="main"> <router-view></router-view> </div> </el-main> - </el-container> </el-container> </div> </template> <style scoped> + +.el-menu-vertical-demo:not(.el-menu--collapse) { + width: 200px; + min-height: 400px; + text-align: left; + +} + + + + #all { background-color: #eee; height: 100%; @@ -231,6 +325,7 @@ ul li { height: 28px; + width: 180px; line-height: 30px; /* background: rgb(128, 128, 128); */ color: #000000; @@ -279,7 +374,11 @@ } .menu_title { - width: 140px; + width: 180px; + /* white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; */ + height: 45px; line-height: 55px; /* background: #fafafa; */ @@ -341,4 +440,7 @@ transform: translateX(0); } } +.header-left{ + margin-left: -350px; +} </style> \ No newline at end of file -- Gitblit v1.8.0