tchao 3 rokov pred
rodič
commit
0c42b8d6dd
100 zmenil súbory, kde vykonal 27154 pridanie a 0 odobranie
  1. 37 0
      web/js/lg/getLg.jsp
  2. 374 0
      web/js/lg/lgUtil.js
  3. 14516 0
      web/js/lg/ligerui.all.js
  4. 166 0
      web/js/lg/plugins/htCatCombo.js
  5. 195 0
      web/js/lg/plugins/htDicCombo.js
  6. 177 0
      web/js/lg/plugins/ligerAccordion.js
  7. 125 0
      web/js/lg/plugins/ligerCheckBox.js
  8. 1070 0
      web/js/lg/plugins/ligerComboBox.js
  9. 313 0
      web/js/lg/plugins/ligerForm.js
  10. 4365 0
      web/js/lg/plugins/ligerGrid.js
  11. 321 0
      web/js/lg/plugins/ligerMenu.js
  12. 266 0
      web/js/lg/plugins/ligerMessageBox.js
  13. 163 0
      web/js/lg/plugins/ligerMsg.js
  14. 517 0
      web/js/lg/plugins/ligerPopupEdit.js
  15. 146 0
      web/js/lg/plugins/ligerRadio.js
  16. 378 0
      web/js/lg/plugins/ligerSpinner.js
  17. 823 0
      web/js/lg/plugins/ligerTab.js
  18. 233 0
      web/js/lg/plugins/ligerTextBox.js
  19. 192 0
      web/js/lg/plugins/ligerTip.js
  20. 91 0
      web/js/lg/plugins/ligerToolBar.js
  21. 1222 0
      web/js/lg/plugins/ligerTree.js
  22. 354 0
      web/js/lg/plugins/ligerWindow.js
  23. 109 0
      web/js/lg/skins/Aqua/css/ligerui-common.css
  24. 321 0
      web/js/lg/skins/Aqua/css/ligerui-form.css
  25. 535 0
      web/js/lg/skins/Aqua/css/ligerui-grid.css
  26. 67 0
      web/js/lg/skins/Aqua/css/ligerui-layout.css
  27. 26 0
      web/js/lg/skins/Aqua/css/ligerui-menu.css
  28. 52 0
      web/js/lg/skins/Aqua/css/ligerui-tab.css
  29. BIN
      web/js/lg/skins/Aqua/images/common/bigloading.gif
  30. BIN
      web/js/lg/skins/Aqua/images/common/exclamation.gif
  31. BIN
      web/js/lg/skins/Aqua/images/common/invalid-line.gif
  32. BIN
      web/js/lg/skins/Aqua/images/common/loading.gif
  33. BIN
      web/js/lg/skins/Aqua/images/common/table.png
  34. BIN
      web/js/lg/skins/Aqua/images/controls/bg-panel-title-over.gif
  35. BIN
      web/js/lg/skins/Aqua/images/controls/bg-panel-title.gif
  36. BIN
      web/js/lg/skins/Aqua/images/controls/bg-tab-title.gif
  37. BIN
      web/js/lg/skins/Aqua/images/controls/bg-text.gif
  38. BIN
      web/js/lg/skins/Aqua/images/controls/bg-trigger.gif
  39. BIN
      web/js/lg/skins/Aqua/images/controls/btn.gif
  40. BIN
      web/js/lg/skins/Aqua/images/controls/button-bg-over.gif
  41. BIN
      web/js/lg/skins/Aqua/images/controls/checkbox.gif
  42. BIN
      web/js/lg/skins/Aqua/images/controls/dateeditor-header-bg.gif
  43. BIN
      web/js/lg/skins/Aqua/images/controls/radio.gif
  44. BIN
      web/js/lg/skins/Aqua/images/dateeditor/icon-first.gif
  45. BIN
      web/js/lg/skins/Aqua/images/dateeditor/icon-prev.gif
  46. BIN
      web/js/lg/skins/Aqua/images/grid/grid-checkbox-checked.gif
  47. BIN
      web/js/lg/skins/Aqua/images/grid/grid-detail-open.gif
  48. BIN
      web/js/lg/skins/Aqua/images/grid/grid-tree-open.gif
  49. BIN
      web/js/lg/skins/Aqua/images/grid/header-bg-over.gif
  50. BIN
      web/js/lg/skins/Aqua/images/grid/header2-bg.jpg
  51. BIN
      web/js/lg/skins/Aqua/images/grid/popup-row-over.gif
  52. BIN
      web/js/lg/skins/Aqua/images/icon/bar-button-over.gif
  53. BIN
      web/js/lg/skins/Aqua/images/icon/checkbox-checked.gif
  54. BIN
      web/js/lg/skins/Aqua/images/icon/checkbox.gif
  55. BIN
      web/js/lg/skins/Aqua/images/icon/icon-close.png
  56. BIN
      web/js/lg/skins/Aqua/images/icon/icon-down.gif
  57. BIN
      web/js/lg/skins/Aqua/images/icon/icon-drop.gif
  58. BIN
      web/js/lg/skins/Aqua/images/icon/icon-first.gif
  59. BIN
      web/js/lg/skins/Aqua/images/icon/icon-last.gif
  60. BIN
      web/js/lg/skins/Aqua/images/icon/icon-line.gif
  61. BIN
      web/js/lg/skins/Aqua/images/icon/icon-load.gif
  62. BIN
      web/js/lg/skins/Aqua/images/icon/icon-next.gif
  63. BIN
      web/js/lg/skins/Aqua/images/icon/icon-sort-asc.gif
  64. BIN
      web/js/lg/skins/Aqua/images/icon/icon-sort-desc.gif
  65. BIN
      web/js/lg/skins/Aqua/images/layout/accordion-header.gif
  66. BIN
      web/js/lg/skins/Aqua/images/layout/bg.png
  67. BIN
      web/js/lg/skins/Aqua/images/layout/layout-header-over.gif
  68. BIN
      web/js/lg/skins/Aqua/images/layout/layout-header.gif
  69. BIN
      web/js/lg/skins/Aqua/images/layout/mini-bottom.gif
  70. BIN
      web/js/lg/skins/Aqua/images/layout/mini-left.gif
  71. BIN
      web/js/lg/skins/Aqua/images/layout/mini-right.gif
  72. BIN
      web/js/lg/skins/Aqua/images/layout/mini-top.gif
  73. BIN
      web/js/lg/skins/Aqua/images/layout/panel-header.gif
  74. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-bg.gif
  75. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-bg.jpg
  76. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-item-bg.gif
  77. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-item-left-bg.gif
  78. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-item-over-Lbg.gif
  79. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-item-over-bg.gif
  80. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-item-right-bg.gif
  81. BIN
      web/js/lg/skins/Aqua/images/layout/tabs-tools.gif
  82. BIN
      web/js/lg/skins/Aqua/images/layout/togglebar.gif
  83. BIN
      web/js/lg/skins/Aqua/images/menu/menu-item-arrow.gif
  84. BIN
      web/js/lg/skins/Aqua/images/menu/menu-item-down.gif
  85. BIN
      web/js/lg/skins/Aqua/images/menu/menu-item-over-l.gif
  86. BIN
      web/js/lg/skins/Aqua/images/menu/menu-item-over-r.gif
  87. BIN
      web/js/lg/skins/Aqua/images/menu/menu-line-x.gif
  88. BIN
      web/js/lg/skins/Aqua/images/menu/menu-line-y.gif
  89. BIN
      web/js/lg/skins/Aqua/images/panel/bar-bg.gif
  90. BIN
      web/js/lg/skins/Aqua/images/panel/header-bg.jpg
  91. BIN
      web/js/lg/skins/Aqua/images/panel/panel-header.gif
  92. BIN
      web/js/lg/skins/Aqua/images/panel/panel-menu-item-down.gif
  93. BIN
      web/js/lg/skins/Aqua/images/panel/panel-menu.gif
  94. BIN
      web/js/lg/skins/Aqua/images/panel/panel-toolbar.gif
  95. BIN
      web/js/lg/skins/Aqua/images/panel/panel-tools.gif
  96. BIN
      web/js/lg/skins/Aqua/images/tree/folder.gif
  97. BIN
      web/js/lg/skins/Aqua/images/tree/loading.gif
  98. BIN
      web/js/lg/skins/Aqua/images/tree/tree-level.gif
  99. BIN
      web/js/lg/skins/Aqua/images/tree/tree-noline.gif
  100. 0 0
      web/js/lg/skins/Aqua/images/tree/tree-status-open.gif

+ 37 - 0
web/js/lg/getLg.jsp

@@ -0,0 +1,37 @@
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@taglib prefix="f" uri="http://www.jee-soft.cn/functions" %>
+<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
+<%@ taglib prefix="hotent" uri="http://www.jee-soft.cn/paging" %>
+<c:set var="ctx" value="${pageContext.request.contextPath}" />
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<f:link href="Aqua/css/ligerui-all.css"></f:link>
+<f:link href="web.css"></f:link>
+<f:link href="jquery/plugins/rowOps.css"></f:link>
+<f:js pre="js/lang/common" ></f:js>
+<f:js pre="js/lang/js" ></f:js>
+<script type="text/javascript" src="${ctx}/js/dynamic.jsp"></script>
+<script type="text/javascript" src="${ctx}/js/jquery/jquery.js"></script>
+<script type="text/javascript" src="${ctx}/js/util/util.js"></script>
+<script type="text/javascript" src="${ctx}/js/util/json2.js"></script>
+<script type="text/javascript" src="${ctx}/js/util/form.js"></script>
+<script type="text/javascript" src="${ctx}/js/calendar/My97DatePicker/WdatePicker.js"></script>
+<script type="text/javascript" src="${ctx}/js/lg/base.js"></script>
+<script type="text/javascript" src="${ctx}/js/hotent/SysDialog.js"></script>
+<script type="text/javascript" src="${ctx}/js/lg/util/SelectUtilLg.js"></script>
+<script type="text/javascript" src="${ctx}/js/lg/ligerui.min.js"></script>
+<script type="text/javascript" src="${ctx}/js/hotent/displaytag.js" ></script>
+
+<script type="text/javascript" src="${ctx}/js/lg/plugins/ligerComboBox.js"></script>
+<script type="text/javascript" src="${ctx}/js/lg/plugins/ligerGrid.js"></script>
+<script type="text/javascript" src="${ctx}/js/lg/plugins/ligerDialog.js" ></script>
+<script type="text/javascript" src="${ctx}/js/lg/lgUtil.js"></script>
+<script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.htselect.js"></script>
+<script type="text/javascript" src="${ctx}/js/jquery/plugins/jquery.rowOps.js"></script>
+
+<script type="text/javascript" src="${ctx}/js/lg/util/foldBoxLg.js" ></script>
+<script type="text/javascript" src="${ctx}/js/hotent/absoulteInTop.js" ></script>
+
+<%@include file="/js/msg.jsp"%>
+

+ 374 - 0
web/js/lg/lgUtil.js

@@ -0,0 +1,374 @@
+var grid;
+var id;
+var rowindex = 0;
+var columns = []; //所有的列表names
+var hideColumns = []; //所有的列表names
+var disabledColumns = []; //所有只显示却不能编辑的列 -》》需要解决这种不能编辑的列的值保存不成功的问题。
+var disabledColumnsDatas = {}; //所有只显示却不能编辑的列 -》》需要解决这种不能编辑的列的值保存不成功的问题。
+var currentEditData; //当前编辑行的数据
+var innerEdit = true; //页内编辑是否
+var innerAdd = false; //页内编辑是否
+var pageBean = {}; // 分页对象
+var needToolbar = true; //设置是否需要操作栏
+var newRows=[];//新增添并且没有保存的数据
+$(function() {
+    $("div.groupUI > a.link.del").unbind("click");
+    $("div.groupUI > a.link.search").unbind("click");
+    //删除操作
+    $("div.groupUI > a.link.del").click(delFunction);
+    //查询操作
+    $("div.groupUI > a.link.search").click(function() {
+        if (!$(this).hasClass('disabled')) {
+        	var queryDatas={};
+        	grid.options.isAdding = false;
+            $(".inputText").each(function(index, item) {
+                queryDatas[$(item).attr("name")] = $(item).val();
+            });
+            grid.options.parms=$.extend(true, {}, queryDatas);
+            queryDatas.page = 1;
+            queryDatas.pagesize = pageBean["pageSize"];
+            var serachAction = $("#searchForm").attr("action");
+            $.post(serachAction, queryDatas, 
+            function(response) {
+            	grid.options['newPage']=1;
+                grid._getSearchData(response);
+            })
+        }
+    });
+});
+
+function initData(context) {
+    //通过context.columns 获取当前的显示的columns、隐藏的hideColumns和不能编辑的disabledColumns列。
+    for (var column in context.columns) {
+        if (!context.columns[column]["hide"]) {
+            columns.push(context.columns[column]["name"]);
+        } else {
+            var hideCol = context.columns[column]["name"]
+            hideColumns.push(hideCol);
+        }
+        if (!context.columns[column]["editor"]) {
+            disabledColumns.push(context.columns[column]["name"]);
+        }
+    }
+    innerEdit = context.innerEdit;
+    innerAdd = context.innerAdd;
+    needToolbar = context.needToolbar;
+    //计算列宽
+    var columnWidth = Math.ceil((document.body.clientWidth) / (columns.length)) - 8;
+    if (needToolbar) {
+        //如果需要操作栏 需要减去操作栏的列宽在进行计算
+        columnWidth = Math.ceil((document.body.clientWidth - 200) / (columns.length)) - 8;
+        context.columns.push({
+            display: '操作',
+            isSort: false,
+            isAllowHide: false,
+            width: 200,
+            render: function(rowdata, rowindex, value) {
+                var h = "";
+                //操作栏的显示按钮 可以进行扩展
+                if (!rowdata._editing) {
+                    h += "<a href='javascript:beginEdit(" + rowindex + "," + rowdata.id + ")'>修改</a> ";
+                    h += "<a class='link del' href='javascript:delFunction(" + rowindex + "," + rowdata.id + ")'>删除</a> ";
+                } else {
+                    h += "<a href='javascript:submitChange(" + rowindex + "," + rowdata.id + ")'>提交</a> ";
+                    h += "<a href='javascript:cancelEdit(" + rowindex + ")'>取消</a> ";
+                }
+                return h;
+            }
+        });
+    }
+    grid = $("#grid").ligerGrid({
+        columns: context.columns, //展现的字段
+        usePager: true, //是否用分页
+        url: "getList.ht", //url  这里使用url 那么dataAction需要设为'server'
+        root: "Rows", //json数据的开头  不需要修改
+        record: 'Total', //总数的开头  不需要修改
+        dataAction: 'server', //数据从服务器获取
+        pageSize: 10, //当前页的显示数据大小
+        pageSizeOptions :[5,10,15,20],
+        width: 'auto', //设置宽度
+        heightDiff: -10, //设置高度调整,当height为100%时可能会超过屏幕。
+        checkbox: true, //是否显示复选框
+        rownumbers: true, //是否显示行序号
+        columnWidth: columnWidth, //默认列宽度
+        rowHeight: 35, //行默认的高度
+        enabledSort: true, //是否允许排序
+        enabledEdit: true, //是否允许编辑
+        clickToEdit: false, //是否允许 单击进行单元格编辑
+        dateFormat: "yyyy-MM-dd", //默认时间显示格式
+        fixedCellHeight: true, //是否固定单元格的高度
+        colDraggable: false,
+        allowAdjustColWidth: 0,
+        onCheckRow: function(checked, data, rowid, rowobj) {
+            if (checked) {
+                id = data.id;
+                rowindex = data.__index;
+            } //选中之后触发的事件  这里锁定id和rowindex
+        },
+        onAfterSubmitEdit: function(e) {
+            currentEditData = e;
+            for (var id in disabledColumns) {
+                if (!isInArray(hideColumns, disabledColumns[id])) {
+                    currentEditData.newdata[disabledColumns[id]] = disabledColumnsDatas[disabledColumns[id]];
+                    currentEditData.record[disabledColumns[id]] = disabledColumnsDatas[disabledColumns[id]];
+                }
+            }
+        },
+        onLoaded: function(grid) {
+            grid.gridloading['hide']();
+        },
+        onEndEdit: function(e) {
+            console.info("onEndEdit");
+        }
+    });
+    
+    //判断是否需要进行页内添加
+    innerAdd=true;
+    if(innerAdd||columns.length<=9){
+	 //添加操作
+	    $("div.groupUI > a.link.add").unbind("click");
+	    $("div.groupUI > a.link.add").click(function(){
+	    	grid.options.isAdding = true;
+	    	grid.currentData.Rows=[];
+	    	newRows.push(grid.addRow());
+	    	for(var index=0;index<newRows.length;index++){
+	    		grid.beginEdit(newRows[index]);
+	    	}
+	    });
+    }else{
+    	$("div.groupUI > a.link.add").attr("href",$("div.groupUI > a.link.add").attr("action"));
+    }
+    
+    //判断是否需要进行页内编辑
+    $("a.link.update").unbind("click");
+    $("div.groupUI > a.link.update").click(function() {
+        if ($(this).hasClass('disabled'))
+            return false;
+        var aryId = [];
+        var rows = grid.getCheckedRows();
+        $(rows).each(function(i, item) {
+            aryId.push(item.id);
+        });
+        if (aryId.length == 0) {
+            $.ligerDialog.warn("还没有选择,请选择一项进行编辑!", '提示信息');
+            return false;
+        } else if (aryId.length > 1) {
+            $.ligerDialog.warn("已经选择了多项,请选择一项进行编辑!", '提示信息');
+            return false;
+        }
+        innerEdit=true;
+        if (innerEdit||columns.length<=9) {
+            beginEdit(rowindex);
+            return false;
+        }
+        var name = "id";
+        var value = aryId[0];
+        var form = new com.hotent.form.Form();
+        var action = $(this).attr("action");
+        form.creatForm("form", action);
+        form.addFormEl(name, value);
+        form.submit();
+    
+    });
+
+    //判断是否需要进行页内编辑
+    $("a.link.merge").unbind("click");
+    $("div.group > a.link.merge").click(function() {
+
+    });
+    
+}
+
+// 开始编辑
+function beginEdit(rowid, curId) {
+    rowindex = rowid;
+    id = curId;
+    var currentRow = grid['currentData']['Rows'][rowindex];
+    for (var id in disabledColumns) {
+        disabledColumnsDatas[disabledColumns[id]] = currentRow[disabledColumns[id]];
+    }
+    grid.beginEdit(rowid);
+}
+;
+// 取消编辑
+function cancelEdit(rowid, id) {
+	loadData();
+    grid.cancelEdit(rowid);
+}
+;
+function endEdit(rowid, id) {
+    grid.endEdit(rowid);
+}
+;
+//删除操作
+function delFunction(index, id) {
+    var params = {}, rowid = "", delId = "";
+    if (id && index >= 0) {
+        delId = id;
+        rowid = index;
+    } else {
+        delId = [];
+        var rows = grid.getCheckedRows();
+        $(rows).each(function(i, item) {
+            delId.push(item.id);
+        });
+        if (delId.length == 0) {
+            $.ligerDialog.warn("请选择记录!");
+            return;
+        }
+        delId = JSON.stringify(delId);
+        if(delId.indexOf("[")>=0){
+		    delId=delId.substring(1,delId.length-1);
+		}
+    }
+    //向后台传输的值 当前页、当前选中的id 和当前页大小
+    params= $.extend(true,{},grid.options.parms);
+    params.id = delId;
+    params.page = pageBean["currentPage"];
+    params.pagesize = pageBean["pageSize"];
+    $.ligerDialog.confirm('确认删除所选数据吗?', '提示信息', function(rtn) {
+        if (rtn) {
+            $.post("del.ht", params, function(response) {
+                //在LigerGrid中自定仪的_getSearchData方法 用于渲染返回回来的json数据列表   response主要返回了两个数据  一个是提示信息,另一个是删除之后查询出来的json数据
+	            	 //在grid列表中删除选中的行
+	            if (rowid != '') {
+	                grid.deleteRow(rowid);
+	            } else {
+	                grid.deleteSelectedRow();
+	            }
+                grid._getSearchData(response.substring(response.indexOf("}") + 1, response.length));
+                showResponse(response.substring(0, response.indexOf("}") + 1));
+            })
+        }
+    });
+}
+//提交修改
+function submitChange(rowid, id) {
+    endEdit(rowid, id);
+    var dateCols = currentEditData.dateCols;
+    var json = currentEditData.newdata;
+    for (var js in json) {
+        if (json[js] instanceof Date) {
+            json[js] = json[js].Format(dateCols[js]);
+        } else {
+            json[js] = json[js];
+        }
+    }
+    json["id"] = id;
+    var jsonObj = {"json": JSON.stringify(json)};
+    $.post("save.ht", jsonObj, function(response) {
+        showResponse(response);
+    })
+}
+//提示操作后的反馈信息
+function showResponse(responseText) {
+	loadData();
+    var obj = new com.hotent.form.ResultMessage(responseText);
+    if (obj.isSuccess()) { // 成功
+        $.ligerDialog.closeWaitting();
+        $.ligerDialog.success('<p><font color="green">' + obj.getMessage() 
+        + '</font></p>', '提示信息', function() {
+        });
+    } else { // 失败
+        $.ligerDialog.closeWaitting();
+        var message = '<p><font color="red">' + obj.getMessage() 
+        + '</font></p>';
+        $.ligerDialog.tipDialog('提示信息', "删除结果如下:", message, null, function() {
+            $.ligerDialog.hide();
+        });
+    }
+}
+//获取日期类型中的配置
+function getFormat(json) {
+    json = eval("[" + json + "]");
+    var format = json[0].format || "yyyy-MM-dd";
+    return format;
+}
+//获取代码生成之后下拉选择框的参数    因为ligerui支持的是 [{fieldName : "", text:""},{fieldName : "", text:""}]类型的数据格式
+function getSelectData(options, fieldName) {
+    options = options.replaceAll('key', fieldName);
+    options = eval(options.replaceAll('value', 'text'));
+    return options;
+}
+// 初始化数据 ,并且将带有日期的数据转换
+function getFormatData(response) {
+    var jsonObj = {};
+    jsonObj.Rows = eval(response);
+    for (var i = 0; i < jsonObj.Rows.length; i++) {
+        for (var j = 0; j < columns.length; j++) {
+            var tempVar = jsonObj.Rows[i][columns[j]];
+            if (tempVar && tempVar.time) {
+                jsonObj.Rows[i][columns[j]] = new Date(tempVar.time);
+            }
+        }
+    }
+    return jsonObj.Rows;
+}
+//解决IE下面new Date("yyyy-mm-dd")为NAN值的情况
+function newDate(str) {
+    str = str.split('-');
+    var date = new Date();
+    date.setUTCFullYear(str[0], str[1] - 1, str[2]);
+    date.setUTCHours(0, 0, 0, 0);
+    return date;
+}
+//获取单选框和复选框key对应的值 用于显示在grid中。
+function getComboboxValue(options, curVal) {
+    if (!curVal) {
+        return;
+    }
+    var curVals = curVal.split(",");
+    var returnText = "";
+    options = eval(options);
+    for (var i = 0; i < options.length; i++) {
+        for (var j in curVals) {
+            if (options[i]['key'] == curVals[j]) {
+                returnText += options[i]['value'] + ",";
+            }
+        }
+    }
+    return returnText.substring(0, returnText.length - 1);
+}
+//当窗口大小改变时  自动改变列宽
+function relaziseWidth() {
+    var columnWidth = Math.ceil((document.body.clientWidth) / (columns.length)) - 8;
+    var columnsLength = grid.columns.length;
+    if (needToolbar) {
+        columnWidth = Math.ceil((document.body.clientWidth - 200) / (columns.length)) - 8;
+        columnsLength = columnsLength - 1;
+    }
+    for (var i = 1; i < columnsLength; i++) {
+        grid.columns[i]["_width"] = columnWidth;
+    }
+    var headCells = $(".l-grid-hd-cell-inner:parent[columnname!='']");
+    for (var i = 1; i < headCells.length; i++) {
+        if (needToolbar && i == headCells.length - 1) {
+            $(headCells[i]).attr("style", "width:" + 200 + "px;");
+            break;
+        }
+        if (hideColumns.length > 0) {
+            if (headCells[i]['clientWidth'] != 0) {
+                $(headCells[i]).attr("style", "width:" + (columnWidth) + "px;");
+                $(headCells[i]).parent(".l-grid-hd-cell").attr("style", "width:" + (columnWidth - 2) + "px;");
+            }
+        } else {
+            $(headCells[i]).attr("style", "width:" + (columnWidth - 2) + "px;");
+            $(headCells[i]).parent(".l-grid-hd-cell").attr("style", "width:" + (columnWidth) + "px;");
+        }
+    
+    }
+    if (grid.currentData) {
+        grid.reRender();
+    }
+}
+function isInArray(arr, obj) {
+    for (i = 0; i < arr.length && arr[i] != obj; i++);
+    return !(i == arr.length);
+}
+function loadData(){
+	if(grid.options.isAdding){
+		grid.options['newPage']=1;
+		grid.loadData(true);
+		grid.options.isAdding=false;
+	}
+}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 14516 - 0
web/js/lg/ligerui.all.js


