d256e7ac85
- tokens.css/site.css 逐值对齐原型设计系统,icons 雪碧图,零外链;首页/下载/帮助/法务全站重皮肤,真实截图 - 注册与登录在官网内完成(写 shared_preferences_web 兼容 localStorage,不再跳 App) - 价格区四档:免费/标准 299/高级 599/定制;登录后标准/高级按钮变「购买 / 续费」 - 新增 /checkout/(套餐+月付年付切换)与 /license/result/(支付回跳轮询到账) - 登录页支持 ?next= 站内回跳;二维码措辞改「扫码看详情可分享」 - 下载页构建期真实下载链接+运行时 release 刷新;旧 features 页/死 CSS/dist 产物清理 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
/* 官网导航交互:汉堡菜单 + 登录态感知(Web 版 App 与官网同域时,
|
|
localStorage['flutter.*'] 有登录信息 → CTA 变「进入系统」)。零依赖。 */
|
|
(function () {
|
|
function getAuthUser() {
|
|
var token = localStorage.getItem('flutter.access_token');
|
|
var username = localStorage.getItem('flutter.username');
|
|
if (!token || !username) return null;
|
|
return {
|
|
username: username,
|
|
realName: localStorage.getItem('flutter.real_name') || '',
|
|
shopNo: localStorage.getItem('flutter.shop_no') || '',
|
|
};
|
|
}
|
|
|
|
// 汉堡菜单
|
|
var burger = document.getElementById('nav-burger');
|
|
var mobile = document.getElementById('nav-mobile-menu');
|
|
if (burger && mobile) {
|
|
burger.addEventListener('click', function (e) {
|
|
e.stopPropagation();
|
|
var open = mobile.classList.toggle('open');
|
|
burger.setAttribute('aria-expanded', open ? 'true' : 'false');
|
|
});
|
|
document.addEventListener('click', function (e) {
|
|
if (!mobile.contains(e.target) && e.target !== burger) {
|
|
mobile.classList.remove('open');
|
|
}
|
|
});
|
|
}
|
|
|
|
// 登录态:CTA 换成「进入系统」
|
|
var user = getAuthUser();
|
|
if (user) {
|
|
var cta = document.getElementById('nav-cta');
|
|
if (cta) {
|
|
cta.innerHTML =
|
|
'<a class="btn primary" href="/app/">进入系统 · ' +
|
|
(user.realName || user.username).replace(/[<>&"]/g, '') +
|
|
'</a>';
|
|
}
|
|
}
|
|
})();
|