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

Page tree

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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

公共模块扩展

Provider

dec.provider.schedule

注册新的步骤

方法

registerTaskStep(config[, index])

参数

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

index:Number,可选,插入位置。数组进行splice操作的起始位置,不填则插入到最后一步。

示例

 

步骤条增加一个步骤
// 第一个参数为步骤对象
// 第二个参数为插入的位置
BI.config("dec.provider.schedule", function (provider) {
    provider.registerTaskStep({
        text: BI.i18nText("新增步骤"),
        value: "plugin_step",
        cardType: "dec.schedule.task.plugin"
    }, 1);
});

页面实现示例

新增步骤实现
!(function () {
    var Plugin = BI.inherit(BI.Widget, {

        props: {
            baseCls: ""
        },

        render: function () {
            return {
                type: "bi.label",
                text: "新增步骤"
            };
        },

        /**
         * 校验函数,可选
         * 点击下一步或者可以保存时执行,回调验证结果
         * @param callback
         */
        validation: function (callback) {
            callback(true);
        },

        /**
         * 取值函数,必选
         * 返回的值会与当前任务的值this.model.currTask通过BI.extend合并
         * @returns {{}}
         */
        getValue: function () {
            return {};
        }
    });
    BI.shortcut("dec.schedule.task.plugin", Plugin);
})();

从上述可以看出来,添加任务的过程,有一个全局的model用来保存当前已经设置值。可以通过this.model.currTask获取和修改当前编辑任务的值。

效果

新增调度类型

方法

registerDispatcher(dispatcher[, handings])

参数

dispatcher:Object,必选,调度对象类型。包含属性text为显示的文本、属性value为标志符、属性cardType为新增调度类型的组件shortcut。

handings:Array,可选,新增对象类型的处理方式。处理方式定义参考下述新增文件处理方式,不填则默认不注册处理方式,后续可以通过registerHandingWay方式新增处理方式。

示例

 

注册新的调度对象类型
// 第一个参数为新增调度对象
// 第二个参数为新增调度对象的处理方式
BI.config("dec.provider.schedule", function (provider) {
    provider.registerDispatcher({
        value: "plugin",
        text: "新增类型",
        cardType: "dec.schedule.task.dispatcher.plugin"
    }, []);
});

页面的实现同新增一个步骤, 需要实现必选函数getValue,可选函数validation。

效果

新增文件处理方式

方法

registerHandingWay(config, scopes)

参数

config:Object,必选,处理方式。包含属性text为显示的文本、属性value为与后台同步的actionName、属性cardType为新增文件处理方式的组件shortcut。可选属性actions在只显示一种处理方式实际上有多个action时可用,实现参考客户端通知。需要实现类似于定时计算那种不可取消的效果,设置可选属性selected和forceSelected为true。

scopes:Array,必选,处理方式作用范围。此参数必须设置,否则不会注册到任何一种类型的处理方式中,有效值为内置三种(示例中给出了三种内置值)以及插件注册的调度对象类型(即registerDispatcher方法dispatcher参数的value值)。

示例

新增处理方式
// 第一个参数为新增处理方式对象
// 第二个参数为作用范围数组,有效值为内置三种以及插件的调度对象类型
BI.config("dec.provider.schedule", function (provider) {
    provider.registerHandingWay({
        text: "新增处理方式",
        value: "com.fr.xxxx", // 插件的actionName
        cardType: "dec.schedule.task.file.handling.plugin",
        actions: [] // 一种处理方式如果有多个action
    }, [DecCst.Schedule.TaskType.DEFAULT, DecCst.Schedule.TaskType.REPORT, DecCst.Schedule.TaskType.BI]);
});

注意:不要注册runType进去,目前有对runType做兼容处理,后期将逐步移除对runType的支持。

页面实现示例

处理方式实现
!(function () {
    var Plugin = BI.inherit(BI.Widget, {

        props: {
            baseCls: ""
        },

        render: function () {
            return {
                type: "bi.label",
                text: "新增类型"
            };
        },

        /**
         * 校验函数,可选
         * 返回值当前处理方式是否通过校验
         * @returns {boolean}
         */
        validation: function () {
            return true;
        },

        /**
         * 取值函数,必选
         * 返回的值放到outputActionList中
         * @returns {{}}
         */
        getValue: function () {
            return {};
        }
    });
    BI.shortcut("dec.schedule.task.file.handling.plugin", Plugin);
})();

新增附件存档方式

方法

registerTaskAttached(config, scopes)

参数

config:Object,必选,处理方式。包含属性text为显示的文本、属性value为与后台交互的值。

scopes:Array,必选,处理方式作用范围。此参数必须设置,否则不会注册到任何一种类型的处理方式中,有效值为示例中给出了两种内置值以及插件注册的调度对象类型(即registerDispatcher方法dispatcher参数的value值)。

示例

新增附件存档方式
// 第一个参数为新增附件存档方式
// 第二个参数为作用范围数组
BI.config("dec.provider.schedule", function (provider) {
    provider.registerTaskAttached({
        value: 11,
        text: "pluginText"
    }, [DecCst.Schedule.TaskType.REPORT, DecCst.Schedule.TaskType.BI]);
});


更新记录

2019.10.10:使用provider实现插件注册
2019.11.12:新增附件存档方式

  • No labels