可视化后台管理系统-空框架

1.下载element-plus

npm install element-plus --save

注意:element-ui不适配vue3,官方已将vue3版本的更新为element-plus

2.main.js配置

// 全局样式
import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'
// 引入element-plus ---①
import elementPlus from 'element-plus'
import 'element-plus/theme-chalk/index.css';

const app = createApp(App)

app.use(createPinia())
app.use(router)
// 引入element-plus ---②
app.use(elementPlus);

app.mount('#app')

3.router->index.js

import { createRouter, createWebHistory } from "vue-router";
import HomeView from "../views/HomeView.vue";

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/index",
      name: "index",
      component: () => import("../views/Index.vue"),
    },
    {
      path: "/index",
      name: "index",
      component: HomeView,
      children: [
        {
          path: "about",
          name: "about",
          component: () => import("../views/AboutView.vue"),
        },
        {
          path: "home",
          name: "home",
          component: () => import("../views/Index.vue"),
        },
      ],
    },
  ],
});

export default router;

4.app.vue

<script setup>
import { RouterLink, RouterView } from "vue-router";
</script>
<template>
  <header>
    <RouterView />
  </header>
</template>

5.view-->HomeView.vue

<template>
  <div class="common-layout main">
    <el-container>
      <el-header>
        <div class="logo">
          <img src="../assets/image/icon.png" />
          <span>后台管理系统</span>
        </div>
        <div class="layout">
          <div class="xh">
            <img src="../assets/image/touxiang.png" />
            <span>剪纸协会</span>
          </div>
          <span>退出登录</span>
        </div>
      </el-header>
      <el-container>
        <el-aside>
          <el-menu
            active-text-color="#cc000c"
            background-color="#545c64"
            class="el-menu-vertical-demo"
            default-active="/index/home"
            text-color="#fff"
            @open="handleOpen"
            @close="handleClose"
            :router="true"
          >
            <el-menu-item index="/index/home">
              <el-icon><Menu /></el-icon>
              <span>首页</span>
            </el-menu-item>
            <el-sub-menu index="2">
              <template #title>
                <el-icon><Management /></el-icon>
                <span>协会中心</span>
              </template>
              <el-menu-item index="2-1">
                <el-icon><Tickets /></el-icon>
                <span>修改密码</span>
              </el-menu-item>
              <el-menu-item index="2-2">
                <el-icon><Notebook /></el-icon>
                <span>协会信息</span>
              </el-menu-item>
            </el-sub-menu>
            <el-sub-menu index="3">
              <template #title>
                <el-icon><UserFilled /></el-icon>
                <span>传承人管理</span>
              </template>
              <el-menu-item index="3-1">
                <el-icon><Document /></el-icon>
                <span>权限管理</span>
              </el-menu-item>
            </el-sub-menu>
            <el-sub-menu index="4">
              <template #title>
                <el-icon><Management /></el-icon>
                <span>作品管理</span>
              </template>
              <el-menu-item index="4-1">
                <el-icon><Tickets /></el-icon>
                <span>用户作品</span>
              </el-menu-item>
              <el-menu-item index="4-2">
                <el-icon><Notebook /></el-icon>
                <span>系统作品</span>
              </el-menu-item>
            </el-sub-menu>
            <el-menu-item index="5">
              <el-icon><Tools /></el-icon>
              <span>分类管理</span>
            </el-menu-item>
            <el-menu-item index="6">
              <el-icon><Management /></el-icon>
              <span>资讯管理</span>
            </el-menu-item>
            <el-sub-menu index="7">
              <template #title>
                <el-icon><Management /></el-icon>
                <span>活动管理</span>
              </template>
              <el-menu-item index="7-1">
                <el-icon><Tickets /></el-icon>
                <span>活动信息管理</span>
              </el-menu-item>
              <el-menu-item index="7-2">
                <el-icon><Notebook /></el-icon>
                <span>活动报名管理</span>
              </el-menu-item>
            </el-sub-menu>
            <el-sub-menu index="8">
              <template #title>
                <el-icon><Management /></el-icon>
                <span>留言管理</span>
              </template>
              <el-menu-item index="8-1">
                <el-icon><Tickets /></el-icon>
                <span>留言反馈</span>
              </el-menu-item>
            </el-sub-menu>
            <el-menu-item index="9">
              <el-icon><Management /></el-icon>
              <span>数据统计</span>
            </el-menu-item>
          </el-menu>
        </el-aside>

        <el-main>
          <!-- 跳转后的页面展示到此处 -->
          <router-view />
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>
<script setup>
import {
  Menu,
  Avatar,
  UserFilled,
  Management,
  Tools,
  Document,
  Notebook,
  Tickets,
} from "@element-plus/icons-vue";

