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数值函数大全及使用技巧
- 117浏览 收藏
-
- 数据库 · MySQL | 2天前 |
- 三种登录MySQL方法详解
- 411浏览 收藏
-
- 数据库 · MySQL | 3天前 |
- MySQL数据备份方法与工具推荐
- 420浏览 收藏
-
- 数据库 · MySQL | 3天前 |
- MySQL数据备份方法与工具推荐
- 264浏览 收藏
-
- 数据库 · MySQL | 4天前 |
- MySQL索引的作用是什么?
- 266浏览 收藏
-
- 数据库 · MySQL | 5天前 |
- MySQL排序原理与实战应用
- 392浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQLwhere条件查询技巧
- 333浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL常用数据类型有哪些?怎么选更合适?
- 234浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL常用命令大全管理员必学30条
- 448浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL高效批量插入数据方法大全
- 416浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL性能优化技巧大全
- 225浏览 收藏
-
- 数据库 · MySQL | 1星期前 |
- MySQL数据备份4种方法保障安全
- 145浏览 收藏
查看更多
课程推荐
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
查看更多
AI推荐
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3166次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3379次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3408次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4512次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 3788次使用
查看更多
相关文章
-
- 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浏览

