From f32aea98aa5e6f6922aaa4cb969b202301a3faab Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期四, 05 六月 2025 14:23:33 +0800 Subject: [PATCH] 分页修改 --- src/layout/components/Navbar.vue | 140 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 106 insertions(+), 34 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index f669a6d..3c70204 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -1,27 +1,30 @@ <template> <div class="navbar"> - <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> - <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!settingsStore.topNav" /> - <top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" /> - + <div> + <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> + <breadcrumb v-if="!settingsStore.topNav" id="breadcrumb-container" class="breadcrumb-container" /> + </div> +<!-- <top-nav v-if="settingsStore.topNav" id="topmenu-container" class="topmenu-container" />--> + <div class="center-menu"> + <span class="label">{{userStore.currentFactoryName}}</span> + <el-dropdown @command="handleFactoryChange" class="right-menu-item hover-effect" trigger="click"> + <div> + <el-icon size="20"><Switch /></el-icon> + </div> + <template #dropdown> + <el-dropdown-menu > + <el-dropdown-item + v-for="item in factoryList" + :key="item.deptId" + :command="item" + > + {{ item.deptName }} + </el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + </div> <div class="right-menu"> - <template v-if="appStore.device !== 'mobile'"> - <header-search id="header-search" class="right-menu-item" /> - - <el-tooltip content="婧愮爜鍦板潃" effect="dark" placement="bottom"> - <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> - </el-tooltip> - - <el-tooltip content="鏂囨。鍦板潃" effect="dark" placement="bottom"> - <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> - </el-tooltip> - - <screenfull id="screenfull" class="right-menu-item hover-effect" /> - - <el-tooltip content="甯冨眬澶у皬" effect="dark" placement="bottom"> - <size-select id="size-select" class="right-menu-item hover-effect" /> - </el-tooltip> - </template> <div class="avatar-container"> <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click"> <div class="avatar-wrapper"> @@ -60,25 +63,32 @@ import useAppStore from '@/store/modules/app' import useUserStore from '@/store/modules/user' import useSettingsStore from '@/store/modules/settings' +import { userLoginFacotryList } from "@/api/system/user.js" +import Cookies from "js-cookie"; +import { decrypt } from "@/utils/jsencrypt" const appStore = useAppStore() const userStore = useUserStore() const settingsStore = useSettingsStore() - +const factoryList = ref([]) function toggleSideBar() { appStore.toggleSideBar() } +// const redirect = ref(undefined) +// watch(route, (newRoute) => { +// redirect.value = newRoute.query && newRoute.query.redirect +// }, { immediate: true }) function handleCommand(command) { switch (command) { case "setLayout": - setLayout(); - break; + setLayout() + break case "logout": - logout(); - break; + logout() + break default: - break; + break } } @@ -89,15 +99,50 @@ type: 'warning' }).then(() => { userStore.logOut().then(() => { - location.href = '/index'; + location.href = '/index' }) - }).catch(() => { }); + }).catch(() => { }) } const emits = defineEmits(['setLayout']) function setLayout() { - emits('setLayout'); + emits('setLayout') } + +function toggleTheme() { + settingsStore.toggleTheme() +} + +function getUserLoginFacotryList() { + if(userStore.id){ + userLoginFacotryList({userId:userStore.id}).then(res => { + console.log('res', res) + factoryList.value = res.data + }) + }else { + factoryList.value = [] + } +} + +function handleFactoryChange(command) { + console.log('command', command) + handleLogin(command.deptId); +} + +function handleLogin(currentFatoryId){ + const loginForm = { + username: Cookies.get("username"), + password: Cookies.get("password") === undefined ? null : decrypt(Cookies.get("password")), + currentFatoryId: currentFatoryId + } + userStore.loginCheckFactory(loginForm).then(res => { + window.location.reload(); + }).catch((err) => { + console.log(err) + }) +} + +getUserLoginFacotryList(); </script> <style lang='scss' scoped> @@ -105,8 +150,22 @@ height: 50px; overflow: hidden; position: relative; - background: #fff; + background: var(--navbar-bg); box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + .center-menu { + line-height: 50px; + position: absolute; + left: 50%; + transform: translateX(-50%); + display: flex; + align-items: center; + .label { + font-weight: bold; + font-size: 18px; + color: #333333; + margin-right: 10px; + } + } .hamburger-container { line-height: 46px; @@ -150,7 +209,7 @@ padding: 0 8px; height: 100%; font-size: 18px; - color: #5a5e66; + color: var(--navbar-text); vertical-align: text-bottom; &.hover-effect { @@ -159,6 +218,19 @@ &:hover { background: rgba(0, 0, 0, 0.025); + } + } + + &.theme-switch-wrapper { + display: flex; + align-items: center; + + svg { + transition: transform 0.3s; + + &:hover { + transform: scale(1.15); + } } } } @@ -174,14 +246,14 @@ cursor: pointer; width: 40px; height: 40px; - border-radius: 10px; + border-radius: 50px; } i { cursor: pointer; position: absolute; right: -20px; - top: 25px; + top: 14px; font-size: 12px; } } -- Gitblit v1.9.3