diff --git a/pets-fe/pages/idcard/idcard.js b/pets-fe/pages/idcard/idcard.js index 08a7a25..4bb2392 100644 --- a/pets-fe/pages/idcard/idcard.js +++ b/pets-fe/pages/idcard/idcard.js @@ -98,7 +98,7 @@ Page({ // ══════════ 正面卡(暖黄)══════════ // 高度按内容算,避免留一大块空白 - let fH = 420; + let fH = 372; if (tags.length) fH += 90; if (c.intro) fH += 90; const fY = pad; @@ -108,31 +108,9 @@ Page({ this.roundRect(ctx, fx, fY, cardW2, fH, 30); ctx.fillStyle = gf; ctx.fill(); - // 爪印水印 - ctx.save(); - this.roundRect(ctx, fx, fY, cardW2, fH, 30); - ctx.clip(); - ctx.globalAlpha = 0.07; - ctx.textAlign = 'center'; - ctx.textBaseline = 'middle'; - ctx.font = '150px sans-serif'; - ctx.fillText('🐾', fx + cardW2 - 90, fY + fH - 80); - ctx.restore(); - ctx.globalAlpha = 1; - ctx.textBaseline = 'alphabetic'; - - // 卡头:左 logo,右 徽章 - ctx.textAlign = 'left'; - ctx.fillStyle = '#8A5A18'; - ctx.font = '600 26px sans-serif'; - ctx.fillText('🐱 宠星人', fx + 32, fY + 52); - ctx.textAlign = 'right'; - ctx.fillStyle = '#B07A1E'; - ctx.font = '600 22px sans-serif'; - ctx.fillText('🛡 宠物身份卡', fx + cardW2 - 32, fY + 50); // 头像圆 + 白边 - const avD = 150, avX = fx + 36, avY = fY + 90; + const avD = 150, avX = fx + 36, avY = fY + 52; ctx.save(); ctx.beginPath(); ctx.arc(avX + avD / 2, avY + avD / 2, avD / 2, 0, Math.PI * 2); @@ -184,7 +162,7 @@ Page({ kvF('年龄', c.age, avY + 206); // 性格标签(没有就不画,避免留空行) - let ty = fY + 320; + let ty = fY + 298; if (tags.length) { ctx.textAlign = 'left'; ctx.fillStyle = '#8A5A18'; @@ -245,27 +223,25 @@ Page({ ctx.textAlign = 'center'; ctx.fillStyle = '#fff'; ctx.font = '700 28px sans-serif'; - ctx.fillText('🌿 照护信息', W / 2, bY + 24 + 42); + ctx.fillText('照护信息', W / 2, bY + 24 + 42); - // 照护行(emoji 图标 + 标签 + 值) - const rowX = fx + 40; - const kvB = (icon, label, value, yy) => { + // 照护行(标签 + 值,不放图标) + const rowX = fx + 44; + const kvB = (label, value, yy) => { ctx.textAlign = 'left'; - ctx.font = '26px sans-serif'; - ctx.fillText(icon, rowX, yy); ctx.font = '24px sans-serif'; ctx.fillStyle = '#8D8277'; - ctx.fillText(label, rowX + 44, yy); + ctx.fillText(label, rowX, yy); ctx.font = '600 25px sans-serif'; ctx.fillStyle = '#2D2925'; - ctx.fillText(value || '—', rowX + 170, yy); + ctx.fillText(value || '—', rowX + 150, yy); }; let ry = bY + 140; - kvB('👤', '主人', c.owner, ry); ry += 48; - kvB('📞', '联系电话', c.phone || '未验证', ry); ry += 48; - kvB('📝', '备注', c.notes || '无', ry); ry += 48; - kvB('🏛', '发证机构', c.org || '肉垫计划', ry); ry += 48; - kvB('📅', '有效期', c.validity || '永久有效', ry); ry += 42; + kvB('主人', c.owner, ry); ry += 48; + kvB('联系电话', c.phone || '未验证', ry); ry += 48; + kvB('备注', c.notes || '无', ry); ry += 48; + kvB('发证机构', c.org || '肉垫计划', ry); ry += 48; + kvB('有效期', c.validity || '永久有效', ry); ry += 42; // 走失联系框 + 小程序码 const lostY = ry + 16, lostH = bY + bH - lostY - 30; @@ -273,13 +249,9 @@ Page({ ctx.fillStyle = '#EAF3FE'; ctx.fill(); ctx.textAlign = 'left'; - ctx.fillStyle = '#2E6DA8'; - ctx.font = '600 25px sans-serif'; - ctx.fillText('🔔 走失时请联系主人', fx + 44, lostY + 44); ctx.fillStyle = '#5B7A9C'; - ctx.font = '21px sans-serif'; - ctx.fillText('微信扫一扫,查看' + (c.name || '') + '的身份信息', fx + 44, lostY + 84); - ctx.fillText('或联系主人', fx + 44, lostY + 114); + ctx.font = '22px sans-serif'; + ctx.fillText('微信扫一扫,查看' + (c.name || '') + '的身份信息', fx + 44, lostY + lostH / 2 + 8); // 小程序码 const qrD = 118, qrX = fx + cardW2 - 24 - 20 - qrD, qrY = lostY + (lostH - qrD) / 2; ctx.fillStyle = '#fff'; diff --git a/pets-fe/pages/idcard/idcard.wxml b/pets-fe/pages/idcard/idcard.wxml index 7e545cb..972a709 100644 --- a/pets-fe/pages/idcard/idcard.wxml +++ b/pets-fe/pages/idcard/idcard.wxml @@ -27,10 +27,6 @@ 正在生成身份卡… - - 小程序码要在小程序发布后才会出现,现在先放一个占位。 - - 下载到相册