码迷,mamicode.com
首页 > Web开发 > 详细

js分享1

时间:2016-01-18 22:32:18      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

/*
** Author : hzhang.Ashe
** Date   : 2014.12.11
** Descri : 报告管理
*/
var ReportManager = (function () {

    //获取数据
    function InitGrid(searchCondition) {
        //获取表格高度
        var _height = getGridHeight();
        var setLoading = setTimeout(function () {
            showLoading();
        }, 1000);

        var parameterArray = [searchCondition];
        var dataParameters = { MethodAlias: "MFRB_GetReportList", Parameter: parameterArray };
        var colOpt = [[{ display: ‘序号‘, name: ‘Index‘, width: ‘20px‘, align: "center", render: displayIndexRow }
                        , { display: ‘报告名‘, name: ‘Name‘, width: ‘180px‘, align: "left", render: displayNameRow }
                        , { display: ‘作者‘, name: ‘Author‘, width: ‘40px‘, align: "left", render: displayAuthorRow }
                        , { display: ‘修改日期‘, name: ‘UpdateTime‘, width: ‘60px‘, align: ‘left‘, render: displayUpdateTimeRow }
                        , { display: ‘描述‘, name: ‘Description‘, width: ‘260px‘, align: "left", render: displayDescriptionRow }
                      ]];

        var option = {
            url: ajaxSecureUnlockHandler,
            method: "POST",
            colModel: colOpt,
            height: _height,
            fixTableHead: true,
            showTableToggleBtn: true,
            resizable: false,
            showPercent: false,
            params: dataParameters,
            preProcess:function(data){
                clearTimeout(setLoading);   //清理loading事件
                $(".table-panel").unblock({fadeOut:  0});    //关闭loading
                return data;
            },
            onComplete: function (grid) {
                $(".table-panel .line").show(); //解决下边线的问题
                if (grid.d && grid.d.length == 0) {
                    $(".sflexigrid .divB").find("table").hide();
                    var msg;
                    if (searchCondition) {
                        msg = "未查询到匹配报告。";
                    } else {
                        msg = "您暂时没有报告,点击“新建报告”开始体验吧~";
                    }
                    $(".sflexigrid .divB").append("<div class=‘notfindDiv‘><div class=‘floater‘></div><div class=‘msgDiv‘><span>" + msg + "</span></div></div>")
                } else {
                    $(".sflexigrid .divB").find("table").show();
                    $(".sflexigrid .divB").find(".notfindDiv").remove();
                }
                InitSelectedEvent();
            }
        };
        $(".div_table").sflexigrid(option);

        function displayIndexRow(name, index, data) {
            var html = "";
            html += "<label class=‘s-index‘ >" + (index + 1).toString() || "" + "</label>";
            return html;
        }

        function displayNameRow(name, index, data) {
            var _name = (data[index][‘Name‘] || "");
            var html = "";
            html += "<input type=hidden  columnname=‘ReportId‘ value=‘" + (data[index][‘ReportId‘] || "") + "‘  />";
            html += "<input type=hidden  columnname=‘ShareId‘ value=‘" + (data[index][‘ShareId‘] || "") + "‘  />";
            html += "<input type=hidden  columnname=‘Author‘ value=‘" + (data[index][‘Author‘] || "") + "‘  />"
            html += "<a class=‘name‘ columnname=‘Name‘ columnvalue=‘" + _name + "‘>" + _name + "</a>";
            return html;
        }

        function displayAuthorRow(name, index, data) {
            var l = (data[index][‘Author‘] || "");
            return "<label columnname=‘Author‘ columnvalue=‘" + l + "‘>" + l + "</label>";
        }

        function displayUpdateTimeRow(name, index, data) {
            var l = data[index][‘UpdateTime‘] ? data[index][‘UpdateTime‘].substr(0, 10) : "";
            return "<label columnname=‘UpdateTime‘  columnvalue=‘" + l + "‘>" + l + "</label>";
        }

        function displayDescriptionRow(name, index, data) {
            var l = data[index][‘Description‘] || "";
            var __description = l;
            if (l.length > 25) {
                __description = l.substr(0, 25) + "...";
            }
            return "<div class=‘description‘><label columnname=‘Description‘ columnvalue=‘" + l + "‘>" + __description + "</label></div>";
        }
    };

    var flag;
    function InitSearchEvent() {
        $("#reportname").focus(function () {
            var $input = $(this);
            if ($input.val() == $input.attr("placeholder")) {
                $input.val(‘‘);
                $input.removeClass(‘placeholder‘);
            }
        }).blur(function () {
            var $input = $(this);
            if ($input.val() == ‘‘ || $input.val() == $input.attr("placeholder")) {
                $input.val($input.attr("placeholder"));
                $input.addClass(‘placeholder‘);
                $(".clearSearchReport").hide();
            }
        }).blur();

        $("#reportname").keyup(function () {
            var _self = this;
            if (!$(_self).val() || $(_self).val() == $(_self).attr("placeholder")) {
                $(".clearSearchReport").hide();
            } else {
                $(".clearSearchReport").show();
            }

            clearTimeout(flag);
            flag = setTimeout(function () {
                InitGrid($(_self).val());
            }, 500)
        });

        //绑定查询框的hover效果
        $(".operate-panel .search-panel-fields").hover(function () {
            $(this).addClass("ui-state-hover");
        }).mouseleave(function () {
            $(this).removeClass("ui-state-hover");
        });
    }

    function InitClearEvent() {
        $(".clearSearchReport").click(function () {
            $("#reportname").val("").blur();
            InitGrid("");
        });
    }

    function InitSelectedEvent() {
        //鼠标划过事件
        $(".sflexigrid .divB tr").mouseenter(function () {
            var $optDiv = $(".operateDiv");
            if ($optDiv.length == 0) {
                $optDiv = $("<div class=‘operateDiv‘><a href=‘javascript:void(0)‘ onclick=‘openContactPanel(this)‘ class=‘iconfont‘ title=‘分享‘></a><a href=‘javascript:void(0)‘ onclick=‘openEditPanel(this)‘ class=‘iconfont‘ title=‘编辑‘></a><a href=‘javascript:void(0)‘ onclick=‘openDeletePanel(this)‘ class=‘iconfont‘ title=‘删除‘></a></div>")
            }
            $optDiv.show();
            $(this).addClass("ui-state-hover");
            $(this).find(".description").append($optDiv);
        }).mouseleave(function () {
            $(this).removeClass("ui-state-hover");
            $(".operateDiv").hide();
        });
        //鼠标点击事件
        $(".sflexigrid .divB tr").click(function () {
            $(".sflexigrid tr.ui-state-active").removeClass("ui-state-active");
            $(this).addClass("ui-state-active");
        });
        //打开报告事件
        $(".sflexigrid .divB tr td a.name").click(function () {
            openReport(this);
        });
    }

    function DeleteRow(selTr) {
        var $selTr = $(selTr);
        if ($selTr) {
            $selTr.remove();
        }
        //重排序号
        var $tdIndexs = $(".sflexigrid .divB tr td label.s-index");
        if ($tdIndexs.length > 0) {
            for (var i = 0; i < $tdIndexs.length; i++) {
                $tdIndexs.eq(i).text(i + 1);
            }
        } else {
            var searchCondition = $("#reportname").val();
            if (searchCondition && searchCondition !== $("#reportname").attr("placeholder")) {
                msg = "未查询到匹配报告。";
            } else {
                msg = "您暂时没有报告,点击“新建报告”开始体验吧~";
            }
            $(".sflexigrid .divB").append("<div class=‘notfindDiv‘><div class=‘floater‘></div><div class=‘msgDiv‘><span>" + msg + "</span></div></div>")
            $(".sflexigrid .divB table").hide();
        }
    }

    function UpdateRow(obj, selTr) {
        var $selTr = $(selTr);
        var _name = obj.Name || "";
        $selTr.find("a[ columnname=‘Name‘]").attr("columnvalue", _name).text(_name);

        var _updatetime = obj.UpdateTime ? obj.UpdateTime.substr(0, 10) : "";
        $selTr.find("label[columnname=‘UpdateTime‘]").attr("columnvalue", _updatetime).text(_updatetime);

        var _author = obj.Author || "";
        $selTr.find("label[columnname=‘Author‘]").attr("columnvalue", _author).text(_author);
        //描述
        var _description = obj.Description || "";
        $selTr.find("label[columnname=‘Description‘]").attr("columnvalue", _description);
        if (_description.length > 25) {
            _description = __description.substr(0, 25) + "...";
        }
        $selTr.find("label[columnname=‘Description‘]").text(_description);
    }

    //loading
    function showLoading() {
        $(".table-panel").block({
            message: (‘<span class="blockMsg">正在努力加载中...</span>‘),
            baseZ: 900,
            css: {
                padding: 0,
                margin: 0,
                textAlign: ‘center‘,
                color: ‘#fff‘,
                width: ‘80%‘,
                fontSize: ‘20px‘,
                cursor: ‘default‘
            },
            overlayCSS: {
                backgroundColor: ‘#282828‘,
                opacity: 1,
                cursor: ‘default‘
            }
        });
    }

    window.onresize = function () {
        $(".div_table").sflexResize({
            height: getGridHeight()
        });
    };

    function getGridHeight() {
        var panelHeight = $(".content").height() - $(".warpper").outerHeight(true) - 10;
        $(".reporttable").height(panelHeight);
        var _temp = (panelHeight - $(".operate-panel").outerHeight() - 10) || 600;
        //此处根据每一列计算表格高度,以便刚好最底部的列和边框重合
        _temp = (parseInt(_temp / 31) * 31) + 1;
        $(".table-panel").height(_temp);
        return _temp;
    }

    return {
        Init: function (searchCondition) {
            InitGrid(searchCondition);
            //initMyContact();
            InitSearchEvent();
            InitClearEvent();
        },
        UpdateRow: function (obj, selTr) {
            UpdateRow(obj, selTr);
        },
        DeleteRow: function (selTr) {
            DeleteRow(selTr);
        }
    }
})();

