SSM整合项目(使用Vue3 + Element-Plus创建项目基础页面)

news2024/12/26 22:34:16

1.配置Vue启动端口

1.修改vue.config.js
const {defineConfig} = require('@vue/cli-service')
module.exports = defineConfig({
    transpileDependencies: true
})
module.exports = {
    devServer: {
        port: 9999 //启动端口
    }
}

2.启动

image-20240310091319021

2.安装Element Plus

命令行输入 npm install element-plus --save

image-20240310091915697

3.修改Vue3默认样式并自定义一个组件

1.修改App.vue
1.删除原有结构
<template>
  <div>

  </div>
</template>

<style>

</style>

2.启动项目查看

image-20240310092602015

2.修改HomeView.vue
<template>
  <div>

  </div>
</template>

<script>

export default {
  name: 'HomeView',
  components: {

  }
}
</script>

3.删除HelloWorld.vue组件

image-20240310092952626

4.创建一个组件 src/components/Header.vue
1.组件解释

image-20240310093749335

2.代码
<template>
  <div style="height: 50px; line-height: 50px; border-bottom: 1px solid #ccc;
display: flex">
    <div style="width: 200px; padding-left: 30px; font-weight: bold; color:
dodgerblue">后台管理
    </div>
    <div style="flex: 1"></div>
    <div style="width: 100px">下拉框</div>
  </div>
</template>
<script>
export default {
  name: "Header"
}
</script>

<style scoped>

</style>
5.App.vue引入组件
<template>
  <div>
    <!--使用Header组件-->
    <Header></Header>
    Home页面
  </div>
</template>
<script>
//引入Header组件
import Header from "@/components/Header.vue";
//导出Header组件,当前Vue组件的名字为Layout
export default {
  name: "Layout",
  components: {
    Header
  }
}
</script>
<style>

</style>

image-20240310094743408

6.本阶段总结

image-20240310095102268

4.创建全局的global.css并引入

1.目录

image-20240310095411715

2.代码
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
3.解释

image-20240310095531357

4.在main.js引入

image-20240310095652205

5.main.js引入Element-Plus

1.修改main.js

image-20240310100053063

2.测试Element-Plus是否生效
1.打开Element-Plus官方文档,查找一个按钮组件

image-20240310100455302

2.放到App.vue中

image-20240310100540756

3.查看页面,报错

image-20240310100614632

4.尝试解决问题
1.alt + enter安装组件

2.但是报错

Cannot install Node.js module: D:\nodejs(14.17.3)\npm.cmd install element-plus --save Standard error: ‘D:\nodejs’ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

5.重装nodejs
1.这次存放在nodejs文件夹下,之前的文件夹是带中文括号的,不知道是不是这个原因

image-20240310103124278

2.配置IDEA的nodejs

image-20240310103238891

3.再次尝试运行,又报错,这次是解释器的问题

Cannot install Node.js module: please specify default Node.js interpreter.

6.配置一下IDEA的Node.js的解释器

image-20240310103440030

7.再次尝试安装,成功!

image-20240310103521618

8.启动项目,成功出现按钮

image-20240310103555975

6.显示个人信息和退出登录的下拉框

1.需求分析

image-20240310103712371

2.去组件库找到下拉框的组件

image-20240310104217930

3.修改自定义组件src/components/Header.vue
<template>
  <div style="height: 50px; line-height: 50px; border-bottom: 1px solid #ccc;
display: flex">
    <div style="width: 200px; padding-left: 30px; font-weight: bold; color:
dodgerblue">后台管理
    </div>
    <div style="flex: 1"></div>
    <div style="width: 100px">
      <el-dropdown>
    <span class="el-dropdown-link">
      Tom
    </span>
        <template #dropdown>
          <el-dropdown-menu>
            <el-dropdown-item>个人信息</el-dropdown-item>
            <el-dropdown-item>退出登录</el-dropdown-item>
          </el-dropdown-menu>
        </template>
      </el-dropdown>
    </div>
  </div>
</template>
<script>
export default {
  name: "Header"
}
</script>

<style scoped>

</style>
4.效果展示

image-20240310104318827

7.创建侧边栏并调整布局

1.需求分析

image-20240310104510630

2.查找侧边栏组件

image-20240310110323365

3.粘贴到src/components/Aside.vue并修改
<script setup>

