第一部分:
elementplus官网:一个 Vue 3 UI 框架 | Element Plus (element-plus.org)
1、安装elementplus
 npm install element-plus --save
 
查看package.json中存在依赖表示成功安装

2、引入elementplus
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
const app = createApp(App)
app.use(ElementPlus) 
 
注意:vue3不支持elementUI,所以选择以下搭配其中之一(这里我选的是2)
(1)vue2+elementUI
(2)vue3+elementPlus
3、使用组件设置布局
点击官网上方菜单栏的组件,点击

点击布局容器可以看到示例,我们选择使用最下面的侧边栏的示例代码
 
Container 布局容器 | Element Plus (element-plus.org)
查看示例的代码,这里选择手动引入(elementplus还支持自动按需引入)

代码主要分成四部分,第一部分我们需要放在template里面,第二部分是选择按需部分引入的方式,我们可以不管,第三部分是放在script里的data部分里面也就是提供页面的数据,具体填入形式如下
<script >
export default {
  name: "HomeView",
  data(){
    const item = {
      date: '2016-05-02',
      name: 'Tom',
      address: 'No. 189, Grove St, Los Angeles',
    };
    return {
      tableData : (Array.from({ length: 20 }).fill(item)),
    }
  }
}
</script> 
第四部分是页面的样式,不重要,我们可以不使用
引入完成功编译运行后的结果:

4、在asserts文件夹里面创建一个global.css用来书写全局样式

//global.css
html,body,div{
    margin: 0;
    padding: 0;
}
html,body{
    height: 100%;
} 
然后再main.js里引入 (不要忘了加 ./ )

将所有菜单的高度改成100% 这个时候滚动页面整个页面不会跟随滚动,菜单栏可以单独滚动
自行调整样式后:

第二部分
1、改变e-menu的背景颜色等一些属性
 <el-menu :default-openeds="['1', '3']" style="height: 100%;overflow-x:hidden"
          background-color="rgb(48,65,86)"      //菜单背景设为藏蓝
                   text-color="#fff"            //字体设为白色
                   active-text-color="#ffd04b"  //选中后字体变成黄色
                   :collapse-transition="false"
                   :collapse="isCollapse"  //设置初始被展开的属性为false(初始为折叠)
          > 
效果:

2、添加一些图标
先安装elementPlus图标:
npm install --save @element-plus/icons
 
到elementPlus官网图标下赋值图标标签代码
Icon 图标 | Element Plus (element-plus.org)
<span>Tom
                <el-icon style="margin-left: 5px">
                  <ArrowDownBold></ArrowDownBold>
                </el-icon>
              </span> 

效果:

 
编写收缩的方法
 methods: {
    collapse(){ //点击收缩按钮触发
      this.isCollapse=!this.isCollapse
    }
  } 
此时收缩会出现问题,文字没有隐藏,宽度不对

所以需要将宽度设为动态的

然后再将导航的名称都放在span标签里,就会自动收缩进去

然后更改如果收缩了,图标就改变,这里我用v-if和v-else的组合
再结合前面设置的isCollapse状态
使得图标可以切换

效果:
     ------------------》
3、设置菜单栏标题:
 <div  style="height: 60px;line-height: 60px;text-align: center">
              <img src="../assets/logo.png" alt="" style="width: 20px;position: relative;top:5px;margin-right: 5px">
              <b v-show="!isCollapse" style="color: white">后台管理系统</b>
            </div> 
效果:
  ----------------------》
linehight如果设置和垂直高度一致,就会居中,否则就会在上方或者下面
style="line-height: 60px" 
效果:
 ----------》
4、 阴影特效:
首先去掉e-menu的边框的颜色
border-right-color: transparent 
再在e-side里面添加阴影属性
box-shadow: 2px 0 6px rgb(0 21 41 / 35%) 
效果:

第三部分
1、设置表格页码数
进到官网页面,pagination
Pagination 分页 | Element Plus (element-plus.org)

