七月下旬更新速递丨 任务中心上线,福利加倍!技术干货持续放送

更新焦点: 重磅推出「任务中心」! 完成多样化任务,轻松赚取麦豆!技术分享、AI学习、实用素材持续上新,点击标题立即探索!

任务版块全新登场!多个任务等你完成,麦豆轻松拿,福利享不停!

>> 立即前往任务中心,开启你的成长之旅! <<

二、实战技巧分享

报表合计不用愁!全场景报表合计一键搞定指南》→从几个场景出发,带大家全方位了解如何在各类报表中实现合计。

数据轻松入库,高效分析即刻开启!》→详细介绍在 Smartbi 中将数据导入数据库的几种主要途径。

三、开发技能突破

第三方系统集成Smartbi资源→演示一些入门的前端集成示例,帮助快速了解如何进行前端集成。

AI每日一学

什么是训练集?什么是验证集?什么是测试集?》→ 讲解如何用三大数据集为AI打造"训练-调试-终测"的全流程闭环

Manus与其他AI智能体产品有什么区别?》→ AI界真·“实干家”Manus上线!告别“嘴炮”AI,围观智能体如何“动手”逆天改命!速戳

五、资源更新

浅色系质感背景图》→百搭质感背景,看见即呼吸,质感如微风。

六、直播上线

如何制作性能最佳的报表解锁性能最佳报表的实践技巧

麦粉社区
>
帖子详情

通过宏代码隐藏交互式仪表盘中明细表里的某一列。

数据分析 发表于 2025-3-11 11:28
发表于 2025-3-11 11:28:38

系统版本信息:Version: 11.0.89539.24122


 


场景如下:在一个明细表中通过点击某个人的身份证号码,跳转到他个人的详情信息页,因为身份证号码进行脱敏处理了,所以需要添加一个未脱敏的证件号码字段作为参数,但这个未脱敏的证件号码列没脱敏,所以需要隐藏。


 


下图为一个简单的测试表格,是明细表组件,现在需要隐藏证件号码列。




 


由于本人对于JavaScript代码并不熟悉,只能上网查询,以及通过deepseek等AI工具来编写,试了很多种方法,一次都没成功。


 


如图,这是找到的最简单的代码,方法是客服说的,但是报错,请看截图:




 


上面这个失败,后面 AI又给了个代码:


function main(page, component) {
    try {
        // 1. 定义目标列名
        const targetColumnName = "证件号码"; // 按实际列名修改


        // 2. 延迟执行,确保 DOM 加载完成
        setTimeout(() => {
            // 3. 隐藏表头和数据列
            const headers = document.querySelectorAll("th"); // 获取所有表头
            const cells = document.querySelectorAll("td");  // 获取所有数据单元格


            headers.forEach(header => {
                if (header.innerText.trim() === targetColumnName) {
                    header.style.display = "none"; // 隐藏表头
                }
            });


            cells.forEach(cell => {
                if (cell.innerText.trim() === targetColumnName) {
                    cell.style.display = "none"; // 隐藏数据单元格
                }
            });


            console.log(`列 "${targetColumnName}" 隐藏成功!`);
        }, 1000); // 延迟 1 秒确保 DOM 加载完成
    } catch (e) {
        console.error("DOM 操作失败:", e);
    }
}


 


显示隐藏成功,但是无论是刷新页面、预览页面、刷新缓存之后,仍然没有隐藏,如下图:



 



期间有通过AI给的方法来


确认组件类型,如下图:




 


折腾了大半天,最终还是没有解决,希望各位大佬帮忙看看,感激不尽。


 

发表于 2025-3-11 13:36:15
4973467cfcbce7f173.png

回复

使用道具 举报

发表于 2025-3-11 13:37:37
列号从0开始
回复

使用道具 举报

发表于 2025-3-11 14:35:51
回复

使用道具 举报

发表于 2025-3-11 15:27:54
/******************************宏代码说明******************************
* version:Smartbi V11
* 类型:ClientSide
* 对象:交互仪表盘
* 事件:onAfterRender
* 效果描述:隐藏清单表或汇总表指定的列
* 是否可修改:是,需要更新对应war版本,具体版本已在文档中进行说明
*********************************************************************/
// 隐藏列序号,序号从0开始:隐藏第一列和第三列: const indexes = [0,3]
const indexes = [6];
function main(page: IPage, portlet: ITableListPortlet) {
    let type = portlet.getType();
    if (type != "TABLE_DETAIL_LIST" && type != "TABLE_LIST2") {
        return;
    }
    for (let index of indexes) {
        portlet.hideTableColumn(index);
    }
}
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

8回帖数 0关注人数 811浏览人数
最后回复于:2025-3-11 15:27
快速回复 返回顶部 返回列表