1、问题描述
费用报销单打开发票助手上传发票后,点击”发票导入单据“后,页面卡住不动,如下图。
2、问题分析
出现该现象是因为打开单据,页面加载时没有和发票云成功建立socket连接,导致用户点击“发票导入单据”后页面没有监听到事件,所以一直停留在此页面,无法进行构建发票信息逻辑处理。
3、前端socket建立连接过程
a、单据加载时,在fieldOnLoadAfter方法加载调用websocket_eas#createWS函数获取创建socket连接的pwy-socketio-v2.js文件。
b、建立socket连接
在pwySocketIo函数初始化变量并在init函数建立socket连接
发票云根地址,用于发票云请求接口的根url。
发票云socket连接地址,用于eas和发票云建立socket连接。
4、遇到过的问题原因以及解决方法
a、环境连错了,eas测试环境连上了发票云正式环境或者eas的正式环境连上了发票云的测试环境,到环境eas\Server\server\properties目录下,检查发票配置文件cpbc_invoice_config.xml,env节点的配置。prod代表正式环境,test代表测试环境,如果发现不对修改完配置文件后重启服务再试下导票。
b、客户端和服务端中间存在代理,例如nginx
代理服务器配置,参考https://www.yuque.com/piaozone/implement/he969n?
配置完之后,修改环境\eas\Server\server\deploy\easweb.ear\eas_web.war\webviews\cp\bc\js目录下的websocket_eas.js,把链接改为代理的域名和端口号覆盖原js文件,然后在线打包下js文件,再试下导票。
c、可能存在二开,在导票回调后onMessage进行二开逻辑处理出现报错,导致发票助手页面无法正常关闭。
推荐阅读