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.
 
 
 
 
 
 

305 lines
14 KiB

  1. (function (a) {
  2. if (!a.browser) {
  3. a.browser = {};
  4. a.browser.mozilla = !1;
  5. a.browser.webkit = !1;
  6. a.browser.opera = !1;
  7. a.browser.msie = !1;
  8. var b = navigator.userAgent;
  9. a.browser.name = navigator.appName;
  10. a.browser.fullVersion = "" + parseFloat(navigator.appVersion);
  11. a.browser.majorVersion = parseInt(navigator.appVersion, 10);
  12. var f, c; - 1 != (c = b.indexOf("Opera")) ? (a.browser.opera = !0, a.browser.name = "Opera", a.browser.fullVersion = b.substring(c + 6), -1 != (c = b.indexOf("Version")) && (a.browser.fullVersion = b.substring(c + 8))) : -1 != (c = b.indexOf("MSIE")) ? (a.browser.msie = !0, a.browser.name = "Microsoft Internet Explorer", a.browser.fullVersion = b.substring(c + 5)) : -1 != (c = b.indexOf("Chrome")) ? (a.browser.webkit = !0, a.browser.name = "Chrome", a.browser.fullVersion = b.substring(c + 7)) : -1 != (c = b.indexOf("Safari")) ? (a.browser.webkit = !0, a.browser.name = "Safari", a.browser.fullVersion = b.substring(c + 7), -1 != (c = b.indexOf("Version")) && (a.browser.fullVersion = b.substring(c + 8))) : -1 != (c = b.indexOf("Firefox")) ? (a.browser.mozilla = !0, a.browser.name = "Firefox", a.browser.fullVersion = b.substring(c + 8)) : (f = b.lastIndexOf(" ") + 1) < (c = b.lastIndexOf("/")) && (a.browser.name = b.substring(f, c), a.browser.fullVersion = b.substring(c + 1), a.browser.name.toLowerCase() == a.browser.name.toUpperCase() && (a.browser.name = navigator.appName)); - 1 != (b = a.browser.fullVersion.indexOf(";")) && (a.browser.fullVersion = a.browser.fullVersion.substring(0, b)); - 1 != (b = a.browser.fullVersion.indexOf(" ")) && (a.browser.fullVersion = a.browser.fullVersion.substring(0, b));
  13. a.browser.majorVersion = parseInt("" + a.browser.fullVersion, 10);
  14. isNaN(a.browser.majorVersion) && (a.browser.fullVersion = "" + parseFloat(navigator.appVersion), a.browser.majorVersion = parseInt(navigator.appVersion, 10));
  15. a.browser.version = a.browser.majorVersion
  16. }
  17. })(jQuery);
  18. (function (a) {
  19. var b;
  20. a.fn.jqprint = function (f) {
  21. b = a.extend({}, a.fn.jqprint.defaults, f);
  22. f = this instanceof jQuery ? this : a(this);
  23. if (b.operaSupport && a.browser.opera) {
  24. var c = window.open("", "jqPrint-preview");
  25. c.document.open();
  26. var d = c.document
  27. } else {
  28. var e = a("<iframe />");
  29. b.debug || e.css({
  30. position: "absolute",
  31. width: "0px",
  32. height: "0px",
  33. left: "-600px",
  34. top: "-600px"
  35. });
  36. e.appendTo("body");
  37. d = e[0].contentWindow.document
  38. }
  39. d.write("<title></title><style>@page{size: auto;margin: 0mm;}html{background-color: #FFFFFF;margin: 0px;}body{border: solid 1px blue;margin: 10mm 15mm 10mm 15mm;}</style >");
  40. b.importCSS && (0 < a("link[media=print]").length ? a("link[media=print]").each(function () {
  41. d.write("<link type='text/css' rel='stylesheet' href='" + a(this).attr("href") + "' media='print' />")
  42. }) : a("link").each(function () {
  43. if (a(this).attr("href") != '/favicon.ico') {
  44. d.write("<link type='text/css' rel='stylesheet' href='" + a(this).attr("href") + "' />")
  45. }
  46. }), d.write("<style>" + a("style").html() + "</style>"));
  47. b.printContainer ? d.write(f.outer()) : f.each(function () {
  48. d.write(a(this).html())
  49. });
  50. d.close();
  51. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).focus();
  52. setTimeout(function () {
  53. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).print();
  54. c && c.close()
  55. }, 1E3)
  56. };
  57. a.fn.outer = function () {
  58. for (var b = this.clone(), c = a(this), b = a(b), d = 0; 100 > d; d++) {
  59. var e = c.parent().prop("nodeName").toLowerCase(),
  60. b = a("<" + e + "></" + e + ">").attr("style", c.parent().attr("style")).addClass(c.parent().attr("class")).html(b.clone());
  61. if ("body" == e) break;
  62. c = c.parent()
  63. }
  64. a(this).find('input').each(function () {
  65. var $this = $(this);
  66. var type = $this.attr('type');
  67. var _id = $(this).attr('id');
  68. if (type == 'radio') {
  69. if ($this.is(':checked')) {
  70. var _name = $(this).attr('name');
  71. var _value = $(this).attr('value');
  72. b.find('[name="' + _name + '"][value="' + _value + '"]').attr('checked', 'checked');
  73. }
  74. }
  75. else {
  76. b.find('#' + _id).attr('value', $(this).val());
  77. }
  78. });
  79. return a(a("<div></div>").html(b)).html()
  80. }
  81. // 力软信息扩展
  82. a.fn.jqprintTable = function (f) {
  83. b = a.extend({}, a.fn.jqprint.defaults, f);
  84. f = this instanceof jQuery ? this : a(this);
  85. if (b.operaSupport && a.browser.opera) {
  86. var c = window.open("", "jqPrint-preview");
  87. c.document.open();
  88. var d = c.document
  89. } else {
  90. var e = a("<iframe />");
  91. b.debug || e.css({
  92. position: "absolute",
  93. width: "0px",
  94. height: "0px",
  95. left: "-600px",
  96. top: "-6000px"
  97. });
  98. e.appendTo("body");
  99. d = e[0].contentWindow.document
  100. }
  101. d.write("<title></title><style>@page{size: auto;margin: 0mm;}html{background-color: #FFFFFF;margin: 0px;}body{border: solid 1px blue;margin: 10mm 15mm 10mm 15mm;}</style >");
  102. d.write('<style>');
  103. d.write('table{margin: 30px;border-collapse: collapse;width: 100%;border-left: 1px solid #ccc;}');
  104. d.write('th{border-top: 1px solid #ccc;border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;padding-top:5px;padding-bottom:5px;text-overflow:ellipsis;word-break:keep-all;overflow:hidden;font-weight:bold;padding-left:5px;padding-right:5px;font-size: 12px;}');
  105. d.write('td{border-bottom: 1px solid #ccc;border-right: 1px solid #ccc;height:25px;line-height:25px;word-break: break-all;padding-left:5px;padding-right:5px;font-size: 12px;}');
  106. d.write('</style>');
  107. b.importCSS && (0 < a("link[media=print]").length ? a("link[media=print]").each(function () {
  108. d.write("<link type='text/css' rel='stylesheet' href='" + a(this).attr("href") + "' media='print' />")
  109. }) : a("link").each(function () {
  110. d.write("<link type='text/css' rel='stylesheet' href='" + a(this).attr("href") + "' />")
  111. }),
  112. d.write("<style>" + a("style").html() + "</style>"));
  113. b.printContainer ? d.write(f.outerTable(b)) : f.each(function () {
  114. d.write(a(this).html())
  115. });
  116. d.close();
  117. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).focus();
  118. setTimeout(function () {
  119. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).print();
  120. c && c.close()
  121. }, 1E3)
  122. };
  123. a.fn.outerTable = function (b) {
  124. var $div = a('<div style="-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;padding:5px;width:100%;position:relative;"></div>');
  125. if (!!b.title) {
  126. $div.html('<div style="text-align:center;font-size: 22px;color: #444;width:100%;">' + b.title + '</div>');
  127. }
  128. $div.append(a(this).jfGridPrint());
  129. return a('<div></div>').html($div).html();
  130. };
  131. //// 打印表单
  132. a.jqprintForm = function (data) {
  133. b = a.fn.jqprint.defaults;
  134. if (b.operaSupport && a.browser.opera) {
  135. var c = window.open("", "jqPrint-preview");
  136. c.document.open();
  137. var d = c.document
  138. } else {
  139. var e = a("<iframe />");
  140. b.debug || e.css({
  141. position: "absolute",
  142. width: "0px",
  143. height: "0px",
  144. left: "-600px",
  145. top: "-600px"
  146. });
  147. e.appendTo("body");
  148. d = e[0].contentWindow.document
  149. }
  150. d.write("<title></title><style>@page{size: auto;margin: 0mm;}html{background-color: #FFFFFF;margin: 0px;}body{border: solid 1px #fff;margin: 100mm;}</style >");
  151. d.write("<link type='text/css' rel='stylesheet' href='" + top.$.rootUrl + "/Content/jquery/plugin/jqprint/jqprint.css' />");
  152. var $table = a('<table></table>');
  153. var num = 24;
  154. var $tr = a('<tr></tr>');
  155. var haseAnodeinfo = false
  156. $.each(data, function (_index, _item) {
  157. if(_item.text == '==请选择==') _item.text = ''
  158. if (_item.type == 'gird' && _item.data.length > 0) {
  159. if (num > 0 && num < 24) {
  160. $table.append($tr);
  161. $tr = a('<tr></tr>');
  162. num = 24;
  163. }
  164. var _colp = parseInt(24 / _item.gridHead.length);
  165. var _colp_last = 24 - ((_item.gridHead.length - 1) * _colp);
  166. console.log(_colp_last);
  167. $.each(_item.gridHead, function (_i, _h) {
  168. if (_i == _item.gridHead.length - 1) {
  169. $tr.append('<th colspan="' + _colp_last + '">' + _h.label + '</th>');
  170. }
  171. else {
  172. $tr.append('<th colspan="' + _colp + '">' + _h.label + '</th>');
  173. }
  174. });
  175. $table.append($tr);
  176. $.each(_item.data, function (_j, _b) {
  177. $tr = a('<tr></tr>');
  178. $table.append($tr);
  179. $.each(_item.gridHead, function (_i, _h) {
  180. if (_i == _item.gridHead.length - 1) {
  181. $tr.append('<td colspan="' + _colp_last + '">' + (_b[_h.name]||'') + '</td>');
  182. }
  183. else {
  184. $tr.append('<td colspan="' + _colp + '">' + (_b[_h.name]||'') + '</td>');
  185. }
  186. });
  187. });
  188. $tr = a('<tr></tr>');
  189. }
  190. else if (_item.type == 'input') {
  191. if(data[_index+1].type == 'anodeinfo'||data[_index+1].type == 'gird'){
  192. if(num - (_item.col * 2 - 1) - 1 > 0){
  193. _item.col = num/2
  194. }
  195. }
  196. var colspan = _item.col * 2 - 1;
  197. var _text = '';
  198. if (_item.text) {
  199. _text = _item.text;
  200. }
  201. if (_item.textList) {
  202. _text = String(_item.textList);
  203. }
  204. var $td = a('<td class="input col_' + _item.col + '" >' + _text + '</td>');
  205. $td.attr('colspan', colspan);
  206. $tr.append('<td class="input inputname" ><div class="inputLabel">' +_item.name + ':</div></td>');
  207. $tr.append($td);
  208. num = num - colspan - 1;
  209. if (num <= 0) {
  210. num = 24;
  211. $table.append($tr);
  212. $tr = a('<tr></tr>');
  213. }
  214. }
  215. else if (_item.type == 'anodeinfo') {
  216. if(!haseAnodeinfo&&num<24){
  217. $table.append($tr);
  218. $tr = a('<tr></tr>');
  219. num = 24;
  220. }
  221. haseAnodeinfo = true
  222. let _col = 11
  223. num = num - 12
  224. // 最后一个展示为一行
  225. if(num==12&&data.length==_index+1){
  226. $table.append($tr);
  227. $tr = a('<tr></tr>');
  228. num = 0
  229. _col = 23
  230. }
  231. $tr.append('<td class="input inputname" >' + _item.title + ':</td>');
  232. var __$td = a('<td class="anodeinfo" colspan="'+_col+'"><div class="anodeinfod '+ (_col==23?'col23':'') +'" >' + _item.content + '</div></td>');
  233. var _$div = __$td.find('div');
  234. _$div.append('<div class="tuser" >' + _item.user + '</div>');
  235. _$div.append('<div class="tdate" >' + _item.date + '</div>');
  236. if (_item.signImg) {
  237. _$div.append(_item.signImg);
  238. }
  239. if (_item.stampImg) {
  240. _$div.append(_item.stampImg);
  241. }
  242. $tr.append(__$td);
  243. if (num <= 0) {
  244. num = 24;
  245. $table.append($tr);
  246. $tr = a('<tr></tr>');
  247. }
  248. }
  249. else {
  250. var _colspan = _item.col * 2;
  251. var _$td = a('<td class="titletd" >' + _item.text + '</td>');
  252. _$td.attr('colspan', _colspan);
  253. $tr.append(_$td);
  254. num = num - _colspan;
  255. if (num <= 0) {
  256. num = 24;
  257. $table.append($tr);
  258. $tr = a('<tr></tr>');
  259. }
  260. }
  261. });
  262. if (num > 0 && num < 24) {
  263. $table.append($tr);
  264. }
  265. d.write(a('<div></div>').html($table).html());
  266. console.log(d);
  267. d.close();
  268. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).focus();
  269. setTimeout(function () {
  270. (b.operaSupport && a.browser.opera ? c : e[0].contentWindow).print();
  271. c && c.close()
  272. }, 3000)
  273. }
  274. a.fn.jqprint.defaults = {
  275. debug: !1,
  276. importCSS: !0,
  277. printContainer: !0,
  278. operaSupport: !0
  279. };
  280. })(jQuery);