+ 166 - 0
web/js/lg/plugins/htCatCombo.js

@@ -0,0 +1,166 @@
+/**
+ * 分类下拉框。
+ * 1.catKey:
+ * 		对应SYS_TYPE_KEY 表中的typeKey字段。
+ * 2.catComBo:
+ * 		分类的key值。	
+ * 3.valueField
+ *  	分类对应的字段(为隐藏字段)。
+ * 4.isMultiSelect
+ * 		是否允许多选。
+ * 5.value
+ * 		分类名称。
+ * 6.typeId:分类id。
+ * 7.treeLeafOnly
+ * 		如果是树形下拉框,只选择叶子节点。
+ * 8.height 下拉框的高度。
+ * <input class="catComBo" catKey="xueli" valueField=""    name="BoxMultiName" isMultiSelect="true" width="200" typeId='分类值' value="博士"/>
+ */
+$(function() {
+	var ctx = __ctx;
+	/**
+	 * 读取配置信息。
+	 */
+	function readCatProp(dicCombo) {
+		//读取配置信息
+		var prop = {
+			//分类对应的分类key。
+			catKey : $(dicCombo).attr("catKey"),
+			width : $(dicCombo).attr("width"),
+			height : $(dicCombo).attr("height"),
+			//允许多选
+			isMultiSelect : $(dicCombo).attr("isMultiSelect"),
+			//只选择页节点
+			treeLeafOnly : $(dicCombo).attr("treeLeafOnly"),
+			value : $(dicCombo).attr("value"),
+			//选中的值。
+			catValue:$(dicCombo).attr("catValue"),
+			name : $(dicCombo).attr("name"),
+			valueField:$(dicCombo).attr("valueField"),
+			isNodeKey : $(dicCombo).attr("isNodeKey"),
+			onSelected:$(dicCombo).attr("onSelected")
+		};
+		//catKey 是必须的。
+		if (isValueNull(prop.catKey)) {
+			$.ligerMsg.warn('分类控件,catKey属性必须有!');
+			return;
+		}
+		//宽度
+		if (isValueNull(prop.width)) {
+			prop.width = $(dicCombo).width();
+		}
+		//高度
+		if (isValueNull(prop.height)){
+			prop.height = 150;
+		}
+	
+		//是否多选
+		if (isValueNull(prop.isMultiSelect)){
+			prop.isMultiSelect = false;
+		}
+		//树形多选的配置。
+		if (prop.isMultiSelect) {
+			prop.check = {
+				enable : true,
+				chkboxType : {"Y" : "s","N" : "s"}
+			};
+		}
+		//页节点选中
+		if (isValueNull(prop.treeLeafOnly)){
+			prop.treeLeafOnly = false;
+		}
+		
+		return prop;
+	}
+	
+	//判断是否为空。
+	function isValueNull(obj){
+		if(obj == 'undefined' || obj == null || obj == '')
+			return true;
+		return false;
+	}
+	//从服务端加载数据。
+	function processCat(catComBo, prop) {
+		
+		var url=ctx + "/platform/system/globalType/getByCatKey.ht";
+		//值
+		var catValue=prop.catValue;
+		if(catValue=="0") catValue="";
+		
+		var params={catKey:prop.catKey,hasRoot:0};
+		$.post(url,params,function(rtnData){
+			//没有这个可以选择tree。
+			var nameKey="typeId";
+			if(!isValueNull(prop.isNodeKey)){
+				nameKey="nodeKey";
+			}
+			$.each(rtnData, function(i, d) {
+				if(!isValueNull(prop.isNodeKey)){
+					d.id = d.nodeKey;
+				}
+				else{
+					d.id=d.typeId;
+				}
+				d.text = d.typeName;
+			});
+			// 树形
+			var comboBox=$(catComBo).ligerComboBox({
+				valueFieldID:prop.valueField,
+				width : prop.width,
+				treeLeafOnly : prop.treeLeafOnly,
+				
+				tree : {
+					nameKey:nameKey,
+					data : {simpleData : {enable: true,idKey: 'typeId',pIdKey : "parentId"},
+						key : {name : "typeName"},
+						data : rtnData
+					},
+					selectValue:catValue,
+					view : { selectedMulti : prop.isMultiSelect},
+					check : prop.check
+				},
+				selectBoxWidth : prop.width,
+				selectBoxHeight : prop.height,
+				onSelected:function(newval){
+					if(this._toggleSelectBox){
+						this._toggleSelectBox(true);
+					}
+					else if(comboBox && comboBox._toggleSelectBox){
+						comboBox._toggleSelectBox(true);
+					}
+					if(prop.onSelected){
+						eval(prop.onSelected+'.call(this,newval)');
+					}
+				}
+			});
+			comboBox.ztree.expandAll(false);
+			
+			//判断是否有值字段
+			if(!isValueNull(prop.valueField)){
+				var hidCatField=$("#" + prop.valueField);
+				//设置隐藏域的分类id
+				if(hidCatField.length>0){
+					hidCatField.val(catValue);
+				}
+			}
+		});
+	}
+	// htCatCombo
+	$.fn.htCatCombo = function(option) {
+		$(this).each(function() {
+			var prop = readCatProp(this);
+			processCat(this, prop);
+		});
+	};
+	
+	function initCatComboBox(){
+		$('.catComBo').each(function() {
+			$(this).htCatCombo();
+		});
+	}
+	
+	$.extend({initCatComboBox:initCatComboBox});
+	
+	$.initCatComboBox();
+	
+});

+ 195 - 0
web/js/lg/plugins/htDicCombo.js

@@ -0,0 +1,195 @@
+/**
+ * 数据字典分类下拉框。
+ * 1.nodeKey:
+ * 		对应数据分类表中的字典nodekey字段。
+ * 
+ * 2.下拉框类型:
+ * 		1.dicComboBox:
+ * 			表示普通的下拉框
+ * 		2.dicCombo:
+ * 			可为下拉框和树形下拉框。
+ * 		3.dicComboTree:
+ *	 		树形下拉框。
+ * 3.valueFieldID
+ *  	字典对应的值。
+ * 4.isMultiSelect
+ * 		是否允许多选。
+ * 5.value
+ * 		下拉框选择的值。
+ * 6.treeLeafOnly
+ * 		如果是树形下拉框,只选择叶子节点。
+ * 
+ * 7.height 下拉框的高度。
+ * <input class="dicComboBox" nodeKey="xueli"  valueFieldID="BoxMultiId" name="BoxMultiName" isMultiSelect="true" width="200" value="博士"/>
+ */
+$(function() {
+	var ctx = __ctx;
+	/**
+	 * 读取配置信息。
+	 */
+	function readProp(dicCombo) {
+	
+		//读取配置信息
+		var prop = {
+			//字典对应的分类key。
+			nodeKey : $(dicCombo).attr("nodeKey"),
+			width : $(dicCombo).attr("width"),
+			height : $(dicCombo).attr("height"),
+			//值字段。
+			valueFieldID : $(dicCombo).attr("valueFieldID"),
+			//允许多选
+			isMultiSelect : $(dicCombo).attr("isMultiSelect"),
+			//只选择页节点
+			treeLeafOnly : $(dicCombo).attr("treeLeafOnly"),
+			value : $(dicCombo).attr("value"),
+			name : $(dicCombo).attr("name"),
+			onSelected:$(dicCombo).attr("onSelected")
+		};
+		//nodekey 是必须的。
+		if (isObjNull(prop.nodeKey)) {
+			$.ligerDialog.warn('数据字典控件,nodeKey属性不能为空!');
+			return;
+		}
+		//宽度
+		if (isObjNull(prop.width)) prop.width = isObjNull($(dicCombo).width())?150:$(dicCombo).width();
+		//高度
+		if (isObjNull(prop.height)) prop.height = isObjNull($(dicCombo).height())&&$(dicCombo).height()<50?100:$(dicCombo).height();
+		//字段值的ID
+		if (isObjNull(prop.valueFieldID)){
+			//表单字段命名为 m:表名:字段名称,在提交数据的时候程序会检查表单名称为m:开头的字段,这个id是不提交的,所以替换掉。
+			prop.valueFieldID = $(dicCombo).attr("name").replaceAll(":","") +"_id";
+		}
+		//是否多选
+		if (isObjNull(prop.isMultiSelect)) prop.isMultiSelect = false;
+
+		//树形多选的配置。
+		if (prop.isMultiSelect) {
+			prop.check = {
+				enable : true,
+				chkboxType : {"Y" : "s","N" : "s"}
+			};
+		}
+		//页节点选中
+		if (isObjNull(prop.treeLeafOnly)){
+			prop.treeLeafOnly = false;
+		}
+		return prop;
+	}
+	
+	/**
+	 * 判断是否为空。
+	 */
+	function isObjNull(v, allowBlank){
+		return v === null || v === undefined || (!allowBlank ? v === '' : false);
+	}
+	/**
+	 * 从服务端加载数据字典的数据。
+	 */
+	function process(dicCombo, prop) {
+		//防止prop为空时JS报错
+		if(typeof(prop) == undefined || prop == null || prop== ''){
+			return;
+		}
+		if(typeof(prop.nodeKey) == undefined || prop.nodeKey == null || prop.nodeKey== ''){
+			return;
+		}
+		var url=ctx + "/platform/system/dictionary/getMapByNodeKey.ht";
+		var params={nodeKey:prop.nodeKey};
+		$.post(url,params,function(data){
+			//取得分类类型。
+			var globalType=data.globalType;
+			if(!globalType) return;
+			//类型(0平铺,1树形)
+			var type=globalType.type;
+			var dicList=data.dicList;
+			//下拉框已有的值。
+			var dictValue = $(dicCombo).val();
+			
+			var ligerComboObj;
+			
+			$.each(dicList, function(i, d) {
+				d.id = d.itemName;
+				d.text = d.itemName;
+				
+			});
+			
+			//平铺的情况。
+			if ( type == 0) {
+			
+				// 平铺
+				ligerComboObj = $(dicCombo).ligerComboBox({
+					data : dicList,
+					valueFieldID : prop.valueFieldID ,
+					width : prop.width,
+					isMultiSelect : prop.isMultiSelect ,
+					slide:false,
+					isShowCheckBox :prop.isMultiSelect,
+					onSelected:function(newval){
+						if(this._toggleSelectBox){
+							this._toggleSelectBox(true);
+						}
+						else if(ligerComboObj && ligerComboObj._toggleSelectBox){
+							ligerComboObj._toggleSelectBox(true);
+						}
+						if(prop.onSelected){
+							eval(prop.onSelected+'.call(this,newval)');
+						}
+					}
+				});
+				$(dicCombo).trigger("blur");
+			} else if ( type == 1) {
+				// 树形
+				$(dicCombo).ligerComboBox({
+					slide:false,
+					valueFieldID : prop.valueFieldID,
+					width : prop.width,
+					treeLeafOnly : prop.treeLeafOnly,
+					tree : {
+						nameKey:"itemName",
+						data : {simpleData : {enable: true,idKey: 'dicId',pIdKey : "parentId"},
+							key : {name : "itemName"},
+							data : dicList
+						},
+						selectValue:dictValue,
+						view : { selectedMulti : prop.isMultiSelect},
+						check : prop.check
+					},
+					selectBoxWidth : prop.width,
+					selectBoxHeight : prop.height,
+					onSelected:function(newval){
+						if(this._toggleSelectBox){
+							this._toggleSelectBox(true);
+						}
+						else if(ligerComboObj && ligerComboObj._toggleSelectBox){
+							ligerComboObj._toggleSelectBox(true);
+						}
+						if(prop.onSelected){
+							eval(prop.onSelected+'.call(this,newval)');
+						}
+					}
+				});
+			}
+			
+			$.each(dicList, function(i, d) {
+				if(isObjNull(dictValue)==false){
+					if(dictValue==d.text){
+						$("#" + prop.valueFieldID).val(d.id);
+					}
+				}
+			});
+		});
+	}
+	// htDicCombo
+	$.fn.htDicCombo = function(option) {
+		$(this).each(function() {
+			var prop = readProp(this);
+			process(this, prop);
+		});
+	};
+	
+	$('.dicComboBox,.dicComboTree,.dicCombo').each(function() {
+		//子表的模板列不做下拉框变换
+		if($(this).parents("[formtype='edit']").length>0)return;
+		$(this).htDicCombo();
+	});
+});

+ 177 - 0
web/js/lg/plugins/ligerAccordion.js

@@ -0,0 +1,177 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.fn.ligerAccordion = function (options)
+    {
+        return $.ligerui.run.call(this, "ligerAccordion", arguments);
+    };
+
+    $.fn.ligerGetAccordionManager = function ()
+    {
+        return $.ligerui.get(this);
+    };
+
+    $.ligerDefaults.Accordion = {
+        height: null,
+        speed: "normal",
+        changeHeightOnResize: false,
+        heightDiff: 0 // 高度补差  
+    };
+    $.ligerMethos.Accordion = {};
+
+    $.ligerui.controls.Accordion = function (element, options)
+    {
+        $.ligerui.controls.Accordion.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.Accordion.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'Accordion';
+        },
+        __idPrev: function ()
+        {
+            return 'Accordion';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Accordion;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.accordion = $(g.element);
+            if (!g.accordion.hasClass("l-accordion-panel")) g.accordion.addClass("l-accordion-panel");
+            var selectedIndex = 0;
+            if ($("> div[lselected=true]", g.accordion).length > 0)
+                selectedIndex = $("> div", g.accordion).index($("> div[lselected=true]", g.accordion));
+
+            $("> div", g.accordion).each(function (i, box)
+            {
+                var header = $('<div class="l-accordion-header"><div class="l-accordion-toggle"></div><div class="l-accordion-header-inner"></div></div>');
+                if (i == selectedIndex)
+                    $(".l-accordion-toggle", header).addClass("l-accordion-toggle-open");
+                if ($(box).attr("title"))
+                {
+                    $(".l-accordion-header-inner", header).html($(box).attr("title"));
+                    $(box).attr("title", "");
+                }
+                $(box).before(header);
+                if (!$(box).hasClass("l-accordion-content")) $(box).addClass("l-accordion-content");
+            });
+
+            //add Even
+            $(".l-accordion-toggle", g.accordion).each(function ()
+            {
+                if (!$(this).hasClass("l-accordion-toggle-open") && !$(this).hasClass("l-accordion-toggle-close"))
+                {
+                    $(this).addClass("l-accordion-toggle-close");
+                }
+                if ($(this).hasClass("l-accordion-toggle-close"))
+                {
+                    $(this).parent().next(".l-accordion-content:visible").hide();
+                }
+            });
+            $(".l-accordion-toggle", g.accordion).hover(function ()
+            {
+                if ($(this).hasClass("l-accordion-toggle-open"))
+                    $(this).addClass("l-accordion-toggle-open-over");
+                else if ($(this).hasClass("l-accordion-toggle-close"))
+                    $(this).addClass("l-accordion-toggle-close-over");
+            }, function ()
+            {
+                if ($(this).hasClass("l-accordion-toggle-open"))
+                    $(this).removeClass("l-accordion-toggle-open-over");
+                else if ($(this).hasClass("l-accordion-toggle-close"))
+                    $(this).removeClass("l-accordion-toggle-close-over");
+            });
+            $(">.l-accordion-header", g.accordion).click(function ()
+            {
+                var togglebtn = $(".l-accordion-toggle:first", this);
+                if (togglebtn.hasClass("l-accordion-toggle-close"))
+                {
+                    togglebtn.removeClass("l-accordion-toggle-close")
+                    .removeClass("l-accordion-toggle-close-over l-accordion-toggle-open-over")
+                    togglebtn.addClass("l-accordion-toggle-open");
+                    $(this).next(".l-accordion-content")
+                    .show(p.speed)
+                    .siblings(".l-accordion-content:visible").hide(p.speed);
+                    $(this).siblings(".l-accordion-header").find(".l-accordion-toggle").removeClass("l-accordion-toggle-open").addClass("l-accordion-toggle-close");
+                }
+                else
+                {
+                    togglebtn.removeClass("l-accordion-toggle-open")
+                    .removeClass("l-accordion-toggle-close-over l-accordion-toggle-open-over")
+                    .addClass("l-accordion-toggle-close");
+                    $(this).next(".l-accordion-content").hide(p.speed);
+                }
+            });
+            //init
+            g.headerHoldHeight = 0;
+            $("> .l-accordion-header", g.accordion).each(function ()
+            {
+                g.headerHoldHeight += $(this).height();
+            });
+            if (p.height && typeof (p.height) == 'string' && p.height.indexOf('%') > 0)
+            {
+                g.onResize();
+                if (p.changeHeightOnResize)
+                {
+                    $(window).resize(function ()
+                    {
+                        g.onResize();
+                    });
+                }
+            }
+            else
+            {
+                if (p.height)
+                {
+                    g.height = p.heightDiff + p.height;
+                    g.accordion.height(g.height);
+                    g.setHeight(p.height);
+                }
+                else
+                {
+                    g.header = g.accordion.height();
+                }
+            }
+
+            g.set(p);
+        },
+        onResize: function ()
+        {
+            var g = this, p = this.options;
+            if (!p.height || typeof (p.height) != 'string' || p.height.indexOf('%') == -1) return false;
+            //set accordion height
+            if (g.accordion.parent()[0].tagName.toLowerCase() == "body")
+            {
+                var windowHeight = $(window).height();
+                windowHeight -= parseInt(g.layout.parent().css('paddingTop'));
+                windowHeight -= parseInt(g.layout.parent().css('paddingBottom'));
+                g.height = p.heightDiff + windowHeight * parseFloat(g.height) * 0.01;
+            }
+            else
+            {
+                g.height = p.heightDiff + (g.accordion.parent().height() * parseFloat(p.height) * 0.01);
+            }
+            g.accordion.height(g.height);
+            g.setContentHeight(g.height - g.headerHoldHeight);
+        },
+        setHeight: function (height)
+        {
+            var g = this, p = this.options;
+            g.accordion.height(height);
+            height -= g.headerHoldHeight;
+            $("> .l-accordion-content", g.accordion).height(height);
+        }
+    });
+
+
+})(jQuery);

+ 125 - 0
web/js/lg/plugins/ligerCheckBox.js

@@ -0,0 +1,125 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.fn.ligerCheckBox = function (options)
+    {
+        return $.ligerui.run.call(this, "ligerCheckBox", arguments);
+    };
+    $.fn.ligerGetCheckBoxManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetCheckBoxManager", arguments);
+    };
+    $.ligerDefaults.CheckBox = { disabled: false };
+
+    $.ligerMethos.CheckBox = {};
+
+    $.ligerui.controls.CheckBox = function (element, options)
+    {
+        $.ligerui.controls.CheckBox.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.CheckBox.ligerExtend($.ligerui.controls.Input, {
+        __getType: function ()
+        {
+            return 'CheckBox';
+        },
+        __idPrev: function ()
+        {
+            return 'CheckBox';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.CheckBox;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.input = $(g.element);
+            g.link = $('<a class="l-checkbox"></a>');
+            g.wrapper = g.input.addClass('l-hidden').wrap('<div class="l-checkbox-wrapper"></div>').parent();
+            g.wrapper.prepend(g.link);
+            g.link.click(function ()
+            {
+                if (g.input.attr('disabled')) { return false; }
+                if (p.disabled) return false;
+                if (g.trigger('beforeClick', [g.element]) == false) return false; 
+                if ($(this).hasClass("l-checkbox-checked"))
+                {
+                    g._setValue(false);
+                }
+                else
+                {
+                    g._setValue(true);
+                }
+                g.input.trigger("change");
+            });
+            g.wrapper.hover(function ()
+            {
+                if (!p.disabled)
+                    $(this).addClass("l-over");
+            }, function ()
+            {
+                $(this).removeClass("l-over");
+            });
+            this.set(p);
+            this.updateStyle();
+        },
+        _setCss: function (value)
+        {
+            this.wrapper.css(value);
+        },
+        _setValue: function (value)
+        {
+            var g = this, p = this.options;
+            if (!value)
+            {
+                g.input[0].checked = false;
+                g.link.removeClass('l-checkbox-checked');
+            }
+            else
+            {
+                g.input[0].checked = true;
+                g.link.addClass('l-checkbox-checked');
+            }
+        },
+        _setDisabled: function (value)
+        {
+            if (value)
+            {
+                this.input.attr('disabled', true);
+                this.wrapper.addClass("l-disabled");
+            }
+            else
+            {
+                this.input.attr('disabled', false);
+                this.wrapper.removeClass("l-disabled");
+            }
+        },
+        _getValue: function ()
+        {
+            return this.element.checked;
+        },
+        updateStyle: function ()
+        {
+            if (this.input.attr('disabled'))
+            {
+                this.wrapper.addClass("l-disabled");
+                this.options.disabled = true;
+            }
+            if (this.input[0].checked)
+            {
+                this.link.addClass('l-checkbox-checked');
+            }
+            else
+            {
+                this.link.removeClass('l-checkbox-checked');
+            }
+        }
+    });
+})(jQuery);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1070 - 0
web/js/lg/plugins/ligerComboBox.js


+ 313 - 0
web/js/lg/plugins/ligerForm.js

