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); })(); |
!(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改变预览的数据集。
刷新数据参数(如sql语句的参数)
// 通过传入当前数据集请求获取参数,然后调用getParameters合并新旧参数 Dec.Utils.getDataSetParameters(dataSet, function (res) { newParameters = BI.Services.getService("dec.service.data.set").getParameters(res.data, oldParameters); }); |