# 数科H5签章技术说明文档
# 1.说明
H5签章主要用于自由协同标准正文、CAP4表单、CAP3表单、和公文文单中进行专业签章的盖章,效果如图。
以CAP4表单为例:
# 2.相关文档
数科对接文档: 【金山文档 | WPS云文档】 数科HTML5签章 https://kdocs.cn/l/cdNw87UPf30f提供了和数科对接的前后端接口信息。
# 3.对接交互
# 4.关键代码
文单签章代码原来在apps-common ,V9.0SP1迁移到apps-office-plugins-front工程。
前端代码工程:apps-office-plugins-front
后端代码工程:apps-office-plugins
# 4.1 前端代码
apps-office-plugins-front\desktop-front\src\isignaturehtml\js\isignaturehtml.js
改造前是用的金格控件,相关操作都是在这个js中,目前对接数科也是在这个js中。业务引入的js和调用方法不变。
# 4.1.1 数科H5插件
定义了一个闭包对象,用来和数科对接。数科的插件代码, **PC端:**可以在isignaturehtml.js文件内部,搜索“数科插件”,标记start 到end区间代码为数科代码(数科有修改则替换这一部分)。
**移动端:**对应mplus-front工程中m3iSignature-debug.js文件,其中数科插件代码为shuke-html-signature.js文件
# 4.1.2 定义方法
定义了一个方法为SuWellH5Signature
var SuWellH5Signature={
...
}
内部属性:
sealWebPlugins 数科H5插件对象,数科的方法都是通过这个对象来操作
options 定义的文单签章相关参数
# 4.1.3 初始签章
(1)业务进入页面需要加载印章。原有的金格业务不变增加数科新的逻辑。可参考已有逻辑
//数科签章初始化
var suwellOptions = {
documentId: documentId,
menuDeleteSign: isShowDeleteSign(),
data: null,
domId: signaturePosition
};
SuWellH5Signature.init(suwellOptions);
1、init方法先发送oa请求获取当前数据的印章信息。然后调用数科H5插件渲染印章
(2)初始数科H5插件和菜单权限。
var config = {
sealDomId: this.options.domId,
autoX: 0,//相对于定位元素偏移量
autoY: 0,
isMove: true,// 盖上之后是否默认支持拖动
allMove: true,// 全局是否支持拖动
isDeleteSeal: this.options.menuDeleteSign,//是否有删除按钮
InterfaceManagement: "childPage",
requestUrl: this.webRoot + "/rest",//定义oa请求地址前缀
watchDeleteSeal: function (item, list) {
_this.count = list.length;
}
};
this.sealWebPlugins.setMenuList(config);
(3)渲染已经存在的印章
1、调用oa接口: "/rest/elsh5sign/h5sign/selectSignList",获取盖章记录
2、调用数科H5插件渲染:this.sealWebPlugins.renderingSeal //渲染印章
# 4.1.4 盖章弹框
SuWellH5Signature.sign可以打开数科盖章弹框
SuWellH5Signature.sign({documentId:h5DocumentId,data:newdata});
在sign中调用数科的
this.sealWebPlugins.sealDialog({...})打开数科弹框,参数见数科文档。
# 4.2 后端代码
参照文档开头数科提供的接口文档 SuwellH5SignResource.java
# 4.2.1 中转数科请求
数科H5插件和数科签章服务对接中转接口。该接口是为数科H5插件中发起请求数科签章服务的请求,参数和返回值oa不做关注,只做转发处理。
接口 POST: /rest/elsh5sign/h5sign
# 4.2.2 获取签章记录
oa保存数科盖章的信息后,下次打开需要加载出印章信息。
接口 GET: /rest/elsh5sign/h5sign
# 4.2.3 增加盖章记录
oa保存数科盖章的信息后。
接口 POST: /rest/elsh5sign/addSign
创建人:liangyd
修改人:het、liangyd