接口对象文档

https://smartbi.feishu.cn/docx/NMCmdBVh0ogQBDx3maOc0lVin2g

涉及二开接口对象方法

接口对象:

IDatasetPanel(数据面板)

接口方法:

setFieldsChecked(fieldIds, checked, type)


作用:根据字段ID设置字段勾选状态


名称

类型

说明

输入参数

fieldIds

String || Array

字段ID或ID数组,要设置状态的字段


checked

boolean

true表示选中,false表示取消选中


type

String

可选,字段类型(DIMENSION_NODE/MEASURE_NODE/NAMEDSET_NODE)

返回值



onLocateToTree(fieldId)

作用:根据字段ID定位到树中对应节点


名称

类型

说明

输入参数

fieldId

String

字段ID

返回值



setDatasetHeader(slot)

作用:用于在数据面板顶部添加自定义组件


名称

类型

说明

输入参数

slot

SlotDefine

插槽定义

返回值



二开示例

1、即席查询 新增控制筛选器是否可见、是否可编辑、是否启用

this.on(D_QUERY_FILTER_ON_INIT, (filter, iDetailQuery) => {
	  console.log('D_QUERY_FILTER_ON_INIT')
	  	filter.setSuffixSlot({
          component: SuffixButton,
          props: {
            value: filter.isEditable()
          },
          listeners: {
            click: function (enabled) {
                 // filter.setVisible(enabled);   控制筛选器是否可见
			     filter.setEditable(enabled);  // 控制筛选器是否可编辑
			     filter.setEnable(enabled);    // 控制筛选器是否启用(禁用即代表对应筛选器对于查询数据和导出无效)
            }
          }
        })
    })

2、透视分析 新增控制筛选器是否可见、是否可编辑、是否启用

this.on(D_QUERY_FILTER_ON_INIT, (filter, iAdHocAnalysis) => {
	  console.log('AD_HOC_FILTER_ON_INIT')
	  	filter.setSuffixSlot({
          component: SuffixButton,
          props: {
            value: filter.isEditable()
          },
          listeners: {
            click: function (enabled) {
                 // filter.setVisible(enabled);   控制筛选器是否可见
			     filter.setEditable(enabled);  // 控制筛选器是否可编辑
			     filter.setEnable(enabled);    // 控制筛选器是否启用(禁用即代表对应筛选器对于查询数据和导出无效)
            }
          }
        })
    })


// 上述示例中使用到的 SuffixButton 
<template>
  <el-button
    type="default"
    style="line-height: 28px; padding: 0 8px; margin-left: 8px"
    @click="onClick"
    >{{ buttonText }}</el-button
  >
</template>
<script>
export default {
  name: "SuffixButton",
  props: {
    value: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      enabled: this.value
    }
  },
  computed: {
    buttonText() {
      return this.enabled ? '禁用' : '启用'
    }
  },
  methods: {
    onClick() {
      this.enabled = !this.enabled
      this.$emit("click", this.enabled)
    },
  },
};
</script>