/** * Created by zhangweicheng on 2017/8/7. */ socketObject = { roomInfo: null, messages: [], connect: function (from, payload) { // 连接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 = { compilationUser: `${userID}@${compilationData._id}`, userID: userID }; } else if (from == 'unitPrice') { me.roomInfo = { unitFile: unitPriceFileID } } else { me.roomInfo = { feeRate: me.getFeeRateRoomID(), unitFile: me.getUnitFileRoomID(), userIDProjectID: `${userID}@${projectObj.project.ID()}` }; if (payload && payload.projectReadOnly === false) { me.roomInfo.projectID = `projectID${projectObj.project.ID()}`; } } const emitData = { roomData: me.roomInfo, payload }; socket.emit('join', emitData); if (me.messages.length > 0) {//发送缓存消息; for (let m of me.messages) { socket.emit(m.message, m.data); } } if (typeof markReadProjectIDs !== 'undefined' && markReadProjectIDs.length) { SHARE_TO.emitPermissionChange(commonConstants.SharePermissionChangeType.READ, userID, null, [], { markReadProjectIDs }); } console.log('连接成功'); }); //========================================================= //造价书页面接收消息部分 socket.on('feeRateChange', function (data) { //data = JSON.parse(data); $("#message").html('费率文件已被修改,点击加载并重新进行造价计算'); $("#notify").show(); //alert('费率文件已经修改,请刷新页面'); //window.location.reload(); }); socket.on('unitFileChange', function (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('handleAvatarList', function ({ editingUsers }) { projectInfoObj.handleAvatarList(editingUsers); }); if(typeof SHARE_TO !== 'undefined') SHARE_TO.permissionChangeListener(); //============================================================================================= //项目管理页面接收消息部分 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); }); // 项目管理树数据发生变化,提示刷新 socket.on('pmTreeChange', function ({ expandState, selection }) { const isActive = $('#tab_pm_all').hasClass('active'); if (isActive) { $("#message").html(`树结构发生变化,请点击刷新列表`); $('#load-data').on('click', () => projTreeObj.handleNotifyClick(expandState, selection)); $('#notify > button').hide(); $('#empty-modal').modal('show'); $("#notify").show(); } }); }, getFeeRateRoomID: function () { return projectObj.project.FeeRate.getActivateFeeRateFileID(); }, getUnitFileRoomID: function () { return projectObj.project.projectGLJ.datas.constData.roomId ? projectObj.project.projectGLJ.datas.constData.roomId : roomId; } }