国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

608 lines
21KB

  1. var fixupPos = false;
  2. var canMove = false;
  3. var leftLeaning = 0;
  4. var nForm = null;
  5. var nFrame = null;
  6. var picnameObj = null;
  7. var vImg = null;
  8. function GetWinPos(w, h) {
  9. var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;
  10. var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;
  11. var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
  12. var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
  13. var systemZoom = width / window.screen.availWidth;
  14. var left = (width - w) / 2 / systemZoom + dualScreenLeft;
  15. var top = (height - h) / 2 / systemZoom + dualScreenTop;
  16. return { left: left, top: top };
  17. }
  18. function SeePicNew(f, imgdid, frname, hpos, acname) {
  19. var newobj = null;
  20. if (f.value == '') return;
  21. vImg = $Obj(imgdid);
  22. picnameObj = document.getElementById('picname');
  23. nFrame = $Nav() == 'IE' ? eval('document.frames.' + frname) : $Obj(frname);
  24. nForm = f.form;
  25. //修改form的action等参数
  26. if (nForm.detachEvent) nForm.detachEvent("onsubmit", checkSubmit);
  27. else nForm.removeEventListener("submit", checkSubmit, false);
  28. nForm.action = 'archives_do.php';
  29. nForm.target = frname;
  30. nForm.dopost.value = 'uploadLitpic';
  31. nForm.submit();
  32. picnameObj.value = '';
  33. newobj = $Obj('uploadwait');
  34. if (!newobj) {
  35. newobj = document.createElement("div");
  36. newobj.id = 'uploadwait';
  37. newobj.style.position = 'absolute';
  38. newobj.className = 'uploadwait';
  39. newobj.style.width = 120;
  40. newobj.style.height = 20;
  41. newobj.style.top = hpos;
  42. newobj.style.left = 100;
  43. newobj.style.display = 'block';
  44. document.body.appendChild(newobj);
  45. newobj.innerHTML = '<img src="../../static/web/img/loadinglit.gif">';
  46. }
  47. newobj.style.display = 'block';
  48. //提交后还原form的action等参数
  49. nForm.action = acname;
  50. nForm.dopost.value = 'save';
  51. nForm.target = '';
  52. nForm.litpic.disabled = true;
  53. }
  54. function SelectFlash() {
  55. var pos = GetWinPos(800,600);
  56. window.open("./dialog/select_media.php?f=form1.flashurl", "popUpFlashWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  57. }
  58. function SelectMedia(fname) {
  59. var pos = GetWinPos(800,600);
  60. window.open("./dialog/select_media.php?f=" + fname, "popUpFlashWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  61. }
  62. function SelectSoft(fname) {
  63. var pos = GetWinPos(800,600);
  64. window.open("./dialog/select_soft.php?f=" + fname, "popUpImagesWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  65. }
  66. function SelectImage(fname, stype, imgsel="") {
  67. var pos = GetWinPos(800,600);
  68. if (!fname) fname = 'form1.picname';
  69. if (imgsel) imgsel = '&noeditor=yes';
  70. if (!stype) stype = 'small';
  71. window.open("./dialog/select_images.php?f=" + fname + "&noeditor=yes&imgstick=" + stype + imgsel, "popUpImagesWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  72. }
  73. function SelectImageN(fname, stype, vname) {
  74. var pos = GetWinPos(800,600);
  75. if (!fname) fname = 'form1.picname';
  76. if (!stype) stype = '';
  77. window.open("./dialog/select_images.php?f=" + fname + "&imgstick=" + stype + "&v=" + vname, "popUpImagesWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  78. }
  79. function SelectKeywords(f) {
  80. var pos = GetWinPos(800,600);
  81. window.open("article_keywords_select.php?f=" + f, "popUpkwWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  82. }
  83. function OpenMyWin(surl) {
  84. var pos = GetWinPos(800,600);
  85. window.open(surl, "popUpMyWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  86. }
  87. function OpenMyWinCoOne(surl) {
  88. var pos = GetWinPos(800,600);
  89. window.open(surl, "popUpMyWin2", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  90. }
  91. function InitPage() {
  92. var selsource = $Obj('selsource');
  93. var selwriter = $Obj('selwriter');
  94. var colorbt = $Obj('color');
  95. if (selsource) { selsource.onmousedown = function (e) { SelectSource(e); } }
  96. if (selwriter) { selwriter.onmousedown = function (e) { SelectWriter(e); } }
  97. }
  98. function $Nav() {
  99. if (window.navigator.userAgent.indexOf("MSIE") >= 1) return 'IE';
  100. else if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF';
  101. else return "OT";
  102. }
  103. function $Obj(objname) {
  104. return document.getElementById(objname);
  105. }
  106. function ColorSel(c, oname) {
  107. var tobj = $Obj(oname);
  108. if (!tobj) tobj = eval('document.form1.' + oname);
  109. if (!tobj) {
  110. $Obj('colordlg').style.display = 'none';
  111. return false;
  112. } else {
  113. tobj.value = c;
  114. $Obj('colordlg').style.display = 'none';
  115. return true;
  116. }
  117. }
  118. function ShowColor(e, o) {
  119. LoadNewDiv(e, '../../static/web/img/colornew.htm', 'colordlg');
  120. }
  121. function ShowHide(objname) {
  122. var obj = $Obj(objname);
  123. if (obj.style.display != "none") obj.style.display = "none";
  124. else obj.style.display = "inline-block";
  125. }
  126. function ShowObj(objname) {
  127. var obj = $Obj(objname);
  128. if (obj == null) return false;
  129. obj.style.display = ($Nav() == "IE" ? "inline-block" : "table-row");
  130. }
  131. function ShowObjRow(objname) {
  132. var obj = $Obj(objname);
  133. obj.style.display = ($Nav() == "IE" ? "inline-block" : "table-row");
  134. }
  135. function AddTypeid2() {
  136. ShowObjRow('typeid2tr');
  137. }
  138. function HideObj(objname) {
  139. var obj = $Obj(objname);
  140. if (obj == null) return false;
  141. obj.style.display = "none";
  142. }
  143. function SeePic(img, f) {
  144. if (f.value != '') img.src = f.value;
  145. }
  146. function PutSource(str) {
  147. var osource = $Obj('source');
  148. if (osource) osource.value = str;
  149. $Obj('mysource').style.display = 'none';
  150. ChangeFullDiv('hide');
  151. }
  152. function PutWriter(str) {
  153. var owriter = $Obj('writer');
  154. if (owriter) owriter.value = str;
  155. $Obj('mywriter').style.display = 'none';
  156. ChangeFullDiv('hide');
  157. }
  158. function ClearDivCt(objname) {
  159. if (!$Obj(objname)) return;
  160. $Obj(objname).innerHTML = '';
  161. $Obj(objname).style.display = 'none';
  162. ChangeFullDiv("hide");
  163. }
  164. function ChangeFullDiv(showhide, screenheigt) {
  165. var newobj = $Obj('fullpagediv');
  166. if (showhide == 'show') {
  167. if (!newobj) {
  168. newobj = document.createElement("div");
  169. newobj.id = 'fullpagediv';
  170. newobj.style.position = 'absolute';
  171. newobj.className = 'fullpagediv';
  172. newobj.style.height = document.body.clientHeight + 50 + 'px';
  173. document.body.appendChild(newobj);
  174. } else {
  175. newobj.style.display = 'block';
  176. }
  177. } else {
  178. if (newobj) newobj.style.display = 'none';
  179. }
  180. }
  181. function SelectSource(e) {
  182. LoadNewDiv(e, 'article_select_sw.php?t=source&k=8&rnd=' + Math.random(), 'mysource');
  183. }
  184. function SelectWriter(e) {
  185. LoadNewDiv(e, 'article_select_sw.php?t=writer&k=8&rnd=' + Math.random(), 'mywriter');
  186. }
  187. function LoadNewDiv(e, surl, oname) {
  188. var pxStr = '';
  189. if ($Nav() == 'IE') {
  190. var posLeft = window.event.clientX - 20;
  191. var posTop = window.event.clientY - 30;
  192. //IE下scrollTop的兼容性问题
  193. var scrollTop = document.documentElement.scrollTop || window.pageYOffset;
  194. if (typeof (scrollTop) == 'undefined') scrollTop = document.body.scrollTop;
  195. posTop += scrollTop;
  196. } else {
  197. var posLeft = e.pageX - 20;
  198. var posTop = e.pageY - 30;
  199. pxStr = 'px';
  200. }
  201. posLeft = posLeft - 100;
  202. var newobj = $Obj(oname);
  203. if (!newobj) {
  204. newobj = document.createElement("div");
  205. newobj.id = oname;
  206. newobj.style.position = 'absolute';
  207. newobj.className = oname;
  208. newobj.className += ' dlgws';
  209. newobj.style.top = posTop + pxStr;
  210. newobj.style.left = posLeft + pxStr;
  211. document.body.appendChild(newobj);
  212. } else {
  213. newobj.style.display = "block";
  214. }
  215. if (newobj.innerHTML.length < 10) {
  216. fetch(surl).then(resp => resp.text()).then((d) => { newobj.innerHTML = d });
  217. }
  218. }
  219. function LoadNewDiv2(e, surl, oname, dlgcls) {
  220. var posLeft = 300;
  221. var posTop = 50;
  222. var newobj = $Obj(oname);
  223. if (!newobj) {
  224. newobj = document.createElement("div");
  225. newobj.id = oname;
  226. newobj.style.position = 'absolute';
  227. newobj.className = dlgcls;
  228. newobj.style.top = posTop;
  229. newobj.style.left = posLeft;
  230. newobj.style.display = 'none';
  231. document.body.appendChild(newobj);
  232. }
  233. newobj.innerHTML = '';
  234. fetch(surl).then(resp => resp.text()).then((d) => {
  235. newobj.innerHTML = d;
  236. });
  237. if (newobj.innerHTML == '') newobj.style.display = 'none';
  238. else newobj.style.display = 'block';
  239. jQuery(newobj).css('top', '50px').css('left', '300px');
  240. DedeXHTTP = null;
  241. }
  242. function ShowUrlTr() {
  243. var jumpTest = $Obj('flagsj');
  244. var jtr = $Obj('redirecturltr');
  245. var jf = $Obj('redirecturl');
  246. if (jumpTest.checked) jtr.style.display = "block";
  247. else {
  248. jf.value = '';
  249. jtr.style.display = "none";
  250. }
  251. }
  252. function ShowUrlTrEdit() {
  253. ShowUrlTr();
  254. var jumpTest = $Obj('isjump');
  255. var rurl = $Obj('redirecturl');
  256. if (!jumpTest.checked) rurl.value = "";
  257. }
  258. function CkRemote() {
  259. document.getElementById('picname').value = '';
  260. }
  261. //复制文档到剪切板
  262. function copyToClipboard(txt) {
  263. if (txt == null || txt == '') {
  264. alert("没有选择任何文档");
  265. return;
  266. }
  267. if (window.clipboardData) {
  268. window.clipboardData.clearData();
  269. window.clipboardData.setData("Text", txt);
  270. } else if (navigator.userAgent.indexOf('Opera') != -1) {
  271. window.location = txt;
  272. } else {
  273. try {
  274. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  275. } catch (e) {
  276. alert("浏览器已拒绝,请稍后重试");
  277. }
  278. var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  279. if (!clip) return;
  280. var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  281. if (!trans) return;
  282. trans.addDataFlavor('text/unicode');
  283. var str = new Object();
  284. var len = new Object();
  285. var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  286. var copytext = txt;
  287. str.data = copytext;
  288. trans.setTransferData("text/unicode", str, copytext.length * 2);
  289. var clipid = Components.interfaces.nsIClipboard;
  290. if (!clip) return false;
  291. clip.setData(trans, null, clipid.kGlobalClipboard);
  292. }
  293. }
  294. function getSelTxt() {
  295. var g, r;
  296. if (document.all) {
  297. g = document.selection.createRange().text;
  298. } else {
  299. g = document.getSelection();
  300. }
  301. return g;
  302. }
  303. //文档列表快捷属性弹出
  304. function LoadQuickDiv(e, surl, oname, w, h) {
  305. var newobj = $Obj(oname);
  306. if (!newobj) {
  307. newobj = document.createElement("div");
  308. newobj.id = oname;
  309. newobj.style.position = 'fixed';
  310. newobj.className = 'pubdlg';
  311. newobj.style.width = w;
  312. newobj.style.height = h + 30;
  313. document.body.appendChild(newobj);
  314. }
  315. newobj.style.top = "50%";
  316. newobj.style.left = "50%";
  317. newobj.style.display = 'block';
  318. newobj.style.transform = "translate(-50%, -201px)";
  319. newobj.innerHTML = '<img src="../../static/web/img/loadinglit.gif">';
  320. fetch(surl).then(resp => resp.text()).then((d) => {
  321. newobj.innerHTML = d;
  322. });
  323. fixupPos = false;
  324. }
  325. //显示副栏目
  326. function ShowCatMap(e, obj, cid, targetId, oldvalue) {
  327. fixupPos = true;
  328. LoadQuickDiv(e, 'archives_do.php?dopost=getCatMap&targetid=' + targetId + '&channelid=' + cid + '&oldvalue=' + oldvalue + '&rnd=' + Math.random(), 'getCatMap', '700px', '500px');
  329. ChangeFullDiv('show');
  330. }
  331. function getSelCat(targetId) {
  332. var selBox = document.quicksel.seltypeid;
  333. var targetObj = $Obj(targetId);
  334. var selvalue = '';
  335. //副栏目多选
  336. if (targetId == 'typeid2') {
  337. var j = 0;
  338. for (var i = 0; i < selBox.length; i++) {
  339. if (selBox[i].checked) {
  340. j++;
  341. if (j == 10) break;
  342. selvalue += (selvalue == '' ? selBox[i].value : ',' + selBox[i].value);
  343. }
  344. }
  345. if (targetObj) targetObj.value = selvalue;
  346. } else {
  347. //主栏目单选
  348. if (selBox) {
  349. for (var i = 0; i < selBox.length; i++) {
  350. if (selBox[i].checked) selvalue = selBox[i].value;
  351. }
  352. }
  353. if (selvalue == '') {
  354. alert('您没有选中任何栏目');
  355. return;
  356. }
  357. if (targetObj) {
  358. for (var j = 0; j < targetObj.length; j++) {
  359. op = targetObj.options[j];
  360. if (op.value == selvalue) op.selected = true;
  361. }
  362. }
  363. }
  364. HideObj("getCatMap");
  365. ChangeFullDiv("hide");
  366. }
  367. //生成一个随机id
  368. function guid() {
  369. function S4() {
  370. return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
  371. }
  372. return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
  373. }
  374. var _DedeConfirmFuncs = {};
  375. var _DedeConfirmFuncsClose = {};
  376. function __DedeConfirmRun(modalID) {
  377. _DedeConfirmFuncs[modalID]();
  378. }
  379. function __DedeConfirmRunClose(modalID) {
  380. _DedeConfirmFuncsClose[modalID]();
  381. }
  382. function DedeConfirm(content = "", title = "确认提示") {
  383. let modalID = guid();
  384. return new Promise((resolve, reject) => {
  385. _DedeConfirmFuncs[modalID] = ()=>{
  386. resolve("success");
  387. CloseModal(`DedeModal${modalID}`);
  388. }
  389. _DedeConfirmFuncsClose[modalID] = ()=>{
  390. reject("cancel");
  391. CloseModal(`DedeModal${modalID}`);
  392. }
  393. let footer = `<button type="button" class="btn btn-outline-success btn-sm" onclick="__DedeConfirmRunClose(\'${modalID}\')">取消</button><button type="button" class="btn btn-success btn-sm" onclick="__DedeConfirmRun(\'${modalID}\')">确定</button>`;
  394. let modal = `<div id="DedeModal${modalID}" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="DedeModalLabel${modalID}"><div class="modal-dialog modal-dialog-centered" role="document"><div class="modal-content"><div class="modal-header"><h6 class="modal-title" id="DedeModalLabel${modalID}">${title}</h6>`;
  395. modal += `<button type="button" class="update-close" data-dismiss="modal" aria-label="Close"><i class="fa fa-times"></i></button>`;
  396. modal += `</div><div class="modal-body">${content}</div><div class="modal-footer">${footer}</div></div></div></div>`;
  397. $("body").append(modal)
  398. $("#DedeModal" + modalID).modal({
  399. backdrop: 'static',
  400. show: true
  401. });
  402. $("#DedeModal" + modalID).on('hidden.bs.modal', function (e) {
  403. $("#DedeModal" + modalID).remove();
  404. })
  405. })
  406. }
  407. //函数会返回一个modalID,通过这个id可自已定义一些方法,这里用到了一个展开语法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax
  408. function ShowMsg(content, ...args) {
  409. title = "系统提示";
  410. size = "";
  411. if (typeof content == "undefined") content = "";
  412. modalID = guid();
  413. var footer = `<button type="button" class="btn btn-primary btn-sm" onclick="CloseModal(\'GKModal${modalID}\')">确定</button>`;
  414. var noClose = false;
  415. if (args.length == 1) {
  416. //存在args参数
  417. if (typeof args[0].title !== 'undefined' && args[0].title != "") {
  418. title = args[0].title;
  419. }
  420. if (typeof args[0].footer !== 'undefined' && args[0].footer != "") {
  421. footer = args[0].footer;
  422. }
  423. if (typeof args[0].size !== 'undefined' && args[0].size != "") {
  424. size = args[0].size;
  425. }
  426. if (typeof args[0].noClose !== 'undefined' && args[0].noClose == true) {
  427. noClose = true;
  428. }
  429. }
  430. footer = footer.replaceAll("~modalID~", modalID);
  431. content = content.replaceAll("~modalID~", modalID);
  432. var modal = `<div id="GKModal${modalID}" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="GKModalLabel${modalID}"><div class="modal-dialog ${size}" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title" id="GKModalLabel${modalID}">${title}</h5>`;
  433. if (!noClose) {
  434. modal += `<button type="button" class="update-close" data-dismiss="modal" aria-label="Close"><i class="fa fa-times"></i></button>`;
  435. }
  436. modal += `</div><div class="modal-body">${content}</div><div class="modal-footer">${footer}</div></div></div></div>`;
  437. $("body").append(modal)
  438. $("#GKModal" + modalID).modal({
  439. backdrop: 'static',
  440. show: true
  441. });
  442. $("#GKModal" + modalID).on('hidden.bs.modal', function (e) {
  443. $("#GKModal" + modalID).remove();
  444. })
  445. return modalID;
  446. }
  447. //隐藏并销毁modal
  448. function CloseModal(modalID) {
  449. $("#" + modalID).modal('hide');
  450. $("#" + modalID).on('hidden.bs.modal', function (e) {
  451. if ($("#" + modalID).length > 0) {
  452. $("#" + modalID).remove();
  453. }
  454. })
  455. }
  456. //获取缩略图
  457. var litpicImgSrc = "";
  458. var litpicImg = "";
  459. var currentCID = 0;
  460. var mdlCropperID = "";
  461. var pubAt = 0;
  462. var optCropper = {
  463. preview: ".pv",
  464. crop: function (e) {
  465. $("#cropWidth").text(Math.round(e.detail.height));
  466. $("#cropHeight").text(Math.round(e.detail.width));
  467. if ($(this).cropper("getCroppedCanvas")) {
  468. var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL();
  469. litpicImg = dataUrl;
  470. $("#litPic").attr("src", litpicImg);
  471. }
  472. },
  473. aspectRatio: 4 / 3,
  474. //拖动截取缩略图后,截取的缩略图更新到imageItems中
  475. cropend: function (data) {
  476. //这里的id要单独取出来
  477. var dataUrl = $(this).cropper("getCroppedCanvas").toDataURL();
  478. litpicImg = dataUrl;
  479. $("#litPic").attr("src", litpicImg);
  480. $("#litpic_b64").val(litpicImg);
  481. }
  482. }
  483. var cropperAspectRatio = {
  484. 0: 16 / 9,
  485. 1: 4 / 3,
  486. 2: 1 / 1,
  487. 3: 2 / 3,
  488. 4: NaN,
  489. }
  490. function setAspectRatio(ar) {
  491. var opts = optCropper;
  492. opts.aspectRatio = cropperAspectRatio[ar];
  493. $("#cropImg" + mdlCropperID).cropper('destroy').cropper(opts);
  494. }
  495. function okImage(modalID) {
  496. uploadImage(litpicImg);
  497. $("#litPic").attr("src", litpicImg);
  498. CloseModal('GKModal' + modalID);
  499. }
  500. function useDefault(modalID) {
  501. uploadImage(litpicImgSrc);
  502. $("#litPic").attr("src", litpicImgSrc);
  503. CloseModal('GKModal' + modalID);
  504. }
  505. function uploadImage(litpicImgSrc) {
  506. const formData = new FormData()
  507. formData.append('litpic_b64', litpicImgSrc);
  508. fetch('archives_do.php?dopost=upload_base64_image', {
  509. method: 'POST',
  510. body: formData
  511. })
  512. .then(r => {
  513. if (r.ok) {
  514. return r.json()
  515. }
  516. throw new Error(errMsg);
  517. })
  518. .then(d => {
  519. if (d.code == 200) {
  520. $("#picname").val(d.data.image_url);
  521. }
  522. }).catch((error) => {
  523. alert("上传缩略图错误");
  524. });
  525. }
  526. $(document).ready(function () {
  527. $("#btnClearAll").click(function (event) {
  528. litpicImgSrc = "";
  529. litpicImg = "";
  530. $("#picname").val(litpicImg);
  531. $("#litPic").attr("src", "/static/web/img/thumbnail.jpg");
  532. })
  533. //添加图片
  534. $("#iptAddImages").change(function (event) {
  535. var files = event.target.files;
  536. for (var i = 0, f; f = files[i]; i++) {
  537. //如果不是图片忽略
  538. if (!f.type.match('image.*')) {
  539. continue;
  540. }
  541. //将图片渲染到浏览器
  542. var reader = new FileReader();
  543. reader.onload = (function (theFile) {
  544. return function (e) {
  545. litpicImgSrc = e.target.result;
  546. if (cfg_uplitpic_cut == 'Y') {
  547. SetThumb(litpicImgSrc);
  548. } else {
  549. uploadImage(litpicImgSrc);
  550. $("#litPic").attr("src", litpicImgSrc);
  551. }
  552. };
  553. })(f);
  554. reader.readAsDataURL(f);
  555. }
  556. $("#iptAddImages").val("");
  557. });
  558. //截取缩略图
  559. function SetThumb(srcURL) {
  560. var footer = "<p><a href='javascript:useDefault(\"~modalID~\");' class='btn btn-success btn-sm'>使用原图</a><a href='javascript:okImage(\"~modalID~\")' class='btn btn-success btn-sm'>确定</a></p>";
  561. var optButton = `<p><label for="aspectRatio">比例</label><select id="aspectRatio" onchange="setAspectRatio(this.selectedIndex)"><option>16:9</option><option selected>4:3</option><option>1:1</option><option>2:3</option><option>自定义</option></select></p>`;
  562. mdlCropperID = ShowMsg('<div class="float-left" style="width:320px"><p><img id="cropImg~modalID~" src="' + srcURL + '"></p><p>宽度:<span id="cropWidth"></span>px,高度:<span id="cropHeight"></span>px</p>' + optButton + '</div><div class="pv float-right" style="width:200px;height:100px;overflow:hidden"></div>', {
  563. footer: footer,
  564. noClose: false,
  565. title: '图片裁剪',
  566. });
  567. setTimeout(function () {
  568. $("#cropImg" + mdlCropperID).cropper(optCropper);
  569. }, 500);
  570. }
  571. if ($.fn.daterangepicker) {
  572. $('.datepicker').daterangepicker({
  573. "singleDatePicker": true,
  574. "autoApply": true,
  575. "showDropdowns": true,
  576. "linkedCalendars": false,
  577. "timePicker": true,
  578. "timePicker24Hour": true,
  579. "timePickerSeconds": true,
  580. "showCustomRangeLabel": false,
  581. "drops": "up",
  582. ranges: {
  583. '今日': [moment(), moment()],
  584. '昨日': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
  585. '本月': [moment().startOf('month'), moment().startOf('month')],
  586. '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').startOf('month')]
  587. },
  588. "locale": {
  589. format: 'YYYY-MM-DD HH:mm:ss',
  590. applyLabel: '确定',
  591. cancelLabel: '取消',
  592. daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'],
  593. monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
  594. firstDay: 1
  595. }
  596. }, function (start) {
  597. $(this).val(start.format("YYYY-MM-DD HH:mm:ss"));
  598. });
  599. $('.datepicker').on('show.daterangepicker', function (ev, picker) {
  600. if (picker.element.offset().top - $(window).scrollTop() + picker.container.outerHeight() > $(window).height()) {
  601. picker.drops = 'up';
  602. } else {
  603. picker.drops = 'down';
  604. }
  605. picker.move();
  606. })
  607. }
  608. });