【6】【vue3+elementplus+springboot+mybatisplus】 管理系统 【前后端实践】

news2024/11/21 0:34:47

第一部分:

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;

    }

结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(考研湖科大教书匠计算机网络)第三章数据链路层-第六节媒体接入控制1:基本概念和静态划分信道

专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;媒体接入控制基本概念二&#xff1a;静态划分信道&#xff08;1&#xff09;信道复用和多点接入A&#xff1a;信道复用B&#xff1a;多点接入&#xff08;2&#xff09;常见信道…

pycharm设置中文,字体颜色修改,设置背景图片(图文讲解)

目录 1.设置中文 2.设置背景图片 3.字体大小&#xff0c;颜色的修改 这个是我的pycharm编译器的样子&#xff0c;好看吧&#xff01;&#xff01;&#xff01; pycharm在安装之后默认是英语的&#xff0c;有些小伙伴的英语不太会&#xff0c;看英文会比较吃力&#xff0c;这里…

【OpenGL学习】材质

材质 在图形学中&#xff0c;材质表示了光线如何和物体进行交互&#xff0c;有了解过 BRDF 的话&#xff0c;实际上 Material BRDF&#xff0c;有关材质的讲述&#xff0c;可以在这篇文章中了解&#xff1a;计算机图形学&#xff08;六&#xff09;——材质 - 知乎 (zhihu.co…

Codeforces Round #848 (Div. 2) D - Flexible String Revisit

Codeforces Round #848 (Div. 2) D - Flexible String Revisit 题意&#xff1a;给定两个题意&#xff1a;给定两个题意&#xff1a;给定两个 010101 字符串字符串字符串 aaa 和和和 bbb &#xff0c;每次操作可选择字符串每次操作可选择字符串每次操作可选择字符串 aaa 上的数…

基于rust的,gRPC动态代理,无需proto文件自动http转gRPC

目录前言grpc实践github地址第一步第二步第三步第四步测试结构和原理尾语前言 沟通服务间接口内容(尤其是前后端接口)&#xff0c;是非常让人头疼的事。极其容易扯皮。接口文档写起来也很痛苦&#xff0c;每个字段的改动都需要及时更新&#xff0c;否则就会出问题。服务端通信如…

链表(初学)

n个结点由指针链组成一个链表。链表的结点在存储器中的位置是任意的&#xff0c;即逻辑上相邻的数据元素在物理上不一定相邻。链表的每一个结点有两个区域&#xff0c;分别是数据域和指针域。数据域存储的是当前结点的数据值&#xff0c;而指针域存储的是下一个结点的存储地址。…

URL的正则表达式(js代码)

在WWW上&#xff0c;每一信息资源都有统一的且在网上的地址&#xff0c;该地址就叫URL&#xff08;Uniform Resource Locator,统一资源定位器&#xff09;&#xff0c;它是WWW的统一资源定位标志&#xff0c;就是指网络地址。语法URL由三部分组成&#xff1a;资源类型、存放资源…

2022财年业绩增长乏力渐显,AR电商是Snap下一个突破口吗?

北京时间2月1日&#xff0c;Snap公布了2022财年第四季度和全年财务业绩&#xff0c;财报发布后&#xff0c;Snap盘后股价大幅下跌&#xff0c;最终收跌14.97%。 这并非Snap首次出现公布业绩后股价暴跌的情况&#xff0c;不可否认的是市场的敏锐度十分迅捷。那么&#xff0c;20…

数据结构——栈

一、栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶&#xff0c;另一端称为栈底&#xff0c;不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表&#xff0c;简称LIFO结构。 栈的插入操作&#xff0c;叫作进栈&#xff0c;也称压栈…

不固定版式文档的OCR模型自主开发流程及技术应用实例

