Skip to content
本页内容

修改导航上显示的导航栏

应用场景

根据具体的业务需求,我们提供灵活的导航栏自定义功能。这包括修改现有导航栏的名称,以更好地反映其内容或品牌风格;新增导航项,以扩展网站的功能或服务;以及过滤或隐藏某些导航项,以优化用户体验或满足特定用户的需求。

扩展接口实现

java
package com.kanq;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.kanq.sdk.config.Macro;

import java.nio.charset.StandardCharsets;

public class NaviDemo {

    @Macro( name = "GetUserNavi:DESTROY",describe = "修改导航上显示的导航栏")
    public static byte[] getUserNavi_Destroy(byte[] macroHead,byte[][] argv) throws JsonProcessingException {

        byte[] parm_byte = argv[0];
        String parm = new String(parm_byte, StandardCharsets.UTF_8);
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode rootNode = null;
        try {
            rootNode = objectMapper.readTree(parm);
            // 确保根节点是一个对象
            if (rootNode.isObject()) {
                // 获取 "data" 字段,确保它是一个数组
                JsonNode dataNode = rootNode.path("data");
                if (dataNode.isArray()) {
                    ArrayNode dataArray = (ArrayNode) dataNode;
                    // 遍历数组中的每个对象
                    for (JsonNode item : dataArray) {
                        // 检查是否是目标对象
                        if (item.isObject()
                                && item.has("text")
                                && item.get("text").asText().equals("业务审批12")) {
                            // 替换 "text" 字段的值
                            ((ObjectNode) item).put("text", "业务审批");
                            break;// 替换完成后退出循环
                        }
                    }
                }
            }
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
        return objectMapper.writeValueAsBytes(rootNode);
    }
}


package com.kanq;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.kanq.sdk.config.Macro;

import java.nio.charset.StandardCharsets;

public class NaviDemo {

    @Macro( name = "GetUserNavi:DESTROY",describe = "修改导航上显示的导航栏")
    public static byte[] getUserNavi_Destroy(byte[] macroHead,byte[][] argv) throws JsonProcessingException {

        byte[] parm_byte = argv[0];
        String parm = new String(parm_byte, StandardCharsets.UTF_8);
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode rootNode = null;
        try {
            rootNode = objectMapper.readTree(parm);
            // 确保根节点是一个对象
            if (rootNode.isObject()) {
                // 获取 "data" 字段,确保它是一个数组
                JsonNode dataNode = rootNode.path("data");
                if (dataNode.isArray()) {
                    ArrayNode dataArray = (ArrayNode) dataNode;
                    // 遍历数组中的每个对象
                    for (JsonNode item : dataArray) {
                        // 检查是否是目标对象
                        if (item.isObject()
                                && item.has("text")
                                && item.get("text").asText().equals("业务审批12")) {
                            // 替换 "text" 字段的值
                            ((ObjectNode) item).put("text", "业务审批");
                            break;// 替换完成后退出循环
                        }
                    }
                }
            }
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
        return objectMapper.writeValueAsBytes(rootNode);
    }
}


效果展示

二开前效果: scene-navi-destory-20240612112822

二开后效果: scene-navi-destory-20240612112626

Powerd by Vitepress.