friend_pendency_manager.js 6.15 KB
//定义我的好友申请表格每行按钮
function gpOperateFormatter(value, row, index) {
    return [
        '<a class="edit" href="javascript:void(0)" title="处理">',
        '<i class="glyphicon glyphicon-edit"></i>',
        '</a>',
        '<a class="remove ml10" href="javascript:void(0)" title="删除">',
        '<i class="glyphicon glyphicon-remove"></i>',
        '</a>'

    ].join('');
}
//我的好友申请表格每行的按钮点击事件
window.gpOperateEvents = {
    'click .edit': function (e, value, row, index) {

        $("#rf_to_account").val(row.To_Account);
        $('#response_friend_dialog').modal('show');

    },
    'click .remove': function (e, value, row, index) {
        if (confirm("确定删除这条记录吗?")) {
            deletePendency(row.To_Account);
        }

    }
};
//初始化我的好友申请表格
function initGetPendencyTable(data) {
    $('#get_pendency_table').bootstrapTable({
        method: 'get',
        cache: false,
        height: 500,
        striped: true,
        pagination: true,
        pageSize: pageSize,
        pageNumber: 1,
        pageList: [10, 20, 50, 100],
        search: true,
        showColumns: true,
        clickToSelect: true,
        columns: [
            {field: "To_Account", title: "对方账号", align: "center", valign: "middle", sortable: "true", visible: false},
            {field: "Nick", title: "对方昵称", align: "center", valign: "middle", sortable: "true"},
            {field: "AddWording", title: "附言", align: "center", valign: "middle", sortable: "true"},
            {field: "AddSource", title: "来源", align: "center", valign: "middle", sortable: "true", visible: false},
            {field: "AddTime", title: "申请时间", align: "center", valign: "middle", sortable: "true"},
            {
                field: "gpOperate",
                title: "操作",
                align: "center",
                valign: "middle",
                formatter: "gpOperateFormatter",
                events: "gpOperateEvents"
            }
        ],
        data: data,
        formatNoMatches: function () {
            return '无符合条件的记录';
        }
    });
}
//读取好友申请列表
//notifyFlag: true表示来自好友系统通知触发,false表示用户主动点击【获取好友申请】菜单
var getPendency = function (notifyFlag) {
    initGetPendencyTable([]);
    var options = {
        //请求发起方的帐号,一般情况下为用户本人帐号,在管理员代替用户发起请求的情况下,这里应该填写被代替的用户的帐号
        'From_Account': loginInfo.identifier,
        //Pendency_Type_ComeIn: 别人发给我的; Pendency_Type_SendOut: 我发给别人的
        'PendencyType': 'Pendency_Type_ComeIn',
        //好友申请的起始时间
        'StartTime': 0,
        //分页大小,如果取值为30 则表示客户端要求服务器端每页最多返回30个好友申请
        'MaxLimited': totalCount,
        //好友申请数据的版本号,用户每收到或删除一条好友申请,服务器端就自增一次好友申请数据版本号,一般传0,表示拉取最新的数据
        'LastSequence': 0
    };

    webim.getPendency(
        options,
        function (resp) {
            var data = [];
            if (resp.UnreadPendencyCount > 0) {//存在未读未决
                for (var i in resp.PendencyItem) {
                    var apply_time = webim.Tool.formatTimeStamp(resp.PendencyItem[i].AddTime);
                    var nick = webim.Tool.formatText2Html(resp.PendencyItem[i].Nick);
                    if (nick == '') {
                        nick = resp.PendencyItem[i].To_Account;
                    }
                    var addWording = webim.Tool.formatText2Html(resp.PendencyItem[i].AddWording);
                    data.push({
                        To_Account: webim.Tool.formatText2Html(resp.PendencyItem[i].To_Account),
                        Nick: nick,
                        AddWording: addWording,
                        AddSource: resp.PendencyItem[i].AddSource,
                        AddTime: apply_time
                    });
                }
                $('#get_pendency_table').bootstrapTable('load', data);
                $('#get_pendency_dialog').modal('show');
            } else {
                if (!notifyFlag) {
                    alert('没有加好友申请');
                }
            }

        },
        function (err) {
            alert(err.ErrorInfo);
        }
    );
};

//删除申请列表
var deletePendency = function (del_account) {

    var options = {
        'From_Account': loginInfo.identifier,
        'PendencyType': 'Pendency_Type_ComeIn',
        'To_Account': [del_account]

    };

    webim.deletePendency(
        options,
        function (resp) {

            //在表格中删除对应的行
            $('#get_pendency_table').bootstrapTable('remove', {
                field: 'To_Account',
                values: [del_account]
            });
            alert('删除好友申请成功');
        },
        function (err) {
            alert(err.ErrorInfo);
        }
    );
};
//处理好友申请
var responseFriend = function () {

    var response_friend_item = [
        {
            'To_Account': $("#rf_to_account").val(),
            "ResponseAction": $('input[name="rf_action_radio"]:checked').val()//类型:Response_Action_Agree 或者 Response_Action_AgreeAndAdd
        }
    ];
    var options = {
        'From_Account': loginInfo.identifier,
        'ResponseFriendItem': response_friend_item
    };

    webim.responseFriend(
        options,
        function (resp) {
            //在表格中删除对应的行
            $('#get_pendency_table').bootstrapTable('remove', {
                field: 'To_Account',
                values: [$("#rf_to_account").val()]
            });
            $('#response_friend_dialog').modal('hide');

            if (response_friend_item[0].ResponseAction == 'Response_Action_AgreeAndAdd') {
                //getAllFriend(getAllFriendsCallbackOK);
            }

            alert('处理好友申请成功');
        },
        function (err) {
            alert(err.ErrorInfo);
        }
    );

};