随着各行业数字化、智能化建设的脚步加快&#xff0c;OCR得到了普及应用。当前&#xff0c;OCR技术主要应用于标准证件、票据识别&#xff0c;通过自动检测并识别、提取文字&#xff0c;减少人工录入信息的工作量&#xff0c;提升业务效率。目前&#xff0c;企业对OCR的识别精度…

java 分布式缓存 redis持久化 redis主从 Redis哨兵 Redis分片集群

-- 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题&#xff1a; 数据丢失问题 &#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 并发能力问题 &#xff1a;单节点Redis并发能力虽然不错&#xff0c;但也无法满足如618这样的高并发场景 故障…

flink学习35:flinkSQL查询mysql

总览&#xff1a; import org.apache.flink.streaming.api.scala._ import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment import org.apache.flink.table.api.EnvironmentSettings import org.apache.flink.table.api.bridge.scala.{StreamTableEnvi…

day 23 贪心

P4447 [AHOI2018初中组]分组要求分成的每个小组的队员实力值连续&#xff0c;同时&#xff0c;一个队不需要两个实力相同的选手满足所有人都恰好分到一个小组&#xff0c;使得人数最少的组人数最多&#xff0c;输出人数最少的组人数的最大值。注意&#xff1a;实力值可能是负数…

【软件测试】 MySQL数据库总结,表的一系列操作,你看的都用得到......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 MySQL中的数据类型 …

ROS小车研究笔记2/2/2023 激光雷达建图

1 启动激光雷达建图节点 roslaunch turn_on_wheeltec_robot mapping.launch 2 启动rviz使建图可视化 rviz 在rviz中如果出现小车坐标错误&#xff0c;如小车坐标倾斜&#xff0c;可以按单片机上的RESET键使里程计复位。 我在测试中还出现启动mapping.launch后持续显示无法启动…

2023牛客寒假算法基础集训营5 -- C - 小沙の不懂

题目如下&#xff1a; 题目描述 输入描述: 输入两个整数 a, b, 0≤a,b<101050 \le a, b < 10^{10^5}0≤a,b<10105 输出描述: 如果在每一种情况中 a>ba>ba>b, 则输出">“。 如果在每一种情况中 a<ba<ba<b, 则输出”<“。 如果在每一种…

KT6368A双模蓝牙芯片功能 参数 应用 等等介绍

目录 一、KT6368A蓝牙芯片的基本介绍 二、KT6368A的功能介绍 三、KT6368A应用场景介绍 四、KT6368A的扩展说明 一、KT6368A蓝牙芯片的基本介绍 先看看官网的简单介绍&#xff1a; KT6368A芯片是一款支持蓝牙双模的纯数据芯片&#xff0c;蓝牙5.1版本。芯片的亮点在超小尺…

2022年重回王座,通用汽车电气化前景几何?

北京时间1月31日&#xff0c;美国汽车巨头通用汽车发布2022财年年报&#xff0c;第四度业绩超预期。 据通用汽车财报显示&#xff0c;其2022年Q4实现营收431.08亿美元&#xff0c;市场预期为406.5亿美元&#xff0c;摊薄调整后每股收益为2.12美元&#xff0c;市场预期为1.69美…

开学礼物送什么给孩子有意义?盘点最好的开学礼物之护眼台灯

即将开学啦&#xff0c;很多家长会给孩子准备开学的礼物&#xff0c;鼓励孩子春季新学期好好学习。 那么在开学送哪些礼物能显现出家长的良苦用心呢&#xff1f;也是随着这几年儿童近视率逐渐上升&#xff0c;近视成为许多家长担忧的问题&#xff0c;能更好的预防近视&#xf…

mongodb副本集部署及springboot集成

一、mongodb应用安装1、官网下载mongodb的社区版https://www.mongodb.com/try/download/community2、离线安装将下载好的mongodb安装包上传至服务器指定目录病解压&#xff08;1&#xff09;配置环境变量export MONGO_HOME/home/master/mongodb/mongo export PATH$MONGO_HOME/b…