@@ -0,0 +1,313 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.fn.ligerForm = function ()
+    {
+        return $.ligerui.run.call(this, "ligerForm", arguments);
+    };
+
+    $.ligerDefaults = $.ligerDefaults || {};
+    $.ligerDefaults.Form = {
+        //控件宽度
+        inputWidth: 180,
+        //标签宽度
+        labelWidth: 90,
+        //间隔宽度
+        space: 40,
+        rightToken: ':',
+        //标签对齐方式
+        labelAlign: 'left',
+        //控件对齐方式
+        align: 'left',
+        //字段
+        fields: [],
+        //创建的表单元素是否附加ID
+        appendID: true,
+        //生成表单元素ID的前缀
+        prefixID: "",
+        //json解析函数
+        toJSON: $.ligerui.toJSON
+    };
+
+    //@description 默认表单编辑器构造器扩展(如果创建的表单效果不满意 建议重载)
+    //@param {jinput} 表单元素jQuery对象 比如input、select、textarea 
+    $.ligerDefaults.Form.editorBulider = function (jinput)
+    {
+        //这里this就是form的ligerui对象
+        var g = this, p = this.options;
+        var inputOptions = {};
+        if (p.inputWidth) inputOptions.width = p.inputWidth;
+        if (jinput.is("select"))
+        {
+            jinput.ligerComboBox(inputOptions);
+        }
+        else if (jinput.is(":text") || jinput.is(":password"))
+        {
+            var ltype = jinput.attr("ltype");
+            switch (ltype)
+            {
+                case "select":
+                case "combobox":
+                    jinput.ligerComboBox(inputOptions);
+                    break;
+                case "spinner":
+                    jinput.ligerSpinner(inputOptions);
+                    break;
+                case "date":
+                    jinput.ligerDateEditor(inputOptions);
+                    break;
+                case "float":
+                case "number":
+                    inputOptions.number = true;
+                    jinput.ligerTextBox(inputOptions);
+                    break;
+                case "int":
+                case "digits":
+                    inputOptions.digits = true;
+                default:
+                    jinput.ligerTextBox(inputOptions);
+                    break;
+            }
+        }
+        else if (jinput.is(":radio"))
+        {
+            jinput.ligerRadio(inputOptions);
+        }
+        else if (jinput.is(":checkbox"))
+        {
+            jinput.ligerCheckBox(inputOptions);
+        }
+        else if (jinput.is("textarea"))
+        {
+            jinput.addClass("l-textarea");
+        }
+    }
+
+    //表单组件
+    $.ligerui.controls.Form = function (element, options)
+    {
+        $.ligerui.controls.Form.base.constructor.call(this, element, options);
+    };
+
+    $.ligerui.controls.Form.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'Form'
+        },
+        __idPrev: function ()
+        {
+            return 'Form';
+        },
+        _init: function ()
+        {
+            $.ligerui.controls.Form.base._init.call(this);
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            var jform = $(this.element);
+            //自动创建表单
+            if (p.fields && p.fields.length)
+            {
+                if (!jform.hasClass("l-form"))
+                    jform.addClass("l-form");
+                var out = [];
+                var appendULStartTag = false;
+                $(p.fields).each(function (index, field)
+                {
+                    var name = field.name || field.id;
+                    if (!name) return;
+                    if (field.type == "hidden")
+                    {
+                        out.push('<input type="hidden" id="' + name + '" name="' + name + '" />');
+                        return;
+                    }
+                    var newLine = field.renderToNewLine || field.newline;
+                    if (newLine == null) newLine = true;
+                    if (field.merge) newLine = false;
+                    if (field.group) newLine = true;
+                    if (newLine)
+                    {
+                        if (appendULStartTag)
+                        {
+                            out.push('</ul>');
+                            appendULStartTag = false;
+                        }
+                        if (field.group)
+                        {
+                            out.push('<div class="l-group');
+                            if (field.groupicon)
+                                out.push(' l-group-hasicon');
+                            out.push('">');
+                            if (field.groupicon)
+                                out.push('<img src="' + field.groupicon + '" />');
+                            out.push('<span>' + field.group + '</span></div>');
+                        }
+                        out.push('<ul>');
+                        appendULStartTag = true;
+                    }
+                    //append label
+                    out.push(g._buliderLabelContainer(field));
+                    //append input 
+                    out.push(g._buliderControlContainer(field));
+                    //append space
+                    out.push(g._buliderSpaceContainer(field));
+                });
+                if (appendULStartTag)
+                {
+                    out.push('</ul>');
+                    appendULStartTag = false;
+                }
+                jform.append(out.join(''));
+            }
+            //生成ligerui表单样式
+            $("input,select,textarea", jform).each(function ()
+            {
+                p.editorBulider.call(g, $(this));
+            });
+        },
+        //标签部分
+        _buliderLabelContainer: function (field)
+        {
+            var g = this, p = this.options;
+            var label = field.label || field.display;
+            var labelWidth = field.labelWidth || field.labelwidth || p.labelWidth;
+            var labelAlign = field.labelAlign || p.labelAlign;
+            if (label) label += p.rightToken;
+            var out = [];
+            out.push('<li style="');
+            if (labelWidth)
+            {
+                out.push('width:' + labelWidth + 'px;');
+            }
+            if (labelAlign)
+            {
+                out.push('text-align:' + labelAlign + ';');
+            }
+            out.push('">');
+            if (label)
+            {
+                out.push(label);
+            }
+            out.push('</li>');
+            return out.join('');
+        },
+        //控件部分
+        _buliderControlContainer: function (field)
+        {
+            var g = this, p = this.options;
+            var width = field.width || p.inputWidth;
+            var align = field.align || field.textAlign || field.textalign || p.align;
+            var out = [];
+            out.push('<li style="');
+            if (width)
+            {
+                out.push('width:' + width + 'px;');
+            }
+            if (align)
+            {
+                out.push('text-align:' + align + ';');
+            }
+            out.push('">');
+            out.push(g._buliderControl(field));
+            out.push('</li>');
+            return out.join('');
+        },
+        //间隔部分
+        _buliderSpaceContainer: function (field)
+        {
+            var g = this, p = this.options;
+            var spaceWidth = field.space || field.spaceWidth || p.space;
+            var out = [];
+            out.push('<li style="');
+            if (spaceWidth)
+            {
+                out.push('width:' + spaceWidth + 'px;');
+            }
+            out.push('">');
+            out.push('</li>');
+            return out.join('');
+        },
+        _buliderControl: function (field)
+        {
+            var g = this, p = this.options;
+            var width = field.width || p.inputWidth;
+            var name = field.name || field.id;
+            var out = [];
+            if (field.comboboxName && field.type == "select")
+            {
+                out.push('<input type="hidden" id="' + p.prefixID + name + '" name="' + name + '" />');
+            }
+            if (field.textarea || field.type == "textarea")
+            {
+                out.push('<textarea ');
+            }
+            else if (field.type == "checkbox")
+            {
+                out.push('<input type="checkbox" ');
+            }
+            else if (field.type == "radio")
+            {
+                out.push('<input type="radio" ');
+            }
+            else if (field.type == "password")
+            {
+                out.push('<input type="password" ');
+            }
+            else
+            {
+                out.push('<input type="text" ');
+            }
+            if (field.cssClass)
+            {
+                out.push('class="' + field.cssClass + '" ');
+            }
+            if (field.type)
+            {
+                out.push('ltype="' + field.type + '" ');
+            }
+            if (field.attr)
+            {
+                for (var attrp in field.attr)
+                {
+                    out.push(attrp + '="' + field.attr[attrp] + '" ');
+                }
+            }
+            if (field.comboboxName && field.type == "select")
+            {
+                out.push('name="' + field.comboboxName + '"');
+                if (p.appendID)
+                {
+                    out.push(' id="' + p.prefixID + field.comboboxName + '" ');
+                }
+            }
+            else
+            {
+                out.push('name="' + name + '"');
+                if (p.appendID)
+                {
+                    out.push(' id="' + name + '" ');
+                }
+            }
+            //参数
+            var fieldOptions = $.extend({
+                width: width - 2
+            }, field.options || {});
+            out.push(" ligerui='" + p.toJSON(fieldOptions) + "' ");
+            //验证参数
+            if (field.validate)
+            {
+                out.push(" validate='" + p.toJSON(field.validate) + "' ");
+            }
+            out.push(' />');
+            return out.join('');
+        }
+    });
+})(jQuery);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 4365 - 0
web/js/lg/plugins/ligerGrid.js


+ 321 - 0
web/js/lg/plugins/ligerMenu.js

@@ -0,0 +1,321 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.ligerMenu = function (options)
+    {
+        return $.ligerui.run.call(null, "ligerMenu", arguments);
+    };
+
+    $.ligerDefaults.Menu = {
+        width: 120,
+        top: 0,
+        left: 0,
+        items: null,
+        shadow: true
+    };
+
+    $.ligerMethos.Menu = {};
+
+    $.ligerui.controls.Menu = function (options)
+    {
+        $.ligerui.controls.Menu.base.constructor.call(this, null, options);
+    };
+    $.ligerui.controls.Menu.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'Menu';
+        },
+        __idPrev: function ()
+        {
+            return 'Menu';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Menu;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.menuItemCount = 0;
+            //全部菜单
+            g.menus = {};
+            //顶级菜单
+            g.menu = g.createMenu();
+            g.element = g.menu[0];
+            g.menu.css({ top: p.top, left: p.left, width: p.width });
+
+            p.items && $(p.items).each(function (i, item)
+            {
+                g.addItem(item);
+            });
+
+            g.createIframe(g.menu);
+            $(document).bind('click.menu', function ()
+            {
+          
+                for (var menuid in g.menus)
+                {
+                    var menu = g.menus[menuid];
+                    if (!menu) return;
+                    menu.hide();
+                    if (menu.shadow) menu.shadow.hide();
+                    g.hideIframe(menu);
+                }
+            });
+            g.set(p);
+        },
+        show: function (options, menu)
+        {
+            var g = this, p = this.options;
+            if (menu == undefined) menu = g.menu;
+            if (options && options.left != undefined)
+            {
+                menu.css({ left: options.left });
+            }
+            if (options && options.top != undefined)
+            {
+                menu.css({ top: options.top });
+            }
+            menu.show();
+            g.updateShadow(menu);
+            g.showIframe(menu);
+        },
+        updateShadow: function (menu)
+        {
+            var g = this, p = this.options;
+            if (!p.shadow) return;
+            menu.shadow.css({
+                left: menu.css('left'),
+                top: menu.css('top'),
+                width: menu.outerWidth(),
+                height: menu.outerHeight()
+            });
+            if (menu.is(":visible"))
+                menu.shadow.show();
+            else
+                menu.shadow.hide();
+        },
+        hide: function (menu)
+        {
+            var g = this, p = this.options;
+            if (menu == undefined) menu = g.menu;
+            g.hideAllSubMenu(menu);
+            menu.hide();
+            g.updateShadow(menu);
+          
+            g.hideIframe(menu);
+        },
+        hideIframe:function(menu){
+        	var memuId=menu.attr("memuId");
+        	$("iframe.l_menu_frame[iframeId='"+memuId+"']").hide();
+        },
+        showIframe:function(menu){
+        	var memuId=menu.attr("memuId");
+        	var obj=$("iframe.l_menu_frame[iframeId='"+memuId+"']");
+       
+        	obj.show();
+        	obj.css({ top: menu.css("top"), left: menu.css("left") , width: menu.width()+2,height:menu.height()+5 });  
+        	
+        },
+        toggle: function ()
+        {
+            var g = this, p = this.options;
+            g.menu.toggle();
+            g.updateShadow(g.menu);
+        },
+        removeItem: function (itemid)
+        {
+            var g = this, p = this.options;
+            //$("> .l-menu-item[menuitemid=" + itemid + "]", g.menu.items).remove();
+            g.menu.items.find(".l-menu-item[ligeruimenutemid="+itemid+"]").remove();
+            
+        },
+        setEnabled: function (itemid)
+        {
+            var g = this, p = this.options;
+            $("> .l-menu-item[menuitemid=" + itemid + "]", g.menu.items).removeClass("l-menu-item-disable");
+        },
+        setDisabled: function (itemid)
+        {
+            var g = this, p = this.options;
+            $("> .l-menu-item[menuitemid=" + itemid + "]", g.menu.items).addClass("l-menu-item-disable");
+        },
+        isEnable: function (itemid)
+        {
+            var g = this, p = this.options;
+            return !$("> .l-menu-item[menuitemid=" + itemid + "]", g.menu.items).hasClass("l-menu-item-disable");
+        },
+        getItemCount: function ()
+        {
+            var g = this, p = this.options;
+            return $("> .l-menu-item", g.menu.items).length;
+        },
+        addItem: function (item, menu)
+        {
+            var g = this, p = this.options;
+            if (!item) return;
+            if (menu == undefined) menu = g.menu;
+
+            if (item.line)
+            {
+                menu.items.append('<div class="l-menu-item-line"></div>');
+                return;
+            }
+            var ditem = $('<div class="l-menu-item"><div class="l-menu-item-text"></div> </div>');
+            var itemcount = $("> .l-menu-item", menu.items).length;
+            menu.items.append(ditem);
+            ditem.attr("ligeruimenutemid", ++g.menuItemCount);
+            item.id && ditem.attr("menuitemid", item.id);
+            item.text && $(">.l-menu-item-text:first", ditem).html(item.text);
+            item.icon && ditem.prepend('<div class="l-menu-item-icon "><img src="'+ item.icon+'" style="width:16px;height:16px;margin-top: 4px;margin-left: 4px;"/></div>');
+            if (item.disable || item.disabled)
+                ditem.addClass("l-menu-item-disable");
+            if (item.children)
+            {
+                ditem.append('<div class="l-menu-item-arrow"></div>');
+                var newmenu = g.createMenu(ditem.attr("ligeruimenutemid"));
+                g.menus[ditem.attr("ligeruimenutemid")] = newmenu;
+                newmenu.width(p.width);
+                newmenu.hover(null, function ()
+                {
+                    if (!newmenu.showedSubMenu)
+                        g.hide(newmenu);
+                });
+                $(item.children).each(function ()
+                {
+                    g.addItem(this, newmenu);
+                });
+                g.createIframe(newmenu);
+            }
+            item.click && ditem.click(function ()
+            {
+                if ($(this).hasClass("l-menu-item-disable")) return;
+                item.click(item, itemcount);
+            });
+            item.dblclick && ditem.dblclick(function ()
+            {
+                if ($(this).hasClass("l-menu-item-disable")) return;
+                item.dblclick(item, itemcount);
+            });
+
+            var menuover = $("> .l-menu-over:first", menu);
+            ditem.hover(function (event)
+            {
+            	var x=event.clientX; 
+    			var y=event.clientY;  
+    			var documentHeight=document.body.clientHeight;
+                if ($(this).hasClass("l-menu-item-disable")) return;
+                var itemtop = $(this).offset().top;
+                var top = itemtop - menu.offset().top;
+                menuover.css({ top: top });
+                if(y>documentHeight-40){
+                	var allItems=$("> .l-menu-item", menu.items);
+                	for(var i=0;i<itemcount;i++){
+                		var nextItem=$(allItems[i]);
+                		if(nextItem.is(":hidden")){
+                			continue;
+                		}else{
+                			nextItem.hide();
+                			break;
+                		}
+                	}
+                	
+                }else if(y<menu.offset().top+30){
+                	var allItems=$("> .l-menu-item:hidden", menu.items);
+                	for(var i=itemcount;i>=0;i--){
+                		var prevItem=$(allItems[i]);
+                		if(prevItem.is(":hidden")){               			
+                			prevItem.show();
+                			break;
+                		}else{
+                			continue;
+                		}
+                	}
+                }
+                g.hideAllSubMenu(menu);
+                if (item.children)
+                {
+                    var ligeruimenutemid = $(this).attr("ligeruimenutemid");
+                    if (!ligeruimenutemid) return;
+                    if (g.menus[ligeruimenutemid])
+                    {
+                        g.show({ top: itemtop, left: $(this).offset().left + $(this).width() - 5 }, g.menus[ligeruimenutemid]);
+                        menu.showedSubMenu = true;
+                    }
+                }
+            }, function ()
+            {
+                if ($(this).hasClass("l-menu-item-disable")) return;
+                var ligeruimenutemid = $(this).attr("ligeruimenutemid");
+                if (item.children)
+                {
+                    var ligeruimenutemid = $(this).attr("ligeruimenutemid");
+                    if (!ligeruimenutemid) return;
+                };
+            });
+        },
+        hideAllSubMenu: function (menu)
+        {
+            var g = this, p = this.options;
+            if (menu == undefined) menu = g.menu;
+            $("> .l-menu-item", menu.items).each(function ()
+            {
+                if ($("> .l-menu-item-arrow", this).length > 0)
+                {
+                    var ligeruimenutemid = $(this).attr("ligeruimenutemid");
+                    if (!ligeruimenutemid) return;
+                    g.menus[ligeruimenutemid] && g.hide(g.menus[ligeruimenutemid]);
+                    //隐藏iframe
+                    g.hideIframe(g.menus[ligeruimenutemid]);
+                }
+            });
+            menu.showedSubMenu = false;
+        },
+        createIframe:function(menu){
+        	var iframeObj=$('<iframe  frameborder="0" class="l_menu_frame" style="position:absolute;z-index:1;display:none;"></iframe>');
+        	var memuId=menu.attr("memuId");
+        	
+        	iframeObj.css({left:menu.left,top:menu.top,width:menu.width()+2,height:menu.height()+5})
+        	iframeObj.attr("iframeId",memuId);
+        	iframeObj.appendTo('body');
+        },
+        createMenu: function (parentMenuItemID)
+        {
+            var g = this, p = this.options;
+            var menu = $('<div class="l-menu" style="display:none"><div class="l-menu-yline"></div><div class="l-menu-over"><div class="l-menu-over-l"></div> <div class="l-menu-over-r"></div></div><div class="l-menu-inner"></div></div>');
+            parentMenuItemID && menu.attr("ligeruiparentmenuitemid", parentMenuItemID);
+            menu.items = $("> .l-menu-inner:first", menu);
+            menu.appendTo('body');
+            if (p.shadow)
+            {
+                menu.shadow = $('<div class="l-menu-shadow"></div>').insertAfter(menu);
+                g.updateShadow(menu);
+            }
+            menu.hover(null, function ()
+            {
+                if (!menu.showedSubMenu)
+                    $("> .l-menu-over:first", menu).css({ top: -24 });
+            });
+            if (parentMenuItemID)
+                g.menus[parentMenuItemID] = menu;
+            else
+                g.menus[0] = menu;
+            
+            if (menu.attr("memuId") == undefined) menu.attr("memuId", new Date().getTime());
+            return menu;
+        }
+    });
+    //旧写法保留
+    $.ligerui.controls.Menu.prototype.setEnable = $.ligerui.controls.Menu.prototype.setEnabled;
+    $.ligerui.controls.Menu.prototype.setDisable = $.ligerui.controls.Menu.prototype.setDisabled;
+
+
+
+})(jQuery);

+ 266 - 0
web/js/lg/plugins/ligerMessageBox.js

@@ -0,0 +1,266 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+
+    $.ligerMessageBox = function (options)
+    {
+        return $.ligerui.run.call(null, "ligerMessageBox", arguments, { isStatic: true });
+    };
+
+
+    $.ligerDefaults.MessageBox = {
+        isDrag: true
+    };
+
+    $.ligerMethos.MessageBox = {};
+
+    $.ligerui.controls.MessageBox = function (options)
+    {
+        $.ligerui.controls.MessageBox.base.constructor.call(this, null, options);
+    };
+    $.ligerui.controls.MessageBox.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'MessageBox';
+        },
+        __idPrev: function ()
+        {
+            return 'MessageBox';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.MessageBox;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            var messageBoxHTML = "";
+            messageBoxHTML += '<div class="l-messagebox">';
+            messageBoxHTML += '        <div class="l-messagebox-lt"></div><div class="l-messagebox-rt"></div>';
+            messageBoxHTML += '        <div class="l-messagebox-l"></div><div class="l-messagebox-r"></div> ';
+            messageBoxHTML += '        <div class="l-messagebox-image"></div>';
+            messageBoxHTML += '        <div class="l-messagebox-title">';
+            messageBoxHTML += '            <div class="l-messagebox-title-inner"></div>';
+            messageBoxHTML += '            <div class="l-messagebox-close"></div>';
+            messageBoxHTML += '        </div>';
+            messageBoxHTML += '        <div class="l-messagebox-content">';
+            messageBoxHTML += '        </div>';
+            messageBoxHTML += '        <div class="l-messagebox-buttons"><div class="l-messagebox-buttons-inner">';
+            messageBoxHTML += '        </div></div>';
+            messageBoxHTML += '    </div>';
+            g.messageBox = $(messageBoxHTML);
+            $('body').append(g.messageBox);
+            g.messageBox.close = function ()
+            {
+                g._removeWindowMask();
+                g.messageBox.remove();
+            };
+            //设置参数属性
+            p.width && g.messageBox.width(p.width);
+            p.title && $(".l-messagebox-title-inner", g.messageBox).html(p.title);
+            p.content && $(".l-messagebox-content", g.messageBox).html(p.content);
+            if (p.buttons)
+            {
+                $(p.buttons).each(function (i, item)
+                {
+                    var btn = $('<div class="l-messagebox-btn"><div class="l-messagebox-btn-l"></div><div class="l-messagebox-btn-r"></div><div class="l-messagebox-btn-inner"></div></div>');
+                    $(".l-messagebox-btn-inner", btn).html(item.text);
+                    $(".l-messagebox-buttons-inner", g.messageBox).append(btn);
+                    item.width && btn.width(item.width);
+                    item.onclick && btn.click(function () { item.onclick(item, i, g.messageBox) });
+                });
+                $(".l-messagebox-buttons-inner", g.messageBox).append("<div class='l-clear'></div>");
+            }
+            var boxWidth = g.messageBox.width();
+            var sumBtnWidth = 0;
+            $(".l-messagebox-buttons-inner .l-messagebox-btn", g.messageBox).each(function ()
+            {
+                sumBtnWidth += $(this).width();
+            });
+            $(".l-messagebox-buttons-inner", g.messageBox).css({ marginLeft: parseInt((boxWidth - sumBtnWidth) * 0.5) });
+            //设置背景、拖动支持 和设置图片
+            g._applyWindowMask();
+            g._applyDrag();
+            g._setImage();
+
+            //位置初始化
+            var left = 0;
+            var top = 0;
+            var width = p.width || g.messageBox.width();
+            if (p.left != null) left = p.left;
+            else p.left = left = 0.5 * ($(window).width() - width);
+            if (p.top != null) top = p.top;
+            else p.top = top = 0.5 * ($(window).height() - g.messageBox.height()) + $(window).scrollTop() - 10;
+            if (left < 0) p.left = left = 0;
+            if (top < 0) p.top = top = 0;
+            g.messageBox.css({ left: left, top: top });
+
+            //设置事件
+            $(".l-messagebox-btn", g.messageBox).hover(function ()
+            {
+                $(this).addClass("l-messagebox-btn-over");
+            }, function ()
+            {
+                $(this).removeClass("l-messagebox-btn-over");
+            });
+            $(".l-messagebox-close", g.messageBox).hover(function ()
+            {
+                $(this).addClass("l-messagebox-close-over");
+            }, function ()
+            {
+                $(this).removeClass("l-messagebox-close-over");
+            }).click(function ()
+            {
+                g.messageBox.close();
+            });
+            g.set(p);
+        },
+        close: function ()
+        {
+            var g = this, p = this.options;
+            this.g._removeWindowMask();
+            this.messageBox.remove();
+            g._hideIframe();
+        },
+        _applyWindowMask: function ()
+        {
+            var g = this, p = this.options;
+            $(".l-window-mask").remove();
+            g._createIframe();
+            g._showIframe();
+            $("<div class='l-window-mask' style='display: block;'></div>").appendTo($("body"));
+        },
+        /**
+         * 创建iframe
+         */
+        _createIframe:function(){
+        	var width= $(window).width();
+        	var height= $(window).height();
+        	var left= $(window).scrollLeft ();
+        	var top= $(window).scrollTop();
+        	var iframeObj=$('<iframe  frameborder="0" class="l_messagebox_frame" style="position:absolute;z-index:1;display:none;"></iframe>');
+        	iframeObj.css({left:left,top:top,width:width,height:height});
+        	iframeObj.attr("iframeId","messageBoxId");
+        	iframeObj.appendTo('body');
+        },
+        /**
+         * 隐藏iframe
+         */
+        _hideIframe:function(){
+        	$("iframe.l_messagebox_frame[iframeId='messageBoxId']").hide();
+        },
+        /**
+         * 显示Ifame
+         */
+        _showIframe:function(){
+        	$("iframe.l_messagebox_frame[iframeId='messageBoxId']").show();  	
+        },
+        
+        _removeWindowMask: function ()
+        {
+            var g = this, p = this.options;
+            $(".l-window-mask").remove();
+           g._hideIframe(g);
+        },
+        _applyDrag: function ()
+        {
+            var g = this, p = this.options;
+            if (p.isDrag && $.fn.ligerDrag)
+                g.messageBox.ligerDrag({ handler: '.l-messagebox-title-inner', animate: false });
+        },
+        _setImage: function ()
+        {
+            var g = this, p = this.options;
+            if (p.type)
+            {
+                if (p.type == 'success' || p.type == 'donne')
+                {
+                    $(".l-messagebox-image", g.messageBox).addClass("l-messagebox-image-donne").show();
+                    $(".l-messagebox-content", g.messageBox).css({ paddingLeft: 64, paddingBottom: 30 });
+                }
+                else if (p.type == 'error')
+                {
+                    $(".l-messagebox-image", g.messageBox).addClass("l-messagebox-image-error").show();
+                    $(".l-messagebox-content", g.messageBox).css({ paddingLeft: 64, paddingBottom: 30 });
+                }
+                else if (p.type == 'warn')
+                {
+                    $(".l-messagebox-image", g.messageBox).addClass("l-messagebox-image-warn").show();
+                    $(".l-messagebox-content", g.messageBox).css({ paddingLeft: 64, paddingBottom: 30 });
+                }
+                else if (p.type == 'question')
+                {
+                    $(".l-messagebox-image", g.messageBox).addClass("l-messagebox-image-question").show();
+                    $(".l-messagebox-content", g.messageBox).css({ paddingLeft: 64, paddingBottom: 40 });
+                }
+            }
+        }
+    });
+
+
+    $.ligerMessageBox.show = function (p)
+    {
+        return $.ligerMessageBox(p);
+    };
+    $.ligerMessageBox.alert = function (title, content, type, onBtnClick)
+    {
+        title = title || "";
+        content = content || title;
+        var onclick = function (item, index, messageBox)
+        {
+            messageBox.close();
+            if (onBtnClick)
+                onBtnClick(item, index, messageBox);
+        };
+        p = {
+            title: title,
+            content: content,
+            buttons: [{ text: '确定', onclick: onclick}]
+        };
+        if (type) p.type = type;
+        return $.ligerMessageBox(p);
+    };
+    $.ligerMessageBox.confirm = function (title, content, callback)
+    {
+        var onclick = function (item, index, messageBox)
+        {
+            messageBox.close();
+            if (callback)
+            {
+                callback(index == 0);
+            }
+        };
+        p = {
+            type: 'question',
+            title: title,
+            content: content,
+            buttons: [{ text: '是', onclick: onclick }, { text: '否', onclick: onclick}]
+        };
+        return $.ligerMessageBox(p);
+    };
+    $.ligerMessageBox.success = function (title, content, onBtnClick)
+    {
+        return $.ligerMessageBox.alert(title, content, 'success', onBtnClick);
+    };
+    $.ligerMessageBox.error = function (title, content, onBtnClick)
+    {
+        return $.ligerMessageBox.alert(title, content, 'error', onBtnClick);
+    };
+    $.ligerMessageBox.warn = function (title, content, onBtnClick)
+    {
+        return $.ligerMessageBox.alert(title, content, 'warn', onBtnClick);
+    };
+    $.ligerMessageBox.question = function (title, content)
+    {
+        return $.ligerMessageBox.alert(title, content, 'question');
+    };
+
+
+})(jQuery);

