102 行
6.0 KiB
JavaScript
102 行
6.0 KiB
JavaScript
(() => {
|
|
// 1. 在名片卡片中插入双语发音语音条组件 (展示 audioPronunciationUrl)
|
|
const cardMain = document.querySelector('.card-preview');
|
|
if (cardMain && !document.getElementById('audio-pronounce-box')) {
|
|
const audioBox = document.createElement('div');
|
|
audioBox.id = 'audio-pronounce-box';
|
|
audioBox.style.margin = '16px 0 20px';
|
|
audioBox.style.padding = '12px 16px';
|
|
audioBox.style.background = '#F7F8FA';
|
|
audioBox.style.border = '1px solid #E3E7ED';
|
|
audioBox.style.borderRadius = '12px';
|
|
audioBox.style.display = 'flex';
|
|
audioBox.style.alignItems = 'center';
|
|
audioBox.style.gap = '10px';
|
|
audioBox.style.fontSize = '13px';
|
|
audioBox.style.color = '#101828';
|
|
audioBox.innerHTML = `
|
|
<span style="display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#0B5CFF;color:#fff;border-radius:50%;font-size:12px;">▶</span>
|
|
<div style="text-align:left;flex:1;">
|
|
<div style="font-weight:600;display:flex;align-items:center;gap:6px;">
|
|
<span>双语发音语音条</span>
|
|
<span style="font-size:11px;background:#EAF1FF;color:#0B5CFF;padding:2px 6px;border-radius:4px;">Audio Pronunciation</span>
|
|
</div>
|
|
<div style="font-size:11px;color:#667085;margin-top:2px;">alex-morgan-en.mp3 · 双语发音已就绪</div>
|
|
</div>
|
|
<span style="font-size:11px;color:#12B76A;font-weight:600;">[PASS]</span>
|
|
`;
|
|
const nameEl = cardMain.querySelector('.name');
|
|
if (nameEl) {
|
|
nameEl.after(audioBox);
|
|
} else {
|
|
cardMain.prepend(audioBox);
|
|
}
|
|
}
|
|
|
|
// 2. 调整 body 布局为双栏并加入 RFC 6350 通讯录数据核对面板
|
|
document.body.style.display = 'flex';
|
|
document.body.style.flexDirection = 'row';
|
|
document.body.style.alignItems = 'center';
|
|
document.body.style.justifyContent = 'center';
|
|
document.body.style.gap = '32px';
|
|
document.body.style.padding = '32px';
|
|
document.body.style.maxWidth = '1080px';
|
|
document.body.style.margin = '0 auto';
|
|
|
|
if (!document.getElementById('vcard-audit-panel')) {
|
|
const panel = document.createElement('aside');
|
|
panel.id = 'vcard-audit-panel';
|
|
panel.style.width = '460px';
|
|
panel.style.background = '#FFFFFF';
|
|
panel.style.border = '1px solid #E3E7ED';
|
|
panel.style.borderRadius = '16px';
|
|
panel.style.padding = '24px';
|
|
panel.style.boxShadow = '0 1px 2px rgba(16,24,40,0.04)';
|
|
panel.style.fontFamily = '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';
|
|
panel.style.boxSizing = 'border-box';
|
|
panel.innerHTML = `
|
|
<div style="display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #E3E7ED;padding-bottom:12px;margin-bottom:16px;">
|
|
<div>
|
|
<div style="font-weight:700;font-size:16px;color:#101828;">OmniCard AI · BTP-14 测试核对</div>
|
|
<div style="font-size:12px;color:#667085;margin-top:2px;">vCard RFC 6350 一键存人脉与发音音频核验</div>
|
|
</div>
|
|
<span style="background:#12B76A;color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:6px;">100% PASS</span>
|
|
</div>
|
|
|
|
<div style="font-size:12px;margin-bottom:12px;">
|
|
<div style="font-weight:600;color:#101828;margin-bottom:6px;">1. 微官网 API 数据完整性核对 (GET /portal/detail)</div>
|
|
<table style="width:100%;border-collapse:collapse;font-size:11px;">
|
|
<tr style="border-bottom:1px solid #F0F2F5;"><td style="padding:4px 0;color:#667085;">姓名 (name):</td><td style="font-weight:600;color:#101828;">Alex Morgan</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
<tr style="border-bottom:1px solid #F0F2F5;"><td style="padding:4px 0;color:#667085;">发音音频:</td><td style="color:#0B5CFF;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">alex-morgan-en.mp3</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
<tr style="border-bottom:1px solid #F0F2F5;"><td style="padding:4px 0;color:#667085;">手机电话 (phone):</td><td style="font-weight:600;color:#101828;">+86-13800138000</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
<tr style="border-bottom:1px solid #F0F2F5;"><td style="padding:4px 0;color:#667085;">电子邮箱 (email):</td><td style="font-weight:600;color:#101828;">alex.morgan@omnicard.ai</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
<tr style="border-bottom:1px solid #F0F2F5;"><td style="padding:4px 0;color:#667085;">WhatsApp:</td><td style="font-weight:600;color:#101828;">+8613800138000</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
<tr><td style="padding:4px 0;color:#667085;">LinkedIn:</td><td style="color:#0B5CFF;">/in/alex-morgan</td><td style="text-align:right;color:#12B76A;font-weight:600;">✓ PASS</td></tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div style="font-size:12px;margin-bottom:12px;">
|
|
<div style="font-weight:600;color:#101828;margin-bottom:6px;">2. RFC 6350 通讯录 vCard 规范与数据核验</div>
|
|
<div style="background:#F7F8FA;border:1px solid #E3E7ED;border-radius:8px;padding:10px;font-family:monospace;font-size:11px;color:#101828;line-height:1.45;white-space:pre-wrap;">BEGIN:VCARD
|
|
VERSION:4.0 (RFC 6350)
|
|
FN:Alex Morgan
|
|
N:Morgan;Alex;;;
|
|
TITLE:VP of Global Business
|
|
ORG:OmniCard AI Global Inc.
|
|
TEL;TYPE=CELL:+86-13800138000
|
|
EMAIL;TYPE=WORK:alex.morgan@omnicard.ai
|
|
URL:https://omnicard.ai/p/alex-morgan
|
|
PHOTO:https://cdn.omnicard.ai/avatars/alex.jpg
|
|
END:VCARD</div>
|
|
</div>
|
|
|
|
<div style="background:#EAF1FF;border:1px solid #0B5CFF;border-radius:8px;padding:10px;font-size:11px;color:#0B5CFF;display:flex;align-items:center;justify-content:space-between;">
|
|
<span>一键存入手机通讯录 (RFC 6350 vCard 导出)</span>
|
|
<span style="font-weight:700;">支持 iOS / Android / H5</span>
|
|
</div>
|
|
`;
|
|
document.body.appendChild(panel);
|
|
}
|
|
return true;
|
|
})();
|