feat: 去除构建时版控变量 + 窗口标题动态版控 + 退出登录保留缓存 (0.0.24)
版控体系重构(13 文件):
- 移除 build.mjs --personal/--enterprise 参数和 EDITION 环境变量
- 统一安装包文件名:船长-HeiXiu-{os}-{版本号}-Setup.{ext}
- 简化 package.json 构建脚本,移除 :enterprise 变体
- scripts/*.mjs 不再接受 edition 参数
- 移除 shared/constants/app.ts 的 parseEdition()
窗口标题动态版控:
- 新格式:船长-HeiXiu-{os}-{版本号}(登录前)/ ·{版控} 后缀(登录后)
- 链路:AppProvider(account_type) → useEffect → appRuntime IPC → main process
- 移除 updater.ts 更新检查 API 的 edition 查询参数
本地存储生命周期修正:
- 退出登录不再自动清空缓存(user_id 隔离,重新登录命中缓存)
- clearUserStorage 添加 isOpen() 竞态守卫
- 移除 closeDatabase() 避免退出→重新登录后数据库不可用
- 手动「清理缓存」按钮保留
文档:
- CHANGELOG.md 新增 0.0.24 条目
- TODO.md 新增已完成项
This commit is contained in:
204
src/components/frame/navbar/nav-config.ts
Normal file
204
src/components/frame/navbar/nav-config.ts
Normal file
@@ -0,0 +1,204 @@
|
||||
// ============================================================
|
||||
// 导航栏配置 —— 按版本(个人版 / 企业版)定义导航项
|
||||
// 每个导航项的 iconSrc 指向 src/assets/header_actions/ 下的 SVG 图标
|
||||
// ============================================================
|
||||
|
||||
import type { NavItemConfig } from './types';
|
||||
|
||||
// ---------- SVG 图标导入(?raw = 内联渲染,使 currentColor 生效)----------
|
||||
import complianceAssetsSvg from '@/assets/header_actions/compliance_assets.svg?raw';
|
||||
import announcementsSvg from '@/assets/header_actions/announcements.svg?raw';
|
||||
import accountSvg from '@/assets/header_actions/account.svg?raw';
|
||||
import membershipSvg from '@/assets/header_actions/membership.svg?raw';
|
||||
import rechargeSvg from '@/assets/header_actions/recharge.svg?raw';
|
||||
import billingSvg from '@/assets/header_actions/billing.svg?raw';
|
||||
import orderDetailsSvg from '@/assets/header_actions/order_details.svg?raw';
|
||||
import wechatWorkSvg from '@/assets/header_actions/wechat_work.svg?raw';
|
||||
import settingsSvg from '@/assets/header_actions/settings.svg?raw';
|
||||
import signOutSvg from '@/assets/header_actions/sign_out.svg?raw';
|
||||
import projectManagementSvg from '@/assets/header_actions/project_management.svg?raw';
|
||||
|
||||
// ============================================================
|
||||
// 个人版导航项
|
||||
// ============================================================
|
||||
|
||||
/** 个人版 — 左侧 */
|
||||
const personalLeft: NavItemConfig[] = [
|
||||
{
|
||||
key: 'compliance-assets',
|
||||
label: '合规素材库',
|
||||
iconSrc: complianceAssetsSvg,
|
||||
action: 'page',
|
||||
target: '/compliance-assets',
|
||||
modalType: 'floating',
|
||||
position: 'left',
|
||||
},
|
||||
];
|
||||
|
||||
/** 个人版 — 右侧(从左至右排列) */
|
||||
const personalRight: NavItemConfig[] = [
|
||||
{
|
||||
key: 'announcements',
|
||||
label: '公告',
|
||||
iconSrc: announcementsSvg,
|
||||
action: 'drawer',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'account',
|
||||
label: '查帐户',
|
||||
iconSrc: accountSvg,
|
||||
action: 'page',
|
||||
target: '/account',
|
||||
modalType: 'floating',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
{
|
||||
key: 'vip-activate',
|
||||
label: '开会员/激活',
|
||||
iconSrc: membershipSvg,
|
||||
action: 'page',
|
||||
target: '/vip',
|
||||
modalType: 'modal',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'recharge-points',
|
||||
label: '充值',
|
||||
iconSrc: rechargeSvg,
|
||||
action: 'page',
|
||||
target: '/recharge',
|
||||
modalType: 'modal',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
{
|
||||
key: 'billing-history',
|
||||
label: '消费记录',
|
||||
iconSrc: billingSvg,
|
||||
action: 'page',
|
||||
target: '/billing',
|
||||
modalType: 'floating',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
{
|
||||
key: 'order-details',
|
||||
label: '订单明细',
|
||||
iconSrc: orderDetailsSvg,
|
||||
action: 'page',
|
||||
target: '/orders',
|
||||
modalType: 'floating',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
{
|
||||
key: 'wechat-work',
|
||||
label: '企业微信',
|
||||
iconSrc: wechatWorkSvg,
|
||||
action: 'page',
|
||||
target: '/wechat-work',
|
||||
modalType: 'modal',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'settings',
|
||||
label: '设置',
|
||||
iconSrc: settingsSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'auth',
|
||||
label: '登录/注册',
|
||||
iconSrc: accountSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
requireGuest: true,
|
||||
},
|
||||
{
|
||||
key: 'logout',
|
||||
label: '退出登录',
|
||||
iconSrc: signOutSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
];
|
||||
|
||||
// ============================================================
|
||||
// 企业版导航项
|
||||
// ============================================================
|
||||
|
||||
/** 企业版 — 左侧 */
|
||||
const enterpriseLeft: NavItemConfig[] = [
|
||||
{
|
||||
key: 'compliance-assets',
|
||||
label: '合规素材库',
|
||||
iconSrc: complianceAssetsSvg,
|
||||
action: 'page',
|
||||
target: '/compliance-assets',
|
||||
modalType: 'floating',
|
||||
position: 'left',
|
||||
},
|
||||
{
|
||||
key: 'project-management',
|
||||
label: '项目管理',
|
||||
iconSrc: projectManagementSvg,
|
||||
action: 'page',
|
||||
target: '/projects',
|
||||
modalType: 'floating',
|
||||
position: 'left',
|
||||
},
|
||||
];
|
||||
|
||||
/** 企业版 — 右侧(从左至右排列) */
|
||||
const enterpriseRight: NavItemConfig[] = [
|
||||
{
|
||||
key: 'announcements',
|
||||
label: '公告',
|
||||
iconSrc: announcementsSvg,
|
||||
action: 'drawer',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'quota-check',
|
||||
label: '查配额',
|
||||
iconSrc: accountSvg,
|
||||
action: 'page',
|
||||
target: '/quota',
|
||||
modalType: 'floating',
|
||||
position: 'right',
|
||||
requireLogin: false,
|
||||
},
|
||||
{
|
||||
key: 'settings',
|
||||
label: '设置',
|
||||
iconSrc: settingsSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
},
|
||||
{
|
||||
key: 'auth',
|
||||
label: '登录/注册',
|
||||
iconSrc: accountSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
requireGuest: true,
|
||||
},
|
||||
{
|
||||
key: 'logout',
|
||||
label: '退出登录',
|
||||
iconSrc: signOutSvg,
|
||||
action: 'button',
|
||||
position: 'right',
|
||||
requireLogin: true,
|
||||
},
|
||||
];
|
||||
|
||||
// ============================================================
|
||||
// 导出
|
||||
// ============================================================
|
||||
|
||||
export { personalLeft, personalRight, enterpriseLeft, enterpriseRight };
|
||||
Reference in New Issue
Block a user