view.ex.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. var userPostCode = "";
  2. function getColumns(columns) {
  3. columns = grid.getBottomColumns().clone();
  4. for (var i = columns.length - 1; i >= 0; i--) {
  5. var column = columns[i];
  6. if (!column.field || !column.visible) {
  7. columns.removeAt(i);
  8. } else {
  9. var c = { header: column.header.replace(/\n/g, "").replace(/ /g, ""), field: column.field, width: column.width };
  10. columns[i] = c;
  11. }
  12. }
  13. return columns;
  14. }
  15. function saveColumn() {
  16. if (gcTag == "") return;
  17. if (grid == undefined || grid == null) return;
  18. if (grid.columns.length < 1) return;
  19. var columns = grid.columns;
  20. var newCols = new Array();
  21. var newObj = null;
  22. for (var i = 0; i < columns.length; i++) {
  23. newObj = new Object();
  24. newObj.header = columns[i].header;
  25. newObj.field = columns[i].field;
  26. newObj.width = columns[i].width;
  27. newObj.headerAlign = columns[i].headerAlign;
  28. newObj.align = columns[i].align;
  29. newObj.allowSort = columns[i].allowSort;
  30. newObj.allowResize = columns[i].allowResize;
  31. newObj.allowMove = columns[i].allowMove;
  32. newObj.allowDrag = columns[i].allowDrag;
  33. if (columns[i].visible != undefined) newObj.visible = columns[i].visible;
  34. if (columns[i].renderer != undefined) newObj.renderer = columns[i].renderer;
  35. newObj.readOnly = columns[i].readOnly;
  36. newCols.push(newObj);
  37. }
  38. //var tag = $("#hGcTag").val();
  39. if (gcTag != "" && newCols.length > 0) {
  40. var str = JSON.stringify(newCols);
  41. postAjax("saveColumns", "name=" + gcTag + "&con=" + encodeURIComponent(str), function (data) {
  42. //resultShow(data);
  43. }, null, false);
  44. //setCookie("ptm_" + mArr[0],str);
  45. }
  46. }
  47. function getMiniDate() {
  48. var obj = new Object();
  49. //alert(mini.get("txtSdate"));
  50. if (mini.get("txtSdate") != undefined) {
  51. var _sv = mini.get("txtSdate").getValue();
  52. if (_sv != null && _sv != undefined && _sv != "") {
  53. obj.sv = _sv;
  54. }
  55. } else {
  56. obj.sv = "";
  57. }
  58. if (mini.get("txtEdate") != undefined) {
  59. var _ev = mini.get("txtEdate").getValue();
  60. if (_ev != null && _ev != undefined && _ev != "") obj.ev = _ev;
  61. } else {
  62. obj.ev = "";
  63. }
  64. return obj;
  65. }
  66. function getFormatMiniDate(fmat) {
  67. if (fmat == undefined) fmat = "yyyy-MM-dd";
  68. var obj = getMiniDate();
  69. if (obj.sv != "") obj.sv = formatTdate(obj.sv, fmat);
  70. if (obj.ev != "") obj.ev = formatTdate(obj.ev, fmat);
  71. return obj;
  72. }
  73. function onCloseClick(e) {
  74. var obj = e.sender;
  75. obj.setText("");
  76. obj.setValue("");
  77. }
  78. function defExport() {
  79. var title = $("#hRepTitle").val();
  80. comExportExcel((title == "" ? "导出报表" : title));
  81. }
  82. function comExportExcel(extname) {
  83. if (grid == null) {
  84. alert("无法导出");
  85. return;
  86. }
  87. var columns = grid.columns;
  88. function getColumns(columns) {
  89. var cols = [];
  90. var h = "";
  91. for (var i = 0; i < columns.length; i++) {
  92. var column = columns[i];
  93. //if (!column.visible || column.header == undefined) {
  94. // continue;
  95. //}
  96. if (column.header == undefined || column.header == "#") {
  97. continue;
  98. }
  99. if (typeof column.header == "function") continue;
  100. if (column.header.indexOf("<") != -1) h = column.header.toString().substring(0, column.header.indexOf("<"));
  101. else h = column.header.toString();
  102. h = h.replace(/ /g, "");
  103. //if (i == 1) alert(h);
  104. //alert(column.header);
  105. //var col = { header: h, field: column.field, type: column.type, visible: column.visible };
  106. var col = { header: h, field: column.field, type: column.type, width: column.width, visible: true };
  107. if (column.columns) {
  108. col.columns = getColumns(column.columns);
  109. }
  110. cols.push(col);
  111. }
  112. return cols;
  113. }
  114. var columns = getColumns(columns);
  115. var type = "";
  116. var sel_row = grid.getSelecteds();
  117. if (grid.multiSelect && sel_row.length > 0 || grid.url == "" || grid.showPager == false) {
  118. type = "bexcel";
  119. }
  120. else type = grid.url == "" ? "bexcel" : "excel";
  121. comDownLoad(GetPrePath() + "/Reports/comExports.aspx", { extname: extname, url: encodeURIComponent(grid.url), type: type, columns: columns }, function () {
  122. //alert("导出成功");
  123. });
  124. }
  125. function comDownLoad(url, fields, callback) {
  126. //创建Form
  127. var submitfrm = document.createElement("form");
  128. submitfrm.action = url;
  129. submitfrm.method = "post";
  130. submitfrm.target = "_blank";
  131. document.body.appendChild(submitfrm);
  132. if (fields) {
  133. for (var p in fields) {
  134. var input = mini.append(submitfrm, "<input type='hidden' name='" + p + "'>");
  135. var v = fields[p];
  136. if (typeof v != "string") v = mini.encode(v);
  137. input.value = v;
  138. }
  139. }
  140. if (grid == null) {
  141. alert("无法导出");
  142. return;
  143. }
  144. var parms = grid._dataSource.loadParams;
  145. for (var item in parms) {
  146. if (parms[item] == undefined || parms[item] == null) continue;
  147. mini.append(submitfrm, "<input type='hidden' name='" + item + "' value=\"" + parms[item] + "\">");
  148. }
  149. var sel_row = grid.getSelecteds();
  150. if (grid.multiSelect && sel_row.length > 0) {
  151. mini.append(submitfrm, "<input type='hidden' name='hExData' value='" + mini.encode(sel_row) + "'>");
  152. } else {
  153. if (grid.url == undefined || grid.url == "" || grid.showPager == false) {
  154. //ame = 'hExData' value = '" + mini.encode(grid.data)
  155. mini.append(submitfrm, "<input type='hidden' name='hExData' value='" + mini.encode(grid.data) + "'>");
  156. }
  157. }
  158. if (mini.get("txtSdate") != null && mini.get("txtSdate").getText() != "") {
  159. mini.append(submitfrm, "<input type='hidden' name='hExSdate' value=\"" + mini.get("txtSdate").getText() + "\">");
  160. }
  161. if (mini.get("txtEdate") != null && mini.get("txtEdate").getText() != "") {
  162. mini.append(submitfrm, "<input type='hidden' name='hExEdate' value=\"" + mini.get("txtEdate").getText() + "\">");
  163. }
  164. //mini.append()
  165. submitfrm.submit();
  166. setTimeout(function () {
  167. submitfrm.parentNode.removeChild(submitfrm);
  168. if (callback) callback();
  169. }, 1000);
  170. }
  171. function noFileDown(url, pdata) {
  172. postUrlAjax(url + "?", "", pdata, function (data) {
  173. showToast(data);
  174. if (grid != null) grid.reload();
  175. }, function (data) {
  176. alert(data);
  177. if (grid != null) grid.reload();
  178. })
  179. }
  180. function noFileDownForMulProcess(url, pdata, sFn, eFn) {
  181. postUrlAjaxSync(url + "?", "", pdata, function (data) {
  182. sFn(data)
  183. }, function (data) {
  184. eFn(data);
  185. })
  186. }
  187. function fileDown(url, pdata) {
  188. $.fileDownload(url, {
  189. httpMethod: 'GET',
  190. data: pdata,
  191. // preparingMessageHtml:'文件正在下载,请稍等...', // 需要jquery-ui.js
  192. // failMessageHtml:'文件下载失败!!', // 需要jquery-ui.js
  193. prepareCallback: function (url) {
  194. //layer.msg("文件下载中...");
  195. // 数据加载动画
  196. //$("body").append('<div id="pload" style="position:fixed;top:45%;z-index:1200;background:url(images/loading2.gif) top center no-repeat;width:1900px;height:768px;margin:auto auto;"></div>');
  197. },
  198. abortCallback: function (url) {
  199. // 异常终止
  200. alert("文件下载异常!!");
  201. //$("#pload").remove();
  202. },
  203. successCallback: function (url) {
  204. console.log("下载成功");
  205. showToast("下载成功");
  206. if (grid != null) grid.reload();
  207. //$("#pload").remove();
  208. },
  209. failCallback: function (html, url) {
  210. console.log("errdownload", html)
  211. alert(html);
  212. alert("文件下载失败!!");
  213. //$("#pload").remove();
  214. }
  215. });
  216. }
  217. function fileDownForCallback(url, pdata, sFn, eFn, aFn) {
  218. $.fileDownload(url, {
  219. httpMethod: 'GET',
  220. data: pdata,
  221. // preparingMessageHtml:'文件正在下载,请稍等...', // 需要jquery-ui.js
  222. // failMessageHtml:'文件下载失败!!', // 需要jquery-ui.js
  223. prepareCallback: function (url) {
  224. //layer.msg("文件下载中...");
  225. // 数据加载动画
  226. //$("body").append('<div id="pload" style="position:fixed;top:45%;z-index:1200;background:url(images/loading2.gif) top center no-repeat;width:1900px;height:768px;margin:auto auto;"></div>');
  227. },
  228. abortCallback: function (url) {
  229. // 异常终止
  230. //alert("文件下载异常!!");
  231. //$("#pload").remove();
  232. aFn(1);
  233. },
  234. successCallback: function (url) {
  235. console.log("下载成功");
  236. showToast("下载成功");
  237. sFn(1);
  238. //if (grid != null) grid.reload();
  239. //$("#pload").remove();
  240. },
  241. failCallback: function (html, url) {
  242. console.log("errdownload", html)
  243. eFn(1);
  244. //alert(html);
  245. //alert("文件下载失败!!");
  246. //$("#pload").remove();
  247. }
  248. });
  249. }
  250. function fileDownLoad(url, fields, callback) {
  251. //创建Form
  252. var submitfrm = document.createElement("form");
  253. submitfrm.action = url;
  254. submitfrm.method = "post";
  255. submitfrm.target = "_blank";
  256. document.body.appendChild(submitfrm);
  257. mini.append(submitfrm, "<input type='hidden' name='hExData' value='" + encodeURIComponent(fields) + "'>");
  258. submitfrm.submit();
  259. setTimeout(function () {
  260. submitfrm.parentNode.removeChild(submitfrm);
  261. if (callback) callback();
  262. }, 1000);
  263. }
  264. function fileDownLoadWin(url, fields, callback) {
  265. openWaiWin("下载", url + "?hexdata=" + fields, function (data) {
  266. if (data == "save") {
  267. grid.reload();
  268. }
  269. });
  270. }
  271. var zdData = null;
  272. var zdDefColumns = null;
  273. function zdConfig() {
  274. if (zdDefColumns == null) {
  275. zdDefColumns = grid.columns;
  276. }
  277. if (zdData == null) {
  278. zd_init();
  279. }
  280. $("#zd_div").show();
  281. }
  282. function getZdPath() {
  283. var path = window.location.pathname;
  284. path = path.replace(/\//g, "_");
  285. var eidx = path.indexOf(".");
  286. path = path.substring(1, eidx);
  287. return path;
  288. }
  289. function getZdModelColumns(name) {
  290. if (zdData != null && zdData.length > 0) {
  291. for (var i = 0; i < zdData.length; i++) {
  292. if (name == zdData[i].name) {
  293. return zdData[i].con;
  294. }
  295. }
  296. }
  297. return null;
  298. }
  299. function zd_init(name) {
  300. var path = getZdPath();
  301. $("#selZdModel").empty();
  302. postAjax("get_zdmodel", "path=" + path, function (data) {
  303. if (data != null) {
  304. zdData = data;
  305. var op = "<option value=\"0\">--默认模板--</option>";
  306. for (var i = 0; i < data.length; i++) {
  307. if (name != undefined && name == data[i].name) op += "<option selected=\"selected\" value=\"" + data[i].name + "\">" + data[i].name + "</option>";
  308. else op += "<option value=\"" + data[i].name + "\">" + data[i].name + "</option>";
  309. }
  310. $("#selZdModel").append(op);
  311. if (name == undefined) zdModelChange();
  312. }
  313. });
  314. }
  315. function zdModelChange() {
  316. var zdName = $("#selZdModel").val();
  317. var loadDef = false;
  318. if (zdName == "0") {
  319. $("#txtZdModel").val("");
  320. if (zdDefColumns != null) {
  321. grid.set({ columns: zdDefColumns });
  322. }
  323. } else {
  324. $("#txtZdModel").val(zdName);
  325. var cdata = getZdModelColumns(zdName);
  326. cdata = JSON.parse(cdata.replace(/“/g, "\""));
  327. if (cdata != null) {
  328. var nobj = null;
  329. var clen = cdata.length;
  330. for (var i = 0; i < zdDefColumns.length; i++) {
  331. for (var j = 0; j < clen; j++) {
  332. if (zdDefColumns[i].type != cdata[j].type && zdDefColumns[i].field != cdata[j].field) {
  333. nobj = $.extend({}, zdDefColumns[i]);
  334. nobj.visible = false;
  335. cdata.push(nobj);
  336. break;
  337. }
  338. }
  339. }
  340. grid.set({ columns: cdata });
  341. }
  342. }
  343. if (grid.columns.length < 1) return;
  344. $(".zd_col").empty();
  345. var columns = grid.columns;
  346. var colArr = new Array();
  347. for (var i = 0; i < columns.length; i++) {
  348. if (columns[i].name != undefined && columns[i].name == "action") continue;
  349. if (columns[i].type == "checkcolumn") continue;
  350. if (columns[i].type == "indexcolumn") colArr.push("<input type=\"checkbox\" onclick=\"zd_check(this)\" idx=\"" + i + "\" id=\"chk_" + columns[i].field + "\" " + (columns[i].visible ? "checked=\"checked\"" : "") + "/><label>序号</label>");
  351. else colArr.push("<input type=\"checkbox\" onclick=\"zd_check(this)\" id=\"chk_" + columns[i].field + "\" idx=\"" + i + "\" " + (columns[i].visible ? "checked=\"checked\"" : "") + "/><label>" + columns[i].header + "</label>");
  352. }
  353. $(".zd_col").html(colArr.join("&nbsp;"));
  354. }
  355. function getZdColumns() {
  356. var columns = grid.columns;
  357. if (columns.length < 1) return null;
  358. var newCols = new Array();
  359. var newObj = null;
  360. for (var i = 0; i < columns.length; i++) {
  361. if (columns[i].type == "checkcolumn") continue;
  362. if (columns[i].type == "indexcolumn") continue;
  363. newObj = new Object();
  364. if (columns[i].type != undefined) newObj.type = columns[i].type;
  365. newObj.header = columns[i].header;
  366. newObj.field = columns[i].field;
  367. newObj.width = columns[i].width;
  368. newObj.headerAlign = columns[i].headerAlign;
  369. newObj.align = columns[i].align;
  370. newObj.allowSort = columns[i].allowSort;
  371. newObj.allowResize = columns[i].allowResize;
  372. newObj.allowMove = columns[i].allowMove;
  373. newObj.allowDrag = columns[i].allowDrag;
  374. if (columns[i].visible != undefined) newObj.visible = columns[i].visible;
  375. if (columns[i].renderer != undefined) newObj.renderer = columns[i].renderer;
  376. newObj.readOnly = columns[i].readOnly;
  377. newCols.push(newObj);
  378. }
  379. return newCols;
  380. }
  381. function zd_check(o) {
  382. var idx = $(o).attr("idx");
  383. if (o.checked) grid.showColumn(grid.getColumn(parseInt(idx)));
  384. else grid.hideColumn(grid.getColumn(parseInt(idx)));//.visible = o.checked;
  385. }
  386. function zdSelAll() {
  387. $(".zd_col").find("input").each(function (e) {
  388. this.checked = true;
  389. });
  390. }
  391. function zdUnSelAll() {
  392. var sObj = $(".zd_col").find("input");
  393. for (var i = 0; i < sObj.length; i++) {
  394. if (sObj[i].checked) sObj[i].checked = false;
  395. else sObj[i].checked = true;
  396. }
  397. }
  398. function zdExport() {
  399. //$("#zd_div").hide();
  400. defExport();
  401. }
  402. function zdCancel() {
  403. $("#zd_div").hide();
  404. }
  405. function saveZdModel() {
  406. //var sm = $("#selZdModel").val();
  407. var name = $("#txtZdModel").val();
  408. if (name == "") {
  409. alert("模板名不允许为空才能保存!");
  410. return;
  411. }
  412. var path = getZdPath();
  413. var cdata = JSON.stringify(getZdColumns());
  414. var parms = new Object();
  415. parms.name = name;
  416. parms.path = path;
  417. parms.cdata = cdata;
  418. postAjax("save_zdmodel", parms, function (data) {
  419. resultShow(data, "zd_init('" + name + "')");
  420. });
  421. }
  422. function delZdModel() {
  423. var sm = $("#selZdModel").val();
  424. if (sm == "0") {
  425. alert("只有保存过的模板才能删除!");
  426. return;
  427. }
  428. if (!confirm("确认删除?")) return;
  429. var path = getZdPath();
  430. postAjax("del_zdmodel", "path=" + path + "&name=" + sm, function (data) {
  431. if (data == "删除成功") {
  432. resultShow(data, "zd_init()");
  433. }
  434. });
  435. }
  436. function copyText(obj) {
  437. var div = obj;
  438. var rec = grid.getSelected();
  439. let text = div.innerText;
  440. if (rec.type == "PDD") {
  441. div.innerText = text + "《" + rec.ctid + "》";
  442. }
  443. if (document.body.createTextRange) {
  444. var range = document.body.createTextRange();
  445. range.moveToElementText(div);
  446. range.select();
  447. } else if (window.getSelection) {
  448. var selection = window.getSelection();
  449. var range = document.createRange();
  450. range.selectNodeContents(div);
  451. selection.removeAllRanges();
  452. selection.addRange(range);
  453. } else {
  454. //console.warn("none");
  455. return;
  456. }
  457. document.execCommand("Copy");
  458. div.innerText = text;
  459. mini.showTips({
  460. content: "复制成功!",
  461. state: "danger",
  462. x: "Center",
  463. y: "Center",
  464. timeout: 1000
  465. });
  466. }
  467. function copyTextPlus(txt) {
  468. $(document.body).append("<div id=\"copy_div\" style=\"position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;\"><input id=\"copy_inp\" type=\"text\" value=\"" + txt + "\" /></div>");
  469. var inp = document.getElementById("copy_inp");
  470. inp.value = txt;
  471. inp.select();
  472. document.execCommand("Copy");
  473. mini.showTips({
  474. content: "复制成功!",
  475. state: "danger",
  476. x: "Center",
  477. y: "Center",
  478. timeout: 1000
  479. });
  480. //inp.value = "";
  481. $("#copy_div").remove();
  482. }
  483. function clickToDetail(ctid, tid) {
  484. var ucode = userPostCode == undefined ? "" : userPostCode;
  485. if (ucode == "Supplier") return;
  486. if (ctid != "" && tid != "") {
  487. openWin("订单详情", "EOrder/Order_Detail.aspx?ctid=" + ctid + "&tid=" + tid + "", 1000, 500);
  488. }
  489. }
  490. function clickToLog(ctid) {
  491. if (ctid != "") {
  492. openWin("订单日志", "EOrder/Order_Log.aspx?ctid=" + ctid, 605, 685);
  493. }
  494. }
  495. function designBillLog(ctid) {
  496. if (ctid != "") {
  497. openWin("设计费日志", "EFinance/DesignerBillLog.aspx?ctid=" + ctid, 605, 685);
  498. }
  499. }
  500. var downback_frame = null;
  501. function getDownFrameObj() {
  502. if (downback_frame == null) {
  503. var ifObj = $(document).find("#downback_frame");
  504. if (ifObj != null && ifObj[0] != undefined && ifObj[0].contentWindow != undefined) {
  505. downback_frame = ifObj[0].contentWindow;
  506. } else {
  507. return null;
  508. }
  509. }
  510. return downback_frame;
  511. }