var QRCode;
(function(){function E(a){this.mode=r.MODE_8BIT_BYTE;this.data=a;this.parsedData=[];a=0;for(var c=this.data.length;a>>18,b[1]=128|(d&258048)>>>12,b[2]=128|(d&4032)>>>6,b[3]=128|d&63):2048>>12,b[1]=128|(d&4032)>>>6,b[2]=128|d&63):128>>6,b[1]=128|d&63):b[0]=d;this.parsedData.push(b)}this.parsedData=Array.prototype.concat.apply([],this.parsedData);this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),
this.parsedData.unshift(187),this.parsedData.unshift(239))}function t(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function x(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var b=0;ba||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},
make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var b=0;b=b;b++)if(!(-1>=a+b||this.moduleCount<=a+b))for(var d=-1;7>=d;d++)-1>=c+d||this.moduleCount<=c+d||(this.modules[a+b][c+d]=0<=b&&6>=b&&(0==d||6==d)||0<=d&&6>=d&&(0==b||6==b)||2<=b&&4>=b&&2<=d&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,b=0;8>b;b++){this.makeImpl(!0,
b);var d=m.getLostPoint(this);if(0==b||a>d)a=d,c=b}return c},createMovieClip:function(a,c,b){a=a.createEmptyMovieClip(c,b);this.make();for(c=0;c=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var c=m.getBCHTypeNumber(this.typeNumber),b=0;18>b;b++){var d=!a&&1==(c>>b&1);this.modules[Math.floor(b/3)][b%3+this.moduleCount-
8-3]=d}for(b=0;18>b;b++)d=!a&&1==(c>>b&1),this.modules[b%3+this.moduleCount-8-3][Math.floor(b/3)]=d},setupTypeInfo:function(a,c){c=m.getBCHTypeInfo(this.errorCorrectLevel<<3|c);for(var b=0;15>b;b++){var d=!a&&1==(c>>b&1);6>b?this.modules[b][8]=d:8>b?this.modules[b+1][8]=d:this.modules[this.moduleCount-15+b][8]=d}for(b=0;15>b;b++)d=!a&&1==(c>>b&1),8>b?this.modules[8][this.moduleCount-b-1]=d:9>b?this.modules[8][15-b-1+1]=d:this.modules[8][15-b-1]=d;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,
c){for(var b=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;0f;f++)if(null==this.modules[d][h-f]){var k=!1;g>>e&1));m.getMask(c,d,h-f)&&(k=!k);this.modules[d][h-f]=k;e--;-1==e&&(g++,e=7)}d+=b;if(0>d||this.moduleCount<=d){d-=b;b=-b;break}}}};t.PAD0=236;t.PAD1=17;t.createData=function(a,c,b){c=u.getRSBlocks(a,c);for(var d=new F,e=0;e8*a)throw Error("code length overflow. ("+d.getLengthInBits()+">"+8*a+")");for(d.getLengthInBits()+4<=8*a&&d.put(0,4);0!=d.getLengthInBits()%8;)d.putBit(!1);for(;!(d.getLengthInBits()>=8*a);){d.put(t.PAD0,8);if(d.getLengthInBits()>=8*a)break;d.put(t.PAD1,8)}return t.createBytes(d,c)};t.createBytes=function(a,c){for(var b=0,d=0,e=0,g=Array(c.length),h=Array(c.length),f=0;f>>=1;return c},getPatternPosition:function(a){return m.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,b){switch(a){case 0:return 0==(c+b)%2;case 1:return 0==c%2;case 2:return 0==b%3;case 3:return 0==(c+b)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(b/3))%2;case 5:return 0==c*b%2+c*b%3;case 6:return 0==(c*b%2+c*b%3)%2;case 7:return 0==(c*b%3+(c+b)%2)%2;default:throw Error("bad maskPattern:"+a);}},getErrorCorrectPolynomial:function(a){for(var c=
new x([1],0),b=0;bc)switch(a){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:return 8;case r.MODE_KANJI:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case r.MODE_NUMBER:return 14;
case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw Error("mode:"+a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),b=0,d=0;d=f;f++)if(!(0>d+f||c<=d+f))for(var k=-1;1>=k;k++)0>e+k||c<=e+k||(0!=f||0!=k)&&h==a.isDark(d+f,e+k)&&g++;5a)throw Error("glog("+a+
")");return p.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return p.EXP_TABLE[a]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},q=0;8>q;q++)p.EXP_TABLE[q]=1<q;q++)p.EXP_TABLE[q]=p.EXP_TABLE[q-4]^p.EXP_TABLE[q-5]^p.EXP_TABLE[q-6]^p.EXP_TABLE[q-8];for(q=0;255>q;q++)p.LOG_TABLE[p.EXP_TABLE[q]]=q;x.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),b=0;bthis.getLength()-a.getLength())return this;for(var c=p.glog(this.get(0))-p.glog(a.get(0)),b=Array(this.getLength()),d=0;d>>7-a%8&1)},put:function(a,c){for(var b=0;b>>c-b-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>
this.length%8);this.length++}};var y=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,
625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],H=function(){var a=function(c,b){this._el=c;this._htOption=b};a.prototype.draw=function(c){function b(k,n){k=document.createElementNS("http://www.w3.org/2000/svg",k);for(var l in n)n.hasOwnProperty(l)&&k.setAttribute(l,n[l]);
return k}var d=this._htOption,e=this._el,g=c.getModuleCount();this.clear();var h=b("svg",{viewBox:"0 0 "+String(g)+" "+String(g),width:"100%",height:"100%",fill:d.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink");e.appendChild(h);h.appendChild(b("rect",{fill:d.colorLight,width:"100%",height:"100%"}));h.appendChild(b("rect",{fill:d.colorDark,width:"1",height:"1",id:"template"}));for(d=0;d'],k=0;k");for(var n=0;n');f.push("")}f.push("");d.innerHTML=f.join("");c=d.childNodes[0];d=(b.width-c.offsetWidth)/2;b=(b.height-c.offsetHeight)/2;0=this._android){var b=1/window.devicePixelRatio,d=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(g,h,f,k,n,l,z,A,B){if("nodeName"in g&&/img/i.test(g.nodeName))for(var w=arguments.length-1;1<=w;w--)arguments[w]*=b;else"undefined"==typeof A&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);d.apply(this,
arguments)}}var e=function(g,h){this._bIsPainted=!1;this._android=G();this._htOption=h;this._elCanvas=document.createElement("canvas");this._elCanvas.width=h.width;this._elCanvas.height=h.height;g.appendChild(this._elCanvas);this._el=g;this._oContext=this._elCanvas.getContext("2d");this._bIsPainted=!1;this._elImage=document.createElement("img");this._elImage.alt="Scan me!";this._elImage.style.display="none";this._el.appendChild(this._elImage);this._bSupportDataURI=null};e.prototype.draw=function(g){var h=
this._elImage,f=this._oContext,k=this._htOption,n=g.getModuleCount(),l=k.width/n,z=k.height/n,A=Math.round(l),B=Math.round(z);h.style.display="none";this.clear();for(h=0;hy.length)throw Error("Too long data");this._oQRCode=new t(b,this._htOption.correctLevel);this._oQRCode.addData(a);this._oQRCode.make();this._el.title=a;this._oDrawing.draw(this._oQRCode);this.makeImage()};QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||3<=this._android)&&this._oDrawing.makeImage()};QRCode.prototype.clear=function(){this._oDrawing.clear()};QRCode.CorrectLevel=v})();
//将图片装载完毕,然后再绘图
var imgs = {};
//获取变量
var $logo_img="",$bg_img="",$goods_img="",$bg_img1="",$goods_img1="",$qrcodetext,$qrcodedes,$goods_title,$goods_price,$goods_mktprice,$goods_validText,$goods_desc;
var bingimage=false;
const datedata = {};
datedata.day="14",datedata.month="03",datedata.year="2025",datedata.week="星期五",datedata.nonglinian="乙巳年",datedata.nongli="二月十五",datedata.yi="结婚.安葬.祭祀.纳婿",datedata.ji="搬新房.栽种.盖屋.作灶";var plusurl="/plus/";$bg_img1="https://cn.bing.com//th?id=OHR.BasqueDolmen_ZH-CN2364777801_768x1280.jpg";bingimage=true;
//console.log(datedata);
//这些内容可以在页面内多次定义,但取第一个值
var t_share_logo=document.querySelector("input[name='share_logo']") ; //海报logo
var t_share_bg=document.querySelector("input[name='share_bg']") ; //海报背景图
var t_share_img=document.querySelector("input[name='share_img']") ; //海报主图
var t_share_qrcodetext=document.querySelector("input[name='share_qrcodetext']") ; //二维码文字链接
var t_share_qrcodedes=document.querySelector("input[name='share_qrcodedes']") ; //二维码文字描述
var t_share_title=document.querySelector("input[name='share_title']") ; //海报标题文字
var t_share_price=document.querySelector("input[name='share_price']") ; //商品价格
var t_share_mktprice=document.querySelector("input[name='share_mktprice']") ; //市场价格,显示为删除模式
var t_share_validText=document.querySelector("input[name='share_validText']") ; //有效期
var t_description=document.querySelector('meta[name="description"]'); //页面描述
if (t_share_logo!= null){$logo_img=t_share_logo.value;}
if (t_share_bg!= null){$bg_img=t_share_bg.value}
if (t_share_img!= null){$goods_img=t_share_img.value;}
if ($logo_img!=""){imgs.logo_img=$logo_img;}
//优先使用节日背景和主图
if ($bg_img!=""){imgs.bg_img=$bg_img;}
if ($bg_img1!=""){$bg_img=$bg_img1;imgs.bg_img=$bg_img1;}
if ($goods_img!=""){imgs.goods_img=$goods_img;}
if ($goods_img1!=""){$goods_img=$goods_img1;imgs.goods_img=$goods_img1;}
if (t_share_qrcodetext!= null){$qrcodetext=t_share_qrcodetext.value;}
if (t_share_qrcodedes!= null){$qrcodedes=t_share_qrcodedes.value;}
if (t_share_title!= null){$goods_title=t_share_title.value;}
if (t_share_price!= null){$goods_price=t_share_price.value;}
if (t_share_mktprice!= null){$goods_mktprice=t_share_mktprice.value;}
if (t_share_validText!= null){$goods_validText=t_share_validText.value;}
if (t_description!= null){$goods_desc=t_description.content;}
//$goods_desc=$goods_desc.replace(/^\s\s*/, '' ).replace(/\s\s*$/, '' );
//console.log($goods_img);
//生成二维码
var qrCodeDiv = document.createElement('div');
if ($qrcodetext==""){
$qrcodetext="http://www.chinaz.top";
}
new QRCode(qrCodeDiv, {
text: $qrcodetext,
width: 180,
height: 180
});//var thisqrcode= qrCodeDiv.lastChild;
//console.log(thisqrcode);
//try{document.querySelector(".pageqrcode").appendChild(thisqrcode);}catch(e){}
var thisnum=parseInt(Math.random()* 25)+1; //生成随机背景
var issuijibg =false ; //是随机背景
if ($goods_img=="" && $bg_img==""){//随机背景
$bg_img=plusurl+"share/images/bg/"+thisnum+".jpg";issuijibg=true;imgs.bg_img=$bg_img;
}
//function createhaibao(){
var imgsToInstances= function (imgs, callback) {
const len = Object.keys(imgs).length;
const instances = {};
let finished = 0;
for (const key in imgs) {
const image = new Image();
image.crossOrigin = "anonymous";
image.src = imgs[key];
image.onload = () => {
// 图片实例化成功后存起来
instances[key] = image;
instances[key+"w"] = image.width;
instances[key+"h"] = image.height;
finished++;
if (finished === len) {
instances['qrcode'] = qrCodeDiv.lastChild;
//console.log(instances['qrcode'])
callback(instances);
}
}
//console.log(imgs[key])
}
//console.log(instances)
};
var drawText=function (ctx, t, x, y, w, s,hangshu) {
let char = t.split('');// 文字数组
let temp = '';// 每行临时变量
let row = [];// 行文字数组
let max_row = hangshu;
for (let a = 0; a < char.length; a++) {
if (ctx.measureText(temp).width >= w) {
row.push(temp);
temp = '';
}
temp += char[a];
}
row.push(temp);
for (let b = 0; b < row.length; b++) {
if (b >= max_row) break;
if (b == (max_row - 1)) {
if (row[b + 1] != undefined) {
let _suffix = '...';
let _suffix_len = Math.ceil(ctx.measureText(_suffix).width);
let _len = Math.ceil(ctx.measureText(row[b]).width) - _suffix_len;
row[b] = row[b].substr(0, _len) + '...';
}
}
ctx.fillText(row[b], x, y + (b + 1) * (s + 10));
}
};
imgsToInstances(imgs, instances => {
//console.log("开始")
/*canvas*/
var canvas = document.createElement("canvas");
//var canvas = document.getElementById("canvas");
var canvas_width=750;
var canvas_height=1066;
canvas.width = canvas_width; //画布宽度像素
canvas.height = canvas_height; //画布高度像素
//定义四周边界
var bianjie=50;
var ctx = canvas.getContext("2d");
// 绘制背景框
ctx.rect(0, 0, canvas_width, canvas_height);
ctx.fillStyle = '#FFFFFF';
ctx.fill();
//console.log("填充背景色")
ctx.strokeStyle="#666666";
ctx.lineWidth=1;
ctx.stroke();
//console.log("绘制边框")
//绘制背景图
if ($bg_img!=""){ctx.drawImage(instances['bg_img'],0,0,canvas_width,canvas_height);}
//如果是bing,绘制渐变色
if (bingimage){
var grd = ctx.createLinearGradient(0, 0, 0, 500);
grd.addColorStop(0, "rgba(33,33,33, 1)");
grd.addColorStop(1, "transparent");
ctx.fillStyle = grd;
ctx.fill();
var grd = ctx.createLinearGradient(0, canvas_height-500, 0, canvas_height-200);
grd.addColorStop(0, "transparent");
grd.addColorStop(1, "rgba(255,255,255, 0.8)");
ctx.fillStyle = grd;
ctx.fill();
}
//绘制logo
if ($logo_img!=""){
let thiswidth=instances['logo_imgw'];
let thisheight=instances['logo_imgh'];
let thisbili=thiswidth/thisheight;//宽高比例
//console.log("w:"+thiswidth+"h:"+thisheight);
let toheight=60 //准备压缩到最大高度
let towidth=toheight*thisbili; //
ctx.drawImage(instances['logo_img'],bianjie-20,bianjie,towidth,toheight);
}
//绘制日期
ctx.beginPath();
ctx.rect(canvas_width-bianjie-100, bianjie, 100, 80);
ctx.fillStyle ="rgb(66,66,66,0.5)";
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.rect(canvas_width-bianjie-100, bianjie+60, 100, 20);
ctx.fillStyle ="#ffcd32";
ctx.fill();
ctx.closePath();
ctx.fillStyle = "#FFFFFF";
ctx.font = "bold 60px Microsoft Yahei";
ctx.textAlign = "left";
ctx.fillText(datedata.day, canvas_width-bianjie-90, bianjie+54);
ctx.fillStyle = "#333333";
ctx.font = "normal 16px Microsoft Yahei";
ctx.textAlign = "left";
ctx.fillText(datedata.year+"年"+datedata.month+"月", canvas_width-bianjie-95, bianjie+75);
ctx.fillStyle = "#FFFFFF";
ctx.font = "normal 12px Microsoft Yahei";
ctx.textAlign = "left";
ctx.fillText(datedata.nongli+" "+datedata.week, canvas_width-bianjie-100, bianjie+95,100);
//绘制主图
var title_top = canvas_height-bianjie-180; //定义标题距顶部的高度
if ($goods_img!=""){
//计算原始图片的宽高比
let thiswidth=instances['goods_imgw'];
let thisheight=instances['goods_imgh'];
let thisbili=thisheight/thiswidth;//宽高比例
//console.log("w:"+thiswidth+"h:"+thisheight);
let towidth=canvas_width-bianjie; //准备压缩到最大宽度
let toheight= towidth*thisbili; //宽高比例
//title_top=bianjie+110+toheight; //把标题的高度移至图片下
//console.log("标题位置1:"+title_top);
//如果高度超出正方形,则高度等于宽度,并且,将标题的高度定义到跟二维码视觉持平
if (toheight>=towidth){toheight=towidth;title_top=canvas_height-bianjie-170;}
let goodsimg_top=bianjie+110+towidth-toheight;
if (toheight';
document.querySelector("#pageqrcode").appendChild(instances['qrcode']);
let clonenode=document.getElementById("pageqrcode").cloneNode(true);
//console.log(clonenode.lastChild);
document.querySelector(".pageqrcode").appendChild(clonenode.lastChild);
}catch(e){}
})
//}