Пример #1
0
 "_createItem": function(item,serviceTime,feeds) {
     var htmlStr,
         itemEl,
         feedData;
     var elEl = this.element,
         listEl = $('.fs-worktodo-list-inner', elEl);
     htmlStr = worktodoItemCompiled({
         "workToDoListID":item.workToDoListID,
         "feedID": item.feedID,
         "isCompleted": item.isCompleted,
         "isImportant": item.isImportant,
         "title": item.title.replace(/\n/g,'<br/>'),
         "createTime": util.getDateSummaryDesc(moment.unix(item.createTime),moment.unix(serviceTime), 1),
         "isBelongToMe":loginUserData.id==item.creatorID?true:false,    //是否属于自己创建的待办
         "creatorID":item.creatorID,
         "creatorName":item.creatorName
     });
     itemEl = $(htmlStr);
     feedData= _.find(feeds,function(itemData){
         return itemData.feedID==item.feedID;
     });
     item.feed=feedData;
     itemEl.data('store', item).appendTo(listEl);
     if (feedData) {
         this._createFeedV(itemEl,serviceTime);
     }
     
     return itemEl;
 },
Пример #2
0
				_.each(locations, function(item, n) {
					var slocation = item.country + item.province + item.city + item.district + item.street + item.streetNumber;
					var createTime = util.getDateSummaryDesc(moment.unix(item.createTime), moment.unix(responseData.serviceTime), 2); //时间
					var listNum = n + 1;
					var slocation = slocation;
                    newItems.push(_.extend({},item,{
                        "createTime":createTime,
                        "listNum":listNum,
                        "slocation":slocation
                    }));
				});
Пример #3
0
 "renderArchiveBar": function(archiveData, itemData) {
     var archive = archiveData;
     var htmlStr = "";
     var archiveTime, fmarchiveTime, archiveTag, archiveRemindHtml;
     if (!archive) {
         htmlStr = "";
     } else {
         archiveTime = archive.archiveTime;
         //fmarchiveTime = moment.unix(archiveTime).from(moment.unix(itemData.serviceTime));
         fmarchiveTime = util.getDateSummaryDesc(moment.unix(archiveTime), moment.unix(itemData.serviceTime), 1);
         archiveTag = "";
         _.each(archive.tags, function(archivetag) {
             archiveTag += '<span class="ar-tip"><a href="javascript:void(0);">' + archivetag.tagName + '</a></span>';
         });
         archiveRemindHtml = '<div class="archive-remind"><span class="ar-time">归档于:' + fmarchiveTime + '</span><span class="ar-tit">标签:</span>' + archiveTag + '<span class="ar-modfiy"><a href="javascript:void(0);">修改</a></span></div>';
         htmlStr = archiveRemindHtml;
     }
     return htmlStr;
 }
Пример #4
0
 "tipTpl":function(itemData){
     var address=that._addressHelper(itemData);
     return '<h3 style="margin-bottom: 15px;">'+address+'</h3><p style="color:#999999;">'+util.getDateSummaryDesc(moment.unix(itemData.createTime),new Date(),2)+'</p>';
 }
