VueCli+SpringBoot(路由、主入口、弹窗、axios请求、数据遍历、结合Echarts)(前端)二
来源:SegmentFault
2023-02-24 19:41:29
0浏览
收藏
IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《VueCli+SpringBoot(路由、主入口、弹窗、axios请求、数据遍历、结合Echarts)(前端)二》,聊聊MySQL、前端、Java、vue.js,我们一起来看看吧!
Vue Cli目录
VueCli官网:https://element.eleme.io/#/zh-CN
VueCli写法
: 等于 v-bind
router/index.js
//引入模块 import Vue from 'vue' import VueRouter from 'vue-router' import Home from '../views/Home.vue' import Music from '../views/Music.vue' import Test from '../views/Test.vue' Vue.use(VueRouter) //path是路由参数,当路径匹配到当前路由参数时,就会跳转component所对应的页面组件 const routes = [ { path: '/', //首页 name: 'Home', component: Home }, { path: '/about', //模块路径 name: 'About', component: Aubot }, { path: '/music', //模块路径 name: 'Music', component: Music }, { path: '/test', //模块路径 name: 'Test', component: Test } ] const router = new VueRouter({ routes }) export default router
app.vue 为主入口
<template><div id="app"> <!-- router允许使用路由跳转 mode设置水平 垂直 --> <el-menu mode="horizontal" background-color="#97c0c8" text-color="#fff" router><el-menu-item index="/">首页</el-menu-item><el-menu-item index="/about">音 乐</el-menu-item><el-menu-item index="/music">走马灯</el-menu-item><el-menu-item index="/test">测试</el-menu-item></el-menu><!-- 局部跳转页面 --><router-view></router-view></div> </template><style> </style>
views/About
<template><div> <el-input v-model="input" placeholder="请输入歌手名" style="width: 13%; margin-top: 13px; margin-bottom: 13px; margin-right: 13px; margin-left: 3px;"></el-input><el-button style="margin-right: 13px;">搜索</el-button><el-button style="margin-right: 13px;">新增</el-button><el-button style="margin-right: 13px;">导入</el-button><el-button style="margin-right: 13px;">导出</el-button><el-button style="margin-right: 13px;">打印</el-button><el-table :data="tableData" stripe style="width: 100%"><el-table-column prop="song" label="歌曲名" width="180"></el-table-column><el-table-column prop="name" label="歌手" width="180"></el-table-column><el-table-column prop="sex" :formatter="sexType" label="性别" width="180"></el-table-column><el-table-column prop="createTime" label="创建时间" width="180"></el-table-column><el-table-column><el-button slot-scope="scope">修改</el-button></el-table-column><el-table-column><!-- 获取当行元素 --><el-button slot-scope="scope">删除</el-button></el-table-column></el-table><!-- 分页 --><el-pagination :current-page="pageSize" :page-sizes="[5, 10, 15, 20]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="count"></el-pagination><el-dialog title="新增" :visible.sync="dialogSave" style="width: 100%;"><table><tr><td>歌曲名:</td> <td><el-input v-model="musicName"></el-input></td> </tr><tr><td>歌 手:</td> <td><el-input v-model="name"></el-input></td> </tr><tr><td>性 别:</td> <td><el-input v-model="sex"></el-input></td> </tr></table><el-button type="submit" style="margin-right: 33px;">取消</el-button><el-button type="submit">提交</el-button></el-dialog><el-dialog title="修改" :visible.sync="dialogUpdate"><table><tr><td>歌曲名:</td> <td><el-input v-model="updateMusicName"></el-input></td> </tr><tr><td>歌 手:</td> <td><el-input v-model="updateName"></el-input></td> </tr><tr><td>性 别:</td> <td><el-input v-model="updateSex"></el-input></td> </tr></table><el-button type="submit" style="margin-right: 33px;">取消</el-button><el-button type="submit">修改</el-button></el-dialog><el-dialog title="导入上传" :visible.sync="dialogUpload"><el-upload drag action="http://localhost:1313/uploadExcel" accept=".xls,.xlsx" :on-success="upload"><i class="el-icon-upload"></i> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <!-- <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div> --> </el-upload><el-button>关闭</el-button></el-dialog></div> </template><script> export default { data() { return { tableData: [], dialogSave: false, dialogUpdate: false, dialogDelete: false, input: "", musicName:"", name:"", sex:"", updateMusicName:"", updateName:"", updateSex:"", id:"", pageSize:1, size:5, count:0, dialogUpload:false, // file:[] } }, created:function(){ var that=this; this.$axios.get("/selectAll"+"/"+that.pageSize+"/"+that.size).then(function(res){ that.tableData=res.data; // console.log(res.data); }); this.$axios.get("/selectCount").then(function(res){ that.count=res.data; }) }, methods: { //页面跳转 // junp(){ // this.$router.push({ // path:'/music' // }) // } deleteId(id){ // this.dialogDelete=true; // console.log(id); var that=this; this.$axios.delete("/deleteMessage",{ data:{ id:id, name:that.musicName, sex:that.sex, song:that.musicName, } }).then(function(res){ alert(res.data); that.selectAll(); that.selectCount(); }) }, findInput(input){ var that=this; // console.log(input); this.$axios.post("/selectCondition"+"/"+that.pageSize+"/"+that.size,{ name:input }).then(function(res){ that.tableData=res.data; that.count=res.data.length; }) }, insertData(){ var that=this; this.$axios.post("/insertMessage",{ name:that.name, sex:that.sex, song:that.musicName }).then(function(res){ alert(res.data); that.selectAll(); that.selectCount(); }) this.musicName="", this.name="", this.sex="", this.dialogSave=false }, update(data){ // console.log(data); this.updateMusicName=data.song; this.updateName=data.name; this.id=data.id; // this.updateSex=data.sex; if(data.sex==1){ this.updateSex="男"; }else if(data.sex==2){ this.updateSex="女"; } }, updateData(){ var that=this; this.$axios.post("/updateMessage",{ id:that.id, name:that.updateName, song:that.updateMusicName, sex:that.updateSex }).then(function(res){ alert(res.data); that.selectAll(); }) this.dialogUpdate=false }, //table表格格式化 sexType(row, column){ if (row.sex == 1) { return "男"; } else if(row.sex == 2){ return "女"; } }, selectAll(){ var that=this; this.$axios.get("/selectAll"+"/"+that.pageSize+"/"+that.size).then(function(res){ that.tableData=res.data; }) }, handleSizeChange(size){ this.size=size; // console.log(this.pageSize+"++++++条数++++++"); if(this.pageSize>1){ this.pageSize=1; } this.selectAll(); }, handleCurrentChange(pageSize){ this.pageSize=pageSize; // console.log(this.pageSize+"++++++当前页数++++++"); this.selectAll(); }, selectCount(){ var that=this; this.$axios.get("/selectCount").then(function(res){ that.count=res.data; }) }, print(){ window.print(); }, // uploadExcel(){ // var that=this; // this.$axios.post("http://localhost:1313/uploadExcel").then(function(res){ // alert(res.data); // }) // }, downloadExcel(){ window.open("/downloadExcel"+'/'+this.input) }, upload(response,file,fileList){ // console.log(response); // console.log(file); // console.log(fileList); alert(response); // this.file=fileList; }, close(){ this.selectAll(); this.dialogUpload=false; } } } </script><style> .el-input{ margin-left: 13px; } </style>
功能
1、弹窗
<template><div> <!-- dialogSave默认false不显示true为显示 --> <el-button style="margin-right: 13px;">新增</el-button><el-dialog title="新增" :visible.sync="dialogSave" style="width: 100%;"></el-dialog></div> </template><script> export default { data() { return { dialogSave:false } } } </script>
2、加载页面执行方法、打印
<template><div> <el-button style="margin-right: 13px;">打印</el-button></div> </template><script> export default { data() { return { } }, // 加载执行该方法 created:function(){ }, methods:{ print(){ window.print(); } } } </script>
3、axios连接接口 get、post、delete请求
<template><div> <el-button>测试</el-button></div> </template><script> export default { data() { return { tableData:[], name:"", sex:"", musicName:"" } }, methods:{ //function方法里this需要var that=this;才可正常使用 // get请求 selectCount(){ this.$axios.get("/selectCount").then(function(res){ console.log(res.data); }) }, // post请求 insertData(){ var that=this; this.$axios.post("/insertMessage",{ name:that.name, sex:that.sex, song:that.musicName }).then(function(res){ alert(res.data); // 调用该方法 that.selectCount(); }) this.musicName="", this.name="", this.sex="" }, // delete请求 deleteId(id){ var that=this; this.$axios.delete("/deleteMessage",{ data:{ id:id, name:that.musicName } }).then(function(res){ alert(res.data); that.selectCount(); }) } } } </script>
4、el-table遍历、 :formatter数据格式化(1、2转化为男、女)、 slot- scope获取当前列的数据信息
<template><div> <!-- prop是父组件用来传递数据的一个自定义属性 label为标签--> <el-table :data="tableData" stripe style="width: 100%"><el-table-column prop="song" label="歌曲名" width="180"></el-table-column><el-table-column prop="name" label="歌手" width="180"></el-table-column><!-- 字典表可以通过formatter更改值 --><el-table-column prop="sex" :formatter="sexType" label="性别" width="180"></el-table-column><el-table-column prop="createTime" label="创建时间" width="180"></el-table-column><el-table-column><!-- 获取当前列的信息 @click可以通过逗号 调用多个方法 --><el-button slot-scope="scope">修改</el-button></el-table-column><el-table-column><!-- 获取当行元素 --><el-button slot-scope="scope">删除</el-button></el-table-column></el-table></div> </template><script> export default { data() { return { tableData:[] } }, // 加载执行该方法 created:function(){ var that=this; this.$axios.get("/selectAll"+"/"+3+"/"+3).then(function(res){ that.tableData=res.data; console.log(that.tableData) }) },methods:{ update(res){ console.log(res) }, deleteId(res){ console.log(res); }, //table表格格式化 sexType(row, column){ if (row.sex == 1) { return "男"; } else if(row.sex == 2){ return "女"; } } } } </script>
5、接口设置好下载样式 重新打开一个页面调用该方法下载
<template><div> <el-button>测试</el-button></div> </template><script> export default { data() { return { } }, methods:{ downloadExcel(){ window.open("/downloadExcel"+'/'+this.input) }, } } </script>
6、分页
<template><div> <!-- 分页 --> <!-- @size-change 执行改变当前页条数 @current-change 执行改变当前页数 :current-page 默认当前页数 :page-sizes 设置当前条数 :page-size 默认当前条数 layout 组件布局,子组件名用逗号分隔 :total 总条数 --> <el-pagination :current-page="pageSize" :page-sizes="[5, 10, 15, 20]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="count"></el-pagination></div> </template><script> export default { data() { return { } }, methods:{ handleSizeChange(size){ this.size=size; // console.log(this.pageSize+"++++++条数++++++"); // 改变条数 当前页大于1 跳转到第一页 if(this.pageSize>1){ this.pageSize=1; } this.selectAll(); }, handleCurrentChange(pageSize){ this.pageSize=pageSize; // console.log(this.pageSize+"++++++当前页数++++++"); this.selectAll(); } } } </script>
7、结合Echarts图表
<template><div> <div id="myChart" :style="{width: '500px', height: '500px'}"></div> </div> </template><script> export default { data(){ return{ singer:[], song:[], singerSong:[] } }, created:function(){ }, methods: { selectEcharts(){ var that=this; this.$axios.get("/selectSong").then(function(res){ that.song=res.data; // console.log(that.song); }); this.$axios.get("/selectSinger").then(function(res){ that.singer=res.data; // console.log(that.singer); }); this.$axios.get("/singerSong").then(function(res){ that.singerSong=res.data; // console.log(that.singerSong); that.drawLine(); }); }, drawLine() { // 基于准备好的dom,初始化echarts实例 let myChart = this.$echarts.init(document.getElementById("myChart")); // 绘制图表 myChart.setOption({ xAxis: { type: 'category', data: this.singer, }, yAxis: { minInterval: 1, }, series: [ { data: this.song, type: 'bar', showBackground: true, backgroundStyle: { color: 'rgba(180, 180, 180, 0.2)' } } ] }); } },mounted(){ this.selectEcharts(); } } </script><style> </style>
好了,本文到此结束,带大家了解了《VueCli+SpringBoot(路由、主入口、弹窗、axios请求、数据遍历、结合Echarts)(前端)二》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!
版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除

- 上一篇
- 无代码如何破解软件开发中技术人才短缺问题

- 下一篇
- VueCli+SpringBoot(项目搭建、依赖引入、配置信息)(前端)一
查看更多
最新文章
-
- 数据库 · MySQL | 1天前 |
- MySQL设置中文界面,超简单教程来了!
- 332浏览 收藏
-
- 数据库 · MySQL | 1天前 | mysql 索引提示
- MySQL进阶必看!FORCE/USE/IGNOREINDEX用法大揭秘
- 182浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- 手把手教你写MySQL存储过程,小白也能轻松上手
- 163浏览 收藏
-
- 数据库 · MySQL | 1天前 | mysql group by
- MySQL分组查询优化:GROUPBY原理+索引优化超全解析
- 324浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- MySQL设置中文语言,轻松拥有中文界面
- 211浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- MySQL建库语句从入门到精通:创建数据库+设置字符集&排序规则(附实例)
- 176浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- 从零开始学MySQL数据库操作,小白轻松变大神!
- 496浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- MySQL插入日期到时间字段,轻松搞定日期格式
- 484浏览 收藏
-
- 数据库 · MySQL | 1天前 | mysql 数据压缩
- MySQL怎么实现高效压缩存储?表压缩+列式存储详细解读
- 272浏览 收藏
-
- 数据库 · MySQL | 1天前 | mysql JOIN优化
- MySQL优化JOIN操作:七大技巧教你提升关联查询速度
- 106浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- MySQL出现中文乱码?超详细解决方案一次性搞定
- 211浏览 收藏
-
- 数据库 · MySQL | 1天前 |
- MySQL主从复制这样配!搞懂这些参数,replication稳了~
- 131浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 484次学习
查看更多
AI推荐
-
- 茅茅虫AIGC检测
- 茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
- 14次使用
-
- 赛林匹克平台(Challympics)
- 探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
- 48次使用
-
- 笔格AIPPT
- SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
- 56次使用
-
- 稿定PPT
- 告别PPT制作难题!稿定PPT提供海量模板、AI智能生成、在线协作,助您轻松制作专业演示文稿。职场办公、教育学习、企业服务全覆盖,降本增效,释放创意!
- 51次使用
-
- Suno苏诺中文版
- 探索Suno苏诺中文版,一款颠覆传统音乐创作的AI平台。无需专业技能,轻松创作个性化音乐。智能词曲生成、风格迁移、海量音效,释放您的音乐灵感!
- 56次使用
查看更多
相关文章
-
- golang MySQL实现对数据库表存储获取操作示例
- 2022-12-22 499浏览
-
- 搞一个自娱自乐的博客(二) 架构搭建
- 2023-02-16 244浏览
-
- B-Tree、B+Tree以及B-link Tree
- 2023-01-19 235浏览
-
- mysql面试题
- 2023-01-17 157浏览
-
- MySQL数据表简单查询
- 2023-01-10 101浏览