//加载共享报告
function isShareReportAndCreate(selTr, dosomething) {
    var _reportid = $(selTr).find("input[columnname=‘ReportId‘]").val();
    var _shareid = $(selTr).find("input[columnname=‘ShareId‘]").val();
    //若不存在报告Id则说明该共享报告尚未创建,先创建再执行其他操作
    if (!_reportid && _shareid) {
        ajaxForCreateShareReport(selTr,_shareid, dosomething);
    } else {
        dosomething();
    }
}

function ajaxForCreateShareReport(selTr,shareId, dosomething) {
    var parameters = [shareId];
    var dataParameters = { MethodAlias: "MFRB_CreateReportByShareReportId", Parameter: parameters };
    AjaxRequest(ajaxSecureUnlockHandler, dataParameters, function (result) {
        if (result.State === 0) {
            $(selTr).find("input[columnname=‘ReportId‘]").val(result.Data.ReportId);
            dosomething();
        }
    });
}
//共享报告给他人
function openContactPanel(selTd) {
    var $selTr = $(selTd).closest("tr");
    if (!isImFriendsLoaded) {
        isImFriendsLoaded = true;
        initMyContact();
    }
    else { 
        //重置共享界面
        $(".ContactPanel tr.ui-state-active").find("input:checkbox").attr("checked", false); //复选框
        $(".ContactPanel tr.ui-state-active").removeClass("ui-state-active");   //选中列
        $(".ContactPanel tr td.shareState").text("");   //分享标识
    }

    $(".ContactPanel").dialog({
        title: ‘分享报告‘,
        resizable: false,
        width: 380,
        modal: true,
        buttons: [
                    {
                        text: "确定",
                        click: function () {
                            var $selUsers = $(".contactTable tr.ui-state-active");
                            if($selUsers.length==0){
                                showAlert("未选择分享好友。");
                                return;
                            }
                            isShareReportAndCreate($selTr, function () {
                                ajaxForShareReport($selTr,$selUsers);
                            });
                            $("#ContactPanel").dialog(‘close‘);
                        }
                    }
                ]
        , open: function (event, ui) {
            //取消dialog自动focus(在终端中ie11下会有绿色边框)
            $(this).parent(‘.ui-dialog‘).find(‘.ui-state-focus‘).blur();
        }
    });
}

