学生管理功能、后台文件上传下载、个人资料页面合并 #5

Merged
pyia8e6p9 merged 1 commits from stu_Manager into master 2 years ago

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@ -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();
}
}

@ -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);
}
}

@ -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);
}

@ -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);
}
}

@ -18,3 +18,5 @@ mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
ip: localhost

@ -18,3 +18,5 @@ mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
ip: localhost

@ -1,158 +1,206 @@
{
"hash": "4d788c00",
"browserHash": "d44c108b",
"hash": "5854fb98",
"browserHash": "be58fd9d",
"optimized": {
"@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js",
"file": "@element-plus_icons-vue.js",
"fileHash": "aac49d5a",
"fileHash": "4421ada3",
"needsInterop": false
},
"axios": {
"src": "../../axios/index.js",
"file": "axios.js",
"fileHash": "b597ee32",
"fileHash": "24e32da7",
"needsInterop": false
},
"element-plus": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus.js",
"fileHash": "189a99e8",
"fileHash": "01f3cf17",
"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": "9fd92fc4",
"needsInterop": false
},
"vue": {
"src": "../../vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "1b68b33f",
"fileHash": "df9e8daf",
"needsInterop": false
},
"vue-router": {
"src": "../../vue-router/dist/vue-router.mjs",
"file": "vue-router.js",
"fileHash": "fa4c04ed",
"fileHash": "7d324a06",
"needsInterop": false
},
"element-plus/es": {
"src": "../../element-plus/es/index.mjs",
"file": "element-plus_es.js",
"fileHash": "9018f365",
"fileHash": "ec86269b",
"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": "9b555476",
"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": "a3ebe234",
"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": "97e782a0",
"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": "9c7655d4",
"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": "f5787b33",
"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": "f220d27c",
"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": "6d89c9c6",
"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": "21cd1f83",
"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": "aff18c5d",
"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": "3b540d19",
"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": "b3fb1239",
"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": "4ba5d987",
"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",
"fileHash": "19b1483e",
"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",
"fileHash": "d170d25b",
"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/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": "884ffcde",
"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/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": "e77deab5",
"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": "ca0d5678",
"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": "03174476",
"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",
"fileHash": "eb71cf6b",
"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",
"fileHash": "0cf440ff",
"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": "b46595a2",
"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": "767a365f",
"needsInterop": false
}
},
"chunks": {
"chunk-22246I36": {
"file": "chunk-22246I36.js"
"chunk-7OET6BVI": {
"file": "chunk-7OET6BVI.js"
},
"chunk-5JJABUIZ": {
"file": "chunk-5JJABUIZ.js"
},
"chunk-GU4PFDPT": {
"file": "chunk-GU4PFDPT.js"
},
"chunk-EDNPP7CY": {
"file": "chunk-EDNPP7CY.js"
"chunk-PENNLVNN": {
"file": "chunk-PENNLVNN.js"
},
"chunk-5JKEUEZW": {
"file": "chunk-5JKEUEZW.js"
"chunk-5RN2MMBU": {
"file": "chunk-5RN2MMBU.js"
},
"chunk-YF6ER62I": {
"file": "chunk-YF6ER62I.js"
"chunk-JYTBIKBH": {
"file": "chunk-JYTBIKBH.js"
},
"chunk-IEXUXUIS": {
"file": "chunk-IEXUXUIS.js"
"chunk-54HZGGPY": {
"file": "chunk-54HZGGPY.js"
},
"chunk-6L6I4RPD": {
"file": "chunk-6L6I4RPD.js"
"chunk-GOKZPI4P": {
"file": "chunk-GOKZPI4P.js"
},
"chunk-MFXAVKGL": {
"file": "chunk-MFXAVKGL.js"
@ -166,14 +214,14 @@
"chunk-5WWUZCGV": {
"file": "chunk-5WWUZCGV.js"
},
"chunk-KZYH6XRM": {
"file": "chunk-KZYH6XRM.js"
"chunk-33Y6QZEF": {
"file": "chunk-33Y6QZEF.js"
},
"chunk-UFP42AXV": {
"file": "chunk-UFP42AXV.js"
"chunk-3XR3YXSA": {
"file": "chunk-3XR3YXSA.js"
},
"chunk-FGVA5UI6": {
"file": "chunk-FGVA5UI6.js"
"chunk-U4EIEHT3": {
"file": "chunk-U4EIEHT3.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

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/tooltip/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/tooltip.scss";
//# sourceMappingURL=chunk-33Y6QZEF.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tag/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/tag.scss";
//# sourceMappingURL=chunk-3TXWDNGO.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/popper/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/popper.scss";
//# sourceMappingURL=chunk-3XR3YXSA.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/tag/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/tag.scss";
//# sourceMappingURL=chunk-54HZGGPY.js.map

@ -0,0 +1,6 @@
// node_modules/element-plus/es/components/option-group/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/option-group.scss";
// node_modules/element-plus/es/components/select/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/select.scss";
//# sourceMappingURL=chunk-5JJABUIZ.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

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/overlay/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/overlay.scss";
//# sourceMappingURL=chunk-5RN2MMBU.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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/popper/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/popper.scss";
//# sourceMappingURL=chunk-6XXACKVZ.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/button/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/button.scss";
//# sourceMappingURL=chunk-7OET6BVI.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/button/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/button.scss";
//# sourceMappingURL=chunk-BJFB2CUW.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/checkbox/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/checkbox.scss";
//# sourceMappingURL=chunk-D3CWYFF3.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,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

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/tooltip/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/tooltip.scss";
//# sourceMappingURL=chunk-FJTOK54K.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/checkbox/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/checkbox.scss";
//# sourceMappingURL=chunk-GOKZPI4P.js.map

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/input/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/input.scss";
//# sourceMappingURL=chunk-GU4PFDPT.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,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/input/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/input.scss";
//# sourceMappingURL=chunk-INT4LFCS.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": []
}

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/scrollbar/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-JYTBIKBH.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/overlay/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/overlay.scss";
//# sourceMappingURL=chunk-KR333NDQ.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

@ -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": []
}

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/option/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/option.scss";
//# sourceMappingURL=chunk-PENNLVNN.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/scrollbar/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-RSYYQNY4.js.map

@ -1,3 +0,0 @@
// node_modules/element-plus/es/components/base/style/index.mjs
import "C:/system of information/git/vue/node_modules/element-plus/theme-chalk/src/base.scss";
//# sourceMappingURL=chunk-SHI5Q57K.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": []
}

@ -0,0 +1,3 @@
// node_modules/element-plus/es/components/base/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/base.scss";
//# sourceMappingURL=chunk-U4EIEHT3.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,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 "D:/learning/大二下/信息系统实践/student_system/vue/node_modules/element-plus/theme-chalk/src/scrollbar.scss";
//# sourceMappingURL=chunk-YF6ER62I.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,2 +1,2 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-U4EIEHT3.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-7OET6BVI.js";
import "./chunk-U4EIEHT3.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-7OET6BVI.js";
import "./chunk-GU4PFDPT.js";
import "./chunk-JYTBIKBH.js";
import "./chunk-3XR3YXSA.js";
import "./chunk-U4EIEHT3.js";
// node_modules/element-plus/es/components/date-picker/style/index.mjs
import "D:/Code/information_system/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-5RN2MMBU.js";
import "./chunk-U4EIEHT3.js";
// node_modules/element-plus/es/components/dialog/style/index.mjs
import "D:/Code/information_system/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-U4EIEHT3.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:/Code/information_system/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-U4EIEHT3.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:/Code/information_system/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-U4EIEHT3.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:/Code/information_system/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-U4EIEHT3.js";
// node_modules/element-plus/es/components/image/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/image.scss";
// node_modules/element-plus/es/components/image-viewer/style/index.mjs
import "D:/Code/information_system/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-GU4PFDPT.js";
import "./chunk-U4EIEHT3.js";
//# sourceMappingURL=element-plus_es_components_input_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-33Y6QZEF.js";
import "./chunk-3XR3YXSA.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-7OET6BVI.js";
import "./chunk-GU4PFDPT.js";
import "./chunk-5RN2MMBU.js";
import "./chunk-U4EIEHT3.js";
// node_modules/element-plus/es/components/message-box/style/index.mjs
import "D:/Code/information_system/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-U4EIEHT3.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:/Code/information_system/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:/Code/information_system/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-PENNLVNN.js";
import "./chunk-U4EIEHT3.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-5JJABUIZ.js";
import "./chunk-GU4PFDPT.js";
import "./chunk-PENNLVNN.js";
import "./chunk-JYTBIKBH.js";
import "./chunk-54HZGGPY.js";
import "./chunk-3XR3YXSA.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-U4EIEHT3.js";
// node_modules/element-plus/es/components/radio-group/style/index.mjs
import "D:/Code/information_system/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-U4EIEHT3.js";
// node_modules/element-plus/es/components/radio/style/index.mjs
import "D:/Code/information_system/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-5JJABUIZ.js";
import "./chunk-GU4PFDPT.js";
import "./chunk-PENNLVNN.js";
import "./chunk-JYTBIKBH.js";
import "./chunk-54HZGGPY.js";
import "./chunk-3XR3YXSA.js";
import "./chunk-U4EIEHT3.js";
//# sourceMappingURL=element-plus_es_components_select_style_index.js.map

@ -1,5 +1,5 @@
import "./chunk-FGVA5UI6.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-54HZGGPY.js";
import "./chunk-GOKZPI4P.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-JYTBIKBH.js";
import "./chunk-GOKZPI4P.js";
import "./chunk-33Y6QZEF.js";
import "./chunk-3XR3YXSA.js";
import "./chunk-U4EIEHT3.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:/Code/information_system/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-U4EIEHT3.js";
// node_modules/element-plus/es/components/upload/style/index.mjs
import "D:/Code/information_system/vue/node_modules/element-plus/theme-chalk/src/upload.scss";
// node_modules/element-plus/es/components/progress/style/index.mjs
import "D:/Code/information_system/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": []
}

@ -11,6 +11,8 @@ const router = createRouter({
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: 'person', name: 'Person', component: () => import('@/views/manager/Person.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>
@ -35,7 +35,17 @@
<span>课程信息</span>
</el-menu-item>
</el-sub-menu>
<el-menu-item index="/person">
<el-sub-menu index="3" 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" v-if="user.role === 'STUDENT'">
<el-icon><User /></el-icon>
<span>个人资料</span>
</el-menu-item>
@ -57,6 +67,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 = () => {

@ -49,7 +49,7 @@
<el-form-item label="任课老师" >
<el-input v-model="data.form.teacher" autocomplete="off" />
</el-form-item>
</el-form>/
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="data.formVisible = false">取消</el-button>
@ -71,7 +71,7 @@ const data = reactive({
teacher:'',
tableData:[],
total:0,
pageSize:2,//
pageSize:5,//
pageNum: 1, //
formVisible:false,
form:{}

@ -0,0 +1,99 @@
<script>
export default {
name: "Person"
}
</script>
<template>
<div>
<div class="card" style="width: 50%; padding: 40px">
<el-form :model="data.form" ref="formRef" label-width="100px" label-position="right" style="padding-right: 40px">
<el-form-item label="学生头像">
<el-upload class="avatar.uploader" action="http://localhost:9090/files/upload" :show-file-list="false" :on-success="handleImgUploadSuccess">
<img v-if="data.form.avatar" :src="data.form.avatar" class="avatar">
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
</el-upload>
</el-form-item>
<el-form-item label="学生账号" prop="username">
<el-input v-model="data.form.username" autocomplete="off" disabled/>
</el-form-item>
<el-form-item label="学生密码" prop="password">
<el-input show-password v-model="data.form.password" autocomplete="off" />
</el-form-item>
<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.phone" autocomplete="off" />
</el-form-item>
<el-form-item label="邮箱" >
<el-input v-model="data.form.email" autocomplete="off" />
</el-form-item>
<el-form-item label="性别" >
<el-radio-group v-model="data.form.sex">
<el-radio label="男"></el-radio>
<el-radio label="女"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="生日" >
<el-date-picker style="width: 100%;" format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="data.form.birth"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="update"> </el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
</style>
<script setup>
import {reactive} from "vue";
import {ElMessage} from "element-plus";
import router from "@/router";
import {Plus} from "@element-plus/icons-vue"
const data =reactive({
form: JSON.parse( localStorage.getItem('student-user')||"{}")
})
const handleImgUploadSuccess=(res)=>{
data.form.avatar = res.data
}
const update = () =>{
request.put('/student/update',data.form).then(res=>{
if (res.code === '200') {
ElMessage.success("操作成功")
router.push('/login')
} else {
ElMessage.error(res.msg)
}
})
}
</script>

@ -0,0 +1,186 @@
<template>
<div class="card" style="margin-bottom: 10px">
<el-input v-model="data.username" style="width: 240px;margin-right:10px" placeholder="请输入账号查询" :prefix-icon="Search"/>
<el-input v-model="data.name" style="width: 240px;margin-right: 10px" 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" @click="handleAdd"> </el-button>
</div>
<div>
<el-table :data="data.tableData" style="width: 100%">
<el-table-column prop="id" label="序号" width="70" />
<el-table-column prop="username" label="学生账号" />
<el-table-column prop="name" label="学生名字" />
<el-table-column prop="phone" label="学生电话" />
<el-table-column prop="email" label="学生邮箱" />
<el-table-column prop="sex" label="学生性别" />
<el-table-column prop="birth" label="出生日期" />
<el-table-column prop="avatar" label="头像">
<template #default="scope">
<el-image v-if="scope.row.avatar" :src="scope.row.avatar" :preview-src-list="[scope.row.avatar]" style="width: 40px; height: 40px; border-radius: 5px"></el-image>
</template>
</el-table-column>
<el-table-column label="操作" width="180">
<template #default="scope">
<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 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="学生信息" destroy-on-close>
<el-form :model="data.form" :rules="rules" ref="formRef" label-width="100px" label-position="right" style="padding-right: 40px">
<el-form-item label="学生账号" prop="username">
<el-input v-model="data.form.username" autocomplete="off" />
</el-form-item>
<el-form-item label="学生密码" prop="password">
<el-input show-password v-model="data.form.password" autocomplete="off" />
</el-form-item>
<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.phone" autocomplete="off" />
</el-form-item>
<el-form-item label="邮箱" >
<el-input v-model="data.form.email" autocomplete="off" />
</el-form-item>
<el-form-item label="性别" >
<el-radio-group v-model="data.form.sex">
<el-radio label="男"></el-radio>
<el-radio label="女"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="生日" >
<el-date-picker style="width: 100%;" format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="data.form.birth"></el-date-picker>
</el-form-item>
<el-form-item label="学生头像">
<el-upload action="http://localhost:9090/files/upload" list-typr="picture" :on-success="handleImgUploadSuccess">
<el-button type="primary">上传头像</el-button>
</el-upload>
</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 {ref,reactive} from "vue";
import {Search} from "@element-plus/icons-vue";
import request from "@/utils/request";
import {ElMessage, ElMessageBox} from "element-plus";
const baseUrl ='/student'
const data = reactive({
username:'',
name:'',
tableData:[],
total:0,
pageSize:5,//
pageNum: 1, //
formVisible:false,
form:{}
})
const load =()=>{
request.get(baseUrl+'/selectPage',{
params:{
pageNum:data.pageNum,
pageSize:data.pageSize,
username:data.username,
name:data.name,
}
}).then((res)=>{
data.tableData =res.data?.list || []
data.total=res.data?.total || 0
})
}
//
load()
const handleCurrentChange = (pageNum)=>{
//
load()
}
const reset =()=>{
data.username = ''
data.name = ''
load()
}
const rules = reactive({
username: [
{ required: true, message: '请输入账号', trigger: 'blur' },
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
],
})
const formRef =ref()
const handleAdd = () => {
data.form = {}
data.formVisible = true
}
//
const save=()=>{
formRef.value.validate((valid) => {
if (valid) {
request.request({
url: data.form.id ? baseUrl + '/update' : baseUrl + '/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(baseUrl+'/delete/' + id).then((res)=>{
if(res.code === '200'){
load()//
ElMessage.success("操作成功")
}else{
ElMessage.error(res.msg)
}
})
}).catch(res=>{})
}
const handleImgUploadSuccess=(res)=>{
data.form.avatar = res.data
}
</script>
Loading…
Cancel
Save