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