页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考,因宏代码具备一定场景限制,如和实际应用场景不符合,需要自行调整相关宏代码)

需求背景:

在跳转的时候希望能够携带当前点击的度量到下一个页面,来查看该度量更多维度下的信息,具体如下。点击不同行时将当前行的指标名称传到下一层,下一层显示对应的度量值。


实现方案:

1、制作交叉表,交叉表的行去只能有一个度量名称,如果与多个维度字段,需要根据实际情况调整宏代码

2、添加宏代码:组件、onBeforeRender

function main(page: IPage, portlet: ITableCrossPortlet) {
    portlet.setRenderCellHandler((cell, row, rowIndex, columnIndex) => {
        console.log(cell, row, rowIndex, columnIndex)
        // 配置点击事件用于跳转
        const handler: ITableCellEventListener = () => {
            debugger
            cellClick(page, portlet, rowIndex);
        };
        cell.addEventListener(TableCellEvent.CLICK, handler);
    });
}

function cellClick(page: IPage, portlet: ITableCrossPortlet, row: Number) {
    // 选取要传值的列
    let filterCell = portlet.getRowHeader(row, 0);
    let value: number | string = filterCell.getValue() || [];
    // 目标资源id
    let id: string = '3c05ae4d86576e1defd091bb5f6fc651'
    // 目标资源参数(参数或者筛选器的值)
    let query: OpenResourceQuery = {
        paramInfo: [{name: '度量值', alias: '度量值', value: value, displayValue: value}]
    }
    // 调用打开资源接口,默认为:新窗口打开'NEW_WIN'
    page.openResourceByType(id, query, OpenType.NEW_WIN)
}


3、目标表数据模型创建参数,参数使用case when的逻辑来处理当参数为不同的值的时候返回不同度量的值,具体如下

4、模型勾选自定义的度量,并勾选该参数值




  • 无标签