+ 163 - 0
web/js/lg/plugins/ligerMsg.js

@@ -0,0 +1,163 @@
+(function($) {
+	$.ligerMsg = {
+		_alertButFrag : '<input callback="#callback#" type="button"  value=" #butMsg# "></input>',
+		_alertBoxFrag : '<div id="alertMsgBox" class="msg"><div class="msgContent"><div class="#type#">'+
+				'<div class="msgInner"><h1>#title#</h1><div class="message">#message#</div></div>'+
+				'<div class="toolBar"><ul>#butFragment#</ul></div></div></div></div>',
+		_boxId : "#alertMsgBox",
+		_closeTimer : null,
+
+		_types : {
+			error : "error",
+			info : "info",
+			warn : "warn",
+			correct : "correct",
+			confirm : "confirm"
+		},
+
+		_title : {
+			error : "错误",
+			info : "温馨提示",
+			warn : "警告",
+			correct : "成功",
+			confirm : "请确定"
+		},
+		_butMsg : {
+			ok : "确定",
+			yes : "是",
+			no : "否",
+			cancel : "取消"
+		},
+
+		_getTitle : function(key) {
+			return this._title[key];
+		},
+
+		//打开对话框
+		_open : function(type, msg, bottom, buttons) {
+			var topWindow=self.top;
+			
+			//不为info和correct的两类型对话框不添加蒙板。
+			if (!(this._types.info == type || this._types.correct == type)) {
+				$("<div class='l-window-mask' style='display: block;'></div>").appendTo(topWindow.document.body);
+			}
+			var butsHtml = "";
+			if (buttons) {
+				for ( var i = 0; i < buttons.length; i++) {
+					var sRel = buttons[i].call ? "callback" : "";
+					butsHtml += this._alertButFrag.replace("#butMsg#",
+							buttons[i].name).replace("#callback#", sRel) + "&nbsp;";
+				}
+			}
+			var boxHtml = this._alertBoxFrag.replace("#type#", type)
+					.replace("#title#", this._getTitle(type))
+					.replace("#message#", msg)
+					.replace("#butFragment#", butsHtml);
+			
+			if($("div.msg",topWindow.document.body).length>0){
+				$("div.msg",topWindow.document.body).remove();
+			}
+			if($("div.msg",topWindow.document).length>0){
+				$("div.msg",topWindow.document).remove();
+			}
+			var _self=this;
+			//确保删除之前的提示框.
+			setTimeout(function(){
+				$(boxHtml).appendTo(topWindow.document.body);
+				var objMsgbox=$(_self._boxId,$(topWindow.document));
+				//在顶部冒出来
+				if (bottom != true) {
+					var top=-objMsgbox.height() +"px" ;
+					objMsgbox.css({top : top }).animate({top : "0px"}, 500);
+				}
+				//从右下角冒出来
+				else {
+					var height = topWindow.document.documentElement.clientHeight;
+					objMsgbox.css({top : height + "px",left : "auto",right : "10px"})
+					.animate({top : height - objMsgbox.height()}, 500);
+				}
+				
+				if (_self._closeTimer) {
+					clearTimeout(_self._closeTimer);
+					this._closeTimer = null;
+				}
+				//如果类型为info,correct,消息框定时关闭
+				if (_self._types.info == type || _self._types.correct == type) {
+					_self._closeTimer = setTimeout(function() {
+						$.ligerMsg.close();
+					}, 3500);
+				}
+			    //添加按钮事件处理。
+				var jCallButs = objMsgbox.find(	"input[callback='callback']");
+				for ( var i = 0; i < buttons.length; i++) {
+					if (buttons[i].call){
+						jCallButs.eq(i).click(buttons[i].call);
+					}
+				}
+			},5);
+			
+		},
+		_alert : function(type, msg, bottom,callback) {
+			var op = {
+				okName : this._butMsg.ok,
+				okCall : callback
+			};
+			var buttons = [ {
+				name : op.okName,
+				call : op.okCall
+			} ];
+			this._open(type, msg, bottom, buttons);
+		},
+		close : function() {
+			var topWindow=self.top;
+			var objMsgbox=$("div.msg",$(topWindow.document));
+		
+			if (objMsgbox.length > 0) {
+				objMsgbox.each(function(){
+					var obj=$(this);
+					//在顶部
+					if (obj.position().top <= 0) {
+						obj.animate({top : -obj.height()}, 500, function() {
+							$(this).remove();
+						});
+					}
+					else {
+						var height = topWindow.document.documentElement.clientHeight;
+						obj.animate({top : height}, 500, function() {
+							$(this).remove();
+						});
+					}
+				});
+			}
+			//删除蒙板
+			$(topWindow.document).find(".l-window-mask").remove();
+		},
+		error : function(msg, bottom,callback) {
+			this._alert(this._types.error, msg, bottom,callback);
+		},
+		info : function(msg, bottom,callback) {
+			this._alert(this._types.info, msg, bottom,callback);
+		},
+		warn : function(msg, bottom,callback) {
+			this._alert(this._types.warn, msg, bottom,callback);
+		},
+		correct : function(msg, bottom,callback) {
+			this._alert(this._types.correct, msg, bottom,callback);
+		},
+		confirm : function(msg, callback, bottom) {
+			var op = {
+				okName : this._butMsg.ok,
+				okCall : null,
+				cancelName : this._butMsg.cancel,
+				cancelCall : null
+			};
+			var buttons = [ {
+				name : op.okName,
+				call : callback
+			}, {
+				name : op.cancelName
+			} ];
+			this._open(this._types.confirm, msg, bottom, buttons);
+		}
+	};
+})(jQuery);

+ 517 - 0
web/js/lg/plugins/ligerPopupEdit.js

