界面框架初步提交

This commit is contained in:
chiguangxu
2018-02-02 17:58:32 +08:00
parent f45edaddb5
commit 70ede8852f
3858 changed files with 214716 additions and 346632 deletions

View File

@@ -0,0 +1,35 @@
@charset "utf-8";
html { height:100% }
body { font:12px/1.5em "微软雅黑"; }
#bg { display:none; width:100%; height:100%; overflow:hidden; position:fixed; top:0; left:0;z-index:10; }
body.showBg { overflow:hidden; }
body.showBg #bg { display:block;}
a { color:#1E9300; }
ul.nav { padding:0; margin:0; }
ul.nav li { margin:5px 0; list-style:none; }
pre { border-left:2px solid #A9EA1E; padding-left:8px; background:#FCFCFC; }
pre code { padding:1px; color:#333; background:#EAEAEA; }
#page { width:760px; margin:auto; }
#page h1 { font-size:1.8em; color:#214FA3; font-weight:700; }
#page h1 em { font-size:9px; color:#CCC;}
#page fieldset { margin-top:10px; border:solid 1px #EBEBEB; }
#page fieldset legend { padding:3px 20px; color:#FFF; background:#214FA3; font-size:1.4em; }
#page li { line-height:1.8em; list-style: circle; margin:5px 0; color:#333; }
#page fieldset, #page fieldset legend { -moz-border-radius:4px; -webkit-border-radius: 4px; border-radius:4px; }
#page button { }
#page .content { margin:0 20px; }
#page .content h3 { color:#000; }
#page .content ol, #page .content ul{ padding-left:0; margin-left:20px; }
#page strong { color:#1E9300; margin-right:5px; }
#page .tips { color:#666; border-bottom:1px dashed #CCC; }
#page label { cursor:pointer; }
#page .api { background:#FCFCFC; }
#page .api strong { width:5em; display:inline-block; *zoom:1;*display:inline; }
#page .api li { border-bottom:1px dashed #CCC; padding:5px 3px; margin:0; }
#page .api li:hover { background:#EAEAEA; }
#page .runCode { margin-right:4px; }
#page .runCode textarea { width:100%; color:#214FA3; font-size:12px; }
#page .runCode textarea:focus { border-color:#CCC; border-style:solid; }
#page .runCode .btn { text-align:right; }
#page .runCode button { cursor:pointer; }
#page .about { margin-top:30px; border-top:1px solid #F8F8F8; color:#666; }

View File

@@ -0,0 +1,260 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>树表控件</title>
<link href="style/demo.css" rel="stylesheet" type="text/css" />
<style type="text/css">
table,td,th { border: 1px solid #8DB9DB; padding:5px; border-collapse: collapse; font-size:16px; }
</style>
<!--引用的文件 Begin-->
<link href="../themes/default/jquery.treeTable.css" rel="stylesheet" type="text/css" />
<link href="../themes/vsStyle/jquery.treeTable.css" rel="stylesheet" type="text/css" />
<script src="../../../jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="../jquery.treeTable.js" type="text/javascript"></script>
<!--引用的文件 End-->
<script type="text/javascript">
$(function(){
var option = {
theme:'vsStyle',
expandLevel : 2,
beforeExpand : function($treeTable, id) {
//判断id是否已经有了孩子节点如果有了就不再加载这样就可以起到缓存的作用
if ($('.' + id, $treeTable).length) { return; }
//这里的html可以是ajax请求
var html = '<tr id="8" pId="6"><td>5.1</td><td>可以是ajax请求来的内容</td></tr>'
+ '<tr id="9" pId="6"><td>5.2</td><td>动态的内容</td></tr>';
$treeTable.addChilds(html);
},
onSelect : function($treeTable, id) {
window.console && console.log('onSelect:' + id);
}
};
$('#treeTable1').treeTable(option);
option.theme = 'default';
$('#treeTable2').treeTable(option);
});
</script>
</head>
<body>
<div id="page">
<h1><span>treeTable <em>v 1.4.2</em></span></h1>
<fieldset>
<legend> 简介</legend>
<div class="content">
<p>treeTable是跨浏览器、性能很高的jquery的树表组件它使用非常简单只需要引用jquery库和一个js文件接口也很简单。</p>
<h3>优点</h3>
<ol class="love">
<li><strong>兼容主流浏览器</strong>: 支持IE6和IE6+, Firefox, chrome, Opera, Safari</li>
<li><strong>接口简洁</strong>: 在普通表格的基础上增加父子关系的自定义标签就可以</li>
<li><strong>组件性能高</strong>: 内部实现了只绑定了table的事件、使用了css sprite合并图片等</li>
<li><strong>提供两种风格</strong>: 通过参数来设置风格</li>
</ol>
</div>
</fieldset>
<fieldset>
<legend>演示</legend>
<table id="treeTable1" style="width:100%">
<tr>
<td style="width:200px;">标题</td>
<td>内容</td>
</tr>
<tr id="1">
<td><span controller="true">1</span></td>
<td>内容</td></tr>
<tr id="2" pId="1">
<td><span controller="true">2</span></td>
<td>内容</td></tr>
<tr id="3" pId="2">
<td>3</td>
<td>内容</td>
</tr>
<tr id="4" pId="2">
<td>4</td>
<td>内容</td>
</tr>
<tr id="5" pId="4">
<td>4.1</td>
<td>内容</td>
</tr>
<tr id="6" pId="1" hasChild="true">
<td>5</td>
<td>注意这个节点是动态加载的</td>
</tr>
<tr id="7">
<td>8</td>
<td>内容</td>
</tr>
</table>
<hr/>
<table id="treeTable2" style="width:100%">
<tr>
<td style="width:200px;">标题</td>
<td>内容</td>
</tr>
<tr id="1">
<td><span controller="true">1</span></td>
<td>内容</td></tr>
<tr id="2" pId="1">
<td><span controller="true">2</span></td>
<td>内容</td></tr>
<tr id="3" pId="2">
<td>3</td>
<td>内容</td>
</tr>
<tr id="4" pId="2">
<td>4</td>
<td>内容</td>
</tr>
<tr id="5" pId="4">
<td>4.1</td>
<td>内容</td>
</tr>
<tr id="6" pId="1" hasChild="true">
<td>5</td>
<td>注意这个节点是动态加载的</td>
</tr>
<tr id="7">
<td>8</td>
<td>内容</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>接口</legend>
<h3>配置参数</h3>
<div>
<ul class="love">
<li><strong>theme</strong>: string {主题有两个选项default、vsStyle. 默认:default}</li>
<li><strong>expandLevel</strong>: int {树表的展开层次. 默认:1}</li>
<li><strong>column</strong>: int {可控制列的序号. 默认:0即第一列}</li>
<li><strong>onSelect</strong>: function {拥有controller自定义属性的元素的点击事件return false则中止展开. 默认值:
<pre><code>function($treeTable, id) {
//$treeTable 当前树表的jquery对象.
//id 当前行的id
//返回false则直接退出不会激发后面的beforeExpand和子节点的展开
return true;
}</code></pre>
</li>
<li><strong>beforeExpand</strong>: {展开子节点前触发的事件, 默认值:</li>
<pre><code>function($treeTable, id) {
//$treeTable 当前树表的jquery对象.
//id 当前行的id
}</code></pre>
</ul>
</div>
<h3>属性说明</h3>
<div>
<ul class="love">
<li><strong>id</strong>: string 行的id</li>
<li><strong>pId</strong>: string 父行的id</li>
<li><strong>controller</strong>: bool 指定某一个元素是否可以控制行的展开</li>
<li><strong>hasChild</strong>: bool 指定某一个tr元素是否有孩子动态加载需用到</li>
<li><strong>isFirstOne</strong>: bool 指定某一个tr元素是否是第一个孩子自动生成属性只读</li>
<li><strong>isLastOne</strong>: bool 指定某一个tr元素是否是最后一个孩子自动生成属性只读</li>
<li><strong>prevId</strong>: string 前一个兄弟节点的id自动生成属性只读</li>
<li><strong>depth</strong>: string 当前行的深度(自动生成属性,只读)</li>
</ul>
</div>
</fieldset>
<fieldset>
<legend>使用方式</legend>
<h3> $("#元素id").treeTable({}) 如:</h3>
<p>引用的文件</p>
<pre><code>&lt;script src=&quot;/script/jquery.js&quot; type=&quot;text/javascript&quot;&gt; &lt;/script&gt;
&lt;script src=&quot;/script/treeTable/jquery.treeTable.js&quot; type=&quot;text/javascript&quot;&gt; &lt;/script&gt;</code></pre>
<p>js代码</p>
<pre><code>$(function(){
var option = {
theme:'vsStyle',
expandLevel : 2,
beforeExpand : function($treeTable, id) {
//判断id是否已经有了孩子节点如果有了就不再加载这样就可以起到缓存的作用
if ($('.' + id, $treeTable).length) { return; }
//这里的html可以是ajax请求
var html = '&lt;tr id="8" pId="6"&gt;&lt;td&gt;5.1&lt;/td&gt;&lt;td&gt;可以是ajax请求来的内容&lt;/td&gt;&lt;/tr&gt;'
+ '&lt;tr id="9" pId="6"&gt;&lt;td&gt;5.2&lt;/td&gt;&lt;td&gt;动态的内容&lt;/td&gt;&lt;/tr&gt;';
$treeTable.addChilds(html);
},
onSelect : function($treeTable, id) {
window.console && console.log('onSelect:' + id);
}
};
$('#treeTable1').treeTable(option);
});</code></pre>
<p>html结构</p>
<pre><code>&lt;table id="treeTable1" style="width:100%"&gt;
&lt;tr&gt;
&lt;td style="width:200px;"&gt;标题&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="1"&gt;
&lt;td&gt;&lt;span controller="true"&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="2" pId="1"&gt;
&lt;td&gt;&lt;span controller="true"&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;&lt;/tr&gt;
&lt;tr id="3" pId="2"&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="4" pId="2"&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="5" pId="4"&gt;
&lt;td&gt;4.1&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="6" pId="1" hasChild="true"&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;注意这个节点是动态加载的&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id="7"&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;内容&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</code></pre>
</fieldset>
<fieldset>
<legend>关于</legend>
<div class="content">
<h3>作者: benzhan(詹潮江)</h3>
<h3>版本变更</h3>
<p>1.0版本:创建基本功能。(2011-05-04)</p>
<p>1.1版本:(2011-05-08)</p>
<pre>这个版本提高了性能,做了以下改进:
* 1、使用了Css Sprite Tools 合并了分散的图标
* 2、使用了.id的方式来代替原来[pId=id],这样选择孩子效率更高
* 3、把css剥离出来增加动态添加css每次家在前判断是否添加过
关于第二点非常感谢onli同学的提醒。但我并没有直接修改我的接口直接除去pId而是在第一次遍历时将pId作为class名添加到节点中。这样有两个好处
1接口可读性会比较好pId比class更容易理解。
2第二点如果直接使用class那节点本来就有样式这样获取到的className还要去分解空格得到pId挺麻烦的。</pre>
<hr>
<p>1.3版本:(2011-05-09)</p>
<pre>这个版本扩展了事件,做了以下改进:
* 1、增加onSelect事件onSelect: function($treeTable, id){}
* 2、增加beforeExpand事件beforeExpand : function($treeTable, id){}
动态加载节点就靠beforeExpand 事件了。</pre>
<p>1.4.2版本:(2011-09-03)</p>
<pre>这个版本修复了bug做了以下改进
* 1、修复了多个tableTree不在同个页面的bug并且可以让不同的tableTree使用不同的主题。
* 2、增加了controller的自定义标签来控制可点击的区域。</pre>
</div>
</fieldset>
</div>
</body>
</html>

View File

@@ -0,0 +1,249 @@
/**
* 树表组件
* @author benzhan (詹潮江)
* @version 1.4.2
* @lastUpdateDate 2011-09-03
* @mail zhanchaojiang@qq.com
*/
(function ($) {
// window.SITE_URL = window.SITE_URL || '';
// if (document.location.href.indexOf('http://') != 0) {
// var path = '../themes/';
// } else {
// var path = SITE_URL + '/themes/';
// }
$.fn.treeTable = function (opts) {
opts = $.extend({
path: '',
theme: 'default',
expandLevel: 1,
column: 0,
onSelect: function($treeTable, id){},
beforeExpand: function($treeTable, id){}
}, opts);
var $treeTable = this;
$treeTable.addClass('tree_table');
// //添加需要的样式
// if ($('head').find('#tree_table_' + opts.theme).length == 0) {
// $('head').append('<link id="tree_table_' + opts.theme + '" href="' + opts.path + 'themes/' + opts.theme + '/treeTable.css" rel="stylesheet" type="text/css" />');
// }
var css = {
'N' : opts.theme + '_node',
'AN' : opts.theme + '_active_node',
'O' : opts.theme + '_open',
'LO' : opts.theme + '_last_open',
'S' : opts.theme + '_shut',
'LS' : opts.theme + '_last_shut',
'HO' : opts.theme + '_hover_open',
'HS' : opts.theme + '_hover_shut',
'HLO' : opts.theme + '_hover_last_open',
'HLS' : opts.theme + '_hover_last_shut',
'L' : opts.theme + '_leaf',
'LL' : opts.theme + '_last_leaf',
'B' : opts.theme + '_blank',
'V' : opts.theme + '_vertline'
};
var pMap = {}, cMap = {};
var $trs = $treeTable.find('tr');
initRelation($trs, true);
$treeTable.click(function (event) {
var $target = $(event.target);
if ($target.attr('controller')) {
$target = $target.parents('tr[haschild]').find('[arrow]');
//判断是否是叶子节点
if ($target.attr('class').indexOf(css['AN']) == -1 && $target.attr('class').indexOf(css['N']) == -1) { return; }
var id = $target.parents('tr[haschild]')[0].id;
if (opts.onSelect && opts.onSelect($treeTable, id) === false) { return; }
}
if ($target.attr('arrow')) {
var className = $target.attr('class');
if (className == css['AN'] + ' ' + css['HLO'] || className == css['AN'] + ' ' + css['HO']) {
var id = $target.parents('tr[haschild]')[0].id;
$target.attr('class', css['AN'] + " " + (className.indexOf(css['HO']) != -1 ? css['HS'] : css['HLS']));
//关闭所有孩子的tr
shut(id);
return;
} else if (className == css['AN'] + ' ' + css['HLS'] || className == css['AN'] + ' ' + css['HS']) {
var id = $target.parents('tr')[0].id;
$target.attr('class', css['AN'] + " " + (className.indexOf(css['HS']) != -1 ? css['HO'] : css['HLO']));
opts.beforeExpand($treeTable, id);
//展开所有直属节点,根据图标展开子孙节点
open(id);
return;
}
}
});
$treeTable.mouseover(hoverActiveNode).mouseout(hoverActiveNode);
function hoverActiveNode(event) {
var $target = $(event.target);
if ($target.attr('controller')) {
$target = $target.parents('tr[haschild]').find('[arrow]');
}
if ($target.attr('arrow')) {
var className = $target.attr('class');
if (className && !className.indexOf(css['AN'])) {
var len = opts.theme.length + 1;
className = className.split(' ')[1].substr(len);
if (className.indexOf('hover_') === 0) {
className = opts.theme + '_' + className.substr(6);
} else {
className = opts.theme + '_hover_' + className;
}
$target.attr('class', css['AN'] + ' ' + className);
return;
}
}
}
/** 初始化节点关系 */
function initRelation($trs, hideLevel) {
//构造父子关系
$trs.each(function (i) {
var pId = $(this).attr('pId') || 0;
pMap[pId] || (pMap[pId] = []);
pMap[pId].push(this.id);
cMap[this.id] = pId;
//给这个tr增加类为了提高选择器的效率
$(this).addClass(pId);
}).find('[controller]').css('cursor', 'pointer');
//标识父节点是否有孩子、是否最后一个节点
$trs.each(function (i) {
if (!this.id) { return; }
var $tr = $(this);
pMap[this.id] && $tr.attr('hasChild', true);
var pArr = pMap[cMap[this.id]];
if (pArr[0] == this.id) {
$tr.attr('isFirstOne', true);
} else {
var prevId = 0;
for (var i = 0; i < pArr.length; i++) {
if (pArr[i] == this.id) { break; }
prevId = pArr[i];
}
$tr.attr('prevId', prevId);
}
pArr[pArr.length - 1] == this.id && $tr.attr('isLastOne', true);
var depth = getDepth(this.id);
$tr.attr('depth', depth);
//格式化节点
formatNode(this);
//判断是否要隐藏限制的层次
if (hideLevel) {
depth > opts.expandLevel && $tr.hide();
//判断是否小于深度,如果小于深度则要换成展开的图标
if ($tr.attr('hasChild') && $tr.attr('depth') < opts.expandLevel) {
var className = $tr.attr('isLastOne') ? css['LO'] : css['O'];
$tr.find('.' + css['AN']).attr('class', css['AN'] + ' ' + className);
}
}
});
//递归获取深度
function getDepth(id) {
if (cMap[id] == 0) { return 1; }
var $parentDepth = getDepth(cMap[id]);
return $parentDepth + 1;
}
}
//递归关闭所有的孩子
function shut(id) {
if (!pMap[id]) { return false; }
for (var i = 0; i < pMap[id].length; i++) {
shut(pMap[id][i]);
}
$('tr.' + id, $treeTable).hide();
}
//根据历史记录来展开节点
function open(id) {
$('tr.' + id, $treeTable).show();
if (!pMap[id]) { return false; }
for (var i = 0; i < pMap[id].length; i++) {
var cId = pMap[id][i];
if (pMap[cId]) {
var className = $('#' + cId, $treeTable).find('.' + css['AN']).attr('class');
//如果子节点是展开图表的,则需要展开此节点
(className == css['AN'] + ' ' + css['O'] || className == css['AN'] + ' ' + css['LO']) && open(cId);
}
}
}
function formatNode(tr) {
var $cur = $(tr);
var id = tr.id;
//-------------下面一大段都是获取$preSpan---------
if (cMap[id] == 0) {
//如果是顶级节点则没有prev_sp
var $preSpan = $('<span class="prev_sp"></span>');
} else {
//先判断是否有上一个兄弟节点
if (!$cur.attr('isFirstOne')) {
var $preSpan = $('#' + $cur.attr('prevId'), $treeTable).children("td").eq(opts.column).find('.prev_sp').clone();
} else {
var $parent = $('#' + cMap[id], $treeTable);
//没有上一个兄弟节点则使用父节点的prev_sp
var $preSpan = $parent.children("td").eq(opts.column).find('.prev_sp').clone();
//如果父亲后面没有兄弟,则直接加空白,若有则加竖线
if ($parent.attr('isLastOne')) {
$preSpan.append('<span class="' + css['N'] + ' ' + css['B'] + '"></span>');
} else {
$preSpan.append('<span class="' + css['N'] + ' ' + css['V'] + '"></span>');
}
}
}
//------------------------------------------------
if ($cur.attr('hasChild')) {
//如果有下一个节点,并且下一个节点的父亲与当前节点的父亲相同,则说明该节点不是最后一个节点
var className = $cur.attr('isLastOne') ? css['LS'] : css['S'];
className = css['AN'] + ' ' + className;
} else {
var className = css['N'] + ' ' + ($cur.attr('isLastOne') ? css['LL'] : css['L']);
}
var $td = $cur.children("td").eq(opts.column);
$td.prepend('<span arrow="true" class="' + className + '"></span>').prepend($preSpan);
};
$treeTable.addChilds = function(trsHtml) {
var $trs = $(trsHtml);
if (!$trs.length) { return false; }
var pId = $($trs[0]).attr('pId');
if (!pId) { return false; }
//插入到最后一个孩子后面,或者直接插在父节点后面
var insertId = pMap[pId] && pMap[pId][pMap[pId].length - 1] || pId;
$('#' + insertId, $treeTable).after($trs);
initRelation($trs);
};
return $treeTable;
};
})(jQuery);

View File

@@ -0,0 +1,2 @@
(function(a){a.fn.treeTable=function(b){b=a.extend({path:"",theme:"default",expandLevel:1,column:0,onSelect:function(m,n){},beforeExpand:function(m,n){}},b);var l=this;l.addClass("tree_table");var g={N:b.theme+"_node",AN:b.theme+"_active_node",O:b.theme+"_open",LO:b.theme+"_last_open",S:b.theme+"_shut",LS:b.theme+"_last_shut",HO:b.theme+"_hover_open",HS:b.theme+"_hover_shut",HLO:b.theme+"_hover_last_open",HLS:b.theme+"_hover_last_shut",L:b.theme+"_leaf",LL:b.theme+"_last_leaf",B:b.theme+"_blank",V:b.theme+"_vertline"};var j={},d={};var c=l.find("tr");e(c,true);l.click(function(o){var m=a(o.target);if(m.attr("controller")){m=m.parents("tr[haschild]").find("[arrow]");if(m.attr("class").indexOf(g.AN)==-1&&m.attr("class").indexOf(g.N)==-1){return}var p=m.parents("tr[haschild]")[0].id;if(b.onSelect&&b.onSelect(l,p)===false){return}}if(m.attr("arrow")){var n=m.attr("class");if(n==g.AN+" "+g.HLO||n==g.AN+" "+g.HO){var p=m.parents("tr[haschild]")[0].id;m.attr("class",g.AN+" "+(n.indexOf(g.HO)!=-1?g.HS:g.HLS));i(p);return}else{if(n==g.AN+" "+g.HLS||n==g.AN+" "+g.HS){var p=m.parents("tr")[0].id;m.attr("class",g.AN+" "+(n.indexOf(g.HS)!=-1?g.HO:g.HLO));b.beforeExpand(l,p);f(p);return}}}});l.mouseover(h).mouseout(h);function h(p){var n=a(p.target);if(n.attr("controller")){n=n.parents("tr[haschild]").find("[arrow]")}if(n.attr("arrow")){var o=n.attr("class");if(o&&!o.indexOf(g.AN)){var m=b.theme.length+1;o=o.split(" ")[1].substr(m);if(o.indexOf("hover_")===0){o=b.theme+"_"+o.substr(6)}else{o=b.theme+"_hover_"+o}n.attr("class",g.AN+" "+o);return}}}function e(n,m){n.each(function(q){var p=a(this).attr("pId")||0;j[p]||(j[p]=[]);j[p].push(this.id);d[this.id]=p;a(this).addClass(p)}).find("[controller]").css("cursor","pointer");n.each(function(q){if(!this.id){return}var s=a(this);j[this.id]&&s.attr("hasChild",true);var p=j[d[this.id]];if(p[0]==this.id){s.attr("isFirstOne",true)}else{var u=0;for(var q=0;q<p.length;q++){if(p[q]==this.id){break}u=p[q]}s.attr("prevId",u)}p[p.length-1]==this.id&&s.attr("isLastOne",true);var t=o(this.id);s.attr("depth",t);
k(this);if(m){t>b.expandLevel&&s.hide();if(s.attr("hasChild")&&s.attr("depth")<b.expandLevel){var r=s.attr("isLastOne")?g.LO:g.O;s.find("."+g.AN).attr("class",g.AN+" "+r)}}});function o(q){if(d[q]==0){return 1}var p=o(d[q]);return p+1}}function i(n){if(!j[n]){return false}for(var m=0;m<j[n].length;m++){i(j[n][m])}a("tr."+n,l).hide()}function f(p){a("tr."+p,l).show();if(!j[p]){return false}for(var n=0;n<j[p].length;n++){var m=j[p][n];if(j[m]){var o=a("#"+m,l).find("."+g.AN).attr("class");(o==g.AN+" "+g.O||o==g.AN+" "+g.LO)&&f(m)}}}function k(o){var m=a(o);var s=o.id;if(d[s]==0){var q=a('<span class="prev_sp"></span>')}else{if(!m.attr("isFirstOne")){var q=a("#"+m.attr("prevId"),l).children("td").eq(b.column).find(".prev_sp").clone()}else{var p=a("#"+d[s],l);var q=p.children("td").eq(b.column).find(".prev_sp").clone();if(p.attr("isLastOne")){q.append('<span class="'+g.N+" "+g.B+'"></span>')}else{q.append('<span class="'+g.N+" "+g.V+'"></span>')}}}if(m.attr("hasChild")){var n=m.attr("isLastOne")?g.LS:g.S;n=g.AN+" "+n}else{var n=g.N+" "+(m.attr("isLastOne")?g.LL:g.L)}var r=m.children("td").eq(b.column);r.prepend('<span arrow="true" class="'+n+'"></span>').prepend(q)}l.addChilds=function(p){var m=a(p);if(!m.length){return false}var o=a(m[0]).attr("pId");if(!o){return false}var n=j[o]&&j[o][j[o].length-1]||o;a("#"+n,l).after(m);e(m)};return l}})(jQuery);

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

View File

@@ -0,0 +1,9 @@
.tree_table .default_node, .tree_table .default_active_node {width:16px;height:16px;border: medium none; margin: 0; padding: 0;display: inline-block;}
.tree_table .default_active_node {cursor: pointer;}
.tree_table .default_leaf{background:url(./allbgs.gif) no-repeat -16px 0px;width:16px;}
.tree_table .default_last_leaf{background:url(./allbgs.gif) no-repeat -64px 0px;width:16px;}
.tree_table .default_vertline{background:url(./allbgs.gif) no-repeat -32px 0px;width:16px;}
.tree_table .default_open, .tree_table .default_hover_open{background:url(./allbgs.gif) no-repeat 0px 0px;width:16px;}
.tree_table .default_shut, .tree_table .default_hover_shut{background:url(./allbgs.gif) no-repeat -48px 0px;width:16px;}
.tree_table .default_last_shut, .tree_table .default_hover_last_shut{background:url(./allbgs.gif) no-repeat -96px 0px;width:16px;}
.tree_table .default_last_open, .tree_table .default_hover_last_open{background:url(./allbgs.gif) no-repeat -112px 0px;width:16px;}

View File

@@ -0,0 +1 @@
.tree_table .default_node,.tree_table .default_active_node{width:16px;height:16px;border:medium none;margin:0;padding:0;display:inline-block}.tree_table .default_active_node{cursor:pointer}.tree_table .default_leaf{background:url(./allbgs.gif) no-repeat -16px 0;width:16px}.tree_table .default_last_leaf{background:url(./allbgs.gif) no-repeat -64px 0;width:16px}.tree_table .default_vertline{background:url(./allbgs.gif) no-repeat -32px 0;width:16px}.tree_table .default_open,.tree_table .default_hover_open{background:url(./allbgs.gif) no-repeat 0 0;width:16px}.tree_table .default_shut,.tree_table .default_hover_shut{background:url(./allbgs.gif) no-repeat -48px 0;width:16px}.tree_table .default_last_shut,.tree_table .default_hover_last_shut{background:url(./allbgs.gif) no-repeat -96px 0;width:16px}.tree_table .default_last_open,.tree_table .default_hover_last_open{background:url(./allbgs.gif) no-repeat -112px 0;width:16px}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,6 @@
.tree_table .default_node, .tree_table .default_active_node {width:16px;height:16px;border: medium none; margin: 0; padding: 0;display: inline-block;}
.tree_table .default_active_node {cursor: pointer;}
.tree_table .default_open, .tree_table .default_last_open{background:url(./allbgs.gif) no-repeat 0px 1px;width:16px;}
.tree_table .default_shut, .tree_table .default_last_shut{background:url(./allbgs.gif) no-repeat -16px 1px;width:16px;}
.tree_table .default_hover_open, .tree_table .default_hover_last_open{background:url(./allbgs.gif) no-repeat -32px 1px;width:16px;}
.tree_table .default_hover_shut, .tree_table .default_hover_last_shut{background:url(./allbgs.gif) no-repeat -48px 1px;width:16px;}

View File

@@ -0,0 +1 @@
.tree_table .default_node,.tree_table .default_active_node{width:16px;height:16px;border:medium none;margin:0;padding:0;display:inline-block}.tree_table .default_active_node{cursor:pointer}.tree_table .default_open,.tree_table .default_last_open{background:url(./allbgs.gif) no-repeat 0 1px;width:16px}.tree_table .default_shut,.tree_table .default_last_shut{background:url(./allbgs.gif) no-repeat -16px 1px;width:16px}.tree_table .default_hover_open,.tree_table .default_hover_last_open{background:url(./allbgs.gif) no-repeat -32px 1px;width:16px}.tree_table .default_hover_shut,.tree_table .default_hover_last_shut{background:url(./allbgs.gif) no-repeat -48px 1px;width:16px}