U.DK.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536
  1. Namespace.register("U.Dk"); //Disk的主命名空间
  2. //#region 初始化网盘
  3. //初始化网盘
  4. //
  5. //* @param {string} 用户id,可以是自己的用户id或者其他人的用户id。当为其他人的用户id时,为查看其他人的网盘信息
  6. //* @param {string} 目录id
  7. //* @param {string} 学习系统,博客目录,以后会删除不要。
  8. //* @returns {} 无
  9. //
  10. U.Dk.DiskLoad = function (userid, dirid) {
  11. //变量定义
  12. var _fileinfo, //文件信息
  13. _diskcontentdiv, //disk操作内容区域的元素
  14. _diskdiv, //disk整体元素
  15. _dirid = dirid, //目录id
  16. _isFirst, //导航到达时,判断是否为一级目录。如果为一级目录,则展开。
  17. _loginuserid = US.userInfo.userid || US.NU, //当前使用用户id
  18. _arriveDir, //根据dirid算出要到达的目录信息。
  19. _diskinfo = U.Dk.DiskOperatingSwitch(userid); //获取个人网盘的全局变量信息,返回类型为例:US.Disk.Disks["张三"]; //张三的网盘信息,张三需要用guid表示,US.Disk.Disks["95f7bacc-0b3a-4265-a2ea-15e066b97bf7"]
  20. //如果全局变量中有值,直接从全局变量中获取值。做这个目的是:用户已经生成弹框,直接从全局变量获取,否则,
  21. _diskdiv = $("#UD_SYW_" + userid)[0];
  22. //获取网盘右边的内容区域
  23. _diskcontentdiv = $("#UD_SYWT", _diskdiv)[0]; //获取元素内容区域
  24. if (userid) { //查看他人的文件,如果是在本地想打开自己的网盘必须先登录
  25. // 网盘数据为空的时候获取网盘的数据
  26. if (_diskinfo == null) { //网盘信息不存在,则加载网盘资料
  27. U.Dk.GetUserDisk(userid, dirid, _diskdiv, _diskcontentdiv); //加载网盘
  28. }
  29. //如果 不为空的话加载显示该网盘,_diskinfo[0] && _diskinfo.pdiv此判断是防止用户多次点击,多次加载数据
  30. else if (_diskinfo[0] && _diskinfo.pdiv) { //判断数据是否存在 && (!_selectElement || _selectElement == userid)
  31. U.Dk.Size(_diskdiv); //网盘大小设置
  32. _diskcontentdiv = $("#UD_SYWLTX", _diskinfo.pdiv)[0]; //清空头部导航栏
  33. _diskcontentdiv.innerText = "";
  34. U.Dk.LL.XWPDH([{ UserallDirectoryName: "我的协同", UserDirectoryID: "11111111-1111-1111-1111-111111111111" }, { UserallDirectoryName: "他人邀请", UserDirectoryID: "22222222-2222-2222-2222-222222222222"}], null, ["UD_SYWLTXOAIO", "UD_SYWLTXOAI"], _diskcontentdiv, userid);
  35. //打印左边树目录信息
  36. U.Dk.LL.XWPDH(_diskinfo[0].slice(0, 6), null, ["UD_SYWLCS", "UD_SYWLCF", "UD_SYWLCB", "UD_SYWLCT", "UD_SYWLCY", "UD_SYWLCP"], _diskcontentdiv, userid)
  37. ////初始化Disk用户资料,左边树目录上面区域,包括头像,用户名,追随按钮等。
  38. U.Dk.CSHYHWP(_diskinfo);
  39. //导航到达区域。因为现在是按需加载数据,不可能完全导航到达指定位置,则不做左边树目录展开功能。U.Json(_diskinfo[0]),给数组_diskinfo[0]赋予json方法。
  40. //var _tmp = new U.Json(_diskinfo[0]);
  41. //_arriveDir = _tmp.Select({ "UserDirectoryParentID": _dirid });
  42. //_arriveDir = U.Json.Select(_diskinfo[0],{ "UserDirectoryParentID": _dirid });
  43. //打开文件,目录及导航到达区域。因为现在是按需加载数据,不可能完全导航到达指定位置,则不做左边树目录展开功能
  44. U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_diskinfo[4][_dirid], userid]]]);
  45. }
  46. }
  47. else {
  48. alert("没有用户id!");
  49. }
  50. }
  51. //初始化网盘资料
  52. U.Dk.GetUserDisk = function (userid, dirid, diskdiv, diskcontentdiv) {
  53. // US.Disk.Disks 用户网盘数据前台存储的全局变量 该全局变量为一个数组 0为网盘所有目录的信息以数组形式 1为用户数组信息(0为当前用户基本信息集合,1为当前打开目录的id ,2为用户id,3未知,4网盘展示文件的格式形式样式),2为未知,3为未知 ,4、数据与0的数据是一样的,但是这里是以object形式展示的,这里可以更快的通过id去找指定的文件或者目录 pdiv为当前网盘用户的弹框
  54. var _loginuserid = US.userInfo.userid || US.NU; //登录用户的id,未登录为全0的Guid
  55. US.Disk.Disks[userid] = []; //定义用户网盘变量
  56. US.Disk.Disks[userid].pdiv = diskdiv; //以用户id设置全局变量,写入用户的操作硬盘的元素
  57. //dirid = U.Ut.isNumber(dirid) ? (dirid > -1 && dirid < 5 ? US.Disk.InitTree[dirid + (obj ? 2 : 0)][0] : US.FG) : dirid; //生成变量
  58. //数据库获取指定用户指定目录下的网盘数据
  59. U.A.Request(US.Auth, ["InitDisk", _loginuserid, userid, dirid], U.Dk.AsynCSXWP, [[diskcontentdiv, true], userid, dirid, _loginuserid]); //服务器加载
  60. }
  61. //异步获取
  62. U.Dk.AsynCSXWP = function (r) {
  63. //_loginid 当前登录用户id
  64. var i,
  65. context = r.context,
  66. _userid = context[1], //用户id
  67. _dirid = context[2], //目录id
  68. _loginuserid = context[3],
  69. _diskinfo = US.Disk.Disks[_userid]; //网盘的全局变量
  70. r = r.value;
  71. if (r) {
  72. //如果进来的用户是通过url进来,初始化变量的时候是用户名,这个时候把用户的全局变量改成以用户id作为标识的
  73. if (_userid != r[1].UserId) {
  74. $("#UD_SYW_" + _userid)[0].id = "UD_SYW_" + r[1].UserId;
  75. $("#U_D_" + _userid)[0].id = "U_D_" + r[1].UserId;
  76. _userid = r[1].UserId;
  77. }
  78. US.Disk.Disks[_userid] = _diskinfo;
  79. //把数据写入 US.Disk.Disks 这个全局变量中
  80. // U.D.SY.ET["Disk"]["SY"] = U.D.SY.ET["Disk"][_userid] = _diskinfo; // ; //添加
  81. _diskinfo = U.Dk.GUserBL(_userid, _dirid, null, r); //生成用户Disk变量
  82. //U.Dk.M.refreshfile(_dirid, r, _diskinfo); //撒选临时目录
  83. //如果成功获取到数据库里面的数据就把这些数据追加进去
  84. if (r[3]) {
  85. for (i = 0; i < r[3].length; i++) {
  86. _diskinfo[4][r[3][i].UserDirectoryID] = r[3][i];
  87. }
  88. }
  89. _diskinfo[1]["uid"] = _loginuserid; //使用用户的id,用于判断使用权限
  90. U.Dk.DiskLoad(_userid, _dirid); //打印网盘数据
  91. }
  92. else {
  93. U.Alert("帐号不存在...");
  94. $(_diskinfo.pdiv).remove();
  95. delete US.Disk.Disks[_userid];
  96. }
  97. }
  98. //初始化用户网盘音乐
  99. U.Dk.CSHYY = function (UIF, UTF) {
  100. var _UDOD,
  101. _userid = UIF.UserId || UIF.UserID,
  102. _UN = UIF.UserName,
  103. _UDE = U.D.SY.ET["FL"];
  104. if (_UDE[_userid]) {
  105. if (_userid == _UDE["userid"] && !UTF) {
  106. U.MPlayer.DKCSHYY();
  107. }
  108. else {
  109. U.MPlayer.YYLoad(US.MG, UIF, [[{ "UserallDirectoryName": _UN + "收听列表" }, [], _UDE[_userid]]]);
  110. }
  111. return _UDE[_userid];
  112. } //直接听取音乐
  113. else {
  114. U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "GetDiskHallData", US.MG, US.NU, 0, 1000], U.Dk.AsynCSHYY, [[$("#UD_SYMMO")[0], true], UIF]);
  115. // U.A.Request(US.Auth,"UseStudioDisk.GetUserFNew", [US.NU, US.MG, 0, 1000, _userid, ""], U.Dk.AsynCSHYY, [[$("#UD_SYMMO")[0], true], UIF]);
  116. } //获取网盘音乐
  117. }
  118. //获取音乐异步
  119. U.Dk.AsynCSHYY = function (r) {
  120. var _UDE,
  121. context = r.context,
  122. _UIF = context[1],
  123. _userid = _UIF.UserId || _UIF.UserID;
  124. r = r.value;
  125. U.D.SY.ET["FL"][_userid] = r;
  126. U.Dk.CSHYY(_UIF, true);
  127. }
  128. //生成用户Disk变量
  129. U.Dk.GUserBL = function (userid, dirid, diskdiv, r) {
  130. var i, _disktree = {}, //一级目录转换成网盘树目录的变量
  131. _diskdir = US.Disk.InitTree.concat(), //初始化一级目录
  132. _diskinfo = US.Disk.Disks[userid]; //指定的userid 的网盘全局变量
  133. //补充disk网盘的全局变量数据 补充左边初始化目录数据我的电脑等
  134. for (i = 0; i < _diskdir.length; i++) { //初始化查看
  135. _diskdir[i] = new U.Dk.M.Entity(_diskdir[i][0], _diskdir[i][1], _diskdir[i][2], _diskdir[i][3], _diskdir[i][4], _diskdir[i][5], _diskdir[i][6], _diskdir[i][7], _diskdir[i][8], _diskdir[i][9], _diskdir[i][10], _diskdir[i][11], _diskdir[i][12], _diskdir[i][13], _diskdir[i][14], _diskdir[i][15], _diskdir[i][16]);
  136. _disktree[_diskdir[i].UserDirectoryID] = _diskdir[i];
  137. };
  138. _diskinfo.length = 0;
  139. _diskinfo.unshift(_diskdir, [((!r[1].UserDirectoryID && r[1].UserId == US.userInfo.userid) ? US.userInfo : r[1]), dirid, userid, diskdiv, "Normal"], null, null, _disktree);
  140. if (userid == US.userInfo.userid) {
  141. U.Dk.SGBL(userid, _diskinfo);
  142. }
  143. return _diskinfo; //初始化目录添加
  144. }
  145. //把群设置成网盘的文件夹,方便用户在网盘中直接打开群文件夹
  146. U.Dk.SGBL = function (userid, UDE) {
  147. var i, _UME = US.Friend[2];
  148. if (_UME) {
  149. for (i = 0; i < _UME.length; i++) {
  150. UDE[0].splice(6, 0, (UDE[4][_UME[i].GroupManageID] = new U.Dk.M.Entity(_UME[i].GroupManageID, 0, userid, _UME[i].GroupManageName, _UME[i].GroupManageName, "folder", null, U.MT.formatDateToArray(new Date()), U.UP.FFT("folder")[1], 1, null, null, 0, "", _UME[i].GroupManageID)));
  151. }
  152. }
  153. }
  154. //通过用户名搜索用户网盘信息
  155. U.Dk.getUserDiskByName = function (username) {
  156. var i, _userdisk, //获取的用户硬盘信息
  157. _diskinfo = US.Disk.Disks; //存储打开用户的网盘的信息
  158. for (i in _diskinfo) { //循环获取
  159. _userdisk = _diskinfo[i][1]; //查看用户网盘信息
  160. if (_userdisk && _userdisk[0].UserName == username) { //判断网盘信息的用户名是否等于传入的用户名
  161. return _userdisk[0];
  162. }
  163. }
  164. return {};
  165. }
  166. //初始化Disk用户资料,左边树目录上面区域,包括头像,用户名,追随按钮等。
  167. U.Dk.CSHYHWP = function (UDE) {//
  168. if ($("#UD_SYWRZ", UDE.pdiv)[0]) {
  169. var i, _UAE, _UCB,
  170. _UDTD,
  171. _userid = US.userInfo.userid,
  172. _UDOD = UDE.pdiv,
  173. _UDSD = $("#UD_SYWRZ", _UDOD)[0],
  174. _UIF = UDE[1][0],
  175. _UDED = $("#UD_SYWLTS", _UDOD).Child(),
  176. _UDAD = $("#UD_SYWLO", _UDOD).Child(), _UDCD = $("div", _UDAD[0]);
  177. //用户网盘信息设置
  178. _UDCD[0].innerText = _UDED[0].innerText = "";
  179. $$("img", { "onerror": U.M.ImgError, "title": "点击查看", "src": U.M.GetImgU(_UIF.UserThumbnailImageHead), "onclick": [[U.M.StopBubble], [U.U.I.ViewOtherUserInfo, [UDE[1][2]]]] }, _UDCD[0]); //[_UDCD[0], _UDED[0]]
  180. $$("img", { "onerror": U.M.ImgError, "title": "点击查看", "src": U.M.GetImgU(_UIF.UserThumbnailImageHead), "onclick": [[U.M.StopBubble], [U.U.I.ViewOtherUserInfo, [UDE[1][2]]]] }, _UDED[0]);
  181. _UDED[1].innerText = _UDCD[2].innerText = _UIF.UserNickName || _UIF.UserName; _UDCD[3].innerText = _UIF.UserIndividualitysignature || "暂无个人简介";
  182. if (_UIF.UserId != US.userInfo.userid) {
  183. _UDCD.addAttrArray({ "onclick": [[U.F.M.AddFriend, [_UIF]]], "style": { "display": "block"} }, 4);
  184. }
  185. else {
  186. _UDCD[4].style.display = "none";
  187. }
  188. //文件个数展示
  189. // _UDCD = $("div", _UDAD[1]);
  190. // _UAE = U.Dk.GetWPXX(UDE);
  191. // for (i = 0; i < 7; i++) {
  192. // _UDTD = _UDCD[(i + 1) * 4 - 1];
  193. // _UDTD.innerText = _UAE[i] > -1 ? _UAE[i] : 0; _UDTD = $(_UDTD).Parent();
  194. // _UDTD.onclick = U.M.apply(_UDTD, [[U.Dk.LL.MRHYHWP, ([_UDTD, (i - 2 ? (i > 1 ? i - 1 : i) : 6), UDE[1][2]])]]);
  195. // }
  196. //文件大小
  197. _UDCD = $("div", _UDAD[3]);
  198. _UAE = [_UIF.UserDiskSpace + "M", _UIF.FileSize + "B"];
  199. _UAE[2] = U.UP.GetSfileS(_UAE[0]) - U.UP.GetSfileS(_UAE[1]);
  200. for (i = 0; i < _UAE.length; i++) {
  201. _UAE[i] = U.UP.FileSize(_UAE[i]);
  202. }
  203. _UDCD[4].innerText = _UAE[2];
  204. _UDCD[7].innerText = _UAE[1];
  205. _UDCD[9].innerText = "所有文件:" + _UAE[1];
  206. _UDCD[10].innerText = "总大小:" + _UAE[0];
  207. //分享
  208. _UAE = [[(UDE[1][2] == US.userInfo.userid ? "" : ("回到")) + "我的分享", _UIF.FilesCount], ["好友查看", US.Friend[1] ? (US.Friend[1].length > 999 ? "999+" : US.Friend[1].length) : 0], ["群/讨论组", US.Friend[2] ? (US.Friend[2].length > 999 ? "999+" : US.Friend[2].length) : 0]];
  209. _UDCD = $("#UD_SYWRTC", _UDOD).Child();
  210. for (i = 0; i < _UDCD.length - 3; i++) {
  211. $(_UDCD[i]).addAttrArray({ onclick: [(i ? [U.Dk.LE.RecordNav, ([[[U.Dk.VW.XWPDYH, ([US.Friend[i], _UDSD])]]])] : [U.D.DT.YYDK, (["Disk", { "userid": _userid, "directoryid": US.FG}])])], innerHTML: _UAE[i][0] + "<span>(" + (_UAE[i][1] < 0 ? 0 : _UAE[i][1]) + ")</span>" });
  212. }
  213. _UDCD[4].onclick = U.M.apply(_UDCD[4], [[U.Dk.LE.aDomain, [UDE[1][2], UDE]]]);
  214. _UDCD[3].onclick = U.M.apply(_UDCD[3], [[U.Dk.DI.WPRMZL, [1, null, _userid]]]); //用户信息 好友 网盘 多少
  215. _UDCD = $("div", $("#UD_SYWRT", _UDOD)[0]);
  216. _UAE = ["folder", "txt", "uw", "ue"];
  217. _UDCD[5].onclick = U.Dk.RE.TSXXML;
  218. for (i = 1; i < 5; i++) {
  219. _UDCD[i].onclick = U.M.apply(_UDCD[i], [[U.Dk.RE.WPXJWJ, [_UAE[i - 1], null, UDE[1][2]]]]);
  220. }
  221. (_UDCD[0].onmousedown = U.M.apply(this, [[U.Dk.UP.SCXWPOP, [_UDCD[0], { "DS": true, "ID": "UD_SYWRTS" }, UDE[1][2]]]]))(); //新建文件和上传
  222. //设置前进后退
  223. _UDCD = $("div", $("#UD_SYWRY", _UDOD)[0]);
  224. _UAE = [[U.AFB.DrawBack, ["Disk" + UDE[1][2]]], [U.AFB.GoForward, ["Disk" + UDE[1][2]]]];
  225. for (i = 0; i < _UAE.length; i++) {
  226. _UDCD[i].onclick = U.M.apply(_UDCD[i], [_UAE[i]]);
  227. } //设置前进后退
  228. //功能绑定
  229. _UDAD = $("#UD_SYWRKZ", _UDOD).Child();
  230. for (i = 0; i < _UDAD.length; i++) {
  231. _UDAD[i].onclick = U.M.apply(_UDAD[i], [[i ? U.Dk.HP.XWPDYQH : U.Dk.HP.WPWJPX, (i ? [_UDAD[i], i - 1, UDE[1][2]] : ["UserDirectoryAddTime", U.MT.SizeComparison, UDE[1][2]])]]);
  232. }
  233. (_UDAD = $("#UD_SYSXZTSIO", _UDOD)[0]).onclick = U.M.apply(_UDAD, [[U.Dk.S.SSWPBD, [$("input", $(_UDAD).Parent())[0], _UDSD, UDE[1][2]]]]);
  234. U.Dk.CSHYHWPXS($("#UD_SYWRM", _UDOD)[0], UDE); //查询
  235. (_UDAD = $("input", _UDOD)[2]).onclick = U.M.apply(this, [[U.Dk.VW.XWPDYLXZ, [_UDAD, _UDSD, UDE[1][2]]]]);
  236. //右键菜单
  237. $("#UD_SYWM", _UDOD)[0].style.display = "none";
  238. (_UDAD = $(_UDSD)).addAttrArray({ "onmouseup": [(_UAE = [U.Dk.RM.WPYJCD, [_UDAD[0], null, null, null, UDE[1][2]]])], "onmousedown": [_UAE] });
  239. _UDOD.onclick = U.M.apply(_UDAD, [[U.Dk.RM.WPYJCD, [null, null, null, null, UDE[1][2]]]]); //取消
  240. }
  241. }
  242. //设置详细视图菜单区域事件
  243. U.Dk.CSHYHWPXS = function (UDOD, UDE) {
  244. var _UDTD = $(UDOD),
  245. _UDAD = _UDTD.childg(),
  246. _UAE = ["",
  247. [null, U.M.apply(this, U.Dk.HP.WPWJNPX), UDE[1][2]], "",
  248. [null, U.M.apply(this, [[U.Dk.HP.WPWJPXLX, ["UserName"]]]),
  249. UDE[1][2]],
  250. [null, U.M.apply(this, [[U.Dk.HP.WPWJPXLX, ["UserDirectoryExtendType"]]]),
  251. UDE[1][2]],
  252. ["UserDirectorySize", U.UP.IsSizeS, UDE[1][2]], ["UserDirectoryAddTime",
  253. U.MT.SizeComparison, UDE[1][2]]];
  254. _UCB = U.M.apply(this, [[U.Dk.HP.DXSTSY, [_UDTD[0], _UDTD.next()[0], UDE, 1]]]);
  255. for (i = 0; i < _UAE.length; i++) {
  256. (_UDTD = _UDAD[i * 2]).onclick = _UAE[i] ? U.M.apply(_UDTD, [[U.Dk.HP.WPWJPX, _UAE[i]]]) : null; (_UDTD = _UDAD[i * 2 + 1]);
  257. (_UDTD) && (_UDTD.onmousedown = U.M.apply(this, [[U.D.DragAb, [_UDTD, { tf: true, upcb: _UCB}]]]));
  258. }
  259. }
  260. //网盘大小调整
  261. U.Dk.Size = function (UDOD, userid) {
  262. var i, _UH, _UW, _UDOD, _UDTD, _UDAD, _UDCD,
  263. _UGE = US.Disk.Disks;
  264. for (i in _UGE) {
  265. if (_UGE.hasOwnProperty(i) && (userid == null || i == userid) && (_UGE[i][2] == null && (_UDOD = _UGE[i].pdiv) && (UDOD == null || UDOD == _UDOD) && $(_UDOD).Parent({ usform: "true" }).style.display != "none")) { //变化使用
  266. _UDTD = $("#UD_SYWRM", _UDOD);
  267. _UDOD = $(_UDOD);
  268. _UDAD = _UDOD.childg()[0];
  269. _UDAD = $(_UDAD).Child();
  270. _UW = _UDOD[0].offsetWidth;
  271. (_UDOD = _UDAD[2]).style.width = (_UW = _UW - _UDAD[0].offsetWidth - 3) + "px";
  272. _UDAD = $(_UDOD).childg()[1];
  273. _UDAD = $(_UDAD).Child(); //设置展示区域的长度
  274. _UDAD[2].style.height = (_UH = _UDOD.offsetHeight - _UDAD[2].offsetTop - 2) + "px";
  275. $(_UDAD[0]).Child()[3].style.width = _UW - 500 + "px";
  276. (_UGE && _UGE[1]) && (U.Dk.HP.DXSTSY(_UDTD[0], _UDTD.next()[0], _UGE));
  277. }
  278. }
  279. }
  280. /*
  281. 功能:用户操作切换,可以查看多个用户的硬盘,所以需要切换。登录用户和非登录用户有不同权限。
  282. 参数一:用户id
  283. 参数二:登录用户的用户名,未登录用户传递""。 只有这U.D.DT.YYDK函数中才有UN的定义。
  284. 返回值:当前操作的用户树目录。
  285. 问题:在用户登录时至少调用了五次,为什么?
  286. */
  287. U.Dk.DiskOperatingSwitch = function (userid, username) {
  288. userid = userid || US.userInfo.userid; //如果有用户id,则userid为用户id,否则为登录用户id。
  289. if (userid) {
  290. var i, _userinfo, //需要返回的用户网盘信息
  291. _diskinfo = US.Disk.Disks; //_UCE为包含了所有用户硬盘信息的集合。
  292. if (_diskinfo && !_diskinfo[userid]) { //判断用户的网盘信息是否可以通过userid找到
  293. for (i in _diskinfo) { //循环网盘信息
  294. if (_diskinfo[i] && _diskinfo[i][1] && _diskinfo[i][1][0] && _diskinfo[i][1][0].UserName == username) { //这里也会有null情况,因为这个变量的定义在U.A.Request之前,所以可能会存在还没有获取数据就在此进入这个函数的情况
  295. userid = _diskinfo[i][1][0].UserId;
  296. }
  297. }
  298. }
  299. US.Disk.UserDisk = _diskinfo[userid]; //设置当前使用的网盘用户的信息为得到的用户id
  300. return _diskinfo[userid];
  301. }
  302. }
  303. //#endregion
  304. //#region 论坛网盘处理
  305. /**
  306. * 初始化论坛网盘
  307. *
  308. * @param {string} 目录id
  309. * @param {object} 论坛网盘数据集合
  310. * @return {object} 命名空间
  311. */
  312. U.Dk.LTWP = function (UDID, UDE) {
  313. //U.Dk.DiskLoad(UDE["UserDirectoryID"], UDID, UDE); //初始化网盘资料
  314. //如果用户id不等于guid同时userid又存在的话,那么通过用户名去获取用户的id
  315. // if (userid && userid.length != 36) {
  316. // userid = U.Dk.getUserDiskByName(userid)["UserId"] || userid;
  317. // }
  318. //变量定义
  319. var _fileinfo, //文件信息
  320. _diskcontentdiv, //disk操作内容区域的元素
  321. _diskdiv, //disk整体元素
  322. _dirid = dirid, //目录id
  323. _loginuserid = US.userInfo.userid || US.NU, //当前使用用户id
  324. _diskinfo = U.Dk.DiskOperatingSwitch(userid); //获取网盘信息
  325. //获取网盘弹框
  326. if (_diskinfo && _diskinfo.pdiv) {
  327. _diskdiv = _diskinfo.pdiv;
  328. }
  329. else {
  330. _diskdiv = $((obj ? "#UD_SYWO_" : "#UD_SYW_") + userid)[0];
  331. if (_diskinfo) {
  332. _diskinfo.pdiv = _diskdiv
  333. }
  334. }
  335. //获取网盘右边的内容区域
  336. _diskcontentdiv = $("#" + (obj ? "UD_SYWOCRC" : "UD_SYWT"), _diskdiv)[0]; //获取元素内容区域
  337. /*
  338. //获取目录id
  339. if (dirid == null || dirid.toString().length != 32) { //如果传入的目录id不为guid
  340. if (_diskinfo && _diskinfo[1] && _diskinfo[1][1]) { //判断是否已经加载成功网盘数据了,如果成功就获取当前网盘打开的目录
  341. _dirid = _diskinfo[1][1];
  342. }
  343. else {
  344. _dirid = US.FG;
  345. }
  346. }
  347. else {
  348. _dirid = dirid;
  349. }
  350. dirid = _dirid;
  351. */
  352. if (userid || (!U.U.L.isLogin(3))) { //查看他人的文件,如果是在本地想打开自己的网盘必须先登录
  353. // 网盘数据为空的时候获取网盘的数据
  354. if (_diskinfo == null) { //网盘信息不存在,则加载网盘资料
  355. U.Dk.GetUserDisk(userid, dirid, _diskdiv, _diskcontentdiv, obj); //加载网盘
  356. }
  357. //如果 不为空的话加载显示该网盘
  358. else if (_diskinfo[0] && _diskinfo.pdiv) { //判断数据是否存在 && (!_selectElement || _selectElement == userid)
  359. (obj ? U.Dk.PbSize : U.Dk.Size)(_diskdiv); //大小设置
  360. if (obj) { //初始化pb网盘 不理
  361. _diskinfo[2] = obj;
  362. U.Dk.LTWPDH(obj, _diskinfo);
  363. U.Dk.SYWPBJYH(_diskinfo[0].slice(5), $("#UD_SYWOCLDU", _diskinfo.pdiv)[0]);
  364. }
  365. else { //初始化个人网盘
  366. _diskcontentdiv = $("#UD_SYWLTX", _diskinfo.pdiv)[0]; //清空头部导航栏
  367. _diskcontentdiv.innerText = "";
  368. U.Dk.LL.XWPDH(_diskinfo[0].slice(0, 6), null, ["UD_SYWLCS", "UD_SYWLCF", "UD_SYWLCB", "UD_SYWLCT", "UD_SYWLCY", "UD_SYWLCP"], _diskcontentdiv, userid)
  369. // .style.display = "block";
  370. U.Dk.CSHYHWP(_diskinfo);
  371. _diskcontentdiv = $("#UD_SYWRZ", _diskinfo.pdiv)[0];
  372. }
  373. (dirid.length == 36) && (dirid = _diskinfo[0].objIndexOf({ "UserDirectoryID": dirid }));
  374. dirid = dirid < 0 ? _dirid : dirid;
  375. if (U.Ut.isString(_dirid) && (dirid == -1 || dirid > 5)) { //指定目录到达
  376. _fileinfo = _diskinfo[4][_dirid];
  377. //如果为文件使用出发处理
  378. if (_fileinfo.filetype) {
  379. U.Dk.LE.RecordNav[[U.Dk.LE.OpenFileDirectory, [_diskinfo[4][_fileinfo.UserDirectoryParentID], userid]]]; //目录指引到指定的位置
  380. U.Dk.LE.OpenFileDirectory(_diskinfo[4][_dirid], userid); //文件查看处理
  381. }
  382. //文件夹处理
  383. else {
  384. U.Dk.LE.RecordNav[[U.Dk.LE.OpenFileDirectory, [_diskinfo[4][_dirid], userid]]];
  385. }
  386. }
  387. else if (Guid.isGuid(dirid) || Guid.isGuid(_dirid)) { //指引到达网盘信息
  388. U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_$(_diskinfo[0]).Select({ "UserDirectoryParentID": _dirid }), { UserDirectoryID: _dirid }, userid]]]);
  389. }
  390. else { //导航目录点击
  391. _fileinfo = _diskinfo[2] ? ["UD_SYWOC", dirid < 0 ? 0 : dirid - 1] : ["UD_SYWLTXO", dirid < 0 ? 1 : dirid];
  392. if (_fileinfo[0] == "UD_SYWOC") {
  393. _fileinfo[0] = $("#" + _fileinfo[0], _diskinfo.pdiv).Child()[_fileinfo[1]].onclick();
  394. }
  395. else {
  396. _fileinfo[0] = $("#" + _fileinfo[0], _diskinfo.pdiv).childg()[_fileinfo[1]];
  397. _fileinfo[0] = $(_fileinfo[0]).Child()[0].onclick();
  398. }
  399. }
  400. }
  401. }
  402. }
  403. //初始化论坛资料
  404. U.Dk.LTWPDH = function (UDE, UGE) {
  405. if ($("#UD_SYWOC")[0], UGE.pdiv) {
  406. var i,
  407. _UDKD = UGE.pdiv,
  408. _UDTD = $("#UD_SYWOC", _UDKD),
  409. _UDOD = $("div", _UDTD[0]),
  410. _UAE;
  411. //设置文件数量
  412. for (i = 0; i < 5; i++) {
  413. _UDTD = _UDOD[i * 4 + 3];
  414. (_UDTD = $(_UDTD).Parent()).onclick = U.M.apply(_UDTD, [[U.Dk.LL.MRHYHWP, [_UDTD, (i ? i + 1 : 6), UGE[1][2]]]]);
  415. } //_UDTD.innerText = _UAE[i] < 0 ? 0 : _UAE[i];
  416. //论坛信息设置
  417. _UDOD = $("#UD_SYWOM", _UDKD).Child();
  418. _UDCD = $("div", _UDOD[1]); _UDCD[1].innerText = UDE["UserDirectoryName"];
  419. _UDCD[5].innerText = "分类:" + ((UDE.Parent || "").UserDirectoryName || "学习系统"); //_UDCD[4].innerText = UDE.UserDirectoryDescript || "版块暂时还未添加简介";
  420. _UDCD = $("div", _UDCD[6]); _UAE = [UDE.ACF, UGE[1][0].FilesCount, UDE.DCF];
  421. for (i = 0; i < 3; i++) {
  422. _UDCD[i * 3 + 2].innerHTML = _UAE[i];
  423. }
  424. //事件赋值
  425. (_UDAD = $("#UD_SYWOMCSI", _UDKD)[0]).onclick = U.M.apply(_UDAD, [[U.Dk.S.SSWPBD, [$("input", $(_UDAD).Parent())[0], $("#UD_SYWOCRC", _UDKD)[0], UGE[1][2]]]]);
  426. _UDCD = $("div", _UDOD[2]);
  427. _UAE = [[U.Dk.RE.WPXJWJ, ["folder", (_UDTD = _UDKD), UGE[1][2]]],
  428. [U.Dk.RE.WPXJWJ, ["uw", _UDTD, UGE[1][2]]],
  429. [U.Dk.RE.WPXJWJ, ["ue", _UDTD, UGE[1][2]]],
  430. [U.M.StopBubble], [U.Dk.HP.XWPDYQH, [_UDCD[5], 0, UGE[1][2]]],
  431. [U.Dk.HP.XWPDYQH, [_UDCD[6], 1, UGE[1][2]]]];
  432. U.Dk.CSHYHWPXS($("#UD_SYWRMO", _UDKD)[0], UGE);
  433. (_UDCD[0].onmousedown = U.M.apply(_UDCD[0], [[U.Dk.UP.SCXWPOP, [_UDCD[0], { "ID": "UD_SYWRTSO", "DS": true }, UGE[1][2]]]]))();
  434. for (i = 1; i < _UDCD.length; i++) { _UDCD[i].onclick = U.M.apply(_UDCD[i], [_UAE[i - 1]]); } //详细视图使用 //设置上传,和新建文件夹 视图切换
  435. (_UDAD = $("input", _UDKD)[1]).onclick = U.M.apply(this, [[U.Dk.VW.XWPDYLXZ, [_UDAD, $("#UD_SYWOCRC", _UDKD)[0], UGE[1][2]]]]);
  436. //右键
  437. (_UDCD = $("#UD_SYWOCRC", _UDKD)[0]).onmousedown = _UDCD.onmouseup = U.M.apply(_UDCD, [[U.Dk.RM.WPYJCD, [_UDCD, null, null, null, UGE[1][2]]]]); //右键菜单
  438. $("#UD_SYWMO", _UDKD)[0].onclick = _UDTD.onclick = U.M.apply(_UDTD, [[U.Dk.RM.WPYJCD, [null, null, null, null, UGE[1][2]]]]); //取消
  439. U.AFB.RGoL("Disk" + UGE[1][2]); //前进后退
  440. }
  441. }
  442. //网盘论坛大小设置
  443. U.Dk.PbSize = function (UDOD, UDID) {
  444. var i, _UH, _UW, _UDOD, _UDAD, _UDE,
  445. _UGE = US.Disk.Disks;
  446. for (i in _UGE) { //所有的网盘
  447. if (_UGE.hasOwnProperty(i) && (_UDE = _UGE[i]) && _UDE[2] && ((UDID == null || UDID == i)) && ((UDOD == null || UDOD == _UDE.pdiv) && (_UDOD = _UDE.pdiv))) {
  448. _UDOD = $(_UDOD);
  449. _UDAD = _UDOD.Child();
  450. _UH = _UDOD[0].offsetHeight;
  451. _UW = _UDOD[0].offsetWidth;
  452. _UDAD[2].style.height = _UH - 71 + "px";
  453. _UDAD = $(_UDAD[2]).Child();
  454. _UDAD[2].style.width = _UW - _UDAD[0].offsetWidth - 6 + "px";
  455. _UDAD = $(_UDAD[2]).Child();
  456. (_UDE) && (U.Dk.HP.DXSTSY(_UDAD[0], _UDAD[1], _UDE));
  457. _UDAD[1].style.height = _UH - _UDAD[1].offsetTop - 71 + "px"; //设置详细视图大小变化
  458. }
  459. }
  460. }
  461. //论坛编辑用户打印
  462. U.Dk.SYWPBJYH = function (UDE, UDOD) {
  463. var i, j = 0,
  464. _UAE = {},
  465. _UDFD = $$("frag");
  466. UDOD.innerText = "";
  467. for (i = 0; (i < UDE.length && j < 8); i++) {
  468. if (UDE[i]["UserId"] && !_UAE[UDE[i]["UserId"]]) {
  469. $$("img", { "onerror": U.M.ImgError, "title": UDE[i]["UserNickName"] || UDE[i]["UserName"], "src": U.M.GetImgU(UDE[i].UserThumbnailImageHead), "onclick": [[U.M.StopBubble], [U.U.I.ViewOtherUserInfo, [UDE[i].UserId]]] }, _UDFD);
  470. _UAE[UDE[i]["UserId"]] = true; j++;
  471. }
  472. }
  473. UDOD.appendChild(_UDFD);
  474. }
  475. //#endregion