Пример #5
0
                    _.each(items, function (item, index) {

                        feedid = item.feedReplyID;
                        senderName = item.sender.name;
                        employeeID = item.sender.employeeID;
                        profileImage = item.sender.profileImage;
                        ctime = util.getDateSummaryDesc(moment.unix(item.createTime), moment.unix(responseData.serviceTime), 1);
                        // feedText = pinLink(item.replyContent, item);
                        //判断回复人是不是自己
                        if (employeeID == currentUserData.employeeID) {
                            senderName = '我';
                        } else {
                            senderName = item.sender.name;
                        }
                        /* 正文格式化 */
                        var feedFormatContent = formatFeedContent(300, item);
                        var feedFormatContentOpenBtn = '';
                        var contentEllipsis = '';
                        var feedTextAll = feedFormatContent.leftHtml; //没截取过的正文
                        feedText = feedFormatContent.summaryHtml; //截取过的正文
                        //添加展开收起按钮
                        if (feedTextAll.length > 0) {
                            contentEllipsis = '<span class="feed-content-lefthtml hide">' + feedTextAll + '</span><span class="feed-content-ellipsis">&#8230;</span>';
                            feedFormatContentOpenBtn = '<br/><br/><a href="javascript:;" class="feed-reply-content-visible-h" feedwordnum="' + feedFormatContent.feedWordNum + '"> 展开正文(共' + feedFormatContent.feedWordNum + '个字)</a>';
                        }

                        /* 来自哪里 */
                        if (item.source != 1) {
                            sourceDescription = ',来自' + item.sourceDescription;
                        }
                        /* 操作类型 */
                        switch (data.feedType) {
                            case 1: //分享
                                operationTypeStr = '';
                                break;
                            case 2: //日志
                                if (util.getPlanOperationType(item.operationType)) {
                                    operationTypeStr = ',' + util.getPlanOperationType(item.operationType);
                                } else {
                                    operationTypeStr = '';
                                }
                                break;
                            case 3: //指令
                                if (util.getWorkOperationTypeName(item.operationType)) {
                                    operationTypeStr = ',' + util.getWorkOperationTypeName(item.operationType);
                                } else {
                                    operationTypeStr = '';
                                }
                                break;
                            case 4: //审批
                                if (util.getApproveOperationTypeName(item.operationType)) {
                                    operationTypeStr = ',' + util.getApproveOperationTypeName(item.operationType);
                                } else {
                                    operationTypeStr = '';
                                }
                                break;
                            default:
                                operationTypeStr = '';
                                break;
                        }
                        feedreplylistStr += '<div class="fs-reply-list-wrapper fn-clear preview-reply-list-item"><div class="reply-item fs-list-item"> <div class="item-face"> <a href="#profile/=/empid-' + employeeID + '"> <img src="' + util.getAvatarLink(profileImage, '3') + '" alt=""></a> </div> <div class="item-detail" feedid="' + feedid + '" employeeid="' + employeeID + '"> <div class="item-info"> <div> <a href="#profile/=/empid-' + employeeID + '" class="aj-senderName" name="' + item.sender.name + '">' + senderName + '</a>:<span class="feed-summary-text">' + feedText + '</span>' + contentEllipsis + '(' + ctime + operationTypeStr + sourceDescription + ')' + feedFormatContentOpenBtn + '</div></div> <div class="item-func myreply preview-feed"> <div class="handle"> <a href="javascript:void(0);" class="aj-replysubmit-sub">回复</a> </div> </div> </div> </div></div>';

                    });
Пример #6
0
                formatMessageData = function (msg, sessionData, tmpls) {
                    var content = msg.content,
                        messageTypes = constants.messageType,
                        httpReg = constants.httpReg,
                        o = {
                            typeName: '',
                            senderId: msg.senderId,
                            senderName: msg.senderName,
                            messageId: msg.messageId,
                            messageTime: msg.messageTime,
                            profileImage: msg.profileImage,
                            createTime: util.getDateSummaryDesc(moment.unix(msg.messageTime / 1000), moment.unix(msg.serviceTime), 1)
                        };

                    for (var i in messageTypes) {
                        if (messageTypes.hasOwnProperty(i) && messageTypes[i] == msg.messageType) {
                            o.typeName = i;
                        }
                    }
                    if (!content) return;
                    switch (msg.messageType) {
                        case messageTypes.image:
                            content = json.parse(content);
                            content.FileSize = util.getFileSize(content.FileSize);
                            content.ThumbnailUrl = util.getFileUrl(content.Thumbnail);
                            content.fileName = content.N;
                            _.extend(o, content);
                            break;
                        case messageTypes.document:
                            content = json.parse(content);
                            content.Size = util.getFileSize(content.Size);
                            content.FileType = util.getFileType({"name": content.File}, true);
                            content.DownloadUrl = util.getFileUrl(content.File, true, content.Name);
                            _.extend(o, content);
                            break;
                        case messageTypes.audio:
                            content = json.parse(content);
                            content.File = util.getFileUrl(content.File);
                            _.extend(o, content);
                            break;
                        case messageTypes.location:
                            content = json.parse(content);
                            content.messageTime = parseInt(o.messageTime / 1000, 10);
                            _.extend(o, content);
                            break;
                        case messageTypes.workNotice: // 工作提醒
                            content = json.parse(content);
                            _.extend(o, {
                                "title": content.T,
                                "desc": content.C,
                                "feedid": content.F
                            });
                            break;
                        case messageTypes.systemPrompt:
                            content = json.parse(content);
                            var systemPrompt = constants.systemPrompt,
                                t = content.T,
                                u = content.U,
                                _html = [], _s = '';
                            switch (t) {
                                case systemPrompt.exit:
                                    _s = '退出群对话';
                                    break;
                                case systemPrompt.invite:
                                    _s = '邀请';
                                    _.each(content.A, function (id) {
                                        var _n;
                                        if(id == loginUserData.id){
                                            _n = '你';
                                        }
                                        else {
                                            var _e = util.getContactDataById(id, "p");
                                            if(_e){
                                                _n = _e.name;
                                            }
                                        }
                                        if(_n){
                                            _html.push(_n);
                                        }
                                    });
                                    _s += _html.join("、") + "加入群对话";
                                    break;
                                case systemPrompt.kick:
                                    _s = '将';
                                    _.each(content.A, function (id) {
                                        var _n;
                                        if(id == loginUserData.id){
                                            _n = '你';
                                        }
                                        else {
                                            var _e = util.getContactDataById(id, "p");
                                            if(_e){
                                                _n = _e.name;
                                            }
                                        }
                                        if(_n){
                                            _html.push(_n);
                                        }
                                    });
                                    _s += _html.join("、") + "移出群对话";
                                    break;
                                case systemPrompt.name:
                                    if (content.V) {
                                        _s = "将群对话的名称修改为:" + content.V;
                                    }
                                    else {
                                        _s = "取消了群对话名称";
                                    }
                                    break;
                            }
                            o.content = _s;
                            break;
                        case messageTypes.text:
                        default:
                            content = content.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/[\n\r]/g, '<br/>').replace(new RegExp(' ', 'g'), '&nbsp;');
                            content = content.replace(httpReg, function (httpText) {
                                var protocolReg = /https{0,1}|ftp/gi;
                                return '<a href="' + (protocolReg.test(httpText) ? '' : 'http://') + httpText + '" target="_blank">' + httpText + '</a>';
                            });
                            content = util.emoji(content);
                            o.content = content;
                    }
                    if (tmpls) {
                        return tmpls[o.typeName](o);
                    }
                    return o;
                },