</script>

<template>
<!--  引入导航菜单-->
  <div>
    <el-menu style="width: 200px"
        default-active="2"
        class="el-menu-vertical-demo"
    >
      <el-sub-menu index="1">
        <template #title>
          <el-icon><location /></el-icon>
          <span>导航一</span>
        </template>
        <el-menu-item-group title="组一">
          <el-menu-item index="1-1">选项一</el-menu-item>
          <el-menu-item index="1-2">选项二</el-menu-item>
        </el-menu-item-group>
        <el-sub-menu index="1-4">
          <template #title>选项四</template>
          <el-menu-item index="1-4-1">选项一</el-menu-item>
        </el-sub-menu>
      </el-sub-menu>
      <el-menu-item index="2">
        <el-icon><icon-menu /></el-icon>
        <span>导航二</span>
      </el-menu-item>
      <el-menu-item index="3" disabled>
        <el-icon><document /></el-icon>
        <span>导航三</span>
      </el-menu-item>
      <el-menu-item index="4">
        <el-icon><setting /></el-icon>
        <span>导航四</span>
      </el-menu-item>
    </el-menu>  </div>
</template>

<style scoped>

</style>
4.修改App.vue引入Aside组件并布局
<template>
  <div>
    <!--  布局-->
    <div>
      <!--header组件-->
      <Header/>
      <!--主体,弹性布局-->
      <div style="display: flex">
        <!--侧边栏-->
        <Aside/>
        <!--内容区域,这个部分通过路由来展示,这里路由到HomeView, flex: 1-->
        <!--这里路由的view默认是/也就是HomeView组件-->
        <router-view style="flex: 1"/>
      </div>
    </div>

  </div>
</template>
<script>
//引入Header组件
import Header from "@/components/Header.vue";
//引入Aside
import Aside from "@/components/Aside.vue";
//导出Header组件,当前Vue组件的名字为Layout
export default {
  name: "Layout",
  components: {
    Header,
    Aside
  }
}
</script>
<style>

</style>

5.在路由到的组件HomeView随便放入一个Element组件测试
<template>
  <div>
    <el-empty description="description" />
  </div>
</template>

<script>

export default {
  name: 'HomeView',
  components: {

  }
}
</script>

6.结果展示

image-20240310112806054

8.修改HomeView.vue添加斑马表格

1.找到组件

image-20240310113750353

2.修改HomeView.vue
<template>
  <div>
    <el-table :data="tableData" stripe style="width: 100%">
<!--      把width去掉,就会自适应-->
      <el-table-column prop="date" label="日期"/>
      <el-table-column prop="name" label="名字"/>
      <el-table-column prop="address" label="地址" />
    </el-table>
  </div>
</template>

<script>

