d1014_Vue2_book模板

举报
suyemai 发表于 2024/10/14 20:11:27 2024/10/14
353 0 0
【摘要】 测试

前端Vue2
index.html:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/vue.min.js"></script> <script src="js/axios-0.18.0.js"></script> <script src="js/vue-resource.min.js"></script> <script> function checkAll(flag){ $("[name=id]").prop("checked",flag); } </script> </head> <body>
		<div class="row clearfix">
			<div class="col-md-12 column">
				<form action="index.html" method="get" class="navbar-form navbar-left" role="search">
					<div class="form-group">
						<input type="text" v-model="studentQuery.sname" placeholder="请输入学生名称" class="form-control" />
						<select v-model="studentQuery.gid" class="form-control"/>
							<option value="-1">请选择班级</option>
							<option v-for="grade in gradeList" v-bind:value="grade.gid">{{grade.gname}}</option>
						</select>
						<br/>
						<input type="text" v-model="studentQuery.minAge" placeholder="请输入学生最小年龄" class="form-control" />
						-<input type="text" v-model="studentQuery.maxAge" placeholder="请输入学生最大年龄" class="form-control"/>
					</div>
					<br/>
					<button type="button" class="btn btn-default btn-info" @click="getStudentByPage(studentQuery.pageNum)">查询</button>
					<a href="add.html"><button type="button" class="btn btn-default btn-success">添加</button></a>
					<button type="button" class="btn btn-default btn-danger">批量删除</button>
					<a href="javascript:void(0)" @click="logout()">退出登录</a>
				</form>
				<div class="tab-content" id="maindata">
					<table class="table">
						<thead>
							<tr>
								<th>
									<input type="checkbox"  onclick="checkAll(this.checked)">
								</th>
								<th>编号</th>
								<th>姓名</th>
								<th>头像</th>
								<th>性别</th>
								<th>年龄</th>
								<th>出生日期</th>
								<th>班级</th>
								<th>课程</th>
								<th>操作</th>
							</tr>
						</thead>
						<tbody>
							<tr v-for="(student,index) in info.list" v-if="index%2==0" v-bind:class="{'info':true}">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									{{student.sid}}
								</td>
								<td>
									{{student.sname}}
								</td>
								<td><!-- {{student.imgurl}} --></td>
								<td>
									{{student.sex==1?"男":"女"}}
								</td>
								<td>
									{{student.age}}
								</td>
								<td>
									{{student.birthday}}
								</td>
								<td>
									{{student.grade.gname}}
								</td>
								<td>
									<label v-for="course in student.courseList">{{course.cname}}&nbsp;</label>
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr>
							<tr v-else v-bind:class="{'success':true}">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									{{student.sid}}
								</td>
								<td>
									{{student.sname}}
								</td>
								<td><!-- {{student.imgurl}} --></td>
								<td>
									{{student.sex==1?"男":"女"}}
								</td>
								<td>
									{{student.age}}
								</td>
								<td>
									{{student.birthday}}
								</td>
								<td>
									{{student.grade.gname}}
								</td>
								<td>
									<label v-for="course in student.courseList">{{course.cname}}&nbsp;</label>
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr>
							<!-- <tr class="success">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									1
								</td>
								<td>
									水浒传
								</td>
								<td>
									50
								</td>
								<td>
									施耐庵
								</td>
								<td>
									2024-08-14
								</td>
								<td>
									小说
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr>
							<tr class="error">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									1
								</td>
								<td>
									水浒传
								</td>
								<td>
									50
								</td>
								<td>
									施耐庵
								</td>
								<td>
									2024-08-14
								</td>
								<td>
									小说
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr>
							<tr class="warning">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									1
								</td>
								<td>
									水浒传
								</td>
								<td>
									50
								</td>
								<td>
									施耐庵
								</td>
								<td>
									2024-08-14
								</td>
								<td>
									小说
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr>
							<tr class="info">
								<td>
									<input type="checkbox" name="id">
								</td>
								<td>
									1
								</td>
								<td>
									水浒传
								</td>
								<td>
									50
								</td>
								<td>
									施耐庵
								</td>
								<td>
									2024-08-14
								</td>
								<td>
									小说
								</td>
								<td>
									<button class="btn btn-success" type="button"><span
											class="glyphicon glyphicon-link"></span></button>
									<a href="update.html"><button class="btn btn-info" type="button"><span
												class="glyphicon glyphicon-edit"></span></button></a>
									<button class="btn btn-danger" type="button"><span
											class="glyphicon glyphicon-trash"></span></button>
								</td>
							</tr> -->
						</tbody>
					</table>
					<ul class="pagination">
						<li><a href="#">总记录数:{{info.total}}</a></li>
						<li><a href="#">{{info.pageNum}}/{{info.pages}}</a></li>
						<li>
							<a href="javascript:void(0)" @click="getStudentByPage(info.isFirstPage?1:info.prePage)">&laquo;</a>
						</li>
						<li v-for="num in info.navigatepageNums" v-if="num==info.pageNum" v-bind:class="{'active':true}">
							<a href="javascript:void(0)" @click="getStudentByPage(num)">{{num}}</a>
							<!-- <a href="javascript:void(0)" @click="getStudentByPage(num)" v-else>{{num}}</a> -->
						</li>
						<li v-else>
							<a href="javascript:void(0)" @click="getStudentByPage(num)">{{num}}</a>
							<!-- <a href="javascript:void(0)" @click="getStudentByPage(num)" v-else>{{num}}</a> -->
						</li>
						<!-- <li>
							<a href="#">2</a>
						</li>
						<li>
							<a href="javascript:void(0)">3</a>
						</li>
						<li>
							<a href="javascript:void(0)">4</a>
						</li>
						<li>
							<a href="javascript:void(0)">5</a>
						</li> -->
						<li>
							<a href="javascript:void(0)" @click="getStudentByPage(info.pages)">&raquo;</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</div>
	<script>
		// 就绪函数
		$(function(){
			// 判断是否已经登录
			var uname = localStorage.getItem("uname");
			console.log(uname);
			if(uname==null){
				alert("未登录");
				window.location.href="login.html";
			}
		})
		
		var vm = new Vue({
			el:"#app",
			data:{
				studentQuery:{
					pageNum:'1',
					sname:'',
					gid:'-1',
					minAge:'',
					maxAge:''
				},
				info:{},
				gradeList:[]
			},
			// 生命周期的函数
			created() {
				// 页面初始化分页查询
				this.getStudentByPage(1);
			},
			methods:{
				// 退出函数
				logout() {
					localStorage.removeItem("uid");
					localStorage.removeItem("uname");
					alert(localStorage.getItem("uname"));
					window.location.href="login.html";
				},
				// 分页查询函数
				getStudentByPage(page) {
					console.log("--page = "+page);
					this.studentQuery.pageNum = page;
					axios
						.post("http://localhost:8080/d1014_VueT1_Student/student/getStudentByPage",this.studentQuery)
						.then(res => {
							// console.log(JSON.stringify(res));
							this.info = res.data.data.info;
							this.gradeList = res.data.data.gradeList;
							console.log(JSON.stringify(this.info));
							console.log(JSON.stringify(this.gradeList));
						})
						.catch(function(error){
							console.log(error);
						})
				}
			}
		})
	</script>
