<template> <div class="navbar"> <!-- <hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> --> <!-- <breadcrumb class="breadcrumb-container" /> --> <div class="navbar_top"> <div class="nav_left"> <!-- <div class="log_icon"> <el-avatar :size="24" :src="imgSrc" @error="errorHandler"> <img src="@/assets/logo/error.png" /> </el-avatar> </div> --> <!-- <div class="dividing"></div> --> <div class="log_name">{{ pageTitle }}</div> </div> <div class="right-menu"> <el-dropdown> <div class="user"> <img class="head-icon-img" src="../../assets/status/ic_user.png" alt="" /> <span class="name">{{ name }}</span> <i class="el-icon-arrow-down el-icon--right"></i> </div> <el-dropdown-menu class="handleMsgMneu" slot="dropdown"> <el-dropdown-item v-if="name != '匿名用户'"> <span class="editPwd" @click="dialogPwd">修改密码</span> </el-dropdown-item> <el-dropdown-item> <span @click="exitDialog" class="layoutSys">退出登录</span> </el-dropdown-item> </el-dropdown-menu> </el-dropdown> <el-dropdown> <el-button class="btn-help" plain>帮助</el-button> <el-dropdown-menu class="handleMsgMneu" slot="dropdown"> <el-dropdown-item> <div class="handleMsgMneu-item"> <span class="editPwd">行李全流程跟踪数据系统-用户使用手册V2.1</span> <span> <el-button @click="lookFile('行李全流程跟踪数据系统-用户使用手册V2.1.docx')" type="text">查看</el-button> <el-button @click="downFile('行李全流程跟踪数据系统-用户使用手册V2.1.docx')" type="text">下载</el-button> </span> </div> </el-dropdown-item> <el-dropdown-item> <div class="handleMsgMneu-item"> <span class="editPwd">行李跟踪航站清单</span> <span> <el-button @click="lookFile('行李跟踪航站清单(2024年7月).xlsx')" type="text">查看</el-button> <el-button @click="downFile('行李跟踪航站清单(2024年7月).xlsx')" type="text">下载</el-button> </span> </div> </el-dropdown-item> <el-dropdown-item> <div class="handleMsgMneu-item"> <span class="editPwd">行李全流程跟踪数据系统账号申请表</span> <span> <!-- <el-button @click="lookFile('行李全流程跟踪数据系统账号申请.doc')" type="text">查看</el-button> --> <el-button @click="downFile('行李全流程跟踪数据系统账号申请.doc')" type="text">下载</el-button> </span> </div> </el-dropdown-item> <el-dropdown-item> <div class="handleMsgMneu-item"> <span class="editPwd">行李全流程跟踪数据系统管理规程</span> <span> <el-button @click="lookFile('行李全流程跟踪数据系统管理规程.pdf')" type="text">查看</el-button> <el-button @click="downFile('行李全流程跟踪数据系统管理规程.pdf')" type="text">下载</el-button> </span> </div> </el-dropdown-item> <el-dropdown-item> <div class="handleMsgMneu-item"> <span class="editPwd">航站三字码对应表</span> <span> <el-button @click="lookFile('航站三字码对应表.xlsx')" type="text">查看</el-button> <el-button @click="downFile('航站三字码对应表.xlsx')" type="text">下载</el-button> </span> </div> </el-dropdown-item> </el-dropdown-menu> </el-dropdown> <!-- <div class="seting"> <span @click="toSystem" class="img-icon"></span> </div> --> <!-- <div class="lock"> <span @click="dialogPwd" class="img-icon"></span> </div> <div class="exit"> <span @click="exitDialog" class="img-icon"></span> </div> --> </div> </div> <div class="navbar_lower" :class="isSidebar ? 'hide_navbar_lower' : ''" id="navbar_lowers"> <el-breadcrumb separator-class="el-icon-arrow-right"> <el-breadcrumb-item v-for="(item, index) in breadList" :key="index" :to="index < breadList.length -1 ? item.path : undefined"> <span>{{ item.meta.title }}</span> </el-breadcrumb-item> </el-breadcrumb> <!-- <tags-view /> --> <div class="newdata">{{ newData }}</div> </div> </div> </template> <script> import { mapGetters } from 'vuex' import Breadcrumb from '@/components/Breadcrumb' import Hamburger from '@/components/Hamburger' // import { Format } from "../../config/util"; import { timeInZone } from '@/utils/table' // import TagsView from "./TagsView"; export default { props: ['logstart'], data () { return { newData: '', breadList: this.getBreadcrumb(), getTimeInterval: null, imgSrc: window.location.origin + sessionStorage.getItem('appLog'), pageTitle: sessionStorage.getItem('appName'), name: sessionStorage.getItem('userName') } }, components: { Breadcrumb, Hamburger // TagsView, }, watch: { $route (val) { this.breadList = this.getBreadcrumb() } }, computed: { ...mapGetters(['sidebar', 'avatar', 'timeZone']), isSidebar () { return !this.sidebar.opened } }, mounted () { this.getTimeInterval = setInterval(() => { // this.newData = Format("yyyy/MM/dd hh:mm:ss", new Date()); this.newData = timeInZone(new Date(), this.timeZone).replaceAll('-', '/') }) }, beforeDestroy () { this.getTimeInterval && clearInterval(this.getTimeInterval) this.getTimeInterval = null }, methods: { errorHandler () { return true }, toggleSideBar () { this.$store.dispatch('app/toggleSideBar') }, async logout () { await this.$store.dispatch('user/logout') this.$router.push(`/login?redirect=${this.$route.fullPath}`) }, getBreadcrumb () { return this.$route.matched.filter(item => item.name && item.meta.title) }, //修改密码 dialogPwd () { this.$store.dispatch('app/togglePwdflag', true) }, //退出系统-弹框 exitDialog () { this.$store.dispatch('app/toggleOutflag', true) }, //查看 lookFile (fileName) { this.$router.push({ path: "/preview", query: { fileName }, }) }, //下载 downFile (fileName) { const a = document.createElement('a') // 给a标签的href属性值加上地址,注意:这里是绝对路径,不用加 点. a.href = './' + fileName // 设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可 a.download = fileName // 障眼法藏起来a标签 a.style.display = 'none' // 将a标签追加到文档对象中 document.body.appendChild(a) // 模拟点击了<a>标签,会触发<a>标签的href的读取,浏览器就会自动下载了 a.click() // 一次性的,用完就删除a标签 a.remove() // window.location.href = './行李全流程跟踪数据系统-用户使用手册V2.1.pdf' }, goBackHandler (item) { return item.parent?.path } } } </script> <style lang="scss" scoped> .navbar { width: 100%; height: 80px; overflow: hidden; position: relative; background: #fff; position: fixed; top: 0; box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); z-index: 999; ::v-deep .el-breadcrumb__separator { display: none; } ::v-deep .el-breadcrumb__inner { padding: 8px 31px 9px 31px; color: #afb4bf; } ::v-deep .el-breadcrumb__item:last-child { .el-breadcrumb__inner { padding: 8px 31px 9px 31px; background: #dfe3ea; font-size: 14px; font-family: Microsoft YaHei; font-weight: 400; color: #101116; } } > .navbar_top { width: 100%; height: 48px; background: #2d67e3; display: flex; align-items: center; justify-content: space-between; // border-bottom: 1px solid #f2f6fc; padding-left: 14px; > .nav_left { height: 100%; display: flex; align-items: center; > .dividing { width: 1px; height: 16px; margin-left: 8px; margin-right: 12px; background: #ffffff; } > .log_name { font-size: 14px; font-family: Microsoft YaHei; font-weight: bold; color: #ffffff; } } .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: 48px; margin-right: 44px; display: flex; &:focus { outline: none; } > div { margin-right: 20px; } .img-icon { display: inline-block; width: 24px; height: 24px; vertical-align: middle; background-repeat: no-repeat; background-size: cover; cursor: pointer; transition: all 0.3s; } .lock { .img-icon { background-image: url("../../assets/status/ic_password.png"); &:hover { background-image: url("../../assets/status/ic_password_hovar.png"); } } } .exit { .img-icon { background-image: url("../../assets/status/ic_exit.png"); &:hover { background-image: url("../../assets/status/ic_exit_hovar.png"); } } } .btn-help { height: 20px; line-height: 20px; padding: 0; width: 38px; margin-top: 14px; border: 1px solid #fff; background: none; color: #fff; transition: all 0.3s; &:hover { background: #fff; color: #2d67e3; } } .user { img { position: relative; top: 6px; margin-right: 10px; } color: #fff; font-weight: 600; font-size: 16px; cursor: pointer; } > .right { width: 100%; height: 100%; display: flex; align-items: center; justify-content: flex-start; padding-right: 80px; > .log { width: 40px; height: 40px; background: #e1e5eb; border-radius: 50%; margin-right: 16px; } > p { font-size: 16px; font-family: Microsoft YaHei; font-weight: 300; color: #303133; } } .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: 30px; height: 100%; .avatar-wrapper { height: 100%; // margin-top: 5px; display: flex; align-items: center; position: relative; .search { width: 21px; height: 21px; background: url("../../assets/header/ic_search_top.png") no-repeat; background-size: 100% 100%; margin-top: 10px; margin-right: 41px; } .fullscreen { width: 21px; height: 21px; background: url("../../assets/header/ic_fullscreen_top.png") no-repeat; background-size: 100% 100%; margin-top: 10px; margin-right: 20px; } .journaler { width: 21px; height: 21px; background: url("../../assets/header/ic_data_top.png") no-repeat; background-size: 100% 100%; margin-top: 10px; margin-right: 41px; } .information { width: 21px; height: 21px; background: url("../../assets/header/ic_message_top.png") no-repeat; background-size: 100% 100%; margin-top: 10px; margin-right: 41px; position: relative; > .information_number { position: absolute; width: 15px; height: 15px; background: #ed5050; color: #ffffff; border-radius: 50%; top: -35%; right: -30%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-family: Microsoft YaHei; font-weight: 400; } } .user-avatar { cursor: pointer; width: 24px; height: 24px; border-radius: 50%; margin-right: 16px; } .username { // width: 200px; height: 40px; // margin-left: 5%; color: #ffffff; font-size: 16px; font-family: Microsoft YaHei; font-weight: bold; line-height: 40px; display: inline; } .el-icon-caret-bottom { cursor: pointer; position: absolute; right: -20px; top: 20px; font-size: 12px; } } } } } > .navbar_lower { width: 100%; height: 32px; display: flex; background: #ffffff; justify-content: space-between; align-items: center; padding-left: 220px; padding-right: 24px; ::v-deep .el-breadcrumb { font-size: 18px; font-family: Microsoft YaHei; font-weight: 400; // color: #ffffff; .is-link { font-size: 14px !important; // color: #ffffff !important; } .el-breadcrumb__item { .el-breadcrumb__inner { font-size: 14px; } } // .is-link { // font-size: 14px; // color: #ffffff !important; // } .btn-back { margin-left: -18px; margin-right: 10px; font-size: 14px; color: #2d67e3; cursor: pointer; } } > .newdata { font-size: 14px; font-family: DIN; font-weight: bold; min-width: 200px; text-align: right; // color: #ffffff; } } .hide_navbar_lower { padding-left: 48px; } } </style>