百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Vue 结合 Element-UI ,管理系统快速生成指南(一)

ccwgpt 2024-09-26 07:58 36 浏览 0 评论

前言

Element UI 作为一个基于 Vue.js 的 UI 组件库,提供了丰富的界面元素和交互组件,大大提高了开发效率。结合这两大前端技术栈,开发者能够快速搭建出一个功能强大、界面优雅的管理系统。

由于管理系统实现流程还是相对较多,所以分几篇文章进行讲解

本章主要先将整体的页面写出,后续再继续补充细节部分

Element UI:一个 Vue 3 UI 框架 | Element Plus (element-plus.org)

实现

效果展示

安装

首先安装element-ui的依赖

npm install element-plus --save

将依赖引入项目main.js

import { createApp } from "vue";

import { createPinia } from "pinia";

import "@/assets/reset.css";

import App from "./App.vue";

import router from "./router";

import ElementPlus from "element-plus";

import "element-plus/dist/index.css";

const app = createApp(App);

app.use(createPinia());

app.use(router);

app.use(ElementPlus);

app.mount("#app");

App.vue

<template>

<div>

<RouterView />

</div>

</template>

<script setup>

import { RouterView } from "vue-router";

</script>

<style lang="css" scoped></style>

app.vue页面只留一个路由出口

Login.vue

<div class="login">

<div class="login-wrap">

<h1>后台管理系统</h1>

<el-row>

<el-input v-model="state.account" placeholder="请输入账号" />

</el-row>

<el-row>

<el-input

v-model="state.password"

type="password"

placeholder="请输入密码"

show-password

/>

</el-row>

<el-row>

<el-button type="success" round @click="login">登录</el-button>

<el-button type="primary" round>注册</el-button>

</el-row>

</div>

</div>


整体结构:

  1. 整个登录界面包裹在一个 div 元素中,类名为 login。
  2. 登录表单部分包裹在 div.login-wrap 中。
  3. 页面标题 "后台管理系统" 使用 h1 标签显示。

表单元素:

1.账号输入使用 el-input 组件,v-model 绑定 state.account 变量。

2.密码输入使用 el-input 组件,type 属性设置为 password,show-password 属性显示密码切换按钮,v-model 绑定 state.password 变量。

按钮操作:

1.登录按钮使用 el-button 组件,type 属性设置为 success,round 属性设置为圆角按钮,@click 绑定 login 方法。

2.注册按钮使用 el-button 组件,type 属性设置为 primary,round 属性设置为圆角按钮。

import { reactive } from "vue";
import { ElMessage } from "element-plus";
import { useRouter } from "vue-router";

const state = reactive({
  account: "chen",
  password: "123456",
});

const router = useRouter();
const login = () => {
  if (state.account === "chen" && state.password === "123456") {
    ElMessage({
      message: "登录成功",
      type: "success",
    });
    router.push("/layout");
  } else {
    ElMessage({
      message: "登录失败",
      type: "error",
    });
  }
};

