connection.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /**
  2. * Created by zhangweicheng on 2017/8/7.
  3. */
  4. socketObject={
  5. roomInfo : null,
  6. messages:[],
  7. connect:function (from) {
  8. // 连接socket服务器
  9. var hostName = window.location.hostname;
  10. let me = this;
  11. let port = window.location.protocol ==='http:'?3300:3301;
  12. socket = io(window.location.protocol+'//'+hostName+':'+port);
  13. socket.on('connect', function () {
  14. if(from == 'pm'){
  15. me.roomInfo={
  16. userID:userID
  17. };
  18. }else if(from == 'unitPrice'){
  19. me.roomInfo = {
  20. unitFile:unitPriceFileID
  21. }
  22. }else {
  23. me.roomInfo={
  24. feeRate:me.getFeeRateRoomID(),
  25. unitFile:me.getUnitFileRoomID()
  26. };
  27. }
  28. socket.emit('join', me.roomInfo);
  29. if(me.messages.length > 0){//发送缓存消息;
  30. for(let m of me.messages){
  31. socket.emit(m.message, m.data);
  32. }
  33. }
  34. console.log('连接成功');
  35. });
  36. //=========================================================
  37. //造价书页面接收消息部分
  38. socket.on('feeRateChange', function(data) {
  39. //data = JSON.parse(data);
  40. $("#message").html('费率文件已被修改,<a href="javascript:void(0);" id="load-data" onclick="window.location.reload()">点击加载并重新进行造价计算</a>');
  41. $("#notify").show();
  42. //alert('费率文件已经修改,请刷新页面');
  43. //window.location.reload();
  44. });
  45. socket.on('unitFileChange', function (data) {
  46. /*console.log(data);
  47. if (data.newValue === undefined) {
  48. return false;
  49. }*/
  50. $("#message").html('市场单价已被修改,<a href="javascript:void(0);" id="load-data" onclick="window.location.reload()">点击加载并重新进行造价计算</a>');
  51. $("#notify").show();
  52. });
  53. socket.on('changeFileNotify', function (data) {//收到文件改变的消息
  54. if(data.projectID==projectObj.project.ID()){//如果是同个项目,则给出提示,否则忽略
  55. let preString ="";
  56. if(data.name=='feeRate'){
  57. preString = "费率文件";
  58. }
  59. if(data.name=='unitFile'){
  60. preString = "单价文件";
  61. }
  62. $("#message").html(preString+'已被修改,<a href="javascript:void(0);" id="load-data" onclick="window.location.reload()">点击加载并重新进行造价计算</a>');
  63. $("#notify").show();
  64. }
  65. });
  66. //=============================================================================================
  67. //项目管理页面接收消息部分
  68. socket.on('refreshProjectIcon', function (data) {//收到刷新图标消息
  69. if(data.projectID && typeof projTreeObj !== 'undefined') projTreeObj.refreshProjectIcon(data.projectID);
  70. });
  71. socket.on('fileDataChange', function (data) {//收到单价文件、费率文件内容修改、文件切换、另存(暂时能共用,以后有需要可分离)推送消息
  72. if(data.projectID && typeof projTreeObj !== 'undefined') projTreeObj.refreshWhenFileDateChange(data.projectID);
  73. });
  74. },
  75. getFeeRateRoomID:function (){
  76. return projectObj.project.FeeRate.getActivateFeeRateFileID();
  77. },
  78. getUnitFileRoomID:function () {
  79. return projectObj.project.projectGLJ.datas.constData.roomId?projectObj.project.projectGLJ.datas.constData.roomId:roomId;
  80. }
  81. }