function ajaxForShareReport(selTr,selUsers) {
    var _reportid = $(selTr).find("input[columnname=‘ReportId‘]").val();
    var _userIds = "";
    for (var i = 0; i < selUsers.length; i++) {
        _userIds += selUsers.eq(i).attr("crmuserid");
        if (i !== selUsers.length - 1) {
            _userIds += ",";
        }
    }
    var parameters = [_reportid, _userIds];
    var dataParameters = { MethodAlias: "MFRB_ShareReport", Parameter: parameters };
    AjaxRequest(ajaxSecureUnlockHandler, dataParameters, function (result) {
        if (result.State === 0) {
            $(".ContactPanel").dialog("close");
            showAlert("恭喜分享成功!请联系对方查看报告。","分享报告","info");
        } else {
            showAlert("共享出现错误。","分享报告","warning");
        }
    });
}
//编辑
function openEditPanel(selTd) {
    var $selTr = $(selTd).closest("tr");
    var _name = $selTr.find("a[columnname=‘Name‘]").attr("columnvalue");
    var _author = $selTr.find("label[columnname=‘Author‘]").attr("columnvalue");
    var _description = $selTr.find("label[columnname=‘Description‘]").attr("columnvalue");

    //绑定编辑前的值
    $("#editPanel .s-name").val(_name);
    $("#editPanel .s-author").val(_author);
    $("#editPanel .s-description").val(_description);

    //弹出编辑框
    $("#editPanel").dialog({
        title: ‘报告编辑‘,
        resizable: false,
        width: 364,
        modal: true,
        buttons: [
                    {
                        text: "确定",
                        click: function () {
                            if(!validateReport()){
                                return;
                            }
                             $("#editPanel").dialog(‘close‘);
                             isShareReportAndCreate($selTr,function () {
                                 ajaxForSaveReport($("#editPanel .s-name").val(), $("#editPanel .s-author").val(), $("#editPanel .s-description").val(), $selTr);
                             });
                        }
                    }
                ]
         , open: function (event, ui) {
             //取消dialog自动focus(在终端中ie11下会有绿色边框)
             $(this).parent(‘.ui-dialog‘).find(‘.ui-state-focus‘).blur();
         }
    });
}