</body>
</html> 后端:改动SSM package com.student.controller;

import com.github.pagehelper.PageInfo;
import com.student.pojo.Course;
import com.student.pojo.Grade;
import com.student.pojo.Student;
import com.student.result.Result;
import com.student.service.CourseService;
import com.student.service.GradeService;
import com.student.service.StudentService;
import com.student.pojo.StudentQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**

  • @Author lyf
  • @Date 2024/9/29 11:20

  • @Describe
    */

@CrossOrigin // 设置支持跨域请求
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private GradeService gradeService;
@Autowired
private CourseService courseService;

/**
 * 分页查询信息
 * @param studentQuery
 * @return
 */
@RequestMapping("/getStudentByPage")
public Result<Map<String,Object>> getStudentByPage(@RequestBody StudentQuery studentQuery){
    System.out.println("----------------------RequestBody-------------");
    System.out.println("studentQuery = " + studentQuery);
    // 调用service查询
    PageInfo<Student> info = studentService.getStudentByPage(studentQuery);
    System.out.println("info = " + info);
    for (Student student : info.getList()) {
        System.out.println("student = " + student);
        System.out.println("course = "+student.getCourseList());
    }
    // 调用service查询所有班级
    List<Grade> gradeList = gradeService.getGradeList();
    // 转发到学生信息页面

// model.addAttribute(“info”,info);
// model.addAttribute(“gradeList”, gradeList);
Map<String,Object> map = new HashMap<>();
map.put(“info”,info);
map.put(“gradeList”,gradeList);
return Result.ok(map);
}

// // 添加:以跳转控制器的方式
// /**
// * 准备添加需要的课程和班级信息,准备跳转
// * @param model
// * @return
// /
// @RequestMapping(“toAddStudent.action”)
// public String toAddStudent(Model model){
// // service查询所有班级、课程
// List<Grade> gradeList = gradeService.getGradeList();
// List<Course> courseList = courseService.getCourseList();
// model.addAttribute(“gradeList”,gradeList);
// model.addAttribute(“courseList”,courseList);
// return “addStudent”;
// }
//
// /
*
// * 添加
// * @param student
// * @return
// /
// @RequestMapping(“addStudent.action”)
// public String addStudent(Student student){
// // 调用service添加
// studentService.addStudent(student);
// return “redirect:/student/getStudentByPage.action”;
// }
//
// /
*
// * 异步JSON准备修改页面需要的数据
// * @param sid
// * @return
// /
// @ResponseBody
// @RequestMapping(“initUpdateDate.action”)
// public Map<String,Object> initUpdateDate(Integer sid){
// // 根据学生id查询返回学生对象
// Student student = studentService.getStudentById(sid);
// // 返回所有班级和课程
// List<Grade> gradeList = gradeService.getGradeList();
// List<Course> courseList = courseService.getCourseList();
// Map<String,Object> map = new HashMap<>();
// map.put(“student”,student);
// map.put(“gradeList”,gradeList);
// map.put(“courseList”,courseList);
// return map;
// }
//
// /
*
// * 修改
// * @param student
// * @return
// */
// @RequestMapping(“updateStudent.action”)
// public String updateStudent(Student student, String cids){
// System.out.println(“update---------------------”);
// System.out.println("cids = " + cids);
// System.out.println(“student = " + student);
// // 调用service修改
//// studentService.updateStudent(student);
// return “redirect:/student/getStudentByPage.”;
// }
//
// @RequestMapping(“delStudentByIds.action”)
// public String delStudentByIds(String sid){
// System.out.println(”--------------sid = " + sid);
// studentService.delStudentById(sid);
// return “redirect:/student/getStudentByPage.action”;
// }

}

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

热门文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。