@@ -0,0 +1,517 @@
+/**
+* jQuery ligerUI 1.2.2
+* 
+* http://ligerui.com
+*  
+* Author daomi 2013 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+
+    $.fn.ligerPopupEdit = function (options)
+    {
+        return $.ligerui.run.call(this, "ligerPopupEdit", arguments);
+    };
+
+    $.fn.ligerGetPopupEditManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetPopupEditManager", arguments);
+    };
+
+    $.ligerDefaults.PopupEdit = {
+        valueFieldID: null,     //生成的value input:hidden 字段名
+        css: null,             //附加css
+        onButtonClick: null,    //利用这个参数来调用其他函数,比如打开一个新窗口来选择值 
+        nullText: null,         //不能为空时的提示
+        disabled: false,        //是否无效
+        cancelable: true,
+        width: 200,
+        heigth: null,
+        render: null,        //显示函数   
+        split: ';',
+        grid: null,       //在 可查询、可分页列表的弹出框 中选择值 
+        condition: null,  // 条件字段,比如 {fields:[{ name : 'Title' ,op : 'like', vt : 'string',type:'text' }]}
+        valueField: 'id', //值字段
+        textField: 'text',   //显示字段
+        parms: null,
+        onSelect: null,    //选择事件,可阻止
+        onSelected: null,  //选择后事件
+        valueFieldCssClass : null
+    };
+
+
+    //扩展方法
+    $.ligerMethos.PopupEdit = $.ligerMethos.PopupEdit || {};
+
+    $.ligerui.controls.PopupEdit = function (element, options)
+    {
+        $.ligerui.controls.PopupEdit.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.PopupEdit.ligerExtend($.ligerui.controls.Input, {
+        __getType: function ()
+        {
+            return 'PopupEdit';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.PopupEdit;
+        },
+        _init: function ()
+        {
+            $.ligerui.controls.PopupEdit.base._init.call(this);
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.inputText = null;
+            //文本框初始化
+            if (this.element.tagName.toLowerCase() == "input")
+            {
+                this.element.readOnly = true;
+                g.inputText = $(this.element);
+                g.textFieldID = this.element.id;
+            }
+            if (g.inputText[0].name == undefined) g.inputText[0].name = g.textFieldID;
+            //隐藏域初始化
+            g.valueField = null;
+            if (p.valueFieldID)
+            {
+                g.valueField = $("#" + p.valueFieldID + ":input");
+                if (g.valueField.length == 0) g.valueField = $('<input type="hidden"/>');
+                g.valueField[0].id = g.valueField[0].name = p.valueFieldID;
+            }
+            else
+            {
+                g.valueField = $('<input type="hidden"/>');
+                g.valueField[0].id = g.valueField[0].name = g.textFieldID + "_val";
+            }
+            if (g.valueField[0].name == undefined) g.valueField[0].name = g.valueField[0].id;
+            if (p.valueFieldCssClass)
+            {
+                g.valueField.addClass(p.valueFieldCssClass);
+            }
+            //开关
+            g.link = $('<div class="l-trigger"  ><div class="l-trigger-icon"></div></div>');
+            //外层
+            g.wrapper = g.inputText.wrap('<div class="l-text l-text-popup"></div>').parent();
+            g.wrapper.append('<div class="l-text-l"></div><div class="l-text-r"></div>');
+            g.wrapper.append(g.link);
+            g.wrapper.append(g.valueField);
+            g.inputText.addClass("l-text-field");//为什么不会触发mouseon 和 mousedown事件
+            //开关 事件
+            g.link.hover(function ()
+            {
+                if (p.disabled) return;
+                this.className = "l-trigger-hover";
+            }, function ()
+            {
+                if (p.disabled) return;
+                this.className = "l-trigger";
+            }).mousedown(function ()
+            {
+                if (p.disabled) return;
+                this.className = "l-trigger-pressed";
+            }).mouseup(function ()
+            {
+                if (p.disabled) return;
+                this.className = "l-trigger-hover";
+            }).click(function ()
+            {
+            	if(p.showFunction instanceof Function){
+            		p.showFunction();
+            	}else if(p.showFunction=="selectUser"){
+            		selectUser(g.inputText);
+            	}
+                if (p.disabled) return;
+                if (g.trigger('buttonClick') == false) return false;
+            });
+            g.inputText.click(function ()
+            {
+                if (p.disabled) return;
+            }).blur(function ()
+            {
+                if (p.disabled) return;
+                g.wrapper.removeClass("l-text-focus");
+            }).focus(function ()
+            {
+                if (p.disabled) return;
+                g.wrapper.addClass("l-text-focus");
+            });
+            g.wrapper.hover(function ()
+            {
+                if (p.disabled) return;
+                g.wrapper.addClass("l-text-over");
+            }, function ()
+            {
+                if (p.disabled) return;
+                g.wrapper.removeClass("l-text-over");
+            });
+            g.set(p);
+        },
+        destroy: function ()
+        {
+            if (this.wrapper) this.wrapper.remove();
+            this.options = null;
+            $.ligerui.remove(this);
+        },
+        clear: function ()
+        {
+            var g = this, p = this.options;
+            g.inputText.val("");
+            g.valueField.val("");
+        },
+        _setCss: function (css)
+        {
+            if (css)
+            {
+                this.wrapper.addClass(css);
+            }
+        },
+        //取消选择 
+        _setCancelable: function (value)
+        {
+            var g = this, p = this.options;
+            if (!value && g.unselect)
+            {
+                g.unselect.remove();
+                g.unselect = null;
+            }
+            if (!value && !g.unselect) return;
+            g.unselect = $('<div class="l-trigger l-trigger-cancel"><div class="l-trigger-icon"></div></div>').hide();
+            g.wrapper.hover(function ()
+            {
+//                g.unselect.show();
+            }, function ()
+            {
+                g.unselect.hide();
+            })
+            if (!p.disabled && p.cancelable)
+            {
+                g.wrapper.append(g.unselect);
+            }
+            g.unselect.hover(function ()
+            {
+                this.className = "l-trigger-hover l-trigger-cancel";
+            }, function ()
+            {
+                this.className = "l-trigger l-trigger-cancel";
+            }).click(function ()
+            {
+                g.clear();
+            });
+        },
+        _setDisabled: function (value)
+        {
+            if (value)
+            {
+                this.wrapper.addClass('l-text-disabled');
+            } else
+            {
+                this.wrapper.removeClass('l-text-disabled');
+            }
+        },
+        _setWidth: function (value)
+        {
+            var g = this;
+            if (value > 20)
+            {
+                g.wrapper.css({ width: value });
+                g.inputText.css({ width: value - 20 });
+            }
+        },
+        _setHeight: function (value)
+        {
+            var g = this;
+            if (value > 10)
+            {
+                g.wrapper.height(value);
+                g.inputText.height(value - 2);
+            }
+        },
+        _getText: function ()
+        {
+            return $(this.inputText).val();
+        },
+        _getValue: function ()
+        {
+            return $(this.valueField).val();
+        },
+        getValue: function ()
+        {
+            return this._getValue();
+        },
+        getText: function ()
+        {
+            return this._getText();
+        },
+        //设置值到  隐藏域
+        setValue: function (value, text)
+        {
+            var g = this, p = this.options;
+            if (arguments.length >= 2)
+            {
+                g.setValue(value);
+                g.setText(text);
+                return;
+            }
+            g.valueField.val(value);
+        },
+        //设置值到 文本框 
+        setText: function (text)
+        {
+            var g = this, p = this.options;
+            if (p.render)
+            {
+                g.inputText.val(p.render(text));
+            }
+            else
+            {
+                g.inputText.val(text);
+            }
+        },
+        addValue: function (value, text)
+        {
+            var g = this, p = this.options;
+            if (!value) return;
+            var v = g.getValue(), t = g.getText();
+            if (!v)
+            {
+                g.setValue(value);
+                g.setText(text);
+            } else
+            {
+                var arrV = [], arrT = [], old = v.split(p.split), value = value.split(p.split), text = text.split(p.split);
+                for (var i = 0, l = value.length; i < l; i++)
+                {
+                    if ($.inArray(value[i], old) == -1)
+                    {
+                        arrV.push(value[i]);
+                        arrT.push(text[i]);
+                    }
+                }
+                if (arrV.length)
+                {
+                    g.setValue(v + p.split + arrV.join(p.split));
+                    g.setText(t + p.split + arrT.join(p.split));
+                }
+            }
+        },
+        removeValue: function (value, text)
+        {
+            var g = this, p = this.options;
+            if (!value) return;
+            var v = g.getValue(), t = g.getText();
+            if (!v) return;
+            var oldV = v.split(p.split), oldT = t.split(p.split), value = value.split(p.split);
+            for (var i = 0, index = -1, l = value.length; i < l; i++)
+            {
+                if ((index = $.inArray(value[i], oldV)) != -1)
+                {
+                    oldV.splice(index, 1);
+                    oldT.splice(index, 1);
+                }
+            }
+            g.setValue(oldV.join(p.split));
+            g.setText(oldT.join(p.split));
+        },
+        _setGrid: function (value)
+        {
+            if (!value) return;
+            var g = this, p = this.options;
+            var gridOptions = $.extend({
+                parms: p.parms
+            }, p.grid); 
+            this.bind('buttonClick', function ()
+            {
+                if (!g.popupFn)
+                {
+                    var options = {
+                        grid: gridOptions,
+                        condition: p.condition,
+                        valueField: p.valueField,
+                        textField: p.textField,
+                        split: p.split,
+                        onSelect: function (e)
+                        {
+                            if (g.trigger('select', e) == false) return;
+                            if (p.grid.checkbox)
+                            {
+                                g.addValue(e.value, e.text);
+                                g.removeValue(e.remvoeValue, e.remvoeText);
+                            } else
+                            {
+                                g.setValue(e.value);
+                                g.setText(e.text);
+                            }
+                            g.trigger('selected', e);
+                        },
+                        selectInit: function (rowdata)
+                        {
+                            var value = g.getValue();
+                            if (!value) return false;
+                            if (!p.valueField || !rowdata[p.valueField]) return false;
+                            return $.inArray(rowdata[p.valueField].toString(), value.split(p.split)) != -1;
+                        }
+                    };
+                    g.popupFn = $.ligerui.getPopupFn(options);
+                }
+                g.popupFn();
+            });
+        }
+    });
+
+
+
+    //创建一个可查询、可分页列表的选取弹出框 需要dialog,grid,form等插件的支持
+    $.ligerui.getPopupFn = function (p)
+    { 
+        p = $.extend({
+            title: '选择数据',     //窗口标题
+            width: 700,            //窗口宽度     
+            height: 320,           //列表高度
+            top: null,
+            left: null,
+            split: ';',
+            valueField: null,    //接收表格的value字段名
+            textField: null,     //接收表格的text字段名
+            grid: null,          //表格的参数 同ligerGrid
+            condition: null,     //搜索表单的参数 同ligerForm
+            onSelect: function (p) { },   //选取函数 
+            selectInit: function (rowdata) { return false }  //选择初始化
+        }, p);
+        if (!p.grid) return;
+        var win, grid, condition, lastSelected = [];
+        return function ()
+        {
+            show();
+            return false;
+        };
+        function show()
+        {
+            function getGridHeight(height)
+            {
+                height = height || p.height;
+                height -= conditionPanel.height();
+                return height;
+            }
+            if (win)
+            {
+                grid._showData();
+                win.show();
+                grid.refreshSize();
+                lastSelected = grid.selected.concat();
+                return;
+            }
+            var panle = $("<div></div>");
+            var conditionPanel = $("<div></div>");
+            var gridPanel = $("<div></div>");
+            panle.append(conditionPanel).append(gridPanel);
+            if (p.condition)
+            {
+                var conditionParm = $.extend({
+                    labelWidth: 60,
+                    space: 20
+                }, p.condition); 
+                condition = conditionPanel.ligerForm(conditionParm);
+            } else
+            {
+                conditionPanel.remove();
+            }
+            var gridParm = $.extend({
+                columnWidth: 120,
+                alternatingRow: false,
+                frozen: true,
+                rownumbers: true
+            }, p.grid, {
+                width: "100%",
+                height: getGridHeight(),
+                isChecked: p.selectInit,
+                isSelected: p.selectInit,
+                inWindow: false
+            });
+            //grid
+            grid = gridPanel.ligerGrid(gridParm);
+            //搜索按钮
+            if (p.condition)
+            {
+                var containerBtn1 = $('<li style="margin-right:9px"><div></div></li>');
+                $("ul:first", conditionPanel).append(containerBtn1).after('<div class="l-clear"></div>');
+                $("div", containerBtn1).ligerButton({
+                    text: '搜索',
+                    click: function ()
+                    {
+                        var rules = $.ligerui.getConditions(conditionPanel);
+                        grid.setParm('condition', $.ligerui.toJSON(rules));
+                        grid.reload();
+                    }
+                });
+            }
+            //dialog
+            win = $.ligerDialog.open({
+                title: p.title,
+                width: p.width,
+                height: 'auto',
+                top: p.top,
+                left: p.left,
+                target: panle,
+                isResize: true,
+                cls: 'l-selectorwin',
+                onContentHeightChange: function (height)
+                {
+                    grid.set('height', getGridHeight(height));
+                    return false;
+                },
+                onStopResize: function ()
+                {
+                    grid.refreshSize();
+                },
+                buttons: [
+                 { text: '选择', onclick: function (item, dialog) { toSelect(); dialog.hide(); } },
+                 { text: '取消', onclick: function (item, dialog) { dialog.hide(); } }
+                ]
+            });
+
+            grid.refreshSize();
+        }
+        function toSelect()
+        {
+            var selected = grid.selected || [];
+            var value = [], text = [], data = [];
+            $(selected).each(function (i, rowdata)
+            {
+                p.valueField && value.push(rowdata[p.valueField]);
+                p.textField && text.push(rowdata[p.textField]);
+                var o = $.extend(true, {}, this);
+                grid.formatRecord(o, true);
+                data.push(o);
+            });
+            var unSelected = [];
+            $(lastSelected).each(function ()
+            {
+                if ($.inArray(this, selected) == -1 && $.inArray(this, grid.rows) != -1)
+                {
+                    unSelected.push(this);
+                }
+            });
+            var removeValue = [], removeText = [], removeData = [];
+            $(unSelected).each(function (i, rowdata)
+            {
+                p.valueField && removeValue.push(rowdata[p.valueField]);
+                p.textField && removeText.push(rowdata[p.textField]);
+                var o = $.extend(true, {}, this);
+                grid.formatRecord(o, true);
+                removeData.push(o);
+            });
+            p.onSelect({
+                value: value.join(p.split),
+                text: text.join(p.split),
+                data: data,
+                remvoeValue: removeValue.join(p.split),
+                remvoeText: removeText.join(p.split),
+                removeData: removeData
+            });
+        }
+    };
+
+})(jQuery);

+ 146 - 0
web/js/lg/plugins/ligerRadio.js

@@ -0,0 +1,146 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+
+(function ($)
+{
+
+    $.fn.ligerRadio = function ()
+    {
+        return $.ligerui.run.call(this, "ligerRadio", arguments);
+    };
+
+    $.fn.ligerGetRadioManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetRadioManager", arguments);
+    };
+
+    $.ligerDefaults.Radio = { disabled: false };
+
+    $.ligerMethos.Radio = {};
+
+    $.ligerui.controls.Radio = function (element, options)
+    {
+        $.ligerui.controls.Radio.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.Radio.ligerExtend($.ligerui.controls.Input, {
+        __getType: function ()
+        {
+            return 'Radio';
+        },
+        __idPrev: function ()
+        {
+            return 'Radio';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Radio;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.input = $(this.element);
+            g.link = $('<a href="javascript:void(0)" class="l-radio"></a>');
+            g.wrapper = g.input.addClass('l-hidden').wrap('<div class="l-radio-wrapper"></div>').parent();
+            g.wrapper.prepend(g.link);
+            g.input.change(function ()
+            {
+                if (this.checked)
+                {
+                    g.link.addClass('l-radio-checked');
+                }
+                else
+                {
+                    g.link.removeClass('l-radio-checked');
+                }
+                return true;
+            });
+            g.link.click(function ()
+            {
+                g._doclick();
+            });
+            g.wrapper.hover(function ()
+            {
+                if (!p.disabled)
+                    $(this).addClass("l-over");
+            }, function ()
+            {
+                $(this).removeClass("l-over");
+            });
+            this.element.checked && g.link.addClass('l-radio-checked');
+
+            if (this.element.id)
+            {
+                $("label[for=" + this.element.id + "]").click(function ()
+                {
+                    g._doclick();
+                });
+            }
+            g.set(p);
+        },
+        setValue: function (value)
+        {
+            var g = this, p = this.options;
+            if (!value)
+            {
+                g.input[0].checked = false;
+                g.link.removeClass('l-radio-checked');
+            }
+            else
+            {
+                g.input[0].checked = true;
+                g.link.addClass('l-radio-checked');
+            }
+        },
+        getValue: function ()
+        {
+            return this.input[0].checked;
+        },
+        setEnabled: function ()
+        {
+            this.input.attr('disabled', false);
+            this.wrapper.removeClass("l-disabled");
+            this.options.disabled = false;
+        },
+        setDisabled: function ()
+        {
+            this.input.attr('disabled', true);
+            this.wrapper.addClass("l-disabled");
+            this.options.disabled = true;
+        },
+        updateStyle: function ()
+        {
+            if (this.input.attr('disabled'))
+            {
+                this.wrapper.addClass("l-disabled");
+                this.options.disabled = true;
+            }
+            if (this.input[0].checked)
+            {
+                this.link.addClass('l-checkbox-checked');
+            }
+            else
+            {
+                this.link.removeClass('l-checkbox-checked');
+            }
+        },
+        _doclick: function ()
+        {
+            var g = this, p = this.options;
+            if (g.input.attr('disabled')) { return false; }
+            g.input.trigger('click').trigger('change');
+            var formEle;
+            if (g.input[0].form) formEle = g.input[0].form;
+            else formEle = document;
+            $("input:radio[name=" + g.input[0].name + "]", formEle).not(g.input).trigger("change");
+            return false;
+        }
+    });
+
+
+})(jQuery);

+ 378 - 0
web/js/lg/plugins/ligerSpinner.js

@@ -0,0 +1,378 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.fn.ligerSpinner = function ()
+    {
+        return $.ligerui.run.call(this, "ligerSpinner", arguments);
+    };
+    $.fn.ligerGetSpinnerManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetSpinnerManager", arguments);
+    };
+
+    $.ligerDefaults.Spinner = {
+        type: 'float',     //类型 float:浮点数 int:整数 time:时间
+        isNegative: true, //是否负数
+        decimalplace: 2,   //小数位 type=float时起作用
+        step: 0.1,         //每次增加的值
+        interval: 50,      //间隔,毫秒
+        onChangeValue: false,    //改变值事件
+        minValue: null,        //最小值
+        maxValue: null,         //最大值
+        disabled: false
+    };
+
+    $.ligerMethos.Spinner = {};
+
+    $.ligerui.controls.Spinner = function (element, options)
+    {
+        $.ligerui.controls.Spinner.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.Spinner.ligerExtend($.ligerui.controls.Input, {
+        __getType: function ()
+        {
+            return 'Spinner';
+        },
+        __idPrev: function ()
+        {
+            return 'Spinner';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Spinner;
+        },
+        _init: function ()
+        {
+            $.ligerui.controls.Spinner.base._init.call(this);
+            var p = this.options;
+            if (p.type == 'float')
+            {
+                p.step = 0.1;
+                p.interval = 50;
+            } else if (p.type == 'int')
+            {
+                p.step = 1;
+                p.interval = 100;
+            } else if (p.type == 'time')
+            {
+                p.step = 1;
+                p.interval = 100;
+            }
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.interval = null;
+            g.inputText = null;
+            g.value = null;
+            g.textFieldID = "";
+            if (this.element.tagName.toLowerCase() == "input" && this.element.type && this.element.type == "text")
+            {
+                g.inputText = $(this.element);
+                if (this.element.id)
+                    g.textFieldID = this.element.id;
+            }
+            else
+            {
+                g.inputText = $('<input type="text"/>');
+                g.inputText.appendTo($(this.element));
+            }
+            if (g.textFieldID == "" && p.textFieldID)
+                g.textFieldID = p.textFieldID;
+
+            g.link = $('<div class="l-trigger"><div class="l-spinner-up"><div class="l-spinner-icon"></div></div><div class="l-spinner-split"></div><div class="l-spinner-down"><div class="l-spinner-icon"></div></div></div>');
+            g.wrapper = g.inputText.wrap('<div class="l-text"></div>').parent();
+            g.wrapper.append('<div class="l-text-l"></div><div class="l-text-r"></div>');
+            g.wrapper.append(g.link).after(g.selectBox).after(g.valueField);
+            g.link.up = $(".l-spinner-up", g.link);
+            g.link.down = $(".l-spinner-down", g.link);
+            g.inputText.addClass("l-text-field");
+
+            if (p.disabled)
+            {
+                g.wrapper.addClass("l-text-disabled");
+            }
+            //初始化
+            if (!g._isVerify(g.inputText.val()))
+            {
+                g.value = g._getDefaultValue();
+                g.inputText.val(g.value);
+            }
+            //事件
+            g.link.up.hover(function ()
+            {
+                if (!p.disabled)
+                    $(this).addClass("l-spinner-up-over");
+            }, function ()
+            {
+                clearInterval(g.interval);
+                $(document).unbind("selectstart.spinner");
+                $(this).removeClass("l-spinner-up-over");
+            }).mousedown(function ()
+            {
+                if (!p.disabled)
+                {
+                    g._uping.call(g);
+                    g.interval = setInterval(function ()
+                    {
+                        g._uping.call(g);
+                    }, p.interval);
+                    $(document).bind("selectstart.spinner", function () { return false; });
+                }
+            }).mouseup(function ()
+            {
+                clearInterval(g.interval);
+                g.inputText.trigger("change").focus();
+                $(document).unbind("selectstart.spinner");
+            });
+            g.link.down.hover(function ()
+            {
+                if (!p.disabled)
+                    $(this).addClass("l-spinner-down-over");
+            }, function ()
+            {
+                clearInterval(g.interval);
+                $(document).unbind("selectstart.spinner");
+                $(this).removeClass("l-spinner-down-over");
+            }).mousedown(function ()
+            {
+                if (!p.disabled)
+                {
+                    g.interval = setInterval(function ()
+                    {
+                        g._downing.call(g);
+                    }, p.interval);
+                    $(document).bind("selectstart.spinner", function () { return false; });
+                }
+            }).mouseup(function ()
+            {
+                clearInterval(g.interval);
+                g.inputText.trigger("change").focus();
+                $(document).unbind("selectstart.spinner");
+            });
+
+            g.inputText.change(function ()
+            {
+                var value = g.inputText.val();
+                g.value = g._getVerifyValue(value);
+                g.trigger('changeValue', [g.value]);
+                g.inputText.val(g.value);
+            }).blur(function ()
+            {
+                g.wrapper.removeClass("l-text-focus");
+            }).focus(function ()
+            {
+                g.wrapper.addClass("l-text-focus");
+            });
+            g.wrapper.hover(function ()
+            {
+                if (!p.disabled)
+                    g.wrapper.addClass("l-text-over");
+            }, function ()
+            {
+                g.wrapper.removeClass("l-text-over");
+            });
+            g.set(p);
+        },
+        _setWidth: function (value)
+        {
+            var g = this;
+            if (value > 20)
+            {
+                g.wrapper.css({ width: value });
+                g.inputText.css({ width: value - 20 });
+            }
+        },
+        _setHeight: function (value)
+        {
+            var g = this;
+            if (value > 10)
+            {
+                g.wrapper.height(value);
+                g.inputText.height(value - 2);
+                g.link.height(value - 4);
+            }
+        },
+        _setDisabled: function (value)
+        {
+            if (value)
+            {
+                this.wrapper.addClass("l-text-disabled");
+            }
+            else
+            {
+                this.wrapper.removeClass("l-text-disabled");
+            }
+        },
+        setValue: function (value)
+        {
+            this.inputText.val(value);
+        },
+        getValue: function ()
+        {
+            return this.inputText.val();
+        },
+        _round: function (v, e)
+        {
+            var g = this, p = this.options;
+            var t = 1;
+            for (; e > 0; t *= 10, e--);
+            for (; e < 0; t /= 10, e++);
+            return Math.round(v * t) / t;
+        },
+        _isInt: function (str)
+        {
+            var g = this, p = this.options;
+            var strP = p.isNegative ? /^-?\d+$/ : /^\d+$/;
+            if (!strP.test(str)) return false;
+            if (parseFloat(str) != str) return false;
+            return true;
+        },
+        _isFloat: function (str)
+        {
+            var g = this, p = this.options;
+            var strP = p.isNegative ? /^-?\d+(\.\d+)?$/ : /^\d+(\.\d+)?$/;
+            if (!strP.test(str)) return false;
+            if (parseFloat(str) != str) return false;
+            return true;
+        },
+        _isTime: function (str)
+        {
+            var g = this, p = this.options;
+            var a = str.match(/^(\d{1,2}):(\d{1,2})$/);
+            if (a == null) return false;
+            if (a[1] > 24 || a[2] > 60) return false;
+            return true;
+
+        },
+        _isVerify: function (str)
+        {
+            var g = this, p = this.options;
+            if (p.type == 'float')
+            {
+                if (!g._isFloat(str)) return false;
+                var value = parseFloat(str);
+                if (p.minValue != undefined && p.minValue > value) return false;
+                if (p.maxValue != undefined && p.maxValue < value) return false;
+                return true;
+            } else if (p.type == 'int')
+            {
+                if (!g._isInt(str)) return false;
+                var value = parseInt(str);
+                if (p.minValue != undefined && p.minValue > value) return false;
+                if (p.maxValue != undefined && p.maxValue < value) return false;
+                return true;
+            } else if (p.type == 'time')
+            {
+                return g._isTime(str);
+            }
+            return false;
+        },
+        _getVerifyValue: function (value)
+        {
+            var g = this, p = this.options;
+            var newvalue = null;
+            if (p.type == 'float')
+            {
+                newvalue = g._round(value, p.decimalplace);
+            } else if (p.type == 'int')
+            {
+                newvalue = parseInt(value);
+            } else if (p.type == 'time')
+            {
+                newvalue = value;
+            }
+            if (!g._isVerify(newvalue))
+            {
+                return g.value;
+            } else
+            {
+                return newvalue;
+            }
+        },
+        _isOverValue: function (value)
+        {
+            var g = this, p = this.options;
+            if (p.minValue != null && p.minValue > value) return true;
+            if (p.maxValue != null && p.maxValue < value) return true;
+            return false;
+        },
+        _getDefaultValue: function ()
+        {
+            var g = this, p = this.options;
+            if (p.type == 'float' || p.type == 'int') { return 0; }
+            else if (p.type == 'time') { return "00:00"; }
+        },
+        _addValue: function (num)
+        {
+            var g = this, p = this.options;
+            var value = g.inputText.val();
+            value = parseFloat(value) + num;
+            if (g._isOverValue(value)) return;
+            g.inputText.val(value);
+            g.inputText.trigger("change");
+        },
+        _addTime: function (minute)
+        {
+            var g = this, p = this.options;
+            var value = g.inputText.val();
+            var a = value.match(/^(\d{1,2}):(\d{1,2})$/);
+            newminute = parseInt(a[2]) + minute;
+            if (newminute < 10) newminute = "0" + newminute;
+            value = a[1] + ":" + newminute;
+            if (g._isOverValue(value)) return;
+            g.inputText.val(value);
+            g.inputText.trigger("change");
+        },
+        _uping: function ()
+        {
+            var g = this, p = this.options;
+            if (p.type == 'float' || p.type == 'int')
+            {
+                g._addValue(p.step);
+            } else if (p.type == 'time')
+            {
+                g._addTime(p.step);
+            }
+        },
+        _downing: function ()
+        {
+            var g = this, p = this.options;
+            if (p.type == 'float' || p.type == 'int')
+            {
+                g._addValue(-1 * p.step);
+            } else if (p.type == 'time')
+            {
+                g._addTime(-1 * p.step);
+            }
+        },
+        _isDateTime: function (dateStr)
+        {
+            var g = this, p = this.options;
+            var r = dateStr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
+            if (r == null) return false;
+            var d = new Date(r[1], r[3] - 1, r[4]);
+            if (d == "NaN") return false;
+            return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
+        },
+        _isLongDateTime: function (dateStr)
+        {
+            var g = this, p = this.options;
+            var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;
+            var r = dateStr.match(reg);
+            if (r == null) return false;
+            var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6]);
+            if (d == "NaN") return false;
+            return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6]);
+        }
+    });
+
+
+})(jQuery);

+ 823 - 0
web/js/lg/plugins/ligerTab.js

@@ -0,0 +1,823 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+
+    $.fn.ligerTab = function (options)
+    {
+        return $.ligerui.run.call(this, "ligerTab", arguments);
+    };
+
+    $.fn.ligerGetTabManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetTabManager", arguments);
+    };
+
+    $.ligerDefaults.Tab = {
+        height: null,
+        heightDiff: 0, // 高度补差 
+        changeHeightOnResize: false,
+        contextmenu: true,
+        dblClickToClose: false, //是否双击时关闭
+        dragToMove: false,    //是否允许拖动时改变tab项的位置
+        onBeforeOverrideTabItem: null,
+        onAfterOverrideTabItem: null,
+        onBeforeRemoveTabItem: null,
+        onAfterRemoveTabItem: null,
+        onBeforeAddTabItem: null,
+        onAfterAddTabItem: null,
+        onBeforeSelectTabItem: null,
+        onAfterSelectTabItem: null
+    };
+    $.ligerDefaults.TabString = {
+        closeMessage: "关闭当前页",
+        closeOtherMessage: "关闭其他",
+        closeAllMessage: "关闭所有",
+        reloadMessage: "刷新"
+    };
+
+    $.ligerMethos.Tab = {};
+
+    $.ligerui.controls.Tab = function (element, options)
+    {
+    	$.ligerui.controls.Tab.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.Tab.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'Tab';
+        },
+        __idPrev: function ()
+        {
+            return 'Tab';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Tab;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            if (p.height) g.makeFullHeight = true;
+            g.tab = $(this.element);
+            g.tab.addClass("l-tab");
+            if (p.contextmenu && $.ligerMenu)
+            {
+                g.tab.menu = $.ligerMenu({ width: 100, items: [
+                    { text: p.closeMessage, id: 'close', click: function ()
+                    {
+                        g._menuItemClick.apply(g, arguments);
+                    }
+                    },
+                    { text: p.closeOtherMessage, id: 'closeother', click: function ()
+                    {
+                        g._menuItemClick.apply(g, arguments);
+                    }
+                    },
+                    { text: p.closeAllMessage, id: 'closeall', click: function ()
+                    {
+                        g._menuItemClick.apply(g, arguments);
+                    }
+                    },
+                    { text: p.reloadMessage, id: 'reload', click: function ()
+                    {
+                        g._menuItemClick.apply(g, arguments);
+                    }
+                    }
+                ]
+                });
+            }
+            g.tab.content = $('<div class="l-tab-content"></div>');
+            $("> div", g.tab).appendTo(g.tab.content);
+            g.tab.content.appendTo(g.tab);
+            g.tab.links = $('<div class="l-tab-links"><ul style="left: 0px; "></ul></div>');
+            g.tab.links.prependTo(g.tab);
+            g.tab.links.ul = $("ul", g.tab.links);
+            var lselecteds = $("> div[lselected=true]", g.tab.content);
+            var haslselected = lselecteds.length > 0;
+            g.selectedTabId = lselecteds.attr("tabid");
+         
+            $("> div", g.tab.content).each(function (i, box)
+            {
+                var li = $('<li class=""><a></a></li>');
+                var contentitem = $(this);
+               
+                if (contentitem.attr("title"))
+                {
+                    $("> a", li).html(contentitem.attr("title"));
+                    contentitem.attr("title", "");
+                }
+                var tabid = contentitem.attr("tabid");
+                if (tabid == undefined)
+                {
+                    tabid = g.getNewTabid();
+                    contentitem.attr("tabid", tabid);
+                    if (contentitem.attr("lselected"))
+                    {
+                        g.selectedTabId = tabid;
+                    }
+                }
+                li.attr("tabid", tabid);
+                if (!haslselected && i == 0) g.selectedTabId = tabid;
+                var showClose = contentitem.attr("showClose");
+                if (showClose)
+                {
+                    li.append("<div class='l-tab-links-item-close'></div>");
+                }
+                $("> ul", g.tab.links).append(li);
+                if (!contentitem.hasClass("l-tab-content-item")) contentitem.addClass("l-tab-content-item");
+                if (contentitem.find("iframe").length > 0)
+                {
+                    var iframe = $("iframe:first", contentitem);
+                    if (iframe[0].readyState != "complete")
+                    {
+                        if (contentitem.find(".l-tab-loading:first").length == 0)
+                            contentitem.prepend("<div class='l-tab-loading' style='display:block;'></div>");
+                        var iframeloading = $(".l-tab-loading:first", contentitem);
+                        iframe.bind('load.tab', function ()
+                        {
+                            iframeloading.hide();
+                        });
+                    }
+                }
+            });
+            //init 
+            g.selectTabItem(g.selectedTabId);
+            //set content height
+            if (p.height)
+            {
+                if (typeof (p.height) == 'string' && p.height.indexOf('%') > 0)
+                {
+                    g.onResize();
+                    if (p.changeHeightOnResize)
+                    {
+                        $(window).resize(function ()
+                        {
+                            g.onResize.call(g);
+                        });
+                    }
+                } else
+                {
+                    g.setHeight(p.height);
+                }
+            }
+            if (g.makeFullHeight)
+                g.setContentHeight();
+            //add even 
+            $("li", g.tab.links).each(function ()
+            {
+                g._addTabItemEvent($(this));
+            });
+            g.tab.bind('dblclick.tab', function (e)
+            {
+                if (!p.dblClickToClose) return;
+                g.dblclicking = true;
+                var obj = (e.target || e.srcElement);
+                var tagName = obj.tagName.toLowerCase();
+                if (tagName == "a")
+                {
+                    var tabid = $(obj).parent().attr("tabid");
+                    var allowClose = $(obj).parent().find("div.l-tab-links-item-close").length ? true : false;
+                    if (allowClose)
+                    {
+                        g.removeTabItem(tabid);
+                    }
+                }
+                g.dblclicking = false;
+            });
+
+            g.set(p);
+        },
+        _applyDrag: function (tabItemDom)
+        {
+            var g = this, p = this.options;
+            g.droptip = g.droptip || $("<div class='l-tab-drag-droptip' style='display:none'><div class='l-drop-move-up'></div><div class='l-drop-move-down'></div></div>").appendTo('body');
+            var drag = $(tabItemDom).ligerDrag(
+            {
+                revert: true, animate: false,
+                proxy: function ()
+                {
+                    var name = $(this).find("a").html();
+                    g.dragproxy = $("<div class='l-tab-drag-proxy' style='display:none'><div class='l-drop-icon l-drop-no'></div></div>").appendTo('body');
+                    g.dragproxy.append(name);
+                    return g.dragproxy;
+                },
+                onRendered: function ()
+                {
+                    this.set('cursor', 'pointer');
+                },
+                onStartDrag: function (current, e)
+                {
+                    if (!$(tabItemDom).hasClass("l-selected")) return false;
+                    if (e.button == 2) return false;
+                    var obj = e.srcElement || e.target;
+                    if ($(obj).hasClass("l-tab-links-item-close")) return false;
+                },
+                onDrag: function (current, e)
+                {
+                    if (g.dropIn == null)
+                        g.dropIn = -1;
+                    var tabItems = g.tab.links.ul.find('>li');
+                    var targetIndex = tabItems.index(current.target);
+                    tabItems.each(function (i, item)
+                    {
+                        if (targetIndex == i)
+                        {
+                            return;
+                        }
+                        var isAfter = i > targetIndex;
+                        if (g.dropIn != -1 && g.dropIn != i) return;
+                        var offset = $(this).offset();
+                        var range = {
+                            top: offset.top,
+                            bottom: offset.top + $(this).height(),
+                            left: offset.left - 10,
+                            right: offset.left + 10
+                        };
+                        if (isAfter)
+                        {
+                            range.left += $(this).width();
+                            range.right += $(this).width();
+                        }
+                        var pageX = e.pageX || e.screenX;
+                        var pageY = e.pageY || e.screenY;
+                        if (pageX > range.left && pageX < range.right && pageY > range.top && pageY < range.bottom)
+                        {
+                            g.droptip.css({
+                                left: range.left + 5,
+                                top: range.top - 9
+                            }).show();
+                            g.dropIn = i;
+                            g.dragproxy.find(".l-drop-icon").removeClass("l-drop-no").addClass("l-drop-yes");
+                        }
+                        else
+                        {
+                            g.dropIn = -1;
+                            g.droptip.hide();
+                            g.dragproxy.find(".l-drop-icon").removeClass("l-drop-yes").addClass("l-drop-no");
+                        }
+                    });
+                },
+                onStopDrag: function (current, e)
+                {
+                    if (g.dropIn > -1)
+                    {
+                        var to = g.tab.links.ul.find('>li:eq(' + g.dropIn + ')').attr("tabid");
+                        var from = $(current.target).attr("tabid");
+                        setTimeout(function ()
+                        {
+                            g.moveTabItem(from, to);
+                        }, 0);
+                        g.dropIn = -1;
+                        g.dragproxy.remove();
+                    }
+                    g.droptip.hide();
+                    this.set('cursor', 'default');
+                }
+            });
+            return drag;
+        },
+        _setDragToMove: function (value)
+        {
+            if (!$.fn.ligerDrag) return; //需要ligerDrag的支持
+            var g = this, p = this.options;
+            if (value)
+            {
+                if (g.drags) return;
+                g.drags = g.drags || [];
+                g.tab.links.ul.find('>li').each(function ()
+                {
+                    g.drags.push(g._applyDrag(this));
+                });
+            }
+        },
+        moveTabItem: function (fromTabItemID, toTabItemID)
+        {
+            var g = this;
+            var from = g.tab.links.ul.find(">li[tabid=" + fromTabItemID + "]");
+            var to = g.tab.links.ul.find(">li[tabid=" + toTabItemID + "]");
+            var index1 = g.tab.links.ul.find(">li").index(from);
+            var index2 = g.tab.links.ul.find(">li").index(to);
+            if (index1 < index2)
+            {
+                to.after(from);
+            }
+            else
+            {
+                to.before(from);
+            }
+        },
+        //设置tab按钮(左和右),显示返回true,隐藏返回false
+        setTabButton: function ()
+        {
+            var g = this, p = this.options;
+            var sumwidth = 0;
+            $("li", g.tab.links.ul).each(function ()
+            {
+                sumwidth += $(this).width() + 2;
+            });
+            var mainwidth = g.tab.width();
+            if (sumwidth > mainwidth)
+            {
+                g.tab.links.append('<div class="l-tab-links-left"></div><div class="l-tab-links-right"></div>');
+                g.setTabButtonEven();
+                return true;
+            } else
+            {
+                g.tab.links.ul.animate({ left: 0 });
+                $(".l-tab-links-left,.l-tab-links-right", g.tab.links).remove();
+                return false;
+            }
+        },
+        //设置左右按钮的事件 标签超出最大宽度时,可左右拖动
+        setTabButtonEven: function ()
+        {
+            var g = this, p = this.options;
+            $(".l-tab-links-left", g.tab.links).hover(function ()
+            {
+                $(this).addClass("l-tab-links-left-over");
+            }, function ()
+            {
+                $(this).removeClass("l-tab-links-left-over");
+            }).click(function ()
+            {
+                g.moveToPrevTabItem();
+            });
+            $(".l-tab-links-right", g.tab.links).hover(function ()
+            {
+                $(this).addClass("l-tab-links-right-over");
+            }, function ()
+            {
+                $(this).removeClass("l-tab-links-right-over");
+            }).click(function ()
+            {
+                g.moveToNextTabItem();
+            });
+        },
+        //切换到上一个tab
+        moveToPrevTabItem: function ()
+        {
+            var g = this, p = this.options;
+            var btnWitdth = $(".l-tab-links-left", g.tab.links).width();
+            var leftList = new Array(); //记录每个tab的left,由左到右
+            $("li", g.tab.links).each(function (i, item)
+            {
+                var currentItemLeft = -1 * btnWitdth;
+                if (i > 0)
+                {
+                    currentItemLeft = parseInt(leftList[i - 1]) + $(this).prev().width() + 2;
+                }
+                leftList.push(currentItemLeft);
+            });
+            var currentLeft = -1 * parseInt(g.tab.links.ul.css("left"));
+            for (var i = 0; i < leftList.length - 1; i++)
+            {
+                if (leftList[i] < currentLeft && leftList[i + 1] >= currentLeft)
+                {
+                    g.tab.links.ul.animate({ left: -1 * parseInt(leftList[i]) });
+                    return;
+                }
+            }
+        },
+        //切换到下一个tab
+        moveToNextTabItem: function ()
+        {
+            var g = this, p = this.options;
+            var btnWitdth = $(".l-tab-links-right", g.tab).width();
+            var sumwidth = 0;
+            var tabItems = $("li", g.tab.links.ul);
+            tabItems.each(function ()
+            {
+                sumwidth += $(this).width() + 2;
+            });
+            var mainwidth = g.tab.width();
+            var leftList = new Array(); //记录每个tab的left,由右到左 
+            for (var i = tabItems.length - 1; i >= 0; i--)
+            {
+                var currentItemLeft = sumwidth - mainwidth + btnWitdth + 2;
+                if (i != tabItems.length - 1)
+                {
+                    currentItemLeft = parseInt(leftList[tabItems.length - 2 - i]) - $(tabItems[i + 1]).width() - 2;
+                }
+                leftList.push(currentItemLeft);
+            }
+            var currentLeft = -1 * parseInt(g.tab.links.ul.css("left"));
+            for (var j = 1; j < leftList.length; j++)
+            {
+                if (leftList[j] <= currentLeft && leftList[j - 1] > currentLeft)
+                {
+                    g.tab.links.ul.animate({ left: -1 * parseInt(leftList[j - 1]) });
+                    return;
+                }
+            }
+        },
+        getTabItemCount: function ()
+        {
+            var g = this, p = this.options;
+            return $("li", g.tab.links.ul).length;
+        },
+        getSelectedTabItemID: function ()
+        {
+            var g = this, p = this.options;
+            return $("li.l-selected", g.tab.links.ul).attr("tabid");
+        },
+        removeSelectedTabItem: function ()
+        {
+            var g = this, p = this.options;
+            g.removeTabItem(g.getSelectedTabItemID());
+        },
+        //覆盖选择的tabitem
+        overrideSelectedTabItem: function (options)
+        {
+            var g = this, p = this.options;
+            g.overrideTabItem(g.getSelectedTabItemID(), options);
+        },
+        //覆盖
+        overrideTabItem: function (targettabid, options)
+        {
+            var g = this, p = this.options;
+            if (g.trigger('beforeOverrideTabItem', [targettabid]) == false)
+                return false;
+            var tabid = options.tabid;
+            if (tabid == undefined) tabid = g.getNewTabid();
+            var url = options.url;
+            var content = options.content;
+            var target = options.target;
+            var text = options.text;
+            var showClose = options.showClose;
+            var height = options.height;
+            //如果已经存在
+            if (g.isTabItemExist(tabid))
+            {
+                return;
+            }
+            var tabitem = $("li[tabid=" + targettabid + "]", g.tab.links.ul);
+            var contentitem = $(".l-tab-content-item[tabid=" + targettabid + "]", g.tab.content);
+            if (!tabitem || !contentitem) return;
+            tabitem.attr("tabid", tabid);
+            contentitem.attr("tabid", tabid);
+            if ($("iframe", contentitem).length == 0 && url)
+            {
+                contentitem.html("<iframe frameborder='0'></iframe>");
+            }
+            else if (content)
+            {
+                contentitem.html(content);
+            }
+            $("iframe", contentitem).attr("name", tabid);
+            if (showClose == undefined) showClose = true;
+            if (showClose == false) $(".l-tab-links-item-close", tabitem).remove();
+            else
+            {
+                if ($(".l-tab-links-item-close", tabitem).length == 0)
+                    tabitem.append("<div class='l-tab-links-item-close'></div>");
+            }
+            if (text == undefined) text = tabid;
+            if (height) contentitem.height(height);
+            $("a", tabitem).text(text);
+            $("iframe", contentitem).attr("src", url);
+
+
+            g.trigger('afterOverrideTabItem', [targettabid]);
+        },
+        //选中tab项
+        selectTabItem: function (tabid)
+        {
+        	
+
+            var g = this, p = this.options;
+            if (g.trigger('beforeSelectTabItem', [tabid]) == false)
+                return false;
+            
+        	// 如果tabid不存在设为主页home
+        	if(tabid==null||tabid==''){
+        		tabid = 'home';
+        	}
+        	
+            g.selectedTabId = tabid;
+//            $("> .l-tab-content-item[tabid=" + tabid + "]", g.tab.content).show().siblings().hide();
+            
+            var tabContentObj = $("> .l-tab-content-item[tabid=" + tabid + "]", g.tab.content);
+
+            //if(navigator.userAgent.indexOf("Firefox")>0){
+            	
+            tabContentObj.removeAttr("style").css({ "height":"100%","width":"100%"}).siblings()
+                	.css({ "width":"0px", "height":"0px", "padding":"0px"});
+            //}else{
+            	
+            //	tabContentObj.show().siblings().hide();
+            //}
+            
+            // ie8 下,报表切换处理
+            if(navigator.userAgent.indexOf("MSIE 8")){
+            	g.tab.menu.show({ top: 0, left: 0 });
+            	g.tab.menu.hide();
+            }
+            
+            $("li[tabid=" + tabid + "]", g.tab.links.ul).addClass("l-selected").siblings().removeClass("l-selected");
+            g.trigger('afterSelectTabItem', [tabid]);
+        },
+        //移动到最后一个tab
+        moveToLastTabItem: function ()
+        {
+            var g = this, p = this.options;
+            var sumwidth = 0;
+            $("li", g.tab.links.ul).each(function ()
+            {
+                sumwidth += $(this).width() + 2;
+            });
+            var mainwidth = g.tab.width();
+            if (sumwidth > mainwidth)
+            {
+                var btnWitdth = $(".l-tab-links-right", g.tab.links).width();
+                g.tab.links.ul.animate({ left: -1 * (sumwidth - mainwidth + btnWitdth + 2) });
+            }
+        },
+        //判断tab是否存在
+        isTabItemExist: function (tabid)
+        {
+            var g = this, p = this.options;
+            return $("li[tabid=" + tabid + "]", g.tab.links.ul).length > 0;
+        },
+        //增加一个tab
+        addTabItem: function (options)
+        {
+            var g = this, p = this.options;
+            if (g.trigger('beforeAddTabItem', [tabid]) == false)
+                return false;
+            var tabid = options.tabid;
+            if (tabid == undefined) tabid = g.getNewTabid();
+            var url = options.url;
+            var content = options.content;
+            var text = options.text;
+            //添加图标。
+            var icon=options.icon;
+            var showClose = options.showClose;
+            var height = options.height;
+            //如果已经存在
+            if (g.isTabItemExist(tabid))
+            {
+                g.selectTabItem(tabid);
+                return;
+            }
+            var tabitem = $("<li><a></a><div class='l-tab-links-item-close'></div></li>");
+            var contentitem = $("<div class='l-tab-content-item'><div class='l-tab-loading' style='display:block;'></div><iframe frameborder='0'></iframe></div>");
+            var iframeloading = $("div:first", contentitem);
+            var iframe = $("iframe:first", contentitem);
+            if (g.makeFullHeight)
+            {
+                var newheight = g.tab.height() - g.tab.links.height();
+                contentitem.height(newheight);
+            }
+            tabitem.attr("tabid", tabid);
+            contentitem.attr("tabid", tabid);
+            if (url)
+            {
+                iframe.attr("name", tabid)
+                 .attr("id", tabid)
+                 .attr("src", url)
+                 .bind('load.tab', function ()
+                 {
+                     iframeloading.hide();
+                     if (options.callback)
+                         options.callback();
+                 });
+            }
+            else
+            {
+                iframe.remove(); 
+                iframeloading.remove();
+            }
+            if (content)
+            {
+                contentitem.html(content);
+            }
+            else if (options.target)
+            {
+                contentitem.append(options.target);
+            }
+            if (showClose == undefined) showClose = true;
+            if (showClose == false) $(".l-tab-links-item-close", tabitem).remove();
+            if (text == undefined) text = tabid;
+            if (height) contentitem.height(height);
+            var title=text;
+            //暂时关掉图片
+//            if(icon!=null && icon!="" ){
+//            	title="<img src='"+icon+"' border='0' style='vertical-align:middle;margin-right:4px;' />" + title;
+//            }
+            $("a", tabitem).html(title);
+
+            g.tab.links.ul.append(tabitem);
+            g.tab.content.append(contentitem);
+            g.selectTabItem(tabid);
+            if (g.setTabButton())
+            {
+                g.moveToLastTabItem();
+            }
+            //增加事件
+            g._addTabItemEvent(tabitem);
+            if (p.dragToMove && $.fn.ligerDrag)
+            {
+                g.drags = g.drags || [];
+                tabitem.each(function ()
+                {
+                    g.drags.push(g._applyDrag(this));
+                });
+            }
+            g.trigger('afterAddTabItem', [tabid]);
+        },
+        _addTabItemEvent: function (tabitem)
+        {
+            var g = this, p = this.options;
+            tabitem.click(function ()
+            {
+                var tabid = $(this).attr("tabid");
+                g.selectTabItem(tabid);
+            });
+            //右键事件支持
+            g.tab.menu && g._addTabItemContextMenuEven(tabitem);
+            $(".l-tab-links-item-close", tabitem).hover(function ()
+            {
+                $(this).addClass("l-tab-links-item-close-over");
+            }, function ()
+            {
+                $(this).removeClass("l-tab-links-item-close-over");
+            }).click(function ()
+            {
+                var tabid = $(this).parent().attr("tabid");
+                g.removeTabItem(tabid);
+            });
+
+        },
+        //移除tab项
+        removeTabItem: function (tabid)
+        {
+            var g = this, p = this.options;
+            if (g.trigger('beforeRemoveTabItem', [tabid]) == false)
+                return false;
+            var currentIsSelected = $("li[tabid=" + tabid + "]", g.tab.links.ul).hasClass("l-selected");
+            if (currentIsSelected)
+            {
+                $(".l-tab-content-item[tabid=" + tabid + "]", g.tab.content).prev().show();
+                $("li[tabid=" + tabid + "]", g.tab.links.ul).prev().addClass("l-selected").siblings().removeClass("l-selected");
+            }
+            $(".l-tab-content-item[tabid=" + tabid + "]", g.tab.content).remove();
+            $("li[tabid=" + tabid + "]", g.tab.links.ul).remove();
+            g.setTabButton();
+            g.trigger('afterRemoveTabItem', [tabid]);
+            
+            var tabArr = g.getTabidList(tabid,true);
+            var last = tabArr.slice(tabArr.length-1);
+            g.selectTabItem(last);
+        },
+        addHeight: function (heightDiff)
+        {
+            var g = this, p = this.options;
+            var newHeight = g.tab.height() + heightDiff;
+            g.setHeight(newHeight);
+        },
+        setHeight: function (height)
+        {
+            var g = this, p = this.options;
+            g.tab.height(height);
+            g.setContentHeight();
+        },
+        setContentHeight: function ()
+        {
+            var g = this, p = this.options;
+            var newheight = g.tab.height() - g.tab.links.height();
+            g.tab.content.height(newheight);
+            $("> .l-tab-content-item", g.tab.content).height(newheight);
+        },
+        getNewTabid: function ()
+        {
+            var g = this, p = this.options;
+            g.getnewidcount = g.getnewidcount || 0;
+            return 'tabitem' + (++g.getnewidcount);
+        },
+        //notabid 过滤掉tabid的
+        //noclose 过滤掉没有关闭按钮的
+        getTabidList: function (notabid, noclose)
+        {
+            var g = this, p = this.options;
+            var tabidlist = [];
+            $("> li", g.tab.links.ul).each(function ()
+            {
+                if ($(this).attr("tabid")
+                        && $(this).attr("tabid") != notabid
+                        && (!noclose || $(".l-tab-links-item-close", this).length > 0))
+                {
+                    tabidlist.push($(this).attr("tabid"));
+                }
+            });
+            return tabidlist;
+        },
+        removeOther: function (tabid, compel)
+        {
+            var g = this, p = this.options;
+            var tabidlist = g.getTabidList(tabid, true);
+            $(tabidlist).each(function ()
+            {
+                g.removeTabItem(this);
+            });
+        },
+        reload: function (tabid)
+        {
+            var g = this, p = this.options;
+            var contentitem = $(".l-tab-content-item[tabid=" + tabid + "]");
+            var iframeloading = $(".l-tab-loading:first", contentitem);
+            var iframe = $("iframe:first", contentitem);
+            var url = $(iframe).attr("src");
+            iframeloading.show();
+            iframe.attr("src", url).unbind('load.tab').bind('load.tab', function ()
+            {
+                iframeloading.hide();
+            });
+        },
+        removeAll: function (compel)
+        {
+            var g = this, p = this.options;
+            var tabidlist = g.getTabidList(null, true);
+            $(tabidlist).each(function ()
+            {
+                g.removeTabItem(this);
+            });
+        },
+        onResize: function ()
+        {
+            var g = this, p = this.options;
+            if (!p.height || typeof (p.height) != 'string' || p.height.indexOf('%') == -1) return false;
+            //set tab height
+            if (g.tab.parent()[0].tagName.toLowerCase() == "body")
+            {
+                var windowHeight = $(window).height();
+                windowHeight -= parseInt(g.tab.parent().css('paddingTop'));
+                windowHeight -= parseInt(g.tab.parent().css('paddingBottom'));
+                g.height = p.heightDiff + windowHeight * parseFloat(g.height) * 0.01;
+            }
+            else
+            {
+                g.height = p.heightDiff + (g.tab.parent().height() * parseFloat(p.height) * 0.01);
+            }
+            g.tab.height(g.height);
+            g.setContentHeight();
+        },
+        _menuItemClick: function (item)
+        {
+            var g = this, p = this.options;
+            if (!item.id || !g.actionTabid) return;
+            switch (item.id)
+            {
+                case "close":
+                    g.removeTabItem(g.actionTabid);
+                    g.actionTabid = null;
+                    break;
+                case "closeother":
+                    g.removeOther(g.actionTabid);
+                    break;
+                case "closeall":
+                    g.removeAll();
+                    g.actionTabid = null;
+                    break;
+                case "reload":
+                    g.selectTabItem(g.actionTabid);
+                    g.reload(g.actionTabid);
+                    break;
+            }
+        },
+        _addTabItemContextMenuEven: function (tabitem)
+        {
+            var g = this, p = this.options;
+            tabitem.bind("contextmenu", function (e)
+            {
+                if (!g.tab.menu) return;
+                g.actionTabid = tabitem.attr("tabid");
+                
+                var w=$(window).width() ;
+                var menuWidth=120;
+    			if(e.pageX+menuWidth>w){
+    				e.pageX=e.pageX-menuWidth;
+    			}
+                g.tab.menu.show({ top: e.pageY, left: e.pageX });
+                if ($(".l-tab-links-item-close", this).length == 0)
+                {
+                    g.tab.menu.setDisabled('close');
+                }
+                else
+                {
+                    g.tab.menu.setEnabled('close');
+                }
+                return false;
+            });
+        }
+    });
+
+
+
+})(jQuery);

+ 233 - 0
web/js/lg/plugins/ligerTextBox.js

@@ -0,0 +1,233 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+    $.fn.ligerTextBox = function ()
+    {
+        return $.ligerui.run.call(this, "ligerTextBox", arguments);
+    };
+
+    $.fn.ligerGetTextBoxManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetTextBoxManager", arguments);
+    };
+
+    $.ligerDefaults.TextBox = {
+        onChangeValue: null,
+        width: null,
+        disabled: false,
+        value: null,     //初始化值 
+        nullText: null,   //不能为空时的提示
+        digits: false,     //是否限定为数字输入框
+        number: false    //是否限定为浮点数格式输入框
+    };
+
+
+    $.ligerui.controls.TextBox = function (element, options)
+    {
+        $.ligerui.controls.TextBox.base.constructor.call(this, element, options);
+    };
+
+    $.ligerui.controls.TextBox.ligerExtend($.ligerui.controls.Input, {
+        __getType: function ()
+        {
+            return 'TextBox'
+        },
+        __idPrev: function ()
+        {
+            return 'TextBox';
+        },
+        _init: function ()
+        {
+            $.ligerui.controls.TextBox.base._init.call(this);
+            var g = this, p = this.options;
+            if (!p.width)
+            {
+                p.width = $(g.element).width();
+            }
+            if ($(this.element).attr("readonly"))
+            {
+                p.disabled = true;
+            }
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.inputText = $(this.element);
+            //外层
+            g.wrapper = g.inputText.wrap('<div class="l-text"></div>').parent();
+            g.wrapper.append('<div class="l-text-l"></div><div class="l-text-r"></div>');
+            if (!g.inputText.hasClass("l-text-field"))
+                g.inputText.addClass("l-text-field");
+            this._setEvent();
+            g.set(p);
+            g.checkValue();
+        },
+        _getValue: function ()
+        {
+            return this.inputText.val();
+        },
+        _setNullText: function ()
+        {
+            this.checkNotNull();
+        },
+        checkValue: function ()
+        {
+            var g = this, p = this.options;
+            var v = g.inputText.val();
+            if (p.number && !/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(v) || p.digits && !/^\d+$/.test(v))
+            {
+                g.inputText.val(g.value || 0);
+                return;
+            } 
+            g.value = v;
+        },
+        checkNotNull: function ()
+        {
+            var g = this, p = this.options;
+            if (p.nullText && !p.disabled)
+            {
+                if (!g.inputText.val())
+                {
+                    g.inputText.addClass("l-text-field-null").val(p.nullText);
+                }
+            }
+        },
+        _setEvent: function ()
+        {
+            var g = this, p = this.options;
+            g.inputText.bind('blur.textBox', function ()
+            {
+                g.trigger('blur');
+                g.checkNotNull();
+                g.checkValue();
+                g.wrapper.removeClass("l-text-focus");
+            }).bind('focus.textBox', function ()
+            {
+                g.trigger('focus');
+                if (p.nullText)
+                {
+                    if ($(this).hasClass("l-text-field-null"))
+                    {
+                        $(this).removeClass("l-text-field-null").val("");
+                    }
+                }
+                g.wrapper.addClass("l-text-focus");
+            })
+            .change(function ()
+            { 
+                g.trigger('changeValue', [this.value]);
+            });
+            g.wrapper.hover(function ()
+            {
+                g.trigger('mouseOver');
+                g.wrapper.addClass("l-text-over");
+            }, function ()
+            {
+                g.trigger('mouseOut');
+                g.wrapper.removeClass("l-text-over");
+            });
+        },
+        _setDisabled: function (value)
+        {
+            if (value)
+            {
+                this.inputText.attr("readonly", "readonly");
+                this.wrapper.addClass("l-text-disabled");
+            }
+            else
+            {
+                this.inputText.removeAttr("readonly");
+                this.wrapper.removeClass('l-text-disabled');
+            }
+        },
+        _setWidth: function (value)
+        {
+            if (value > 20)
+            {
+                this.wrapper.css({ width: value });
+                this.inputText.css({ width: value - 4 });
+            }
+        },
+        _setHeight: function (value)
+        {
+            if (value > 10)
+            {
+                this.wrapper.height(value);
+                this.inputText.height(value - 2);
+            }
+        },
+        _setValue: function (value)
+        {
+            if (value != null)
+                this.inputText.val(value);
+        },
+        _setLabel: function (value)
+        {
+            var g = this, p = this.options;
+            if (!g.labelwrapper)
+            {
+                g.labelwrapper = g.wrapper.wrap('<div class="l-labeltext"></div>').parent();
+                var lable = $('<div class="l-text-label" style="float:left;">' + value + ':&nbsp</div>');
+                g.labelwrapper.prepend(lable);
+                g.wrapper.css('float', 'left');
+                if (!p.labelWidth)
+                {
+                    p.labelWidth = lable.width();
+                }
+                else
+                {
+                    g._setLabelWidth(p.labelWidth);
+                }
+                lable.height(g.wrapper.height());
+                if (p.labelAlign)
+                {
+                    g._setLabelAlign(p.labelAlign);
+                }
+                g.labelwrapper.append('<br style="clear:both;" />');
+                g.labelwrapper.width(p.labelWidth + p.width + 2);
+            }
+            else
+            {
+                g.labelwrapper.find(".l-text-label").html(value + ':&nbsp');
+            }
+        },
+        _setLabelWidth: function (value)
+        {
+            var g = this, p = this.options;
+            if (!g.labelwrapper) return;
+            g.labelwrapper.find(".l-text-label").width(value);
+        },
+        _setLabelAlign: function (value)
+        {
+            var g = this, p = this.options;
+            if (!g.labelwrapper) return;
+            g.labelwrapper.find(".l-text-label").css('text-align', value);
+        },
+        updateStyle: function ()
+        {
+            var g = this, p = this.options;
+            if (g.inputText.attr('disabled') || g.inputText.attr('readonly'))
+            {
+                g.wrapper.addClass("l-text-disabled");
+                g.options.disabled = true;
+            }
+            else
+            {
+                g.wrapper.removeClass("l-text-disabled");
+                g.options.disabled = false;
+            }
+            if (g.inputText.hasClass("l-text-field-null") && g.inputText.val() != p.nullText)
+            {
+                g.inputText.removeClass("l-text-field-null");
+            }
+            g.checkValue();
+        }
+    });
+})(jQuery);

+ 192 - 0
web/js/lg/plugins/ligerTip.js

@@ -0,0 +1,192 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+
+(function ($)
+{
+    //气泡,可以在制定位置显示
+    $.ligerTip = function (p)
+    {
+        return $.ligerui.run.call(null, "ligerTip", arguments);
+    };
+
+    //在指定Dom Element右侧显示气泡
+    //target:将ligerui对象ID附加上
+    $.fn.ligerTip = function (options)
+    {
+        this.each(function ()
+        {
+            var p = $.extend({}, $.ligerDefaults.ElementTip, options || {});
+            p.target = p.target || this;
+            //如果是自动模式:鼠标经过时显示,移开时关闭
+            if (p.auto || options == undefined)
+            {
+                if (!p.content)
+                {
+                    p.content = this.title;
+                    if (p.removeTitle)
+                        $(this).removeAttr("title");
+                }
+                p.content = p.content || this.title;
+                $(this).bind('mouseover.tip', function ()
+                {
+                    p.x = $(this).offset().left + $(this).width() + (p.distanceX || 0);
+                    p.y = $(this).offset().top + (p.distanceY || 0);
+                    $.ligerTip(p);
+                }).bind('mouseout.tip', function ()
+                {
+
+                    var tipmanager = $.ligerui.managers[this.ligeruitipid];
+                    if (tipmanager)
+                    {
+                        tipmanager.remove();
+                    }
+                });
+            }
+            else
+            {
+                if (p.target.ligeruitipid) return;
+                p.x = $(this).offset().left + $(this).width() + (p.distanceX || 0);
+                p.y = $(this).offset().top + (p.distanceY || 0);
+                p.x = p.x || 0;
+                p.y = p.y || 0;
+                $.ligerTip(p);
+            }
+        });
+        return $.ligerui.get(this, 'ligeruitipid');
+    };
+    //关闭指定在Dom Element(附加了ligerui对象ID,属性名"ligeruitipid")显示的气泡
+    $.fn.ligerHideTip = function (options)
+    {
+        return this.each(function ()
+        {
+            var p = options || {};
+            if (p.isLabel == undefined)
+            {
+                //如果是lable,将查找指定的input,并找到ligerui对象ID
+                p.isLabel = this.tagName.toLowerCase() == "label" && $(this).attr("for") != null;
+            }
+            var target = this;
+            if (p.isLabel)
+            {
+                var forele = $("#" + $(this).attr("for"));
+                if (forele.length == 0) return;
+                target = forele[0];
+            }
+            var tipmanager = $.ligerui.managers[target.ligeruitipid];
+            if (tipmanager)
+            {
+                tipmanager.remove();
+            }
+        }).unbind('mouseover.tip').unbind('mouseout.tip');
+    };
+
+
+    $.fn.ligerGetTipManager = function ()
+    {
+        return $.ligerui.get(this);
+    };
+
+
+    $.ligerDefaults = $.ligerDefaults || {};
+
+
+    //隐藏气泡
+    $.ligerDefaults.HideTip = {};
+
+    //气泡
+    $.ligerDefaults.Tip = {
+        content: null,
+        callback: null,
+        width: 150,
+        height: null,
+        x: 0,
+        y: 0,
+        appendIdTo: null,       //保存ID到那一个对象(jQuery)(待移除)
+        target: null,
+        auto: null,             //是否自动模式,如果是,那么:鼠标经过时显示,移开时关闭,并且当content为空时自动读取attr[title]
+        removeTitle: true        //自动模式时,默认是否移除掉title
+    };
+
+    //在指定Dom Element右侧显示气泡,通过$.fn.ligerTip调用
+    $.ligerDefaults.ElementTip = {
+        distanceX: 1,
+        distanceY: -3,
+        auto: null,
+        removeTitle: true
+    };
+
+    $.ligerMethos.Tip = {};
+
+    $.ligerui.controls.Tip = function (options)
+    {
+        $.ligerui.controls.Tip.base.constructor.call(this, null, options);
+    };
+    $.ligerui.controls.Tip.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'Tip';
+        },
+        __idPrev: function ()
+        {
+            return 'Tip';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Tip;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            var tip = $('<div class="l-verify-tip"><div class="l-verify-tip-corner"></div><div class="l-verify-tip-content"></div></div>');
+            g.tip = tip;
+            g.tip.attr("id", g.id);
+            if (p.content)
+            {
+                $("> .l-verify-tip-content:first", tip).html(p.content);
+                tip.appendTo('body');
+            }
+            else
+            {
+                return;
+            }
+            tip.css({ left: p.x, top: p.y }).show();
+            p.width && $("> .l-verify-tip-content:first", tip).width(p.width - 8);
+            p.height && $("> .l-verify-tip-content:first", tip).width(p.height);
+            eee = p.appendIdTo;
+            if (p.appendIdTo)
+            {
+                p.appendIdTo.attr("ligerTipId", g.id);
+            }
+            if (p.target)
+            {
+                $(p.target).attr("ligerTipId", g.id);
+                p.target.ligeruitipid = g.id;
+            }
+            p.callback && p.callback(tip);
+            g.set(p);
+        },
+        _setContent: function (content)
+        {
+            $("> .l-verify-tip-content:first", this.tip).html(content);
+        },
+        remove: function ()
+        {
+            if (this.options.appendIdTo)
+            {
+                this.options.appendIdTo.removeAttr("ligerTipId");
+            }
+            if (this.options.target)
+            {
+                $(this.options.target).removeAttr("ligerTipId");
+                this.options.target.ligeruitipid = null;
+            }
+            this.tip.remove();
+        }
+    });
+})(jQuery);

+ 91 - 0
web/js/lg/plugins/ligerToolBar.js

@@ -0,0 +1,91 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+
+    $.fn.ligerToolBar = function (options)
+    {
+        return $.ligerui.run.call(this, "ligerToolBar", arguments);
+    };
+
+    $.fn.ligerGetToolBarManager = function ()
+    {
+        return $.ligerui.run.call(this, "ligerGetToolBarManager", arguments);
+    };
+
+    $.ligerDefaults.ToolBar = {};
+
+    $.ligerMethos.ToolBar = {};
+
+    $.ligerui.controls.ToolBar = function (element, options)
+    {
+        $.ligerui.controls.ToolBar.base.constructor.call(this, element, options);
+    };
+    $.ligerui.controls.ToolBar.ligerExtend($.ligerui.core.UIComponent, {
+        __getType: function ()
+        {
+            return 'ToolBar';
+        },
+        __idPrev: function ()
+        {
+            return 'ToolBar';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.ToolBar;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.toolBar = $(this.element);
+            g.toolBar.addClass("l-toolbar");
+            g.set(p);
+        },
+        _setItems: function (items)
+        {
+            var g = this;
+            $(items).each(function (i, item)
+            {
+                g.addItem(item);
+            });
+        },
+        addItem: function (item)
+        {
+            var g = this, p = this.options;
+            if (item.line)
+            {
+                g.toolBar.append('<div class="l-bar-separator"></div>');
+                return;
+            }
+            var ditem = $('<div class="l-toolbar-item l-panel-btn"><span></span><div class="l-panel-btn-l"></div><div class="l-panel-btn-r"></div></div>');
+            g.toolBar.append(ditem);
+            item.id && ditem.attr("toolbarid", item.id);
+            if (item.img)
+            {
+                ditem.append("<img src='" + item.img + "' />");
+                ditem.addClass("l-toolbar-item-hasicon");
+            }
+            else if (item.icon)
+            {
+                ditem.append("<div class='l-icon l-icon-" + item.icon + "'></div>");
+                ditem.addClass("l-toolbar-item-hasicon");
+            }
+            item.text && $("span:first", ditem).html(item.text);
+            item.disable && ditem.addClass("l-toolbar-item-disable");
+            item.click && ditem.click(function () { item.click(item); });
+            ditem.hover(function ()
+            {
+                $(this).addClass("l-panel-btn-over");
+            }, function ()
+            {
+                $(this).removeClass("l-panel-btn-over");
+            });
+        }
+    });
+})(jQuery);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1222 - 0
web/js/lg/plugins/ligerTree.js


+ 354 - 0
web/js/lg/plugins/ligerWindow.js

@@ -0,0 +1,354 @@
+/**
+* jQuery ligerUI 1.1.9
+* 
+* http://ligerui.com
+*  
+* Author daomi 2012 [ gd_star@163.com ] 
+* 
+*/
+(function ($)
+{
+
+    var l = $.ligerui;
+
+    l.windowCount = 0;
+
+    $.ligerWindow = function (options)
+    {
+        return l.run.call(null, "ligerWindow", arguments, { isStatic: true });
+    };
+
+    $.ligerWindow.show = function (p)
+    {
+        return $.ligerWindow(p);
+    };
+
+    $.ligerDefaults.Window = {
+        showClose: true,
+        showMax: true,
+        showToggle: true,
+        showMin: true,
+        title: 'window',
+        load: false,
+        onLoaded: null,
+        modal: false     //是否模态窗口
+    };
+
+    $.ligerMethos.Window = {};
+
+    l.controls.Window = function (options)
+    {
+        l.controls.Window.base.constructor.call(this, null, options);
+    };
+    l.controls.Window.ligerExtend(l.core.Win, {
+        __getType: function ()
+        {
+            return 'Window';
+        },
+        __idPrev: function ()
+        {
+            return 'Window';
+        },
+        _extendMethods: function ()
+        {
+            return $.ligerMethos.Window;
+        },
+        _render: function ()
+        {
+            var g = this, p = this.options;
+            g.window = $('<div class="l-window"><div class="l-window-header"><div class="l-window-header-buttons"><div class="l-window-toggle"></div><div class="l-window-max"></div><div class="l-window-close"></div><div class="l-clear"></div></div><div class="l-window-header-inner"></div></div><div class="l-window-content"></div></div>');
+            g.element = g.window[0];
+            g.window.content = $(".l-window-content", g.window);
+            g.window.header = $(".l-window-header", g.window);
+            g.window.buttons = $(".l-window-header-buttons:first", g.window);
+            if (p.url)
+            {
+                if (p.load)
+                {
+                    g.window.content.load(p.url, function ()
+                    {
+                        g.trigger('loaded');
+                    });
+                    g.window.content.addClass("l-window-content-scroll");
+                }
+                else
+                {
+                    var iframe = $("<iframe frameborder='0' src='" + p.url + "'></iframe>");
+                    var framename = "ligeruiwindow" + l.windowCount++;
+                    if (p.name) framename = p.name;
+                    iframe.attr("name", framename).attr("id", framename);
+                    p.framename = framename;
+                    iframe.appendTo(g.window.content);
+                    g.iframe = iframe;
+                }
+            }
+            else if (p.content)
+            {
+                var content = $("<div>" + p.content + "</div>");
+                content.appendTo(g.window.content);
+            }
+            else if (p.target)
+            {
+                g.window.content.append(p.target);
+                p.target.show();
+            }
+
+
+
+            this.mask();
+
+            g.active();
+
+            $('body').append(g.window);
+
+            g.set({ width: p.width, height: p.height });
+            //位置初始化
+            var left = 0;
+            var top = 0;
+            if (p.left != null) left = p.left;
+            else p.left = left = 0.5 * ($(window).width() - g.window.width());
+            if (p.top != null) top = p.top;
+            else p.top = top = 0.5 * ($(window).height() - g.window.height()) + $(window).scrollTop() - 10;
+            if (left < 0) p.left = left = 0;
+            if (top < 0) p.top = top = 0;
+
+
+            g.set(p);
+
+            p.framename && $(">iframe", g.window.content).attr('name', p.framename);
+            if (!p.showToggle) $(".l-window-toggle", g.window).remove();
+            if (!p.showMax) $(".l-window-max", g.window).remove();
+            if (!p.showClose) $(".l-window-close", g.window).remove();
+
+            g._saveStatus();
+
+            //拖动支持
+            if ($.fn.ligerDrag)
+            {
+                g.draggable = g.window.drag = g.window.ligerDrag({ handler: '.l-window-header-inner', onStartDrag: function ()
+                {
+                    g.active();
+                }, onStopDrag: function ()
+                {
+                    g._saveStatus();
+                }, animate: false
+                });
+            }
+            //改变大小支持
+            if ($.fn.ligerResizable)
+            {
+                g.resizeable = g.window.resizable = g.window.ligerResizable({
+                    onStartResize: function ()
+                    {
+                        g.active();
+                        $(".l-window-max", g.window).removeClass("l-window-regain");
+                    },
+                    onStopResize: function (current, e)
+                    {
+                        var top = 0;
+                        var left = 0;
+                        if (!isNaN(parseInt(g.window.css('top'))))
+                            top = parseInt(g.window.css('top'));
+                        if (!isNaN(parseInt(g.window.css('left'))))
+                            left = parseInt(g.window.css('left'));
+                        if (current.diffTop)
+                            g.window.css({ top: top + current.diffTop });
+                        if (current.diffLeft)
+                            g.window.css({ left: left + current.diffLeft });
+                        if (current.newWidth)
+                            g.window.width(current.newWidth);
+                        if (current.newHeight)
+                            g.window.content.height(current.newHeight - 28);
+
+                        g._saveStatus();
+                        return false;
+                    }
+                });
+                g.window.append("<div class='l-btn-nw-drop'></div>");
+            }
+            //设置事件 
+            $(".l-window-toggle", g.window).click(function ()
+            {
+                if ($(this).hasClass("l-window-toggle-close"))
+                {
+                    g.collapsed = false;
+                    $(this).removeClass("l-window-toggle-close");
+                } else
+                {
+                    g.collapsed = true;
+                    $(this).addClass("l-window-toggle-close");
+                }
+                g.window.content.slideToggle();
+            }).hover(function ()
+            {
+                if (g.window.drag)
+                    g.window.drag.set('disabled', true);
+            }, function ()
+            {
+                if (g.window.drag)
+                    g.window.drag.set('disabled', false);
+            });
+            $(".l-window-close", g.window).click(function ()
+            {
+                if (g.trigger('close') == false) return false;
+                g.window.hide();
+                l.win.removeTask(g);
+            }).hover(function ()
+            {
+                if (g.window.drag)
+                    g.window.drag.set('disabled', true);
+            }, function ()
+            {
+                if (g.window.drag)
+                    g.window.drag.set('disabled', false);
+            });
+            $(".l-window-max", g.window).click(function ()
+            {
+                if ($(this).hasClass("l-window-regain"))
+                {
+                    if (g.trigger('regain') == false) return false;
+                    g.window.width(g._width).css({ left: g._left, top: g._top });
+                    g.window.content.height(g._height - 28);
+                    $(this).removeClass("l-window-regain");
+                }
+                else
+                {
+                    if (g.trigger('max') == false) return false;
+                    g.window.width($(window).width() - 2).css({ left: 0, top: 0 });
+                    g.window.content.height($(window).height() - 28).show();
+                    $(this).addClass("l-window-regain");
+                }
+            });
+        },
+        _saveStatus: function ()
+        {
+            var g = this;
+            g._width = g.window.width();
+            g._height = g.window.height();
+            var top = 0;
+            var left = 0;
+            if (!isNaN(parseInt(g.window.css('top'))))
+                top = parseInt(g.window.css('top'));
+            if (!isNaN(parseInt(g.window.css('left'))))
+                left = parseInt(g.window.css('left'));
+            g._top = top;
+            g._left = left;
+        },
+        min: function ()
+        {
+            this.window.hide();
+            this.minimize = true;
+            this.actived = false;
+        },
+        _setShowMin: function (value)
+        {
+            var g = this, p = this.options;
+            if (value)
+            {
+                if (!g.winmin)
+                {
+                    g.winmin = $('<div class="l-window-min"></div>').prependTo(g.window.buttons)
+                    .click(function ()
+                    {
+                        g.min();
+                    });
+                    l.win.addTask(g);
+                }
+            }
+            else if (g.winmin)
+            {
+                g.winmin.remove();
+                g.winmin = null;
+            }
+        },
+        _setLeft: function (value)
+        {
+            if (value != null)
+                this.window.css({ left: value });
+        },
+        _setTop: function (value)
+        {
+            if (value != null)
+                this.window.css({ top: value });
+        },
+        _setWidth: function (value)
+        {
+            if (value > 0)
+                this.window.width(value);
+        },
+        _setHeight: function (value)
+        {
+            if (value > 28)
+                this.window.content.height(value - 28);
+        },
+        _setTitle: function (value)
+        {
+            if (value)
+                $(".l-window-header-inner", this.window.header).html(value);
+        },
+        _setUrl: function (url)
+        {
+            var g = this, p = this.options;
+            p.url = url;
+            if (p.load)
+            {
+                g.window.content.html("").load(p.url, function ()
+                {
+                    if (g.trigger('loaded') == false) return false;
+                });
+            }
+            else if (g.jiframe)
+            {
+                g.jiframe.attr("src", p.url);
+            }
+        },
+        hide: function ()
+        {
+            var g = this, p = this.options;
+            this.unmask();
+            this.window.hide();
+        },
+        show: function ()
+        {
+            var g = this, p = this.options;
+            this.mask();
+            this.window.show();
+        },
+        remove: function ()
+        {
+            var g = this, p = this.options;
+            this.unmask();
+            this.window.remove();
+        },
+        active: function ()
+        {
+            var g = this, p = this.options;
+            if (g.minimize)
+            {
+                var width = g._width, height = g._height, left = g._left, top = g._top;
+                if (g.maximum)
+                {
+                    width = $(window).width();
+                    height = $(window).height();
+                    left = top = 0;
+                    if (l.win.taskbar)
+                    {
+                        height -= l.win.taskbar.outerHeight();
+                        if (l.win.top) top += l.win.taskbar.outerHeight();
+                    }
+                }
+                g.set({ width: width, height: height, left: left, top: top });
+            }
+            g.actived = true;
+            g.minimize = false;
+            l.win.setFront(g);
+            g.show();
+            l.win.setFront(this);
+        },
+        setUrl: function (url)
+        {
+            return _setUrl(url);
+        }
+    });
+
+})(jQuery);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 109 - 0
web/js/lg/skins/Aqua/css/ligerui-common.css


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 321 - 0
web/js/lg/skins/Aqua/css/ligerui-form.css


