【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

Provider

dec.provider.data.set

新增一种数据集类型

新增类型实际上是在编辑或添加的时候有额外的类型可以选择,因此操作的是编辑页面,预览页面无需实现。

方法

registerDataSetType(config)

参数

config:Object,必选,步骤对象。包含属性text为显示的文本、属性value为标志符、属性cardType为新增数据集类型的组件shortcut。

示例

注册新类型
BI.config("dec.provider.data.set", function (provider) {
    provider.registerDataSetType({
        value: "plugin",
        text: "自定义类型",
        cardType: "dec.data.set.type.plugin"
    });
});
页面实现
!(function () {
    var Plugin = BI.inherit(BI.Widget, {

		_store: function () {
    		return BI.Models.getModel("dec.model.data.set.type.plugin", this.options);
		},

        render: function () {
            var self = this, o = this.options;
            return {};
        },

        /**
         * 必选
         * 只需要当前类型的值即可,无需datasetName和datasetType
         * 返回的值会作为datasetData的值
         * @returns {{}}
         */
        getValue: function () {
            return {

            };
        },

        /**
         * 可选校验方法
         * @returns {boolean}
         */
        validation: function () {
            return true;
        }
    });
    BI.shortcut("dec.data.set.type.plugin", Plugin);
})();
插件model
!(function () {
    var Model = BI.inherit(Fix.Model, {

        // 通过dataSetName获取数据集名称,修改ableSave改变右上角保存按钮是否可用
        context: ["dataSetName", "ableSave"],

        state: function () {
            return {};
        },

        computed: {},

        actions: {}
    });
    BI.model("dec.model.data.set.type.plugin", Model);
})();

如果需要实现预览功能,可以使用内置的组件dec.data.set.preview,提供预览、预览成功、预览失败、取消预览的功能,通过context传入previewAble实时改变能否预览, previewedDataSet改变预览的数据集。

效果

常用方法

  1. 判断某种类型数据集是否被支持
    BI.Services.getService("dec.service.data.set").isSupportDataSet(type);
  2. 获取不同类型参数的默认值
    BI.Services.getService("dec.service.data.set").getDefaultValueByType(type);
  3. 刷新数据参数(如sql语句的参数)

    // 通过传入当前数据集请求获取参数,然后调用getParameters合并新旧参数
    Dec.Utils.getDataSetParameters(dataSet, function (res) {
        newParameters = BI.Services.getService("dec.service.data.set").getParameters(res.data, oldParameters);
    });
  4. 创建不同类型参数的输入框
    BI.Services.getService("dec.service.data.set").createParameterValueItem(param, cb);
    该方法接受两个参数:param是当前参数的信息{type: "参数类型", value: "参数值", name: "参数名"},cb为回调函数,会在输入框值改变后触发
  5. 显示用户输入参数弹窗
    BI.Services.getService("dec.service.data.set").showParametersPopover(parameters, cb)
    该方法接受两个参数:parameters是参数列表,其中每个参数的name和value都要有,cb为回调函数,点击确定后触发

 

  • No labels