• 基于springboot+vue的智慧幼儿园管理系统(前后端分离)


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    本系统适合选题:智慧幼儿园、幼儿园系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis,系统分为三个角色,功能齐全,界面美观。

    项目功能:

    系统包含技术:

    后端:springboot,mybatis
    前端:element-ui、js、css等
    开发工具:idea/vscode
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是登录页面

    管理员对用户进行管理

    管理员新增教师

    管理员对幼儿信息进行维护

     管理员职工考核

    管理员维护请假信息

    管理员会议记录操作

    用户请假

    部分代码:

    拦截器

    1. @Bean
    2. public AuthorizationInterceptor getAuthorizationInterceptor() {
    3. return new AuthorizationInterceptor();
    4. }
    5. @Override
    6. public void addInterceptors(InterceptorRegistry registry) {
    7. registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**");
    8. super.addInterceptors(registry);
    9. }
    10. /**
    11. * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法
    12. */
    13. @Override
    14. public void addResourceHandlers(ResourceHandlerRegistry registry) {
    15. registry.addResourceHandler("/**")
    16. .addResourceLocations("classpath:/resources/")
    17. .addResourceLocations("classpath:/static/")
    18. .addResourceLocations("classpath:/admin/")
    19. .addResourceLocations("classpath:/front/")
    20. .addResourceLocations("classpath:/public/");
    21. super.addResourceHandlers(registry);
    22. }

     配置信息

    1. @Autowired
    2. private ConfigService configService;
    3. /**
    4. * 列表
    5. */
    6. @RequestMapping("/page")
    7. public R page(@RequestParam Map<String, Object> params,ConfigEntity config){
    8. EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
    9. PageUtils page = configService.queryPage(params);
    10. return R.ok().put("data", page);
    11. }
    12. /**
    13. * 列表
    14. */
    15. @IgnoreAuth
    16. @RequestMapping("/list")
    17. public R list(@RequestParam Map<String, Object> params,ConfigEntity config){
    18. EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
    19. PageUtils page = configService.queryPage(params);
    20. return R.ok().put("data", page);
    21. }
    22. /**
    23. * 信息
    24. */
    25. @RequestMapping("/info/{id}")
    26. public R info(@PathVariable("id") String id){
    27. ConfigEntity config = configService.selectById(id);
    28. return R.ok().put("data", config);
    29. }
    30. /**
    31. * 详情
    32. */
    33. @IgnoreAuth
    34. @RequestMapping("/detail/{id}")
    35. public R detail(@PathVariable("id") String id){
    36. ConfigEntity config = configService.selectById(id);
    37. return R.ok().put("data", config);
    38. }
    39. /**
    40. * 根据name获取信息
    41. */
    42. @RequestMapping("/info")
    43. public R infoByName(@RequestParam String name){
    44. ConfigEntity config = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
    45. return R.ok().put("data", config);
    46. }

    下载文件

    1. /**
    2. * 下载文件
    3. */
    4. @IgnoreAuth
    5. @RequestMapping("/download")
    6. public ResponseEntity<byte[]> download(@RequestParam String fileName) {
    7. try {
    8. File path = new File(ResourceUtils.getURL("classpath:static").getPath());
    9. if(!path.exists()) {
    10. path = new File("");
    11. }
    12. File upload = new File(path.getAbsolutePath(),"/upload/");
    13. if(!upload.exists()) {
    14. upload.mkdirs();
    15. }
    16. File file = new File(upload.getAbsolutePath()+"/"+fileName);
    17. if(file.exists()){
    18. /*if(!fileService.canRead(file, SessionManager.getSessionUser())){
    19. getResponse().sendError(403);
    20. }*/
    21. HttpHeaders headers = new HttpHeaders();
    22. headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    23. headers.setContentDispositionFormData("attachment", fileName);
    24. return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
    25. }
    26. } catch (IOException e) {
    27. e.printStackTrace();
    28. }
    29. return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
    30. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    【Java挑战赛】——static、代码块
    jquery ajax跨域解决方法(json方式)
    iwemeta元宇宙:宇宙网红,马斯克年度“吹牛大会”!10年卖1亿辆车,“擎天柱”机器人年底量产
    Python开发手册 — 有勇气的牛排
    猿创征文 |【数据结构】3个例题带你搞定图的遍历:深度优先搜索
    打卡信奥刷题(90)用Scratch图形化工具信奥P1853 [普及组] 投资的最大效益
    【C++】优先级队列 priority_queue的使用&模拟实现 | 仿函数
    C++&QT day11
    js直接操作数据库会怎么样
    AUTOSAR汽车电子嵌入式编程精讲300篇-面向驾驶辅助技术融合算法的日志系统设计与实现(下)
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/126735196