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:新增附件存档方式