⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.js

📁 ZK 基础介绍 功能操作 模块 结合数据库操作
💻 JS
📖 第 1 页 / 共 2 页
字号:
	}	var meta = zkau.getMeta($parentByType(n, "Tree"));	if (meta)		meta._openItem(n, null, open != false);};/** Called when _onDocCtxMnu is called. */zkTrow.onrtclk = function (cmp) {	var meta = zkau.getMetaByType(cmp, "Tree");	if (meta && !meta._isSelected(cmp)) meta.doclick(null, cmp);};/* Paginate. * @param cmp treerow or tree * @param rows all rows of the tree, null if cmp is treerow */zkTrow._pgnt = function (cmp, rows) {	var head = $e(cmp.id + "!ph"), tail = $e(cmp.id + "!pt");	var pgc = getZKAttr(cmp, "pgc");	if (pgc > 1) {		var ncol = (rows ? rows[0].cells: cmp.cells).length;		var pgsz = getZKAttr(cmp, "pgsz");		var pgi = getZKAttr(cmp, "pgi");		if (pgi > 0) { //head visible			if (!head || pgc != getZKAttr(head, "pgc")			|| pgi != getZKAttr(head, "pgi")) {				if (!head) head = zkTrow._genpg(cmp, rows, false);				zk.setInnerHTML($e(cmp.id + "!pch"),					Tree_paging(cmp, pgc, pgi, pgsz, false));			} else				zkTrow._fixpgspan(head, ncol);			head = null; //so it won't be removed later		}		if (pgi < pgc - 1) { //tail visible			if (!tail || pgc != getZKAttr(tail, "pgc")			|| pgi != getZKAttr(tail, "pgi")) {				if (!tail) tail = zkTrow._genpg(cmp, rows, true);				zk.setInnerHTML($e(cmp.id + "!pct"),					Tree_paging(cmp, pgc, pgi, pgsz, true));			} else				zkTrow._fixpgspan(tail, ncol);			tail = null; //so it won't be removed later		}	}	zk.remove(head);	zk.remove(tail);};/** Fixes colspan of pagination. */zkTrow._fixpgspan = function (n, ncol) {	if (ncol != getZKAttr(n, "ncol")) {		n.colSpan = ncol;		setZKAttr(n, "ncol", ncol);	}};/** Generate the pagination tags. * @param end whether it is the end pagination or the begin pagination */zkTrow._genpg = function (cmp, rows, end) {	var tr = document.createElement("TR");	tr.id = cmp.id + (end ? "!pt": "!ph");	if (!rows //!rows => parent is treeitem	&& (!zkTree.isOpen(cmp) || !$visible(cmp))) //not visible if ancestor is not open		tr.style.display = "none"	var td = document.createElement("TD");	tr.appendChild(td);	if (rows) {		if (end) zk.insertAfter(tr, rows[rows.length - 1]);		else zk.insertBefore(tr, rows[0]);	} else {		setZKAttr(tr, "gpitem", getZKAttr(cmp, "pitem"));		zk.insertAfter(tr, end ? zkTrow._lastKid(cmp): cmp);	}	//clone images with z.fc	//Note: we don't clone the last image	if (!rows) {		var n = zk.nextSibling(end ? cmp: tr, "TR");		if (n.id.endsWith("!ph")) n = zk.nextSibling(n, "TR"); //skip head		var last = null;		for (n = n.cells[0].firstChild, n = n && n.firstChild ? n.firstChild: n; //TD/DIV/icons		n; n = n.nextSibling) {			if (n.getAttribute) {				if (!getZKAttr(n, "fc") && !n.id.endsWith("!cm"))					break;				if (last) {					var cloned = last.cloneNode(true);					if (cloned.id.endsWith("!cm")) {						cloned.id = "";						cloned.style.visibility = "hidden";					}					td.appendChild(cloned);				}				last = n;			}		}	}	//create content	var cnt = document.createElement("SPAN");	cnt.id = cmp.id + "!pc" + (end ? 't': 'h');	cnt.className = "treeitem-paging";	cnt.style.width = "100%";	td.appendChild(cnt);	return tr;};zkTrow._genimg = function (uri, js) {	return '<img src="'+zk.getUpdateURI("/web/zul/img/tree/" + uri + "-off.gif")		+'" onmouseover="zkau.onimgover(event)" onmouseout="zkau.onimgout(event)" align="top" onclick="'		+js+',event)"/>';};/** page up or down * @param index -9: top page, -1: up one page, -2: up two pages * 9: bottom, 1: down one page, 2: down two pages */zkTrow._onpg = function (index, evt) {	if (!evt) evt = window.event;	var n = $outer($parent(Event.element(evt)));	zkau.send({uuid: getZKAttr(n, "tchsib"), cmd: "onPaging",		data: [index == -9 ? 0:			index == 9 ? $int(getZKAttr(n, "pgc")) - 1:			$int(getZKAttr(n, "pgi")) + index]});};/** Zoom in or out * @param index -1: zoom out, 1: zoom in */zkTrow._onzoom = function (index, evt) {	if (!evt) evt = window.event;	var n = $outer($parent(Event.element(evt)));	zkau.send({uuid: getZKAttr(n, "tchsib"), cmd: "onPageSize",		data: [$int(getZKAttr(n, "pgsz")) + index]});};/** Returns the last direct child. * It returns itself if there is no child at all. */zkTrow._lastKid = function (row) {	var uuid = getZKAttr(row, "pitem");	var n = row;	do {		var r = n.nextSibling;		if ($tag(r) == "TR") {			var pid = getZKAttr(r, "gpitem");			if (uuid != pid) return row; //not my child			row = r = zkTrow._lastKid(r);		}	} while (n = r);	return row;}if (!zk.safari) {	zkTcfc = {}; //checkmark or the first hyperlink of treecell	zkTcfc.init = function (cmp) {		zk.listen(cmp, "focus", zkSel.cmonfocus);		zk.listen(cmp, "blur", zkSel.cmonblur);	}}zkTcop = {}; //the image as the open buttonzkTcop.init = function (cmp) {	zk.listen(cmp, "click", zkTree.ontoggle);};zk.addModuleInit(function () {	//Treecol	//init it later because zul.js might not be loaded yet	zkTcol = {}	Object.extend(zkTcol, zulHdr);	/** Resize the column. */	zkTcol.resize = function (col1, icol, wd1, keys) {		var meta = zkau.getMeta($parentByType(col1, "Tree"));		if (meta)			meta.resizeCol(				$parentByType(col1, "Tcols"), icol, col1, wd1, keys);	};	//Treecols	zkTcols = zulHdrs;});//Upgrade AU Engine to handle treeitem and treechildrenvar _zktrx = {};_zktrx.dom = {}; //Map(treechildren/treeitem, [treerows])_zktrx.sib = {}; //Map(treechildren, treerow)_zktrx.au = {};_zktrx.init = function (trow, attr) {	var pt = getZKAttr(trow, attr);	if (pt) {		var dom = _zktrx.dom[pt];		if (!dom) dom = _zktrx.dom[pt] = [];		dom.push(trow.id);		if ("pitem" == attr)			_zktrx.sib[pt] = trow.id;	}};_zktrx.cleanup = function (trow, attr) {	var pt = getZKAttr(trow, attr);	var dom = pt ? _zktrx.dom[pt]: null;	if (dom) {		dom.remove(trow.id);		if (!dom.length) delete _zktrx.dom[pt];		if ("pitem" == attr)			delete _zktrx.sib[pt];	}};_zktrx.au.outer = zkau.cmd1.outer;zkau.cmd1.outer = function (uuid, cmp, html) {	if (!cmp) {		var dom = _zktrx.dom[uuid];		if (dom) {			for (var j = dom.length; --j >= 0;) {				var id = dom[j];				var trow = $e(id);				_zktrx._rmKids(trow); //deep first since it cleanup dom				if (j == 0) {					uuid = id;					cmp = trow;				} else {					_zktrx.au.rm(id, trow);				}			}			dom.length = 0; //clear		} else {			//Bug 1753216: it causes invalidate if adding more than one page			//of treeitems to an empty treechild			var sib = _zktrx.sib[uuid];			if (sib) { //update an empty treechildren				_zktrx.au.addAft(uuid, $e(sib), html);				return; //done			}		}	}	if (cmp && html.trim()) //if treechildren has no children at all		_zktrx.au.outer(uuid, cmp, html);};_zktrx.au.addAft = zkau.cmd1.addAft;zkau.cmd1.addAft = function (uuid, cmp, html) {	if (!cmp) {		cmp = $e(_zktrx.sib[uuid]);		if (cmp) cmp = zkTrow._lastKid(cmp);	}	_zktrx.au.addAft(uuid, cmp, html);};_zktrx.au.addBfr = zkau.cmd1.addBfr;zkau.cmd1.addBfr = function (uuid, cmp, html) {	_zktrx.au.addBfr(uuid, cmp ? cmp: $e(_zktrx.sib[uuid]), html);};_zktrx.au.addChd = zkau.cmd1.addChd;zkau.cmd1.addChd = function (uuid, cmp, html) {	if (cmp)		_zktrx.au.addChd(uuid, cmp, html);	else		_zktrx.au.addAft(uuid, $e(_zktrx.sib[uuid]), html);};_zktrx.au.rm = zkau.cmd1.rm;zkau.cmd1.rm = function (uuid, cmp) {	var dom = _zktrx.dom[uuid];	if (dom) {		for (var j = dom.length; --j >= 0;) {			var id = dom[j];			var trow = $e(id);			_zktrx._rmKids(trow); //deep first since it cleanup dom			_zktrx.au.rm(id, trow);		}		dom.length = 0; //clear (just in case)		return;	}	_zktrx.au.rm(uuid, cmp);};_zktrx._rmKids = function (trow) {	var tchsib = trow ? getZKAttr(trow, "tchsib"): null;	if (tchsib)		zkau.cmd1.rm(tchsib, $e(tchsib));};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -