Namespace.register("U.MD.DK.LL"); //Disk导航命名空间 //#region 导航 /** * 导航打印(树导航) * @param {object} 左边一级层级树目录的相关信息 * @param {element} 输出到那个区域 * @param {array} 树目录的class样式数组 * @param {element} 树目录区域 * @param {str} 当前用户ID **/ U.MD.DK.LL.printLeftTreeDirectory = function (directorys, el, userid, classes) { var _dtorydiv, //目录元素 _namediv, //名字元素 _frag = $$("div"), //临时块元素 _padding = 3 //左对齐 ; //判断展开的基本是否大于二级,大于二级则设置padding if ($(el).Child()[0]) { _padding = parseInt($(el).Child()[0].style.paddingLeft || 0) + 5; //如果不展开的处理 if ($($(el).Child()[0]).Child()[0].className.indexOf("U_MD_DK_LTXOSIO") == -1) { return; } } //如果已经展开的处理 if ($(el).Child()[1]) { el.removeChild($(el).Child()[1]); } //打印所有需要打印的目录信息 for (i = 0; i < directorys.length; i++) { //得到打印文件夹的图标样式 if ((classes || "").length) { _Img = classes[i] || classes; } else { if ((directorys[i]["UserDirectoryEncrypt"] && directorys[i]["UserDirectoryEncrypt"] != userid)) { _Img = "U_MD_DK_LCJ"; } else { _Img = "U_MD_DK_LCW"; } } //创建左边树目录 _dtorydiv = $$("div", { "id": directorys[i]["UserDirectoryID"] ? "L" + directorys[i]["UserDirectoryID"] : "", "className": "U_MD_DK_LTXOA" }, _frag); _namediv = $$("div", { "className": "U_MD_DK_LTXOS", "style": { "paddingLeft": _padding + "px" }, //导航点击事件的处理 "onclick": U.UF.C.closure(function (directoryinfo, el) { U.UF.EV.stopBubble(); U.MD.DK.LL.leftTreeClick(directoryinfo, el, userid) }, [directorys[i], _dtorydiv]), //右键处理 "oncontextmenu": U.UF.C.closure(function (directoryinfo) { U.UF.EV.stopBubble(); U.UF.EV.stopDefault(); U.MD.DK.RM.rightMenu(this, directoryinfo, US.disk.UserDisk); }, [directorys[i]]) }, _dtorydiv); $$("div", { "className": "U_MD_DK_LTXOSI U_MD_DK_Img" }, _namediv); $$("div", { "className": "U_MD_DK_LCOI U_MD_DK_LTXOST U_MD_DK_Img " + _Img }, _namediv); //文件名 $$("div", { "className": "U_MD_DK_LTXOSN U_MD_D_Text_Abbreviation", "innerHTML": directorys[i].UserallDirectoryName, "ondblclick": U.UF.C.closure(function (directoryinfo) { U.UF.EV.stopBubble(); U.MD.DK.RE.rename(this, directoryinfo); }, [directorys[i]]) }, _namediv); } el.appendChild(_frag); } /** * 导航点击处理 * @param {object} 左边一级层级树目录的相关信息 * @param {element} 输出到那个区域 * @param {string} 当前用户ID **/ U.MD.DK.LL.leftTreeClick = function (fileinfo, el, userid) { var _childel = $(el).Child()[0]; //权限判断 //打开文件夹的图标高亮处理 if ($(_childel).Child()[0].className.indexOf("U_MD_DK_LTXOSIO") > -1) { $(_childel).Child()[0].className = "U_MD_DK_LTXOSI U_MD_DK_Img"; //图标展开的形式 //打开文件夹处理 var _contentel = $(_childel).next(); _childel.className = "U_MD_DK_LTXOS"//重新设置class if (_contentel[0]) { el.removeChild(_contentel[0]); //清除元素 } } else { U.MD.DK.LL.leftTreeHighlight(el); //左边树点击处理 $(_childel).Child()[0].className = "U_MD_DK_LTXOSI U_MD_DK_Img U_MD_DK_LTXOSIO"; //图标展开的形式 } //打开文件夹处理 U.MD.DK.LE.openFileDirectory(fileinfo, userid); } /** * 导航点击处理 * @param {object} 左边一级层级树目录的相关信息 * @param {element} 输出到那个区域 * @param {string} 当前用户ID **/ U.MD.DK.LL.leftTreeHighlight = function (el) { var i, _childel, _parentel = el ; //递归处理上级高亮处理 do { _parentel = el.parentNode; //获取高亮元素的上级父亲 _childel = $(_parentel).Child(); //获取该级的所有子节点 //如果在同一个文件夹下只能高亮一个文件目录,这样看起来才能显示当前点击的文件夹 for (i = 0; i < _childel.length; i++) { $(_childel[i]).Child()[0].className = el == _childel[i] ? "U_MD_DK_LTXOS U_MD_DK_LTXOSO" : "U_MD_DK_LTXOS"; } } while ((el = _parentel.parentNode) && el.id != "U_MD_DK_LTXO") } /** * 生成导航(面包屑导航) * @param {array} 所有要追加的导航元素 * @param {element} 导航的元素 * @param {string} 用户的id */ U.MD.DK.LL.printNavigation = function (navarray, el, userid) { var i, //用于循环 _frag = $$("frag"), //临时的panel _click //导航点击事件处理 ; el.innerText = ""; //清空导航区域 //循环打印导航 for (i = navarray.length - 1; i > -1; i--) { //创建一个导航, 如果导航是目录的导航,则点击的时候可以跳到指定的导航中 $$("div", { "className": "U_MD_DK_RYBO", "innerHTML": navarray[i]["UserallDirectoryName"], "onclick": U.UF.C.closure(function (nav) { U.MD.DK.LE.openFileDirectory(nav, userid); }, [navarray[i]]) }, _frag); } el.appendChild(_frag); //添加导航 //每一次导航追加的时候需要如果超过了大小则需要隐藏前面的导航 var _navchild = $(el).Child(); //导航元素 while (el.scrollHeight > 30) { _navchild[i].style.display = "none"; } } //#endregion