123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- 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
|