定义整体样式(这样做是为了方便我们套用官方组件)
关于box-size:border-box参考:https://zhuanlan.zhihu.com/p/163113887
导入
定义整体布局App。vue
侧边组件
主体数据表
注意这里面的js书写部分
<template>
<el-table :data="tableData" stripe border style="width: 100% ;padding: 10px " >
<el-table-column prop="date" label="数据" />
<el-table-column prop="name" label="名字" sortable/>
<el-table-column prop="address" label="地址" />
<el-table-column label="Operations">
<template #default="scope">
<el-button size="small" @click="handleEdit(scope.$index, scope.row)"
>Edit</el-button
>
<el-button
size="small"
type="danger"
@click="handleDelete(scope.$index, scope.row)"
>Delete</el-button
>
</template>
</el-table-column>
</el-table>
</template>
<script >
// @ is an alias to /src
export default {
name: 'HomeView',
components: {
},
data(){
return{
tableData
}
},
methods : {
handleEdit(){
},
handleDelete(){
},
}
}
const 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>
最终效果
后端项目spring boot
快速生成地址:https://start.spring.io/
整合
将下载好的demo替换生成的moudle
再新建一个普通文件夹,把vue相关都放在里面最终形成如下目录
pom文件可能爆红
添加指定版本号即可,保持一致
完善结构
可以删掉test文件夹
配置数据库mysql
对应宝塔的设置
配置mybatis-plus
这比mybatis还要简便
官网:https://baomidou.com/
分页数据(需要mybatis-plus)
package com.example.demo.common;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("com.example.demo.mapper")//注意这里要扫描包
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
编写Result工具类
package com.example.demo.common;
//定义一个结果类code是状态码,msg是返回给前台的反馈信息
public class Result<T> {
private String code;
private String msg;
private T data;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public static Result success() {
Result result = new Result();
result.setCode("0");
result.setMsg("成功");
return result;
}
public static <T> Result<T> success(T data) {
Result<T> result = new Result();
result.setCode("0");
result.setMsg("成功");
return result;
}
public static Result error(String code , String msg){
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;
}
}
定义User
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String number;
private String username;
private String password;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
编写Mapper
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
public interface UserMapper extends BaseMapper<User> {
}
编写Service
编写UserContoller
package com.example.demo.controller;
import com.example.demo.common.Result;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
UserMapper userMapper;
@PostMapping
public Result<?> save(@RequestBody User user){
userMapper.insert(user);
return Result.success();
}
}
为前端添加对应
为按钮添加点击事件
使用axios实现数据交互
安装axios
接着书写相应css文件
https://blog.youkuaiyun.com/xqnode/article/details/118325868