锘縱ar submitData = {
images: [],
params: [],
compstr: []
};
var uploadImgs = [];
var layerIndex = 0;
var attrList = null;
$(function () {
$("#inputs").change(function (e) {
var upload = $(this)[0];
var file = upload.files[0];
var fileData = new FormData();
fileData.append("file", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/handle/uploadfile", true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var ret = JSON.parse(xhr.responseText);
console.log('onreadystatechange===>', ret);
if (ret.code == 1) {
layer.msg("鏂囦欢涓婁紶鎴愬姛銆?);
$("#uploadBox").append('');
uploadImgs.push(ret.imgSite + ret.data);
} else {
layer.msg("鏂囦欢涓婁紶澶辫触銆?);
}
}
};
xhr.send(fileData);
layer.msg("鍥剧墖涓婁紶涓?..");
});
$.getJSON("/handle/GetAttrList", function (ret) {
console.log('GetAttrList', ret);
attrList = ret.data;
})
})
function selectClass(o) {
var me = $(o);
if (!me.hasClass("active")) {
submitData["classname"] = me.attr("title");
submitData["bigimg"] = me.attr("path");
me.addClass("active").siblings(".active").removeClass("active");
$("#classImg").attr("src", me.attr("path"));
var elem = null;
var classId = me.attr("data-id");
$("select.bind").each(function () {
elem = $(this);
elem.html("");
var attrName = elem.attr("title");
console.log("attrName=>", attrName);
var m2 = attrList.find(m => m.AttrName == attrName);
if (m2 && m2.AttrValues) {
elem.append((""));
var list1 = m2.AttrValues.filter(m => m.ClassId == classId);
for (var t = 0; t < list1.length; t++) {
var m3 = list1[t];
console.log('opt-data-' + t, m3);
elem.append((""));
}
}
})
}
}
function selectEvent(o) {
var elem = $(o);
var value = elem.val();
var key = elem.attr("title");
if (!submitData.params) {
submitData.params = [];
}
submitData.params.push(key + ":" + value);
}
function create(o) {
var btn = $(o);
if (btn.hasClass("disabled")) {
return;
}
if (!submitData.classname) {
var elem1 = $(".tab-class.active");
submitData["classname"] = elem1.attr("title");
submitData["bigimg"] = elem1.attr("path");
}
var dt = new Date();
var strParams = "";
var arrParams = [];
$(".bianhao_ul select").each(function () {
var me = $(this);
var v = me.val();
var key = me.attr("title");
if (v) {
arrParams.push(key + ":" + v);
strParams += '
' + key + '锛欬span>' + v + '
';
}
else {
layer.msg("璇烽€夋嫨" + key);
return false;
}
});
if (arrParams.length != $(".bianhao_ul select").length) {
return;
}
submitData.params = JSON.stringify(arrParams);
var arr1 = [];
$("#comp-list .chk_1:checked").each(function () {
var me = $(this);
arr1.push(me.attr("path"));
});
submitData.compstr = JSON.stringify(arr1);
submitData.remark = $("#remark").val();
submitData.name = $("#name").val();
submitData.company = $("#company").val();
submitData.tellphone = $("#tellphone").val();
submitData.email = $("#email").val();
if (!submitData.name) {
layer.msg("璇疯緭鍏ユ偍鐨勫鍚?);
return;
}
if (!submitData.company) {
layer.msg("璇疯緭鍏ユ偍鐨勫叕鍙稿悕绉?);
return;
}
if (!submitData.tellphone) {
layer.msg("璇疯緭鍏ヨ仈绯荤數璇?);
return;
}
if (!submitData.email) {
layer.msg("璇疯緭鍏ョ數瀛愰偖绠?);
return;
}
var strImages = "";
console.log("submitData----", submitData);
if (uploadImgs) {
submitData.images = JSON.stringify(uploadImgs);
}
layer.msg("鏁版嵁鎻愪氦涓?...");
$.post('/handle/submitnaming', submitData, function (ret) {
console.log("post-ret=>",ret);
if (ret.code == 1) {
var m = ret.data;
layer.msg("鏁版嵁淇濆瓨鎴愬姛锛屾鍦ㄧ敓鎴愬苟涓嬭浇PDF鏂囦欢...");
$("#tab_createtime").text(formatDate(dt, "yyyy-MM-dd HH:mm:ss"));
$("#tab_classname").html(m.ClassName);
$("#tab_classimg").attr("src", m.BigImg);
$("#tab_params").html(strParams);
if (m.CompStr) {
var arr2 = JSON.parse(m.CompStr);
var strComp = "";
arr2.forEach(m => {
strComp += '';
})
$("#tab_comp").html(strComp);
}
if (m.Images) {
var arr3 = JSON.parse(m.Images);
var strImages = "";
arr3.forEach(path => {
strImages += '';
})
$("#tab_images").html(strImages);
}
$("#tab_name").text(submitData.name);
$("#tab_company").text(submitData.company);
$("#tab_tellphone").text(submitData.tellphone);
$("#tab_email").text(submitData.email);
$("#tab_remark").text(submitData.remark);
setTimeout(function () {
PdfDownload('pdf_con', ret.data.Id);
}, 500);
}
else {
layer.msg(ret.msg);
}
});
}
const PdfDownload = function (domId, code) {
var targetDom = $('#' + domId)
// 鎶婇渶瑕佸鍑虹殑pdf鍐呭clone涓€浠斤紝杩欐牱瀵瑰畠杩涜杞崲銆佸井璋冪瓑鎿嶄綔鏃舵墠涓嶄細褰卞搷鍘熸潵鐣岄潰
var copyDom = targetDom.clone()
// 鏂扮殑div瀹介珮璺熷師鏉ヤ竴鏍凤紝楂樺害璁剧疆鎴愯嚜閫傚簲锛岃繖鏍锋墠鑳藉畬鏁存樉绀鸿妭鐐逛腑鐨勬墍鏈夊唴瀹癸紙姣斿璇磋〃鏍兼粴鍔ㄦ潯涓殑鍐呭锛
copyDom.width(targetDom.width() + 'px')
copyDom.height(targetDom.height() + 30 + 'px');
copyDom.removeAttr("id");
$('body').append(copyDom)// ps:杩欓噷涓€瀹氳鍏堟妸copyDom append鍒癰ody涓嬶紝鐒跺悗鍐嶈繘琛屽悗缁殑
setTimeout(function () {
executeDown(copyDom[0], code)
}, 500);
}
function executeDown(copyDom, code) {
html2canvas(copyDom, {
onrendered: function (canvas) {
var imgData = canvas.toDataURL();
var img = new Image();
img.src = imgData;
img.setAttribute("crossOrigin", "Anonymous");
// 鏍规嵁鍥剧墖鐨勫昂瀵歌缃畃df鐨勮鏍硷紝瑕佸湪鍥剧墖鍔犺浇鎴愬姛鏃舵墽琛岋紝涔嬫墍浠ヨ*0.225鏄洜涓烘瘮渚嬮棶棰
img.onload = function () {
// 姝ゅ闇€瑕佹敞鎰忥紝pdf妯疆鍜岀珫缃袱涓睘鎬э紝闇€瑕佹牴鎹楂樼殑姣斾緥鏉ヨ皟鏁达紝涓嶇劧浼氬嚭鐜版樉绀轰笉瀹屽叏鐨勯棶棰
if (this.width > this.height) {
var doc = new jsPDF('l', 'mm', [this.width * 0.225, this.height * 0.225]);
} else {
var doc = new jsPDF('p', 'mm', [this.width * 0.225, this.height * 0.225]);
}
doc.addImage(imgData, 'jpeg', 0, 0, this.width * 0.225, this.height * 0.225);
// 鏍规嵁涓嬭浇淇濆瓨鎴愪笉鍚岀殑鏂囦欢鍚
doc.save('order_' + code + '.pdf');
// 鍒犻櫎澶嶅埗鍑烘潵鐨刣iv
copyDom.remove();
location.reload();
}
},
background: '#FFF',
// 杩欓噷缁欑敓鎴愮殑鍥剧墖榛樿鑳屾櫙锛屼笉鐒剁殑璇濓紝濡傛灉浣犵殑html鏍硅妭鐐规病璁剧疆鑳屾櫙鐨勮瘽锛屼細鐢ㄩ粦鑹插~鍏呫€
allowTaint: true // 閬垮厤涓€浜涗笉璇嗗埆鐨勫浘鐗囧共鎵帮紝榛樿涓篺alse锛岄亣鍒颁笉璇嗗埆鐨勫浘鐗囧共鎵板垯浼氬仠姝㈠鐞唄tml2canvas
})
}
// 灏嗗浘鐗囪浆鎹负Base64
function imageUrlToBase64(img) {
// 涓€瀹氳璁剧疆涓簂et锛屼笉鐒跺浘鐗囦笉鏄剧ず
let image = new Image();
// 瑙e喅璺ㄥ煙闂
image.setAttribute('crossOrigin', 'anonymous');
let imageUrl = img;
image.src = imageUrl;
// image.onload涓哄紓姝ュ姞杞
image.onload = () => {
getImageBase64(image);
};
};
function getImageBase64(image) {
let canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
let context = canvas.getContext('2d');
context.drawImage(image, 0, 0, image.width, image.height);
let quality = 0.8;
// 杩欓噷鐨刣ataurl灏辨槸base64绫诲瀷
let dataURL = canvas.toDataURL('image/jpeg', quality);
};
/****鏁扮粍鎵╁睍鏂规硶***/
var formatDate = function (v, format) {
if (!v) return "";
var d = v;
if (typeof v === 'string') {
if (v.indexOf("/Date(") > -1)
d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10));
else
d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0]));
}
var o = {
"M+": d.getMonth() + 1, //month
"d+": d.getDate(), //day
"H+": d.getHours(), //hour
"m+": d.getMinutes(), //minute
"s+": d.getSeconds(), //second
"q+": Math.floor((d.getMonth() + 3) / 3), //quarter
"S": d.getMilliseconds() //millisecondjsonca4
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
Array.prototype.remove = function (i) {
if (isNaN(i) || i > this.length) { return false; }
this.splice(i, 1);
}
Array.prototype.select = function (callback) {
var arrResult = [];
for (var i = 0; i < this.length; i++) {
if (callback(this[i])) {
arrResult.push(this[i]);
}
}
return arrResult;
}
Array.prototype.get = function (callback) {
for (var i = 0; i < this.length; i++) {
if (callback(this[i])) {
return this[i];
}
}
return null;
}
Array.prototype.dele = function (callback) {
var newArray = [];
for (var i = 0; i < this.length; i++) {
if (!callback(this[i])) {
newArray.push(this[i]);
}
}
return newArray;
}
Array.prototype.done = function (callback) {
for (var i = 0; i < this.length; i++) {
callback(this[i]);
}
}