浏览代码

添加ligertree根节点半选择状态

llh 9 年之前
父节点
当前提交
7636dc379a

+ 193 - 0
Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerOverwrite.js

@ -483,6 +483,199 @@
                    $li = $li.parent().parent().show();
                }
            }
        },
        /**
         * 扩展方法2:子节点是否全选
         * @param treenodedata
         * @returns {boolean}
         */
        isIncomplete: function (treenodedata)
        {
            var str = JSON.stringify(treenodedata.children);
            return (str.indexOf('"ischecked":null')!=-1 || str.indexOf('"ischecked":false')!=-1)
                && str.indexOf('"ischecked":true')!=-1;
        },
        //根据data生成最终完整的tree html
        _getTreeHTMLByData: function (data, outlineLevel, isLast, isExpand)
        {
            var g = this, p = this.options;
            if (g.maxOutlineLevel < outlineLevel)
                g.maxOutlineLevel = outlineLevel;
            isLast = isLast || [];
            outlineLevel = outlineLevel || 1;
            var treehtmlarr = [];
            if (!isExpand) treehtmlarr.push('<ul class="l-children" style="display:none">');
            else treehtmlarr.push("<ul class='l-children'>");
            for (var i = 0; i < data.length; i++)
            {
                var o = data[i];
                var isFirst = i == 0;
                var isLastCurrent = i == data.length - 1;
                var delay = g._getDelay(o, outlineLevel);
                var isExpandCurrent = delay ? false : g._isExpand(o, outlineLevel);
                treehtmlarr.push('<li ');
                if (o.treedataindex != undefined)
                    treehtmlarr.push('treedataindex="' + o.treedataindex + '" ');
                if (isExpandCurrent)
                    treehtmlarr.push('isexpand=' + o.isexpand + ' ');
                treehtmlarr.push('outlinelevel=' + outlineLevel + ' ');
                //增加属性支持
                for (var j = 0; j < g.sysAttribute.length; j++)
                {
                    if ($(this).attr(g.sysAttribute[j]))
                        data[dataindex][g.sysAttribute[j]] = $(this).attr(g.sysAttribute[j]);
                }
                for (var j = 0; j < p.attribute.length; j++)
                {
                    if (o[p.attribute[j]])
                        treehtmlarr.push(p.attribute[j] + '="' + o[p.attribute[j]] + '" ');
                }
                //css class
                treehtmlarr.push('class="');
                isFirst && treehtmlarr.push('l-first ');
                isLastCurrent && treehtmlarr.push('l-last ');
                isFirst && isLastCurrent && treehtmlarr.push('l-onlychild ');
                treehtmlarr.push('"');
                treehtmlarr.push('>');
                treehtmlarr.push('<div class="l-body');
                if (p.selectable && p.selectable(o) == false)
                {
                    treehtmlarr.push(' l-unselectable');
                }
                treehtmlarr.push('">');
                for (var k = 0; k <= outlineLevel - 2; k++)
                {
                    if (isLast[k]) treehtmlarr.push('<div class="l-box"></div>');
                    else treehtmlarr.push('<div class="l-box l-line"></div>');
                }
                if (g.hasChildren(o))
                {
                    if (isExpandCurrent) treehtmlarr.push('<div class="l-box l-expandable-open"></div>');
                    else treehtmlarr.push('<div class="l-box l-expandable-close"></div>');
                    if (p.checkbox)
                    {
                        if (o.ischecked)
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-checked"></div>');
                        // TODO add by lincl start
                        else if(g.isIncomplete(o))
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-incomplete"></div>');
                        // add by lincl end
                        else
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-unchecked"></div>');
                    }
                    if (p.parentIcon)
                    {
                        //node icon
                        treehtmlarr.push('<div class="l-box l-tree-icon ');
                        treehtmlarr.push(g._getParentNodeClassName(isExpandCurrent ? true : false) + " ");
                        if (p.iconFieldName && o[p.iconFieldName])
                            treehtmlarr.push('l-tree-icon-none');
                        treehtmlarr.push('">');
                        if (p.iconFieldName && o[p.iconFieldName])
                            treehtmlarr.push('<img src="' + o[p.iconFieldName] + '" />');
                        treehtmlarr.push('</div>');
                    }
                }
                else
                {
                    if (isLastCurrent) treehtmlarr.push('<div class="l-box l-note-last"></div>');
                    else treehtmlarr.push('<div class="l-box l-note"></div>');
                    if (p.checkbox)
                    {
                        if (o.ischecked)
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-checked"></div>');
                        else
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-unchecked"></div>');
                    }
                    if (p.childIcon)
                    {
                        //node icon
                        treehtmlarr.push('<div class="l-box l-tree-icon ');
                        treehtmlarr.push(g._getChildNodeClassName() + " ");
                        if (p.iconFieldName && o[p.iconFieldName])
                            treehtmlarr.push('l-tree-icon-none');
                        treehtmlarr.push('">');
                        if (p.iconFieldName && o[p.iconFieldName])
                            treehtmlarr.push('<img src="' + o[p.iconFieldName] + '" />');
                        treehtmlarr.push('</div>');
                    }
                }
                if (p.render)
                {
                    //treehtmlarr.push('<span>' + p.render(o, o[p.textFieldName]) + '</span>');
                    treehtmlarr.push('<span title="'+ o[p.textFieldName] +'">' + p.render(o, o[p.textFieldName]) + '</span>');
                } else
                {
                    // treehtmlarr.push('<span>' + o[p.textFieldName] + '</span>');
                    treehtmlarr.push('<span title="'+ o[p.textFieldName] +'">' + o[p.textFieldName] + '</span>');
                }
                treehtmlarr.push('</div>');
                if (g.hasChildren(o))
                {
                    var isLastNew = [];
                    for (var k = 0; k < isLast.length; k++)
                    {
                        isLastNew.push(isLast[k]);
                    }
                    isLastNew.push(isLastCurrent);
                    if (delay)
                    {
                        if (delay == true)
                        {
                            g.toggleNodeCallbacks.push({
                                data: o,
                                callback: function (dom, o)
                                {
                                    var content = g._getTreeHTMLByData(o.children, outlineLevel + 1, isLastNew, isExpandCurrent).join('');
                                    $(dom).append(content);
                                    $(">.l-children .l-body", dom).hover(function ()
                                    {
                                        $(this).addClass("l-over");
                                    }, function ()
                                    {
                                        $(this).removeClass("l-over");
                                    });
                                    g._removeToggleNodeCallback(o);
                                }
                            });
                        }
                        else if (delay.url)
                        {
                            (function (o, url, parms)
                            {
                                g.toggleNodeCallbacks.push({
                                    data: o,
                                    callback: function (dom, o)
                                    {
                                        g.loadData(dom, url, parms, {
                                            showLoading: function ()
                                            {
                                                $("div.l-expandable-close:first", dom).addClass("l-box-loading");
                                            },
                                            hideLoading: function ()
                                            {
                                                $("div.l-box-loading:first", dom).removeClass("l-box-loading");
                                            }
                                        });
                                        g._removeToggleNodeCallback(o);
                                    }
                                });
                            })(o, delay.url, delay.parms);
                        }
                    }
                    else
                    {
                        treehtmlarr.push(g._getTreeHTMLByData(o.children, outlineLevel + 1, isLastNew, isExpandCurrent).join(''));
                    }
                }
                treehtmlarr.push('</li>');
            }
            treehtmlarr.push("</ul>");
            return treehtmlarr;
        }
    });

