学生评价打分功能

main
朱笔星 2 years ago
parent 30747e0444
commit 2cf8829129

@ -1,11 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="@localhost" uuid="9263f078-76f4-42d8-9219-fbb304dc8597">
<data-source source="LOCAL" name="@localhost" uuid="69226ae0-74c9-4958-b291-e2010ae0f164">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://localhost:3306</jdbc-url>
<jdbc-additional-properties>
<property name="com.intellij.clouds.kubernetes.db.host.port" />
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
<property name="com.intellij.clouds.kubernetes.db.container.port" />
</jdbc-additional-properties>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>

@ -3,5 +3,6 @@
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/README.md" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/create mysql.sql" dialect="MySQL" />
<file url="file://$PROJECT_DIR$/student/springboot/src/main/java/com/example/mapper/GradeMapper.java" dialect="GenericSQL" />
</component>
</project>

@ -21,10 +21,10 @@ CREATE TABLE course (
times varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
teacher varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);
drop table course;
drop table admin;
drop table student;
insert into course values(1,1,1,1,1,1);
# drop table course;
# drop table admin;
# drop table student;
CREATE TABLE student (
id INT PRIMARY KEY ,

@ -0,0 +1,56 @@
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Course;
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){
PageInfo<Grade> pageInfo = gradeService.selectPage(pageNum, pageSize,grade);
return Result.success(pageInfo);
}
}

@ -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,29 @@
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,46 @@
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,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>

@ -1,20 +1,28 @@
com\example\common\Result.class
com\example\service\GradeService.class
com\example\entity\Course.class
com\example\entity\Account.class
com\example\mapper\StudentCourseMapper.class
com\example\common\CorsConfig.class
com\example\SpringbootApplication.class
com\example\exception\CustomException.class
com\example\mapper\StudentMapper.class
com\example\entity\Student.class
com\example\entity\Admin.class
com\example\controller\WebController.class
com\example\entity\StudentCourse.class
com\example\entity\Grade.class
com\example\controller\StudentCourseController.class
com\example\common\Result.class
com\example\entity\Account.class
com\example\service\AdminService.class
com\example\service\CourseService.class
com\example\exception\GlobalExceptionHandler.class
com\example\common\RoleEnum.class
com\example\service\StudentService.class
com\example\SpringbootApplication.class
com\example\exception\CustomException.class
com\example\mapper\CourseMapper.class
com\example\mapper\StudentMapper.class
com\example\entity\Student.class
com\example\service\StudentCourseService.class
com\example\controller\FileController.class
com\example\entity\Admin.class
com\example\controller\WebController.class
com\example\controller\StudentController.class
com\example\controller\CourseController.class
com\example\mapper\GradeMapper.class
com\example\controller\GradeController.class
com\example\mapper\AdminMapper.class

@ -1,20 +1,28 @@
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\controller\WebController.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\controller\StudentController.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\entity\Course.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\mapper\StudentMapper.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\controller\FileController.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\service\AdminService.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\controller\CourseController.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\mapper\CourseMapper.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\common\CorsConfig.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\common\Result.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\service\StudentService.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\common\RoleEnum.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\entity\Admin.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\mapper\AdminMapper.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\SpringbootApplication.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\exception\CustomException.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\exception\GlobalExceptionHandler.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\entity\Account.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\entity\Student.java
C:\Users\LSH\IdeaProjects\1111\student\springboot\src\main\java\com\example\service\CourseService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\service\GradeService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\service\CourseService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\Course.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\mapper\StudentMapper.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\exception\CustomException.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\mapper\GradeMapper.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\Grade.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\service\StudentService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\mapper\CourseMapper.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\mapper\StudentCourseMapper.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\mapper\AdminMapper.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\service\StudentCourseService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\CourseController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\Admin.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\GradeController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\StudentController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\common\CorsConfig.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\StudentCourseController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\exception\GlobalExceptionHandler.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\FileController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\common\Result.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\Account.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\common\RoleEnum.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\StudentCourse.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\entity\Student.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\service\AdminService.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\controller\WebController.java
C:\Users\28344\Desktop\1111\student\springboot\src\main\java\com\example\SpringbootApplication.java

@ -1,227 +1,227 @@
{
"hash": "76c2da88",
"browserHash": "3c4b6169",
"hash": "d1968438",
"browserHash": "e1e4049e",
"optimized": {
"@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js",
"file": "@element-plus_icons-vue.js",
"fileHash": "73988159",
"fileHash": "e6ac96ff",
"needsInterop": false
},
"axios": {
"src": "../../axios/index.js",
"file": "axios.js",
"fileHash": "5f67c342",
"fileHash": "2dbfb99d",
"needsInterop": false
},
"element-plus": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus.js",
"fileHash": "2771e958",
"fileHash": "7fe23796",
"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": "937158e0",
"fileHash": "6abcbd4e",
"needsInterop": false
},
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "f292cbf4",
"fileHash": "1a98d497",
"needsInterop": false
},
"vue-router": {
"src": "../../vue-router/dist/vue-router.mjs",
"file": "vue-router.js",
"fileHash": "cbdcb580",
"fileHash": "2661afef",
"needsInterop": false
},
"element-plus/es": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus_es.js",
"fileHash": "e60c0aa3",
"fileHash": "4c0cbf53",
"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": "aee3b767",
"fileHash": "f07cf495",
"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": "01bd23b9",
"fileHash": "49419544",
"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": "d5ae05ca",
"fileHash": "ed8b419d",
"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": "df4102e9",
"fileHash": "7434936a",
"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": "a7ebc8bd",
"fileHash": "454092d2",
"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": "9b7795df",
"fileHash": "71002576",
"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": "65835963",
"fileHash": "c1e6bce6",
"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": "ce31d54a",
"fileHash": "d0f1116a",
"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": "999330d4",
"fileHash": "03e99155",
"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": "b0465429",
"fileHash": "d7c5ce02",
"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": "61aee722",
"fileHash": "5efa5ad4",
"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": "1efe9dd8",
"fileHash": "9e07e43d",
"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": "03f77e8a",
"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": "e1a8ac41",
"needsInterop": false
},
"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": "c63de779",
"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": "b012fc32",
"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": "7792c5b6",
"needsInterop": false
},
"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": "7cbe0e6c",
"needsInterop": false
},
"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": "cf35eb49",
"fileHash": "5d81cc3f",
"needsInterop": false
},
"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": "a1f26178",
"fileHash": "4772e160",
"needsInterop": false
},
"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": "eea9c7c7",
"fileHash": "9f6632b2",
"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": "5aff32ac",
"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": "b776d8b0",
"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": "ef03c5af",
"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": "fce5dd23",
"needsInterop": false
},
"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": "55ed2f4d",
"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": "18567005",
"needsInterop": false
},
"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": "83f10fef",
"fileHash": "4d76978d",
"needsInterop": false
}
},
"chunks": {
"chunk-MFXAVKGL": {
"file": "chunk-MFXAVKGL.js"
"chunk-DGDJFXZF": {
"file": "chunk-DGDJFXZF.js"
},
"chunk-TJY4NJSL": {
"file": "chunk-TJY4NJSL.js"
"chunk-A5CFU6IU": {
"file": "chunk-A5CFU6IU.js"
},
"chunk-7AKRAGCT": {
"file": "chunk-7AKRAGCT.js"
"chunk-V4VQS4OV": {
"file": "chunk-V4VQS4OV.js"
},
"chunk-5WWUZCGV": {
"file": "chunk-5WWUZCGV.js"
"chunk-AO5DG4NS": {
"file": "chunk-AO5DG4NS.js"
},
"chunk-UGKGD7NU": {
"file": "chunk-UGKGD7NU.js"
"chunk-HWC2XRY6": {
"file": "chunk-HWC2XRY6.js"
},
"chunk-URJ6MCGE": {
"file": "chunk-URJ6MCGE.js"
"chunk-OSV6IDCE": {
"file": "chunk-OSV6IDCE.js"
},
"chunk-QNAKN2OG": {
"file": "chunk-QNAKN2OG.js"
"chunk-2DAU5UIR": {
"file": "chunk-2DAU5UIR.js"
},
"chunk-O5LRMDSC": {
"file": "chunk-O5LRMDSC.js"
"chunk-AZC2C57S": {
"file": "chunk-AZC2C57S.js"
},
"chunk-MBQX2QZO": {
"file": "chunk-MBQX2QZO.js"
"chunk-MFXAVKGL": {
"file": "chunk-MFXAVKGL.js"
},
"chunk-ASLK72SZ": {
"file": "chunk-ASLK72SZ.js"
"chunk-TJY4NJSL": {
"file": "chunk-TJY4NJSL.js"
},
"chunk-BQ2OVMCC": {
"file": "chunk-BQ2OVMCC.js"
"chunk-7AKRAGCT": {
"file": "chunk-7AKRAGCT.js"
},
"chunk-RLDUGRP4": {
"file": "chunk-RLDUGRP4.js"
"chunk-AYEHESJ3": {
"file": "chunk-AYEHESJ3.js"
},
"chunk-CGUCDBFF": {
"file": "chunk-CGUCDBFF.js"
"chunk-6YLF2CKD": {
"file": "chunk-6YLF2CKD.js"
},
"chunk-C5ZZQD6B": {
"file": "chunk-C5ZZQD6B.js"
"chunk-5WWUZCGV": {
"file": "chunk-5WWUZCGV.js"
},
"chunk-FJXVO5OZ": {
"file": "chunk-FJXVO5OZ.js"
"chunk-AV3DMDAN": {
"file": "chunk-AV3DMDAN.js"
}
}
}

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/input/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/input.scss";
//# sourceMappingURL=chunk-ASLK72SZ.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tooltip/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/tooltip.scss";
//# sourceMappingURL=chunk-BQ2OVMCC.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/popper/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/popper.scss";
//# sourceMappingURL=chunk-C5ZZQD6B.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/scrollbar/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-CGUCDBFF.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/base/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/base.scss";
//# sourceMappingURL=chunk-FJXVO5OZ.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tag/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/tag.scss";
//# sourceMappingURL=chunk-MBQX2QZO.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/option/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/option.scss";
//# sourceMappingURL=chunk-O5LRMDSC.js.map

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

@ -1,6 +0,0 @@
// node_modules/element-plus/es/components/option-group/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/option-group.scss";
// node_modules/element-plus/es/components/select/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/select.scss";
//# sourceMappingURL=chunk-QNAKN2OG.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/checkbox/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/checkbox.scss";
//# sourceMappingURL=chunk-RLDUGRP4.js.map

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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/overlay/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/overlay.scss";
//# sourceMappingURL=chunk-UGKGD7NU.js.map

@ -1,7 +0,0 @@
{
"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": []
}

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/button/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/button.scss";
//# sourceMappingURL=chunk-URJ6MCGE.js.map

@ -1,7 +0,0 @@
{
"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": []
}

@ -1,2 +1,2 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
//# sourceMappingURL=element-plus_es_components_base_style_index.js.map

@ -1,3 +1,3 @@
import "./chunk-URJ6MCGE.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-V4VQS4OV.js";
import "./chunk-AV3DMDAN.js";
//# sourceMappingURL=element-plus_es_components_button_style_index.js.map

@ -1,9 +1,9 @@
import "./chunk-URJ6MCGE.js";
import "./chunk-ASLK72SZ.js";
import "./chunk-CGUCDBFF.js";
import "./chunk-C5ZZQD6B.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-V4VQS4OV.js";
import "./chunk-HWC2XRY6.js";
import "./chunk-OSV6IDCE.js";
import "./chunk-6YLF2CKD.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/date-picker/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/date-picker.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/date-picker.scss";
//# sourceMappingURL=element-plus_es_components_date-picker_style_index.js.map

@ -1,6 +1,6 @@
import "./chunk-UGKGD7NU.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-DGDJFXZF.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/dialog/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/dialog.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/dialog.scss";
//# sourceMappingURL=element-plus_es_components_dialog_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/form-item/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/form-item.scss";
import "C:/Users/28344/Desktop/1111/student/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-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/form/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/form.scss";
import "C:/Users/28344/Desktop/1111/student/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-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/icon/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/icon.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/icon.scss";
//# sourceMappingURL=element-plus_es_components_icon_style_index.js.map

@ -1,8 +1,8 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/image/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/image.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/image.scss";
// node_modules/element-plus/es/components/image-viewer/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/image-viewer.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/image-viewer.scss";
//# sourceMappingURL=element-plus_es_components_image_style_index.js.map

@ -1,3 +1,3 @@
import "./chunk-ASLK72SZ.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-HWC2XRY6.js";
import "./chunk-AV3DMDAN.js";
//# sourceMappingURL=element-plus_es_components_input_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/menu-item/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/menu-item.scss";
import "C:/Users/28344/Desktop/1111/student/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-BQ2OVMCC.js";
import "./chunk-C5ZZQD6B.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-AYEHESJ3.js";
import "./chunk-6YLF2CKD.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/menu/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/menu.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/menu.scss";
//# sourceMappingURL=element-plus_es_components_menu_style_index.js.map

@ -1,8 +1,8 @@
import "./chunk-UGKGD7NU.js";
import "./chunk-URJ6MCGE.js";
import "./chunk-ASLK72SZ.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-DGDJFXZF.js";
import "./chunk-V4VQS4OV.js";
import "./chunk-HWC2XRY6.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/message-box/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/message-box.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/message-box.scss";
//# sourceMappingURL=element-plus_es_components_message-box_style_index.js.map

@ -1,8 +1,8 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/badge/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/badge.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/badge.scss";
// node_modules/element-plus/es/components/message/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/message.scss";
import "C:/Users/28344/Desktop/1111/student/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-O5LRMDSC.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-AZC2C57S.js";
import "./chunk-AV3DMDAN.js";
//# sourceMappingURL=element-plus_es_components_option_style_index.js.map

@ -1,11 +1,11 @@
import "./chunk-QNAKN2OG.js";
import "./chunk-O5LRMDSC.js";
import "./chunk-MBQX2QZO.js";
import "./chunk-ASLK72SZ.js";
import "./chunk-CGUCDBFF.js";
import "./chunk-C5ZZQD6B.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-AO5DG4NS.js";
import "./chunk-HWC2XRY6.js";
import "./chunk-OSV6IDCE.js";
import "./chunk-2DAU5UIR.js";
import "./chunk-AZC2C57S.js";
import "./chunk-6YLF2CKD.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/pagination/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/pagination.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/pagination.scss";
//# sourceMappingURL=element-plus_es_components_pagination_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/radio-group/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/radio-group.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/radio-group.scss";
//# sourceMappingURL=element-plus_es_components_radio-group_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/radio/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/radio.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/radio.scss";
//# sourceMappingURL=element-plus_es_components_radio_style_index.js.map

@ -1,8 +1,8 @@
import "./chunk-QNAKN2OG.js";
import "./chunk-O5LRMDSC.js";
import "./chunk-MBQX2QZO.js";
import "./chunk-ASLK72SZ.js";
import "./chunk-CGUCDBFF.js";
import "./chunk-C5ZZQD6B.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-AO5DG4NS.js";
import "./chunk-HWC2XRY6.js";
import "./chunk-OSV6IDCE.js";
import "./chunk-2DAU5UIR.js";
import "./chunk-AZC2C57S.js";
import "./chunk-6YLF2CKD.js";
import "./chunk-AV3DMDAN.js";
//# sourceMappingURL=element-plus_es_components_select_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/sub-menu/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/sub-menu.scss";
import "C:/Users/28344/Desktop/1111/student/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-MBQX2QZO.js";
import "./chunk-RLDUGRP4.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-A5CFU6IU.js";
import "./chunk-2DAU5UIR.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/table-column/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/table-column.scss";
import "C:/Users/28344/Desktop/1111/student/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-BQ2OVMCC.js";
import "./chunk-RLDUGRP4.js";
import "./chunk-CGUCDBFF.js";
import "./chunk-C5ZZQD6B.js";
import "./chunk-FJXVO5OZ.js";
import "./chunk-A5CFU6IU.js";
import "./chunk-OSV6IDCE.js";
import "./chunk-AYEHESJ3.js";
import "./chunk-6YLF2CKD.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/table/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/table.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/table.scss";
//# sourceMappingURL=element-plus_es_components_table_style_index.js.map

@ -1,8 +1,8 @@
import "./chunk-FJXVO5OZ.js";
import "./chunk-AV3DMDAN.js";
// node_modules/element-plus/es/components/upload/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/upload.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/upload.scss";
// node_modules/element-plus/es/components/progress/style/index.mjs
import "C:/Users/LSH/IdeaProjects/1111/student/vue/node_modules/element-plus/theme-chalk/src/progress.scss";
import "C:/Users/28344/Desktop/1111/student/vue/node_modules/element-plus/theme-chalk/src/progress.scss";
//# sourceMappingURL=element-plus_es_components_upload_style_index.js.map

@ -15,6 +15,7 @@ const router = createRouter({
{ path: 'person', name: 'Person', component: () => import('@/views/manager/Person.vue')},
{ path: 'courseList', name: 'CourseList', component: () => import('@/views/manager/CourseList.vue')},
{ path: 'studentCourse', name: 'StudentCourse', component: () => import('@/views/manager/StudentCourse.vue')},
{ path: 'grade', name: 'Grade', component: () => import('@/views/manager/Grade.vue')},
]
},
{ path: '/login', name: 'Login', component: () => import('@/views/Login.vue'),},

@ -43,7 +43,17 @@
<span>选课记录</span>
</el-menu-item>
</el-sub-menu>
<el-sub-menu index="3" v-if="user.role=== 'ADMIN'">
<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>

@ -0,0 +1,156 @@
<template>
<div>
<div class="card" style="margin-bottom: 10px">
<el-input style="width: 260px; margin-right: 10px" placeholder="请输入课程名称查询" prefix-icon="Search" v-model="data.courseName" icon="el-icon-search"></el-input>
<el-input style="width: 260px; margin-right: 10px" placeholder="请输入学生名称查询" prefix-icon="Search" v-model="data.studentName" icon="el-icon-search"></el-input>
<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>
<el-table-column prop="courseName" label="课程名称"></el-table-column>
<el-table-column prop="studentName" label="学生名称"></el-table-column>
<el-table-column prop="score" label="分数"></el-table-column>
<el-table-column prop="comment" label="评语"></el-table-column>
<el-table-column prop="feedback" label="反馈"></el-table-column>
<el-table-column label="操作" width="200">
<template #default="scope">
<el-button type="primary" @click="handleEdit(scope.row)" v-if="data.user.role === 'ADMIN'"></el-button>
<el-button type="danger" @click="del(scope.row.id)" v-if="data.user.role === 'ADMIN'"></el-button>
<el-button type="primary" @click="handleEdit(scope.row)" v-if="data.user.role === 'STUDENT'"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div calss="card">
<el-pagination v-model:current-page="data.pageNum" v-model:page-size="data.pageSize"
@current-change="handelCurrentChange"
background layout="prev, pager, next" :total="data.total" ></el-pagination>
</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="评分" v-if="data.user.role === 'ADMIN'">
<el-input v-model="data.form.score" autocomplete="off" />
</el-form-item>
<el-form-item label="评语" v-if="data.user.role === 'ADMIN'">
<el-input type="textarea" v-model="data.form.comment" autocomplete="off" />
</el-form-item>
<el-form-item label="反馈" v-if="data.user.role === 'STUDENT'">
<el-input type="textarea" v-model="data.form.feedback" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="data.formVisible = false">取消</el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</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({
form: {},
courseName:'',
studentName:'',
tableData: [],
total: 0,
pageNum: 1,
pageSize: 5,
user: JSON.parse(localStorage.getItem('student-user') || '{}'),
formVisible: false
})
const load = () => {
let params ={
pageNum: data.pageNum,
pageSize: data.pageSize,
courseName: data.courseName,
studentName: data.studentName
}
if(data.user.role === 'STUDENT'){
params.studentId = data.user.id
}
request.get('/grade/selectPage',{
params : params
}).then(res =>{
data.tableData = res.data?.list || []
data.total = res.data?.total || 0
})
}
load()
const handelCurrentChange = (pageNum) => {
load()
}
const reset = () => {
data.courseName = ''
data.studentName = ''
load()
}
// const del = (id) => {
// ElMessageBox.confirm('', '', {type: 'warning'}).then(res => {
// request().delete('/grade/delete/' + id).then(res => {
// if(res.code === '200'){
// load() //
// ElMessage.success("")
// } else {
// ElMessage.error(res.msg)
// }
// })
// }).catch(res => {})
// }
const del = (id) => {
ElMessageBox.confirm('确认删除吗?','删除确认',{type: 'warning'}).then(res => {
request.delete('/grade/delete/' + id).then(res => {
if (res.code === '200') {
load() //
ElMessage.success("操作成功")
} else {
ElMessage.error(res.msg)
}
})
}).catch(res => {
ElMessage({
type: 'info',
message: 'Delete canceled',
})
}).catch(res => {})
}
//
const handleEdit = (row) => {
data.form= JSON.parse(JSON.stringify(row)) //
data.formVisible = true
}
const save = () => {
request.put('/grade/update',data.form).then(res => {
if(res.code === '200'){
load()
data.formVisible = false; //
ElMessage.success("操作成功")
}else{
ElMessage.error(res.msg)
}
})
}
</script>

@ -31,7 +31,25 @@
background layout="prev, pager, next" :total="data.total" ></el-pagination>
</div>
<el-dialog width = "35%" v-model="data.formVisible" title="成绩信息">
<el-form :model="data.gradeForm" label-width="100px" label-position = "right" style = "padding-right: 40px">
<el-form-item label="课程名称">
<el-input v-model="data.gradeForm.name" autocomplete="off" disabled />
</el-form-item>
<el-form-item label="分数">
<el-input v-model="data.gradeForm.score" autocomplete="off" />
</el-form-item>
<el-form-item label="评语">
<el-input type = "textarea" v-model="data.gradeForm.comment" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="data.formVisible = false">取消</el-button>
<el-button type="primary" @click="save"></el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -50,7 +68,9 @@ const data = reactive({
total: 0,
pageNum: 1,
pageSize: 5,
user: JSON.parse(localStorage.getItem('student-user') || '{}')
user: JSON.parse(localStorage.getItem('student-user') || '{}'),
gradeForm: {},
formVisible: false
})
const load = () => {
@ -100,9 +120,23 @@ const del = (id) => {
}).catch(res => {})
}
const addGrade = () => {
const addGrade = (row) => {
//
data.formVisible = true
data.gradeForm.name = row.name
data.gradeForm.courseId = row.courseId
data.gradeForm.studentId = row.studentId
}
const save = () => {
request.post('/grade/add',data.gradeForm).then(res => {
if(res.code === '200'){
data.formVisible = false; //
ElMessage.success("操作成功")
}else{
ElMessage.error(res.msg)
}
})
}
</script>
Loading…
Cancel
Save