+ 535 - 0
web/js/lg/skins/Aqua/css/ligerui-grid.css

@@ -0,0 +1,535 @@
+
+/* -----------------------
+   * 表格 *
+* ----------------------- */
+.l-grid-mask{
+	position:absolute;left:0;top:0;width:100%;height:100%; 
+	display1:none;font-size:1px; *zoom:1;overflow:hidden; display:none;z-index: 9000;
+}
+.l-panel
+{
+    border:1px solid #84A0C4;
+    position:relative;
+    text-align:left;
+}
+.l-panel table{ width:auto;}
+.l-panel table,.l-panel td{ margin:0; padding:0;}
+.l-panel-btn
+{
+    display:block; 
+     height:22px; overflow:hidden; line-height:22px; position:relative; 
+     padding-left:15px; padding-right:15px; cursor:pointer;
+   
+     text-align:center;color: #2C4D79;  text-decoration:none; cursor:pointer;
+}
+.l-panel-btn .l-panel-btn-l,.l-panel-btn .l-panel-btn-r{ display:none;}
+.l-panel-btn-over,.l-panel-btn-selected{background: #E0EDFF url(../images/panel/panel-btn.gif) repeat-x;}
+.l-panel-btn-over .l-panel-btn-l,.l-panel-btn-over .l-panel-btn-r,.l-panel-btn-selected .l-panel-btn-l,.l-panel-btn-selected .l-panel-btn-r{ display:block; }
+.l-panel-btn-l
+{
+    position:absolute; width:3px; left:0px; top:0px;height:22px;
+    background: #E0EDFF url(../images/panel/panel-btn-l.gif) no-repeat;
+}
+.l-panel-btn-r
+{position:absolute; width:3px; right:0px; top:0px;height:22px;
+    background: #E0EDFF url(../images/panel/panel-btn-r.gif) no-repeat;
+}
+.l-panel-header{
+color: #15428B;
+font-weight: bold;
+font-size: 11px;
+ height:24px; 
+border-bottom:1px solid #99BBE8;
+background: url('../images/panel/header-bg.gif') repeat-x left -1px; position:relative;
+}
+.l-panel-header-hasicon{ padding-left:13px;}
+.l-panel-header img{ position:absolute; left:6px; top:5px; width:16px; height:16px; border:0px;}
+.l-panel-header-text{ line-height:22px;padding-left:10px;}
+.l-panel-body
+{
+  position:relative; overflow:hidden; width:100%;
+}
+.l-panel-body .l-grid
+{
+     
+}
+.l-grid
+{
+    position:relative;text-align:left;
+}
+.l-grid td div
+{
+    font-size:12px;
+}
+ .l-grid table{border-spacing:0 0;} 
+.l-grid-header
+{
+    border-bottom:1px solid #A3C0E8;
+   height:22px; line-height:22px;background:#E2F0FF url('../images/grid/header-bg.gif') repeat-x left bottom; overflow:hidden; width:100%;
+}
+.l-grid-scroller {
+position: relative;
+    top: 0px;
+    left: 0px; height:220px;overflow: auto;
+}
+.l-grid-scroller-noscroll
+{
+    height:auto;overflow:hidden;
+}
+.l-grid-body 
+{
+position: relative; width:100%;
+    top: 0px;
+    left: 0px; overflow: auto;
+}  
+.l-grid-body-table
+{
+      
+}
+.l-grid-body-table tr.l-checked td
+{
+    background:#DCF8A8
+}
+.l-grid-popup
+{
+    background: #eee url(../images/grid/popup-line.gif) repeat-y -1px top;
+	border: 1px solid #ccc;
+	border-top: 0px;
+	overflow: auto;
+	left: 0px;
+	position: absolute;
+	z-index: 999; display:none;
+}
+.l-grid-loading
+{
+    position: absolute;z-index: 91000; border:1px solid #9BBBE6; top:40%; left:50%;
+    background:white url('../images/common/loading.gif') no-repeat 8px 6px; padding-left:38px;
+    padding-top:10px; padding-bottom:10px; padding-right:10px; margin-left:-60px; display:none;
+}
+.l-grid-editor
+{
+    position: absolute;z-index: 999;display:none; text-align:center;
+}
+.l-grid-editor .l-checkbox-wrapper{ margin-top:2px;}
+.l-grid-popup table
+{
+    display: table;
+    border-collapse: separate;
+    border-color: gray; margin:2px;
+}
+.l-grid-popup table tbody
+{display: table-row-group;
+vertical-align: middle;
+border-color: inherit;
+}
+.l-grid-popup table td
+{
+    padding: 2px 3px;
+    cursor: default;
+}
+.l-grid-popup td.l-column-left
+{
+border-right: 1px solid #ccc;
+}
+		
+.l-grid-popup td.l-column-right
+{
+border-left: 1px solid #fff;
+padding-right: 10px;
+}
+
+.l-grid-popup tr:hover .l-column-right,.l-grid-popup tr.l-popup-row-over .l-column-right
+{
+     border-right: 1px solid #d2e3ec;border-top: 1px solid #d2e3ec;border-bottom: 1px solid #d2e3ec;
+}
+		
+.l-grid-popup tr:hover .l-column-left,.l-grid-popup tr.l-popup-row-over .l-column-left
+{
+    border-left: 1px solid #d2e3ec;border-top: 1px solid #d2e3ec;border-bottom: 1px solid #d2e3ec;
+}
+.l-grid-popup table tr:hover,.l-grid-popup table tr.l-popup-row-over
+{
+    background: #d5effc url(../images/grid/popup-row-over.gif) repeat-x top;
+	border: 1px solid #a8d8eb;
+}
+.l-grid-hd-cell-mul
+{
+    border-bottom: 1px solid #A3C0E8;
+}
+.l-grid-hd-cell-detail
+{
+   padding:0; margin:0;
+} 
+.l-grid-hd-cell-inner
+{ 
+      text-align:center;
+} 
+
+.l-grid-dragging-line
+{
+    background:#EC4262;width:1px;position:absolute; display:none; z-index:9999; padding:0; margin:0;
+}
+.l-grid-hd-cell-dropleft
+{
+    position:absolute;left:0px;top:0px;			
+    display: block;background: url(../images/icon/icon-prev.gif) no-repeat -2px center;width: 16px;height: 24px;
+	z-index: 3;  display:none;
+}
+.l-grid-hd-cell-dropright
+{
+    position:absolute;right:0px;top:0px;			
+    display: block;background: url(../images/icon/icon-next.gif) no-repeat 0px center;width: 16px;height: 24px;
+	z-index: 3;  display:none;
+}
+.l-grid-hd-cell-drop
+{ 
+    position:absolute;right:-1px;top:0px;display: block; width:2px; height:24px; z-index:3; cursor:e-resize;
+}
+.l-grid-hd-cell-sort
+{
+       overflow:hidden; 
+}
+.l-grid-hd-cell-sort-asc
+{
+    background:url('../images/icon/icon-sort-asc.gif') no-repeat center;
+}
+.l-grid-hd-cell-sort-desc
+{
+    background:url('../images/icon/icon-sort-desc.gif') no-repeat center;
+}
+.l-grid-hd-cell-btn
+{
+    position:absolute; right:0px; top:0px;  overflow:hidden; border-left:1px solid #C1D6F0; cursor:pointer;
+}
+.l-grid-hd-cell-btn span
+{
+    border-left:1px solid #F1F5FC; width:14px; height:22px;background:url('../images/icon/icon-down.gif') no-repeat 2px 8px; display:block;
+}
+.l-grid-hd-cell-drophandle
+{
+      width:5px; height:22px; cursor:col-resize;  float:right;position:absolute; top:0px; right:-3px;
+} 
+.l-grid-hd-cell-text
+{
+    text-align:center; cursor:pointer;
+}  
+.l-grid-hd-cell
+{   
+     padding:0; margin:0;overflow:hidden; 
+    border-right:1px solid #A3C0E8;   
+    text-align:center;
+}
+.l-grid-hd-cell-last
+{
+    
+}
+.l-grid-hd-cell-over,.l-grid-hd-cell-on
+{ 
+}
+.l-grid-row
+{   
+}
+.l-grid-row-last
+{
+}
+.l-grid-totalsummary
+{
+    border-bottom:1px solid #A3C0E8; background:#EEF3FF; padding-top:5px; padding-bottom:5px;
+}
+.l-grid-totalsummary-nobottom
+{
+    border-bottom:none;
+}
+.l-grid-totalsummary td
+{
+    border-right:1px solid #EEF3FF; text-align:center;line-height: 23px;
+}
+.l-grid-totalsummary .l-grid-totalsummary-cell-last
+{ border-right:1px solid #A3C0E8;
+}
+.l-grid-totalsummary .l-grid-totalsummary-cell-inner
+{
+    margin-left:3px; margin-right:3px; min-height:23px;_height:23px;
+}
+.l-grid-totalsummary .l-grid-totalsummary-cell-inner div
+{
+    height:22px; line-height:22px;
+}
+/*
+    detail
+*/
+.l-grid-detailpanel
+{
+    border-right:1px solid #A3C0E8;border-bottom:1px solid #A3C0E8;
+}
+.l-grid-detailpanel-inner
+{
+     overflow:auto; margin-bottom:2px;
+}
+
+.l-grid-row-alt .l-grid-row-cell
+{
+    background:#F5F5F5; 
+}
+.l-grid-row-over .l-grid-row-cell,.l-grid-row-over
+{
+    background:#E0ECFF
+}
+.l-selected .l-grid-row-cell,.l-selected
+{
+    background:#DCF8A8
+}
+ 
+.l-grid-row-cell
+{
+      overflow:hidden; 
+     border-right:1px solid #A3C0E8;border-bottom:1px solid #A3C0E8;  
+      text-align:center;overflow:hidden;
+}
+.l-grid-row-last .l-grid-row-cell
+{border-bottom:none;
+}
+.l-grid-row-cell-last
+{
+      
+}
+.l-grid-row-cell-detail .l-grid-row-cell-inner{margin-left:0px; margin-right:0px; width:27px; overflow:hidden;}
+.l-grid-row-cell-detail .l-grid-row-cell-inner span
+{
+    display:block; width:21px; height:21px; background:url('../images/grid/grid-detail-close.gif') no-repeat 5px 5px;
+    cursor:pointer; overflow:hidden;
+}
+.l-grid-row-cell-detail .l-grid-row-cell-inner span.l-open
+{
+    background:url('../images/grid/grid-detail-open.gif') no-repeat 5px 5px;
+}
+
+.l-grid-row-cell-checkbox .l-grid-row-cell-inner{margin-left:0px; margin-right:0px;}
+.l-grid-row-cell-checkbox span,.l-grid-hd-cell-checkbox .l-grid-hd-cell-inner div
+{
+    display:block; width:13px; height:13px; background:url('../images/controls/checkbox.gif') no-repeat;
+    background-position:0px 0px;
+    cursor:pointer; overflow:hidden; margin-left:7px; margin-top:3px;
+}
+.l-checked .l-grid-row-cell-checkbox span,.l-checked  .l-grid-hd-cell-checkbox .l-grid-hd-cell-inner div
+{
+      background-position:0px -13px;
+}
+.l-selected .l-grid-row-cell-checkbox span,.l-selected  .l-grid-hd-cell-checkbox .l-grid-hd-cell-inner div
+{
+      background-position:0px -13px;
+}
+.l-grid-hd-cell-checkbox
+{
+   padding:0; margin:0;
+}  
+
+.l-grid-row-cell-edited .l-grid-row-cell-inner
+{
+    background-image:url('../images/icon/icon-edited.gif');
+    background-repeat:no-repeat; 
+    background-position:2px 2px; 
+}
+.l-grid-row-cell-inner
+{
+    text-align:center;line-height:22px; min-height:22px; _height:22px;
+    margin-left:3px; margin-right:3px; overflow:hidden;
+}
+.l-grid-row-cell-inner-fixedheight
+{
+     height:22px;  
+}
+.l-panel-bar
+{
+    height:32px;background:#C9DFFF url('../images/panel/bar-bg.gif') repeat-x left bottom;overflow:hidden;
+    border-top:1px solid #84A0C4;
+}
+.l-panel-bbar-inner
+{
+    margin-top: 3px;
+    padding-left: -2px;
+    width:100%;  position:relative; min-width:530px;_width:530px;
+}
+.l-bar-message
+{
+    position:absolute; right:0px;
+}
+.l-bar-group {
+float: left;
+background: none;
+height: 24px;
+margin: 0px 5px;
+}
+.l-bar-right
+{
+    float:right;
+}
+.l-bar-separator {
+float: left;
+height: 18px;
+border-left: 1px solid #9AC6FF;
+border-right: 1px solid white;
+margin: 2px;
+}
+.l-bar-button {
+float: left;
+width: 22px;
+height: 22px;
+border: 0px;
+cursor: pointer;
+overflow: hidden;
+}
+.l-bar-button-over
+{
+    background: url(../images/icon/bar-button-over.gif) no-repeat center;
+}
+.l-bar-button span {
+width: 16px;
+height: 16px;
+display: block; margin-left:2px; margin-top:2px;
+float: left; overflow:hidden;
+}
+.l-bar-btnfirst span 
+{
+background: url(../images/icon/icon-first.gif) no-repeat; background-position:0px 0px;
+}
+.l-bar-btnprev span {
+background: url(../images/icon/icon-prev.gif) no-repeat ; background-position:0px 0px;
+}
+.l-bar-btnnext span {
+background: url(../images/icon/icon-next.gif) no-repeat; background-position:0px 0px;
+}
+.l-bar-btnlast span {
+background: url(../images/icon/icon-last.gif) no-repeat; background-position:0px 0px;
+}
+.l-bar-btnload span {
+background: url(../images/icon/icon-load.gif) no-repeat; background-position:0px 0px;
+}
+.l-bar-btnloading span {
+background: url(../images/icon/icon-loading.gif) no-repeat; background-position:0px 0px;
+}
+.l-bar-button .l-disabled
+{
+     background-position:0px -16px;
+}
+.l-bar-text
+{
+    line-height:20px;
+}
+
+/*
+    grouping
+*/
+.l-grid .l-grid-grouprow{ border-right:1px solid #A3C0E8}
+.l-grid .l-grid-grouprow-cell{ padding:6px; border-bottom:1px solid #A3C0E8; background:#EAF3FF;}
+.l-grid .l-grid-group-togglebtn{background:url('../images/grid/grid-detail-open.gif') no-repeat center; cursor:pointer}
+.l-grid .l-grid-group-togglebtn-close{background:url('../images/grid/grid-detail-close.gif') no-repeat center;}
+.l-grid .l-grid-totalsummary-group td{ background-color:#F5EEFB; border-color:#F5EEFB;}
+/*
+    foot total
+*/
+ .l-panel-bar-total{ background:#F5F9FF; padding:8px; border-top:1px solid #84A0C4;}
+/*
+    tree grid 
+*/
+.l-grid-tree-space  
+{
+    width:18px; height:20px; line-height:20px; overflow:hidden; float:left;
+} 
+.l-grid-tree-link-open
+{
+    cursor:pointer;background:url('../images/grid/grid-tree-open.gif') no-repeat center;
+}
+.l-grid-tree-link-close
+{
+    cursor:pointer;background:url('../images/grid/grid-tree-close.gif') no-repeat center;
+}
+/*
+    frozen grid
+*/
+.l-grid1{  display:none;} 
+.l-grid1 .l-grid-body{overflow:hidden;}
+.l-grid1 .l-grid-detailpanel{border-right:1px solid white;}
+.l-frozen .l-grid2{position:absolute; top:0px; left:0px; width:100%; }
+.l-frozen .l-grid2 .l-grid-body{overflow-x:scroll;}
+.l-frozen .l-grid1{position:absolute; top:0px; left:0px;display:block;}
+
+
+.l-grid-gray 
+{border-top:1px solid #DDDDDD;
+}
+.l-grid-gray .l-grid-header
+ {
+     border-bottom:1px solid #DDDDDD;
+     background:#E2F0FF url('../images/grid/header2-bg.jpg') repeat-x left bottom;
+ }
+.l-grid-gray .l-grid-hd-cell
+{    
+    border-right:1px solid #DDDDDD;    
+} 
+.l-grid-gray .l-grid-row-cell {
+    border-bottom: 1px solid #DDDDDD;  
+    border-right: 1px solid #DDDDDD;   
+}
+/*
+    菜单条
+*/
+.l-menubar
+{
+    background: url('../images/panel/panel-menu.gif') repeat-x; height:24px; border:1px solid #ADBED6;border-top:1px solid #EFF7F7;
+    
+}
+.l-menubar-item
+{
+    float:left; margin-left:6px;
+}
+.l-menubar-item-down
+{
+    width:7px; height:4px; line-height:4px;  
+    background:url('../images/panel/panel-menu-item-down.gif') no-repeat center; position:absolute; right:4px;  top:9px; top:9px\9;_top:4px;
+}
+.l-menubar-item-over
+{ 
+}
+/*
+    工具条
+*/
+.l-toolbar
+{    
+    background:#CEDFEF  url('../images/panel/panel-toolbar.gif') repeat-x; height:23px; 
+    border:1px solid #9CBAE7;  border-top:1px solid #EFF7F7;
+}
+.l-toolbar-item
+{
+    float:left;margin-left:4px;
+}
+.l-toolbar-item .l-icon,.l-toolbar-item img{ position:absolute; left:2px; top:2px; display:block;}
+.l-toolbar-item img{ width:16px; height:16px; border:0px;}
+.l-toolbar-item-hasicon{ padding-left:22px;}
+/*
+    搜索栏
+*/
+.l-panel-search
+{height:28px; padding-top:3px; padding-left:3px; 
+ border-left:1px solid #99BBE8; border-right:1px solid #99BBE8;
+}
+.l-panel-search-item
+{
+    float:left; margin-left:5px;
+}
+
+/*
+    编辑
+*/
+.l-grid-row-cell-editing-topcell {border-bottom-color:#CC8F81;}
+.l-grid-row-cell-editing-leftcell {border-right-color:#CC8F81;}
+.l-grid-row-cell-editing{ border-color:#CC8F81;}
+.l-grid-row-cell .l-text,.l-grid-editor .l-text{ border:0px; border:none;} 
+.l-grid-detailpanel-edit{ padding-top:7px;padding-bottom:3px; background-color:#FAFAFF;}
+.l-grid-detailpanel .l-editbox{ float:left; margin:2px;margin-left:6px; margin-right:10px;}
+.l-grid-detailpanel .l-button{float:left;margin:2px;margin-left:4px; margin-right:6px;}
+.l-grid-detailpanel .l-clear{ clear:both;}
+
+ 
+.l-grid-row-alt .l-grid-row-cell-rownumbers,.l-selected .l-grid-row-cell-rownumbers,.l-grid-row-over .l-grid-row-cell-rownumbers,.l-grid-row-cell-rownumbers{ background:#E0ECFF;}
+

+ 67 - 0
web/js/lg/skins/Aqua/css/ligerui-layout.css

@@ -0,0 +1,67 @@
+
+/* --------------
+   *   layout  *
+* ------------ */
+.l-layout{ position:relative;}
+.l-layout-left,.l-layout-right,.l-layout-center,.l-layout-top,.l-layout-bottom{position:absolute;border:1px solid #BED5F3; background:white; z-index:10; overflow:hidden;} 
+.l-layout-top{width:100%;}
+.l-layout-bottom{width:100%}
+
+.l-layout-left .l-layout-header-toggle{ position:absolute; top:3px; right:3px; height:20px; width:20px; overflow:hidden; background:url('../images/layout/togglebar.gif');background-position:-20px 0px; cursor:pointer;}
+.l-layout-left .l-layout-header-toggle-over{ background-position:-20px -20px;}
+
+.l-layout-right .l-layout-header-toggle{position:absolute; top:3px; left:3px; height:20px; width:20px; overflow:hidden; background:url('../images/layout/togglebar.gif');background-position:-20px -40px; cursor:pointer;}
+.l-layout-right .l-layout-header-toggle-over{ background-position:-20px -60px;}
+
+.l-layout-center .l-layout-header{ cursor:default;color:black;}
+
+/*.l-layout-header{ position:relative;padding-left:10px;  font-weight:bold;height:28px; line-height:28px;  background:#E5EFFE url('../images/layout/tabs-bg.jpg') repeat-x; overflow:hidden; cursor:pointer}*/
+.l-layout-header{ position:relative;padding-left:10px;  font-weight:bold;height:28px; line-height:28px;  background:#DDDDDE url("../images/layout/bg.png")  repeat-x; overflow:hidden; cursor:pointer}
+.l-layout-header-inner{padding-right:22px;color:black}
+.l-layout-right .l-layout-header-inner { padding-left:22px; padding-right:auto;}
+/*.l-layout-header-over{background:#EFF4FE url('../images/layout/tabs-bg.jpg') repeat-x;}*/
+.l-layout-header-over{background:#DDDDDE url("../images/layout/bg.png")  repeat-x;}  
+
+.l-layout-collapse-left,.l-layout-collapse-right{ width:24px; background:#EAF2FE;border:1px solid #B8D0D6; position:absolute;top:0px;   display:none; height:100%;z-index:10;}
+.l-layout-collapse-left-over,.l-layout-collapse-right-over{background:#F5F9FA;}
+.l-layout-collapse-left-toggle,.l-layout-collapse-right-toggle{position:absolute; height:20px; width:20px; overflow:hidden; background:url('../images/layout/togglebar.gif');cursor:pointer;}
+.l-layout-collapse-left{left:2px;}
+.l-layout-collapse-left-toggle{top:0px; right:2px; background-position:-20px -40px;}
+.l-layout-collapse-left-toggle-over{background-position:-20px -60px;} 
+
+.l-layout-collapse-right{right:2px;}
+.l-layout-collapse-right-toggle{top:0px; left:2px; background-position:-20px 0px;}
+.l-layout-collapse-right-toggle-over{background-position:-20px -20px;} 
+
+
+
+.l-layout-drophandle-left{ position:absolute;width:5px;cursor:col-resize; z-index:10;display:none;}
+.l-layout-drophandle-right{ position:absolute;width:5px;cursor:col-resize; z-index:10;display:none;}
+.l-layout-drophandle-top{ position:absolute;height:5px;cursor:row-resize; z-index:10;display:none; line-height:1px;overflow:hidden;}
+.l-layout-drophandle-bottom{ position:absolute;height:5px;cursor:row-resize; z-index:10;display:none;line-height:1px;overflow:hidden;}
+.l-layout-dragging-xline{ background:#E0E4E2;height:4px;position:absolute;display:none; z-index:9999; padding:0; margin:0;line-height:1px; overflow:hidden;}
+.l-layout-dragging-yline{ background:#E0E4E2;width:4px;position:absolute;display:none; z-index:9999; padding:0; margin:0;}
+.l-layout-lock{ position:absolute; width:100%; height:100%; display:none; z-index:9990; margin:0; padding:0;}
+.l-layout-content{position:relative; background:white; overflow:hidden;}
+
+.l-layout-drophandle{ position:absolute; top:0px; left:-5px; width:5px;cursor:col-resize; z-index:10;height:100%; display:none;}
+.l-layout-collapse{ width:24px; background:#EAF2FE;border:1px solid #B8D0D6; position:absolute; top:0px; left:4px; display:none; height:100%;z-index:10;}
+.l-layout-collapse-over{background:#F5F9FA;}
+.l-layout-collapse-toggle{position:absolute; top:0px; right:2px; height:20px; width:20px; overflow:hidden; background:url('../images/layout/togglebar.gif');background-position:-20px -40px; cursor:pointer;}
+.l-layout-collapse-toggle-over{background-position:-20px -60px;} 
+.l-layout-dragging-line{ background:#E0E4E2;width:4px;position:absolute;top:0px; display:none; z-index:9999; padding:0; margin:0;height:100%;}
+ 
+/* --------------
+   *   accordion  *
+* ------------ */
+.l-accordion-panel{ border-left:1px solid #BED5F3; border-right:1px solid #BED5F3; border-bottom:1px solid #BED5F3; }
+.l-accordion-toggle{ position:absolute; top:2px; right:4px; height:20px; width:20px; overflow:hidden; background:url('../images/layout/togglebar.gif');cursor:pointer;}
+.l-accordion-toggle-close{ background-position:0px 0px;}
+.l-accordion-toggle-close-over{ background-position:0px -20px;}
+.l-accordion-toggle-open{ background-position:0px -40px;}
+.l-accordion-toggle-open-over{ background-position:0px -60px;} 
+.l-accordion-header{ position:relative;padding-left:10px; color:#183152; font-weight:bold;height:25px; line-height:24px;  background:#E5EFFE url('../images/layout/tabs-bg.jpg') repeat-x; overflow:hidden; cursor:pointer;}
+.l-accordion-header-over{background:#EFF4FE url('../images/layout/accordion-header-over.gif') repeat-x;} 
+.l-accordion-content{position:relative;overflow:auto; background:white url('../images/layout/accordion-content.gif') repeat-x;}
+
+.l-layout-left .l-accordion-panel{ border-left:none; border-right:none;  }

+ 26 - 0
web/js/lg/skins/Aqua/css/ligerui-menu.css

@@ -0,0 +1,26 @@
+
+/* --------------
+   *   menu  *
+* ------------ */
+
+.l-menu { border:1px solid #979797; background:#F5F5F5;position:absolute; overflow:hidden; padding-bottom:2px; z-index:1001}
+.l-menu-shadow{z-index:1000;   
+	FILTER: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);
+	BACKGROUND: #ddd;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);
+	-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);
+position: absolute;}
+.l-menu-inner{ position:relative;width:100%;z-index:103;}
+.l-menu-over{position:absolute;top:-24px;left:2px; z-index:102; height:22px; overflow:hidden;background:url('../images/menu/menu-item-over-m.gif') repeat-x;width:97%;}
+.l-menu-yline { background:url('../images/menu/menu-line-y.gif') repeat-y; width:2px; height:2000px; position:absolute; left:28px; top:1px; z-index:101;}
+.l-menu-over-l{background:url('../images/menu/menu-item-over-l.gif') no-repeat; width:28px; height:22px; position:absolute;top:0; left:0;} 
+.l-menu-over-r{background:url('../images/menu/menu-item-over-r.gif') no-repeat; width:3px;height:22px; position:absolute;top:0; right:0;}
+.l-menu-item { position:relative; height:23px; line-height:23px; width:100%;  cursor:pointer;}
+.l-menu-item-line{background:url('../images/menu/menu-line-x.gif') repeat-x; height:2px; width:100%; margin-top:1px; margin-bottom:1px; margin-left:30px; line-height:2px; overflow:hidden;}
+.l-menu-item-arrow{background:url('../images/menu/menu-item-arrow.gif') no-repeat; position:absolute; top:8px; right:9px; width:4px; height:7px;}
+.l-menu-item-text{color:#000000;left: 33px;position: absolute;top: 0;}
+.l-menu-item-icon{ left: 3px;top: 0;position: absolute; width:25px; height:22px; overflow:hidden;}
+.l-menu-item-disable{ cursor:default;}
+.l-menu-item-disable .l-menu-item-text{ color:#A1A1A1;}

+ 52 - 0
web/js/lg/skins/Aqua/css/ligerui-tab.css

@@ -0,0 +1,52 @@
+
+/* -----------------------
+   * tab *
+* ----------------------- */
+
+.l-tab-loading{ position: absolute;z-index: 91000; top:0; left:0;background:white url('../images/common/bigloading.gif') no-repeat center 40% ; width:100%; height:100%;_height:800px;display:none;}
+
+.l-tab-links{position:relative; height:28px;  width:100%; overflow:hidden;   /* 调了Height 为 28 PX*/
+border-bottom:1px solid #BED5F3;}
+.l-tab-links-left{position:absolute; top:1px; left:0; width:17px; height:23px; overflow:hidden; background:url(../images/layout/tabs-tools.gif) 0px 0px; z-index:13; cursor:pointer;}
+.l-tab-links-right{ position:absolute; top:1px; right:0;width:17px; height:23px; overflow:hidden;background:url(../images/layout/tabs-tools.gif) -51px 0px;z-index:13; cursor:pointer;}
+.l-tab-links-left-over{ background-position:-17px 0px;}
+.l-tab-links-right-over{ background-position:-68px 0px;}
+.l-tab-links-left-invalid{ background-position:-34px 0px;}
+.l-tab-links-right-invalid{ background-position:-85px 0px;}
+
+.l-tab-links ul{ list-style:none; margin:0; padding:0; width:9999px; height:28px; overflow:hidden; position:absolute; top:0; left:0;}  /* 调了Height 为 28 PX*/
+.l-tab-links li{ float:left; margin:2px 2px 1px 2px; padding:0; height: 26px; line-height:26px; cursor:pointer;background:url(../images/layout/tabs-item-bg.gif); position:relative; overflow:hidden; border:none;}               
+.l-tab-links li a{ display:block; margin-left:6px; margin-right:0px; text-decoration:none;padding-right:25px;background:url(../images/layout/tabs-item-bg.gif) no-repeat right  0px;color:#000;}
+.l-tab-links li.l-selected{background:url(../images/layout/tabs-item-over-bg.gif);color:#fff;}
+.l-tab-links li.l-selected a{display:block; margin-left:6px; margin-right:0px; text-decoration:none;padding-right:25px;background:url(../images/layout/tabs-item-over-bg.gif) no-repeat right  0px;color:#fff;}
+
+.l-tab-links-item-close{ width:11px; height:11px; overflow:hidden; position:absolute; top:4px; right:2px; z-index:12;background:url(../images/icon/icon-close.png); cursor:pointer;}
+.l-tab-links-item-close-over{background:url(../images/icon/icon-close-over.gif);}                        /* 调了ICON-CLOSE PX*/
+
+.l-tab-content{ margin:0 auto; padding:0; border:none; width:100%;height:100%;}
+.l-tab-content-item{ width:100%; overflow:hidden; padding-top: 5px;}
+.l-tab-content-item iframe{width:100%; height:100%; border:none;}
+
+
+.l-tab-drag-proxy { border: 1px solid #BDD1EE;position: absolute;z-index: 1001;height:25px; line-height:25px; padding-left:19px; padding-right:4px; background:white;  }
+.l-tab-drag-proxy .l-drop-icon{position: absolute; top:5px; left:4px;width:16px; height:16px; }
+.l-drop-no{background: white url('../images/common/drop-icons.gif') no-repeat 0px -20px; width:16px; height:16px; overflow:hidden;}
+.l-drop-yes{background: white url('../images/common/drop-icons.gif') no-repeat 0px 0px;  width:16px; height:16px; overflow:hidden;}
+
+.l-tab-drag-droptip{width:9px; position:absolute; top:30px; left:30px; height:44px; z-index:1000;}
+.l-tab-drag-droptip .l-drop-move-up{ position:absolute; top:0px;}
+.l-tab-drag-droptip .l-drop-move-down{ position:absolute; bottom:0px;}
+
+.l-drop-move-up{background:transparent url('../images/common/drop-icons.gif') no-repeat -40px 0px; width:9px; height:9px; overflow:hidden;}
+.l-drop-move-down{background: transparent url('../images/common/drop-icons.gif') no-repeat -60px 0px; width:9px; height:9px; overflow:hidden;}
+/* -----------------------
+   * easytab *
+* ----------------------- */
+.l-easytab{ padding:0px; position:relative;} 
+.l-easytab ul{margin:0; padding:0; list-style:none;position:absolute; top:0px; left:0px; z-index:101;}
+.l-easytab .l-easytab-header { padding-left:3px;}
+.l-easytab .l-easytab-header li{ float:left; margin-left:2px;}
+.l-easytab .l-easytab-header li span{ display:block; line-height:22px; height:22px; padding-left:8px; padding-right:8px; background:url('../images/controls/bg-tab-title.gif') repeat-x; color:#333; text-decoration:none;border:1px solid #AECAF0; color:#283B56;}
+.l-easytab .l-easytab-header li span.l-over{background:url('../images/controls/bg-tab-title-over.gif') repeat-x;border:1px solid #DAB364; cursor:pointer;}
+.l-easytab .l-easytab-header li span.l-selected{ background:none; background:white; border-top:3px solid #FFBD69;height:20px;color:#355686; border-left:1px solid  #DAB364;border-right:1px solid  #DAB364;border-bottom:1px solid  white; }
+.l-easytab .l-easytab-panelbox{ border:1px solid #AECAF0; clear:left; position:absolute;top:23px; padding:4px;z-index:100;}

BIN
web/js/lg/skins/Aqua/images/common/bigloading.gif


BIN
web/js/lg/skins/Aqua/images/common/exclamation.gif


BIN
web/js/lg/skins/Aqua/images/common/invalid-line.gif


BIN
web/js/lg/skins/Aqua/images/common/loading.gif


BIN
web/js/lg/skins/Aqua/images/common/table.png


BIN
web/js/lg/skins/Aqua/images/controls/bg-panel-title-over.gif


BIN
web/js/lg/skins/Aqua/images/controls/bg-panel-title.gif


BIN
web/js/lg/skins/Aqua/images/controls/bg-tab-title.gif


BIN
web/js/lg/skins/Aqua/images/controls/bg-text.gif


BIN
web/js/lg/skins/Aqua/images/controls/bg-trigger.gif


BIN
web/js/lg/skins/Aqua/images/controls/btn.gif


BIN
web/js/lg/skins/Aqua/images/controls/button-bg-over.gif


BIN
web/js/lg/skins/Aqua/images/controls/checkbox.gif


BIN
web/js/lg/skins/Aqua/images/controls/dateeditor-header-bg.gif


BIN
web/js/lg/skins/Aqua/images/controls/radio.gif


BIN
web/js/lg/skins/Aqua/images/dateeditor/icon-first.gif


BIN
web/js/lg/skins/Aqua/images/dateeditor/icon-prev.gif


BIN
web/js/lg/skins/Aqua/images/grid/grid-checkbox-checked.gif


BIN
web/js/lg/skins/Aqua/images/grid/grid-detail-open.gif


BIN
web/js/lg/skins/Aqua/images/grid/grid-tree-open.gif


BIN
web/js/lg/skins/Aqua/images/grid/header-bg-over.gif


BIN
web/js/lg/skins/Aqua/images/grid/header2-bg.jpg


BIN
web/js/lg/skins/Aqua/images/grid/popup-row-over.gif


BIN
web/js/lg/skins/Aqua/images/icon/bar-button-over.gif


BIN
web/js/lg/skins/Aqua/images/icon/checkbox-checked.gif


BIN
web/js/lg/skins/Aqua/images/icon/checkbox.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-close.png


BIN
web/js/lg/skins/Aqua/images/icon/icon-down.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-drop.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-first.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-last.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-line.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-load.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-next.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-sort-asc.gif


BIN
web/js/lg/skins/Aqua/images/icon/icon-sort-desc.gif


BIN
web/js/lg/skins/Aqua/images/layout/accordion-header.gif


BIN
web/js/lg/skins/Aqua/images/layout/bg.png


BIN
web/js/lg/skins/Aqua/images/layout/layout-header-over.gif


BIN
web/js/lg/skins/Aqua/images/layout/layout-header.gif


BIN
web/js/lg/skins/Aqua/images/layout/mini-bottom.gif


BIN
web/js/lg/skins/Aqua/images/layout/mini-left.gif


BIN
web/js/lg/skins/Aqua/images/layout/mini-right.gif


BIN
web/js/lg/skins/Aqua/images/layout/mini-top.gif


BIN
web/js/lg/skins/Aqua/images/layout/panel-header.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-bg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-bg.jpg


BIN
web/js/lg/skins/Aqua/images/layout/tabs-item-bg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-item-left-bg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-item-over-Lbg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-item-over-bg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-item-right-bg.gif


BIN
web/js/lg/skins/Aqua/images/layout/tabs-tools.gif


BIN
web/js/lg/skins/Aqua/images/layout/togglebar.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-item-arrow.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-item-down.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-item-over-l.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-item-over-r.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-line-x.gif


BIN
web/js/lg/skins/Aqua/images/menu/menu-line-y.gif


BIN
web/js/lg/skins/Aqua/images/panel/bar-bg.gif


BIN
web/js/lg/skins/Aqua/images/panel/header-bg.jpg


BIN
web/js/lg/skins/Aqua/images/panel/panel-header.gif


BIN
web/js/lg/skins/Aqua/images/panel/panel-menu-item-down.gif


BIN
web/js/lg/skins/Aqua/images/panel/panel-menu.gif


BIN
web/js/lg/skins/Aqua/images/panel/panel-toolbar.gif


BIN
web/js/lg/skins/Aqua/images/panel/panel-tools.gif


BIN
web/js/lg/skins/Aqua/images/tree/folder.gif


BIN
web/js/lg/skins/Aqua/images/tree/loading.gif


BIN
web/js/lg/skins/Aqua/images/tree/tree-level.gif


BIN
web/js/lg/skins/Aqua/images/tree/tree-noline.gif


+ 0 - 0
web/js/lg/skins/Aqua/images/tree/tree-status-open.gif


Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov