U.DK.HP.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. Namespace.register("U.Dk.HP"); //网盘功能使用区域
  2. //#region 网盘功能区域
  3. //网盘文件排序
  4. U.Dk.HP.WPWJPX = function (UTF, UCB, userid) { //↑ ↓
  5. var i, j, _UFT,
  6. _UGE = U.Dk.DiskOperatingSwitch(userid),
  7. _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");
  8. if (_UDAD.length) {
  9. for (i = 0; i < _UL; i++) {
  10. if (_UDAD[i].id.indexOf(_UDE[i]["UserDirectoryID"]) == -1) {
  11. _UFT = true; break;
  12. }
  13. };
  14. if (!_UFT) {
  15. if (UTF) {
  16. U.M.Sequence(_UDE, UTF, UCB, UTF === "UserDirectoryAddTime" ? -1 : 1);
  17. }
  18. else if (UCB) {
  19. _UDE = UCB(_UDE);
  20. }
  21. } //排序
  22. for (i = 0; i < _UL; i++) {
  23. _UDFD.appendChild(_UDAD[(j = _UDAD.objIndexOf({ "id": "R" + _UDE[i]["UserDirectoryID"] }))]);
  24. _UDAD.splice(j, 1)[0];
  25. };
  26. _UDOD.appendChild(_UDFD);
  27. }
  28. }
  29. //按照文件类型排序
  30. U.Dk.HP.WPWJPXLX = function (UTF, UDE) {
  31. var i, _UTP, _UAE = {};
  32. for (i = 0; i < UDE.length; i++) {
  33. _UTP = UDE[i][UTF];
  34. (!_UAE[_UTP]) && (_UAE[_UTP] = []);
  35. _UAE[_UTP].push(UDE[i]);
  36. }
  37. return _$(_UAE).Merger(); //此处已经返回,下面的代码有什么意义?
  38. //详细视图普通视图
  39. if (!UTM) {
  40. if (_UDTD && $(_UDTD).Parent().id.indexOf(_UGE[1][1]) > -1) {
  41. _UDTD.onclick();
  42. }
  43. else {
  44. U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_UGE[1][1] ? _$(_UGE[0]).Select({ "UserDirectoryID": _UGE[1][1] })[0] : _UGE[1][5], userid]]]);
  45. }
  46. }
  47. else {
  48. _UDPD.style.width = "";
  49. }
  50. }
  51. //文件名字排序
  52. U.Dk.HP.WPWJNPX = function (UDE) {
  53. _$(UDE).sort("UserDirectoryName", 1); return UDE;
  54. }
  55. //详细视图和普通视图切换
  56. U.Dk.HP.XWPDYQH = function (UDOD, UTF, userid, UTM) {
  57. var i, _UDSD,
  58. _UGE = U.Dk.DiskOperatingSwitch(userid),
  59. _UDTD = U.D.SY.ET["Disk"]["SY"]["DJ"],
  60. _UDAD = $($(UDOD).Parent()).Child(),
  61. _UDPD = $("#" + (_UGE[2] ? "UD_SYWOCRC" : "UD_SYWRZ"), _UGE.pdiv)[0],
  62. _UDE = UTF ? ["UD_SYWRKZOP UD_SYWRKZOPI", "UD_SYWRKZOS"] : ["UD_SYWRKZOP", "UD_SYWRKZOS UD_SYWRKZOSI"];
  63. if (_UGE[1][1] || _UGE[1][5].length) {
  64. _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]; } //点亮标题
  65. (_UDSD = $("#UD_SYWRM" + (_UGE[2] ? "O" : ""), _UGE.pdiv))[0].style.display = UTF ? "block" : "none"; _UDSD.find("input")[0];
  66. if (_UGE[1][5].length) { _UDPD.style.height = $(_UDPD).Parent(2).offsetHeight - _UDPD.offsetTop - 2 + "px"; }
  67. if (!UTM) {
  68. if (_UDTD && (_UDTD = $(_UDTD).Parent()).id.indexOf(_UGE[1][1]) > -1) {
  69. $(_UDTD).Child()[0].onclick();
  70. }
  71. else {
  72. U.Dk.LE.RecordNav([[U.Dk.LE.OpenFileDirectory, [_UGE[1][1] ? _$(_UGE[0]).Select({ "UserDirectoryID": _UGE[1][1] })[0] : _UGE[1][5], userid]]]);
  73. }
  74. }
  75. else { _UDPD.style.width = ""; } //详细视图普通视图
  76. }
  77. else { U.Alert("本区域没有视图模式"); }
  78. }
  79. //详细视图的大小变化使用
  80. U.Dk.HP.DXSTSY = function (UDOD, UDTD, UDE, UTF) {
  81. var i, j, k, _UCE, _UDSD,
  82. _UDID = UDE[1][1],
  83. _UW = $(UDOD).width(),
  84. _UDAD = $(UDOD).Child(),
  85. _USE = [[UDOD], $(UDTD).Child()],
  86. _UDFD = $$("frag"),
  87. _UAE = [0.1, 0.2, 0.1, 0.15, 0.15, 0.15, 0.14];
  88. UTF = UTF || (_UDAD[0].style.width ? 1 : 0);
  89. if (UDE[1][4] == "Details" && (_UDID && UDE[1][5].length) && ((UTF && (_UDID ? _$(UDE[0]).Select({ "UserDirectoryParentID": _UDID }).length : UDE[1][5].length)) || !UTF)) {
  90. for (i = UTF || 0; i < _USE.length; i++) {
  91. for (j = 0; j < _USE[i].length; j++) {
  92. _UDSD = $(_USE[i][j]).Child();
  93. for (k = 0; k < _UAE.length; k++) {
  94. _UDSD[k * (-(i - 2))].style.width = UTF ? _UDAD[k * 2].style.width : (_UW * _UAE[k] + (i - 2) + "px");
  95. }
  96. }
  97. }
  98. UDTD.style.width = UDOD.style.width;
  99. UDTD.style.minWidth = UDOD.style.minWidth;
  100. }
  101. }
  102. //整体点击
  103. U.Dk.HP.WPZTJD = function (UDOD) {
  104. var i,
  105. _UDID = $("input", UDOD),
  106. _UE = U.M.GetMousep(),
  107. _UTF = UDOD.componentFromPoint(_UE["MX"], _UE["MY"]);
  108. for (i = 0; i < _UDID.length; i++) {
  109. _UDID[i].blur();
  110. } // (_UTF == "outside" || _UTF.indexOf("scroll") > -1) && (U.M.StopBubble());
  111. }
  112. /**
  113. * 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限
  114. * @param {string} 操作的目录id
  115. * @param {array} 用户的网盘信息
  116. * @return {array} 文件的权限信息
  117. * 0 目录id
  118. * 1-n 所有涉及到权限信息 ( 2只允许下载 1只允许上传)
  119. **/
  120. U.Dk.HP.ZDQXWPHQ = function (dirid, diskinfo) {
  121. var i, _permi,
  122. _fileinfo = diskinfo[4][dirid], //获取当前操作目录的目录信息
  123. _dirs = [],
  124. _returns = [];
  125. //该目录未加载或者该目录id加载的不是目录,如我的协同、最近文件等
  126. if (_fileinfo) {
  127. //获取当前操作的目录所有的祖先文件夹
  128. _dirs = U.Dk.HP.GetAncestors(_fileinfo, diskinfo);
  129. _returns.push(_dirs);
  130. for (i = 0; i < _dirs.length; i++) {
  131. _permi = _dirs[i].UserDirectoryEncrypt; //获取该目录的操作权限的方式
  132. if (_permi == "1" || _permi == "2") { //判断是否有上传下载权限
  133. _returns.push(_permi); break;
  134. }
  135. } //获取权限
  136. }
  137. return _returns;
  138. }
  139. /**
  140. * 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限
  141. * @param {string} 操作的目录id
  142. * @param {array} 用户的网盘信息
  143. * @param {object} 在该目录下操作的文件
  144. * @return {array} 得到操作权限数组
  145. * 0 判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载
  146. * 1 判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载
  147. * 2 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限
  148. * 3 获取上传的目录用户对应的临时目录
  149. * 4 判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里
  150. */
  151. U.Dk.HP.WPCZQXHQ = function (dirid, diskinfo, fileinfo) {
  152. diskinfo = diskinfo || US.Disk.UserDisk; //需要操作的当前用户的网盘信息
  153. var _isupload, //判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载
  154. _isdownload, //判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载
  155. _tempdir, //获取上传的目录用户对应的临时目录
  156. _isfileuser; //判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里
  157. //获取需要操作的文件夹,如果是传入的目录id为空,获取当前需要操作的目录id
  158. if (!dirid) {
  159. dirid = diskinfo[1][1];
  160. }
  161. var _userid = US.userInfo.userid,
  162. _permis = U.Dk.HP.ZDQXWPHQ(dirid, diskinfo); //判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限
  163. //根据上面调用的函数返回的目录的信息,如果没有返回说明操作的不是目录
  164. if (_permis[0]) {
  165. var _dirinfo = _permis[0][_permis[0].length - 1]; //获取目录使用最大的祖先目录
  166. //该目录加载的形式有问题 主要是导航直接到达的目录
  167. if (_dirinfo) {
  168. //判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载
  169. _isupload = (diskinfo[1][2] == _userid) || (_dirinfo.UserDirectoryID == US.FG && _permis[1] != "2");
  170. //判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载
  171. _isdownload = (_userid == diskinfo[1][2]) || (_permis[1] != "1");
  172. //获取上传的目录用户对应的临时目录
  173. _tempdir = U.Dk.HP.LSWJCL(diskinfo);
  174. if (fileinfo) {
  175. //判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里
  176. _isfileuser = (fileinfo.UserId != _userid) && (_userid != diskinfo[1][2]) && _$(US.Friend[2]).Select({ "GroupManageID": _dirinfo.UserDirectoryID })[0].GroupManageCreateUserID == _userid;
  177. }
  178. return [_isupload, _isdownload, _permis, _tempdir, _isfileuser];
  179. }
  180. }
  181. //文件不存在默认返回无权限操作处理
  182. return [false, false, false, false, false];
  183. }
  184. //获取所有目录文件的文件和文件大小
  185. U.Dk.HP.MLWJSY = function (UDE, UGE) {
  186. var i, j,
  187. _UME = [0],
  188. _UCE = _$(UDE).Select({ "filetype": 1 }),
  189. _USE = _$(UDE).Select({ "filetype": 0 });
  190. UGE = UGE || US.Disk.UserDisk[0];
  191. for (i = 0; i < _USE.length; i++) {
  192. for (j = 0; j < UGE.length; j++) {
  193. if (UGE[j].UserDirectoryParentID == _USE[i].UserDirectoryID) {
  194. (UGE[j].filetype == 1 ? (_UME[0] += UGE[j].UserDirectorySize, _UCE) : _USE).push(UGE[j]);
  195. }
  196. }
  197. }
  198. _UME.unshift(_UCE); _UME.push(_USE); return _UME;
  199. }
  200. //判断是否为临时文件夹 #error
  201. U.Dk.HP.LSWJCL = function (diskinfo) {
  202. var _userinfo = diskinfo[1][0];
  203. return _userinfo.DHID + "," + _userinfo.BHID + "," + (_userinfo.UserDiskND || []).join(",");
  204. }
  205. /**
  206. * 获取目录树的一条线上的所有祖先
  207. * @param {string} 操作的目录id
  208. * @param {array} 用户的网盘信息
  209. * @param {object} 在该目录下操作的文件
  210. * @return {array} 得到操作权限数组
  211. * 0 判断该目录是否允许下载 1、自己建立的目录是可以上传的 2、ftp中没有限制只允许上传的是可以下载
  212. * 1 判断该目录是否允许上传 1、自己建立的目录是可以下载的 2、没有限制只允许上传的可以下载
  213. * 2 判断是否具有添加网盘的操作权限 判断是否有添加的权限 和 获取的权限
  214. * 3 获取上传的目录用户对应的临时目录
  215. * 4 判断操作的文件是否有本人有关 包含是本人创建、本人网盘里、在本人创建的群里
  216. */
  217. U.Dk.HP.GetAncestors = function (fileinfo, diskinfo) {
  218. var _ancestors = [], //这里是需要返回的祖先
  219. _dirid = fileinfo.UserDirectoryID //搜索的目录id
  220. ;
  221. //不断的循环寻找自己的祖先
  222. while (diskinfo[4][_dirid]) {
  223. _ancestors.push(diskinfo[4][_dirid]); //找到后追加
  224. _dirid = diskinfo[4][_dirid].UserDirectoryParentID; //设置搜索的目录id为上级的id不断的向上搜索祖先
  225. }
  226. return _ancestors; //返回自己的祖先元素
  227. }
  228. //递归获取目录
  229. U.Dk.HP.DGHQML = function (userid, UDID) {
  230. var _UGE = U.Dk.DiskOperatingSwitch(userid);
  231. }
  232. //#region 网盘拖动
  233. //网盘拖动变化
  234. U.Dk.HP.WPTDSY = function (UDOD, UCB) {
  235. U.D.DragAb(UDOD, { scb: UCB });
  236. }
  237. //#endregion
  238. //#region
  239. /**
  240. * 弹出选择网盘还是上传
  241. *
  242. * @param {string} 文件分类的id
  243. -----------------US.DG
  244. * @param {string}
  245. * @param {object} 传参
  246. -----------------FCP 上传成功处理
  247. -----------------CB 选择文件处理
  248. */
  249. U.Dk.HP.FileSwitch = function (UDID, UTF, UDE, UP) {
  250. var _UXY = U.M.GetMousep(),
  251. _UGE = U.Dk.DiskOperatingSwitch(US.userInfo.userid),
  252. _UME = $("body").GetElementInfo(),
  253. _UDOD = $$("div", { "className": "UD_SYQZOCC" }),
  254. _UDTD = $$("div", { "className": "UD_SYQZOCCL", "style": { "border": "0"} }, _UDOD),
  255. _UDSD = $$("div", { "className": "UD_SYQZOCCLH" }, _UDTD);
  256. _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]]]);
  257. $$("span", { "innerHTML": "↑" }, _UDSD);
  258. $$("span", { "className": "UD_SYQZOCCLO", "innerHTML": "本地上传" }, _UDSD);
  259. if (_UGE) {
  260. _UDTD = $$("div", { "className": "UD_SYQZOCCL", "id": "UD_SYQZOCCL" }, _UDOD);
  261. $$("div", { "className": "UD_SYQZOCCLI UD_SYWLCT UD_SYID" }, _UDTD);
  262. $$("span", { "className": "UD_SYQZOCCLO", "innerHTML": "云盘添加", "onclick": [[U.Dk.VW.CCWPXZK, [UDID, { onclick: UDE.CB }, UTF]]] }, _UDTD);
  263. }
  264. //弹出选择框
  265. U.UI.Form({ draw: false, min: false, max: false, right: "true", attr: { "onmousedown": U.M.StopBubble }, del: "remove",
  266. 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: "文件选择",
  267. hst: { style: { "padding": "0 0 0 10px"} }, bst: { "style": { overflow: "hidden"} }
  268. });
  269. _UDSD.onmousedown(); //加上上传控件
  270. }
  271. /**
  272. * 弹出选择网盘还是上传
  273. *
  274. * @param {string} 文件的后缀
  275. * @return {object}
  276. */
  277. U.Dk.HP.GetIcon = function (extendtype) {
  278. var i,
  279. _application = US.Disk.ApplicationTypes; //获取所有打开应用的信息
  280. //循环信息中找到指定的应用的信息
  281. for (i in _application) {
  282. //找到后缀名对应的程序信息
  283. if (_application[i].types.indexOf(extendtype) > -1) {
  284. return _application[i]; //返回应用的信息
  285. }
  286. }
  287. return _application["unknownfile"]; //如果是本站未知的后缀直接归属于文件
  288. }
  289. //#endregion