function ajaxForSaveReport(name, author, descri, selTr) {
    var _reportid = $(selTr).find("input[ columnname=‘ReportId‘]").val();
    var parameters = [_reportid, name, author, descri];
    var dataParameters = {
        MethodAlias: "MFRB_UpdateReportBasicInfo",
        Parameter: parameters
    };
    AjaxRequest(ajaxSecureUnlockHandler, dataParameters, function (result) {
        if (result.State === 0) {
            ReportManager.UpdateRow(result.Data, selTr);
        } else {
            showAlert(getResultMsg(result));
        }
    });
}
//删除
function openDeletePanel(selTd) {
    var $selTr = $(selTd).closest("tr");
    showConfirm("你确定要永久删除该报告吗?", "删除报告", function () {
        isShareReportAndCreate($selTr, function () {
            ajaxForDeleteReport($selTr);
        });
        $("#DeleteTip").dialog(‘close‘);
    });
}

function ajaxForDeleteReport(selTr) {
    var $selTr = $(selTr);
    var _reportid = $selTr.find("input[ columnname=‘ReportId‘]").val();
    var parameters = [_reportid];
    var dataParameters = { MethodAlias: "MFRB_DeleteReport", Parameter: parameters };
    AjaxRequest(ajaxSecureUnlockHandler, dataParameters, function (result) {
        if (result.State === 0) {
            ReportManager.DeleteRow(selTr);
        } else {
            showAlert(getResultMsg(result));
        }
    });
}
//打开报告
function openReport(selTd) {
    var $selTr = $(selTd).closest("tr");
    isShareReportAndCreate($selTr, function () {
        var _reportid = $selTr.find("input[columnname=‘ReportId‘]").val();
        window.location.href = "/WealthManagement/MFRB/Frame/ReportPage.aspx?reportId=" + _reportid;
    });
}

