Vue项目实战应用

2019-07-12  本文已影响0人  月哥说了算

介绍:

这里主要使用vue框架实现列表展示与修改功能。
页面效果:


Snipaste_2019-07-12_20-44-40.png

项目目录:


Snipaste_2019-07-12_20-47-56.png
Vue部分代码采用外部引用方式
主要引入的js文件
<script  src="js/vuejs-2.5.16.js"></script>
<script  src="js/axios-0.18.0.js"></script>
<script src="js/user.js"></script>

前端绑定代码:
列表展示部分:

<tr v-for="u in users">
 <td>
<input name="ids"  type="checkbox"></td>
   <td >{{u.id}}</td>
   <td>{{u.username}}</td>
   <td>{{u.password}}</td>
    <td>{{u.gender}}</td>
    <td>{{u.age}}</td>
   <td class="text-center">{{u.email}}</td>
   <td class="text-center">
    <button type="button" class="btn bg-olive btn-xs">订单</button>
  <button type="button" class="btn bg-olive btn-xs">详情</button>
   <button type="button" class="btn bg-olive btn-xs" @click="findbyid(u.id)">编辑</button>
         </td>
             </tr>

修改遮罩页面:

<div class="box-body">
<div class="form-horizontal">
<input type="text" class="form-control" >
<div class="form-group">
<label class="col-sm-2 control-label">用户名:</label>
<div class="col-sm-5">
<input type="text" v-model:value="user.username" class="form-control">
 </div>
</div>
 <div class="form-group">
    <label class="col-sm-2 control-label">密码:</label>
 <div class="col-sm-5">
   <input type="text" v-model:value="user.password" class="form-control">
  </div>
   </div>
  <div class="form-group">
    <label class="col-sm-2 control-label">性别:</label>
<div class="col-sm-5">
<input type="text" v-model:value="user.gender" class="form-control">
 </div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">年龄:</label>
<div class="col-sm-5">
  <input type="text" v-model:value="user.age" class="form-control">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">邮箱:</label>
<div class="col-sm-5">
<input type="text" v-model:value="user.email" class="form-control">
 </div>
   </div>
  </div>
<div class="modal-footer">
<button type="button" class="btn btn-outline" data-dismiss="modal">关闭
</button>
 <button type="button" class="btn btn-outline" @click="updateuser()"  data-dismiss="modal">修改
 </button>
</div>

user.js文件代码

new Vue({
//#app是列表及修改遮罩页面父容器
    el:"#app",
    data:{
//放列表展示中数据库 查询到的代码
        users:[],
//修改框用于双向绑定
        user:{
            id:"",
            username:"",
            password:"",
            gender:"",
            age:0,
            email:""
        }
    },
//方法
    methods:{
//查询所有数据
        findall:function () {
            axios.get("/findall")
                .then((resp)=>{
                    this.users = resp.data
                })
        },
//根据id查询数据
        findbyid:function(id){
            axios.get("/findbyid/"+id)
                .then((resp)=>{
                    this.user=resp.data;
                });
            $("#myModal").modal("show");
        },
//修改数据
        updateuser:function () {
          axios.post("/findall",this.user)
              .then((resp)=>{
                  this.findall();
              })
        }
    },
    created:function () {
        this.findall()
    }
})

后台使用ssm框架编写,这是Controller部分代码

package com.gzy.web.controller;

import com.gzy.domain.User;
import com.gzy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
//@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
@RestController
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/findall")
    public List<User> finsdAll(){
        System.out.println("dsd");
        List<User> all = userService.findAll();
        return all;
    }
    @RequestMapping("/findbyid/{id}")
    public User findbyid(@PathVariable(name="id") int id){
        User byId = userService.findById(id);
        return byId;
    }
    //采用请求方式判断 是修改还是查询
    @RequestMapping(value = "/findall",method=RequestMethod.POST)
    public void update(@RequestBody User user){
        System.out.println();
        userService.update(user);
    }


}

上一篇下一篇

猜你喜欢

热点阅读