Пример #7
0
        getMessageHtml = function (tmpl, msg) {
            var content = msg.content,
                messageTypes = constants.messageType,
                httpReg = new RegExp("(http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&amp;*+?:_/=<>]*)?|www\\.[a-z0-9\\-]+(\\.[a-zA-Z]{2,4}){1,2}(:\\d+)?/?", "gi"), //用于判断文本内容超链接
                o = {
                    typeName: '',
                    senderId: msg.senderId,
                    senderName: msg.senderName,
                    messageId: msg.messageId,
                    messageTime: msg.messageTime,
                    profileImage: msg.profileImage,
                    createTime: util.getDateSummaryDesc(moment.unix(msg.messageTime/1000), moment.unix(msg.serviceTime), 1)
                };

            for (var i in messageTypes) {
                if (messageTypes.hasOwnProperty(i) && messageTypes[i] == msg.messageType) {
                    o.typeName = i;
                }
            }
            if(!content) return ;
            switch (msg.messageType) {
                case messageTypes.emotion://大表情
                    var objContent = json.parse(content);//转换为JSON对象
                    var directoryStr=objContent.PackId+'/';
                    var imgNameStr='fs_bee_'+(objContent.Index-1)+'.gif';
                    var imgStr='<img class="fs-img-emotion" src="'+FS.ASSETS_PATH+'/images/'+directoryStr+imgNameStr+'">';
                    o.content = imgStr;
                    break;
                case messageTypes.image:
                    content = json.parse(content);
                    content.FileSize = util.getFileSize(content.FileSize);
                    content.ThumbnailUrl = util.getFileUrl(content.Thumbnail);
                    content.fileName = content.N;
                    _.extend(o, content);
                    break;
                case messageTypes.document:
                    content = json.parse(content);
                    content.Size = util.getFileSize(content.Size);
                    content.FileType =  util.getFileType({"name": content.File}, true);
                    content.DownloadUrl = util.getFileUrl(content.File, content.Name, true);
                    _.extend(o, content);
                    break;
                case messageTypes.audio:
                    content = json.parse(content);
                    content.File = getMp3Url(content.File);
                    _.extend(o, content);
                    break;
                case messageTypes.location:
                    content = json.parse(content);
                    content.messageTime = parseInt(o.messageTime/1000, 10);
                    _.extend(o, content);
                    break;
                case messageTypes.workNotice: // 工作提醒
                    content = json.parse(content);
                    _.extend(o, {
                        "title": content.T,
                        "desc": content.C,
                        "feedid": content.F
                    });
                    break;
                case messageTypes.linkWorkItem: // 链接到工作项
                    content = json.parse(content);
                    var title = {
                        'P1': '日志',
                        'P2': '周计划',
                        'P3': '月计划',
                        'A1': '普通审批',
                        'A2': '请假单',
                        'A3': '报销单',
                        'A4': '差旅单',
                        'A5': '借款单',
                        'W': '指令'
                    };
                    var _t = '';
                    if(content.T == 'W'){
                        _t = title['W'];
                    }
                    else {
                        if(content.T == 'P' && content.ST == 1){
                            _t = moment(content.D).format('MM月DD日的日志');
                        }
                        else {
                            _t = title[content.T + content.ST];
                        }
                    }
                    _.extend(o, {
                        "title": _t,
                        "desc": content.C,
                        "feedid": content.F
                    });
                    break;
                case messageTypes.linkWorkSchdule: // 链接到日程
                    content = json.parse(content);
                    _.extend(o, {
                        "title": moment(content.ST).format('MM月DD日 HH:mm的日程'),
                        "desc": content.C,
                        "feedid": content.F
                    });
                    break;
                case messageTypes.systemPrompt:
                    content = json.parse(content);
                    var systemPrompt = constants.systemPrompt,
                        t = content.T,
                        u = content.U,
                        _html = [], _s = '';
                    switch (t) {
                        case systemPrompt.exit:
                            _s = '退出群对话';
                            break;
                        case systemPrompt.invite:
                            _s = '邀请';
                            _.each(content.A, function (id) {
                                if(id == u) return ;
                                var _n;
                                if(id == currentUserData.id){
                                    _n = '你';
                                }
                                else {
                                    var _e = util.getContactDataById(id, "p");
                                    if(_e){
                                        _n = _e.name;
                                    }
                                }
                                if(_n){
                                    _html.push(_n);
                                }
                            });
                            _s += _html.join("、") + "加入群对话";
                            break;
                        case systemPrompt.kick:
                            _s = '将';
                            _.each(content.A, function (id) {
                                if(id == u) return ;
                                var _n;
                                if(id == currentUserData.id){
                                    _n = '你';
                                }
                                else {
                                    var _e = util.getContactDataById(id, "p");
                                    if(_e){
                                        _n = _e.name;
                                    }
                                }
                                if(_n){
                                    _html.push(_n);
                                }
                            });
                            _s += _html.join("、") + "移出群对话";
                            break;
                        case systemPrompt.name:
                            if(content.V){
                                _s = "将群对话的名称修改为:" + content.V;
                            }
                            else {
                                _s = "取消了群对话名称";
                            }
                            break;
                    }
                    o.content = _s;
                    break;
                case messageTypes.systemTextPrompt: // 纯文本型系统提示
                    o.content = content;
                    break;
                case messageTypes.text:
                default:
                    content = content.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/[\n\r]/g, '<br/>').replace(new RegExp(' ', 'g'), '&nbsp;');
                    content = content.replace(httpReg, function (httpText) {
                        var protocolReg = /https{0,1}|ftp/gi;
                        return '<a href="' + (protocolReg.test(httpText) ? '' : 'http://') + httpText + '" target="_blank">' + httpText + '</a>';
                    });
                    content = util.emoji(content);
                    o.content = content;
            }
            return tmpl[o.typeName](o);
        };
