ExcelPanel.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. Namespace.register("U.MD.O.E.Panel");
  2. /**
  3. * #region 协同操作
  4. *
  5. * @param {函数} fun 函数
  6. */
  7. U.MD.O.E.Panel.isSynergy = function (fun) {
  8. if (!top.U.MD.U.L.isLogin()) { //判断是登录
  9. var _fileinfo = U.MD.O.E.fileinfo; //获取文件类型
  10. var _filegroupid = _fileinfo.UserDirectoryEncrypt || _fileinfo.GroupID; //获取_filegroupid群id,判断是否是在自己的ftp下的文档
  11. if (_filegroupid == US.userInfo.userid) { //判断是本地文档还是互联文档
  12. _filegroupid = false; //_filegroupid返回否
  13. }
  14. if (_filegroupid) { //判断是_filegroupid
  15. if (U.UF.C.isFunction(fun)) { //判断是否有点击事件的方法,如果有,运行它
  16. fun(_fileinfo); //运行事件
  17. }
  18. return true; //返回是
  19. } else {
  20. var _filename = top.$('#UD_Excel' + _fileinfo.UserDirectoryID + ' .U_MD_O_H_head_navigation_Title')[0]; //获取文件名
  21. if (_fileinfo.UserDirectoryID && _fileinfo.UserId && _fileinfo.UserallDirectoryName) { //如果是已经保存到数据库的文档,那么直接保存内容
  22. new U.UF.UI.confirm("是否将此文档转成互联办公文档", function () { //生成弹窗,提示"是否将此文档转成互联办公文档"
  23. top.U.MD.DK.VW.saveSynergy('ue', _fileinfo, _filename.value, 'move', function (_fileinfo) { //调用生成互联办公文档方法
  24. U.MD.O.E.Panel.isSynergy.async(_fileinfo, fun); //运行协同异步操作函数
  25. });
  26. });
  27. } else { //如果不是
  28. top.U.MD.DK.VW.saveSynergy('ue', _fileinfo, _filename.value, 'new', function (_fileinfo) { //生成普通办公文档
  29. U.MD.O.E.Panel.isSynergy.async(_fileinfo, fun); //运行协同异步操作函数
  30. });
  31. }
  32. }
  33. }
  34. return false; //返回否
  35. }
  36. /**
  37. * #region 协同异步操作
  38. *
  39. * @param {object} fileinfo 文件信息
  40. * @param {函数} fun 函数
  41. */
  42. U.MD.O.E.Panel.isSynergy.async = function (fileinfo, fun) {
  43. var _fileinfo = U.MD.O.E.fileinfo; //获取文件信息
  44. U.MD.O.E.Panel.disPlayUser(_fileinfo); //获取协作人员
  45. var _jsondata = JSON.stringify(U.MD.O.E.data); //需要保存的json数据
  46. U.A.Request(US.SCOKET, ["newExcelSave", _fileinfo.UserDirectoryID, _jsondata, _fileinfo.UserDirectoryName, US.userInfo.userid, US.pageId], function (r) { //调用储存过程保存新建的Excel文件
  47. top.$('#UD_Excel' + _fileinfo.UserDirectoryID + ' .U_MD_O_H_head_navigation_Title')[0].value = _fileinfo.UserDirectoryName; //同步文档名称修改
  48. U.Alert("保存成功"); //弹窗弹出保存成功
  49. U.MD.O.E.web = true; //拥有互联权限
  50. });
  51. if (U.UF.C.isFunction(fun)) {//判断是否有点击事件的方法,如果有,运行它
  52. fun(_fileinfo); //运行事件
  53. }
  54. }
  55. //#endregion
  56. /*
  57. * #邀请协作人员
  58. * @param {object} fileinfo 文件信息
  59. */
  60. U.MD.O.E.Panel.loadPlayUser = function (fileinfo) {
  61. var _coopwindow, _frienddiv, _example, _excelsize, _marginleft; //声明局部变量
  62. if (!$("#U_MD_O_E_body_left_invite_user")[0]) { //如果不存在团队成员窗口,则创建一个团队成员窗口。
  63. //_excelsize = U.UF.EL.getElementInfo($("#U_MD_O_W_E_body")[0]); //获取编辑器域的父亲。用于获取长度大小,用于定位
  64. _excelsize = U.UF.EL.getElementInfo($(".U_MD_O_E_excelBox")[0]); //获取单元格的父亲。用于获取长度大小,用于定位
  65. _marginleft = _excelsize["OW"] + 50; //团队窗口的位置间距编辑器50像素
  66. _coopwindow = $("#U_MD_O_E_body_left")[0]; //创建邀请协助人员窗口
  67. _cbox = $$("div", {}); //创建邀请协助人员盒子
  68. _sharelink = $$("div", { //生成第三方链接邀请栏块
  69. className: 'U_MD_O_E_body_left_invite_linkTxt', //元素class名称
  70. "onclick": function () { //点击事件
  71. U.MD.O.E.Panel.isSynergy(U.MD.O.E.Panel.shareLink); //协同操作,邀请好友
  72. },
  73. //"innerText": "邀请好友修改"
  74. innerText: "第三方链接邀请" //元素内容为"第三方链接邀请"
  75. }, _cbox); //父亲元素是邀请协助人员盒子
  76. _frienddiv = $$("div", { "className": "U_MD_O_E_body_left_invite_user", "id": "U_MD_O_E_body_left_invite_user" }, _cbox); //好友内容区域,父亲元素是邀请协助人员盒子
  77. _example = $$("div", { //好友图标及文字生成
  78. "className": "U_MD_O_E_body_left_invite_user_a", //元素class名称
  79. "onclick": function () { //点击事件
  80. U.MD.O.E.Panel.disPlayInsertUser(); //判断是否是已经新建过 弹出添加成员 异步回调
  81. }
  82. },
  83. _frienddiv); //父亲元素是好友内容区域
  84. var _friendimg = $$("div", { "className": "U_MD_O_E_body_left_invite_user_a_img" }, _example); //好友图标生成,父亲元素是好友图标及文字生成区
  85. var _friendcon = $$("div", { "className": "U_MD_O_E_body_left_invite_user_a_div", "innerHTML": "邀请" }, _example); //好友图标下文字生成,父亲元素是好友图标及文字生成区
  86. //new U.UF.UI.form("<div class='U_MD_F_S_TI'>邀请协作人员</div>", _frienddiv, { "className": "U_MD_F_S", "style": { "border": "1px #d6dff0 solid", "position": "absolute", "width": "300px", "height": "250px", "top": "25px", "left": _marginleft + "px"} }, { isdrag: false, isenlarge: false, isnarrow: false }, null, null, null, _coopwindow);
  87. var _titlehtml = " <span>邀请协作人员</span>\n" + //邀请协作人员标题生成
  88. " <div class=\"U_MD_O_E_body_left_close\">关闭</div>"; //关闭按钮
  89. new U.UF.UI.form(_titlehtml, _cbox, { style: { border: "none", "border-radius": "1px", position: "absolute", "box-shadow": "rgb(30, 85, 85) 0px 0px 12px -3px", width: "285px", height: "225px", top: "130px", right: "30px", "border-radius": "5px"} }, { isenlarge: false, isnarrow: false }, { style: { margin: "0px 5px", "border-bottom": "1px solid #d6def0", color: "#000", background: "#fff"} }, null, null, _coopwindow);
  90. } //生成邀请协作人员窗体
  91. U.MD.O.E.Panel.disPlayUser(fileinfo); //获取协作人员
  92. }
  93. /**
  94. * 初始化编辑历史加载模板
  95. *
  96. * @param {object} fileinfo 文件信息
  97. */
  98. U.MD.O.E.Panel.loadOfficeHistory = function (fileinfo) {
  99. var _el, _udtd, _usm, _uw; //声明局部变量
  100. if (!$("#U_MD_O_E_body_left_invite_history")[0]) { //如果没有编辑历史则创建
  101. _udtd = $("#U_MD_O_E_body_left")[0]; //右侧功能区域,链接区域要追加到这里
  102. _usm = U.UF.EL.getElementInfo($(".U_MD_O_E_excelBox")[0]); //获取左侧编辑区dom元素信息
  103. _uw = _usm["OW"] + 50; //定义左侧编辑区的距离
  104. _el = $$("div", { "className": "U_MD_O_E_body_left_invite_user", "id": "U_MD_O_E_body_left_invite_history" }); //编辑历史窗口
  105. //new U.UF.UI.form("<div class='U_MD_F_S_TI'>编辑历史</div>", _UDTD, { "className": "U_MD_F_S", "style": { "width": "300px", "height": "250px", "position": "absolute", "top": "300px", "left": _UW + "px", "border-radius": "0px", "border": "1px #d6dff0 solid"} }, { isdrag: false, isenlarge: false, isnarrow: false });
  106. var _titlehtml = " <span>编辑历史</span>\n" + //编辑历史标题内容
  107. " <div class=\"U_MD_O_E_body_left_close\">关闭</div>"; //关闭按钮
  108. new U.UF.UI.form(_titlehtml, _el, { style: { "border-radius": "1px", width: "286px", height: "300px", position: "absolute", top: "375px", right: "30px", border: "none", "box-shadow": "rgb(30, 85, 85) 0px 0px 12px -3px", "border-radius": "5px"} }, { isenlarge: false, isnarrow: false }, { style: { margin: "0px 5px", "border-bottom": "1px solid #d6def0", color: "#000", background: "#fff"} }, null, null, _udtd);
  109. } //生成编辑历史窗体
  110. if (fileinfo) { //如果文件有编辑历史内容
  111. U.MD.O.E.Panel.viewEditHistory(fileinfo.UserDirectoryID, U.MD.O.E.historyid, 1, 10); //查看编辑历史前十条
  112. } else { //如果没有
  113. var _nohistory = $$("div", { "innerHTML": "暂无历史", "style": { "text-align": "center", "margin-top": "50px"} }, _el); //显示暂无历史记录,父亲元素是编辑历史窗口
  114. }
  115. }
  116. /** 加载,生成连接区域
  117. * @param {object} excelinfo 当前文档信息
  118. */
  119. U.MD.O.E.Panel.loadLink = function (excelinfo) {
  120. var _rightwindow, //域名生成链接区域
  121. _excelsize, //左侧编辑区dom元素信息
  122. _linkdiv, //生成链接元素
  123. _marginleft; //距离左侧编辑区的距离
  124. if (!$("#U_MD_O_E_body_left_href_pay_a")[0]) { //如果不存在添加链接区域,则创建。
  125. _rightwindow = $("#U_MD_O_E_body_left")[0]; //右侧功能区域,链接区域要追加到这里
  126. _excelsize = U.UF.EL.getElementInfo($(".U_MD_O_E_excelBox")[0]); //获取左侧编辑区dom元素信息
  127. _marginleft = _excelsize["OW"] + 50; //定义左侧编辑区的距离
  128. _linkdiv = $$("div", { "className": "U_MD_O_E_body_left_href_pay_a", id: "U_MD_O_E_body_left_href_pay_a", "innerHTML": "将此站点生成链接", "onclick": function () { //生成链接元素
  129. var _excelinfo = U.MD.O.E.fileinfo; //获取文件信息
  130. if (_excelinfo.UserDirectoryID && _excelinfo.UserId && _excelinfo.UserallDirectoryName) { //如果文件已保存
  131. top.U.MD.DS.createDefaultDomainInit(_excelinfo, "excel"); //调用生成域名函数
  132. } else { //如果没有
  133. U.MD.O.E.Save(top.US.disk.Disks[US.userInfo.userid]); //保存该文件
  134. }
  135. }
  136. });
  137. var _titlehtml = " <span>生成链接</span>\n" + //生成链接的标题元素生成
  138. " <div class=\"U_MD_O_E_body_left_close\">关闭</div>"; //关闭按钮
  139. new U.UF.UI.form(_titlehtml, _linkdiv, { style: { "border": "none", "border-radius": "1px", position: "absolute", width: "286px", height: "80px", top: "30px", "border-radius": "5px", "right": "30px", "box-shadow": "rgb(30, 85, 85) 0px 0px 12px -3px"} }, { isenlarge: false, isnarrow: false }, { style: { margin: "0px 5px", "border-bottom": "1px solid #d6def0", color: "#000", background: "#fff"} }, null, null, _rightwindow);
  140. } //生成生成域名窗体,父元素是右侧功能区域
  141. }
  142. /**
  143. * 初始化查看团队成员
  144. *
  145. * @param {object} fileinfo 文件信息
  146. * @param {element} el 换页元素
  147. */
  148. U.MD.O.E.Panel.disPlayUser = function (fileinfo, el) {
  149. var _el = _el || $("#U_MD_O_E_body_left_invite_user")[0]; //获取团队成员初始化的位置
  150. var _elchild = _el.children[0]; //获取团队成员初始化的位置元素的子元素
  151. _el.innerHTML = "" //清空团队成员初始化的位置的内容
  152. $(_el).append(_elchild); //生成子元素
  153. if (fileinfo) { //判断是否有文件信息
  154. var _userinfo = U.Json.select(US.friend.groupusers, { "GroupManageID": fileinfo.UserDirectoryEncrypt || fileinfo.GroupID }); //获取所有在群里的成员
  155. if (_userinfo) { //判断是否拥有群成员
  156. for (_i = 0; _i < _userinfo.length; _i++) { //循环打印所有的群成员
  157. var _elparent = $$("div", //生成好友头像父级元素
  158. {
  159. "className": "U_MD_O_E_body_left_invite_user_a" //元素class名称
  160. }, //好友头像父级元素
  161. _el);
  162. var _elcontant = $$("div", //生成好友头像内容元素
  163. {
  164. "className": "U_MD_O_E_body_left_invite_user_a_img", //元素class名称
  165. "style": //元素样式
  166. {
  167. "background": "" //元素背景颜色
  168. }
  169. },
  170. _elparent); //生成位置在好友头像父级元素中
  171. var _elimg = $$("img", //生成好友邀请图片
  172. {
  173. "src": top.U.MD.C.getHeadImage(_userinfo[i].UserThumbnailImageHead) //元素链接
  174. },
  175. _elcontant); //生成位置在好友头像内容元素
  176. var _elname = $$("div", //生成元素类型为div
  177. {
  178. "className": "U_MD_O_E_body_left_invite_user_a_div", //元素class名称
  179. "innerHTML": _userinfo[i].UserNickName //元素内容为获取到的用户名
  180. },
  181. _elparent); //生成位置在好友头像父级元素
  182. }
  183. }
  184. }
  185. }
  186. /**
  187. * 判断是否是已经新建过 弹出添加成员 异步回调
  188. *
  189. * @param {element} word 信息数组
  190. */
  191. U.MD.O.E.Panel.disPlayInsertUser = function () {
  192. if (U.MD.O.E.Panel.isSynergy()) { //判断是否有协同操作
  193. var _fileinfo = U.MD.O.E["fileinfo"]; //获取文件信息
  194. top.U.MD.F.J.selectFriendForm(function (groupid) { //操作历史载入方法
  195. var _filegroupid = _fileinfo.GroupID || _fileinfo.UserDirectoryEncrypt; //获取_filegroupid群id,判断是否是在自己的ftp下的文档
  196. var _groupinfo = U.Json.select(US.friend.group, { "GroupManageID": _filegroupid })[0]; //获取群信息
  197. var _needuser = top.U.MD.F.J.selectUserInfo.NeedUser; //获取用户
  198. var _groupname = _groupinfo.GroupManageName; //获取群名称
  199. var _groupdesc = _groupinfo.GroupManageDescript; //获取群类型
  200. var _selectfriend = U.Json.select(US.friend.groupusers, { "GroupManageID": _filegroupid }); //获取群用户
  201. //已经在群里的就不添加了
  202. for (i = 0; i < _selectfriend.length; i++) { //循环所有群用户
  203. U.Json.del(_needuser, { "UserId": _selectfriend[i].UserId }); //删除所有在群里的用户id
  204. }
  205. top.U.MD.F.J.determineCreateGroupAndAddGroupUser(_filegroupid, null, null, false, _groupname, _groupdesc, function (groupid) { //协同用户显示方法
  206. U.MD.O.E.Panel.disPlayUser(_fileinfo); //初始化查看团队成员
  207. });
  208. }, null, _fileinfo); //调用打印函数
  209. }
  210. // var _excelinfo = U.MD.O.E, //object参数值
  211. // _userid = _excelinfo.userInfo.userid,
  212. // _excelfileid = _excelinfo.fileinfo.UserDirectoryID,
  213. // _fileinfo = _excelinfo["fileinfo"];
  214. // //判断是否登录并且加载好好友列表
  215. // if (!top.U.MD.U.L.isLogin() && US.friend.friends) {
  216. // //判断是否是新建的文档 还是 已经保存的文档
  217. // // if (_fileinfo && _fileinfo.UserDirectoryID && _fileinfo.UserId && _fileinfo.UserallDirectoryName) { //已经保存的文档
  218. // var _filegroupid = _fileinfo.UserDirectoryEncrypt || _fileinfo.GroupID; //获取_filegroupid群id,判断是否是在自己的ftp下的文档
  219. // if (_filegroupid == US.userInfo.userid) {
  220. // _filegroupid = false;
  221. // } //判断是否是在自己的网盘或者ftp下的文档
  222. // if (_filegroupid) {
  223. // top.U.MD.F.J.selectFriendForm(function (groupid) {
  224. // var _groupinfo, _groupname, _groupdesc;
  225. // var _strName = '', _needuser = top.U.MD.F.J.selectUserInfo.NeedUser;
  226. // _filegroupid = _filegroupid || groupid;
  227. // if (!groupid) {
  228. // _groupname = _fileinfo.UserallDirectoryName || '协同文档群--' + new Date().getHours() + ":" + new Date().getMinutes(); //默认群名/也是文档名
  229. // for (var i = 0; i < Math.min(_needuser.length, 3); i++) { //拼接字符创
  230. // _strName += (_needuser[i].UserNickName || _needuser[i].UserName) + (i == 2 ? '' : ',');
  231. // }
  232. // if (_needuser.length >= 3) { _strName += '...'; } //成员长度大于三个将最有一个逗号改成...
  233. // _groupdesc = "由" + _strName + "成员发起的互联办公群组。";
  234. // top.U.MD.F.J.determineCreateGroupAndAddGroupUser(_filegroupid, null, null, false, _groupname, _groupdesc, function (groupid) {
  235. // U.MD.O.E.Panel.insertUser(_fileinfo, groupid);
  236. // });
  237. // } else if (_filegroupid != groupid) {
  238. // _groupinfo = U.Json.select(US.friend.group, { "GroupManageID": _filegroupid })[0]
  239. // _groupname = _groupinfo.GroupManageName;
  240. // _groupdesc = _groupinfo.GroupManageDescript;
  241. // var _selectfriend = U.Json.select(US.friend.groupusers, { "GroupManageID": _filegroupid });
  242. // //已经在群里的就不添加了
  243. // for (i = 0; i < _selectfriend.length; i++) {
  244. // U.Json.del(_needuser, { "UserId": _selectfriend[i].UserId }); //删除所有在群里的用户id
  245. // }
  246. // top.U.MD.F.J.determineCreateGroupAndAddGroupUser(_filegroupid, null, null, false, _groupname, _groupdesc, function (groupid) {
  247. // U.MD.O.E.Panel.insertUser(_fileinfo, groupid);
  248. // });
  249. // } else {
  250. // _needuser = [];
  251. // U.MD.O.E.Panel.insertUser(_fileinfo, _filegroupid);
  252. // }
  253. // }, undefined, _fileinfo); //调用打印函数
  254. // } else {
  255. // if (!$('#U_Office_invite_checkConfirm').length) {
  256. // var _confirm = new U.UF.UI.confirm("是否将此文档转成互联文档?", function () {
  257. // var groupid = Guid.newGuid(),
  258. // _groupName = _fileinfo.UserallDirectoryName || '协同文档群--' + new Date().getHours() + ":" + new Date().getMinutes(), //默认群名/也是文档名
  259. // _groupDesc = "由" + _fileinfo.UserName + "成员发起的互联办公群组。";
  260. // top.U.MD.F.J.determineCreateGroupAndAddGroupUser(false, null, null, false, _groupName, _groupDesc, function (groupid) {
  261. // U.MD.O.E.Panel.insertUser(_fileinfo, groupid);
  262. // })
  263. // $(_confirm.form).remove();
  264. // }, function () {
  265. // $(_confirm.form).remove();
  266. // })
  267. // _confirm.form.id = "U_Office_invite_checkConfirm";
  268. // } else {
  269. // $('#U_Office_invite_checkConfirm')[0].style.display = 'block';
  270. // }
  271. // }
  272. // }
  273. }
  274. /**
  275. * 添加详细历史记录布局
  276. *
  277. * @param {object} data 数据
  278. */
  279. U.MD.O.E.Panel.createHis = function (data) {
  280. var _hisblock = $$('div', { style: { cssText: 'min-height: 85px; border-bottom: 1px solid silver; margin: 0 3px'} }), //生成最外层元素
  281. _hisimgel = $$('div', { style: { margin: '22px 12px 0', float: 'left'} }, _hisblock), //生成存放图片元素,父元素是最外层元素
  282. _hisimg = $$('img', { "onerror": U.MD.C.imgError, style: { cssText: 'width:40px; height: 40px;' }, src: top.U.MD.C.getHeadImage(data.UserThumbnailImageHead) }, _hisimgel), //生成头像,父元素是存放图片元素
  283. _hisinfo = $$('div', { style: { cssText: 'margin-left: 62px;'} }, _hisBlock), //生成用户名及更改时间存放元素,父元素是最外层元素
  284. _hisinfotext = $$('div', { style: { 'padding-top': '25px', 'white-space': 'nowrap'} }, _hisinfo), //生成文件文本元素,父元素是用户名及更改时间存放元素
  285. _hisinfoname = $$('span', { innerText: data.UserName }, _hisInfoText), //生成文件名称元素,父元素是文件文本元素
  286. _hisinfodate = $$('span', { innerText: U.UF.D.getDateInterval(new Date()) + '保存一次', style: { 'padding-left': '10px'} }, _hisinfotext), //生成保存元素,父元素是文件文本元素
  287. _hisinfobtn = $$('div', { style: { 'margin-top': '10px', 'white-space': 'nowrap'} }, _hisinfo), //生成按钮存放元素,父元素是用户名及更改时间存放元素
  288. _data = data; //声明局部变量data数据
  289. _hisinfodialogue; //声明局部变量
  290. if (US.disk.UserDisk && data.UserId != US.disk.UserDisk.userInfo.UserId) { //判断是否是自己编辑历史记录,是则不打印对话
  291. _hisInfodialogue = $$('button', { innerText: '对话', style: { cssText: 'color: #fff; background-color:#6d81a4; border-radius: 4px; border:none; outline:none; padding: 4px 8px; cursor: pointer;' }, onclick: function () { //生成对话按钮,点击查看内容
  292. var _hasf = U.Json.select(US.friend.friends, { UserId: _data.UserId }), //获取历史记录
  293. _data = !_hasf.length ? U.Json.select(US.friend.recentcontacts, { UserId: _data.UserId }) : _hasf; //获取历史记录判断
  294. top.U.MD.F.W.popupFriendsForm(_data[0]); //获取历史记录事件
  295. }
  296. }, _hisinfobtn); //父元素是按钮存放元素
  297. }
  298. var _hisinfodetailed = $$('button', { innerText: '详细', style: { cssText: 'color: #fff; background-color:#6d81a4; border-radius: 4px; border:none; outline:none; padding: 4px 8px; margin-left: 4px;cursor: pointer;' }, //生成详细按钮
  299. onclick: function () { //点击查看历史记录
  300. U.MD.O.E.Panel.editHistory(_data) //编辑历史弹出
  301. }
  302. }, _hisinfobtn); //父元素是按钮存放元素
  303. return _hisblock //返回最外的元素
  304. }
  305. /**
  306. * 编辑历史弹出全部
  307. * @param {object} ude 历史记录的信息
  308. *
  309. */
  310. U.MD.O.E.Panel.editHistoryC = function (ude) { //此参数为历史记录的信息
  311. var _el = $$("div"), //元素初始化位置
  312. _ude = ude, //声明局部变量历史记录信息
  313. // _UCT = new U.UF.UI.form("<div _el='U_MD_F_S_TI'>历史记录</div>",_el,{"className": "Bjlsall", "style": {"width": "950px", "height": "550px","overflow": "hidden"} },{isdrag: false,isenlarge: false, isnarrow: false }, null, null, null, _UDTD);
  314. _uct = new U.UF.UI.form("历史记录", _el, { className: 'Bjlsall', style: { width: "950px", height: "550px", overflow: "hidden"} }, { isdrag: false, isenlarge: false, isnarrow: false }, null, null, null, _UDTD); //生成历史记录窗体
  315. var _i, _udbd, _udtd, _udsd; //声明局部变量
  316. for (var _a = 0; _a < _ude.length; a++) { //循环历史记录的长度 用来显示多个历史记录在"显示按钮"的打开的窗体上
  317. _udbd = $$("div", { "className": "U_MD_O_E_History_all", "id": _ude[_a].HistoryId + "-" + _a }, _el); //生成存放历史记录的元素,父元素是元素初始化位置
  318. _udtd = $$("div", { "className": "U_MD_O_E_History_Head" }, _udbd); //生成历史记录头部元素,父元素是存放历史记录元素
  319. var _udbb = $$("div", { //生成展开按钮
  320. "className": "U_MD_O_E_body_btn", //class名称
  321. "innerHTML": "展开", //元素内容
  322. "onclick": U.MD.O.E.Panel.btn //点击事件
  323. },
  324. _udbd); //父元素是存放历史记录元素
  325. var _udbe = $$("div", { "className": "U_MD_O_E_body_btn_img1" }, _udbb); //生成存放图片元素,父元素是生成展开按钮
  326. var _udbi = $$("img", //生成图片元素
  327. {
  328. "src": U.MD.C.getHeadImage(_ude[_a].UserThumbnailImageHead), //图片地址
  329. "onerror": U.MD.C.imgError, //错误显示
  330. "alt": _ude[_a].UserName, //替代文本
  331. "title": _ude[_a].UserName //标题
  332. },
  333. _udtd); //父元素是历史记录头部元素
  334. var _udbt = $$("div", { "innerHTML": (_ude[_a].UserNickName) + " " + U.UF.D.getDateInterval(_ude[_a].CreateTime) + " 更改了以下内容" }, _udtd); //生成更改内容标题元素,父元素是历史记录头部元素
  335. var _udbc = $$("div", { "className": "U_MD_O_E_body_right_user_o_r_all_nr", "innerHTML": _ude[_a].OfficeContent }, _udtd); //生成更改内容显示元素,父元素是历史记录头部元素
  336. }
  337. }
  338. /**
  339. * 点击显示全部
  340. *
  341. */
  342. U.MD.O.E.Panel.editHistoryOnC = function () {
  343. var _excel = U.MD.O.E; //word全局变量 包含了ue文件的文件信息 等
  344. var _fileinfo = _excel["fileinfo"]; //ue文件的文件信息
  345. var _fileid = _fileinfo.UserDirectoryID; //ue文件的文件ID
  346. var _udod = $("#U_MD_O_E_body_left_invite_history")[0]; //历史记录框
  347. U.A.Request(US.CD, [US.DB, "UseStudio_Office", "SelectOfficeHistory", _fileid, "00000000-0000-0000-0000-000000000000", 1, 10], U.MD.O.E.Panel.onDisplayD, [null, _udod]); //查找数据库历史记录
  348. }
  349. /**
  350. * 更新历史弹出全部
  351. * @ param {object} r 数据内容
  352. *
  353. */
  354. U.MD.O.E.Panel.onDisplayD = function (r) {
  355. var _r = r; //声明局部变量数据内容
  356. if ($(".U_MD_O_E_body_right_user_o_r_all")) { //如果存在则删除
  357. $(".U_MD_O_E_body_right_user_o_r_all").remove(); //删除该元素
  358. }
  359. _divall = $$("div", { "className": "U_MD_O_E_body_right_user_o_r_all" }, _r.context[1].parentNode.parentNode); //生成显示全部外层元素
  360. var _historyall = $$("div", //生成显示全部元素
  361. {
  362. "className": "U_MD_O_E_body_right_user_o_r_all_a", //class名称
  363. "innerHTML": "显示全部", //元素内容
  364. "onclick": [U.MD.O.E.Panel.editHistoryOnC] //点击事件,调用点击显示全部函数
  365. },
  366. _divall); //父元素是生成显示全部外层元素
  367. U.MD.O.E.Panel.editHistoryC(_r.value); //调用点击显示全部函数
  368. }
  369. /**
  370. * 编辑历史的展开与关闭
  371. *
  372. */
  373. U.MD.O.E.Panel.btn = function () { //编辑历史记录底端的显示全部的展开与关闭
  374. if (this.parentNode.children[0].lastChild.children[0].scrollHeight > 100) { //根据内容的高度来判断
  375. if (this.innerText == "展开") { //如果按钮文本显示展开
  376. this.innerHTML = "收起<div class='U_MD_O_E_body_btn_img2'></div>"; //如果按钮文本显示展开
  377. this.parentNode.style.cssText = "height:100%;min-height:100px;overflow:visible;float:left;width:95%;" //更改样式
  378. this.style.cssText = "margin-right:-7px;" //更改样式
  379. }
  380. else if (this.innerText == "收起") { //如果按钮文本显示收起
  381. this.innerHTML = "展开<div class='U_MD_O_E_body_btn_img1'></div>"; //更改文本为展开
  382. this.parentNode.style.cssText = "height:100px;overflow:hidden;float:none;width:none"; //更改样式
  383. this.style.cssText = "margin-right: 0px; " //更改样式
  384. }
  385. } else { //如果没有高于100px
  386. if (this.innerText == "展开") { //如果按钮文本显示展开
  387. this.innerHTML = "收起<div class='U_MD_O_E_body_btn_img2'></div>"; //如果按钮文本显示展开
  388. this.parentNode.style.cssText = "height:100%;min-height:100px;overflow:visible;float:left;width:95%;" //更改样式
  389. this.style.cssText = "margin-right:-7px;" //更改样式
  390. }
  391. else if (this.innerText == "收起") { //如果按钮文本显示收起
  392. this.innerHTML = "展开<div class='U_MD_O_E_body_btn_img1'></div>"; //更改文本为展开
  393. this.parentNode.style.cssText = "height:100px;overflow:hidden;"; //更改样式
  394. this.style.cssText = "margin-right: 0px;" //更改样式
  395. }
  396. }
  397. }
  398. /**
  399. * 编辑历史弹出
  400. * @param {object} ude 历史记录的信息
  401. *
  402. */
  403. U.MD.O.E.Panel.editHistory = function (ude) {//此参数为历史记录的信息
  404. var _el = $$("div", { style: { cssText: "padding: 0 10px;"} }), //生成外层元素
  405. _ude = ude, //声明局部变量,历史记录信息
  406. _uct = new U.UF.UI.form("历史记录", _el, { id: "Bjls", style: { width: "680px", height: "550px", overflow: "hidden", 'box-shadow': 'rgb(180, 180, 180) 1px 1px 5px 2px', 'border-radius': '0', 'border': 'none'} }, { isdrag: false, isenlarge: false, isnarrow: false }, { style: { 'background-color': '#3c475b', 'padding': '4px'} }); //生成历史记录窗体
  407. if (_ude.OfficeContent == undefined) { //如果内容找不到
  408. U.A.Request(US.CD, [US.DB, "Usestudio_Office", "SelectHistoryDetails", _ude.HistoryId], function (r) { //查询数据库中的历史记录
  409. var _r = r; //声明局部变量,数据库查询到的数据内容
  410. _ude.OfficeContent = _r.value[0].OfficeContent.unEscapeQuotes().unEscapeQuotes(); //内容格式化
  411. U.MD.O.E.Panel.asynEditHistory(_ude, _el); //调用编辑历史弹出异步函数
  412. }, [_el]);
  413. } else { //如果不是
  414. U.MD.O.E.Panel.asynEditHistory(_ude, _el); //调用编辑历史弹出异步函数
  415. }
  416. }
  417. /**
  418. * 编辑历史弹出异步
  419. * @ param {object} docinfo 文档信息
  420. * @ param {element} element 元素初始位置
  421. *
  422. */
  423. U.MD.O.E.Panel.asynEditHistory = function (docinfo, element) {
  424. var _docinfo = docinfo; //声明局部变量,文档信息
  425. var _element = element; //声明局部变量,元素初始位置
  426. var _udbd = $$("div", { "class": "U_MD_O_W_History" }, _element); //生成编辑历史外层元素,父元素是元素初始位置
  427. var _udtd = $$("div", { "class": "U_MD_O_W_History_Head" }, _element); //生成编辑历史头部元素,父元素是元素初始位置
  428. var _udbi = $$("img", //生成用户头像
  429. {
  430. "src": (top.U.MD.C.getHeadImage(_docinfo.UserThumbnailImageHead) || '/img/UserHead/UseHead.jpg'), //图片地址
  431. "alt": _docinfo.UserNickName || _docinfo.UserName, //替代文本
  432. "title": _docinfo.UserNickName || _docinfo.UserName //标题
  433. },
  434. _udtd); //父元素是编辑历史头部元素
  435. var _udch = $$("div", { "innerHTML": (_docinfo.UserNickName || _docinfo.UserName) + " " + U.UF.D.getDateInterval(_docinfo.CreateTime || new Date()) + " 更改了以下内容", style: { cssText: "display: inline-block; margin-left:10px"} }, _udtd); //生成提示更改内容元素,父元素是编辑历史头部元素
  436. var _udti = $$("div", { "className": "U_MD_O_E_body_right_user_o_r_nr", "innerHTML": _docinfo.OfficeContent }, _udtd); //生成更改内容存放元素,父元素是编辑历史头部元素
  437. }
  438. /**
  439. * 查看编辑历史
  440. *
  441. * @ param {element} 换页元素
  442. * @ param {string} udid 创始人id
  443. * @ param {string} uoid 文件id
  444. * @ param {string} s 选取开始
  445. * @ param {string} e 选取长度
  446. * @ param {string} udod 获取编辑历史的框
  447. */
  448. U.MD.O.E.Panel.viewEditHistory = function (udid, uoid, s, e, udod) { //创始人id 文件id 空的id 选取开始 选取长度 获取编辑历史的框
  449. // setInterval(function () {
  450. var _udod = udod || $("#U_MD_O_E_body_left_invite_history")[0]; //生成编辑历史的框
  451. var _udid = udid; //声明局部变量,创始人id
  452. var _uoid = uoid; //声明局部变量,文件id
  453. var _s = s; //声明局部变量,选取开始
  454. var _e = e; //声明局部变量,选取长度
  455. U.A.Request(US.CD, [US.DB, "UseStudio_Office", "SelectOfficeHistory", _udid, _uoid || "00000000-0000-0000-0000-000000000000", _s, _e], U.MD.O.E.Panel.asynViewEditHistory, [null, _udod]); //查找历史记录,有就放进编辑历史的框中
  456. // }, 1000)
  457. }
  458. /**
  459. * 添加团队成员
  460. *
  461. * @param {object} 文件信息
  462. * @param {string} 文件提交到哪个群的id
  463. * @param {array} 用户id的数组
  464. */
  465. //U.MD.O.E.Panel.insertUser = function (fileinfo, groupid) {
  466. // if (!fileinfo.UserId && !fileinfo.UserallDirectoryName) {
  467. // fileinfo.GroupId = fileinfo.UserDirectoryEncrypt = groupid;
  468. // var _groupuserid = U.Json.select(US.friend.group, { 'GroupManageID': groupid })[0].GroupManageUserID;
  469. // var _dirinfo, _dirid, _diskinfo = US.disk.Disks[US.userInfo.userid];
  470. // if (_groupuserid == US.userInfo.userid) {
  471. // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { 'UserDirectoryName': "我的协同" })[0];
  472. // } else {
  473. // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { 'UserDirectoryName': "他人邀请" })[0];
  474. // }
  475. // var _dirchild = top.$('#L' + _dirinfo.UserDirectoryID).Child();
  476. // !_dirchild[1] && _dirchild[0].onclick()
  477. // top.$('#L' + groupid).Child()[0].onclick();
  478. // } else if ((fileinfo.UserDirectoryEncrypt || fileinfo.GroupID) == US.userInfo.userid) { //如果是新创建的文件,同时文件不在群里 就把文件拷贝到群里进行处理
  479. // var _userid = fileinfo.UserId,
  480. // _diskinfo = US.disk.Disks[US.userInfo.userid],
  481. // _dirinfo = U.Json.select(_diskinfo.directoryOrFiles, { "UserDirectoryID": groupid }, 1)[0]; //当前目录的信息
  482. // var _pastecontent = US.disk.Disks[_userid].pasteDirOrFile = {
  483. // "type": "shear", //复制或者剪切 "copy" || "shear"
  484. // "UserDirectoryID": groupid, //在哪个目录复制或者剪切
  485. // "dirorfile": fileinfo, //复制的内容
  486. // "userid": _userid //用户id
  487. // }
  488. // top.U.A.Request(US.AUTH, ["CutAndPasteFiles", fileinfo.UserId, groupid, fileinfo.UserDirectoryID, groupid, groupid],
  489. // top.U.MD.DK.RE.asynPaste, ["", _dirinfo, groupid, _pastecontent, _diskinfo]
  490. // );
  491. // fileinfo.GroupId = fileinfo.UserDirectoryEncrypt = groupid;
  492. // }
  493. // U.MD.O.E.Panel.disPlayUser(fileinfo);
  494. //}
  495. /**
  496. * 查看编辑历史异步
  497. *
  498. * @param {element} 换页元素
  499. */
  500. //U.MD.O.E.Panel.AsynViewEditHistory = function (r) {
  501. // var _dataArr = r.value,
  502. // _addEl = $('#U_MD_O_E_body_left_invite_history')[0]
  503. // for (var i = 0; i < _dataArr.length; i++) {
  504. // _addEl.appendChild(U.MD.O.E.Panel.createHis(_dataArr[i], _addEl))
  505. // }
  506. //}
  507. /**
  508. * 分享文档链接
  509. * @ param {object} fileinfo 文件信息
  510. *
  511. */
  512. U.MD.O.E.Panel.shareLink = function (fileinfo) {
  513. var _template = U.MD.O.E.Panel.shareLinkTemplate(fileinfo); //存放分享文档链接内容
  514. new U.UF.UI.form("邀请协助链接", _template, { id: "U_MD_O_E_Panel_InviteForm", style: { cssText: "width:600px; height:450px;"} }); //生成邀请协助链接窗体
  515. }
  516. /**
  517. * 存放文档链接内容
  518. * @ param {object} fileinfo 文件信息
  519. *
  520. */
  521. U.MD.O.E.Panel.shareLinkTemplate = function (fileinfo) {
  522. var _fileinfo = fileinfo, //声明局部变量,文件信息
  523. _cbox = $$('div', { className: "U_MD_O_H_body_left_invite_form" }), //存放分享内容的容器
  524. _sharelinkel = $$('div', { className: "U_MD_O_H_body_left_invite_formShare" }, _cbox), //链接邀请模块,父元素是存放分享内容容器
  525. _qrcodeel = $$('div', { className: "U_MD_O_H_body_left_invite_formQRCode" }, _cbox); //二维码邀请模块,父元素是存放分享内容容器
  526. var _adoptshare = $$('p', { innerText: "通过链接邀请:", style: { cssText: "font-size:18px; font-weight: bold;"} }, _sharelinkel) //p标签,"通过链接邀请:",父元素是链接邀请模块
  527. var _sharelinkinpblock = $$('div', { className: "U_MD_O_H_body_left_invite_shareInpMargin" }, _sharelinkel); //生成内容分隔元素,父元素是链接邀请模块
  528. var _anoshark = $$('p', { innerText: "将下面的邀请链接通过QQ或微信发送给需要邀请的人" }, _sharelinkinpblock) //p标签,"将下面的邀请链接通过QQ或微信发送给需要邀请的人",父元素是内容分隔元素
  529. var _filetype = _fileinfo.UserDirectoryExtendType == 'uw' ? 'word' : 'excel'; //如果是uw,则为word,否则为excel
  530. var _sharelinkinpblockshow = $$('input', { value: "/#" + _filetype + '/join/' + _fileinfo.UserDirectoryID, className: "U_MD_O_H_body_left_invite_shareInp", disabled: "disabled" }, _sharelinkinpblock), //生成input标签显示内容,父元素是内容分隔元素
  531. _sharelinkinpblockbtn = $$('div', { className: "U_MD_O_H_body_left_invite_shareBtn", innerText: "复制", onclick: function () { //生成复制按钮
  532. var _inp = $$('input', { value: _sharelinkinpblockshow.value }, $('body')[0]); //生成复制按钮元素
  533. _inp.select(); //查找
  534. document.execCommand("Copy"); //复制
  535. $(_inp).remove(); //删除_inp元素
  536. U.Alert('复制成功,赶紧分享给小伙伴吧!'); //弹窗提示复制成功
  537. }
  538. }, _sharelinkinpblock); //父元素是内容分隔元素
  539. var _qrcodeshare = $$('p', { innerText: "通过二维码邀请:", style: { cssText: "font-size:18px; font-weight: bold;"} }, _qrcodeel); //生成p标签,内容是"通过二维码邀请:",父元素是二维码邀请模块
  540. var _qrcodeimg = $$('div', { style: { cssText: "margin-left:60px;position:absolute;"} }, _qrcodeel); //生成二维码存放元素,父元素是二维码邀请模块
  541. var _qrcodetitle = $$('div', { innerHTML: "<span style='font-size:16px'>通过扫码,邀请好友</span><br>扫描二维码获取邀请函,转发给微信好友/群,<br/>即可邀请他们加入你的文档", style: { cssText: "margin-left: 270px;margin-top:40px;line-height:30px;"} }, _qrcodeel); //生成二维码文字说明,父元素是二维码邀请模块
  542. top.U.UF.QR.generate("150", "150", "black", "white", _shareLinkInpBlockShow.value, _qrcodeimg); //生成二维码函数,放在二维码存放元素中
  543. return _cbox; //返回最外层元素
  544. }