一月初新内容速递丨数据管控、图表应用与函数启航

新年伊始,学习继续!一月上旬更新聚焦数据安全、图表实战、函数入门与场景深化,助你在数据智能的旅程中稳健开年!

一、技术经验分享

精细化管控数据导出,让敏感数据无处泄露!→加强数据安全管理,有效防止敏感信息外泄,提升企业数据合规性。

二、任务持续上线

【图表应用】散点图精准洞察分布→学习散点图制作与分析,掌握数据分布洞察技巧。
【函数】新手村试炼:计算度量入门挑战→函数入门实战,轻松攻克计算度量基础。
【图表应用】热力地图:看透市场浓度的战略眼→掌握热力地图绘制,直观识别市场热度分布。
BI知识闯关】精细化管控数据导出,让敏感数据无处泄露!》→巩固数据安全知识,提升管控实战能力。
【新年活动】年货采购数据侦探→结合新年主题,锻炼数据筛选与分析能力。

三、场景应用精选

价值引擎:汽车制造财务分析主题课程→延续财务数据分析实战,助力企业决策与价值挖掘。
【地图】散点地图:精确落位,洞察分布→学习散点地图应用,实现地理位置数据的可视化呈现。
【地图】热力地图:一眼识别业务“高地”与“洼地”》→掌握热力地图在业务分析中的实战应用。

四、二次开发视频更新

Excel导入模板扩展校验类》→深入学习Excel导入功能的扩展校验技术,提升数据导入的准确性与规范性。

五、活动进行中

新年第①弹|年货采购数据挑战:你能答对几题?》→趣味数据挑战赛,检验你的数据分析能力,赢取开年好礼。

六、官方通知发布

2025年度任务排行榜大揭晓!》→回顾2025年度学习成果,揭晓任务完成排行榜,激励持续学习。

七、函数应用入门

【函数课堂】函数总览篇:告别“不会用计算度量”的焦虑》→系统讲解函数使用,帮助你轻松入门计算度量,摆脱使用困惑。

麦粉社区
>
帖子详情

如何使用筛选器影响仪表盘组件的显示或隐藏

其它 发表于 2024-12-26 11:22
发表于 2024-12-26 11:22:43

想使用宏代码编写,但是没有合适的库进行引用

发表于 2024-12-26 11:22:44
本帖最后由 橘猫今天喝水了吗 于 2024-12-26 14:25 编辑

以下代码是通过宏控制另一个组件是否显示的。


 


代码说明:


1.宏代码写在作为控制器的筛选器组件上


2.



    let otherportlet = page.getPortletsByTitle('筛选_1')[0]; 根据标题来获取其他组件,以实现对其属性的修改。

    current_value = portlet.getValue(); 是当前筛选器的值。

3.逻辑,如果当前筛选器的值是2017,则将另一个组件隐藏起来。


function main(page: IPage, portlet: IFilterPortlet) {

    //获取另一个组件(或者组件们)
    let otherportlet = page.getPortletsByTitle('筛选_1')[0];
    //let otherportlet_2 = page.getPortletsByTitle('筛选_2')[0];
    //let otherportlet_3 = page.getPortletsByTitle('筛选_3')[0];
    current_value = portlet.getValue();
    //这段代码,是渲染页面时,根据下拉框的值,隐藏其他组件
    if (current_value[0] == '2017') {
        //隐藏
        otherportlet.hide();

    }

    //这里是在选中下拉参数时,控制是否隐藏组件
    portlet.setFilterValueChangeHandler(function (value: Array) {
        if (value[0] == '2017') {
            //隐藏
            otherportlet.hide();
        }
        else {
            //显示
            otherportlet.show();

        };
        return value;

    })
    //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<结束
}

 

回复

使用道具 举报

发表于 2024-12-26 13:43:36
蹲个大佬,如果场景合适的话是不是可以考虑用页签来控制显示呢
回复

使用道具 举报

发表于 2024-12-26 14:01:35

写宏处理,可以给个示例,但是得自己懂代码调整下才行:
/**
* 宏示例:
* 切换筛选参数隐藏组件
* 事件:
* onBeforeRender
* 作用:
* 通过筛选器选择参数,根据参数隐藏对应标题的组件
* (组件标题是组件设置中的 "组件" -> "标题")
* 注意事项:
* 1、这种代码用多了可能会有性能问题
*/
function main(page: IPage, portlet: IFilterPortlet) {
let id = page.getId() + portlet.getId()
// 设置筛选器切换值时的回调函数
portlet.setFilterValueChangeHandler((value: any) => {
let changeValue = value[0]
// 如果当前修改的值跟之前一样就直接return
if (changeValue === SmartbiXMacro.data[id]) return
// 通过筛选值获取同名的组件
let hidePortlets: IPortlet[] = page.getPortletsByTitle(changeValue)
hidePortlets.forEach((portlet: IPortlet) => {
// 将同名组件隐藏
portlet.hide()
})
// 通过上次隐藏的组件名称获取组件
let showPortlets: IPortlet[] = page.getPortletsByTitle(SmartbiXMacro.data[id])
showPortlets.forEach((portlet: IPortlet) => {
// 将上次隐藏的组件显示
portlet.show()
})
// 留存本次的筛选条件
SmartbiXMacro.data[id] = changeValue
})
}

  •   溏娉
    如果是需要隐藏的组件比较多的话建议使用页签来实现
    2024-12-26 14:05| 回复

回复

使用道具 举报

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

4回帖数 0关注人数 1985浏览人数
最后回复于:2024-12-26 14:15
快速回复 返回顶部 返回列表