Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/qualityMonitoringView.js
===================================================================
diff -u -r30788 -r30796
--- ssts-web/src/main/webapp/disinfectsystem/reportforms/qualityMonitoringView.js (.../qualityMonitoringView.js) (revision 30788)
+++ ssts-web/src/main/webapp/disinfectsystem/reportforms/qualityMonitoringView.js (.../qualityMonitoringView.js) (revision 30796)
@@ -151,7 +151,11 @@
} else if (name == '物品名称' || name == '物品名称') {
width = columnWidth * 3;
}
- tableHtml += "
" + name + " | ";
+ if (colspan > 1) {
+ tableHtml += "" + name + " | ";
+ } else {
+ tableHtml += "" + name + " | ";
+ }
}
tableHtml += "";
if (Object.keys(tableHeaderMap).length > 0) {
@@ -361,20 +365,145 @@
}
}
+(function (root, factory) {
+ if (typeof define === "function" && define.amd) {
+ define([], factory);
+ } else if (typeof module === "object" && module.exports) {
+ module.exports = factory();
+ } else {
+ root.Base64 = factory();
+ }
+}(this, function () {
+ 'use strict';
+
+ function Base64() {
+ // private property
+ this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+ }
+ //public method for encoding
+ Base64.prototype.encode = function (input) {
+ var output = "", chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0;
+ input = this._utf8_encode(input);
+ while (i < input.length) {
+ chr1 = input.charCodeAt(i++);
+ chr2 = input.charCodeAt(i++);
+ chr3 = input.charCodeAt(i++);
+ enc1 = chr1 >> 2;
+ enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+ enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
+ enc4 = chr3 & 63;
+ if (isNaN(chr2)) {
+ enc3 = enc4 = 64;
+ } else if (isNaN(chr3)) {
+ enc4 = 64;
+ }
+ output = output +
+ this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
+ this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
+ }
+ return output;
+ }
+
+ // public method for decoding
+ Base64.prototype.decode = function (input) {
+ var output = "", chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0;
+ input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+ while (i < input.length) {
+ enc1 = this._keyStr.indexOf(input.charAt(i++));
+ enc2 = this._keyStr.indexOf(input.charAt(i++));
+ enc3 = this._keyStr.indexOf(input.charAt(i++));
+ enc4 = this._keyStr.indexOf(input.charAt(i++));
+ chr1 = (enc1 << 2) | (enc2 >> 4);
+ chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+ chr3 = ((enc3 & 3) << 6) | enc4;
+ output = output + String.fromCharCode(chr1);
+ if (enc3 != 64) {
+ output = output + String.fromCharCode(chr2);
+ }
+ if (enc4 != 64) {
+ output = output + String.fromCharCode(chr3);
+ }
+ }
+ output = this._utf8_decode(output);
+ return output;
+ }
+ // private method for UTF-8 encoding
+ Base64.prototype._utf8_encode = function (string) {
+ string = string.replace(/\r\n/g, "\n");
+ var utftext = "";
+ for (var n = 0; n < string.length; n++) {
+ var c = string.charCodeAt(n);
+ if (c < 128) {
+ utftext += String.fromCharCode(c);
+ } else if ((c > 127) && (c < 2048)) {
+ utftext += String.fromCharCode((c >> 6) | 192);
+ utftext += String.fromCharCode((c & 63) | 128);
+ } else {
+ utftext += String.fromCharCode((c >> 12) | 224);
+ utftext += String.fromCharCode(((c >> 6) & 63) | 128);
+ utftext += String.fromCharCode((c & 63) | 128);
+ }
+
+ }
+ return utftext;
+ }
+
+ // private method for UTF-8 decoding
+ Base64.prototype._utf8_decode = function (utftext) {
+ var string = "", i = 0, c = 0, c1 = 0, c2 = 0, c3 = 0;
+ while (i < utftext.length) {
+ c = utftext.charCodeAt(i);
+ if (c < 128) {
+ string += String.fromCharCode(c);
+ i++;
+ } else if ((c > 191) && (c < 224)) {
+ c2 = utftext.charCodeAt(i + 1);
+ string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
+ i += 2;
+ } else {
+ c2 = utftext.charCodeAt(i + 1);
+ c3 = utftext.charCodeAt(i + 2);
+ string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
+ i += 3;
+ }
+ }
+ return string;
+ }
+
+ var Base64 = new Base64();
+
+ return Base64;
+}));
+
function exportExcel(data, fileType) {
+ var fileName = data.fileName + data.fileType;
var type = 'application/vnd.ms-excel';
if (fileType == 'pdf') {
type = 'application/pdf';
}
if (isIE()) {
- showResult('IE暂不支持导出!')
+ var res = "\n" +
+ "\n"
+ + "\n"
+ + "\n"
+ + "\n"
+ + "\n"
+ + data.html
+ + "\n"
+ + "";
+ var html = Base64.encode(res);
+ sessionStorage.setItem('htmlTable', html);
+ sessionStorage.setItem('htmlFileName', fileName);
+ window.open(WWWROOT + '/homepage/exportMonitorData.jsp', "_blank");
} else {
var lHtml = data.html;
var tableHtml = '';
tableHtml += lHtml;
tableHtml += '';
var excelBlob = new Blob([tableHtml], { type: type });
- var fileName = data.fileName + data.fileType;
var oa = document.createElement('a');
oa.href = URL.createObjectURL(excelBlob);
oa.download = fileName;
Index: ssts-web/src/main/webapp/homepage/exportMonitorData.jsp
===================================================================
diff -u
--- ssts-web/src/main/webapp/homepage/exportMonitorData.jsp (revision 0)
+++ ssts-web/src/main/webapp/homepage/exportMonitorData.jsp (revision 30796)
@@ -0,0 +1,55 @@
+<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ page import="com.forgon.tools.*,org.apache.commons.lang.*"%>
+<%@page import="java.io.IOException"%>
+<%@page import="sun.misc.BASE64Decoder"%>
+
+
+
+
+
+
+
+
+
+<%
+ String htmlTable = request.getParameter("htmlTable");
+ String fileName = request.getParameter("htmlFileName");
+ if(htmlTable != null){
+ ServletOutputStream servletOutputStream = response.getOutputStream();
+ response.setContentType("application/octet-stream");
+ response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("GBK"), "ISO8859_1"));
+ try{
+ BASE64Decoder decoder = new BASE64Decoder();
+ servletOutputStream.write(new String(decoder.decodeBuffer(htmlTable)).getBytes("UTF-8"));
+ }catch(IllegalArgumentException e){
+ e.printStackTrace();
+ }catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ try {
+ servletOutputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ servletOutputStream.flush();
+ out.clear();
+ out = pageContext.pushBody();
+ }
+%>
\ No newline at end of file