From cbcfcdcb943df7ab8979917972b44edd567b1151 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 25 三月 2025 17:12:36 +0800
Subject: [PATCH] 订单打印校区
---
src/layout/components/Navbar.vue | 304 +++++++++++++++++++++++++++-----------------------
1 files changed, 164 insertions(+), 140 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 8774f9e..5ebe862 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,170 +1,194 @@
<template>
- <div class="navbar">
- <hamburger
- :is-active="sidebar.opened"
- class="hamburger-container"
- @toggleClick="toggleSideBar"
- />
+ <div class="navbar">
+ <hamburger
+ :is-active="sidebar.opened"
+ class="hamburger-container"
+ @toggleClick="toggleSideBar"
+ />
- <breadcrumb class="breadcrumb-container" />
- <!-- 鍥哄畾鍙充笂瑙� -->
- <!-- <h3 style="position: fixed; top: 0; font-size: 16px; color: #5a5e66; " :style="'right:' + orgCss() ">{{ getOrgName() }}</h3> -->
+ <breadcrumb class="breadcrumb-container" />
+ <!-- 鍥哄畾鍙充笂瑙� -->
+ <!-- <h3 style="position: fixed; top: 0; font-size: 16px; color: #5a5e66; " :style="'right:' + orgCss() ">{{ getOrgName() }}</h3> -->
- <div class="right-menu">
- <el-dropdown trigger="click" ref="eldrop" style="margin-right:20px">
- <div class="avatar-wrapper" style="font-size:20px">
- {{ selectStaff.org.name }}
- <i class="el-icon-caret-bottom"></i>
- </div>
- <el-dropdown-menu slot="dropdown" align="center">
- <el-dropdown-item
- v-for="item in staffs"
- @click.native="changeStaff(item)"
- :key="item.id"
- >
- {{ item.org.name }}
- </el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- <el-dropdown class="avatar-container" trigger="click">
- <div class="avatar-wrapper">
- {{ '鎮ㄥソ锛�' + getUserName() }}
- <i class="el-icon-caret-bottom"></i>
- </div>
- <el-dropdown-menu slot="dropdown" class="user-dropdown">
- <el-dropdown-item @click.native="logout">
- <span style="display: block">閫�鍑虹櫥褰�</span>
- </el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
+ <div class="right-menu">
+ <el-dropdown trigger="click" ref="eldrop" style="margin-right: 20px">
+ <div class="avatar-wrapper" style="font-size: 20px">
+ {{ selectStaff ? selectStaff.org.name : "" }}-{{
+ selectStaff ? selectStaff.role.name : ""
+ }}
+ <i class="el-icon-caret-bottom"></i>
</div>
+ <el-dropdown-menu slot="dropdown" align="center">
+ <el-dropdown-item
+ v-for="item in staffs"
+ @click.native="changeStaff(item)"
+ :key="item.id"
+ >
+ {{ item ? item.org.name : "" }}-{{ item ? item.role.name : "" }}
+ </el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
+ <el-dropdown class="avatar-container" trigger="click">
+ <div class="avatar-wrapper">
+ {{ "鎮ㄥソ锛�" + getUserName() }}
+ <i class="el-icon-caret-bottom"></i>
+ </div>
+ <el-dropdown-menu slot="dropdown" class="user-dropdown">
+ <el-dropdown-item @click.native="logout">
+ <span style="display: block">閫�鍑虹櫥褰�</span>
+ </el-dropdown-item>
+ </el-dropdown-menu>
+ </el-dropdown>
</div>
+ </div>
</template>
<script>
-import { mapGetters } from 'vuex'
-import Breadcrumb from '@/components/Breadcrumb'
-import Hamburger from '@/components/Hamburger'
+import { mapGetters } from "vuex";
+import Breadcrumb from "@/components/Breadcrumb";
+import Hamburger from "@/components/Hamburger";
export default {
- data() {
- return {
- selectStaff: JSON.parse(localStorage.getItem("selectStaff")),
- staffs: JSON.parse(localStorage.getItem("staffs"))
- }
+ inject: ["reload"], // 渚濊禆娉ㄥ叆
+ data() {
+ return {
+ selectStaff: { org: {} },
+ staffs: [],
+ };
+ },
+ components: {
+ Breadcrumb,
+ Hamburger,
+ },
+ computed: {
+ ...mapGetters(["sidebar", "avatar"]),
+ },
+ methods: {
+ changeStaff(item) {
+ this.selectStaff = item;
+ localStorage.setItem("selectStaff", JSON.stringify(item));
+ // this.$router.go(0)
+ this.reload();
},
- components: {
- Breadcrumb,
- Hamburger
+ orgCss() {
+ return (
+ JSON.parse(localStorage.getItem("user")).name.length * 20 + 100 + "px"
+ );
},
- computed: {
- ...mapGetters([
- 'sidebar',
- 'avatar'
- ])
+ getOrgName() {
+ return JSON.parse(localStorage.getItem("selectStaff")).org.name;
},
- methods: {
- changeStaff(item) {
- this.selectStaff = item
- localStorage.setItem("selectStaff", JSON.stringify(item))
- this.$router.go(0)
- },
- orgCss() {
- return JSON.parse(localStorage.getItem("user")).name.length * 20 + 100 + 'px';
- },
- getOrgName() {
- return JSON.parse(localStorage.getItem("user")).staffs[0].org.name;
- },
- getUserName() {
- return JSON.parse(localStorage.getItem("user")).name;
- },
- toggleSideBar() {
- this.$store.dispatch('app/toggleSideBar')
- },
- async logout() {
- // await this.$store.dispatch('user/logout')
- this.$router.push(`/login`)
- }
+ getUserName() {
+ return JSON.parse(localStorage.getItem("user")).name;
+ },
+ toggleSideBar() {
+ this.$store.dispatch("app/toggleSideBar");
+ },
+ async logout() {
+ // await this.$store.dispatch('user/logout')
+ this.$router.push(`/login`);
+ },
+ },
+ beforeCreate() {
+ const user = JSON.parse(localStorage.getItem("user"));
+ if (!user) {
+ this.$router.push(`/login`);
}
-}
+ },
+ created() {
+ const selectStaff = JSON.parse(localStorage.getItem("selectStaff"));
+ if (selectStaff) {
+ this.selectStaff = selectStaff;
+ }
+ const staffs = JSON.parse(localStorage.getItem("staffs"));
+ if (staffs) {
+ this.staffs = staffs;
+ }
+ },
+};
</script>
<style lang="scss" scoped>
.navbar {
- height: 50px;
- overflow: hidden;
- position: relative;
- background: #fff;
- box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
+ height: 50px;
+ overflow: hidden;
+ position: relative;
+ background: #fff;
+ box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
- .hamburger-container {
- line-height: 46px;
- height: 100%;
- float: left;
+ .hamburger-container {
+ line-height: 46px;
+ height: 100%;
+ float: left;
+ cursor: pointer;
+ transition: background 0.3s;
+ -webkit-tap-highlight-color: transparent;
+
+ &:hover {
+ background: rgba(0, 0, 0, 0.025);
+ }
+ }
+
+ .breadcrumb-container {
+ float: left;
+ }
+
+ .right-menu {
+ float: right;
+ height: 100%;
+ line-height: 50px;
+
+ &:focus {
+ outline: none;
+ }
+
+ .right-menu-item {
+ display: inline-block;
+ padding: 0 8px;
+ height: 100%;
+ font-size: 18px;
+ color: #5a5e66;
+ vertical-align: text-bottom;
+
+ &.hover-effect {
cursor: pointer;
transition: background 0.3s;
- -webkit-tap-highlight-color: transparent;
&:hover {
- background: rgba(0, 0, 0, 0.025);
+ background: rgba(0, 0, 0, 0.025);
}
+ }
}
- .breadcrumb-container {
- float: left;
+ .avatar-container {
+ margin-right: 50px;
+
+ .avatar-wrapper {
+ margin-top: 5px;
+ position: relative;
+ cursor: pointer;
+
+ .user-avatar {
+ cursor: pointer;
+ width: 40px;
+ height: 40px;
+ border-radius: 10px;
+ }
+
+ .el-icon-caret-bottom {
+ cursor: pointer;
+ position: absolute;
+ right: -20px;
+ top: 25px;
+ font-size: 12px;
+ }
+ }
}
+ }
+}
- .right-menu {
- float: right;
- height: 100%;
- line-height: 50px;
-
- &:focus {
- outline: none;
- }
-
- .right-menu-item {
- display: inline-block;
- padding: 0 8px;
- height: 100%;
- font-size: 18px;
- color: #5a5e66;
- vertical-align: text-bottom;
-
- &.hover-effect {
- cursor: pointer;
- transition: background 0.3s;
-
- &:hover {
- background: rgba(0, 0, 0, 0.025);
- }
- }
- }
-
- .avatar-container {
- margin-right: 50px;
-
- .avatar-wrapper {
- margin-top: 5px;
- position: relative;
- cursor: pointer;
-
- .user-avatar {
- cursor: pointer;
- width: 40px;
- height: 40px;
- border-radius: 10px;
- }
-
- .el-icon-caret-bottom {
- cursor: pointer;
- position: absolute;
- right: -20px;
- top: 25px;
- font-size: 12px;
- }
- }
- }
- }
+.el-dropdown-menu {
+ max-height: 400px; /*璁剧疆鑿滃崟楂樺害涓�200px*/
+ overflow-y: auto; /*璁剧疆婊氬姩鏉�*/
}
</style>
--
Gitblit v1.8.0