# 协同待办列表按钮扩展机制
# 适用版本
V9.0SP1 BuildID是2024年9月之后的版本
# 解决方案
目的:待办列表toolbar按钮提供二次开发能力
步骤仅需两部:1.按需动态注入js 2.js逻辑注册按钮schema信息
- 按需加载js代码
首先创建资源负载类并继承抽象接口AbstractCollaborationPlugin
,通过实现方法loadPluginResource(PluginResourceLocation locationParam);
完成js/css的按需加载。
AbstractCollaborationPlugin
:
public interface CollaborationPlugin {
/**
* 加载资源文件
*
* @param locationParam 对应页面参数{@link com.seeyon.ctp.plugins.resources.PluginResourceScope}
*
*
* @author : muj
*
* @date : 2019年6月6日
*
* @since: A8-V5 7.1SP1
*/
public List<PluginResource> loadPluginResource(PluginResourceLocation locationParam);
}
PluginResourceLocation对象属性介绍:
属性 | 类型 | 解释 |
---|---|---|
location | PluginResourceScopes | 页面标记: COLL_PC_LIST_PENDING - 协同待办列表 |
PluginResource返回值对象,有两个实现类介绍:
JavascriptResource - js
资源类型
CssResource - css
资源类型
属性 | 类型 | 解释 |
---|---|---|
path | String | 资源的加载路径例如:/extend/action/example.js ,前端会统一将路径替换为真实服务器路径,如/seeyon/extend/action/example.js |
getType | PluginResourceType | 若是js资源则用PluginResourceType,css资源用CssResource |
- 按需加载js代码逻辑编写
通过调用挂载在window上的registerComp
注册按钮信息,调用一次待办注册一个按钮,如下:
(function (){
//注册组件 extend-pending-toolbar 扩展按钮
window.registerComp('extend-pending-toolbar',{
eventId:'handleExtend',
icon:'vportal vp-videoconferencing',//使用的图标
subject:'高拍仪/高扫仪',// 名称
click:function (selectData){
if(window.confirm('执行了客开方法')){
alert("选择了"+selectData.length+"条数据")
}
},
})
})();
参数说明:
属性 | 作用 |
---|---|
registerComp | 注册二次开发组件方法,第一个参数是注册组件id其中extend-pending-toolbar 代表待办列表的toolbar扩展第二个参为注册是schema信息,指明按钮的具体名称、点击函数等 |
eventId | 按钮的id,多次注册需要保证唯一性 |
icon | 按钮图标(未实现) |
subject | 按钮的名称 |
click | 按钮点击后回调执行方法,selectData为列表页面选择的数据列 |
创建人:het