基于element-ui的顶部栏

简介: 基于element-ui的顶部栏

塞尔达小队电商管理系统后台顶部栏

效果展示:

代码解析和功能说明

这段代码是一个Vue组件,用于渲染塞尔达小队电商管理系统后台的顶部栏。让我们逐行来解析并添加详细注释。

<template>
  <div class="app-container">
    <el-header style="box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);">
      <!-- 更改 el-row 的布局方式为 justify 为 center -->
      <el-row type="flex" align="top" justify="center"> 
        <el-col :span="24">
          <div class="header-content">
            <h1 class="title">塞尔达小队电商管理系统后台</h1>
            <el-button v-if="!loggedIn" @click="showLoginDialog" type="primary" class="login-button">登录</el-button>
            <el-avatar v-else :src="user.avatar" :size="36" shape="circle"></el-avatar>
          </div>
        </el-col>
      </el-row>
    </el-header>
    <!-- 其他页面内容 -->
    <el-dialog title="用户登录" :visible.sync="loginDialogVisible">
      <!-- 登录表单 -->
    </el-dialog>
  </div>
</template>
  • 第 3 行:给最外层的容器 app-container 添加样式。
  • 第 5-8 行:创建顶部栏的容器,使用 el-header 组件,并设置阴影效果。
  • 第 9-14 行:使用 el-row 和 el-col 组件进行布局,将内容居中对齐。
  • 第 10 行:将行的布局方式设置为 justify:center,使内容在水平方向上居中。
  • 第 11 行:创建一个列,并占据一行的所有空间。
  • 第 12-16 行:添加顶部栏的内容。
  • 第 13 行:显示网站标题 “塞尔达小队电商管理系统后台”。
  • 第 14 行:如果用户未登录,则显示一个 “登录” 按钮,并绑定点击事件 showLoginDialog。
  • 第 15 行:如果用户已登录,则显示用户头像。
  • 第 19-23 行:添加一个用于用户登录的对话框组件,该对话框的可见性由 loginDialogVisible 控制。
<style>
  .app-container {
    padding-left: 0;
    margin-bottom: 1%;
  }
  .header-content {
    display: flex;
    justify-content: space-between; /* 去除左右间隙 */
    align-items: flex-start; /* 垂直居上 */
    padding: 10px 20px; /* 调整内边距 */
  }
  .title {
    font-size: 20px;
    font-weight: bold;
    color: #409EFF;
    margin-top: 5px; /* 文字向上移动 */
  }
  .login-button {
    border: 1px solid #409EFF !important;
    background-color: transparent !important;
    color: #409EFF !important;
    padding: 8px 16px !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    margin-top: 5px; /* 按钮向上移动 */
  }
</style>
  • 第 1-7 行:定义一些样式规则,用于自定义顶部栏的外观和布局。
  • .app-container 类设置了左侧内边距为0、底部外边距为1%。
  • .header-content 类使用 Flex 布局,将内容水平居中对齐,并垂直居上对齐。设置了内边距为10px上下、20px左右。
  • .title 类设置了字体大小为20px、粗体、颜色为 #409EFF、并向上偏移5px。
  • .login-button 类设置了边框为1px实线、背景透明、颜色为 #409EFF,并调整了内边距、边框圆角和字体大小,以及向上偏移5px。
<script>
export default {
  data() {
    return {
      loggedIn: false,
      loginDialogVisible: false,
      user: {
        name: '',
        avatar: ''
      }
    };
  },
  methods: {
    showLoginDialog() {
      // 显示登录对话框
      this.loginDialogVisible = true;
    },
    loginSuccess(user) {
      // 登录成功后的处理
      this.loggedIn = true;
      this.user.name = user.name;
      this.user.avatar = user.avatar;
      this.loginDialogVisible = false; // 关闭登录对话框
    }
  }
};
</script>
  • 第 3-15 行:定义了组件的数据和方法。
  • loggedIn 是一个布尔值,用于标记用户是否已登录。
  • loginDialogVisible 是一个布尔值,用于控制登录对话框的可见性。
  • user 是一个对象,用于存储用户信息的名字和头像。
  • 第 9-12 行:showLoginDialog 方法被触发时,将 loginDialogVisible 设置为 true,显示登录对话框。
  • 第 14-19 行:loginSuccess方法被调用时,处理用户登录成功的逻辑。
  • 将 loggedIn 标记为 true,表示用户已登录。
  • 将 user 对象中的 name 和 avatar 设置为传入的用户信息。
  • 将 loginDialogVisible 设置为 false,关闭登录对话框。

