1.1搭建环境
- 创建vue项目 :vue create xxx
- 安装第三方组件:axios,element
npm install axios vue add element
1.2:查询所有前端
- 创建页面
- 配置路由
-
const route[ { path:'/studentList', name:'学生列表', component:()=>import ('../views/项目名字.vue) } ]
-
访问路径
http:/localhost:8080/路由
1.2.2ajax操作
<template>
<div>
{
{studentPage}}
</div>
</template>
<script>
// 导入axios
import axios from 'axios'
export default {
data() {
return {
studentVo: { //条件查询
},
studentPage: { //分页数据
pageNum: 1,
pageSize: 3
}
}
},
methods: {
async condition() {
// ajax查询
var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}`
let {data:baseResult} = await axios.post(url, this.studentVo)
// 保存结果
this.studentPage = baseResult.data
}
},
mounted() {
// 查询
this.condition()
},
}
</script>
<style>
</style>
1.2.3 整合element ui
<template>
<div>
<!-- 表单start -->
<el-form :inline="true" :model="studentVo" size="mini" >
<el-form-item label="班级">
<el-select v-model="studentVo.cid" placeholder="请选择班级" clearable>
<el-option label="Java12班" value="c001"></el-option>
<el-option label="Java56班" value="c003"></el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="studentVo.sname" placeholder="请输入姓名" clearable></el-input>
</el-form-item>
<el-form-item label="年龄">
<el-col :span="11">
<el-input v-model="studentVo.startAge" placeholder="请输入开始年龄" clearable></el-input>
</el-col>
<el-col class="line" :span="2">-</el-col>
<el-col :span="11">
<el-input v-model="studentVo.endAge" placeholder="请输入结束年龄" clearable></el-input>
</el-col>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="condition(1)">查询</el-button>
</el-form-item>
</el-form>
<!-- 表单end -->
<!-- 表格start -->
<el-table
:data="studentPage.list"
@selection-change="handleSelectionChange"
style="width: 100%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
prop="sid"
label="编号"
width="180">
</el-table-column>
<el-table-column
prop="sname"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="cid"
label="班级"
width="180">
</el-table-column>
<el-table-column
prop="age"
label="年龄"
width="180">
</el-table-column>
<el-table-column
prop="birthday"
label="生日"
width="180">
</el-table-column>
<el-table-column
prop="gender"
label="性别"
width="180">
<template slot-scope="scope">
{
{scope.row.gender == 1 ? "男" : "女"}}
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button size="mini">编辑</el-button>
<el-button size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 表格end -->
<!-- 分页条start -->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="studentPage.pageNum"
:page-sizes="[1, 2, 3, 5, 10]"
:page-size="studentPage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="studentPage.total">
</el-pagination>
<!-- 分页条end -->
</div>
</template>
<script>
// 导入axios
import axios from 'axios'
export default {
data() {
return {
studentVo: { //条件查询
},
studentPage: { //分页数据
pageNum: 1,
pageSize: 3
}
}
},
methods: {
async condition(num) {
if(num) {
this.studentPage.pageNum = num
}
// ajax查询
var url = `http://localhost:8888/student/condition/${this.studentPage.pageSize}/${this.studentPage.pageNum}`
let {data:baseResult} = await axios.post(url, this.studentVo)
// 保存结果
this.studentPage = baseResult.data
},
handleSelectionChange(val) {
console.info('批量删除')
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.studentPage.pageSize = val
this.studentPage.pageNum = 1
// 重新开始
this.condition()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.studentPage.pageNum = val
// 重新开始
this.condition()
}
},
mounted() {
// 查询
this.condition()
},
}
</script>
<style>
</style>