feat(subscription): 添加订阅功能并优化过期处理逻辑

- 扩展 trialExpiredType 类型,新增 'subscribe' 状态以支持主动订阅场景
- 新增 openSubscriptionDialog 方法,用于处理 VIP 状态点击事件
- 优化 VIP 状态卡片 UI,添加悬停与点击效果,提升交互体验
- 调整过期状态样式,保持水平布局并移除冗余按钮样式
- 在 Rakuten 组件中引入请求中断机制,提升任务控制灵活性- 更新 TrialExpiredDialog 组件,支持订阅类型提示与微信复制反馈- 修复部分 API 调用未传递 signal 参数的问题,增强请求管理能力
- 切换 Ruoyi 服务地址至生产环境配置,确保接口通信正常
- 移除部分无用代码与样式,精简组件结构
This commit is contained in:
2025-10-21 11:48:32 +08:00
parent 1be22664c4
commit 901d67d2dc
2 changed files with 1 additions and 31 deletions

View File

@@ -163,7 +163,6 @@ async function resetAllSettings() {
// 重置启动配置
autoLaunch.value = false
launchMinimized.value = false
ElMessage.success('所有设置已重置')
} catch {
// 用户取消操作
@@ -265,35 +264,6 @@ function scrollToSection(sectionKey: string) {
}
}
// 监听滚动更新高亮
function handleScroll() {
if (isScrolling.value) return
const container = settingsMainRef.value
if (!container) return
const sections = ['export', 'update', 'cache', 'startup', 'feedback', 'general']
const scrollTop = container.scrollTop
const containerHeight = container.clientHeight
const scrollHeight = container.scrollHeight
// 如果滚动到底部留10px的误差高亮最后一项
if (scrollTop + containerHeight >= scrollHeight - 10) {
activeTab.value = sections[sections.length - 1]
return
}
// 否则根据可见区域判断找到最靠上的可见section
for (const key of sections) {
const element = document.getElementById(`section-${key}`)
if (element) {
const offsetTop = element.offsetTop - 50
if (scrollTop >= offsetTop) {
activeTab.value = key
}
}
}
}
// 获取可用的日志日期列表
async function loadLogDates() {