Compare commits

...

17 Commits

Author SHA1 Message Date
pyia8e6p9 44e9d70373 数据库
2 years ago
pyia8e6p9 1d574851f8 成绩管理功能
2 years ago
lyn df379e0f67 开发课程前后太数据对接
2 years ago
whozo 2bd89e34df 修改redirect: '/home', => redirect: '/login',
2 years ago
whozo cf4a62f23b 添加 { path: 'person', name: 'Person', component: () => import('@/views/manager/Person.vue')},
2 years ago
root ad43980ff1 学生选课功能
2 years ago
root 8f2eea69f8 select
2 years ago
pyia8e6p9 f26240f0fc 添加import request from “@/utils/request”;
2 years ago
whozo f0ad61ec5c 添加import request from "@/utils/request";
2 years ago
pyia8e6p9 a25d1cb14b 学生管理功能、后台文件上传下载、个人资料页面合并
2 years ago
whozo 1eac91da81 学生管理功能,后台文件上传下载,学生个人资料页面
2 years ago
p89sifnku 56e2658f2c 开发课程分页查询接口,课程前后段数据对接,课程新增和编辑功能,课程删除功能
2 years ago
zy d45e39b06c 开发课程新增,编辑,删除功能
2 years ago
pyia8e6p9 15f4e8a8b0 登录和请求功能
2 years ago
zy d0e755a66d Merge remote-tracking branch 'origin/dev1' into dev1
2 years ago
zy 2a12a2d451 开发课程前后太数据对接
2 years ago
zy 5fa0ad14ec 开发课程分页查询接口
2 years ago

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@ -0,0 +1,52 @@
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Course;
import com.example.service.CourseService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/course")
public class CourseController {
@Resource
private CourseService courseService;
/**
*
*/
@GetMapping("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize,
Course course){
PageInfo<Course> pageInfo = courseService.selectPage(pageNum, pageSize,course);
return Result.success(pageInfo);
}
/**
*
*/
@PostMapping("/add")
public Result add(@RequestBody Course course){
courseService.add(course);
return Result.success();
}
/**
*
*/
@PutMapping("/update")
public Result update(@RequestBody Course course){
courseService.updateById(course);
return Result.success();
}
/**
*
*/
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable Integer id){
courseService.deleteById(id);
return Result.success();
}
}

@ -0,0 +1,60 @@
package com.example.controller;
import cn.hutool.core.io.FileUtil;
import com.example.common.Result;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
@RestController
@RequestMapping("/files")
//上传
public class FileController {
@Value("${ip}")
private String ip;
@Value("${server.port}")
private String port;
private static final String ROOT_PATH =System.getProperty("user.dir")+"/files";
@PostMapping("/upload")
public Result upload(MultipartFile file) throws IOException {
String originalFilename=file.getOriginalFilename();//文件名
long flag=System.currentTimeMillis();
String fileName=flag+"_"+originalFilename;
File finalFile = new File(ROOT_PATH + "/" + fileName);
if (!finalFile.getParentFile().exists()){
finalFile.getParentFile().mkdirs();
}
file.transferTo(finalFile);
//返回url
String url ="http://" + ip +":" + port +"/files/download?fileName=" + fileName;
return Result.success(url);
}
@GetMapping("/download")
public void download(String fileName, HttpServletResponse response) throws IOException {
File file = new File(ROOT_PATH + "/" + fileName); // 文件在存盘存储的对象
ServletOutputStream os = response.getOutputStream();
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
response.setContentType("application/octet-stream");
// os.write(FileUtil.readBytes(file));
FileUtil.writeToStream(file, os);
os.flush();
os.close();
}
}

@ -0,0 +1,54 @@
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Grade;
import com.example.service.GradeService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
*
*/
@RestController
@RequestMapping("/grade")
public class GradeController {
@Resource
GradeService gradeService;
@PostMapping("/add")
public Result add(@RequestBody Grade grade) {
gradeService.add(grade);
return Result.success();
}
@PutMapping("/update")
public Result update(@RequestBody Grade grade) {
gradeService.update(grade);
return Result.success();
}
/**
*
*/
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable Integer id) {
gradeService.deleteById(id);
return Result.success();
}
/**
*
*/
@GetMapping("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize,
Grade grade) { // ?name=xx&no=xx
PageInfo<Grade> pageInfo = gradeService.selectPage(pageNum, pageSize, grade);
return Result.success(pageInfo);
}
}

@ -1,4 +1,43 @@
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Student;
import com.example.service.StudentService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/student")
public class StudentController {
@Resource
StudentService studentService;
@PostMapping("/add")
public Result add(@RequestBody Student student) {
studentService.add(student);
return Result.success();
}
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable Integer id) {
studentService.deleteById(id);
return Result.success();
}
@PutMapping ("/update")
public Result update(@RequestBody Student student) {
studentService.updateById(student);
return Result.success();
}
@GetMapping ("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1")Integer pageNum,
@RequestParam(defaultValue = "10")Integer pageSize,
Student student) {
PageInfo<Student>pageInfo = studentService.selectPage(pageNum,pageSize,student);
return Result.success(pageInfo);
}
}

@ -0,0 +1,50 @@
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Course;
import com.example.entity.StudentCourse;
import com.example.service.StudentCourseService;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/studentCourse")
public class StudentCourseController {
@Resource
StudentCourseService studentCourseService;
/**
*
*/
@PostMapping("/add")
public Result add(@RequestBody StudentCourse studentCourse) {
studentCourseService.add(studentCourse);
return Result.success();
}
/**
*
*/
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable Integer id){
studentCourseService.deleteById(id);
return Result.success();
}
/**
*
*/
@GetMapping("/selectPage")
public Result selectPage(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize,
StudentCourse studentCourse){
PageInfo<StudentCourse> pageInfo = studentCourseService.selectPage(pageNum, pageSize,studentCourse);
return Result.success(pageInfo);
}
}

