Namespace.register("U.Dk.HP"); //网盘功能使用区域 //#region 网盘功能区域 //网盘文件排序 U.Dk.HP.WPWJPX = function (UTF, UCB, userid) { //↑ ↓ var i, j, _UFT, _UGE = U.Dk.DiskOperatingSwitch(userid), _UDE = _UGE[1][1] ? _$(_UGE[0]).Select({ "UserDirectoryParentID": _UGE[1][1] }) : _UGE[1][5].concat(), _UDOD = $("#" + (_UGE[2] ? "UD_SYWOCRC" : "UD_SYWRZ"), _UGE.pdiv)[0], _UDAD = $(_UDOD).Child(), _UL = _UDAD.length, _UDFD = $$("frag"); if (_UDAD.length) { for (i = 0; i < _UL; i++) { if (_UDAD[i].id.indexOf(_UDE[i]["UserDirectoryID"]) == -1) { _UFT = true; break; } }; if (!_UFT) { if (UTF) { U.M.Sequence(_UDE, UTF, UCB, UTF === "UserDirectoryAddTime" ? -1 : 1); } else if (UCB) { _UDE = UCB(_UDE); } } //排序 for (i = 0; i < _UL; i++) { _UDFD.appendChild(_UDAD[(j = _UDAD.objIndexOf({ "id": "R" + _UDE[i]["UserDirectoryID"] }))]); _UDAD.splice(j, 1)[0]; }; _UDOD.appendChild(_UDFD); } } //按照文件类型排序 U.Dk.HP.WPWJPXLX = function (UTF, UDE) { var i, _UTP, _UAE = {}; for (i = 0; i < UDE.length; i++) { _UTP = UDE[i][UTF]; (!_UAE[_UTP]) && (_UAE[_UTP] = []); _UAE[_UTP].push(UDE[i]); } return _$(_UAE).Merger(); //此处已经返回,下面的代码有什么意义? //详细视图普通视图 if (!UTM) { if (_UDTD && $(_UDTD).Parent().id.indexOf(_UGE[1][1]) > -1) { _UDTD.onclick(); } else { U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_UGE[1][1] ? _$(_UGE[0]).Select({ "UserDirectoryID": _UGE[1][1] })[0] : _UGE[1][5], userid]]]); } } else { _UDPD.style.width = ""; } } //文件名字排序 U.Dk.HP.WPWJNPX = function (UDE) { _$(UDE).sort("UserDirectoryName", 1); return UDE; } //详细视图和普通视图切换 U.Dk.HP.XWPDYQH = function (UDOD, UTF, userid, UTM) { var i, _UDSD, _UGE = U.Dk.DiskOperatingSwitch(userid), _UDTD = U.D.SY.ET["Disk"]["SY"]["DJ"], _UDAD = $($(UDOD).Parent()).Child(), _UDPD = $("#" + (_UGE[2] ? "UD_SYWOCRC" : "UD_SYWRZ"), _UGE.pdiv)[0], _UDE = UTF ? ["UD_SYWRKZOP UD_SYWRKZOPI", "UD_SYWRKZOS"] : ["UD_SYWRKZOP", "UD_SYWRKZOS UD_SYWRKZOSI"]; if (_UGE[1][1] || _UGE[1][5].length) { _UGE[1][4] = UTF ? "Details" : "Normal"; for (i = 0; i < _UDE.length; i++) { _UDAD[_UDAD.length - 1 - i].className = "UD_SYWRKZOI UD_SYID " + _UDE[i]; } //点亮标题 (_UDSD = $("#UD_SYWRM" + (_UGE[2] ? "O" : ""), _UGE.pdiv))[0].style.display = UTF ? "block" : "none"; _UDSD.find("input")[0]; if (_UGE[1][5].length) { _UDPD.style.height = $(_UDPD).Parent(2).offsetHeight - _UDPD.offsetTop - 2 + "px"; } if (!UTM) { if (_UDTD && (_UDTD = $(_UDTD).Parent()).id.indexOf(_UGE[1][1]) > -1) { $(_UDTD).Child()[0].onclick(); } else { U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_UGE[1][1] ? _$(_UGE[0]).Select({ "UserDirectoryID": _UGE[1][1] })[0] : _UGE[1][5], userid]]]); } } else { _UDPD.style.width = ""; } //详细视图普通视图 } else { U.Alert("本区域没有视图模式"); } } //详细视图的大小变化使用 U.Dk.HP.DXSTSY = function (UDOD, UDTD, UDE, UTF) { var i, j, k, _UCE, _UDSD, _UDID = UDE[1][1], _UW = $(UDOD).width(), _UDAD = $(UDOD).Child(), _USE = [[UDOD], $(UDTD).Child()], _UDFD = $$("frag"), _UAE = [0.1, 0.2, 0.1, 0.15, 0.15, 0.15, 0.14]; UTF = UTF || (_UDAD[0].style.width ? 1 : 0); if (UDE[1][4] == "Details" && (_UDID && UDE[1][5].length) && ((UTF && (_UDID ? _$(UDE[0]).Select({ "UserDirectoryParentID": _UDID }).length : UDE[1][5].length)) || !UTF)) { for (i = UTF || 0; i < _USE.length; i++) { for (j = 0; j < _USE[i].length; j++) { _UDSD = $(_USE[i][j]).Child(); for (k = 0; k < _UAE.length; k++) { _UDSD[k * (-(i - 2))].style.width = UTF ? _UDAD[k * 2].style.width : (_UW * _UAE[k] + (i - 2) + "px"); } } } UDTD.style.width = UDOD.style.width; UDTD.style.minWidth = UDOD.style.minWidth; } } //整体点击 U.Dk.HP.WPZTJD = function (UDOD) { var i, _UDID = $("input", UDOD), _UE = U.M.GetMousep(), _UTF = UDOD.componentFromPoint(_UE["MX"], _UE["MY"]); for (i = 0; i < _UDID.length; i++) { _UDID[i].blur(); } // (_UTF == "outside" || _UTF.indexOf("scroll") > -1) && (U.M.StopBubble()); } /** * 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限 * @param {string} 操作的目录id * @param {array} 用户的网盘信息 * @return {array} 文件的权限信息 * 0 目录id * 1-n 所有涉及到权限信息 ( 2只允许下载 1只允许上传) **/ U.Dk.HP.ZDQXWPHQ = function (dirid, diskinfo) { var i, _permi, _fileinfo = diskinfo[4][dirid], //获取当前操作目录的目录信息 _dirs = [], _returns = []; //该目录未加载或者该目录id加载的不是目录,如我的协同、最近文件等 if (_fileinfo) { //获取当前操作的目录所有的祖先文件夹 _dirs = U.Dk.HP.GetAncestors(_fileinfo, diskinfo); _returns.push(_dirs); for (i = 0; i < _dirs.length; i++) { _permi = _dirs[i].UserDirectoryEncrypt; //获取该目录的操作权限的方式 if (_permi == "1" || _permi == "2") { //判断是否有上传下载权限 _returns.push(_permi); break; } } //获取权限 } return _returns; } /** * 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限 * @param {string} 操作的目录id * @param {array} 用户的网盘信息 * @param {object} 在该目录下操作的文件 * @return {array} 得到操作权限数组 * 0 判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载 * 1 判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载 * 2 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限 * 3 获取上传的目录用户对应的临时目录 * 4 判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里 */ U.Dk.HP.WPCZQXHQ = function (dirid, diskinfo, fileinfo) { diskinfo = diskinfo || US.Disk.UserDisk; //需要操作的当前用户的网盘信息 var _isupload, //判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载 _isdownload, //判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载 _tempdir, //获取上传的目录用户对应的临时目录 _isfileuser; //判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里 //获取需要操作的文件夹,如果是传入的目录id为空,获取当前需要操作的目录id if (!dirid) { dirid = diskinfo[1][1]; } var _userid = US.userInfo.userid, _permis = U.Dk.HP.ZDQXWPHQ(dirid, diskinfo); //判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限 //根据上面调用的函数返回的目录的信息,如果没有返回说明操作的不是目录 if (_permis[0]) { var _dirinfo = _permis[0][_permis[0].length - 1]; //获取目录使用最大的祖先目录 //该目录加载的形式有问题 主要是导航直接到达的目录 if (_dirinfo) { //判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载 _isupload = (diskinfo[1][2] == _userid) || (_dirinfo.UserDirectoryID == US.FG && _permis[1] != "2"); //判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载 _isdownload = (_userid == diskinfo[1][2]) || (_permis[1] != "1"); //获取上传的目录用户对应的临时目录 _tempdir = U.Dk.HP.LSWJCL(diskinfo); if (fileinfo) { //判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里 _isfileuser = (fileinfo.UserId != _userid) && (_userid != diskinfo[1][2]) && _$(US.Friend[2]).Select({ "GroupManageID": _dirinfo.UserDirectoryID })[0].GroupManageCreateUserID == _userid; } return [_isupload, _isdownload, _permis, _tempdir, _isfileuser]; } } //文件不存在默认返回无权限操作处理 return [false, false, false, false, false]; } //获取所有目录文件的文件和文件大小 U.Dk.HP.MLWJSY = function (UDE, UGE) { var i, j, _UME = [0], _UCE = _$(UDE).Select({ "filetype": 1 }), _USE = _$(UDE).Select({ "filetype": 0 }); UGE = UGE || US.Disk.UserDisk[0]; for (i = 0; i < _USE.length; i++) { for (j = 0; j < UGE.length; j++) { if (UGE[j].UserDirectoryParentID == _USE[i].UserDirectoryID) { (UGE[j].filetype == 1 ? (_UME[0] += UGE[j].UserDirectorySize, _UCE) : _USE).push(UGE[j]); } } } _UME.unshift(_UCE); _UME.push(_USE); return _UME; } //判断是否为临时文件夹 #error U.Dk.HP.LSWJCL = function (diskinfo) { var _userinfo = diskinfo[1][0]; return _userinfo.DHID + "," + _userinfo.BHID + "," + (_userinfo.UserDiskND || []).join(","); } /** * 获取目录树的一条线上的所有祖先 * @param {string} 操作的目录id * @param {array} 用户的网盘信息 * @param {object} 在该目录下操作的文件 * @return {array} 得到操作权限数组 * 0 判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载 * 1 判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载 * 2 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限 * 3 获取上传的目录用户对应的临时目录 * 4 判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里 */ U.Dk.HP.GetAncestors = function (fileinfo, diskinfo) { var _ancestors = [], //这里是需要返回的祖先 _dirid = fileinfo.UserDirectoryID //搜索的目录id ; //不断的循环寻找自己的祖先 while (diskinfo[4][_dirid]) { _ancestors.push(diskinfo[4][_dirid]); //找到后追加 _dirid = diskinfo[4][_dirid].UserDirectoryParentID; //设置搜索的目录id为上级的id不断的向上搜索祖先 } return _ancestors; //返回自己的祖先元素 } //递归获取目录 U.Dk.HP.DGHQML = function (userid, UDID) { var _UGE = U.Dk.DiskOperatingSwitch(userid); } //#region 网盘拖动 //网盘拖动变化 U.Dk.HP.WPTDSY = function (UDOD, UCB) { U.D.DragAb(UDOD, { scb: UCB }); } //#endregion //#region /** * 弹出选择网盘还是上传 * * @param {string} 文件分类的id -----------------US.DG * @param {string} * @param {object} 传参 -----------------FCP 上传成功处理 -----------------CB 选择文件处理 */ U.Dk.HP.FileSwitch = function (UDID, UTF, UDE, UP) { var _UXY = U.M.GetMousep(), _UGE = U.Dk.DiskOperatingSwitch(US.userInfo.userid), _UME = $("body").GetElementInfo(), _UDOD = $$("div", { "className": "UD_SYQZOCC" }), _UDTD = $$("div", { "className": "UD_SYQZOCCL", "style": { "border": "0"} }, _UDOD), _UDSD = $$("div", { "className": "UD_SYQZOCCLH" }, _UDTD); _UDSD.onmousedown = U.M.apply(_UDSD, [[U.Dk.UP.SCXWPOP, [_UDSD, { "GS": "UP", "FCP": UDE.FCP, "URL": "http://main.1473.cn/USupfile.ashx?iframename=UseStudioEditor", "ID": Guid.newGuid() }, US.userInfo.userid, true]]]); $$("span", { "innerHTML": "↑" }, _UDSD); $$("span", { "className": "UD_SYQZOCCLO", "innerHTML": "本地上传" }, _UDSD); if (_UGE) { _UDTD = $$("div", { "className": "UD_SYQZOCCL", "id": "UD_SYQZOCCL" }, _UDOD); $$("div", { "className": "UD_SYQZOCCLI UD_SYWLCT UD_SYID" }, _UDTD); $$("span", { "className": "UD_SYQZOCCLO", "innerHTML": "云盘添加", "onclick": [[U.Dk.VW.CCWPXZK, [UDID, { onclick: UDE.CB }, UTF]]] }, _UDTD); } //弹出选择框 U.UI.Form({ draw: false, min: false, max: false, right: "true", attr: { "onmousedown": U.M.StopBubble }, del: "remove", style: { width: _UGE ? "261px" : "130px", height: "85px", top: _UXY["Y"] + (UP ? 10 : -100) / (_UGE ? 1 : 2) + _UME["ST"] + "px", left: _UXY["X"] - 130 + _UME["SL"] + "px" }, content: _UDOD, title: "文件选择", hst: { style: { "padding": "0 0 0 10px"} }, bst: { "style": { overflow: "hidden"} } }); _UDSD.onmousedown(); //加上上传控件 } /** * 弹出选择网盘还是上传 * * @param {string} 文件的后缀 * @return {object} */ U.Dk.HP.GetIcon = function (extendtype) { var i, _application = US.Disk.ApplicationTypes; //获取所有打开应用的信息 //循环信息中找到指定的应用的信息 for (i in _application) { //找到后缀名对应的程序信息 if (_application[i].types.indexOf(extendtype) > -1) { return _application[i]; //返回应用的信息 } } return _application["unknownfile"]; //如果是本站未知的后缀直接归属于文件 } //#endregion