九月下旬更新速递丨 AI赋能、技术实战与智能探索

金秋九月,下旬更新携AI发布会回放、丰富实战案例与进阶开发资源强势登场!助您深化技术理解,加速智能应用落地!

重点推荐Smartbi AIChat V4发布会圆满落幕!发布会精彩内容已完整上架,随点随看,深度回顾!共同步入智能新纪元!点击观看Smartbi AIChat V4发布会全程回放

麦学堂同步上架,加速学习

【Smartbi AIChat全新升级发布会根据不同篇章提炼上架,方便您按需定位,快速直达重点环节,高效吸收核心内容!

十分钟完整体验AIchat→ 只要10分钟时间,即可使用自己的本地数据快速体验AIChat所有功能。

一、任务持续上线

场景实战系列任务:数据处理,赢取278麦豆!通过实战任务巩固技能,真正掌握数据驱动的企业决策全流程

【BI知识闯关】数据回写填报太头疼?方案请收好!》→破解填报难题,提升数据处理效率。

【AI每日一学知识巩固】为什么Python 是目前人工智能领域最常用的编程语言》→深入解析Python在AI领域的优势,巩固编程基础。

二、实战技巧分享

数据回写填报太头疼?方案请收好!》→聚焦六大常见回写场景,拆解每类场景的实现思路,带您清晰掌握 Smartbi 数据回写的实操逻辑。

、开发技能突破

自定义计划任务案例 进一步了解自定义计划任务,从而提升自定义任务的开发效率和能力。

四、AI每日一学

【AI每日一学】为什么Python 是目前人工智能领域最常用的编程语言》→探讨Python为何能成为人工智能领域最常用的编程语言。

【AI每日一学】简单总结一下AI Agent的五个发展阶段从简单的指令响应到复杂的多智能体协作,AI Agent正逐步向着更拟人、更通用的方向演进。

五、全新素材上线

科技指标卡底座(二)→科技感视觉主题,深色科技风跃动,光线流动引爆焦点!

按需管控:业务人员导出最大行数设置在“导出规则”中,“导出动作”增加“部分导出”的选项

屏蔽“我的工作区”根据角色控制,屏蔽产品中“我的工作区”目录的功能,同时,对于该模块下的资源进行“保存”或者“另存为”,以及“移动到”时,对应的弹出框都不会显示“我的工作区”目录。

数据预警:异常数据可以落地到知识库在“预警推送”中,“推送渠道”增加“数据库”的选项,可以把异常数据存储到“知识库”的表中。

同一账号不能同时登录同一账号不能同时登录,后登录踢出先登录。


六、行业方案上线

汽车制造-财务数字化分析决策平台方案“核账型财务”向“经营型财务”升级

汽车制造-媒介平台ROI实时分析需求解决方案在激烈的市场竞争中,汽车行业对广告投放精准性要求极高,打破决策延时,敏捷响应时长,解决资源浪费,提升广告投放ROI!

为进一步提升认证服务的质量与体验,我们对认证业务进行全面优化升级。更多详情请看→Smartbi认证考试优化升级公告


麦粉社区
>
帖子详情

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

其它 发表于 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关注人数 1398浏览人数
最后回复于:2024-12-26 14:15
快速回复 返回顶部 返回列表