123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- /*
- 存在问题
- 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
|