function validateReport(){
    var _name=$("#editPanel .s-name").val();
    var _author=$("#editPanel .s-author").val();
    var _description=$("#editPanel .s-description").val();
    var msg="";
    if(!_name){
        msg += "名称必须填写。";
    }
    if(_name&&_name.length>50){
        msg += "名称不能超过50字。";
    }
    if(_author&&_author.length>20){
         msg += "作者不能超过20字。";
    }
    if(_description&&_description.length>200){
         msg += "描述不能超过200字。";
    }
    if(msg.length>0){
        showAlert(msg);
        return false;
    }
    return true;
}

/*************加载共享用户列表*****************/
var userIdList = "";
var isImFriendsLoaded = false;
function initMyContact() {
    getMyContact();
}

function getMyContact() {
    var parameterArray = [];
    var dataParameters = { MethodAlias: "MFRB_GetMyContactList", Parameter: parameterArray };
    AjaxRequest(ajaxSecureUnlockHandler, dataParameters, bindMyContact);
}

function bindMyContact(xmlhttp) {
    xmlhttp = $.extend({ Data: [], ErrorCode: "", ErrorMessage: "", State: "", Page: {} }, xmlhttp);
    if (xmlhttp != null) {
        if (xmlhttp.State == 0) {
            var data = xmlhttp.Data;
            var content = "";
            $.each(data, function (i, n) {
                 var isShow="display:none";
                if(i===0){
                    isShow="";
                }
                content = content + "<tbody onclick=‘groupOperate(this)‘ >"
                        + "<tr><td class=‘ui-state-default groupTitle‘ style=‘border-top:0;border-left:0;border-right:0;‘><span class=‘ui-accordion-header-icon ui-icon ui-icon-triangle-1-e‘></span>" + data[i].Key + "(" + data[i].UserList.length + ")</td></tr>"
                    + "</tbody>"
                    + "<tbody style=‘"+isShow+"‘><tr><td>";
                $.each(data[i].UserList, function (j, m) {
                    if (data[i].UserList[j].IsShare == 1) {
                        content = content + "<table cellpadding=‘0‘ cellspacing=‘0‘ cellpadding=‘0‘ style=‘width:100%;table-layout:fixed;‘>"
                        + "<tr IMID=‘" + data[i].UserList[j].IMID + "‘ CRMUserId=‘" + data[i].UserList[j].CRMUserId + "‘ name=‘" + data[i].UserList[j].UserId + "‘ onclick=‘checkShare(this)‘ class=‘friendRow ui-state-active isShared‘>"
                        + "<td class=‘friendName‘ style=‘width:60px;‘>" + data[i].UserList[j].UserName + "</td>"
                        + "<td class=‘userId‘ style=‘width:70px;text-align:left;‘>" + data[i].UserList[j].UserId + "</td>"
                        + "<td style=‘overflow: hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap;‘>" + data[i].UserList[j].Company + "</td>"
                        //+ "<td class=‘shareState‘>共享</td>"
                        + "</tr></table>";

                        if (userIdList.indexOf(data[i].UserList[j].CRMUserId + ",") < 0)
                            userIdList = userIdList + data[i].UserList[j].CRMUserId + ",";
                    }
                    else {
                        content = content + "<table cellpadding=‘0‘ cellspacing=‘0‘ cellpadding=‘0‘ style=‘width:100%;table-layout:fixed;‘>"
                        + "<tr IMID=‘" + data[i].UserList[j].IMID + "‘ CRMUserId=‘" + data[i].UserList[j].CRMUserId + "‘ name=‘" + data[i].UserList[j].UserId + "‘ class=‘friendRow‘>"
                        + "<td class=‘friendName‘ style=‘width:20px;‘><input type=‘checkbox‘ onclick=‘checkShare(this)‘ /></td>"
                        + "<td class=‘friendName‘ style=‘width:60px;‘>" + data[i].UserList[j].UserName + "</td>"
                        + "<td class=‘userId‘ style=‘width:70px;text-align:left;‘>" + data[i].UserList[j].UserId + "</td>"
                        + "<td style=‘overflow: hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap;‘>" + data[i].UserList[j].Company + "</td>"
                        //+ "<td class=‘shareState‘></td>"
                        + "</tr></table>";
                    }
                });
                content = content + "</td></tr></tbody>"

            });

            $(".contactTable").show();
            $(".contactTable").append(content);
            $(".contactTable  .friendRow").mouseenter(function () {
                $(this).addClass("ui-state-hover");
            }).mouseleave(function () {
                $(this).removeClass("ui-state-hover");
            });
        }
        else {
            //showAlert(GetResultMsg(xmlhttp), "错误");
        }
    }
}