+ 156 - 169
Hos-resource/src/main/webapp/develop/lib/ligerui/ligerui.all.js

@ -1,4 +1,4 @@
/**
/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -182,7 +182,7 @@
                {
                    var manager = liger.get(this[ext.idAttrName] || $(this).attr(ext.idAttrName));
                    if (manager && args.length > 0) manager.set(args[0]);
                    //已经执行过
                    //已经执行过 
                    return;
                }
                if (args.length >= 1 && typeof args[0] == 'string') return;
@ -226,8 +226,8 @@
        },
        //扩展
        //1,默认参数
        //2,本地化扩展
        //1,默认参数     
        //2,本地化扩展 
        defaults: {},
        //3,方法接口扩展
        methods: {},
@ -290,7 +290,7 @@
        },
        //设置属性
        // arg 属性名    value 属性值
        // arg 属性名    value 属性值 
        // arg 属性/值   value 是否只设置事件
        set: function (arg, value,value2)
        {
@ -437,7 +437,7 @@
    });
    //界面组件基类,
    //界面组件基类, 
    //1,完成界面初始化:设置组件id并存入组件管理器池,初始化参数
    //2,渲染的工作,细节交给子类实现
    //parm [element] 组件对应的dom element对象
@ -1284,7 +1284,7 @@
            mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
        };
    }
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -1310,7 +1310,7 @@
        prev: 'liger-',
        /*
        /* 
         命名规则:插件名_属性名(包括第N级的属性) (插件名首字母大写,属性名首字母小写)
         获取规则:获取default时会先找这里,找不到再找liger.defaults,比如 liger.defaults.Grid_columns
         备注:这里只定义了参数的列表
@ -1466,7 +1466,7 @@
                var subElement = $("> ." + className, jelement);
                //忽略
                if ($.inArray(proName, config.ignores.split(',')) != -1) continue;
                //判断子节点 (复杂属性)
                //判断子节点 (复杂属性) 
                if (subElement.length)
                {
                    var defaultName = e.controlName + "_" + proName;
@ -1566,7 +1566,7 @@
        liger.inject.init();
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -1590,7 +1590,7 @@
        height: null,
        speed: "normal",
        changeHeightOnResize: false,
        heightDiff: 0 // 高度补差
        heightDiff: 0 // 高度补差  
    };
    $.ligerMethos.Accordion = {};
@ -1759,7 +1759,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -1881,7 +1881,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -2008,7 +2008,7 @@
            }
        }
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -2025,20 +2025,20 @@
    };
    $.ligerDefaults.CheckBoxList = {
        rowSize: 3,            //每行显示元素数
        rowSize: 3,            //每行显示元素数   
        valueField: 'id',       //值成员
        textField: 'text',      //显示成员
        textField: 'text',      //显示成员 
        valueFieldID:null,      //隐藏域
        name : null,            //表单名
        split: ";",             //分隔符
        data: null,             //数据
        parms: null,            //ajax提交表单
        data: null,             //数据  
        parms: null,            //ajax提交表单 
        url: null,              //数据源URL(需返回JSON)
        ajaxType : 'post',
        onSuccess: null,
        onError: null,
        css: null,               //附加css
        value: null,            //值
        css: null,               //附加css  
        value: null,            //值 
        valueFieldCssClass : null
    };
@ -2067,7 +2067,7 @@
        {
            var g = this, p = this.options;
            g.data = p.data;
            g.valueField = null; //隐藏域(保存值)
            g.valueField = null; //隐藏域(保存值) 
            if ($(this.element).is(":hidden") || $(this.element).is(":text"))
            {
@ -2351,7 +2351,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -2383,7 +2383,7 @@
        selectBoxPosYDiff : -3, //下拉框位置y坐标调整
        onBeforeSelect: false, //选择前事件
        onAfterShowData : null,
        onSelected: null, //选择值事件
        onSelected: null, //选择值事件 
        initValue: null,
        value : null,
        initText: null,
@ -2398,7 +2398,7 @@
        split: ";",
        data: null,
        dataGetter : null,      //下拉框数据集获取函数
        tree: null,            //下拉框以树的形式显示,tree的参数跟LigerTree的参数一致
        tree: null,            //下拉框以树的形式显示,tree的参数跟LigerTree的参数一致 
        treeLeafOnly: true,   //是否只选择叶子
        condition: null,       //列表条件搜索 参数同 ligerForm
        grid: null,              //表格 参数同 ligerGrid
@ -2433,9 +2433,9 @@
        absolute: true,         //选择框是否在附加到body,并绝对定位
        cancelable: true,      //可取消选择
        css: null,            //附加css
        parms: null,         //ajax提交表单
        parms: null,         //ajax提交表单 
        renderItem: null,   //选项自定义函数
        autocomplete: false,  //自动完成
        autocomplete: false,  //自动完成 
        autocompleteAllowEmpty : true, //是否允许空值搜索
        highLight: false,    //自动完成是否匹配字符高亮显示
        readonly: false,              //是否只读
@ -2498,7 +2498,7 @@
            g.select = null;
            g.textFieldID = "";
            g.valueFieldID = "";
            g.valueField = null; //隐藏域(保存值)
            g.valueField = null; //隐藏域(保存值) 
            if ($(this.element).is(":hidden"))
            {
@ -2693,7 +2693,7 @@
            g.bulidContent();
            g.set(p, null, "init");
            //下拉框宽度、高度初始化
            //下拉框宽度、高度初始化   
            if (p.selectBoxWidth)
            {
                g.selectBox.width(p.selectBoxWidth);
@ -2768,7 +2768,7 @@
                this.wrapper.addClass(css);
            }
        },
        //取消选择
        //取消选择 
        _setCancelable: function (value)
        {
            var g = this, p = this.options;
@ -2936,7 +2936,7 @@
                }
                return false;
            };
            //当combobox下拉一个grid时, 不能直接取data. 必须取grid的data.
            //当combobox下拉一个grid时, 不能直接取data. 必须取grid的data. 
            //原写法$(g.data) 仅适用于无grid时的典型情形
            var d;
            if (g.options.grid && g.options.grid.data)
@ -3148,7 +3148,7 @@
            g._setSelectBoxHeight(p.selectBoxHeight);
            //modify end
            //g.inputText.val("");
            //g.valueField.val("");
            //g.valueField.val(""); 
        },
        setSelect: function ()
        {
@ -4209,7 +4209,7 @@
                var combobox = liger.get(curInput.attr("data-comboboxid"));
                if (!combobox) return;
                if (!combobox.get("keySupport")) return;
                if (event.keyCode == 38) //up
                if (event.keyCode == 38) //up 
                {
                    combobox.upFocus();
                } else if (event.keyCode == 40) //down
@ -4261,7 +4261,7 @@
    })();
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -4449,7 +4449,7 @@
            }
            //设置主体
            g.bulidContent();
            //初始化
            //初始化   
            //初始值
            if (p.initValue)
            {
@ -4990,7 +4990,7 @@
            this.set('value', '');
            this.usedDate = null;
        },
        //取消选择
        //取消选择 
        _setCancelable: function (value)
        {
            var g = this, p = this.options;
@ -5205,7 +5205,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -5256,21 +5256,21 @@
        cls: null,       //给dialog附加css class
        contentCls: null,
        id: null,        //给dialog附加id
        buttons: null, //按钮集合
        buttons: null, //按钮集合 
        isDrag: true,   //是否拖动
        width: 280,     //宽度
        height: null,   //高度,默认自适应
        height: null,   //高度,默认自适应 
        content: '',    //内容
        target: null,   //目标对象,指定它将以appendTo()的方式载入
        url: null,      //目标页url,默认以iframe的方式载入
        urlParms: null,     //传参
        load: false,     //是否以load()的方式加载目标页的内容
        load: false,     //是否以load()的方式加载目标页的内容 
        type: 'none',   //类型 warn、success、error、question
        left: null,     //位置left
        top: null,      //位置top
        modal: true,    //是否模态对话框
        data: null,     //传递数据容器
        name: null,     //创建iframe时 作为iframe的name和id
        name: null,     //创建iframe时 作为iframe的name和id 
        isResize: false, // 是否调整大小
        allowClose: true, //允许关闭
        opener: null,
@ -5278,13 +5278,13 @@
        closeWhenEnter: null, //回车时是否关闭dialog
        isHidden: true,        //关闭对话框时是否只是隐藏,还是销毁对话框
        show: true,          //初始化时是否马上显示
        title: '提示',        //头部
        showMax: false,                             //是否显示最大化按钮
        title: '提示',        //头部 
        showMax: false,                             //是否显示最大化按钮 
        showToggle: false,                          //是否显示收缩窗口按钮
        showMin: false,                             //是否显示最小化按钮
        slide: $.browser.msie ? false : true,        //是否以动画的形式显示
        slide: $.browser.msie ? false : true,        //是否以动画的形式显示 
        fixedType: null,            //在固定的位置显示, 可以设置的值有n, e, s, w, ne, se, sw, nw
        showType: null,             //显示类型,可以设置为slide(固定显示时有效)
        showType: null,             //显示类型,可以设置为slide(固定显示时有效) 
        layoutMode : 1,         //1 九宫布局, 2 上中下布局
        onLoaded: null,
        onExtend: null,
@ -5436,7 +5436,7 @@
                        g.frame = window.frames[g.jiframe.attr("name")];
                    }, 0);
                    // 为了解决ie下对含有iframe的div窗口销毁不正确,进而导致第二次打开时焦点不在当前图层的问题
                    // 加入以下代码
                    // 加入以下代码 
                    tmpId = 'jquery_ligerui_' + new Date().getTime();
                    g.tmpInput = $("<input></input>");
                    g.tmpInput.attr("id", tmpId);
@ -6010,7 +6010,7 @@
            {
                g.dialog.show();
            }
            //前端显示
            //前端显示 
            $.ligerui.win.setFront.ligerDefer($.ligerui.win, 100, [g]);
        },
        setUrl: function (url)
@ -6379,7 +6379,7 @@
    };
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -6732,7 +6732,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -6795,9 +6795,9 @@
                if (!$(box).hasClass("l-easytab-panelbox")) $(box).addClass("l-easytab-panelbox");
            });
            g.tabs.ul.prependTo(g.tabs);
            //init
            //init  
            $(".l-easytab-panelbox:eq(" + selectedIndex + ")", g.tabs).show().siblings(".l-easytab-panelbox").hide();
            //add even
            //add even 
            $("> ul:first span", g.tabs).click(function ()
            {
                if ($(this).hasClass("l-selected")) return;
@ -6815,7 +6815,7 @@
        }
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -7086,7 +7086,7 @@
            return jtable;
        },
        //删除分组
        //删除分组 
        deleteGroup: function (group)
        {
            var g = this, p = this.options;
@ -7202,7 +7202,7 @@
                if (g.enabledEditor(field)) editorType = field.editor.type;
                if (oldEditorType)
                {
                    //如果存在旧的输入框
                    //如果存在旧的输入框 
                    g.removeEditor(rulerow);
                }
                if (editorType)
@ -7309,7 +7309,7 @@
            return $(".valtxt:first", rulerow).val();
        },
        //判断某字段是否启用自定义的输入框
        //判断某字段是否启用自定义的输入框  
        enabledEditor: function (field)
        {
            var g = this, p = this.options;
@ -7518,7 +7518,7 @@
    };
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -7692,8 +7692,8 @@
    };
    //description 自动创建ligerui风格的表单-编辑器构造函数
    //editorBulider -> editorBuilder 命名错误
    //param {jinput} 表单元素jQuery对象 比如input、select、textarea
    //editorBulider -> editorBuilder 命名错误 
    //param {jinput} 表单元素jQuery对象 比如input、select、textarea 
    $.ligerDefaults.Form.editorBulider = function (jinput)
    {
        //这里this就是form的ligerui对象
@ -8195,7 +8195,7 @@
                        {
                            out.push(g._buliderLabelContainer(field, index));
                        }
                        //append input
                        //append input 
                        out.push(g._buliderControlContainer(field, index, e.idPrev));
                        if (field.labelInAfter)
                        {
@ -8267,9 +8267,9 @@
        },
        getChanges: function ()
        {
            //本函数返回当前数据与上一次数据之间的差异. 如果没有差异, 则返回空对象.
            //注意!! getData会导致数据被刷新. 必须严格控制getData的调用.
            //调用本函数不会导致刷新数据.
            //本函数返回当前数据与上一次数据之间的差异. 如果没有差异, 则返回空对象. 
            //注意!! getData会导致数据被刷新. 必须严格控制getData的调用. 
            //调用本函数不会导致刷新数据. 
            var g = this, p = this.options;
            var originData = g.data;
            var curData = g.getData();
@ -8891,7 +8891,7 @@
        return out.join('');
    }
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -8926,22 +8926,22 @@
        usePager: true,                         //是否分页
        hideLoadButton : false,                 //是否隐藏刷新按钮
        pagerRender : null,                     //分页栏自定义渲染函数
        page: 1,                                //默认当前页
        page: 1,                                //默认当前页 
        pageSize: 10,                           //每页默认的结果数
        pageSizeOptions: [10, 20, 30, 40, 50],  //可选择设定的每页结果数
        parms: [],                         //提交到服务器的参数
        parms: [],                         //提交到服务器的参数 
        columns: [],                          //数据源
        minColToggle: 1,                        //最小显示的列
        dataType: 'server',                     //数据源:本地(local)或(server),本地是将读取p.data。不需要配置,取决于设置了data或是url
        dataAction: 'server',                    //提交数据的方式:本地(local)或(server),选择本地方式时将在客服端分页、排序。
        showTableToggleBtn: false,              //是否显示'显示隐藏Grid'按钮
        dataAction: 'server',                    //提交数据的方式:本地(local)或(server),选择本地方式时将在客服端分页、排序。 
        showTableToggleBtn: false,              //是否显示'显示隐藏Grid'按钮 
        switchPageSizeApplyComboBox: false,     //切换每页记录数是否应用ligerComboBox
        allowAdjustColWidth: true,              //是否允许调整列宽
        allowAdjustColWidth: true,              //是否允许调整列宽     
        checkbox: false,                         //是否显示复选框
        isSingleCheck: false,                  //复选框选择的时候是否单选模式
        allowHideColumn: true,                 //是否显示'切换列层'按钮
        enabledEdit: false,                      //是否允许编辑
        isScroll: true,                         //是否滚动
        isScroll: true,                         //是否滚动 
        dateFormat: 'yyyy-MM-dd',              //默认时间显示格式
        inWindow: true,                        //是否以窗口的高度为准 height设置为百分比时可用
        statusName: '__status',                    //状态名
@ -8955,8 +8955,8 @@
        pageParmName: 'page',               //页索引参数名,(提交给服务器)
        pagesizeParmName: 'pagesize',        //页记录数参数名,(提交给服务器)
        sortnameParmName: 'sortname',        //页排序列名(提交给服务器)
        sortorderParmName: 'sortorder',      //页排序方向(提交给服务器)
        allowUnSelectRow: false,           //是否允许反选行
        sortorderParmName: 'sortorder',      //页排序方向(提交给服务器) 
        allowUnSelectRow: false,           //是否允许反选行 
        alternatingRow: true,           //奇偶行效果
        mouseoverRowCssClass: 'l-grid-row-over',
        enabledSort: true,                      //是否允许排序
@ -8968,7 +8968,7 @@
        totalRender: null,                       //统计行(全部数据)
        delayLoad: false,                        //初始化时是否不加载
        where: null,                           //数据过滤查询函数,(参数一 data item,参数二 data item index)
        selectRowButtonOnly: false,            //复选框模式时,是否只允许点击复选框才能选择行
        selectRowButtonOnly: false,            //复选框模式时,是否只允许点击复选框才能选择行 
        selectable: true,
        whenRClickToSelect: false,                //右击行时是否选中
        contentType: null,                     //Ajax contentType参数
@ -8999,7 +8999,7 @@
        headerRowHeight: 28,                    //表头行的高度
        toolbar: null,                           //工具条,参数同 ligerToolbar的,额外参数有title、icon
        toolbarShowInLeft: true,               //工具条显示在左边
        headerImg: null,                        //表格头部图标
        headerImg: null,                        //表格头部图标  
        editorTopDiff: 3,                      //编辑器top误差
        editorLeftDiff: 1,                //编辑器left误差
        editorHeightDiff: -1,               //编辑器高度误差
@ -9017,7 +9017,7 @@
        onBeforeSelectRow:null,             //选择前事件
        onUnSelectRow: null,                   //取消选择行事件
        onBeforeCheckRow: null,                 //选择前事件,可以通过return false阻止操作(复选框)
        onCheckRow: null,                    //选择事件(复选框)
        onCheckRow: null,                    //选择事件(复选框)  
        onBeforeCheckAllRow: null,              //选择前事件,可以通过return false阻止操作(复选框 全选/全不选)
        onCheckAllRow: null,                    //选择事件(复选框 全选/全不选)onextend
        onBeforeShowData: null,                  //显示数据前事件,可以通过reutrn false阻止操作
@ -9045,7 +9045,7 @@
        onTreeCollapse: null,                     //树收缩事件
        onTreeExpanded: null,                        //树展开事件
        onTreeCollapsed: null,                     //树收缩事件
        onLoadData: null,                       //加载数据前事件
        onLoadData: null,                       //加载数据前事件 
        onHeaderCellBulid: null
    };
    $.ligerDefaults.GridString = {
@ -9168,7 +9168,7 @@
        }
    }
    //引用类型,数据形式表现为[id,text]
    //引用类型,数据形式表现为[id,text] 
    $.ligerDefaults.Grid.formatters['ref'] = function (value)
    {
        if ($.isArray(value)) return value.length > 1 ? value[1] : value[0];
@ -9345,13 +9345,13 @@
            g.header = $(".l-panel-header:first", g.grid);
            //主体
            g.body = $(".l-panel-body:first", g.grid);
            //底部工具条
            //底部工具条         
            g.toolbar = $(".l-panel-bar:first", g.grid);
            //显示/隐藏列
            //显示/隐藏列      
            g.popup = $(".l-grid-popup:first", g.grid);
            //加载中
            g.gridloading = $(".l-grid-loading:first", g.grid);
            //调整列宽层
            //调整列宽层 
            g.draggingline = $(".l-grid-dragging-line", g.grid);
            //顶部工具栏
            g.topbar = $(".l-panel-topbarinner:first", g.grid);
@ -9360,9 +9360,9 @@
            g.gridview.attr("id", g.id + "grid");
            g.gridview1 = $(".l-grid1:first", g.gridview);
            g.gridview2 = $(".l-grid2:first", g.gridview);
            //表头
            //表头     
            g.gridheader = $(".l-grid-header:first", g.gridview2);
            //表主体
            //表主体     
            g.gridbody = $(".l-grid-body:first", g.gridview2);
            //处理autoFilter
            if (p.autoFilter)
@ -9389,9 +9389,9 @@
            }
            //frozen
            g.f = {};
            //表头
            //表头     
            g.f.gridheader = $(".l-grid-header:first", g.gridview1);
            //表主体
            //表主体     
            g.f.gridbody = $(".l-grid-body:first", g.gridview1);
            g.currentData = null;
@ -10297,7 +10297,7 @@
            g.records[o['__id']] = o;
            return o;
        },
        //将原始的数据转换成适合 grid的行数据
        //将原始的数据转换成适合 grid的行数据 
        _getRows: function (data)
        {
            var g = this, p = this.options;
@ -10749,7 +10749,7 @@
            else
            {
                g.currentData = g._getCurrentPageData(g.filteredData);
                //增加以下一句调用: 在显示数据之前, 应该先调用转换tree的函数.
                //增加以下一句调用: 在显示数据之前, 应该先调用转换tree的函数. 
                //否则会导致树的数据重复显示
                if (p.tree)
                {
@ -11532,7 +11532,7 @@
                if ($.fn.ligerToolBar)
                {
                    g.toolbarManager = g.topbar.ligerToolBar(p.toolbar);
                    //原语句不知道为什么, toolbar的父div高度为0. 导致样式有问题.
                    //原语句不知道为什么, toolbar的父div高度为0. 导致样式有问题. 
                    if (g.topbar.height() == 0)
                        g.topbar.parent().height(25);
                    else
@ -11556,7 +11556,7 @@
        _initColumns: function ()
        {
            var g = this, p = this.options;
            g._columns = {};             //全部列的信息
            g._columns = {};             //全部列的信息  
            g._columnCount = 0;
            g._columnLeafCount = 0;
            g._columnMaxLevel = 1;
@ -11632,8 +11632,8 @@
            for (var i = 0, l = p.columns.length; i < l; i++)
            {
                var col = p.columns[i];
                //增加以下一句. 因为在低版本IE中, 可能因为修改了prototype,
                //导致这里取出undefined, 并进一步导致后续的函数调用出错.
                //增加以下一句. 因为在低版本IE中, 可能因为修改了prototype, 
                //导致这里取出undefined, 并进一步导致后续的函数调用出错. 
                if (!col) continue;
                setColumn(col, 1, -1, lastid);
                lastid = col['__id'];
@ -11651,7 +11651,7 @@
                    col['__rowSpan'] = g._columnMaxLevel - col['__level'] + 1;
                }
            }
            //叶级别列的信息
            //叶级别列的信息  
            g.columns = g.getColumns();
            $(g.columns).each(function (i, column)
            {
@ -12004,7 +12004,7 @@
        _fillGridBody: function (data, frozen,sourceType)
        {
            var g = this, p = this.options;
            //加载数据
            //加载数据 
            var gridhtmlarr = sourceType == "scrollappend" ? [] : ['<div class="l-grid-body-inner"><table class="l-grid-body-table" cellpadding=0 cellspacing=0><tbody>'];
            if (g.enabledGroup()) //启用分组模式
            {
@ -12087,7 +12087,7 @@
                jreplace = jreplace.length ? jreplace : $('<div class="l-scrollreplacebottom"></div>').appendTo(jgridbodyinner);
                jreplace.css("width", "80%").height((p.pageCount - p.newPage) * g._getOnePageHeight());
            }
            //分组时不需要
            //分组时不需要            
            if (!g.enabledGroup())
            {
                //创建汇总行
@ -12241,7 +12241,7 @@
                if (!item) continue;
                gridhtmlarr.push('<tr');
                gridhtmlarr.push(' id="' + g._getRowDomId(item, frozen) + '"');
                gridhtmlarr.push(' class="l-grid-row'); //class start
                gridhtmlarr.push(' class="l-grid-row'); //class start 
                if (!frozen && g.enabledCheckbox() && p.isChecked && p.isChecked(item))
                {
                    g.select(item);
@ -12842,9 +12842,9 @@
                indetail: indetail,
                frozen: fn(g.gridview1[0]) ? true : false,
                header: fn("l-panel-header"), //标题
                gridheader: fn("l-grid-header"), //表格头
                gridheader: fn("l-grid-header"), //表格头 
                gridbody: fn("l-grid-body"),
                total: fn("l-panel-bar-total"), //总汇总
                total: fn("l-panel-bar-total"), //总汇总 
                popup: fn("l-grid-popup"),
                toolbar: fn("l-panel-bar")
            };
@ -12935,7 +12935,7 @@
            {
                delete g.ctrlKey;
            });
            //表体 - 滚动联动事件
            //表体 - 滚动联动事件 
            g.gridbody.bind('scroll.grid', function ()
            {
                var scrollLeft = g.gridbody.scrollLeft();
@ -13723,7 +13723,7 @@
            var childrenName = "children";
            if (p.tree) childrenName = p.tree.childrenName;
            if (!data || !data.length) return [];
            var targetData = [];                    //存储数据的容器(返回)
            var targetData = [];                    //存储数据的容器(返回) 
            var records = {};
            var itemLength = data.length;           //数据集合的个数
            for (var i = 0; i < itemLength; i++)
@ -13901,7 +13901,7 @@
            }
        }
    }
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -13942,10 +13942,10 @@
        allowRightResize: true,     //是否允许 右边可以调整大小
        allowTopResize: true,      //是否允许 头部可以调整大小
        allowBottomResize: true,     //是否允许 底部可以调整大小
        space: 3, //间隔
        space: 3, //间隔 
        onEndResize: null,          //调整大小结束事件
        minLeftWidth: 80,            //调整左侧宽度时的最小允许宽度
        minRightWidth: 80           //调整右侧宽度时的最小允许宽度
        minRightWidth: 80           //调整右侧宽度时的最小允许宽度 
    };
    $.ligerMethos.Layout = {};
@ -14034,7 +14034,7 @@
                    g.left.content.attr("title", "");
                    $(".l-layout-header-inner", g.left.header).html(lefttitle);
                }
                //set title
                //set title 
                if (g.left.content.attr("hidetitle"))
                {
                    g.left.content.attr("title", "");
@ -14384,7 +14384,7 @@
        {
            var g = this, p = this.options;
            var oldheight = g.layout.height();
            //set layout height
            //set layout height 
            var h = 0;
            var windowHeight = $(window).height();
            var parentHeight = null;
@ -14736,7 +14736,7 @@
        }
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -14759,22 +14759,22 @@
        width: 150,            //宽度
        height: 100,           //高度
        onSelect: false,        //选择前事件
        onSelected: null,       //选择值事件
        onSelected: null,       //选择值事件  
        valueField: 'id',       //值成员
        textField: 'text',      //显示成员
        valueFieldID: null,     //值 隐藏域 表单名
        valueFieldID: null,     //值 隐藏域 表单名 
        split: ";",             //分隔符
        data: null,             //数据
        parms: null,            //ajax提交表单
        data: null,             //数据  
        parms: null,            //ajax提交表单 
        url: null,              //数据源URL(需返回JSON)
        urlParms: null,                     //url带参数
        ajaxContentType: null,
        ajaxType : 'post',
        onSuccess: null,
        onError: null,
        render: null,            //显示html自定义函数
        css: null,               //附加css
        value: null,            //值
        render: null,            //显示html自定义函数 
        css: null,               //附加css  
        value: null,            //值 
        valueFieldCssClass: null
    };
@ -14803,7 +14803,7 @@
        {
            var g = this, p = this.options;
            g.data = p.data;
            g.valueField = null; //隐藏域(保存值)
            g.valueField = null; //隐藏域(保存值) 
            if ($(this.element).is(":hidden") || $(this.element).is(":text"))
            {
@ -15263,7 +15263,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -15531,7 +15531,7 @@
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -15629,7 +15629,7 @@
        }
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -15864,7 +15864,7 @@
    };
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -15887,10 +15887,10 @@
        content: null,      //内容
        url: null,          //远程内容Url
        urlParms: null,     //传参
        frameName: null,     //创建iframe时 作为iframe的name和id
        data: null,          //可用于传递到iframe的数据
        frameName: null,     //创建iframe时 作为iframe的name和id 
        data: null,          //可用于传递到iframe的数据 
        showClose: false,    //是否显示关闭按钮
        showToggle: true,    //是否显示收缩按钮
        showToggle: true,    //是否显示收缩按钮 
        showRefresh: false,    //是否显示刷新按钮
        icon: null,          //左侧按钮
        onClose:null,       //关闭前事件
@ -16194,7 +16194,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -16218,15 +16218,15 @@
    $.ligerDefaults.PopupEdit = {
        valueFieldID: null,     //生成的value input:hidden 字段名
        css: null,             //附加css
        onButtonClick: null,    //利用这个参数来调用其他函数,比如打开一个新窗口来选择值
        onButtonClick: null,    //利用这个参数来调用其他函数,比如打开一个新窗口来选择值 
        nullText: null,         //不能为空时的提示
        disabled: false,        //是否无效
        cancelable: true,
        width: 200,
        heigth: null,
        render: null,        //显示函数
        render: null,        //显示函数   
        split: ';',
        grid: null,       //在 可查询、可分页列表的弹出框 中选择值
        grid: null,       //在 可查询、可分页列表的弹出框 中选择值 
        condition: null,  // 条件字段,比如 {fields:[{ name : 'Title' ,op : 'like', vt : 'string',type:'text' }]}
        valueField: 'id', //值字段
        textField: 'text',   //显示字段
@ -16362,7 +16362,7 @@
                this.wrapper.addClass(css);
            }
        },
        //取消选择
        //取消选择 
        _setCancelable: function (value)
        {
            var g = this, p = this.options;
@ -16466,7 +16466,7 @@
            }
            g.valueField.val(value);
        },
        //设置值到 文本框
        //设置值到 文本框 
        setText: function (text)
        {
            var g = this, p = this.options;
@ -16588,7 +16588,7 @@
    {
        p = $.extend({
            title: '选择数据',     //窗口标题
            width: 700,            //窗口宽度
            width: 700,            //窗口宽度     
            height: 320,           //列表高度
            top: null,
            left: null,
@ -16597,7 +16597,7 @@
            textField: null,     //接收表格的text字段名
            grid: null,          //表格的参数 同ligerGrid
            condition: null,     //搜索表单的参数 同ligerForm
            onSelect: function (p) { },   //选取函数
            onSelect: function (p) { },   //选取函数 
            selectInit: function (rowdata) { return false }  //选择初始化
        }, p);
        if (!p.grid) return;
@ -16743,7 +16743,7 @@
        }
    };
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -16781,7 +16781,7 @@
         这一块 允许自定义N个列(column),结构同上
         */
        columns:null,
        url: null,          //portal结构定义URL
        url: null,          //portal结构定义URL   
        method: 'get',                         //获取数据http方式
        parms: null,                         //提交到服务器的参数
        draggable: false,   //是否允许拖拽
