<div class="fr common_right_btn" onclick="savePlan()" v-show="!role">分享</div>
.con_qr {
width: 82.7%;
padding-bottom: .42rem;
background-color: #f7f7f7;
border-radius: 0.2rem;
box-sizing: border-box;
position: relative;
margin: 0 auto;
}
.con_qr .page_anme{
color: #999999;
font-size: 0.48rem;
font-family: "微软雅黑";
text-align: center;
line-height: 0.5rem;
margin-bottom:0.3rem;
}
#output {
width: 7.4rem;
height: 7.4rem;
margin: 0 auto;
padding: 0.4rem;
box-sizing: border-box;
background: #fff;
border: 1px solid #dfdfdf;
}
#output img{
width: 100%;
height: 100%;
}
#qrcodeimg{
position: absolute;
z-index:100;
}
.temp{
display: none;
}
#desc{
text-align: center;
line-height: 0.82rem;
font-size: 0.52rem;
font-family: "微软雅黑";
color: #959494;
}
/* 二维码 */
.con_qr #my_close{
width: 0.88rem;
height: 0.88rem;
border-radius: 50%;
background: #cccccc;
position: absolute;
top: -0.32rem;
right: -0.5rem;
z-index: 999999;
}
#output {
height: 8.4rem;
width: 9rem;
}
/* 二维码样式 */
.erwm{
background: linear-gradient( 355deg, #D4F2FF 0%, #EBFFFF 100%);
padding-bottom: 0.8rem;
}
.erwm .ewm_pname{
font-weight: 600;
font-size: 0.72rem;
color: #167AFF;
text-align: center;
height: 2.4rem;
line-height: 3rem;
width: 100%;
background: url(../images/ewm_bg.png) no-repeat;
background-size: 100% 100%;
margin-bottom: .72rem;
}
#output {
background: url(../images/ewm_line.png) no-repeat;
background-size: 100% 100%;
padding: .56rem .78rem 0rem;
border: none;
/* padding-bottom: 0.8rem; */
}
#output .outputline{
padding: .56rem;
background-color: #FFFFFF;
border-radius: 0.2rem;
}
#output p{
font-weight: 400;
font-size: .48rem;
color: #010002;
line-height: .78rem;
margin-top: .6rem;
text-align: center;
}
#desc{
margin-top: .28rem;
}
.ewm_info,.ewm_add{
background-color: #FFFFFF;
width: 92%;
margin: 0 auto;
display: flex;
padding: .32rem 0.2rem 0.32rem 1rem;
box-sizing: border-box;
font-size: .48rem;
line-height: .7rem;
text-align: left;
border-radius: .38rem;
}
.ewm_add{
flex-wrap: wrap; /* 允许换行 */
gap: 10px; /* 元素间距 */
color: #167AFF;
}
.ewm_add .ewm_addxing {
flex: 1 0 calc(40%);
box-sizing: border-box;
margin: 0;
min-width: 0; /* 防止内容溢出 */
}
.ewm_addxing{
display: flex;
align-items: center;
}
.ewm_addcalc{
width: 8px;
height: 8px;
border-radius: 50%;
background: #2FAEFF;
margin-right: .4rem;
}
.ewm_info{
flex-direction: column;
margin-top: .4rem;
margin-bottom: .8rem;
color: #444444;
}
.ewm_info_addxing{
display: flex;
align-items: center;
}
.qr_suspend {
padding-top: 16% !important;
}
// 引入二维码/复制插件
document.write("<script src='../../lib/html2canvas.js?v=1.34'></script>");
document.write("<script src='../../lib/jquery.qrcode.min.js?v=1.34'></script>");
document.write("<script src='../../lib/clipboard.min.js'></script>");
document.write("<script src='../../js/common/wxxcx.js?v=2019.11.21.18'></script>");
$("#mask").before('<div class="qr_suspend"><div class="con_qr"><img id="my_close" src="../../images/icon_myclose.png" alt=""><div class="erwm"><p class="ewm_pname"></p><div class="ewm_add"><div class="ewm_addxing"><div class="ewm_addcalc"></div><p class="ewm_addcalc_name"></p></div></div><div class="ewm_info"><div class="ewm_info_addxing"><div class="ewm_addcalc"></div><p>交费期:<span class="ewm_num"></span></p></div><div class="ewm_info_addxing"><div class="ewm_addcalc"></div><p>保额:<span class="ewm_amount"></span>元</p></div><div class="ewm_info_addxing"><div class="ewm_addcalc"></div><p>首年合计保费:<span class="ewm_premium"></span>元</p></div></div><div id="output"><div class="outputline"><img id="qrcodeimg" src=""><div id="qrcode"></div></div><p>投保链接</p></div></div><p class="copy-links"><span class="btn copy-button" data-clipboard-text="1">复制链接</span></p><p id="desc">长按保存或者转发,建议不要直接<br>扫码,防止中途退出,找不到入口</p></div></div>')//20260212-6236二维码生成
function savePlan() {
var link = "";
link = commonurl_front + "blank.html?product_no=" + _URL_PRODUCT_NO + "&special_apply_no=" + special_apply_no;
//20260212-6236二维码生成
$("#qrcode").empty().hide();
var widthq = $(document ).width() / 2.5;
var qrcode = new QRCode(document.getElementById("qrcode"), {
width: widthq,
height: widthq,
correctLevel: QRCode.CorrectLevel.L
});
qrcode.makeCode(link);
// 等待QRCode完全渲染
setTimeout(function() {
// 隐藏原始二维码图片
$("#qrcode img").hide();
// 获取原始canvas
var originalCanvas = document.getElementById('qrcode').getElementsByTagName('canvas')[0];
if (!originalCanvas) {
console.error("未找到原始二维码canvas");
return;
}
// 创建最终canvas
var newCanvas = document.createElement('canvas');
newCanvas.width = widthq;
newCanvas.height = widthq;
// 获取上下文
var ctx = newCanvas.getContext('2d');
// 绘制白色背景
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, newCanvas.width, newCanvas.height);
// 将原始二维码绘制到新canvas
ctx.drawImage(originalCanvas, 0, 0, widthq, widthq);
// 加载并绘制logo
var img = new Image();
img.src = "../../images/ruilogo.png";
img.onload = function() {
// 绘制logo
var logoWidth = 40;
var logoHeight = 25;
var logoX = (widthq - logoWidth) / 2;
var logoY = (widthq - logoHeight) / 2;
// 重新获取上下文以确保状态正确
ctx = newCanvas.getContext('2d');
ctx.drawImage(img, logoX, logoY, logoWidth, logoHeight);
// 转换为图片
var newCanvasDataURL = newCanvas.toDataURL("image/png", 1.0);
// 先设置容器样式
$(".outputline").css({
'min-height': widthq + 'px',
'display': 'flex',
'justify-content': 'center',
'align-items': 'center',
});
// 显示二维码图片
$("#qrcodeimg").css({
'max-width': '100%',
'max-height': widthq + 'px',
'height': 'auto',
'width': 'auto',
'margin': '0 auto',
'display': 'block'
});
// 设置图片源
$("#qrcodeimg").attr("src", newCanvasDataURL);
// replaceEwm();
if(!isWeixin) {
$(".qr_suspend").show();
$("#qrcode").show();
}
};
}, 100);
//二维码兼容性问题修改
var btn = document.getElementsByClassName("btn")[0];
var clipboard = new ClipboardJS(btn);
$(".btn").attr("data-clipboard-text", link);
$(".copy-links").hide();
clipboard.on('success', function (e) {
hxui.toast("链接复制成功");
});
clipboard.on('error', function (e) {
hxui.toast("链接复制失败");
});
$.ajax({
type: 'POST',
url: commonurl + 'plan/saveseed',
data: JSON.stringify(aaa),
timeout: 30000,
dataType: 'json',
contentType: "application/json",
success: function (req) {
//mini半自助小程序分享
var recalljump = function () {
// 会客厅
loShare();
// 二维码
ewmAjax()
$('#loadingToast').hide();
if (iswxxcx) {
var share_url;
var str = "";
if (link.indexOf("?") != -1) {
share_url = link.split("?")[1];
}
var path = encodeURIComponent(commonurl_front + "xcxshare.html?" + share_url + "&xcx_page=2")
wx.miniProgram.navigateTo({
url: '/pages/comshare/comshare?url=' + path
})
return;
}
}
Recall.recallEnd(return_appid.seed_no, recalljump)
},
complete: function (XMLHttpRequest, status) {
if (status == 'timeout') {
$('#loadingToast').hide();
$("#errInfo").show();
}
},
error: function (xhr, type) {
hxui.toast("网络请求出错");
$('#loadingToast').hide();
}
});
}
function ewmAjax() {
var ewmdata={
"seed_no": hxcjs.getUrlString("seed_no")||return_appid.seed_no,
"plan_no": "",
"sales_agent": _URL_SALES_AGENT,
}
$.ajax({
type: 'POST',
url: commonurl + 'qrcode/tip/query',
data: JSON.stringify(ewmdata),
timeout: 30000,
dataType: 'json',
contentType: "application/json",
success: function (req) {
$(".ewm_amount").text(req.risks[0].amount_insured);//保额
$(".ewm_premium").text(req.premium);//首年合计保费
$(".ewm_pname").text(req.risks[0].risk_short_name);//主险名称
// 处理交费期的显示逻辑
var paymentPeriodValue = req.risks[0].payment_period_value;
var paymentPeriodText = "";
if (paymentPeriodValue === "1") {
paymentPeriodText = "一次交清";
} else if (paymentPeriodValue) {
paymentPeriodText = paymentPeriodValue + "年交";
}
// 设置交费期显示
$(".ewm_num").text(paymentPeriodText);
// 获取.ewm_add容器
var $ewmAddContainer = $(".ewm_add");
if ($ewmAddContainer.length > 0) {
// 清空.ewm_addxing内部的所有内容
$ewmAddContainer.find('.ewm_addxing').remove();
// 检查是否有险种数据
if (req.risks && req.risks.length > 0) {
// 循环创建每个险种的.ewm_addxing展示块
$.each(req.risks, function(index, riskItem) {
// 忽略第一个元素(索引0),从第二个元素(索引1)开始
if (index > 0) {
var html = '<div class="ewm_addxing">' +
'<div class="ewm_addcalc"></div>' +
'<p class="ewm_addcalc_name">' + riskItem.risk_short_name + '</p>' +
'</div>';
// 将.ewm_addxing插入到.ewm_add容器内
$ewmAddContainer.append(html);
}
});
}
// 控制显示/隐藏
if (req.risks && req.risks.length == 1) {
$(".ewm_add").hide();
} else {
$(".ewm_add").show();
}
}
// replaceEwm()
},
complete: function (XMLHttpRequest, status) {
if (status == 'timeout') {
$('#loadingToast').hide();
$("#errInfo").show();
}
},
error: function (xhr, type) {
hxui.toast("网络请求出错");
$('#loadingToast').hide();
}
});
}