// el-aside-----------------
</script>

<style scoped lang="less">
.common-layout {
  width: 100vw;
  height: 100vh;
  .el-header {
    width: 100%;
    height: 50px;
    background-color: #545c64;
    display: flex;
    justify-content: space-between;
    .logo {
      height: 50px;
      color: #fff;
      line-height: 50px;
      display: flex;
      align-items: center;
      img {
        width: 40px;
        height: 40px;
      }
      span {
        font-size: 20px;
        font-weight: bold;
        margin-left: 10px;
      }
    }
    .layout {
      height: 50px;
      color: #fff;
      line-height: 50px;
      display: flex;
      align-items: center;
      img {
        width: 40px;
        height: 40px;
      }
      .xh {
        height: 50px;
        line-height: 50px;
        margin-right: 30px;
        display: flex;
        align-items: center;
        img {
          width: 30px;
          height: 30px;
          margin-right: 6px;
        }
        span {
          font-size: 16px;
          font-weight: 500;
        }
      }
      span {
        font-size: 16px;
        font-weight: 500;
        margin-right: 20px;
      }
    }
  }
  .el-aside {
    width: 200px;
    height: calc(100% - 50px);
    // height: 100vh;
    background-color: #545c64;
    font-weight: 600;
  }
  .el-main {
    width: calc(100% - 200px);
    height: 100vh;
    background-color: #f0f2f5;
  }
}
</style>

效果图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537427.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【教学类-52-02】20240412动物数独02(四宫格)黏贴卡片

作品展示 背景需求 制作了动物数独4宫格后&#xff0c;需要再做一些黏贴上去的图片 【教学类-52-01】20240411动物数独&#xff08;4宫格&#xff09;-CSDN博客文章浏览阅读53次。【教学类-52-01】20240411动物数独01&#xff08;4宫格&#xff09;https://blog.csdn.net/rea…

中科方德服务器操作系统安装zabbix5.0

原文链接&#xff1a;中科方德服务器操作系统安装zabbix5.0 Hello&#xff0c;大家好啊&#xff01;接着我们上一次的讨论&#xff0c;今天我要为大家介绍如何在已经安装好的中科方德服务器操作系统基础上&#xff0c;安装和配置Zabbix 5.0。Zabbix是一个开源的监控软件工具&am…

C语言 | Leetcode C语言题解之第24题两两交换链表中的节点

题目&#xff1a; 题解&#xff1a; struct ListNode* swapPairs(struct ListNode* head) {struct ListNode dummyHead;dummyHead.next head;struct ListNode* temp &dummyHead;while (temp->next ! NULL && temp->next->next ! NULL) {struct ListNod…

[Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。目前我进入第二阶段Python图像识别,该部分主要以目标检测、图像…

go语言学习--3.常用语句

目录 1.条件语句 1.1 if语句 1.2 if-else语句 1.3 switch语句 1.4 select语句 2.循环语句 2.1循环处理语句 2.2循环控制语句 3.go语言关键字 1.条件语句 和c语言类似&#xff0c;相关的条件语句如下表所示&#xff1a; 1.1 if语句 if 布尔表达式 {/* 在布尔表达式为 t…

前端常见面试题-CSS盒模型

前言&#xff1a; 什么是CSS盒模型&#xff1f;盒模型的构造&#xff1f; 在前端开发中&#xff0c;CSS 盒模型是一种非常基础且核心的概念&#xff0c;它描述了文档中的每个元素被框架处理的方式。 ---- 打开浏览器开发者工具&#xff0c;查看Elements右侧下的Styles底部。 …

C++ | Leetcode C++题解之第21题合并两个有序链表

题解&#xff1a; 题解&#xff1a; class Solution { public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode* preHead new ListNode(-1);ListNode* prev preHead;while (l1 ! nullptr && l2 ! nullptr) {if (l1->val < l2->val) {prev-…

Python用于模拟量子系统库之qutip使用详解

概要 QuTiP(Quantum Toolbox in Python)是一个用于模拟量子系统的开源Python库,它提供了丰富的工具来研究量子力学和量子信息学。 安装 通过pip可以轻松安装QuTiP: pip install qutip特性 多种量子对象表示:支持量子态、算符和超算符的表示和操作。 动力学模拟:提供了…

LeetCode 98 验证二叉搜索树

题目描述 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜…

VM虚拟机Linux系统Redhat7.4版本进行网络配置

日常中自己搭建的虚拟机一般用到两种网络方式&#xff0c;第一种是仅主机模式、还有一种是NAT模式。 1、仅主机模式&#xff1a;可以和自己本地电脑&#xff0c;或者虚拟机和虚拟机之间进行网络通信&#xff0c;相当于一个局域网&#xff0c;是不能连接外网的。 2、NAT模式&a…

数据结构篇:深度剖析跳跃表及与B+树优劣分析

本文旨在探讨跳跃表的特性及其在实际应用场景中的作用&#xff0c;同时对其与B树进行比较&#xff0c;以帮助更好地理解和运用这两种数据结构。 跳跃表 什么是跳跃表&#xff08;skip list&#xff09; 跳跃表是一种基于跳跃链表的有序数据结构&#xff0c;它是一种多层链表&…

openGauss_5.1.0 企业版快速安装及数据库连接:单节点容器化安装

目录 &#x1f4da;第一章 官网信息&#x1f4da;第二章 安装&#x1f4d7;下载源码&#x1f4d7;下载安装包&#x1f4d7;修改版本&#x1f4d7;解压安装包&#x1f4d7;运行buildDockerImage.sh脚本&#x1f4d7;docker操作&#x1f4d5;查看docker镜像&#x1f4d5;启动dock…

上位机图像处理和嵌入式模块部署(改进的qmacvisual动态插件卸载)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们讨论过&#xff0c;qmacvisual虽然提供了很多的功能&#xff0c;包括的种类很多&#xff0c;但是总有一些功能是客户希望定制的。这些都是…

更改docker镜像下载地址

一.简介 使用指令 sudo docker info 查看本机的docker镜像下载地址为 由于本机的var文件空间不足&#xff0c;因此&#xff0c;想更改他的存储地址&#xff0c;如下 二.开始操作 1.停止Docker服务&#xff1a; 执行命令 sudo systemctl stop docker 以及 sudo systemctl s…

USB端口

winx&#xff0c;打开设备管理器 名称解释 HS-USB 分类全称传输速率版本超速SSsuper-speed最大速率5Gbps、10Gbps、20GbpsUSB3.0~USB3.2高速HShigh-speed25Mbps-400 Mbps &#xff08;最大480 Mbps&#xff09;USB2.0全速FSfull-speed500Kbps-10Mbps&#xff08;最大12Mbps&…

8个Python小游戏,小白练手,我都能玩一天【内附源码】

大家好&#xff0c;在使用Python的过程中&#xff0c;我最喜欢的就是Python的各种第三方库&#xff0c;能够完成很多操作。 下面就给大家介绍8个通过Python构建的项目&#xff0c;以此来学习Python编程。 大家也可根据项目的目的及提示&#xff0c;自己构建解决方法&#xff…

c++ stub函数打桩

应用场景&#xff1a; 当我们在开发一个涉及到第三方sdk库的软件时&#xff0c;比如做一个上位机控制客户端&#xff0c;该客户端当中调用了一份sdk库当中的接口。而这份sdk库&#xff0c;作为上层客户端软件与下层设备进行通信的媒介&#xff0c;可能需要在有真实设备的环境下…

社交网络与Web3:数字社交的演进

在数字化时代的浪潮下&#xff0c;社交网络已成为人们日常生活的重要组成部分。从早期的在线论坛到如今的社交媒体平台&#xff0c;社交网络已经成为人们交流、分享和获取信息的主要渠道。然而&#xff0c;随着区块链技术的发展&#xff0c;传统的社交网络正经历着一场革命性的…

Sy7 shell编程-1

实验环境&#xff1a; 宿主机为win11&#xff0c;网络&#xff1a;10.255.50.5 6389 WSL2 ubuntu 目标机的OS&#xff1a;Ubuntu 内核、版本如下&#xff1a; linuxpeggy0223:/$ uname -r 5.15.146.1-microsoft-standard-WSL2 linuxpeggy0223:/$ cat /proc/version Linux vers…

Java | Leetcode Java题解之第22题括号生成

题目&#xff1a; 题解&#xff1a; class Solution {static List<String> res new ArrayList<String>(); //记录答案 public List<String> generateParenthesis(int n) {res.clear();dfs(n, 0, 0, "");return res;}public void dfs(int n ,int…