/** * Created by zhangweicheng on 2017/8/7. */ socketObject={ roomInfo : null, messages:[], connect:function (from) { // 连接socket服务器 var hostName = window.location.hostname; let me = this; let port = window.location.protocol ==='http:'?3300:3301; socket = io(window.location.protocol+'//'+hostName+':'+port); socket.on('connect', function () { if(from == 'pm'){ me.roomInfo={ userID:userID }; }else { me.roomInfo={ feeRate:me.getFeeRateRoomID(), unitFile:me.getUnitFileRoomID() }; } socket.emit('join', me.roomInfo); if(me.messages.length > 0){//发送缓存消息; for(let m of me.messages){ socket.emit(m.message, m.data); } } console.log('连接成功'); }); //========================================================= //造价书页面接收消息部分 socket.on('feeRateChange', function(data) { //data = JSON.parse(data); $("#message").html('费率文件已被修改,点击加载并重新进行造价计算'); $("#notify").show(); //alert('费率文件已经修改,请刷新页面'); //window.location.reload(); }); socket.on('unitFileChange', function (data) { data = JSON.parse(data); /*console.log(data); if (data.newValue === undefined) { return false; }*/ $("#message").html('市场单价已被修改,点击加载并重新进行造价计算'); $("#notify").show(); }); socket.on('changeFileNotify', function (data) {//收到文件改变的消息 if(data.projectID==projectObj.project.ID()){//如果是同个项目,则给出提示,否则忽略 let preString =""; if(data.name=='feeRate'){ preString = "费率文件"; } if(data.name=='unitFile'){ preString = "单价文件"; } $("#message").html(preString+'已被修改,点击加载并重新进行造价计算'); $("#notify").show(); } }); //============================================================================================= //项目管理页面接收消息部分 socket.on('refreshProjectIcon', function (data) {//收到刷新图标消息 if(data.projectID && typeof projTreeObj !== 'undefined') projTreeObj.refreshProjectIcon(data.projectID); }); socket.on('fileDataChange', function (data) {//收到单价文件、费率文件内容修改、文件切换、另存(暂时能共用,以后有需要可分离)推送消息 if(data.projectID && typeof projTreeObj !== 'undefined') projTreeObj.refreshWhenFileDateChange(data.projectID); }); }, getFeeRateRoomID:function (){ return projectObj.project.FeeRate.getActivateFeeRateFileID(); }, getUnitFileRoomID:function () { return projectObj.project.projectGLJ.datas.constData.roomId?projectObj.project.projectGLJ.datas.constData.roomId:roomId; } }