Пример #8
0
                _.each(items, function (item) {
                    var sessionType = item.sessionCategory,
                        lastMessage = item.lastMessage;
                    if(sessionType != constants.sessionType.single && sessionType != constants.sessionType.discussion
                        || !lastMessage){
                        return ;
                    }
                    var lastContent = lastMessage.content,
                        senderId = lastMessage.senderId,
                        messageType = lastMessage.messageType;
                    var o = {
                            sessionId: item.sessionId,
                            sessionName: item.sessionName,
                            sessionType: sessionType,
                            lastMessageTime: lastMessage.messageTime,
                            lastCreateTime: util.getDateSummaryDesc(moment.unix(parseInt(lastMessage.messageTime/1000, 10)), moment.unix(responseData.serviceTime), 1)
                        };
                    if (!senderId ) {
                        if(messageType == constantsMessageType.systemPrompt){
                            senderId = json.parse(lastContent).U;
                        }
                        else {
                            return ;
                        }
                    }
                    var sender = lastMessage.sender;

                    if(sessionType == constants.sessionType.discussion){
                        o.profileImageUrl = item.portraitPath ? util.getFileUrl(item.portraitPath) : FS.ASSETS_PATH + '/images/group_default_50x50.png';
                        if(!o.sessionName){
                            var t = [];
                            _.each(item.participantIds, function (i) {
                                if(i == currentUserData.id) {
                                    return ;
                                }
                                var _e = util.getContactDataById(i, 'p');
                                if(_e){
                                    t.push(_e.name);
                                }
                            });
                            o.sessionName = t.join('、');
                        }
                        if(!o.sessionName){
                            o.sessionName = '群对话';
                        }
                    }
                    else {
                        o.profileImageUrl = sender ? util.getAvatarLink(sender.profileImage, 2) : FS.ASSETS_PATH+'/images/employee_default_120_120.png';
                    }
                    o.name = senderId == currentUserData.employeeID ? '我' : sender.name;

                    /* 是否显示“新”图标 */
                    if (item.notReadFlag) {
                        o.newico = '<div class="img-new"></div>';
                    } else {
                        o.newico = '';
                    }
                    o.content = getMessageHtml(messageTpl, {
                        content: lastContent,
                        messageType: messageType,
                        senderId: senderId,
                        senderName: o.name,
                        messageId: lastMessage.messageId,
                        messageTime: lastMessage.messageTime
                    });
                    r.push(o);
                });