合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
✈ 发送截图至 Telegram
✉ 发送截图至 Email
合计金额
$110.99
选择支付方式
打开支付宝扫一扫完成支付
支付完成后,请截图发送至:
Telegram: @Seven0825
Email: siwaermate@gmail.com
${b.saveTxt ? `${b.saveTxt}
` : ''}
`;
}).join('');
document.getElementById('vBtnNext3').disabled = (vpsSelBilling === null);
}
function vpsPickBilling(key, btn) {
vpsSelBilling = key;
document.querySelectorAll('.vps-billing-opt').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
document.getElementById('vBtnNext3').disabled = false;
}
function vpsRenderSummary() {
if (vpsSelPlan === null || vpsSelBilling === null) return;
const plan = VPS_PLANS[vpsSelPlan];
const bill = VPS_BILLING.find(b => b.key === vpsSelBilling);
const price = plan.prices[vpsSelBilling];
const summaryEl = document.getElementById('vpsOrderSummary');
summaryEl.innerHTML = `
套餐
${plan.name} · ${plan.tier}
金额
$${price} ${bill.period}
`;
// Reset pay tabs
document.querySelectorAll('#vstep4 .pay-tab').forEach((t,i) => t.classList.toggle('active', i===0));
document.querySelectorAll('#vstep4 .pay-panel').forEach((p,i) => p.classList.toggle('active', i===0));
}
function vpsSwitchTab(tab, btn) {
document.querySelectorAll('#vstep4 .pay-tab').forEach(t => t.classList.remove('active'));
document.querySelectorAll('#vstep4 .pay-panel').forEach(p => p.classList.remove('active'));
btn.classList.add('active');
document.getElementById('vpanel-' + tab).classList.add('active');
}
function setText(sel, val) { const el = document.querySelector(sel); if(el) el.textContent = val; }
function setHTML(sel, val) { const el = typeof sel==='string' ? document.querySelector(sel) : sel; if(el) el.innerHTML = val; }
function setText2(parent, sel, val) { const el = parent.querySelector(sel); if(el) el.textContent = val; }
function setEyebrow(sec, val) { const el = document.querySelector(sec+' .eyebrow'); if(el) el.textContent = val; }
function setSectionTitle(sec, val) { const el = document.querySelector(sec+' .section-title'); if(el) el.textContent = val; }
function setSectionTitleHTML(sec, val) { const el = document.querySelector(sec+' .section-title'); if(el) el.innerHTML = val; }
function setSectionSub(sec, val) { const el = document.querySelector(sec+' .section-sub'); if(el) el.textContent = val; }
// 页面加载完后修正 FAQ 节点,保证翻译能找到文字节点
document.querySelectorAll('.faq-q').forEach(btn => {
const icon = btn.querySelector('.faq-icon');
if (icon) {
const text = btn.childNodes[0];
if (text && text.nodeType === 3) {
// 文字节点已存在,保持原样
}
}
});
// 国家列表:搜索过滤 + 展开/收起
let countriesExpanded = false;
function toggleMoreCountries() {
countriesExpanded = !countriesExpanded;
document.querySelectorAll('.country-card.cc-extra').forEach(c => c.classList.toggle('cc-hidden', !countriesExpanded));
const btn = document.getElementById('showMoreBtn');
const label = document.getElementById('showMoreLabel');
btn.classList.toggle('expanded', countriesExpanded);
label.textContent = countriesExpanded ? '收起' : '查看全部 50+ 国家';
}
function filterCountries(query) {
const q = query.trim().toLowerCase();
const grid = document.getElementById('countriesGrid');
const cards = grid.querySelectorAll('.country-card');
const showMoreWrap = document.getElementById('showMoreWrap');
const emptyMsg = document.getElementById('countryEmptyMsg');
let visibleCount = 0;
if (q === '') {
cards.forEach(c => {
const isExtra = c.classList.contains('cc-extra');
c.classList.remove('cc-hidden');
if (isExtra && !countriesExpanded) c.classList.add('cc-hidden');
});
showMoreWrap.style.display = '';
emptyMsg.classList.remove('show');
return;
}
cards.forEach(c => {
const name = c.getAttribute('data-name') || '';
const isp = c.querySelector('.country-isp') ? c.querySelector('.country-isp').textContent.toLowerCase() : '';
const match = name.includes(q) || isp.includes(q);
c.classList.toggle('cc-hidden', !match);
if (match) visibleCount++;
});
showMoreWrap.style.display = 'none';
emptyMsg.classList.toggle('show', visibleCount === 0);
}
// 评价:展开/收起更多评价
let reviewsExpanded = false;
function toggleMoreReviews() {
reviewsExpanded = !reviewsExpanded;
// 直接操作第4、5、6张卡片(索引3、4、5)
const allCards = document.querySelectorAll('.review-card');
for (let i = 3; i < allCards.length; i++) {
if (reviewsExpanded) {
allCards[i].classList.remove('rc-hidden');
} else {
allCards[i].classList.add('rc-hidden');
}
}
const btn = document.getElementById('reviewsShowMore').querySelector('.rsm-btn');
btn.textContent = reviewsExpanded ? '收起评价' : '查看全部评价';
}
// AT&T 产品系统逻辑
let attCurrentProduct = null;
let attCurrentBandwidth = 50;
let attVpsStep = 1;
let attVpsSelPlan = null;
let attVpsSelBilling = null;
let attVpsSelOs = 'Ubuntu 24.04';
const attProducts = {
proxy: { name: 'AT&T-代理', price: 54.98, type: 'proxy' },
tunnel: { name: 'AT&T-隧道', price: 69.98, type: 'tunnel' },
'vps-standard': { name: '标准版VPS', price: 45.99, type: 'vps', specs: '4核/8GB/50GB' },
'vps-flagship': { name: '旗舰版VPS', price: 65.99, type: 'vps', specs: '8核/16GB/100GB' }
};
// ── AT&T 新品流程 ──
let attStep = 1;
let attSelectedProduct = null;
let attSelectedBandwidth = 50;
let attSelectedVpsBandwidth = 50;
let attSelectedProtocol = 'SOCKS5';
let attSelectedBilling = null;
let attSelectedOS = 'Ubuntu 24.04';
let attSelectedPayMethod = 'alipay';
let attUsdtRate = 1; // USDT与美元汇率
function showATTStep(step) {
attStep = step;
// Hide all steps
document.querySelectorAll('.vps-step-content').forEach(el => {
if (el.closest('#attModal')) el.classList.remove('active');
});
// Show target step
const target = document.getElementById('astep' + step);
if (target) target.classList.add('active');
// Update step bar
for (let i = 1; i <= 4; i++) {
const num = document.getElementById('asn' + i);
const lbl = document.getElementById('asl' + i);
const line = document.getElementById('asline' + i);
if (num) { num.classList.toggle('active', i <= step); }
if (lbl) { lbl.classList.toggle('active', i <= step); }
if (line) { line.classList.toggle('active', i < step); }
}
}
function showATTProducts() {
attStep = 1;
attSelectedProduct = null;
attSelectedBandwidth = 50;
attSelectedVpsBandwidth = 50;
attSelectedProtocol = 'SOCKS5';
attSelectedBilling = null;
attSelectedOS = 'Ubuntu 24.04';
attSelectedPayMethod = 'alipay';
document.getElementById('attModal').classList.add('active');
showATTStep(1);
document.body.style.overflow='hidden';
}
function closeATTModal() {
document.getElementById('attModal').classList.remove('active');
document.body.style.overflow='auto';
}
function handleAttOverlay(e) {
if (e.target === document.getElementById('attModal')) closeATTModal();
}
function attSelectProduct(productId, btn) {
attSelectedProduct = productId;
document.querySelectorAll('.vps-plan-card').forEach(c => c.classList.remove('selected'));
btn.classList.add('selected');
// 根据产品类型显示不同的配置面板
const productType = attProducts[productId].type;
const attConfigPanel = document.getElementById('attConfigPanel');
const vpsConfigPanel = document.getElementById('vpsConfigPanel');
if (productType === 'vps') {
attConfigPanel.style.display = 'none';
vpsConfigPanel.style.display = 'flex';
} else {
attConfigPanel.style.display = 'flex';
vpsConfigPanel.style.display = 'none';
}
showATTStep(2);
}
function attSetBandwidth(mbps, btn) {
attSelectedBandwidth = mbps;
btn.parentElement.querySelectorAll('.att-config-btn').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
}
function attSetVpsBandwidth(mbps, btn) {
attSelectedVpsBandwidth = mbps;
btn.parentElement.querySelectorAll('.att-config-btn').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
}
function attSetOS(osName, btn) {
attSelectedOS = osName;
btn.parentElement.querySelectorAll('.att-config-btn').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
}
function attSetProtocol(proto, btn) {
attSelectedProtocol = proto;
btn.parentElement.querySelectorAll('.att-config-btn').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
}
function attSelectBilling(period, btn) {
attSelectedBilling = period;
document.querySelectorAll('.att-billing-option').forEach(b => b.classList.remove('selected'));
btn.classList.add('selected');
}
function attSelectPayMethod(method, btn) {
attSelectedPayMethod = method;
document.querySelectorAll('.att-pay-method-btn').forEach(b => {
b.style.borderColor = '#e5e7eb';
b.style.background = '#fff';
b.style.color = '#6b7280';
});
btn.style.borderColor = '#2563eb';
btn.style.background = '#eff6ff';
btn.style.color = '#2563eb';
// 切换支付面板
const alipayPanel = document.getElementById('alipayPanel');
const usdtPanel = document.getElementById('usdtPanel');
if (method === 'alipay') {
alipayPanel.style.display = 'block';
usdtPanel.style.display = 'none';
} else {
alipayPanel.style.display = 'none';
usdtPanel.style.display = 'block';
}
}
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then(() => {
alert('已复制到剪贴板!');
});
}
function calculateOrderPrice() {
const basePrice = attProducts[attSelectedProduct].price;
const productType = attProducts[attSelectedProduct].type;
let totalPrice = basePrice;
// VPS产品额外带宽费用 (每50Mbps加$5)
if (productType === 'vps' && attSelectedVpsBandwidth > 50) {
const extraBandwidth = attSelectedVpsBandwidth - 50;
const bandwidthFee = (extraBandwidth / 50) * 5;
totalPrice += bandwidthFee;
}
// AT&T产品额外带宽费用
if ((productType === 'proxy' || productType === 'tunnel') && attSelectedBandwidth > 50) {
const extraBandwidth = attSelectedBandwidth - 50;
const bandwidthFee = (extraBandwidth / 50) * 3;
totalPrice += bandwidthFee;
}
return totalPrice;
}
function attGoStep(step) {
if (step === 2) {
// 重置配置
if (attProducts[attSelectedProduct].type === 'vps') {
attSelectedOS = 'Ubuntu 24.04';
attSelectedVpsBandwidth = 50;
} else {
attSelectedBandwidth = 50;
attSelectedProtocol = 'SOCKS5';
}
showATTStep(2);
} else if (step === 3) {
// 计算价格
const basePrice = calculateOrderPrice();
const monthPrice = basePrice;
const quarterPrice = (basePrice * 3 * 0.95).toFixed(2);
const yearPrice = (basePrice * 12 * 0.85).toFixed(2);
document.getElementById('monthPrice').textContent = '$' + monthPrice.toFixed(2);
document.getElementById('quarterPrice').textContent = '$' + quarterPrice;
document.getElementById('yearPrice').textContent = '$' + yearPrice;
showATTStep(3);
} else if (step === 4) {
// 生成订单信息
const productType = attProducts[attSelectedProduct].type;
const basePrice = calculateOrderPrice();
let totalPrice = basePrice;
if (attSelectedBilling === '季付') totalPrice = basePrice * 3 * 0.95;
else if (attSelectedBilling === '年付') totalPrice = basePrice * 12 * 0.85;
// 产品名称
document.getElementById('attOrderProduct').textContent = attProducts[attSelectedProduct].name;
// OS信息(仅VPS显示)
const osRow = document.getElementById('attOrderOS');
if (productType === 'vps') {
osRow.style.display = 'flex';
document.getElementById('attOrderOSValue').textContent = attSelectedOS;
} else {
osRow.style.display = 'none';
}
// 带宽
if (productType === 'vps') {
document.getElementById('attOrderBandwidth').textContent = attSelectedVpsBandwidth + 'Mbps';
} else {
document.getElementById('attOrderBandwidth').textContent = attSelectedBandwidth + 'Mbps';
}
// 协议(仅AT&T产品显示)
const protoRow = document.getElementById('attOrderProtocolRow');
if (productType === 'proxy' || productType === 'tunnel') {
protoRow.style.display = 'flex';
document.getElementById('attOrderProtocol').textContent = attSelectedProtocol;
} else {
protoRow.style.display = 'none';
}
// 周期
document.getElementById('attOrderBilling').textContent = attSelectedBilling;
// 总价
document.getElementById('attOrderTotal').textContent = '$' + totalPrice.toFixed(2);
// 更新USDT金额 (按1USD=1USDT计算)
document.getElementById('usdtAmount').textContent = totalPrice.toFixed(2);
showATTStep(4);
} else {
showATTStep(step);
}
}
document.addEventListener('click', function(e) {
if (e.target.classList.contains('att-modal-overlay')) {
e.target.parentElement.style.display = 'none';
}
});