@ -17152,7 +17152,7 @@
                        g.portal.find(">.l-row").removeClass("l-row-dragging");
                        panel.set('width', panel.get('width'));
                        jpanel.removeClass("l-panel-dragging");
                        //将jpanel替换到jplace的位置
                        //将jpanel替换到jplace的位置 
                        if (this.jplace)
                        {
                            jpanel.css({
@ -17323,7 +17323,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -17468,7 +17468,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -17485,21 +17485,21 @@
    };
    $.ligerDefaults.RadioList = {
        rowSize: 3,            //每行显示元素数
        rowSize: 3,            //每行显示元素数   
        valueField: 'id',       //值成员
        textField: 'text',      //显示成员
        textField: 'text',      //显示成员 
        valueFieldID: null,      //隐藏域
        name: null,            //表单名
        data: null,             //数据
        parms: null,            //ajax提交表单
        name: null,            //表单名 
        data: null,             //数据  
        parms: null,            //ajax提交表单 
        ajaxContentType: null,
        ajaxType: 'post',
        url: null,              //数据源URL(需返回JSON)
        onSuccess: null,
        onError: null,
        onSelect: null,
        css: null,               //附加css
        value: null,            //值
        css: null,               //附加css  
        value: null,            //值 
        valueFieldCssClass: null
    };
@ -17528,7 +17528,7 @@
        {
            var g = this, p = this.options;
            g.data = p.data;
            g.valueField = null; //隐藏域(保存值)
            g.valueField = null; //隐藏域(保存值) 
            if ($(this.element).is(":hidden") || $(this.element).is(":text"))
            {
@ -18096,7 +18096,7 @@
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -18500,7 +18500,7 @@
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -18523,7 +18523,7 @@
    $.ligerDefaults.Tab = {
        height: null,
        heightDiff: 0, // 高度补差
        heightDiff: 0, // 高度补差 
        changeHeightOnResize: false,
        contextmenu: true,
        dblClickToClose: false, //是否双击时关闭
@ -18655,7 +18655,7 @@
                    }
                }
            });
            //init
            //init 
            g.selectTabItem(g.selectedTabId);
            //set content height
            if (p.height)
@ -18677,7 +18677,7 @@
            }
            if (g.makeFullHeight)
                g.setContentHeight();
            //add even
            //add even 
            $("li", g.tab.links).each(function ()
            {
                g._addTabItemEvent($(this));
@ -19214,7 +19214,7 @@
            contentitem.attr("tabid", tabid);
            if (url)
            {
                iframe[0].tab = g;//增加iframe对tab对象的引用
                iframe[0].tab = g;//增加iframe对tab对象的引用  
                if (options.data)
                {
                    iframe[0].openerData = options.data;
@ -19496,7 +19496,7 @@
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -19525,7 +19525,7 @@
        width: null,
        disabled: false,
        initSelect : false,
        value: null,     //初始化值
        value: null,     //初始化值 
        precision: 2,    //保留小数位(仅currency时有效)
        nullText: null,   //不能为空时的提示
        digits: false,     //是否限定为数字输入框
@ -19893,7 +19893,7 @@
        return numStr;
    }
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -20084,7 +20084,7 @@
            this.tip.remove();
        }
    });
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -20233,7 +20233,7 @@
    //旧写法保留
    $.ligerui.controls.ToolBar.prototype.setEnable = $.ligerui.controls.ToolBar.prototype.setEnabled;
    $.ligerui.controls.ToolBar.prototype.setDisable = $.ligerui.controls.ToolBar.prototype.setDisabled;
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -20418,15 +20418,6 @@
        {
            return this.data;
        },
        // TODO add by lincl start
        //子节点是否全选
        isIncomplete: function (treenodedata)
        {
            var str = JSON.stringify(treenodedata.children);
            return (str.indexOf('"ischecked":null')!=-1 || str.indexOf('"ischecked":false')!=-1)
                && str.indexOf('"ischecked":true')!=-1;
        },
        // add by lincl end
        //是否包含子节点
        hasChildren: function (treenodedata)
        {
@ -20492,7 +20483,7 @@
        //add by superzoc 12/24/2012
        //add by superzoc 12/24/2012 
        refreshTree: function ()
        {
            var g = this, p = this.options;
@ -20571,7 +20562,7 @@
            var g = this, p = this.options;
            var childrenName = "children";
            if (!data || !data.length) return [];
            var targetData = [];                    //存储数据的容器(返回)
            var targetData = [];                    //存储数据的容器(返回) 
            var records = {};
            var itemLength = data.length;           //数据集合的个数
            for (var i = 0; i < itemLength; i++)
@ -20853,7 +20844,7 @@
            }
            else
            {
                //remove last node class
                //remove last node class  
                if ($("> .l-children > li:last", treeitem).length > 0)
                    g._setTreeItem($("> .l-children > li:last", treeitem)[0], { isLast: false });
                $(">.l-children", parentNode).append(gridhtmlarr.join(''));
@ -20992,7 +20983,7 @@
        arrayToTree: function (data, id, pid)      //将ID、ParentID这种数据格式转换为树格式
        {
            if (!data || !data.length) return [];
            var targetData = [];                    //存储数据的容器(返回)
            var targetData = [];                    //存储数据的容器(返回) 
            var records = {};
            var itemLength = data.length;           //数据集合的个数
            for (var i = 0; i < itemLength; i++)
@ -21228,10 +21219,6 @@
                    {
                        if (o.ischecked)
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-checked"></div>');
                        // TODO add by lincl start
                        else if(g.isIncomplete(o))
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-incomplete"></div>');
                        // add by lincl end
                        else
                            treehtmlarr.push('<div class="l-box l-checkbox l-checkbox-unchecked"></div>');
                    }
@ -21261,7 +21248,7 @@
                    }
                    if (p.childIcon)
                    {
                        //node icon
                        //node icon 
                        treehtmlarr.push('<div class="l-box l-tree-icon ');
                        treehtmlarr.push(g._getChildNodeClassName() + " ");
                        if (p.iconFieldName && o[p.iconFieldName])
@ -21817,7 +21804,7 @@
        return str.replace(/(^\s*)|(\s*$)/g, '');
    };
})(jQuery);/**
})(jQuery);/**
 * jQuery ligerUI 1.3.2
 *
 * http://ligerui.com
@ -21989,7 +21976,7 @@
                });
                g.window.append("<div class='l-btn-nw-drop'></div>");
            }
            //设置事件
            //设置事件 
            $(".l-window-toggle", g.window).click(function ()
            {
                if ($(this).hasClass("l-window-toggle-close"))