/* 存在问题 1、非能打开文件处理 */ Namespace.register("U.Dk.LE"); //Disk左键事件命名空间 //#region 左键事件处理 //#region 当前网盘打开 //文件点击,文件夹点击,及url导航到达区域。 /* 文件管理区域点击事件,暂时分为:音乐、图片、视频、文件。 参数一:fileinfo为单击的文件对象 参数二:UAE,打开的不是一个文件夹,打开的是最近访问区域。 群文件查看,最近访问。 参数四:userid为用户id。 参数五:UOE,左边树目录与右边文件夹目录点击同步。 */ U.Dk.LE.OpenFileDirectory = function (fileinfo, userid) { var i, _pictureinfo, _extension, _rightClick, _head, _navArea, _uploadel, _navarray; var _content; var _userid = userid || US.userInfo.userid; //得到用户id var _diskinfo = U.Dk.DiskOperatingSwitch(_userid); //根据用户id找到其所有硬盘数据。 //如果为文件,则直接打开文件,否则,是目录,打开目录 if (fileinfo.filetype) { //生成导航 //文件夹展示 U.M.StopBubble(); //阻止冒泡 _extension = fileinfo["UserDirectoryExtendType"].toLocaleLowerCase(); //得到文件扩展名 //根据文件类型进入不同的应用。 var _types = US.Disk.ApplicationTypes; var _applicationame; //判断后缀名归属于哪一个应用程序。得到应用程序的名称。 for (i in _types) { if (_types[i].types.indexOf(_extension) > -1) { //判断文件类型是否归属该应用 _applicationame = i; break; } } //根据应用名称打开不同的应用。 switch (_applicationame) { case "music": //播放制定的音乐 //_diskinfo[4]代表所有文件及文档的另外一种组织方法。 if (_diskinfo[4][fileinfo.UserDirectoryParentID].Child) { //当前播放的音乐文件 U.MPlayer.YYLoad(fileinfo["UserDirectoryParentID"], _diskinfo[1][0]); //播放文件夹下面所有音乐。 } else { U.MPlayer.TYY(fileinfo); //播放单首音乐。 } break; case "image": //图片查看 _pictureinfo = fileinfo["UseFilesServerThumbnailName"] ? [fileinfo] : U.Dk.LE.OIMG(fileinfo); //_pictureinfo[0] 为所有图片,_pictureinfo[1]为当前文件在所有文件中的位置。 U.D.Img.Img(fileinfo, _pictureinfo[0], _pictureinfo[1], { "TF": 2 }); break; case "video": U.Dk.LE.OV(fileinfo); //视频播放器。 break; //视频处理 case "text": U.D.DT.YYDK("Txt", fileinfo, _diskinfo); //弹出网盘 break; case "usoffice": //如果是云端系统自有格式文件。 var _type = { "ue": "Excel", "uw": "Word", "txt": "Txt"}[_extension]; U.D.DT.YYDK(_type, fileinfo, _diskinfo); //弹出网盘 break; default: //windows上传的不可识别的文件打开,直接跳转到下载页面。 U.Dk.LE.OFT(fileinfo.UserFilesServerName, fileinfo.UserallDirectoryName, _userid, fileinfo.UserDirectoryID); break; } } else {//打印目录信息 _content = $("#UD_SYWRZ", _diskinfo.pdiv)[0]; //在"指定的张三的网盘里面查找该id" _content.innerText = ""; //得到当前打开的目录的id. _diskinfo[1][1] = fileinfo["UserDirectoryID"]; //设置当前打开目录的id.看全集变量US.Disk.Disks //如果当前打开目录的id存在,设置url重写。 if (_diskinfo[1][1]) { U.D.G.UrlWrite(["disk", _diskinfo[1][0].UserName, _diskinfo[1][1]], _diskinfo[1][0].UserNickName + "的网盘"); } //网盘 //如果有子文件夹或者文件,则显示,否则,去数据库里面取数据. if (fileinfo.Child) { //已加载文件 _diskinfo[1][5] = fileinfo.Child; //把加载到的信息保存到全局变量中。 //打印数据,用计时器的原因是可以解决文件夹过多卡顿的问题。 setTimeout(function () { U.Dk.VW.XWPDY(_diskinfo[1][5], _content); }, 0); //设置在空白地方右键单击,弹出菜单的功能。 _rightClick = [U.Dk.RM.WPYJCD, [_content, null, null, null, userid]]; //右键调用的函数 $(_content).addAttrArray({ "onmouseup": _rightClick, "onmousedown": _rightClick }); //添加右键属性。 //头部导航打印 _navarray = U.Dk.HP.GetAncestors(fileinfo, _diskinfo); //获取需要输出的导航信息,这里直接获取这个目录一条线上的祖先元素 U.Dk.LL.SCDXWPDH(_navarray, $("#UD_SYWRYB", _diskinfo.pdiv)[0], userid); //打印出导航数据 //设置网盘上传按钮点击事件。 _head = $("#UD_SYWRT", _diskinfo.pdiv)[0]; //得到硬盘的头部区域 _uploadel = $("div", _head); //根据头部区域得到导航区域 U.Dk.UP.SCXWPOP(_uploadel[0], { "DS": true, "ID": "UD_SYWRTS" + (_diskinfo[2] ? "O" : "") }, userid); //给头部的上传按钮设置事件。 } //去数据库取文件夹及文件信息,异步加载 else { U.Dk.RE.GXWPCKXS(userid, fileinfo, _content); } } //设置文件及文件夹的修改时间,打开文件或者文件夹时,把打开文件的时间记录到数据库。以实现最近访问文件,最近访问文件夹的功能。fileinfo.filetype == 0 表示文件夹 fileinfo.filetype == 1表示文件 if (fileinfo.UserDirectoryDeep > 1) { //发送到数据库做记录。 if (fileinfo.filetype == 0) { U.A.Request(US.Auth, ["UpdateDirectoryInfo", UDE.UserDirectoryID, ""], U.M.apply()); } else { U.A.Request(US.Auth, ["UpdateFileInfo", UDE.UserDirectoryID, ""], U.M.apply()); } fileinfo["UserDirectoryModifyTime"] = U.MT.toTimeStamp(); //修改前台的时间 } } //默认的域名弹框 U.Dk.LE.ApplyDns = function (UDID) { $("#U_Help").addAttrArray({ style: { display: "block" }, onclick: [[U.Dk.LE.ApplyDns, [UDID]]] }); } //点击桌面的申请域名 U.Dk.LE.ApplyDnsEnd = function (UDID) { if (!U.U.L.isLogin(3) && UDID) { U.UI.Confirm("是否申请域名生成站点", [U.Dk.LE.aDnsF, [UDID]]) } } //申请域名判断 U.Dk.LE.aDomain = function (userid, UGE) { if (!U.U.L.isLogin(3)) { //登录使用 var _UDID = UGE[1][1], _UUID = US.userInfo.userid; if (UGE[4][_UDID].UserId == _UUID || userid == _UUID) { //本人ftp群文件夹允许 var _UDE = U.Dk.DiskOperatingSwitch(userid); (_UDE[1][1]) && (U.UI.Confirm("是否申请域名生成站点", [U.Dk.LE.aDnsF, [_UDE[1][1]]])); //当前目录申请 } else { U.Alert("非本人目录无法建立站点"); } } } //判断当前目录是否生成域名解析 U.Dk.LE.GetDns = function (UDID, UCB) { //U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "UD_S_CountDns", US.userInfo.userid, UDID], U.Dk.LE.AsynGetDns, ["", UDID, UCB]); // U.A.Request(US.Auth,"UseStudioDisk.CountDns", [US.userInfo.userid, UDID], U.Dk.LE.AsynGetDns, ["", UDID, UCB]); } ///获取dns解析次数异步 //U.Dk.LE.AsynGetDns = function (r) { // var context = r.context, // _UDID = context[1], // _UCB = context[2]; // r = r.value; // if (r[1]) { U.Alert("该目录已经生成了站点"); } // else if (_UCB) { _UCB(_UDID); } //else if (r[0] > 5) { U.Alert("已经在本地网盘挂载了5个域名"); } //} //弹出申请框 U.Dk.LE.aDnsF = function (UDID) { var _UDE, _UDTD, _UDMD, _UDSD; _UDTD = $$("div", { "className": "UD_Disk_A UC_TF", "onselectstart": "U.M.StopBubble();return true;" }); $$("div", { "className": "UD_Disk_AT", "innerHTML": "生成网盘域名" }, _UDTD); _UDMD = $$("div", { "className": "UD_Disk_AC", "innerHTML": "等待域名生成..." }, _UDTD); _UDE = U.UI.Form({ draw: false, max: false, id: "UD_W_T", title: "申请域名", content: _UDTD, style: { width: "400px", height: "200px"} }); U.Dk.LE.eaDomain(UDID, _UDMD); } //确定申请域名 U.Dk.LE.eaDomain = function (UDID, UDOD) { //U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "UD_I_AddDns", US.userInfo.userid, UDID, 0], U.Dk.LE.AsyneaDomain, ["", UDID, UDOD]); //U.A.Request(US.Auth,"UseStudioDisk.AddDns", [US.userInfo.userid, UDID], U.Dk.LE.AsyneaDomain, ["", UDID, UDOD]); } //申请域名异步 //U.Dk.LE.AsyneaDomain = function (r) { // var context = r.context, _UDID = context[1], _UDOD = context[2]; r = r.value; // if (r[0]) { // $(_UDOD).addAttrArray({ "innerHTML": "http://" + r[0].UserDomain + ".1473.cn", style: { cursor: "pointer" }, title: "点击跳转", "onclick": U.M.apply(null, "window.open('" + "http://" + r[0].UserDomain + ".1473.cn" + "')") }); // } // else { U.Alert("你建站超过指定次数请您重新建立。"); } //} //#endregion //#region 其它网盘资料使用 //!------------------------------此函数未被调用。。如果确实没有,直接删除----------- //(其它网盘文件[搜索])点击执行事件 U.Dk.LE.DXWPDYQT = function (UDE, UDOD) { var _UAE, _UGE = US.Disk.Disks; (!_UGE[US.NU]) && (_UGE[US.NU] = [[]]); _UGE = _UGE[US.NU][0]; if (UDE.filetype) { U.Dk.LE.OpenFileDirectory(UDE, US.NU); } else {//获取单个文件夹的信息 _UAE = _$(_UGE).Select({ "UserDirectoryID": UDE.UserDirectoryID })[0]; if (_UAE) { //#error 这里有问题 到时候要改掉 U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_$(_UGE).Select({ "UserDirectoryParentID": UDE.UserDirectoryID }), _$(_UGE).RecurD(UDE, { "UserDirectoryID": "" }, "UserDirectoryParentID"), US.NU]]]); } //打印文件 else {//获取指定文件夹文件 _UGE.push(UDE); U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "GetChildsByDirectoryId", UDE.UserId, UDE.UserDirectoryID, US.NU], U.Dk.LE.AsynDXWPDYQT, ["", UDE, UDOD]); // U.A.Request(US.Auth,"UseStudioDisk.GetChildsByDirectoryId", [UDE.UserId, UDE.UserDirectoryID, US.NU], U.Dk.LE.AsynDXWPDYQT, ["", UDE, UDOD]); } } } //其它网盘文件夹的信息 U.Dk.LE.AsynDXWPDYQT = function (r) { var context = r.context, _UDE = context[1], _UDOD = context[2]; r = r.value; U.Ut.AddObj(r, { "UserId": _UDE.UserId, "UserThumbnailImageHead": _UDE.UserThumbnailImageHead, "UserNickName": _UDE.UserNickName }); //设定指定的值 _UDOD.innerText = ""; US.Disk.Disks[US.NU][0] = US.Disk.Disks[US.NU][0].concat(r); U.Dk.LE.DXWPDYQT(_UDE, _UDOD); } //#endregion //#region 指定类型点击事件 /* 在文件夹中单击图片时,把文件夹下所有图片文件选取出来。用户所有的硬盘数据保存在树目录变量US.Disk.UserDisk中。 参数1:文件所在的目录id 参数2:目录对象,数据库目录表一条数据。 返回值:图片二维数组。 */ U.Dk.LE.OIMG = function (fileinfo) { var _diskinfo = US.Disk.UserDisk; //获取当前用户网盘信息 var _files = _diskinfo[4][fileinfo.UserDirectoryParentID].Child; //获取当前用户打开图片目录的文件信息 var _poto = _$(_files).Like({ "UserDirectoryExtendType": US.Disk.ApplicationTypes.image.types.join(",") }); //选取所有的图片图片 var _i = _poto.objIndexOf({ "UserDirectoryID": fileinfo.UserDirectoryID }); //获取文件所在的图片的第几个 return [_poto, _i]; //返回 } //点击视屏处理 U.Dk.LE.OV = function (UDE) { var _UTP = UDE.UserDirectoryExtendType || UDE.UserFilesExtendName, _USN = UDE.UserFilesServerName, _UTF = U.M.isPlay(_UTP); if (_UTP == "video") { window.open(UDE.UserFilesServerName); } else { if (_UTF) { window.open("/userpages/video.htm?url=" + UDE["UserFilesServerName"]); } else if (_UTF === 0) { U.Alert("该格式无法播放"); } else { U.Alert("浏览器版本太低。"); } } } //点击文件打开处理 U.Dk.LE.OFT = function (USN, UN, userid, UFID, UTF) { var _UTF = US.userInfo.userid == userid, _UMT = USN.split(".")[1], _UDOD = event ? event.srcElement : null; U.Alert("正在努力的打开中,请稍后"); window.open("/userpages/U_OF.aspx?FildID=" + UFID); //页面打开 // window.open("/userpages/U_OF.aspx?fileservername=" + USN + "&filename=" + UN + "&UserId=" + US.userInfo.userid + "&FildID=" + UFID + "&usrd=" + Math.random()); //window.open("http://disk.1473.cn/" + UFID + "/" + (UTF || "")); } //异步查看 U.Dk.LE.AsynOFT = function (r) { var context = r.context, _USN = context[1], _UN = context[2], _userid = context[3], _UFID = context[4], _UDOD = context[5]; r = r.value; if (r) { U.Dk.LE.OFT(_USN, _UN, _userid, _UFID, true); } else { U.Dk.RE.WPXZWJZJO(_UFID, "file"); } } //保存到数据 U.Dk.LE.USOS = function (UDID, UTH, UFT, UCB, UTF, UPID, UIN) { var _UDPD, _UTF, _UGE = US.Disk.UserDisk, _userid = _UGE[1][2], _UYID = US.userInfo.userid, _UDE = U.Ut.isString(UDID) ? (_UGE[4][UDID] ? _UGE[4][UDID] : UDID) : UDID; UDID = _UDE ? _UDE.UserDirectoryID : UDID; if (_UDE.UserFilesID != undefined) { UDID = _UDE.UserFilesID; _UDE.UserFilesServerName = "" } if (U.MS.Guid.test(UDID) && _UDE && (_UYID == _userid || _UDE.UserId == _UYID || _UDE.GroupID == _UDE.UserId)) { //直接保存文件 (UIN = UIN || "") && (UIN = UIN.replaceHtmlSign() + (_UDE.filetype ? "." + _UDE.UserDirectoryExtendType : "")); // _$(_UGE[4]).Select({ "UserDirectoryID": UDID }, null, 1)[0]; if (_userid == _UGE[1][0].UserId) { if (_UDE.UsOffice != UTH) { parent.U.A.Request(US.Auth, ["SaveFileContent", UDID, UTH, UIN], parent.U.Dk.LE.AsynUSOS, ["", UDID, UTH, _UDE, UIN]); U.Alert("数据同步中.."); } } else { U.Alert("拒绝访问"); } (UCB) && (U.M.apply(this, UCB)()); } else { if (!U.Dk.RE.QXWJPD(_UYID, "txt", UPID)) { _UGE[1][1] = UPID = (userid == _userid) ? US.DG : US.FG; }; //选择目录 if (UIN) { return U.Dk.RE.AF(UFT, UIN, U.M.apply(this, UCB), US.userInfo.userid, true); } //直接新建 else { _UGE = US.Disk.UserDisk; _UTF = $(_UGE.pdiv).Parent({ usform: "true" }).style.display == "none"; _UDPD = U.D.DT.YYDK("Disk", { "userid": _userid, "directoryid": UDID }); UCB = UCB || []; //指定的目录保存 (_UTF) && (UCB.push[U.D.CloseWindow, [_UDPD]]); U.Dk.RE.CMB("txt", U.M.apply(this, UCB), _UDPD, _userid, true); //新建文件保存 } } } //新建文件后保存 U.Dk.LE.NUSOS = function (UDST, UFT, UGE, UCT, UREQ) { var _UFID = UCT[1]["UserDirectoryID"]; UGE = UGE || window.frames["US_ExcelFrame"].U.Excel.SY; U.Dk.LE.USOS(_UFID, UDST); UGE["ID"] = _UFID; //保存数据 //Word变量保存 } //异步保存 U.Dk.LE.AsynUSOS = function (r) { var _UDE, context = r.context, _UFID = context[1], _UST = context[2], _UDE = context[3], _USN = context[4]; r = r.value; if (r) { _$(_UDE).Change({ "UsOffice": _UST, "": "", "UserDirectoryModifyTime": U.MT.toTimeStamp() }); (_USN) && (U.Dk.RE.AsynMRN({ value: true, context: ["", _UDE, _USN] })); U.Alert("修改成功.."); } //修改保存值 else { U.Alert("磁盘空间已满,无法修改内容"); } } //获取音乐文件和目录 U.Dk.LE.GM = function (UDE) { var i, _UCE, _UME = [], _UGE = US.Disk.UserDisk; (!UDE.UserDirectoryID) && (UDE = _UGE[4][UDE]); UDE = [UDE]; for (i = 0; i < UDE.length; i++) { _UCE = _UGE[4][UDE[i].UserDirectoryID].Child; _UME.push([UDE[i], _$(_UCE).Select({ "filetype": 0 }), _$(_UCE).Select({ "UserDirectoryExtendType": "mp3" })]); } return _UME; } //#endregion //#endregion