export default {
  name: 'HomeView',
  components: {

  },
  //增加一个data,单项绑定tableData
  data() {
    return {
      tableData: [
        {
          date: '2016-05-03',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-02',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-04',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-01',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
      ]
    }
  }
}
</script>

3.结果展示

image-20240310113930703

9.Element-Plus国际化

1.官方文档

image-20240310114339565

2.修改main.js进行国际化

image-20240310114417103

3.当表格没有数据时就是中文的暂无数据了

image-20240310114440439

10.从官网设置测试数据,并支持日期排序

1.修改HomeView.vue

image-20240310135357448

2.data更新为中文数据

image-20240310135419200

3.结果展示

image-20240310135441807

11.添加相关的操作按钮和搜索框

1.需求分析

image-20240310140641584

2.修改HomeView.vue
1.增加按钮
<template>
  <div>
    <!--增加按钮和搜索框-->
    <!--magrin代表上下边距为10px,左右边距为5px-->
    <div style="margin: 10px 5px">
      <el-button type="primary">新增</el-button>
      <el-button>其他</el-button>
    </div>
    <!--再增加一个搜索框并设置边距-->
    <div style="margin: 10px 5px">
      <!--搜索框,双向绑定一个search-->
      <el-input v-model="search" style="width: 30%" placeholder="请输入关键字"/>
      <el-button type="primary">查找</el-button>
    </div>
    <el-table :data="tableData" stripe style="width: 90%">
      <!--把width去掉,就会自适应-->
      <el-table-column sortable prop="date" label="日期"/>
      <el-table-column prop="name" label="名字"/>
      <el-table-column prop="address" label="地址"/>
      <!--在表格的最后一列加入两个超链接-->
      <el-table-column fixed="right" label="操作" width="100">
        <template #default>
          <el-button type="text">编辑</el-button>
          <el-button type="text">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>
2.新增data绑定搜索框

image-20240310141728537

3.结果展示

image-20240310141805634

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

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

相关文章

老阳推荐的视频号带货蓝海项目靠谱吗?

近年来&#xff0c;随着短视频平台的崛起&#xff0c;视频号带货逐渐成为了一个热门的新兴行业。在这个领域里&#xff0c;不少专家和达人纷纷涌现&#xff0c;其中老阳就是备受关注的一位。他推荐的视频号带货蓝海项目吸引了众多眼球&#xff0c;但这样的项目究竟靠不靠谱呢?…

【小黑送书—第十二期】>>一本书讲透Elasticsearch:原理、进阶与工程实践(文末送书)

Elasticsearch 是一种强大的搜索和分析引擎&#xff0c;被广泛用于各种应用中&#xff0c;以其强大的全文搜索能力而著称。 不过&#xff0c;在日常管理 Elasticsearch 时&#xff0c;我们经常需要对索引进行保护&#xff0c;以防止数据被意外修改或删除&#xff0c;特别是在进…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《含海上风电制氢的综合能源系统分布鲁棒低碳优化运行》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

【网络】数据在同网段和跨网段通信流程

情景一&#xff1a;同一广播域内&#xff0c;两台主机通信过程&#xff1a; 当NO要和N1通信时&#xff0c;假如N0知道N1的IP但却不知道它的MAC地址&#xff0c;那NO就会发送一个ARP的广播请求<1>&#xff08;里面源IP是NO 目标IP是N1 源MAC是N0 目标MAC是12个F&#xff0…

Python 分析— 使用 LeuvenMapMatching 包进行地图匹配用于道路导航

在道路导航中,我们有了街道网络地图。轨迹/GPS 数据必须与街道相匹配才能进行导航,因为 GPS 读数提供纯粹的纬度和经度坐标,但我们想知道车辆行驶的具体道路。 我首先尝试了一种简单的方法来匹配点,将每个点独立地匹配到最近的路段。如果没有道路,只需扩大缓冲距离…

耐腐蚀特氟龙塑料材质PFA烧杯超纯试剂反应杯

PFA烧杯在实验过程中可作为储酸容器或涉及强酸强碱类实验的反应容器&#xff0c;用于盛放样品、试剂&#xff0c;也可搭配电热板加热、蒸煮、赶酸用。 外壁均有凸起刻度&#xff0c;直筒设计&#xff0c;带翻边&#xff0c;便于夹持和移动&#xff0c;边沿有嘴&#xff0c;便于…

amv是什么文件格式?如何播放amv视频?

AMV文件格式源自于中国公司Actions Semiconductor&#xff0c;最初作为其MP4播放器中使用的专有视频格式。产生于数码媒体发展的需求下&#xff0c;AMV格式为小屏幕便携设备提供了一种高度压缩的视频存储方案。 AMV文件格式的主要特性与使用场景 AMV格式以其独特的特性在小尺寸…

SpringCloudAlibaba 网关gateway整合sentinel日志默认路径修改

SpringCloudAlibaba 网关gateway整合sentinel 实现网关限流熔断 问题提出 今天运维突然告诉我 在服务器上内存满了 原因是nacos日志高达3G,然后将日志文件发给我看了一下之后才发现是gateway整合sentinel使用了默认日志地址导致日志生成地址直接存在与根路径下而且一下存在多…

搜索引擎3Dfindit.com让艰难的工程数据搜索变得简单

3Dfindit让设计师在搜索零件中体验乐趣 Thomas是一位机械工程专业毕业的新人&#xff0c;他迎来了他的第一份工作&#xff0c;兴高采烈地开始着手他的第一个项目&#xff1a;甲方要求设计一个建造在工业区的全新洗车房---龙门式洗车房&#xff1a; 汽车先被喷满泡沫&#xff0c…

安装配置Kafka

一个典型的Kafka集群中包含若干Producer&#xff08;可以是Web前端FET&#xff0c;或者是服务器日志等&#xff09;&#xff0c;若干Broker&#xff08;Kafka支持水平扩展&#xff0c;一般Broker数量越多&#xff0c;集群吞吐率越高&#xff09;&#xff0c;若干ConsumerGroup&…

css相邻元素边框重合问题,解决方案

1、如下图所示&#xff0c;在给元素设置边框后&#xff0c;相邻元素会出现重合的问题 2、解决方案 给每个元素设置margin-top以及margin-left为负的边框 <div style"width: 300px;display: flex;flex-wrap: wrap;margin-top: 50px;"><div style"border…

layoutlmv3训练CDLA数据集

一.LayoutLMv3介绍 LayoutLMv3&#xff08;文档基础模型&#xff09; 自监督预训练技术在文档人工智能方面取得了显着的进步。大多数多模态预训练模型使用掩码语言建模目标来学习文本模态的双向表示&#xff0c;但它们在图像模态的预训练目标上有所不同。这种差异增加了多模态…

JAVA全面基础知识(第七部分)

大家好我是程序员阿存&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款&#xff0c;项目源码以及部署相关请联系存哥&#xff0c;文末附上联系信息 。 这篇文章给大家分享的是JAVA的基础知识&#xff0c; &#x1f495;&#x1f495;作者&#xff1a;程序员阿存 &…

qemu快速入门

前提&#xff1a; 我们做嵌入式软件的时候&#xff0c;往往可能会缺少嵌入式的硬件&#xff0c;那我们希望提前开始准备代码的话&#xff0c;就需要qemu这个开源软件&#xff0c;它可以模拟各种型号的芯片 。那么我们可以提前在这个模拟器上面去开发代码、验证、调试。 正片开始…

什么是高级编程语言?——跟老吕学Python编程

什么是高级编程语言&#xff1f;——跟老吕学Python编程 高级编程语言简介高级编程语言发展历程高级编程语言特点高级编程语言分类命令式语言函数式语言逻辑式语言面向对象语言 常见的高级编程语言及其特点和应用领域高级编程语言性能分析高级编程语言的工作方式 高级编程语言简…

深耕版本控制、代码质量与安全等领域,龙智荣获“Perforce 2023年度合作伙伴”奖项

在近日举行的Perforce 2024合作伙伴峰会上&#xff0c;龙智被评选为“Perforce 2023年度合作伙伴”。这一奖项不仅是对龙智在中国市场开拓中的进取精神与丰硕成果的高度认可&#xff0c;也是Perforce公司对于龙智持续创新精神及专业技术与服务的表彰。 自2012年成为Perforce中…

中探:事件循环相关内容(因为不仅仅是初步认识,但也不至于是深入探讨,所以命名为“中探”)

下面内容写于 2022 年&#xff0c;文本描述过多&#xff0c;可能不适合有经验的人看。新的文章在 个人网站 中。 对了&#xff0c;说到事件循环&#xff0c;怎么可以离开这个最知名的视频呢&#xff01;视频是英文的&#xff0c;但即使你听不懂&#xff0c;单纯看他的操作&…

使用gin框架,编写一个接收数据的api接口

功能&#xff1a;这里主要编写一个接口&#xff0c;将其json 数据存入对应的redis队列中&#xff0c;并统计每天的每小时请求数量 环境&#xff1a; go version go1.22.0 linux/amd64 平台 linux X64 步骤一 新建目录 命令如下&#xff1a; mkdir FormData 步骤二 新增…

【Linux】Linux上的一些软件安装与环境配置(Centos7配置JDK、Hadoop)

文章目录 安装JDK配置环境变量1. 卸载已安装的JDK查询已安装的 jdk 列表删除已经安装的 jdk 2. 上传安装包3. 创建 /usr/local/java 文件夹4. 将 jdk 压缩包解压到 /usr/local/java 目录下5. 配置 jdk 的环境变量6. 让配置文件生效7. 校验8.拍个快照吧&#xff0c;免得后面哪里…

2024 年系统规划与管理师(全套资料)

2024年11月系统规划与管理师全套视频、历年真题及解析、章节分类真题及解析、论文写作及范文、教材、模拟题、答题卡等资料 1、2023年5月、2022年5月、2021年5月、2020年5月四套基础精讲视频&#xff0c;案例分析及论文答题套路视频讲解。 2、系统规划与管理师2017-2023年真题…