//用户组单击操作
function groupOperate(obj) {
    if ($(obj).next("tbody").is(":visible")) {
        $(obj).next("tbody").hide();
        $(obj).find(".ui-icon").removeClass("ui-icon-triangle-1-s");
    }
    else {
        $(obj).next("tbody").show();
        $(obj).find(".ui-icon").addClass("ui-icon-triangle-1-s");
    }
}

var $tr;
//用户单击操作
function checkShare(obj) {
    $tr=$(obj).closest("tr");
    //$tr = $("tr[IMID=‘" + $(obj).attr("IMID") + "‘]");
    if ($tr.hasClass("ui-state-active")) {
        $tr.removeClass("ui-state-active");
        clearState($tr.attr("CRMUserId"));
        if ($tr.hasClass("isShared")) {
            setUnsharedState();
        }
    }
    else {
        $tr.addClass("ui-state-active");
        if ($tr.hasClass("isShared")) {
            setGoodState();
        }
        else {
            if ($tr.attr("CRMUserId").length > 0)
                setGoodState();
            else
                setBadState();
        }
    }
}

//可共享设置
function setGoodState() {
    //$tr.children(".shareState").text("共享");
    userIdList = userIdList + $tr.first().attr("CRMUserId") + ",";
}

//不可共享设置
function setBadState() {
    $tr.children(".shareState").text("不可共享");
}

//取消共享
function setUnsharedState() {
    $tr.children(".shareState").text("");
}

//清除设置样式
function clearState() {
    $tr.children(".shareState").text("");
    var userID = $tr.first().attr("CRMUserId");
    if (userID.length > 0) {
        if (userIdList.indexOf(userID + ",") >= 0)
            userIdList = userIdList.replace(userID + ",", "");
    }
}

function shareProd() {
    if (userIdList.length > 0) {
        var parameterArray = [productId, windCode, userIdList, imUserName];
        var dataParameters = { MethodAlias: "AddUserShareProduct", Parameter: parameterArray };
        AjaxRequest(ajaxSecureUnlockHandler, dataParameters, closeWindow);
    }
    else {
        var parameterArray = [productId, windCode];
        var dataParameters = { MethodAlias: "UnshareProduct", Parameter: parameterArray };
        AjaxRequest(ajaxSecureUnlockHandler, dataParameters, unshareCloseWindow);

    }
}

function closeWindow(xmlhttp) {

    xmlhttp = $.extend({ Data: [], ErrorCode: "", ErrorMessage: "", State: "", Page: {} }, xmlhttp);
    if (xmlhttp != null) {
        if (xmlhttp.State == 0) {
            window.parent.$(".selectedRow").closest("td").prev().html("已共享");
        }
        else
            showAlert(getResultMsg(xmlhttp), "错误");
    }
}

function unshareCloseWindow(xmlhttp) {
    xmlhttp = $.extend({ Data: [], ErrorCode: "", ErrorMessage: "", State: "", Page: {} }, xmlhttp);
    if (xmlhttp != null) {
        if (xmlhttp.State == 0) {
            window.parent.$(".selectedRow").closest("td").prev().html("");
        }
        else if (xmlhttp.ErrorCode && xmlhttp.ErrorMessage) {
            showAlert(getResultMsg(xmlhttp), "错误");
        }
    }
}

  

js分享1

标签:

原文地址:http://www.cnblogs.com/gongziwuji/p/5140621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!