copy“完整功能”代码
黏贴在e-mian标签下的e-table下
 <div style="padding: 10px 0">
              <el-pagination
                  v-model:current-page="currentPage4"
                  v-model:page-size="pageSize4"
                  :page-sizes="[100, 200, 300, 400]"
                  :small="small"
                  :disabled="disabled"
                  :background="background"
                  layout="total, sizes, prev, pager, next, jumper"
                  :total="400"
              />
            </div> 
此时可以看到底部的效果,并且还没有生效

2、设置搜索栏(一定要看script里面是否自动导入了输入框图标)
       <el-input style="width: 300px" type="text"  placeholder="请输入名称">
              <template #prefix>
                <el-icon class="el-input__icon">
                  <search></search>
                </el-icon>
              </template>
            </el-input>
            <el-button  class="ml-5" type="" style="color: orangered">搜索</el-button> 
效果:

扩展多个输入框:

3、设置表头颜色和边框
 <el-table :data="tableData" border stripe > 
<style >
.el-table th{
  background-color: beige !important
}
</style> 
效果:

4、添加一些按钮:
增删导入导出
 <div style="margin: 10px 0;text-align: left">
            <el-button type="primary">新增
              <el-icon><CirclePlus></CirclePlus></el-icon>
            </el-button>
            <el-button type="danger">批量删除
              <el-icon><remove></remove></el-icon>
            </el-button>
            <el-button type="primary">导入
              <el-icon><bottom></bottom></el-icon>
            </el-button>
            <el-button type="primary">导出
              <el-icon><top></top></el-icon>
            </el-button>
          </div> 
表格里的编辑、删除
  <el-table-column  label="操作" >
                <el-table-column>
                  <template>slot-scope="scope"</template>
                  <el-button type="success">编辑
                    <el-icon><edit></edit></el-icon>
                  </el-button>
                  <el-button type="danger">删除
                    <el-icon><remove></remove></el-icon>
                  </el-button>
                </el-table-column>
              </el-table-column> 
最后的效果:

5、固定表头优化:
(108条消息) vue项目中table表格固定表头和首尾列_梨城毒妃的博客-CSDN博客_vue固定表头
   <el-table :data="tableData" border stripe height="500px" max-height="400px" > 

至此管理系统的前端雏形已经产生
第四部分
1、加一个页签
在官网的面包屑模块下:
Breadcrumb 面包屑 | Element Plus (element-plus.org)
 <div style="margin-bottom: 30px">
            <el-breadcrumb separator="/">
              <el-breadcrumb-item :to="{ path: '/' }">主页</el-breadcrumb-item>
              <el-breadcrumb-item :to="{path: '/new'}">用户管理</el-breadcrumb-item>
              <el-breadcrumb-item>promotion list</el-breadcrumb-item>
              <el-breadcrumb-item>promotion detail</el-breadcrumb-item>
            </el-breadcrumb>
          </div> 
效果:
 
2、SpringBoot框架搭建
1、创建项目,引入lombok,mybatisplus,mysql等等依赖
后两个依赖在项目勾选时候可以自动导入,所以只用关注前面的
    <dependencies>
<!--        lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
<!--            mybatisplus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
            <version>8.0.31</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-core</artifactId>
            <version>3.4.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
2、编写yml文件
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC
    username: root
    password: 123456
  main:
    banner-mode: off
mybatis-plus:
  global-config:
    banner: false
server:
  port: 8081
 
效果:
项目结构:

测试springboot

3、数据库设计
建立表:sys_user

写入数据:

建立包和实体接口

使接口继承BaseMapper,并注解为Mapper
 
在写任何controller时候前面都要加一个注解:RestController
测试连接数据库
用lambdaquery来写查询
   @RequestMapping("/select")   //访问路径
    public List<User> select(){
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
//        lqw.like(User::getUsername,'a');
        List<User> userList = userDao.selectList(lqw);
        return userList;
    } 
结果:




















