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

Page tree

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

Skip to end of metadata
Go to start of metadata

公共模块扩展

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