热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分布式开发医疗挂号系统数据字典模块web前后端怎么实现

这篇文章主要介绍了分布式开发医疗挂号系统数据字典模块web前后端怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家

这篇文章主要介绍了分布式开发医疗挂号系统数据字典模块web前后端怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇分布式开发医疗挂号系统数据字典模块web前后端怎么实现文章都会有所收获,下面我们一起来看看吧。

    分布式开发医疗挂号系统数据字典模块web前后端怎么实现

    数据字典可以管理系统常用的分类数据或 固定数据,例如:省市区三级联动数据、民族数据、行业数据、学历数据等。由于我们的 分布式医疗挂号系统 大量使用这种数据,所有我们要做一个数据管理,方便管理系统数据,并且在一般的系统中基本都会做数据管理。

    数据字典主要功能:使系统中的各项数据变的更加的严格,这样有利于降低因为数据问题而导致的bug。

    一、后端接口

    1.数据库表设计

    数据字典的数据库表字段和对应的实体类的属性应该是一一对应的,但要注意下面两个地方:

    添加上@TableLogic表示为逻辑删除,后续删除操作会自动变为修改操作。为了实现页面上单击展开子节点的功能,额外使用@TableField(exist = false)加入ha’s’Children属性。

    分布式开发医疗挂号系统数据字典模块web前后端怎么实现

    2.编写三层调用

    根据下图总结的三层调用关系,我们需要分别编写好Controlller层、Service层、Mapper层的代码。

    分布式开发医疗挂号系统数据字典模块web前后端怎么实现

    Controller层

    通过url:/admin/cmn/dict/findChildData/{id} 访问资源到达控制层后,控制层调用服务层的findChildData(Long id)方法。

    @Api(tags = "数据字典接口")
    @RestController
    @RequestMapping("/admin/cmn/dict")
    @CrossOrigin
    public class DictController {
        @Autowired
        private DictService dictService;
        @ApiOperation(value = "根据id查询子数据列表")
        @GetMapping("findChildData/{id}")
        public Result findChildData(@PathVariable Long id) {
            List list = dictService.findChildData(id);
            return Result.ok(list);
        }
    }
    Service层

    在服务层根据id查询子数据列表,调用数据层的查询方法查到子数据集合后,将集合遍历,遍历过程中为每条记录的hasChildren属性赋值。具体业务逻辑详见下面的代码:

    Service接口继承IService接口:

    public interface DictService extends IService {
        /**
         * 根据id查询子数据列表
         * @param id
         * @return list
         */
        List findChildData(Long id);
    }

    Service实现类继承ServiceImpl类:

    @Service
    public class DictServiceImpl extends ServiceImpl implements DictService {
        /**
         * 根据id查询子数据列表
         * @param id
         * @return list
         */
        @Override
        public List findChildData(Long id) {
            QueryWrapper queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("parent_id", id);
            List dictList = baseMapper.selectList(queryWrapper);
            for (Dict dict : dictList) {
                // 得到每一条记录的id值
                Long dictId = dict.getId();
                // 调用hasChildren方法判断是否包含子节点
                boolean flag = this.hasChildren(dictId);
                // 为每条记录设置hasChildren属性
                dict.setHasChildren(flag);
            }
            return dictList;
        }
        /**
         * 判断id下面是否有子结点
         * @param id
         * @return true:有子结点,false:无子结点
         */
        private boolean hasChildren(Long id) {
            QueryWrapper queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("parent_id", id);
            Integer count = baseMapper.selectCount(queryWrapper);
            return count > 0;
        }
    }
    Mapper层

    Mapper接口继承了BaseMapper接口。由于服务层调用的方法是BaseMapper自带的方法,所以在数据层,我们并没有给出具体的方法。

    public interface DictMapper extends BaseMapper {
    }

    由于在数据字典模块中配置类、配置文件不是我们主要研究的内容,所以这里不再给出,具体可参考github仓库代码。至此,数据字典模块的后端接口已经完成:

    分布式开发医疗挂号系统数据字典模块web前后端怎么实现

    二、前端页面

    1.添加路由

    由于数据管理中的数据字典是一个全新的页面,我们可以将数据字典的路由设置为/cmn/list,路由到/cmn/list后,会跳转到/views/dict/list.js资源。

      // 数据字典路由
      {
        path: &#39;/cmn&#39;,
        component: Layout,
        redirect: &#39;/cmn/list&#39;,
        name: &#39;数据管理&#39;,
        meta: { title: &#39;数据管理&#39;, icon: &#39;example&#39; },
        // 如果只有一级会仅显示子按钮,添加alwaysShow=true 可以使父按钮也显示
        alwaysShow:true,
        children: [
          {
            path: &#39;list&#39;,
            name: &#39;数据字典&#39;,
            component: () => import(&#39;@/views/dict/list&#39;),
            meta: { title: &#39;数据字典&#39;, icon: &#39;table&#39; }
          }
        ]
      },

    2.添加跳转页面

    路由后,跳转到/views/dict/list.js页面,下面给出此页面的逻辑片段代码和其调用的api接口代码:

    分布式开发医疗挂号系统数据字典模块web前后端怎么实现

    3.页面表格渲染

    表格渲染我们使用elementUI提供开发文档:树形数据与懒加载表格组件。

    修改后的代码如下:

    :data=“list”

    查出来的数据。

    :load=“getChildrens”

    加载getChildrens方法。

    :tree-props="{ children: ‘children’, hasChildren: ‘hasChildren’ }"

    树的属性值,通过属性值来判断hasChildren中的值是true还是false。

    
          
          
            
              {{ row.dictCode }}
            
          
          
            
              {{ scope.row.value }}
            
          
          
            
              {{ scope.row.createTime }}
            
          
        
      

    三、标准Debug流程

    目前数据字典模块的前后端已经开发完成了,但是此刻如果允许程序,页面并不会加载到后端传过来的数据。因为不同的访问请求访问到不同的服务器中,我们为数据字典模块设置端口是8202,而前端config/dev.env.js中,配置的是之前医院设置模块中的8201端口。

    我们可以加入Nginx暂时解决,后期也会加入路由来替换掉Nginx,不过仅为了展示效果,这里简单的将前端 config/dev.env.js 中的端口改为和数据字典模块8202统一的端口。关于Nginx和添加统一路由会在后续的文章中进行介绍。

    关于“分布式开发医疗挂号系统数据字典模块web前后端怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“分布式开发医疗挂号系统数据字典模块web前后端怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程笔记行业资讯频道。


    推荐阅读
    • Java项目分层架构设计与实践
      本文探讨了Java项目中应用分层的最佳实践,不仅介绍了常见的三层架构(Controller、Service、DAO),还深入分析了各层的职责划分及优化建议。通过合理的分层设计,可以提高代码的可维护性、扩展性和团队协作效率。 ... [详细]
    • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
    • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
      本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
    • ASP.NET MVC中Area机制的实现与优化
      本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
    • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
    • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
    • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
    • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
    • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
    • 深入解析 Spring Security 用户认证机制
      本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
    • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
    • 解决FCKeditor应用主题后上传问题及优化配置
      本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
    • Kubernetes 持久化存储与数据卷详解
      本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
    • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
    • 我有一个SpringRestController,它处理API调用的版本1。继承在SpringRestControllerpackagerest.v1;RestCon ... [详细]
    author-avatar
    RaymondKit
    这个家伙很懒,什么也没留下!
    Tags | 热门标签
    RankList | 热门文章
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有