---
title: "3.2 人员浏览按钮"
docId: "301206770288689152"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/91f5067f-775e-48f4-93a2-ce84ca0b9c2e/doc/301206770288689152"
---
1. 拦截浏览按钮返回值，调整副标题内容
  
  ```java
  -- 二开标识
  HRM_EMPLOYEE_ORG_001
  ```
  
    - 入参说明（Map<String, Object>）
      
          - result 为返回内容（标准是业务List<bean>，需要自行转List<Map<String,Object>>）
            
            | 参数 | 类型 | 说明 |
            | --- | --- | --- |
            | subcompanyFullName | String | 分部全路径 |
            | departmentFullName | string | 部门全路径 |
    - 出参说明
      
          - WeaHookResponse.result中设置 result 的内容，即表示需要最后显示内容
    - 示例
      
      ```java
      @Override
          public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
              //入参，修改入参并不会影响到埋点的原始数据
              Map<String, Object> params = request.getParams();
      
              ObjectMapper objectMapper = new ObjectMapper() ;
              Map<String, Object> dataMap = objectMapper.convertValue(
                      params.get("result"), new TypeReference<Map<String, Object>>() {}
              );
              if(dataMap == null){
                  response.setResult(params);
                  return response ;
              }
              List<Map<String,Object>> dataList = (List<Map<String,Object>>) dataMap.get("data"); // 数据
              if(dataList == null){
                  response.setResult(params);
                  return response ;
              }
              List<Map<String,Object>> newList = new ArrayList<>() ;
              dataList.forEach(map->{
                  String subcompanyFullName = (String) map.get("subcompanyFullName") ;
                  if(StringUtils.isNotBlank(subcompanyFullName)){
                      String[] names = subcompanyFullName.split("/");
                      if(names.length > 0){
                          subcompanyFullName = Arrays.stream(names).skip(1).collect(Collectors.joining("/")) ;
                      }
                  }
                  map.put("subcompanyFullName",subcompanyFullName) ;
                  newList.add(map) ;
              });
      
              response.setResult(ImmutableMapUtil.of("result",newList));
              return response;
          }
      ```
2. 拦截返回内容（主数据）
  
    - 标识： HRM_EMPLOYEE_ORG_002
    - 入参说明
      
      | 参数 | 类型 | 说明 |
      | --- | --- | --- |
      | data | List | 人员信息列 |
      | template | Map | 浏览按钮显示模板 |
      | param | Map | 浏览按钮请求参数 |
      
          - param参数说明
            
            | 参数 | 类型 | 说明 |
            | --- | --- | --- |
            | cmd | string | 来源 all 所有人 teams 组织架构 channel 群组 external 外部联系人 recently 最近 另外，如果是纯数字表示是自定义来源 |
            |  |  |  |
          - data参数说明
            
            | 参数 | 类型 | 说明 |
            | --- | --- | --- |
            | id | string | 人员id |
            | name | string | 名称 |
            | content | string | 显示内容 |
            | contentDesc | string | 显示内容扩展 |
            | mobile | string | 手机 |
            | email | string | 邮箱 |
          - template说明
            
                  - dataKeys 是数组，
                    
                            - 元素1表示第一行显示哪个字段
                            - 元素2 表示第二行第一个显示哪个字段
                            - 元素3 表示第三行第二个显示哪个字段
    - 示例
      
      ```java
      //入参，修改入参并不会影响到埋点的原始数据
              Map<String, Object> requestParams = request.getParams();
      
              ObjectMapper objectMapper = new ObjectMapper() ;
              Map<String,Object> params = objectMapper.convertValue(
                      requestParams.get("result"), new TypeReference<Map<String, Object>>() {}
              );
      
              List<Map<String,Object>> dataList = objectMapper.convertValue(
                      params.get("data"), new TypeReference<List<Map<String, Object>>>() {}
              );
              Map<String,Object> sessionInfo = (Map<String,Object>) params.computeIfAbsent("sessionInfo",k->new HashMap<>()) ;
              String tenantKey = Util.null2String(HrmStreamsUtil.ofNullValueWithDefValue(sessionInfo.get("tenantKey"), HrmContextUtil.getCurrentTenantKey()));
              if(CollectionUtils.isEmpty(dataList)) return response ;
              HrmEmpBwser003ShowWkStatusCmd wkStatusCmd = I18nContextUtil.getBean(HrmEmpBwser003ShowWkStatusCmd.class);
              List<Map<String,Object>> newList = wkStatusCmd.reloadWorkstatus(dataList,tenantKey,false);
              response.setResult(ImmutableMapUtil.of("result", ImmutableMapUtil.of("data",newList)));
              return response ;
      ```
