SitePreview.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. Namespace.register("U.MD.O.W.SP");
  2. window.onload = function () {
  3. //加载1473数据
  4. U.UF.CD.loadPageCrossDomain(function () {
  5. });
  6. //获取站点信息
  7. U.MD.O.W.SP.sitePreviewInit();
  8. }
  9. /**
  10. * 网站预览初始化
  11. */
  12. U.MD.O.W.SP.sitePreviewInit = function () {
  13. var _pathname = window.location.search, //获取网站地址
  14. _domename = _pathname.substring(1); //进行域名分离
  15. console.log(_domename)
  16. //获取网页内容
  17. if (_domename) {
  18. U.A.Request("http://cd.1473.cn/php", ["db.1473.cn", "UseStudio_DNS", "GetFileIdToDomain", _domename], function (r) { //获取文件信息
  19. var _fileinfo = r.value;
  20. _fileId = r.FileId;
  21. console.log(_fileinfo);
  22. U.MD.O.W.SP.uwOpen(r.value[0].FileId); //进入获取文档信息
  23. //U.MD.O.W.SP.initReply(); //加载评论系统
  24. });
  25. }
  26. }
  27. /**
  28. * 获取uw文件数据
  29. *
  30. * @fileid {string} 文档id
  31. */
  32. U.MD.O.W.SP.uwOpen = function (fileid) {
  33. //通过文档id获取文档信息
  34. U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "GetFileById", fileid], function (r) {
  35. r = r.value;
  36. var _fileinfo = r[0];
  37. _fileId = r[0].UserFilesID;
  38. console.log(r[0]);
  39. $('.U_MD_O_W_SP_ToolsBar')[0].onclick = function () {
  40. U.MD.O.W.SP.isLogin(_fileinfo);
  41. }
  42. U.MD.O.E.data = JSON.parse(r[0].UsOffice);
  43. console.log(U.MD.O.E.data);
  44. //console.log(data);
  45. // console.log(U.MD.O.E.data);
  46. U.MD.O.E.printTask(true);
  47. U.MD.O.E.rePrintExcel(U.MD.O.E.data, true);
  48. if (r[0]) {
  49. //设置全局变量
  50. U.MD.O.W.SP.FILEINFO = r[0];
  51. console.log(U.MD.O.W.SP.FILEINFO);
  52. //有内容直接加载内容
  53. if (r[0].UsOffice !== undefined && r[0].UsOffice != null) {
  54. U.MD.O.W.SP.uwOpen.asyn(r[0]);
  55. }
  56. //如果没有内容则去office下载内容
  57. else if (['xls', 'xlsx'].indexOf(r[0].UserFilesExtendName.toLocaleLowerCase()) > -1) {
  58. //初始化内容处理
  59. U.A.Request("http://office.1473.cn/Officetohtml.ashx", ["Open", r[0].UserFilesExtendName, r[0].UserFilesServername], function (r) {
  60. var _fileinfo = r.context[1]; //获取文档信息
  61. if (_fileinfo.value != undefined) {
  62. //设置文档内容
  63. r = r.value;
  64. fileinfo.UsOffice = r.value.getBodyHtml().replace(/src=[\'\"]?([^\'\"]*)[\'\"]?/ig, function (str1, str2) {
  65. return "src=\"http://office.1473.cn/usoffice/" + str2 + "\"";
  66. });
  67. //加载文档信息
  68. U.MD.O.W.SP.uwOpen.asyn();
  69. }
  70. else {
  71. U.Alert("文档已丢失。。。");
  72. }
  73. }, [null, r[0]]);
  74. }
  75. else {
  76. U.Alert("该文件无法打开");
  77. }
  78. }
  79. else {
  80. U.Alert("文档已丢失。。。");
  81. }
  82. });
  83. }
  84. /**
  85. * 获取uw文件数据
  86. *
  87. * @fileid {string} 文档id
  88. */
  89. U.MD.O.W.SP.uwOpen.asyn = function (fileinfo) {
  90. //判断_value.UsOffice是否为null
  91. if (!fileinfo.UsOffice && typeof (fileinfo.UsOffice) != "undefined" && fileinfo.UsOffice != 0) {
  92. alert(1);
  93. fileinfo.UsOffice = " "; //显示为空
  94. }
  95. //导航模式的处理
  96. if (fileinfo.UserFilesExtendName.toLowerCase() == 'un') {
  97. $('.U_MD_O_W_SP_Head_Logo_name')[0].innerText = fileinfo.UserFilesName;
  98. $(".U_MD_O_W_SP_MarginBox_File")[1].className = 'U_MD_O_W_SP_MarginBox_Model_Word'; //复制clss
  99. $(".U_MD_O_W_SP_Head_Model")[0].style.display = 'block'; //显示元素
  100. U.MD.O.W.SP.modelDataCreate(fileinfo);
  101. }
  102. //普通模式的处理
  103. else {
  104. $('.U_MD_O_W_SP_Head')[0].style.display = 'block'; //显示元素
  105. $('.U_MD_O_W_SP_Tool')[0].style.display = 'block'; //显示元素
  106. //$("#U_MD_O_W_SP_Editor")[0].innerHTML = fileinfo.UsOffice.unEscapeQuotes(); //文档内容格式化
  107. $(".U_MD_O_W_SP_Title")[0].innerText = fileinfo.UserFilesName; //文档名
  108. U.MD.O.W.SP.bindInit(fileinfo); //进入事件绑定
  109. }
  110. $$("meta", { name: "title", content: fileinfo.UserFilesName }, $('head')[0]);
  111. U.MD.O.W.SP.backTop();
  112. }
  113. /**
  114. * 文档模板生成
  115. * 把你的代码放在这个函数里面
  116. */
  117. U.MD.O.W.SP.modelDataCreate = function (fileinfo) {
  118. var _li, data = JSON.parse(fileinfo.UsOffice); //字符串转换为JSON对象
  119. for (var i = 0; i < data.nav.length; i++) { //循环数据
  120. _li = i == 0 ? $$("li", { innerHTML: data.nav[i].name, className: 'DataLi_active' }, $(".U_MD_O_W_SP_Header_DataUl")[0]) : $$("li", { innerHTML: data.nav[i].name }, $(".U_MD_O_W_SP_Header_DataUl")[0]); //创建li元素
  121. //初始化导航的处理
  122. _li.onclick = U.UF.C.closure(function (i) { //绑定点击事件
  123. //根据导航获取信息
  124. U.A.Request(US.CD, [US.DB, "UseStudio_Office", "GetNavPageContent", data.nav[i].pageId], function (r) { //请求数据库获取值
  125. var _el = $('#U_MD_O_W_SP_Editor')[0], //获取输出元素
  126. _listLi = $('.U_MD_O_W_SP_Header_DataUl').find('.DataLi_active'); //获取选中元素
  127. //有选中的元素 然后 清空class
  128. if (_listLi.length) {
  129. (_listLi[0].className = '');
  130. }
  131. $('.U_MD_O_W_SP_Header_DataUl').find('li')[i].className = 'DataLi_active'; //给点击的元素的class加
  132. _el.innerHTML = r.value[0].content.unEscapeQuotes(); //对数据过滤然后输出
  133. });
  134. }, [i]);
  135. //点击第一个元素
  136. if (i == 0) {
  137. _li.click();
  138. }
  139. }
  140. }
  141. /**
  142. * 事件绑定
  143. *
  144. * @fileinfo {object} 文档信息
  145. */
  146. U.MD.O.W.SP.bindInit = function (fileinfo) {
  147. var _shareEl = $('#U_MD_O_W_SP_Tool_ShareBtn')[0], //分享按钮
  148. _saveEl = $('#U_MD_O_W_SP_Tool_SaveBtn')[0], //保存到我的云盘按钮
  149. _showShareEl = U.MD.O.W.SP.shareFile(fileinfo, _shareEl), //打印分享的布局并返回户元素
  150. _winWidth;
  151. _saveEl.onclick = function () {
  152. U.MD.O.W.SP.saveSpecifiedFolder(fileinfo);
  153. }
  154. }
  155. /**
  156. * 事件绑定
  157. *
  158. * @fileinfo {object} 文档信息
  159. */
  160. U.MD.O.W.SP.backTop = function () {
  161. var _topEl = $('.U_MD_O_W_SP_Top_Icon')[0], //滚动置顶按钮
  162. _winScrollTop;
  163. $(document).bind({ scroll: function () {
  164. _winScrollTop = document.documentElement.scrollTop; //浏览器窗口到顶部的距离
  165. if (_winScrollTop >= 100) { //距离大于等于100px显示按钮
  166. if (_topEl.style.visibility == 'hidden') //隐藏
  167. _topEl.style.visibility = 'unset'; //显示
  168. _topEl.style.top = document.documentElement.clientHeight + _winScrollTop - 200 + 'px'; //显示位置
  169. } else if (_winScrollTop < 100 && _topEl.style.visibility == 'unset') { //显示
  170. _topEl.style.visibility = 'hidden'; //隐藏
  171. }
  172. }
  173. })
  174. _topEl.onclick = function () {
  175. U.MD.O.W.SP.topAnimate(document.documentElement, 0)
  176. }
  177. }
  178. /**
  179. * 置顶动画
  180. *
  181. * @ele {element} 移动元素
  182. * @target {number} 目标点
  183. */
  184. U.MD.O.W.SP.topAnimate = function (ele, target) {
  185. clearInterval(ele.timer); //清楚历史定时器
  186. ele.timer = setInterval(function () {
  187. //获取步长 确定移动方向(正负值) 步长应该是越来越小的,缓动的算法。
  188. var step = (target - ele.scrollTop) / 10;
  189. //对步长进行二次加工(大于0向上取整,小于0项下取整)
  190. step = step > 0 ? Math.ceil(step) : Math.floor(step);
  191. //动画原理: 目标位置 = 当前位置 + 步长
  192. ele.scrollTop = ele.scrollTop + step;
  193. //检测缓动动画有没有停止
  194. if (Math.abs(target - ele.scrollTop) <= Math.abs(step)) {
  195. ele.scrollTop = target; //直接移动指定位置
  196. clearInterval(ele.timer);
  197. }
  198. }, 16);
  199. }
  200. /**
  201. * 分享功能
  202. *
  203. * @fileInfo {object} 文档信息
  204. * @parentel {element} 添加的元素
  205. */
  206. U.MD.O.W.SP.shareFile = function (fileinfo, parentel) {
  207. var _content = $$('div', { className: "U_MD_O_W_SP_ShareBox" }), //创建最外层元素
  208. _shareTitle = $$('div', { className: "U_MD_O_W_SP_ShareTitle" }, _content), //分享小标题
  209. _shareBorder = $$('div', { className: "U_MD_O_W_SP_ShareBorder" }, _content), //分割线
  210. _wechat = $$('div', { className: "shareBlock" }, _content), //微信好友分享按钮
  211. _qq = _wechat.cloneNode(), //克隆元素
  212. _xin = _wechat.cloneNode(); //克隆元素
  213. $$('span', { innerText: "分享" }, _shareTitle); //创建文字
  214. $$('img', { src: "/img/xinlangRed.png", style: { width: '24px'} }, _xin); //创建图片
  215. $$('img', { src: "/img/qq.png", style: { width: '24px'} }, _qq); //创建图片
  216. $$('img', { src: "/img/wechat.png", style: { width: '24px'} }, _wechat); //创建图片
  217. $$('div', { innerText: "新浪微博" }, _xin); //创建文字
  218. $$('div', { innerText: "微信好友" }, _wechat); //创建文字
  219. $$('div', { innerText: "QQ好友" }, _qq); //创建文字
  220. $$('div', { className: "U_MD_O_W_SP_ShareBorder" }, _content); //分割线
  221. _wechat.className += " U_MD_O_W_SP_WeChat"; //加class
  222. _content.appendChild(_qq); //添加至最元素
  223. $$('div', { className: "U_MD_O_W_SP_ShareBorder" }, _content); //分割线
  224. _content.appendChild(_xin); //添加至最元素
  225. _qq.onclick = function () { //绑定点击事件
  226. var _title = "这个文档超赞的,赶快分享给大家吧!【" + fileinfo.Username + "--分享自-互联办公】"; //设置文本
  227. U.UF.OT.qqFriendShare('', _title); //调用qq好友分享的接口
  228. }
  229. _xin.onclick = function () {//绑定点击事件
  230. var _title = "这个文档超赞的,赶快分享给大家吧!【" + fileinfo.Username + "--分享自-互联办公】"; //设置文本
  231. U.UF.OT.weiboShare('', _title); //调用微博分享的接口
  232. }
  233. U.UF.OT.weChatShareCode(_wechat); //调用微信分享的接口
  234. parentel.appendChild(_content);
  235. return _content; //返回元素
  236. }
  237. /**
  238. * 保存我的云盘
  239. *
  240. * @fileinfo {object} 文档信息
  241. */
  242. U.MD.O.W.SP.saveSpecifiedFolder = function () {
  243. var _loginChecked = U.MD.U.L.isLogin(); //拿到登录状态值
  244. if (!_loginChecked) { //判断是否登录
  245. var _form = !Object.getOwnPropertynames(US.disk.Disks).length && U.MD.DK.initDisk(US.userInfo.userid, 'f6d7a4b6-e34c-4964-beed-24187b2cb1ba'); //拿到网盘的窗体
  246. _form && (_form.style.display = 'none'); //隐藏窗体
  247. if (Object.getOwnPropertynames(US.disk.Disks).length) { //判断US.disk.Disks常量是否有值
  248. var _guid = Guid.newGuid(); //生成GUID
  249. U.MD.DK.VW.chosenSaveFile(U.MD.O.W.SP.FILEINFO.UserFilesExtendName.toLowerCase(), _guid, U.MD.O.W.SP.FILEINFO.UserFilesName, function (fileinfo) { //调用选择保存文件弹窗位置的接口
  250. var _fileInfo = fileinfo; //文档信息
  251. U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "SaveFileContent", fileinfo.UserDirectoryID, U.MD.O.W.SP.FILEINFO.UsOffice, fileinfo.UserallDirectoryname || U.MD.O.W.SP.FILEINFO.UserFilesName], function (r) { //将文档数据存储至数据库
  252. var _foldername = ''; //定义
  253. for (var i = 0; i < US.disk.initTree.length; i++) { //循环判断用户保存到那个文件夹下
  254. if (US.disk.initTree[i][0] == _fileInfo.UserDirectoryParentID) {
  255. _foldername = US.disk.initTree[i][4];
  256. break;
  257. }
  258. }
  259. if (r.value) { //判断数据库返回值判断是否插入成功
  260. U.Alert("以保存到云盘【" + _foldername + "】目录下!"); //提示用户
  261. } else {
  262. U.Alert("文档保存失败!") //提示用户
  263. }
  264. });
  265. });
  266. } else {
  267. U.alert('数据加载中...'); //提示用户
  268. }
  269. } else {
  270. U.alert('登录失败!'); //提示用户
  271. };
  272. }
  273. //$('.U_MD_O_W_SP_ToolsBar').bind('click', function () {
  274. // U.MD.O.W.SP.isLogin(fileinfo);
  275. //})
  276. U.MD.O.W.SP.eidtor = function (fileinfo) {
  277. if (US.userInfo.userid == fileinfo.UserID || (Guid.IsGuid(fileinfo.UserDirectoryEncrypt) && U.Json.select(US.friend.group, { GroupManageID: fileinfo.UserDirectoryEncrypt })[0])) {
  278. var fileinfo = {
  279. UserId: fileinfo.UserID,
  280. GroupID: fileinfo.UserDirectoryEncrypt,
  281. UserDirectoryID: fileinfo.UserFilesID,
  282. UserallDirectoryName: fileinfo.UserFilesName,
  283. UserDirectoryExtendType: fileinfo.UserFilesExtendName
  284. }
  285. console.log(fileinfo);
  286. U.MD.O.excel(US.userInfo, fileinfo);
  287. } else {
  288. U.Alert("无编辑权限");
  289. }
  290. }
  291. U.MD.O.W.SP.isLogin = function (fileinfo) {
  292. if (!US.userInfo.userid) {
  293. U.MD.U.L.login(function () { U.MD.O.W.SP.eidtor(fileinfo) });
  294. } else {
  295. U.MD.O.W.SP.eidtor(fileinfo)
  296. }
  297. }
  298. /**
  299. * 初始化加载评论
  300. *
  301. */
  302. //U.MD.O.W.SP.initReply = function () {
  303. // var _el = $(".U_MD_O_W_SP_Reply")[0];
  304. // U.MD.R.reply({ 'type': true, 'el': _el, 'pid': "36341f7e-77a9-11e8-b499-005056b350a4" });
  305. //}