以上便是塞尔达小队电商管理系统后台顶部栏组件的详细注释和功能说明。该顶部栏提供了一个简单的登录功能,并以响应式的方式显示用户信息或登录按钮。

  • 完整代码
<template>
  <div class="app-container">
    <el-header style="box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);">
      <!-- 布局:居中 -->
      <el-row type="flex" align="top" justify="center"> 
        <el-col :span="24">
          <div class="header-content">
            <!-- 标题 -->
            <h1 class="title">塞尔达小队电商管理系统后台</h1>
            <!-- 登录按钮,当用户未登录时显示 -->
            <el-button v-if="!loggedIn" @click="showLoginDialog" type="primary" class="login-button">登录</el-button>
            <!-- 用户头像,当用户已登录时显示 -->
            <el-avatar v-else :src="user.avatar" :size="36" shape="circle"></el-avatar>
          </div>
        </el-col>
      </el-row>
    </el-header>
    <!-- 其他页面内容 -->
    <!-- 用户登录对话框 -->
    <el-dialog title="用户登录" :visible.sync="loginDialogVisible">
      <!-- 登录表单 -->
    </el-dialog>
  </div>
</template>
<style>
  /* 容器样式 */
  .app-container {
    padding-left: 0;
    margin-bottom: 1%;
  }
  /* 顶部栏内容样式 */
  .header-content {
    display: flex;
    justify-content: space-between; /* 左右间隙填充 */
    align-items: flex-start; /* 垂直居上 */
    padding: 10px 20px; /* 内边距调整 */
  }
  /* 标题样式 */
  .title {
    font-size: 20px;
    font-weight: bold;
    color: #409EFF;
    margin-top: 5px; /* 文字向上移动 */
  }
  /* 登录按钮样式 */
  .login-button {
    border: 1px solid #409EFF !important;
    background-color: transparent !important;
    color: #409EFF !important;
    padding: 8px 16px !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    margin-top: 5px; /* 按钮向上移动 */
  }
</style>
<script>
export default {
  data() {
    return {
      loggedIn: false, // 用户登录状态
      loginDialogVisible: false, // 登录对话框的可见性
      user: {
        name: '', // 用户名
        avatar: '' // 用户头像
      }
    };
  },
  methods: {
    // 显示登录对话框
    showLoginDialog() {
      this.loginDialogVisible = true;
    },
    // 处理用户登录成功的逻辑
    loginSuccess(user) {
      this.loggedIn = true; // 用户已登录
      this.user.name = user.name; // 设置用户名
      this.user.avatar = user.avatar; // 设置用户头像
      this.loginDialogVisible = false; // 关闭登录对话框
    }
  }
};
</script>
相关文章
element-plus 树形控件结合下拉列表
要将Element Plus的Tree控件与下拉列表结合起来,可以使用Element Plus的Select控件和Tree控件的插槽来实现。
453 0
element-plus:Dialog 对话框在有滚动条的页面会抖动
element-plus:Dialog 对话框在有滚动条的页面会抖动
485 0
element-plus:Dialog 对话框在有滚动条的页面会抖动
|
3月前
|
前端开发
element菜单组件样式修改NavMenu导航菜单
本文介绍了如何修改Element UI的NavMenu导航菜单组件的样式,包括激活菜单项的颜色、菜单项hover颜色、父级菜单hover颜色以及菜单行高。提供了相应的CSS代码示例,并展示了如何将这些样式应用到实际的NavMenu组件中。
168 3
element菜单组件样式修改NavMenu导航菜单
|
5月前
flutter 导航组件 AppBar (含顶部选项卡TabBar,抽屉菜单 drawer ,自定义导航图标)
flutter 导航组件 AppBar (含顶部选项卡TabBar,抽屉菜单 drawer ,自定义导航图标)
87 1
|
5月前
|
数据安全/隐私保护
Element UI 密码输入框--可切换显示隐藏,自定义图标
Element UI 密码输入框--可切换显示隐藏,自定义图标
212 0
|
7月前
uniapp popup弹出窗详解以及相关属性
uniapp popup弹出窗详解以及相关属性
710 3
|
7月前
|
容器
基于element-ui的侧边栏及其使用方法
基于element-ui的侧边栏及其使用方法
171 0
|
人工智能 自然语言处理 语音技术
关于element ui中引入官方的NavMenu时出现点击某个子菜单时,所有的子菜单全都展开问题
关于element ui中引入官方的NavMenu时出现点击某个子菜单时,所有的子菜单全都展开问题
249 0
|
JavaScript 前端开发
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
45 0
|
JavaScript
element-ui的popover弹出框点击取消
element-ui的popover弹出框点击取消
272 1