@ -0,0 +1,58 @@
package com.example.entity;
public class Course {
private Integer id;
private String name;
private String no;
private String descr;
private String times;
private String teacher;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public String getTimes() {
return times;
}
public void setTimes(String times) {
this.times = times;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
}

@ -0,0 +1,77 @@
package com.example.entity;
public class Grade {
private Integer id;
private Integer courseId;
private Integer studentId;
private Double score;
private String comment;
private String feedback;
private String studentName;
private String courseName;
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCourseId() {
return courseId;
}
public void setCourseId(Integer courseId) {
this.courseId = courseId;
}
public Integer getStudentId() {
return studentId;
}
public void setStudentId(Integer studentId) {
this.studentId = studentId;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
}

@ -0,0 +1,58 @@
package com.example.entity;
public class StudentCourse {
private Integer id;
private String name;
private String no;
private Integer studentId;
private Integer courseId;
private String studentName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public Integer getStudentId() {
return studentId;
}
public void setStudentId(Integer studentId) {
this.studentId = studentId;
}
public Integer getCourseId() {
return courseId;
}
public void setCourseId(Integer courseId) {
this.courseId = courseId;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
}

@ -0,0 +1,21 @@
package com.example.mapper;
import com.example.entity.Course;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface CourseMapper {
@Select("select * from course where name like concat('%',#{name},'%') and no like concat('%',#{no},'%') and teacher like concat('%',#{teacher},'%') order by id desc")
List<Course> selectAll(Course course);
@Insert("insert into course (name, no, descr, times, teacher) values(#{name},#{no},#{descr},#{times},#{teacher})")
void insert(Course course);
@Update("update course set name=#{name},no=#{no},descr=#{descr},times=#{times},teacher=#{teacher} where id=#{id}")
void updateById(Course course);
@Delete("delete from course where id=#{id}")
void deleteById(Integer id);
}

@ -0,0 +1,27 @@
package com.example.mapper;
import com.example.entity.Grade;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface GradeMapper {
@Insert("insert into grade (course_id, student_id, score, comment, feedback) " +
"values (#{courseId}, #{studentId}, #{score}, #{comment}, #{feedback})")
void insert(Grade grade);
List<Grade> selectAll(Grade grade); // 关联查询
@Update("update grade set score = #{score}, comment = #{comment}, feedback = #{ feedback } where id = #{id}")
void update(Grade grade);
@Select("select * from grade where student_id = #{studentId} and course_id = #{courseId}")
Grade selectByCondition(Grade grade);
@Delete("delete from grade where id = #{id}")
void deleteById(Integer id);
}

@ -0,0 +1,23 @@
package com.example.mapper;
import com.example.entity.StudentCourse;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface StudentCourseMapper {
@Insert("insert into student_course (name,no,student_id,course_id) values (#{name},#{no},#{studentId},#{courseId})")
void insert(StudentCourse studentCourse);
@Select("select * from student_course where student_id = #{studentId} and course_id = #{courseId}")
StudentCourse selectByCondition(StudentCourse studentCourse);
// @Select("select * from student_course where name like concat('%',#{name},'%') and no like concat('%',#{no},'%') and student_id=#{studentId}")
List<StudentCourse> selectAll(StudentCourse studentCourse);
@Delete("delete from student_course where id=#{id}")
void deleteById(Integer id);
}

@ -2,8 +2,10 @@ package com.example.mapper;
import com.example.entity.Student;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@ -16,4 +18,13 @@ public interface StudentMapper {
"values (#{username}, #{password}, #{name}, #{phone}, #{email}, #{sex}, #{birth}, #{avatar}, #{role})")
void insert(Student student);
@Delete("delete from student where id =#{id}")
void deleteById(Integer id);
@Update("update student set username=#{username},password=#{password},name=#{name},phone=#{phone}," +
"email=#{email},sex=#{sex},birth=#{birth},avatar=#{avatar} where id =#{id}")
void updateById(Student student);
@Select("select * from student where username like concat('%',#{username},'%')and name like concat('%',#{name},'%') order by id desc")
List<Student> selectAll(Student student);
}

@ -0,0 +1,36 @@
package com.example.service;
import com.example.entity.Course;
import com.example.mapper.CourseMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class CourseService {
@Resource
private CourseMapper courseMapper;
//total是查询总数 list是数据列表
public PageInfo<Course> selectPage(Integer pageNum, Integer pageSize,Course course){
PageHelper.startPage(pageNum,pageSize);
List<Course> coursesList = courseMapper.selectAll(course);
return PageInfo.of(coursesList);
}
//新增数据
public void add(Course course) {
courseMapper.insert(course);
}
public void updateById(Course course) {
courseMapper.updateById(course);
}
public void deleteById(Integer id) {
courseMapper.deleteById(id);
}
}

@ -0,0 +1,40 @@
package com.example.service;
import com.example.entity.Grade;
import com.example.exception.CustomException;
import com.example.mapper.GradeMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class GradeService {
@Resource
GradeMapper gradeMapper;
public void add(Grade grade) {
Grade dbGrade = gradeMapper.selectByCondition(grade);
if (dbGrade != null) { // 打过分了
throw new CustomException("您已打过分了");
}
gradeMapper.insert(grade);
}
public PageInfo<Grade> selectPage(Integer pageNum, Integer pageSize, Grade grade) {
PageHelper.startPage(pageNum, pageSize);
List<Grade> list = gradeMapper.selectAll(grade);
return PageInfo.of(list);
}
public void update(Grade grade) {
gradeMapper.update(grade);
}
public void deleteById(Integer id) {
gradeMapper.deleteById(id);
}
}

@ -0,0 +1,39 @@
package com.example.service;
import com.example.entity.StudentCourse;
import com.example.exception.CustomException;
import com.example.mapper.StudentCourseMapper;
import com.example.mapper.StudentMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class StudentCourseService {
@Resource
StudentCourseMapper studentCourseMapper;
public void add(StudentCourse studentCourse) {
StudentCourse course = studentCourseMapper.selectByCondition(studentCourse);//通过学生Id和课程ID筛选看这个学生是否选过这门课
if (course != null) {
throw new CustomException("您已选过这门课程");
}
studentCourseMapper.insert(studentCourse);
}
public PageInfo<StudentCourse> selectPage(Integer pageNum, Integer pageSize,StudentCourse studentCourse) {
PageHelper.startPage(pageNum,pageSize);
List<StudentCourse> list = studentCourseMapper.selectAll(studentCourse);
return PageInfo.of(list);
}
public void deleteById(Integer id) {
studentCourseMapper.deleteById(id);
}
}

@ -5,6 +5,8 @@ import com.example.entity.Account;
import com.example.entity.Student;
import com.example.exception.CustomException;
import com.example.mapper.StudentMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -48,4 +50,17 @@ public class StudentService {
studentMapper.insert(student);
}
public void deleteById(Integer id) {
studentMapper.deleteById(id);
}
public void updateById(Student student) {
studentMapper.updateById(student);
}
public PageInfo<Student> selectPage(Integer pageNum,Integer pageSize, Student student) {
PageHelper.startPage(pageNum,pageSize);
List<Student> studentList = studentMapper.selectAll(student);
return PageInfo.of(studentList);
}
}

@ -6,7 +6,7 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 121720
password: zyh1234567890
url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
servlet:
multipart:
@ -18,3 +18,6 @@ mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
mapper-locations: classpath:mapper/*.xml
ip: localhost

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.GradeMapper">
<select id="selectAll" resultType="com.example.entity.Grade">
select grade.*, student.name as studentName, course.name as courseName
from grade
left join student
on grade.student_id = student.id
left join course
on grade.course_id = course.id
<where>
<if test="studentName != null">and student.name like concat('%', #{studentName}, '%')</if>
<if test="courseName != null">and course.name like concat('%', #{courseName}, '%')</if>
<if test="studentId != null">and grade.student_id = #{studentId}</if>
</where>
order by id desc
</select>
</mapper>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.StudentCourseMapper">
<select id="selectAll" resultType="com.example.entity.StudentCourse">
select student_course.*,student.name as studentName from student_course
left join student
on student_course.student_id = student.id
<where>
<if test="name != null"> and student_course.name like concat('%',#{name},'%') </if>
<if test="no != null">and student_course.no like concat('%',#{no},'%')</if>
<if test="studentId!= null">and student_course.student_id = #{studentId}</if>
</where>
order by id desc
</select>
</mapper>

@ -6,7 +6,7 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 121720
password: zyh1234567890
url: jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
servlet:
multipart:
@ -18,3 +18,6 @@ mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
mapper-locations: classpath:mapper/*.xml
ip: localhost

@ -0,0 +1,130 @@
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 50737
Source Host : localhost:3306
Source Schema : student
Target Server Type : MySQL
Target Server Version : 50737
File Encoding : 65001
Date: 26/11/2023 16:31:45
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '账号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
`role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES (1, 'admin', 'admin', '管理员', 'ADMIN');
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程名称',
`no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程编号',
`descr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程描述',
`times` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课时',
`teacher` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '任课老师',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '课程信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES (1, '大学英语', 'CS10012313', '大学英语真好玩', '24节', '张三三');
INSERT INTO `course` VALUES (2, '大学物理', 'CS12332131', '大学物理真枯燥', '24节', '李思思');
INSERT INTO `course` VALUES (5, '线性代数', 'CS10012325', '线性代数真好学', '20节', '王二二');
INSERT INTO `course` VALUES (6, '李思思', NULL, NULL, NULL, NULL);
INSERT INTO `course` VALUES (7, '2', '2', '2', '2', '2');
-- ----------------------------
-- Table structure for grade
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`course_id` int(11) NULL DEFAULT NULL COMMENT '课程ID',
`student_id` int(11) NULL DEFAULT NULL COMMENT '学生ID',
`score` double(10, 1) NULL DEFAULT NULL COMMENT '分数',
`comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '评语',
`feedback` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '学生反馈',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '成绩' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of grade
-- ----------------------------
INSERT INTO `grade` VALUES (1, 1, 8, 90.0, '非常nice 哈哈哈\n\n我现在更新数据', '老师非常用心,我很喜欢青哥哥的课程 哈哈哈');
INSERT INTO `grade` VALUES (3, 2, 1, 60.0, '继续加油', '');
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '学号',
`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
`phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱',
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '性别',
`birth` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '生日',
`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
`role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, '20191001', '123', '小白白', '13788997788', 'xbb@xm.com', '', '2000-10-01', 'http://localhost:9090/files/download?fileName=1700576780918_QQ截图20230330090301.png', 'STUDENT');
INSERT INTO `student` VALUES (2, '20191002', '123', '20191002', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (3, '20191003', '123', '20191003', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (4, '20191004', '123', '20191004', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (5, '20191005', '123', '20191005', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (6, '20191006', '123', '20191006', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (7, '20191007', '123', '20191007', NULL, NULL, NULL, NULL, NULL, 'STUDENT');
INSERT INTO `student` VALUES (8, '20191010', '123', '李思思', '13988998899', 'lss@xm.com', '', '2001-11-01', 'http://localhost:9090/files/download?fileName=1700575670771_QQ图片20230301222231.gif', 'STUDENT');
-- ----------------------------
-- Table structure for student_course
-- ----------------------------
DROP TABLE IF EXISTS `student_course`;
CREATE TABLE `student_course` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程名称',
`no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程编号',
`student_id` int(11) NULL DEFAULT NULL COMMENT '学生ID',
`course_id` int(11) NULL DEFAULT NULL COMMENT '课程ID',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生选课' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student_course
-- ----------------------------
INSERT INTO `student_course` VALUES (4, '大学物理', 'CS12332131', 1, 2);
INSERT INTO `student_course` VALUES (5, '大学英语', 'CS10012313', 8, 1);
SET FOREIGN_KEY_CHECKS = 1;

@ -1,158 +1,215 @@
{
"hash": "4d788c00",
"browserHash": "d44c108b",
"hash": "7b87647c",
"browserHash": "3783bdee",
"optimized": {
"@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js",
"file": "@element-plus_icons-vue.js",
"fileHash": "aac49d5a",
"fileHash": "b9f59230",
"needsInterop": false
},
"axios": {
"src": "../../axios/index.js",
"file": "axios.js",
"fileHash": "b597ee32",
"fileHash": "3c866bcf",
"needsInterop": false
},
"element-plus": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus.js",
"fileHash": "189a99e8",
"fileHash": "07d81f07",
"needsInterop": false
},
"element-plus/dist/locale/zh-cn.mjs": {
"src": "../../element-plus/dist/locale/zh-cn.mjs",
"file": "element-plus_dist_locale_zh-cn__mjs.js",
"fileHash": "2808cc9a",
"fileHash": "731ceabb",
"needsInterop": false
},
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "1b68b33f",
"fileHash": "d542d8c4",
"needsInterop": false
},
"vue-router": {
"src": "../../vue-router/dist/vue-router.mjs",
"file": "vue-router.js",
"fileHash": "fa4c04ed",
"fileHash": "cfaa6634",
"needsInterop": false
},
"element-plus/es": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus_es.js",
"fileHash": "9018f365",
"fileHash": "a22f5d6f",
"needsInterop": false
},
"element-plus/es/components/base/style/index": {
"src": "../../element-plus/es/components/base/style/index.mjs",
"file": "element-plus_es_components_base_style_index.js",
"fileHash": "f07b5088",
"fileHash": "c200b7a8",
"needsInterop": false
},
"element-plus/es/components/menu/style/index": {
"src": "../../element-plus/es/components/menu/style/index.mjs",
"file": "element-plus_es_components_menu_style_index.js",
"fileHash": "9ef9dfdc",
"fileHash": "64291ef6",
"needsInterop": false
},
"element-plus/es/components/sub-menu/style/index": {
"src": "../../element-plus/es/components/sub-menu/style/index.mjs",
"file": "element-plus_es_components_sub-menu_style_index.js",
"fileHash": "fede9499",
"fileHash": "03bf85d6",
"needsInterop": false
},
"element-plus/es/components/menu-item/style/index": {
"src": "../../element-plus/es/components/menu-item/style/index.mjs",
"file": "element-plus_es_components_menu-item_style_index.js",
"fileHash": "3e6a6afc",
"fileHash": "a2dee0d4",
"needsInterop": false
},
"element-plus/es/components/icon/style/index": {
"src": "../../element-plus/es/components/icon/style/index.mjs",
"file": "element-plus_es_components_icon_style_index.js",
"fileHash": "8f6b7b18",
"fileHash": "04400642",
"needsInterop": false
},
"element-plus/es/components/message/style/index": {
"src": "../../element-plus/es/components/message/style/index.mjs",
"file": "element-plus_es_components_message_style_index.js",
"fileHash": "9b547f9e",
"fileHash": "bfcc6e5d",
"needsInterop": false
},
"element-plus/es/components/form/style/index": {
"src": "../../element-plus/es/components/form/style/index.mjs",
"file": "element-plus_es_components_form_style_index.js",
"fileHash": "826d74eb",
"needsInterop": false
},
"element-plus/es/components/button/style/index": {
"src": "../../element-plus/es/components/button/style/index.mjs",
"file": "element-plus_es_components_button_style_index.js",
"fileHash": "298368e4",
"needsInterop": false
},
"element-plus/es/components/select/style/index": {
"src": "../../element-plus/es/components/select/style/index.mjs",
"file": "element-plus_es_components_select_style_index.js",
"fileHash": "b03ae1f4",
"needsInterop": false
},
"element-plus/es/components/option/style/index": {
"src": "../../element-plus/es/components/option/style/index.mjs",
"file": "element-plus_es_components_option_style_index.js",
"fileHash": "0d7e30fb",
"needsInterop": false
},
"element-plus/es/components/form-item/style/index": {
"src": "../../element-plus/es/components/form-item/style/index.mjs",
"file": "element-plus_es_components_form-item_style_index.js",
"fileHash": "fe81150d",
"needsInterop": false
},
"element-plus/es/components/input/style/index": {
"src": "../../element-plus/es/components/input/style/index.mjs",
"file": "element-plus_es_components_input_style_index.js",
"fileHash": "71692cbd",
"needsInterop": false
},
"element-plus/es/components/dialog/style/index": {
"src": "../../element-plus/es/components/dialog/style/index.mjs",
"file": "element-plus_es_components_dialog_style_index.js",
"fileHash": "ee419574",
"needsInterop": false
},
"element-plus/es/components/pagination/style/index": {
"src": "../../element-plus/es/components/pagination/style/index.mjs",
"file": "element-plus_es_components_pagination_style_index.js",
"fileHash": "06313df6",
"fileHash": "3c169117",
"needsInterop": false
},
"element-plus/es/components/table/style/index": {
"src": "../../element-plus/es/components/table/style/index.mjs",
"file": "element-plus_es_components_table_style_index.js",
"fileHash": "eb0f1309",
"fileHash": "4ac26944",
"needsInterop": false
},
"element-plus/es/components/table-column/style/index": {
"src": "../../element-plus/es/components/table-column/style/index.mjs",
"file": "element-plus_es_components_table-column_style_index.js",
"fileHash": "2c2eafc5",
"fileHash": "37b1f53a",
"needsInterop": false
},
"element-plus/es/components/button/style/index": {
"src": "../../element-plus/es/components/button/style/index.mjs",
"file": "element-plus_es_components_button_style_index.js",
"fileHash": "5f403b2d",
"element-plus/es/components/message-box/style/index": {
"src": "../../element-plus/es/components/message-box/style/index.mjs",
"file": "element-plus_es_components_message-box_style_index.js",
"fileHash": "4b13d5b3",
"needsInterop": false
},
"element-plus/es/components/input/style/index": {
"src": "../../element-plus/es/components/input/style/index.mjs",
"file": "element-plus_es_components_input_style_index.js",
"fileHash": "1fdbfb81",
"element-plus/es/components/upload/style/index": {
"src": "../../element-plus/es/components/upload/style/index.mjs",
"file": "element-plus_es_components_upload_style_index.js",
"fileHash": "238313e0",
"needsInterop": false
},
"element-plus/es/components/form/style/index": {
"src": "../../element-plus/es/components/form/style/index.mjs",
"file": "element-plus_es_components_form_style_index.js",
"fileHash": "1577fe0a",
"element-plus/es/components/date-picker/style/index": {
"src": "../../element-plus/es/components/date-picker/style/index.mjs",
"file": "element-plus_es_components_date-picker_style_index.js",
"fileHash": "37769ea1",
"needsInterop": false
},
"element-plus/es/components/form-item/style/index": {
"src": "../../element-plus/es/components/form-item/style/index.mjs",
"file": "element-plus_es_components_form-item_style_index.js",
"fileHash": "6dd256b4",
"element-plus/es/components/radio-group/style/index": {
"src": "../../element-plus/es/components/radio-group/style/index.mjs",
"file": "element-plus_es_components_radio-group_style_index.js",
"fileHash": "0481c8fb",
"needsInterop": false
},
"element-plus/es/components/select/style/index": {
"src": "../../element-plus/es/components/select/style/index.mjs",
"file": "element-plus_es_components_select_style_index.js",
"fileHash": "b9f11662",
"element-plus/es/components/radio/style/index": {
"src": "../../element-plus/es/components/radio/style/index.mjs",
"file": "element-plus_es_components_radio_style_index.js",
"fileHash": "2d48a94a",
"needsInterop": false
},
"element-plus/es/components/option/style/index": {
"src": "../../element-plus/es/components/option/style/index.mjs",
"file": "element-plus_es_components_option_style_index.js",
"fileHash": "00e82736",
"element-plus/es/components/image/style/index": {
"src": "../../element-plus/es/components/image/style/index.mjs",
"file": "element-plus_es_components_image_style_index.js",
"fileHash": "5adb848e",
"needsInterop": false
}
},
"chunks": {
"chunk-22246I36": {
"file": "chunk-22246I36.js"
"chunk-LLX57AWP": {
"file": "chunk-LLX57AWP.js"
},
"chunk-DJEZ4JTC": {
"file": "chunk-DJEZ4JTC.js"
},
"chunk-EDNPP7CY": {
"file": "chunk-EDNPP7CY.js"
"chunk-PPVUTFQ4": {
"file": "chunk-PPVUTFQ4.js"
},
"chunk-5JKEUEZW": {
"file": "chunk-5JKEUEZW.js"
"chunk-GWFAMI2R": {
"file": "chunk-GWFAMI2R.js"
},
"chunk-YF6ER62I": {
"file": "chunk-YF6ER62I.js"
"chunk-AJCL53Z6": {
"file": "chunk-AJCL53Z6.js"
},
"chunk-IEXUXUIS": {
"file": "chunk-IEXUXUIS.js"
"chunk-MNGJP5CX": {
"file": "chunk-MNGJP5CX.js"
},
"chunk-6L6I4RPD": {
"file": "chunk-6L6I4RPD.js"
"chunk-GKVWLPNN": {
"file": "chunk-GKVWLPNN.js"
},
"chunk-DS4Y6AOL": {
"file": "chunk-DS4Y6AOL.js"
},
"chunk-NHX6JBU6": {
"file": "chunk-NHX6JBU6.js"
},
"chunk-CI3L27KN": {
"file": "chunk-CI3L27KN.js"
},
"chunk-772POZ6I": {
"file": "chunk-772POZ6I.js"
},
"chunk-MFXAVKGL": {
"file": "chunk-MFXAVKGL.js"
@ -165,15 +222,6 @@
},
"chunk-5WWUZCGV": {
"file": "chunk-5WWUZCGV.js"
},
"chunk-KZYH6XRM": {
"file": "chunk-KZYH6XRM.js"
},
"chunk-UFP42AXV": {
"file": "chunk-UFP42AXV.js"
},
"chunk-FGVA5UI6": {
"file": "chunk-FGVA5UI6.js"
}
}
}

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/checkbox/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/checkbox.scss";
//# sourceMappingURL=chunk-22246I36.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/input/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/input.scss";
//# sourceMappingURL=chunk-5JKEUEZW.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/option/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/option.scss";
//# sourceMappingURL=chunk-6L6I4RPD.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/base/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/base.scss";
//# sourceMappingURL=chunk-772POZ6I.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/checkbox/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/checkbox.scss";
//# sourceMappingURL=chunk-AJCL53Z6.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/popper/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/popper.scss";
//# sourceMappingURL=chunk-CI3L27KN.js.map

@ -0,0 +1,6 @@
// node_modules/element-plus/es/components/option-group/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/option-group.scss";
// node_modules/element-plus/es/components/select/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/select.scss";
//# sourceMappingURL=chunk-DJEZ4JTC.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/input/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/input.scss";
//# sourceMappingURL=chunk-DS4Y6AOL.js.map

@ -1,6 +0,0 @@
// node_modules/element-plus/es/components/option-group/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/option-group.scss";
// node_modules/element-plus/es/components/select/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/select.scss";
//# sourceMappingURL=chunk-EDNPP7CY.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/base/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/base.scss";
//# sourceMappingURL=chunk-FGVA5UI6.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/button/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/button.scss";
//# sourceMappingURL=chunk-GKVWLPNN.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/button/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/button.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";AACA,OAAO;",
"names": []
}

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/option/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/option.scss";
//# sourceMappingURL=chunk-GWFAMI2R.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tag/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/tag.scss";
//# sourceMappingURL=chunk-IEXUXUIS.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tooltip/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/tooltip.scss";
//# sourceMappingURL=chunk-KZYH6XRM.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/overlay/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/overlay.scss";
//# sourceMappingURL=chunk-LLX57AWP.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/overlay/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/overlay.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";AACA,OAAO;",
"names": []
}

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/tooltip/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/tooltip.scss";
//# sourceMappingURL=chunk-MNGJP5CX.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/scrollbar/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-NHX6JBU6.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/tag/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/tag.scss";
//# sourceMappingURL=chunk-PPVUTFQ4.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/popper/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/popper.scss";
//# sourceMappingURL=chunk-UFP42AXV.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/scrollbar/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-YF6ER62I.js.map

@ -1,2 +1,2 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
//# sourceMappingURL=element-plus_es_components_base_style_index.js.map

@ -1,5 +1,3 @@
import "./chunk-FGVA5UI6.js";
// node_modules/element-plus/es/components/button/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/button.scss";
import "./chunk-GKVWLPNN.js";
import "./chunk-772POZ6I.js";
//# sourceMappingURL=element-plus_es_components_button_style_index.js.map

@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/button/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/button.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;AACA,OAAO;",
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

@ -0,0 +1,9 @@
import "./chunk-GKVWLPNN.js";
import "./chunk-DS4Y6AOL.js";
import "./chunk-NHX6JBU6.js";
import "./chunk-CI3L27KN.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/date-picker/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/date-picker.scss";
//# sourceMappingURL=element-plus_es_components_date-picker_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/date-picker/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/date-picker.scss';\r\nimport '../../input/style/index.mjs';\r\nimport '../../scrollbar/style/index.mjs';\r\nimport '../../popper/style/index.mjs';\r\nimport '../../button/style/index.mjs';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;;;;;AACA,OAAO;",
"names": []
}

@ -0,0 +1,6 @@
import "./chunk-LLX57AWP.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/dialog/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/dialog.scss";
//# sourceMappingURL=element-plus_es_components_dialog_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/dialog/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/dialog.scss';\r\nimport '../../overlay/style/index.mjs';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;;AACA,OAAO;",
"names": []
}

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/form-item/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/form-item.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/form-item.scss";
//# sourceMappingURL=element-plus_es_components_form-item_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/form/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/form.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/form.scss";
//# sourceMappingURL=element-plus_es_components_form_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/icon/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/icon.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/icon.scss";
//# sourceMappingURL=element-plus_es_components_icon_style_index.js.map

@ -0,0 +1,8 @@
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/image/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/image.scss";
// node_modules/element-plus/es/components/image-viewer/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/image-viewer.scss";
//# sourceMappingURL=element-plus_es_components_image_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/image/style/index.mjs", "../../element-plus/es/components/image-viewer/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/image.scss';\r\nimport '../../image-viewer/style/index.mjs';\r\n//# sourceMappingURL=index.mjs.map\r\n", "import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/image-viewer.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;AACA,OAAO;;;ACAP,OAAO;",
"names": []
}

@ -1,3 +1,3 @@
import "./chunk-5JKEUEZW.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-DS4Y6AOL.js";
import "./chunk-772POZ6I.js";
//# sourceMappingURL=element-plus_es_components_input_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/menu-item/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/menu-item.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/menu-item.scss";
//# sourceMappingURL=element-plus_es_components_menu-item_style_index.js.map

@ -1,7 +1,7 @@
import "./chunk-KZYH6XRM.js";
import "./chunk-UFP42AXV.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-MNGJP5CX.js";
import "./chunk-CI3L27KN.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/menu/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/menu.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/menu.scss";
//# sourceMappingURL=element-plus_es_components_menu_style_index.js.map

@ -0,0 +1,8 @@
import "./chunk-LLX57AWP.js";
import "./chunk-GKVWLPNN.js";
import "./chunk-DS4Y6AOL.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/message-box/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/message-box.scss";
//# sourceMappingURL=element-plus_es_components_message-box_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/message-box/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/message-box.scss';\r\nimport '../../button/style/index.mjs';\r\nimport '../../input/style/index.mjs';\r\nimport '../../overlay/style/index.mjs';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;;;;AACA,OAAO;",
"names": []
}

@ -1,8 +1,8 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/badge/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/badge.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/badge.scss";
// node_modules/element-plus/es/components/message/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/message.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/message.scss";
//# sourceMappingURL=element-plus_es_components_message_style_index.js.map

@ -1,3 +1,3 @@
import "./chunk-6L6I4RPD.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-GWFAMI2R.js";
import "./chunk-772POZ6I.js";
//# sourceMappingURL=element-plus_es_components_option_style_index.js.map

@ -1,11 +1,11 @@
import "./chunk-EDNPP7CY.js";
import "./chunk-5JKEUEZW.js";
import "./chunk-YF6ER62I.js";
import "./chunk-IEXUXUIS.js";
import "./chunk-6L6I4RPD.js";
import "./chunk-UFP42AXV.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-DJEZ4JTC.js";
import "./chunk-PPVUTFQ4.js";
import "./chunk-GWFAMI2R.js";
import "./chunk-DS4Y6AOL.js";
import "./chunk-NHX6JBU6.js";
import "./chunk-CI3L27KN.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/pagination/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/pagination.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/pagination.scss";
//# sourceMappingURL=element-plus_es_components_pagination_style_index.js.map

@ -0,0 +1,5 @@
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/radio-group/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/radio-group.scss";
//# sourceMappingURL=element-plus_es_components_radio-group_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/radio-group/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/radio-group.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;AACA,OAAO;",
"names": []
}

@ -0,0 +1,5 @@
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/radio/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/radio.scss";
//# sourceMappingURL=element-plus_es_components_radio_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/radio/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/radio.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;AACA,OAAO;",
"names": []
}

@ -1,8 +1,8 @@
import "./chunk-EDNPP7CY.js";
import "./chunk-5JKEUEZW.js";
import "./chunk-YF6ER62I.js";
import "./chunk-IEXUXUIS.js";
import "./chunk-6L6I4RPD.js";
import "./chunk-UFP42AXV.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-DJEZ4JTC.js";
import "./chunk-PPVUTFQ4.js";
import "./chunk-GWFAMI2R.js";
import "./chunk-DS4Y6AOL.js";
import "./chunk-NHX6JBU6.js";
import "./chunk-CI3L27KN.js";
import "./chunk-772POZ6I.js";
//# sourceMappingURL=element-plus_es_components_select_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/sub-menu/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/sub-menu.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/sub-menu.scss";
//# sourceMappingURL=element-plus_es_components_sub-menu_style_index.js.map

@ -1,7 +1,7 @@
import "./chunk-22246I36.js";
import "./chunk-IEXUXUIS.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-PPVUTFQ4.js";
import "./chunk-AJCL53Z6.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/table-column/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/table-column.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/table-column.scss";
//# sourceMappingURL=element-plus_es_components_table-column_style_index.js.map

@ -1,9 +1,9 @@
import "./chunk-22246I36.js";
import "./chunk-YF6ER62I.js";
import "./chunk-KZYH6XRM.js";
import "./chunk-UFP42AXV.js";
import "./chunk-FGVA5UI6.js";
import "./chunk-AJCL53Z6.js";
import "./chunk-MNGJP5CX.js";
import "./chunk-NHX6JBU6.js";
import "./chunk-CI3L27KN.js";
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/table/style/index.mjs
import "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/table.scss";
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/table.scss";
//# sourceMappingURL=element-plus_es_components_table_style_index.js.map

@ -0,0 +1,8 @@
import "./chunk-772POZ6I.js";
// node_modules/element-plus/es/components/upload/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/upload.scss";
// node_modules/element-plus/es/components/progress/style/index.mjs
import "D:/虚拟C盘/CODE/GIt/vue/node_modules/element-plus/theme-chalk/src/progress.scss";
//# sourceMappingURL=element-plus_es_components_upload_style_index.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../element-plus/es/components/upload/style/index.mjs", "../../element-plus/es/components/progress/style/index.mjs"],
"sourcesContent": ["import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/upload.scss';\r\nimport '../../progress/style/index.mjs';\r\n//# sourceMappingURL=index.mjs.map\r\n", "import '../../base/style/index.mjs';\r\nimport 'element-plus/theme-chalk/src/progress.scss';\r\n//# sourceMappingURL=index.mjs.map\r\n"],
"mappings": ";;;AACA,OAAO;;;ACAP,OAAO;",
"names": []
}

@ -7,10 +7,15 @@ const router = createRouter({
path: '/',
name: 'Manager',
component: () => import('@/views/Manager.vue'),
redirect: '/home',
redirect: '/login',
children: [
{ path: 'home', name: 'Home', component: () => import('@/views/manager/Home.vue')},
{ path: 'course', name: 'Course', component: () => import('@/views/manager/Course.vue')},
{ path: 'student', name: 'Student', component: () => import('@/views/manager/Student.vue')},
{ path: 'courseList', name: 'CourseList', component: () => import('@/views/manager/CourseList.vue')},
{ path: 'studentCourse', name: 'StudentCourse', component: () => import('@/views/manager/StudentCourse.vue')},
{ path: 'person', name: 'Person', component: () => import('@/views/manager/Person.vue')},
{ path: 'grade', name: 'Grade', component: () => import('@/views/manager/Grade.vue')},
]
},
{ path: '/login', name: 'Login', component: () => import('@/views/Login.vue'),},

@ -8,8 +8,8 @@
</div>
</div>
<div style="width: fit-content; padding-right: 10px; display: flex; align-items: center;">
<img src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png" alt="" style="width: 40px; height: 40px">
<span style="margin-left: 5px">管理员</span>
<img :src="user.avatar||'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'" alt="" style="width: 40px; height: 40px; border-radius: 50%">
<span style="margin-left: 5px">{{user.name}}</span>
</div>
</div>
@ -19,7 +19,7 @@
router
style="border: none"
:default-active="$route.path"
:default-openeds="['/home', '2']"
:default-openeds="['/home', '2','3']"
>
<el-menu-item index="/home">
<el-icon><HomeFilled /></el-icon>
@ -30,12 +30,40 @@
<el-icon><Memo /></el-icon>
<span>课程管理</span>
</template>
<el-menu-item index="/course">
<el-menu-item index="/course" v-if="user.role === 'ADMIN'">
<el-icon><Document /></el-icon>
<span>课程信息</span>
</el-menu-item>
<el-menu-item index="/courseList" v-if="user.role === 'STUDENT'">
<el-icon><Document /></el-icon>
<span>学生选课</span>
</el-menu-item>
<el-menu-item index="/studentCourse">
<el-icon><Document /></el-icon>
<span>选课记录</span>
</el-menu-item>
</el-sub-menu>
<el-sub-menu index="3">
<template #title>
<el-icon><Memo /></el-icon>
<span>成绩信息</span>
</template>
<el-menu-item index="/grade">
<el-icon><Document /></el-icon>
<span>学生成绩</span>
</el-menu-item>
</el-sub-menu>
<el-sub-menu index="4" v-if="user.role === 'ADMIN'">
<template #title>
<el-icon><User /></el-icon>
<span>用户管理</span>
</template>
<el-menu-item index="/student">
<el-icon><UserFilled /></el-icon>
<span>学生信息</span>
</el-menu-item>
</el-sub-menu>
<el-menu-item index="/person">
<el-menu-item index="/person" v-if="user.role === 'STUDENT'">
<el-icon><User /></el-icon>
<span>个人资料</span>
</el-menu-item>
@ -57,6 +85,7 @@
<script setup>
import { useRoute } from 'vue-router'
const $route = useRoute()
const user =JSON.parse(localStorage.getItem('student-user')||'{}')
console.log($route.path)
const logout = () => {

@ -1,40 +1,148 @@
<template>
<div class="card" style="margin-bottom: 10px">
<el-input v-model="data.name" style="width: 240px" placeholder="请输入课程名称查询" :prefix-icon="Search"/>
<el-button type="primary" style="margin-left: 10px"> </el-button>
<el-button type="info" > </el-button>
<el-input v-model="data.name" style="width: 240px;margin-right:10px" placeholder="请输入课程名称查询" :prefix-icon="Search"/>
<el-input v-model="data.no" style="width: 240px;margin-right: 10px" placeholder="请输入课程编号查询" :prefix-icon="Search"/>
<el-input v-model="data.teacher" style="width: 240px" placeholder="请输入任课老师查询" :prefix-icon="Search"/>
<el-button type="primary" style="margin-left: 10px" @click="load"> </el-button>
<el-button type="info" @click="reset"> </el-button>
</div>
<div class="card" style="margin-bottom: 10px">
<div style="margin-bottom: 10px">
<el-button type="primary" > </el-button>
<el-button type="primary" @click="handleAdd"> </el-button>
</div>
<div>
<el-table :data="data.tableData" style="width: 100%">
<el-table-column prop="id" label="序号" width="180" />
<el-table-column prop="name" label="课程名称" width="180" />
<el-table-column prop="no" label="课程编号" width="180" />
<el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="name" label="课程名称" />
<el-table-column prop="no" label="课程编号" />
<el-table-column prop="descr" label="课程描述" />
<el-table-column prop="times" label="课时" />
<el-table-column prop="teacher" label="任课老师" />
<el-table-column>
<el-table-column label="操作" width="180">
<template #default="scope">
<el-button type="primary" size="small" plain> </el-button>
<el-button type="danger" size="small" plain> </el-button>
<el-button type="primary" size="small" plain @click="handleEdit(scope.row)"> </el-button>
<el-button type="danger" size="small" plain @click="del(scope.row.id)"> </el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="card">
<el-pagination background layout="prev, pager, next" :total="1000" />
<el-pagination v-model:current-page="data.pageNum" v-model:page-size="data.pageSize"
@current-change = "handleCurrentChange"
background layout="prev, pager, next" :total="data.total" />
</div>
<el-dialog width="35%" v-model="data.formVisible" title="课程信息" >
<el-form :model="data.form" label-width="100px" label-position="right" style="padding-right:40px">
<el-form-item label="课程名称" >
<el-input v-model="data.form.name" autocomplete="off" />
</el-form-item>
<el-form-item label="课程编号" >
<el-input v-model="data.form.no" autocomplete="off" />
</el-form-item>
<el-form-item label="课程描述" >
<el-input v-model="data.form.descr" autocomplete="off" />
</el-form-item>
<el-form-item label="课时" >
<el-input v-model="data.form.times" autocomplete="off" />
</el-form-item>
<el-form-item label="任课老师" >
<el-input v-model="data.form.teacher" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="data.formVisible = false">取消</el-button>
<el-button type="primary" @click="save"> </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script setup>
import {reactive} from "vue";
import {Search} from "@element-plus/icons-vue";
import request from "@/utils/request";
import {ElMessage, ElMessageBox} from "element-plus";
const data = reactive({
name:'',
tableData:[]
no:'',
teacher:'',
tableData:[],
total:0,
pageSize:5,//
pageNum: 1, //
formVisible:false,
form:{}
})
const load =()=>{
request.get('course/selectPage',{
params:{
pageNum:data.pageNum,
pageSize:data.pageSize,
name:data.name,
no:data.no,
teacher:data.teacher
}
}).then((res)=>{
data.tableData =res.data?.list || []
data.total=res.data?.total || 0
})
}
//
load()
const handleCurrentChange = (pageNum)=>{
//
load()
}
const reset =()=>{
data.name = ''
data.no = ''
data.teacher = ''
load()
}
const handleAdd = () => {
data.form = {}
data.formVisible = true
}
//
const save=()=>{
request.request({
url:data.form.id?'/course/update':'/course/add',
method:data.form.id?'PUT':'POST',
data:data.form
}).then(res => {
if(res.code === '200'){
load()//
data.formVisible=false;
ElMessage.success("操作成功")
}else{
ElMessage.error(res.msg)
}
})
}
const handleEdit=(row)=>{
data.form=JSON.parse(JSON.stringify(row))
data.formVisible=true
}
const del = (id)=>{
ElMessageBox.confirm('删除数据数据后无法恢复','确认删除吗',{type:'warning'}).then(() => {
request.delete('course/delete/' + id).then((res)=>{
if(res.code === '200'){
load()//
ElMessage.success("操作成功")
}else{
ElMessage.error(res.msg)
}
})
}).catch(res=>{})
}
</script>

@ -0,0 +1,90 @@
<template>
<div class="card" style="margin-bottom: 10px">
<el-input v-model="data.name" style="width: 240px;margin-right:10px" placeholder="请输入课程名称查询" :prefix-icon="Search"/>
<el-input v-model="data.no" style="width: 240px;margin-right: 10px" placeholder="请输入课程编号查询" :prefix-icon="Search"/>
<el-input v-model="data.teacher" style="width: 240px" placeholder="请输入任课老师查询" :prefix-icon="Search"/>
<el-button type="primary" style="margin-left: 10px" @click="load"> </el-button>
<el-button type="info" @click="reset"> </el-button>
</div>
<div class="card" style="margin-bottom: 10px">
<div>
<el-table :data="data.tableData" style="width: 100%">
<el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="name" label="课程名称" />
<el-table-column prop="no" label="课程编号" />
<el-table-column prop="descr" label="课程描述" />
<el-table-column prop="times" label="课时" />
<el-table-column prop="teacher" label="任课老师" />
<el-table-column label="操作" width="180">
<template #default="scope">
<el-button type="primary" @click="selectCourse(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="card">
<el-pagination v-model:current-page="data.pageNum" v-model:page-size="data.pageSize"
@current-change = "handleCurrentChange"
background layout="prev, pager, next" :total="data.total" />
</div>
</div>
</template>
<script setup>
import {reactive} from "vue";
import {Search} from "@element-plus/icons-vue";
import request from "@/utils/request";
import {ElMessage, ElMessageBox} from "element-plus";
const data = reactive({
name:'',
no:'',
teacher:'',
tableData:[],
total:0,
pageSize:5,//
pageNum: 1, //
student:JSON.parse(localStorage.getItem('student-user') || '{}')
})
const load =()=>{
request.get('course/selectPage',{
params:{
pageNum:data.pageNum,
pageSize:data.pageSize,
name:data.name,
no:data.no,
teacher:data.teacher
}
}).then((res)=>{
data.tableData =res.data?.list || []
data.total=res.data?.total || 0
})
}
//
load()
const handleCurrentChange = (pageNum)=>{
//
load()
}
const reset =()=>{
data.name = ''
data.no = ''
data.teacher = ''
load()
}
const selectCourse = (row) => {
request.post('/studentCourse/add',{studentId: data.student.id, name:row.name,no:row.no,courseId:row.id}).then(res => {
if(res.code === '200'){
ElMessage.success("操作成功")
}else {
ElMessage.error(res.msg)
}
})
}
</script>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save