1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <template>
- <div>
- <div class="front-notice"><i class="el-icon-bell" style="margin-right: 2px"></i>公告:{{ top }}</div>
- <!--头部-->
- <div class="front-header">
- <div class="front-header-left">
- <img src="@/assets/imgs/logo.png" alt="">
- <div class="title">项目前台</div>
- </div>
- <div class="front-header-center">
- <div class="front-header-nav">
- <el-menu :default-active="$route.path" mode="horizontal" router>
- <el-menu-item index="/front/home">首页</el-menu-item>
- <el-menu-item index="/front/person">个人中心</el-menu-item>
- </el-menu>
- </div>
- </div>
- <div class="front-header-right">
- <div v-if="!user.username">
- <el-button @click="$router.push('/login')">登录</el-button>
- <el-button @click="$router.push('/register')">注册</el-button>
- </div>
- <div v-else>
- <el-dropdown>
- <div class="front-header-dropdown">
- <img :src="user.avatar" alt="">
- <div style="margin-left: 10px">
- <span>{{ user.name }}</span><i class="el-icon-arrow-down" style="margin-left: 5px"></i>
- </div>
- </div>
- <el-dropdown-menu slot="dropdown">
- <el-dropdown-item>
- <div style="text-decoration: none" @click="logout">退出</div>
- </el-dropdown-item>
- </el-dropdown-menu>
- </el-dropdown>
- </div>
- </div>
- </div>
- <!--主体-->
- <div class="main-body">
- <router-view ref="child" @update:user="updateUser" />
- </div>
- </div>
- </template>
- <script>
- export default {
- name: "FrontLayout",
- components:{
- },
- data () {
- return {
- top: '',
- notice: [],
- user: JSON.parse(localStorage.getItem("xm-user") || '{}'),
- }
- },
- mounted() {
- this.loadNotice()
- },
- methods: {
- loadNotice() {
- this.$request.get('/notice/selectAll').then(res => {
- this.notice = res.data
- let i = 0
- if (this.notice && this.notice.length) {
- this.top = this.notice[0].content
- setInterval(() => {
- this.top = this.notice[i].content
- i++
- if (i === this.notice.length) {
- i = 0
- }
- }, 2500)
- }
- })
- },
- updateUser() {
- this.user = JSON.parse(localStorage.getItem('xm-user') || '{}') // 重新获取下用户的最新信息
- },
- // 退出登录
- logout() {
- localStorage.removeItem("xm-user");
- this.$router.push("/login");
- },
- }
- }
- </script>
- <style scoped>
- @import "@/assets/css/front.css";
- </style>
|