状态管理:

  • 使用 reactive 创建了一个名为 state 的响应式对象,包含 account 和 password 两个属性。
  • 路由管理:
    • 使用 useRouter 获取了路由实例 router。
  • 登录逻辑:
    • 定义了一个 login 函数,用于处理登录操作。
    • 在函数内部,首先检查 state.account 和 state.password 是否匹配预设的用户名和密码("chen" 和 "123456")。
    • 如果匹配成功,则使用 ElMessage 组件显示成功提示,并使用 router.push 导航到 "/layout" 路由。
    • 如果匹配失败,则使用 ElMessage 组件显示失败提示

    Layout.vue

    <div class="common-layout">

    <el-container>

    <el-header>Header</el-header>

    <el-container>

    <el-aside width="200px">

    <el-menu

    default-active="2"

    class="el-menu-vertical-demo"

    router="true"

    >

    <el-sub-menu index="1">

    <template #title>

    <el-icon><location /></el-icon>

    <span style="color: white">人员管理</span>

    </template>

    <el-menu-item index="/home">首页</el-menu-item>

    <el-menu-item index="1-2">item two</el-menu-item>

    </el-sub-menu>

    <el-menu-item index="2">

    <el-icon><icon-menu /></el-icon>

    <span>欢迎</span>

    </el-menu-item>

    <el-menu-item index="3">

    <el-icon><document /></el-icon>

    <span>Navigator Three</span>

    </el-menu-item>

    <el-menu-item index="4">

    <el-icon><setting /></el-icon>

    <span>Navigator Four</span>

    </el-menu-item>

    </el-menu>

    </el-aside>

    <el-main>

    <router-view />

    </el-main>

    </el-container>

    </el-container>

    </div>

  • 整体结构:
    • 使用 el-container 组件作为整体容器,包含了 el-header 和嵌套的 el-container 组件。
    • 内部的 el-container 组件包含了 el-aside 和 el-main 组件。
  • 头部区域:
    • el-header 组件用于显示头部区域,默认内容为 "Header"。
  • 侧边菜单:
    • el-aside 组件用于显示侧边菜单栏,宽度设置为 200px。
    • 使用 el-menu 组件渲染侧边菜单,default-active 属性设置当前选中的菜单项。
    • 菜单包含两个一级菜单项:
      • "人员管理" 菜单项包含两个二级菜单项:"首页"和"item two"。
      • "欢迎"、"Navigator Three"和"Navigator Four"三个一级菜单项。
    • 使用 router 属性开启路由模式,当点击菜单项时会自动跳转到对应的路由页面。
    • 主体内容区域:
    1. el-main 组件用于显示主体内容区域。
    2. 使用 router-view 组件渲染当前路由对应的页面内容。

    路由设计

    import { createRouter, createWebHistory } from "vue-router";

    import Login from "../views/Login.vue";

    import Layout from "../views/Layout.vue";

    const router = createRouter({

    history: createWebHistory(import.meta.env.BASE_URL),

    routes: [

    {

    // 默认路由

    path: "/",

    redirect: "/login",

    },

    {

    path: "/login",

    name: "Login",

    component: Login,

    },

    {

    path: "/layout",

    name: "Layout",

    component: Layout,

    },

    ],

    });

    export default router;

    reset.css

    reset.css 用于清除所有的默认样式

    在main.js使用到了。可以根据自己的路径自行修改

    /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }

    总结

    本文将详细介绍如何使用 Vue.js 和 Element UI 快速构建页面,希望对你有帮助!!!

    页面布局

    相关推荐

    如何基于Spring Security框架实现权限管理

    SpringSecurity是一个功能强大且高度可定制的身份验证和访问控制框架,用于保护基于Spring的应用程序。SpringSecurity主要是从两个方面解决安全性问题:web请求级别:使...

    一个轻量级 Java 权限认证框架,Sa-Token 让鉴权变得简单、优雅!

    一、框架介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。官网文档:...

    16.3K Star!简洁高效的Java权限认证与会话管理框架——Sa-Token

    简介今天给大家推荐一个轻量级的Java权限认证框架——Sa-Token。它可以为JavaWeb应用同完整的权限认证解决方案,它的目标是简化权限管理和登录认证的流程,具备高度灵活性和简单易用的特点。S...

    从Shiro迁移到Sa-Token:老版JeecgBoot项目权限框架平滑升级方案

    背景介绍对于许多维护老版JeecgBoot项目的开发者来说,权限框架的升级一直是个棘手问题。这篇文章分享一种实用的方案,用于将老版JeecgBoot中的ApacheShiro替换为更现代的Sa-To...

    刑法框架体系,对照着框架体系学习可以事半功倍哦

    有了它,妈妈再也不用担心我司考过不啦!有了它,妈妈再也不用担心我司考过不了啦!其他部门法正在陆续整理制作中哦看不清的话请戳http://mp.weixin.qq.com/s?__biz=MzA3NDE...

    全新体验版Windows QQ上线,实现三端统一

    7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

    农村自建房造价多少?包工头教你怎么算

    通常我们在找专业人士设计农村自建房设计图时,不管你是打算建独栋一层别墅还是独栋二层别墅或是独栋三层别墅,你是否也找他们打听过相应的房屋工程造价呢?下面简单介绍一下农村自建房的傻瓜式造价估算:1、砖混结...

    QQ大会员品牌运营策划与设计(qq大会员有哪些个性装扮)

    编辑导语:在互联网产品越来越同质化的今天,做出有差异性和符合品牌调性的设计是品牌运营过程中需要重视的问题。本文作者从QQ大会员品牌项目实践出发,分享了品牌运营设计过程中遇到的一些问题以及具体操作方案,...

    支持鸿蒙平台,腾讯视频ovCompose跨平台框架发布

    IT之家6月3日消息,腾讯开源今日官宣发布腾讯视频ovCompose跨平台框架,其是腾讯大前端领域Oteam中,腾讯视频团队基于ComposeMultiplatform生态推出的...

    腾讯 QQ Mac 版推倒重做,全新 1.0 版本开启内测

    IT之家9月1日消息,据多位IT之家小伙伴投稿,腾讯QQMac版近日迎来了全新通用版内测,版本号重新由1.0开始,目前放出的体验版为1.0.4-305。从下图可以看到,该版本在U...

    全新体验版Windows QQ正式上线官网,实现三端统一

    7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。记者从腾讯获悉,继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构...

    QQ,到了不能不变的境地(怎么发qq邮件到别人邮箱)

    相比微信一个小更新,乃至一个小动作,都能上热搜的顶级热度。隔壁的老大哥QQ,显得有些冷清。即使更新再快,功能再激情,都很难引起用户们的集体讨论。机友们细想一番,咱们的老朋友QQ,有多久没上过热搜啦?真...

    基于Electron框架全面重做:全新Linux版QQ开启公测

    来源:快科技不久前,腾讯QQ项目组曾发布预告,宣布QQforLinux新版本即将开启公测。现在,新的Linux版QQ已经开启公测,不过目前仅支持x86架构,arm64架构还仍在适配中。与此前极为简...

    QQ全面升级?基于Electron技术的Windows内测版本预计将于明年推出

    在2022年,作为经典的聊天软件的QQ在经历多次的功能调整后,正式选择基于新技术开发新版本的QQ。今日,据相关媒体报道,腾讯QQ项目组发布预告:QQforLinux将在本周迎来公测,全新的QQf...

    跨平台三端重构正式统一,QQ Windows全新体验版上架官网

    7月3日,全新体验版WindowsQQ正式上线官网,面向用户开放官方下载渠道。继QQ对macOS、Linux版本进行升级后,本次Windows版本的更新,标志QQ基于NT技术架构,实现了桌面端Q...

    取消回复欢迎 发表评论: