From 1eac91da819c4ef6f50831ab3ac107a28e877d36 Mon Sep 17 00:00:00 2001 From: whozo <1903914886@qq.com> Date: Wed, 22 May 2024 12:39:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E5=90=8E=E5=8F=B0=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=B8=8B=E8=BD=BD=EF=BC=8C=E5=AD=A6=E7=94=9F=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E8=B5=84=E6=96=99=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/1716349158618_1715762248413.png | Bin 0 -> 24227 bytes .../example/controller/FileController.java | 60 ++++++ .../example/controller/StudentController.java | 39 ++++ .../com/example/mapper/StudentMapper.java | 11 ++ .../com/example/service/StudentService.java | 15 ++ springboot/src/main/resources/application.yml | 2 + springboot/target/classes/application.yml | 2 + .../example/controller/FileController.class | Bin 0 -> 3396 bytes .../controller/StudentController.class | Bin 322 -> 2613 bytes .../com/example/mapper/StudentMapper.class | Bin 718 -> 1462 bytes .../com/example/service/StudentService.class | Bin 2046 -> 3216 bytes vue/node_modules/.vite/deps/_metadata.json | 144 +++++++++----- vue/node_modules/.vite/deps/chunk-22246I36.js | 3 - vue/node_modules/.vite/deps/chunk-33Y6QZEF.js | 3 + ...-FJTOK54K.js.map => chunk-33Y6QZEF.js.map} | 0 vue/node_modules/.vite/deps/chunk-3TXWDNGO.js | 3 - vue/node_modules/.vite/deps/chunk-3XR3YXSA.js | 3 + ...-6XXACKVZ.js.map => chunk-3XR3YXSA.js.map} | 0 vue/node_modules/.vite/deps/chunk-54HZGGPY.js | 3 + ...-3TXWDNGO.js.map => chunk-54HZGGPY.js.map} | 0 vue/node_modules/.vite/deps/chunk-5JJABUIZ.js | 6 + ...-EDNPP7CY.js.map => chunk-5JJABUIZ.js.map} | 0 vue/node_modules/.vite/deps/chunk-5JKEUEZW.js | 3 - vue/node_modules/.vite/deps/chunk-5RN2MMBU.js | 3 + ...-KR333NDQ.js.map => chunk-5RN2MMBU.js.map} | 0 vue/node_modules/.vite/deps/chunk-6L6I4RPD.js | 3 - vue/node_modules/.vite/deps/chunk-6XXACKVZ.js | 3 - vue/node_modules/.vite/deps/chunk-7OET6BVI.js | 3 + ...-BJFB2CUW.js.map => chunk-7OET6BVI.js.map} | 0 vue/node_modules/.vite/deps/chunk-BJFB2CUW.js | 3 - vue/node_modules/.vite/deps/chunk-D3CWYFF3.js | 3 - .../.vite/deps/chunk-D3CWYFF3.js.map | 7 - vue/node_modules/.vite/deps/chunk-EDNPP7CY.js | 6 - vue/node_modules/.vite/deps/chunk-FGVA5UI6.js | 3 - vue/node_modules/.vite/deps/chunk-FJTOK54K.js | 3 - vue/node_modules/.vite/deps/chunk-GOKZPI4P.js | 3 + ...-22246I36.js.map => chunk-GOKZPI4P.js.map} | 0 vue/node_modules/.vite/deps/chunk-GU4PFDPT.js | 3 + ...-5JKEUEZW.js.map => chunk-GU4PFDPT.js.map} | 0 vue/node_modules/.vite/deps/chunk-IEXUXUIS.js | 3 - .../.vite/deps/chunk-IEXUXUIS.js.map | 7 - vue/node_modules/.vite/deps/chunk-INT4LFCS.js | 3 - .../.vite/deps/chunk-INT4LFCS.js.map | 7 - vue/node_modules/.vite/deps/chunk-JYTBIKBH.js | 3 + ...-RSYYQNY4.js.map => chunk-JYTBIKBH.js.map} | 0 vue/node_modules/.vite/deps/chunk-KR333NDQ.js | 3 - vue/node_modules/.vite/deps/chunk-KZYH6XRM.js | 3 - .../.vite/deps/chunk-KZYH6XRM.js.map | 7 - vue/node_modules/.vite/deps/chunk-PENNLVNN.js | 3 + ...-6L6I4RPD.js.map => chunk-PENNLVNN.js.map} | 0 vue/node_modules/.vite/deps/chunk-RSYYQNY4.js | 3 - vue/node_modules/.vite/deps/chunk-SHI5Q57K.js | 3 - .../.vite/deps/chunk-SHI5Q57K.js.map | 7 - vue/node_modules/.vite/deps/chunk-U4EIEHT3.js | 3 + ...-FGVA5UI6.js.map => chunk-U4EIEHT3.js.map} | 0 vue/node_modules/.vite/deps/chunk-UFP42AXV.js | 3 - .../.vite/deps/chunk-UFP42AXV.js.map | 7 - vue/node_modules/.vite/deps/chunk-YF6ER62I.js | 3 - .../.vite/deps/chunk-YF6ER62I.js.map | 7 - ...ent-plus_es_components_base_style_index.js | 2 +- ...t-plus_es_components_button_style_index.js | 6 +- ...us_es_components_button_style_index.js.map | 6 +- ...s_es_components_date-picker_style_index.js | 9 + ..._components_date-picker_style_index.js.map | 7 + ...t-plus_es_components_dialog_style_index.js | 6 + ...us_es_components_dialog_style_index.js.map | 7 + ...lus_es_components_form-item_style_index.js | 4 +- ...ent-plus_es_components_form_style_index.js | 4 +- ...ent-plus_es_components_icon_style_index.js | 4 +- ...nt-plus_es_components_image_style_index.js | 8 + ...lus_es_components_image_style_index.js.map | 7 + ...nt-plus_es_components_input_style_index.js | 4 +- ...lus_es_components_menu-item_style_index.js | 4 +- ...ent-plus_es_components_menu_style_index.js | 8 +- ...s_es_components_message-box_style_index.js | 8 + ..._components_message-box_style_index.js.map | 7 + ...-plus_es_components_message_style_index.js | 6 +- ...t-plus_es_components_option_style_index.js | 4 +- ...us_es_components_pagination_style_index.js | 16 +- ...s_es_components_radio-group_style_index.js | 5 + ..._components_radio-group_style_index.js.map | 7 + ...nt-plus_es_components_radio_style_index.js | 5 + ...lus_es_components_radio_style_index.js.map | 7 + ...t-plus_es_components_select_style_index.js | 14 +- ...plus_es_components_sub-menu_style_index.js | 4 +- ..._es_components_table-column_style_index.js | 8 +- ...nt-plus_es_components_table_style_index.js | 12 +- ...t-plus_es_components_upload_style_index.js | 8 + ...us_es_components_upload_style_index.js.map | 7 + vue/src/router/index.js | 2 + vue/src/views/Manager.vue | 19 +- vue/src/views/manager/Course.vue | 4 +- vue/src/views/manager/Person.vue | 99 ++++++++++ vue/src/views/manager/Student.vue | 186 ++++++++++++++++++ 94 files changed, 715 insertions(+), 214 deletions(-) create mode 100644 files/1716349158618_1715762248413.png create mode 100644 springboot/src/main/java/com/example/controller/FileController.java create mode 100644 springboot/target/classes/com/example/controller/FileController.class delete mode 100644 vue/node_modules/.vite/deps/chunk-22246I36.js create mode 100644 vue/node_modules/.vite/deps/chunk-33Y6QZEF.js rename vue/node_modules/.vite/deps/{chunk-FJTOK54K.js.map => chunk-33Y6QZEF.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-3TXWDNGO.js create mode 100644 vue/node_modules/.vite/deps/chunk-3XR3YXSA.js rename vue/node_modules/.vite/deps/{chunk-6XXACKVZ.js.map => chunk-3XR3YXSA.js.map} (100%) create mode 100644 vue/node_modules/.vite/deps/chunk-54HZGGPY.js rename vue/node_modules/.vite/deps/{chunk-3TXWDNGO.js.map => chunk-54HZGGPY.js.map} (100%) create mode 100644 vue/node_modules/.vite/deps/chunk-5JJABUIZ.js rename vue/node_modules/.vite/deps/{chunk-EDNPP7CY.js.map => chunk-5JJABUIZ.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-5JKEUEZW.js create mode 100644 vue/node_modules/.vite/deps/chunk-5RN2MMBU.js rename vue/node_modules/.vite/deps/{chunk-KR333NDQ.js.map => chunk-5RN2MMBU.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-6L6I4RPD.js delete mode 100644 vue/node_modules/.vite/deps/chunk-6XXACKVZ.js create mode 100644 vue/node_modules/.vite/deps/chunk-7OET6BVI.js rename vue/node_modules/.vite/deps/{chunk-BJFB2CUW.js.map => chunk-7OET6BVI.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-BJFB2CUW.js delete mode 100644 vue/node_modules/.vite/deps/chunk-D3CWYFF3.js delete mode 100644 vue/node_modules/.vite/deps/chunk-D3CWYFF3.js.map delete mode 100644 vue/node_modules/.vite/deps/chunk-EDNPP7CY.js delete mode 100644 vue/node_modules/.vite/deps/chunk-FGVA5UI6.js delete mode 100644 vue/node_modules/.vite/deps/chunk-FJTOK54K.js create mode 100644 vue/node_modules/.vite/deps/chunk-GOKZPI4P.js rename vue/node_modules/.vite/deps/{chunk-22246I36.js.map => chunk-GOKZPI4P.js.map} (100%) create mode 100644 vue/node_modules/.vite/deps/chunk-GU4PFDPT.js rename vue/node_modules/.vite/deps/{chunk-5JKEUEZW.js.map => chunk-GU4PFDPT.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-IEXUXUIS.js delete mode 100644 vue/node_modules/.vite/deps/chunk-IEXUXUIS.js.map delete mode 100644 vue/node_modules/.vite/deps/chunk-INT4LFCS.js delete mode 100644 vue/node_modules/.vite/deps/chunk-INT4LFCS.js.map create mode 100644 vue/node_modules/.vite/deps/chunk-JYTBIKBH.js rename vue/node_modules/.vite/deps/{chunk-RSYYQNY4.js.map => chunk-JYTBIKBH.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-KR333NDQ.js delete mode 100644 vue/node_modules/.vite/deps/chunk-KZYH6XRM.js delete mode 100644 vue/node_modules/.vite/deps/chunk-KZYH6XRM.js.map create mode 100644 vue/node_modules/.vite/deps/chunk-PENNLVNN.js rename vue/node_modules/.vite/deps/{chunk-6L6I4RPD.js.map => chunk-PENNLVNN.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-RSYYQNY4.js delete mode 100644 vue/node_modules/.vite/deps/chunk-SHI5Q57K.js delete mode 100644 vue/node_modules/.vite/deps/chunk-SHI5Q57K.js.map create mode 100644 vue/node_modules/.vite/deps/chunk-U4EIEHT3.js rename vue/node_modules/.vite/deps/{chunk-FGVA5UI6.js.map => chunk-U4EIEHT3.js.map} (100%) delete mode 100644 vue/node_modules/.vite/deps/chunk-UFP42AXV.js delete mode 100644 vue/node_modules/.vite/deps/chunk-UFP42AXV.js.map delete mode 100644 vue/node_modules/.vite/deps/chunk-YF6ER62I.js delete mode 100644 vue/node_modules/.vite/deps/chunk-YF6ER62I.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_date-picker_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_date-picker_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_dialog_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_dialog_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_image_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_image_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_message-box_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_message-box_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_radio-group_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_radio-group_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_radio_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_radio_style_index.js.map create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_upload_style_index.js create mode 100644 vue/node_modules/.vite/deps/element-plus_es_components_upload_style_index.js.map create mode 100644 vue/src/views/manager/Person.vue create mode 100644 vue/src/views/manager/Student.vue diff --git a/files/1716349158618_1715762248413.png b/files/1716349158618_1715762248413.png new file mode 100644 index 0000000000000000000000000000000000000000..dddd5207d89a46315f77207d566f8290b9d55740 GIT binary patch literal 24227 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 H>wy0U*6tYj literal 0 HcmV?d00001 diff --git a/springboot/src/main/java/com/example/controller/FileController.java b/springboot/src/main/java/com/example/controller/FileController.java new file mode 100644 index 0000000..ba1244e --- /dev/null +++ b/springboot/src/main/java/com/example/controller/FileController.java @@ -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(); + } +} diff --git a/springboot/src/main/java/com/example/controller/StudentController.java b/springboot/src/main/java/com/example/controller/StudentController.java index a719b10..21f08c6 100644 --- a/springboot/src/main/java/com/example/controller/StudentController.java +++ b/springboot/src/main/java/com/example/controller/StudentController.java @@ -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) { + PageInfopageInfo = studentService.selectPage(pageNum,pageSize,student); + return Result.success(pageInfo); + } } diff --git a/springboot/src/main/java/com/example/mapper/StudentMapper.java b/springboot/src/main/java/com/example/mapper/StudentMapper.java index c88bd96..54d1aa1 100644 --- a/springboot/src/main/java/com/example/mapper/StudentMapper.java +++ b/springboot/src/main/java/com/example/mapper/StudentMapper.java @@ -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 selectAll(Student student); } diff --git a/springboot/src/main/java/com/example/service/StudentService.java b/springboot/src/main/java/com/example/service/StudentService.java index 922d64c..6cb275e 100644 --- a/springboot/src/main/java/com/example/service/StudentService.java +++ b/springboot/src/main/java/com/example/service/StudentService.java @@ -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 selectPage(Integer pageNum,Integer pageSize, Student student) { + PageHelper.startPage(pageNum,pageSize); + List studentList = studentMapper.selectAll(student); + return PageInfo.of(studentList); + } } diff --git a/springboot/src/main/resources/application.yml b/springboot/src/main/resources/application.yml index 0762355..b2600d3 100644 --- a/springboot/src/main/resources/application.yml +++ b/springboot/src/main/resources/application.yml @@ -18,3 +18,5 @@ mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true + +ip: localhost diff --git a/springboot/target/classes/application.yml b/springboot/target/classes/application.yml index 0762355..b2600d3 100644 --- a/springboot/target/classes/application.yml +++ b/springboot/target/classes/application.yml @@ -18,3 +18,5 @@ mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true + +ip: localhost diff --git a/springboot/target/classes/com/example/controller/FileController.class b/springboot/target/classes/com/example/controller/FileController.class new file mode 100644 index 0000000000000000000000000000000000000000..cc8507f2540313b1eb07976062d1fa8cbc6f5783 GIT binary patch literal 3396 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 B36=l= diff --git a/springboot/target/classes/com/example/service/StudentService.class b/springboot/target/classes/com/example/service/StudentService.class index 92098b40976f54c43b50772c8619812557e6df48..6bb7afe6421d8a7fb2a1cb948570f9578d6e2288 100644 GIT binary patch literal 3216 zcmcguS#uOs7(G2%I_Y#m2oT6N2?&^tG$5Nv1VRWBorIW4g5cVj=}a1Cx`&<~NWcwL zL|kwy70U;oEFZK`ib_DL^i8Y$A5r`dmgTwKJ;?-z_-3W%-oCf*J>U7xx1@jj`^TRE z?83(inh_~S7()t%ajXI(cuK}-8KMeGFeWy~6-?l`jHeYSh=}2Y7)~m@^^ABrR)%NA z{G5X4@q&1Iu^c)k6%H}6j0;#p3{zrAD42$+;1o`aWl}*3mJC})T0&*U&BhJO9n#Zj z!;!El60=j9F{7u_NkdC{yIM5=Opk=R(X8c~DPzLSn3GAP&$4V+cTL;MNN9+h($DHM zn!dQHjT#v{>%wjsI_fELUF$xHzcfzn3ge|O-&lkm`*?mH4!_eCnt2r z6zgEK*qt_MVe>MI8N)ei#*7@tsK2DClBAt5EeYMN%g)nR)1B4&VlkUe^t7$?Qi81e z=Oi?)e6Tz|8K^`}qplu1O+`K4GR{b-9x~i%J3gX2ddhGOhi;TPM#9YSSwi#56e*M( zgy{i10@L)mNRP)K1eiP3Ho@$Ypu~+Nxg44uJ?JwkrauA{3Xx`&P5AnbgD%Z`Cf(t=V)gzq;-_+q)9I{X{B{nh8sHvkuK( z`X5~WPeMx6E3_k~sG&81l0ivyiMo`~8nK;(mPtFNm6#IQc+PfCYa$N~+ocv-u7Xr- z#ugPV*vJf4;UFW!RguM630v};gfSB{(xUpc{%ppzQv&Prd-FU}wt}7eiC%3hQ049MLlwrUeT>&qp7YE!;Sh)st*s z%Mg48dfHBk0?hYQtd{U(q7QrihhvsDopo(Hsl{x^(7X!uQN~%UEN(M1kV?C=qWR@6 zHRP+q=MD@%2q78)=S^Ida(;-j%$Yrc<5sRT z&JyR6_IXG@@F9eUIf}zTHCj2U{sFY1ohu0)=;SGJ`7;#p57^Uw3!#oV6x~5_2t%E} zqVg_EPSljnL;jijWu5%Zq5O;d{m$=sv&genPkTTus<0k4s6!(fXsd~zUd9*v|Xq2>pdd89UZvCzmA>PYJ${5Xa}6PT@sP;eb;a{n$;0q2(ml0s|7?l7b-7 zABeUp5bc*hoa#Wd)wfY|9Tgpq8JseFZm>BdA#wqf^89 zG*XqVo;EvZcqa}~g(cSgi>&)Su0qM(JS|w~EBWZ^oD;i=&W|$m1WxpG4sov{AhW?I z<0p^ez1qWX+P$99TL0*x(F*k9F~S8=>h-YM-g!)9)&1CY|HkencFzN_h4_ouKJNoK zNSy@sRoW0S4O7*62D|;8h HCxL$e)fgU_ delta 710 zcmY+B%T7~K6o$WjY(4F9Tac)Ozt-AW|7GvYs0@4x_0BQgvpNi!00gwYKg z!9jN)k%M;^_R7J?Q{L(oBG=io_j{P@0n-L^MKiqhn`0~_EebmJTdA5 z{a-%Cf4K_Xx=Kb5;s`8XZHPtTu(pYQ47+pumXeMg5*Nn^M!J)DX7|4T@ 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'),}, diff --git a/vue/src/views/Manager.vue b/vue/src/views/Manager.vue index 3158c1f..5a0039b 100644 --- a/vue/src/views/Manager.vue +++ b/vue/src/views/Manager.vue @@ -8,8 +8,8 @@
- - 管理员 + + {{user.name}}
@@ -19,7 +19,7 @@ router style="border: none" :default-active="$route.path" - :default-openeds="['/home', '2']" + :default-openeds="['/home', '2','3']" > @@ -35,7 +35,17 @@ 课程信息 - + + + + + 学生信息 + + + 个人资料 @@ -57,6 +67,7 @@ + + + + + + \ No newline at end of file diff --git a/vue/src/views/manager/Student.vue b/vue/src/views/manager/Student.vue new file mode 100644 index 0000000..20b472a --- /dev/null +++ b/vue/src/views/manager/Student.vue @@ -0,0 +1,186 @@ + + \ No newline at end of file -- 2.34.1