1.需求功能分析和解决思路阐述,页面效果图如下:

若依 集成es_字段

    A.需求功能分析:约谈、投递、收藏是同属于约藏投功能模块下,不同的分类,但现在的问题是这几种类型数据是存于一张表内,它们既有共用字段也有不共用字段,这样对于使用同一套页面就产生了困难,因为不同的模块点击进去,页面上显示的只是该模块所拥有的字段信息,其他的类型字段就得隐藏起来了。

    B.解决问题的思路方法:操作页面上初点击不同的类型模块访问列表页时,即带上判断类型的字段编码,这样不管是列表页还是增加和修改页面,根据拿到的类型编码进行判断,来显示需要的信息和隐藏不该显现的信息。现在问题的难点即定位在如何在列表页、增加也、修改页拿到类型编码。

2.解决问题,数据库中sys_menu系统菜单表、后台以及前台需要修改的地方如下:

     A. sys_menu系统菜单表, 改动的地方如下图所示(其中oprationTypeCode为对应的类型字段):

    

若依 集成es_字段_02

    B. 列表页前台和后台修改的地方如下:

    后台(controller类中进行修改):

@RequiresPermissions("idc:idc:view")
@GetMapping()
public String idc(ModelMap mmap,HttpServletRequest request){
    //拿到oprationTypeCode
    String opCpde = request.getParameter("oprationTypeCode");
    //把拿到的类型字段opCpde传到列表页
    mmap.put("oprationTypeCode", opCpde);
    switch (opCpde) {
	case "1":
        mmap.put("oprationTypeName", "约谈");
        break;
    case "2":
        mmap.put("oprationTypeName", "投递");
        break;
    case "3":
        mmap.put("oprationTypeName", "收藏");
        break;
	default:
        break;
	}
    return prefix + "/idc";
}

    前台接受类型字段和类型名称 (类型名称是用于搜索使用) :  

<!-- 列表页接收的类型编码和名称在页面我都隐藏起来了,但是都是实际存在的  -->
<li>
    <!--  <p>操作类型编码:1.约谈项目 2.投递项目 3.收藏项目:</p> -->
    <input type="hidden" name="oprationTypeCode" th:value="${oprationTypeCode}"/>
</li> 
<li hidden>
    <p>操作类型:</p>
    <!-- <p>操作类型名称:约谈项目 投递项目 收藏项目:</p> -->
    <input type="text" readonly name="oprationTypeName" th:value="${oprationTypeName}">
</li>

    C.增加页面前台和后台需要改动的地方:

    前台(列表页和增加页面):

若依 集成es_页面效果_03

<!--使用 th:if="${oprationTypeCode == '1'}" 对需要根据类型编码判断来显示的字段,达到显示和隐藏效果 -->
<!-- 增加页面修改的地方 -->
<div class="form-group" th:if="${oprationTypeCode == '1'}">    
  <label class="col-sm-3 control-label">约谈项目ID:</label>
  <div class="col-sm-8">
     <input name="interviewProId" class="form-control" type="text">
  </div>
</div>
<div class="form-group" th:if="${oprationTypeCode == '1'}">    
  <label class="col-sm-3 control-label">约谈项目名称:</label>
  <div class="col-sm-8">
   <input name="interviewProName" class="form-control" type="text">
  </div>
</div>

    后台(controller类的新增方法):

/**
 * 新增约谈投递收藏功能
 */
@GetMapping("/add")
public String add(HttpServletRequest request, ModelMap mmap){ 
  //列表页面点击增加按钮,传进来的类型编码
  String opCpde = request.getParameter("oprationTypeCode");
  //保存并准备传到增加页面去
  mmap.put("oprationTypeCode", opCpde);
  switch (opCpde) {
  case "1":
	mmap.put("oprationTypeName", "约谈");
	break;
  case "2":
	mmap.put("oprationTypeName", "投递");
	break;
  case "3":
	mmap.put("oprationTypeName", "收藏");
	break;
  default:
	break;
  }
  return prefix + "/add";
}

    D.修改页面前台和后台需要改动的地方:

    前台(修改页面,同于增加页面):

<div class="form-group" th:if="${oprationTypeCode == '1'}">    
  <label class="col-sm-3 control-label">约谈项目ID:</label>
  <div class="col-sm-8">
   <input name="interviewProId" th:field="*{interviewProId}" class="form-control" type="text">
   </div>
</div>
<div class="form-group" th:if="${oprationTypeCode == '1'}">    
   <label class="col-sm-3 control-label">约谈项目名称:</label>
   <div class="col-sm-8">
    <input name="interviewProName" th:field="*{interviewProName}" class="form-control" type="text">
   </div>
</div>

    后台(controller类的修改方法):

/**
 * 修改约谈投递收藏功能
 */
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap){
   InterviewDeliverCollect interviewDeliverCollect = 
   interviewDeliverCollectService.selectInterviewDeliverCollectById(id);
   mmap.put("interviewDeliverCollect", interviewDeliverCollect);
   //获取查询出来的对象的类型编码,并传到修改页面
   mmap.put("oprationTypeCode", interviewDeliverCollect.getOprationTypeCode().toString());
   return prefix + "/edit";
}

3.欢迎指正!!!