XuqmGroup
ae579428b1
feat(download): 对已丢失的历史APK显示"无法下载"而非死链
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 02:48:13 +08:00
XuqmGroup
0eeaec92c9
feat(update): 上传APK时携带文件大小,配合后端按空间阈值清理历史版本
...
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 02:38:57 +08:00
XuqmGroup
24ac4cbc08
feat(update): 下载页展示历史版本 + 控制台新增下载页链接入口
...
- 下载页支持展开查看/下载全部曾发布过的历史版本 APK,不再只显示最新版本
- 版本管理页工具栏新增"复制对外下载页链接"按钮,方便管理员查找和分享对外下载页地址
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 02:13:23 +08:00
XuqmGroup
afe698bf46
feat(update): 版本管理页体验优化 + 新增应用下载页
...
- 版本列表操作列新增"下载"按钮,直接下载 APK
- 移除应用商店标签的悬浮提示,仅保留"查看详情"入口
- 新增 /download/:appKey 公开下载页:按设备 UA 识别 Android/iOS/HarmonyOS,
展示对应最新已发布版本;Android 按品牌匹配商店跳转按钮,未匹配时列出所有已配置商店链接;
iOS/鸿蒙仅在已发布且配置商店链接时展示,否则提示无可用安装包
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-04 01:51:26 +08:00
XuqmGroup
2abed7f60d
fix: disable submit button for SUBMITTING state stores
...
- Add SUBMITTING to isStoreActiveReview check to prevent duplicate submissions
- Show '上传中,将跳过' text for SUBMITTING state in submit dialog
- Prevents users from accidentally triggering duplicate uploads
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 18:59:09 +08:00
XuqmGroup
088e922ec9
feat(push-config): 每个厂商卡片内嵌 Profiles,独立保存按钮
...
- 移除全局"厂商凭据"包裹卡和底部"平台 Profiles"卡
- 每个厂商独立一张卡:凭据 + 通知渠道 Profiles + 保存按钮
- Profiles 按厂商过滤展示,支持在对应厂商卡内添加/删除
- iOS APNs 卡额外显示 Thread ID 和中断级别列
- savingMap 替代独立的 saving ref,各厂商 loading 状态独立
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 16:29:37 +08:00
XuqmGroup
1b3c94603a
fix(push-config): 修复厂商凭据无法回显问题
...
- 添加 getServiceItem API,按平台精确查询推送服务配置(/services/item)
- applySelectedPlatformConfig 改用精确接口而非列表,避免 listByApp
只返回第一条 PUSH 服务(IOS)导致 ANDROID 配置加载为空的问题
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 16:16:11 +08:00
XuqmGroup
0b0e004c2e
feat(push-config): 厂商凭据与 Profiles 分别独立保存
...
- 厂商凭据卡片 header 右侧增加「保存凭据」按钮
- Profiles 卡片底部保留「保存 Profiles」按钮
- 拆分 saving 为 savingVendors / savingProfiles,加载状态独立
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 14:27:07 +08:00
XuqmGroup
43a4e29ae5
fix(push-config): 按平台过滤厂商凭据展示
...
切换平台时只展示对应平台的厂商:
- Android:小米、华为、荣耀、OPPO、VIVO
- iOS:APNs
- HarmonyOS:鸿蒙 Push Kit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 14:23:25 +08:00
XuqmGroup
efa77abce9
fix(push): 修复推送平台配置选择器及在线时间显示
...
- PushConfigView: 新增平台选择器(Android/iOS/HarmonyOS),加载时固定默认 ANDROID,
避免因激活服务平台顺序不同而静默保存到错误平台
- PushManagementView: 最后在线为空时降级显示设备最后登录时间,并加注释区分 IM 在线 vs 设备登录
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 14:12:24 +08:00
XuqmGroup
68a56a3575
feat(push): 测试推送支持选择指定设备,默认最近登录设备
...
- 设备选择器显示全部设备,预选最近登录项
- sent=false && targetCount>0 时显示厂商拒绝提示
- testOffline API 新增 deviceId 参数
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 13:22:07 +08:00
XuqmGroup
6f89da4362
feat(push): Token 复制按钮 + romVersion 显示
...
- PushManagementView: 系统版本列新增 romVersion 子行显示(灰色小字)
- Token 预览列新增"复制"按钮,点击后调管理端接口获取完整 token 并复制到剪贴板
- DeviceInfo 接口添加 romVersion 字段
- pushAdminApi 新增 getDeviceToken 方法
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 12:25:14 +08:00
XuqmGroup
efdbfafeb7
feat(push-management): 在服务门户栏添加「厂商凭据配置」快速跳转
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 18:38:03 +08:00
XuqmGroup
af552ad58e
fix(push-config): 移除平台切换开关和服务状态,修复凭据保存不生效问题
...
- 删除"配置平台"切换 UI(Android/iOS/鸿蒙分段选择器)和推送服务开关
- 删除"服务状态"显示(页面可达即已开通,显示"未开通"逻辑有误)
- 修复厂商凭据保存:前端直接将 PushServiceConfig 作为 body,
服务端 FeatureServiceConfigRequest 期望 pushConfig 字段包裹,
导致 req.pushConfig() 始终为 null,vendors 从未实际写入。
改为发送 { pushConfig: payload } 使服务端正确解析。
- loadData 改为优先选取已启用的 PUSH 服务平台
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 17:53:50 +08:00
XuqmGroup
9413a5ea5c
feat(sourcemap): 隐藏文件路径,显示 Build ID,添加删除按钮,倒序排列
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 12:05:03 +08:00
XuqmGroup
55cd65899c
fix(bugcollect): 补充缺失的 statusTag/statusLabel/formatTime 函数
...
这三个函数在模板中调用但未在 script 中定义,导致 TypeScript 编译失败。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:41:37 +08:00
XuqmGroup
e2b85c76a4
fix(bugcollect): 修复趋势图不显示 — API 响应结构为 {issueId, points[]} 而非数组
...
trend API 返回 { issueId, points: [...] },前端误以为是数组直接调用 .map()
导致 TypeError 被 catch 静默吞掉,图表从不渲染。
修复:正确读取 res.data.data.points,并更新类型定义。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:39:44 +08:00
XuqmGroup
563a8d8af6
fix: BugCollect 前端空 catch 块添加错误提示
...
修复:
- BugCollectIssues.vue - 添加 ElMessage.error
- BugCollectEvents.vue - 添加 ElMessage.error
- BugCollectRankFreq.vue - 添加 ElMessage.error
- BugCollectRankRisk.vue - 添加 ElMessage.error
- BugCollectSourcemaps.vue - 添加 ElMessage.error
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 19:38:49 +08:00
XuqmGroup
2c4dcaf130
refactor: 抽取 BugCollect 公共辅助函数
...
新增:
- utils/bugCollect.ts - levelTag/statusTag/statusLabel/formatTime/platformTagType
重构:
- BugCollectOverview.vue - 使用公共 levelTag
- BugCollectIssues.vue - 使用公共辅助函数
- BugCollectEvents.vue - 使用公共 formatTime
- BugCollectSourcemaps.vue - 使用公共辅助函数
- BugCollectRankFreq.vue - 使用公共辅助函数
- BugCollectRankRisk.vue - 使用公共辅助函数
- BugCollectIssueDetail.vue - 使用公共辅助函数
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 19:38:49 +08:00
XuqmGroup
7b3ef8189e
feat: 添加 Sourcemap 管理页面
...
- 新增 BugCollectSourcemaps.vue 组件
- 添加路由 /bugcollect/sourcemaps
- 添加导航菜单项
- 展示已上传的 Sourcemap 列表
- 包含使用说明(Android/RN/手动上传)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 03:02:57 +08:00
XuqmGroup
563a2c5628
fix: bugcollect 时间显示时区问题 - 追加 Z 表示 UTC 再转本地时间
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 02:16:17 +08:00
XuqmGroup
1dc188b2be
feat: update 统计图表 + bugcollect ECharts 图表增强 + 修复字段映射
...
- update: 新增版本分布/设备分布/厂商分布/日趋势统计图表(ECharts)
- update: 添加 echarts 依赖
- bugcollect: 概览页新增 5 张 ECharts 图表(级别/状态/平台/版本分布 + 每日趋势)
- bugcollect: 高频/高危排行页添加横向柱状图
- bugcollect: Issue 详情页添加趋势双轴折线图
- bugcollect: 漏斗页替换为 ECharts 漏斗图
- bugcollect: 修复 type→level、isResolved→status 字段引用
- bugcollect: 新增 statistics 和 issueTrend API
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 01:23:32 +08:00
XuqmGroup
eb85e53d3f
fix(jenkins): 修复Jenkins构建中的字符编码和API参数问题
...
- 在Jenkinsfile中添加JAVA_TOOL_OPTIONS环境变量设置UTF-8编码
- 在Windows批处理命令前添加chcp 65001命令解决中文字符显示问题
- 修复BugCollectIssues组件中API参数从type改为level
- 修复BugCollectWebhooks组件中API字段映射eventTypes到events和cooldownSeconds到cooldownSec
- 更新webhook请求数据结构以匹配后端API要求
2026-06-18 11:14:34 +08:00
XuqmGroup
66414f7987
fix(bugcollect): 修复问题详情页字段映射,新增设备信息/状态管理
...
- 修复 level/release 字段未显示(原引用了废弃的 type/appVersion)
- 新增设备信息卡片(解析 device JSON 展示型号/系统/内存等)
- 新增状态管理操作栏(标记已解决/忽略/重新打开/删除)
- 修复事件列表使用 exception.value/stacktrace(新格式)
- 新增 reopenIssue API 方法
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 10:47:52 +08:00
XuqmGroup
a58d25fc24
fix(bugcollect-web): 修复前端 API 类型与后端对齐
...
- BugCollectIssue: type→level, isResolved→status, appVersion→release, 新增 affectedUsers/assignee
- BugCollectEventItem: 扁平 message/stack/metadata 字段替换为 exception 对象结构,与 IssueEventResponse 对齐
- BugCollectWebhook: eventTypes/cooldownSeconds→events/cooldownSec,新增 hasSecret,移除 updatedAt
- BugCollectWebhookRequest: 新增独立请求类型,含 secret 字段
- 新增 resolveIssue / ignoreIssue / assignIssue / deleteIssue / bulkUpdateIssues / issueEvents API
- frequencyRanking / riskRanking 支持 from/to/limit 参数
- issues() 新增 assignee / environment / q / status 过滤参数
- webhooks.create 改为直接传 BugCollectWebhookRequest(移除冗余 appKey params)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 09:27:43 +08:00
XuqmGroup
6d6fd3363e
fix(bugcollect): 更新 IssueDetail 视图对齐后端 IssueResponse 字段
...
移除不存在的字段(status/osVersion/deviceModel/affectedUsers/stackTrace/sourceContext/recentEvents),
改用 isResolved/events[].stack/events 替代,通过 TypeScript 类型检查。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 10:24:01 +08:00
XuqmGroup
3676241f6a
fix(bugcollect): 对齐前后端接口契约
...
- bugcollect.ts: issues/events 请求参数重映射(startDate/endDate→from/to,eventName→name,page 0-based+1→backend 1-based)
- BugCollectPageResult: content/totalElements → items/total(匹配后端 PageResult<T>)
- BugCollectIssue: 字段对齐 IssueResponse(id:number,isResolved,移除 affectedUsers/status)
- BugCollectEventItem: 字段对齐 IssueEventResponse(message/stack/createdAt,移除 eventName/timestamp/properties)
- BugCollectIssueRanking: 同步 isResolved,移除 affectedUsers
- 所有视图表格列更新为实际存在的字段
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 10:21:00 +08:00
XuqmGroup
7c97a7b90e
fix(bugcollect): 修复 overview loadData 的 TypeScript 类型错误 — 改用可选链替代 ?? {}
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 10:10:20 +08:00
XuqmGroup
c8224bf598
fix(bugcollect): 修复 undefined.length 崩溃 — 所有视图加 gateStatus 守卫和 null safety
...
- 所有视图 loadData/loadWebhooks:首行加 gateStatus !== 'enabled' 守卫,避免 appKey 为空或服务未开通时发请求
- 所有视图加 watch(gateStatus) 监听,服务开通后自动刷新数据
- 所有响应体数组赋值改为 ?? [],防止后端返回 null/undefined 时 el-table 访问 .length 崩溃
- BugCollectOverview:maxRate computed 改用 crashRateTrend ?? [] 防止 undefined.map 崩溃
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 10:07:36 +08:00
XuqmGroup
fb5e9753a3
feat(bugcollect): 将崩溃收集移为服务管理子菜单,并增加服务开通校验
...
- MainLayout: 移除独立的 bug-collect 顶级子菜单,改为嵌套在服务管理下的 services-bugcollect 子菜单(桌面 + 移动抽屉均已同步)
- openedMenus: /bugcollect/* 路径下同时展开 services 和 services-bugcollect
- FeatureService.serviceType: 补充 BUG_COLLECT 枚举值
- appApi.requestActivation: 支持 BUG_COLLECT 服务类型
- useBugCollectApp: 增加 gateStatus / serviceEnabled / checkingService;appKey 变化时自动调用 getServices 检查 BUG_COLLECT 是否已开通;提供 applyDialogVisible / submitActivation 申请流程
- 全部 7 个 BugCollect 视图: 替换原 !appKey 判断为 gateStatus 四态门控(no-app / loading / not-enabled / enabled),并附加申请开通对话框
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 05:27:53 +08:00
XuqmGroup
5e87a17765
feat(bug-collect): 所有视图新增应用选择器,API 调用补充 appKey 参数
2026-06-17 05:00:51 +08:00
XuqmGroup
4c6be2c489
feat: 版本状态看板 — 检查更新时展示全量服务对比表格
...
- Dockerfile.tenant/ops: 注入 SERVICE_VERSION ARG,设置 com.xuqm.version 标签
- Jenkinsfile: 移除手动 IMAGE_TAG;自动递增语义版本;构建后更新 versions.json;commit VERSION 文件
- SecurityCenterView: 点击「检查更新」后始终展示全量服务当前版本 vs 云端版本对比表格(不再仅 hasUpdate 时显示)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 19:33:39 +08:00
XuqmGroup
b75efcefd8
feat(tenant-platform): 应用详情页显示 BugCollect 服务 + 服务管理菜单新增崩溃收集
...
- AppDetailView: 新增崩溃收集服务卡片(开通/关闭/跳转概览&错误列表)
- serviceLabel/serviceHelp: 补充 BUG_COLLECT 对应文案
- MainLayout: 服务管理子菜单新增「崩溃收集」入口(/services/bugcollect)
- router: 注册 services/bugcollect 路由 → BugCollectOverview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 19:22:02 +08:00
XuqmGroup
95a8a3f876
refactor: log-monitor → bug-collect 重命名
...
- 目录/文件/API/路由/侧边栏全部重命名
- API路径 /log/v1/ → /bugcollect/v1/
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 18:33:21 +08:00
XuqmGroup
1abf05ecca
feat(log): 重构日志监控功能为Bug收集系统
...
- 将日志监控模块重命名为Bug收集模块
- 更新路由路径从 /log/* 到 /bugcollect/*
- 修改导航菜单项名称为"Bug收集"
- 更新API代理路径从 /api/log 到 /api/bugcollect
- 新增完整的Bug收集前端功能实现
- 添加错误列表、概览、事件流水、漏斗分析等功能页面
- 实现错误详情展示包括堆栈追踪和源码上下文
- 创建新的bugcollect API接口文件和类型定义
2026-06-16 18:30:01 +08:00
XuqmGroup
7a85d99001
fix: AlertTriangle → Warning 图标修正
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 14:19:20 +08:00
XuqmGroup
2d7b1943cd
feat: 日志监控模块 — 8 个页面
...
- 概览仪表盘(统计卡片 + 趋势图 + Top5)
- 错误列表(分页 + 筛选)
- 错误详情(符号化 stack + 源码上下文)
- 事件流水(分页 + 筛选)
- 漏斗分析(动态步骤 + 转化率)
- Webhook 配置(CRUD)
- 高频/高危排行
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 14:13:47 +08:00
XuqmGroup
72c36ffb82
docs(sdk): 添加 Android SDK 架构总览文档
...
- 新增架构总览文档,包含整体架构图和依赖关系
- 详细描述初始化流程(ContentProvider 自动和手动两种方式)
- 补充技术栈版本信息和发布说明
- 更新服务器端和Web端项目上下文文档
- 添加新模块 xuqm-log-service 的版本文件
- 在服务器端 POM 中注册 xuqm-log-service 模块
- 修复 Android SDK 字符串模板语法错误
- 修改服务器端 webhook 服务的 Redis 锁获取逻辑
2026-06-16 12:35:17 +08:00
XuqmGroup
7fe3cc767c
feat(login): 私有化部署时隐藏注册账号入口
...
通过 /api/private/deployment/status 判断部署模式,PRIVATE 模式下不渲染注册链接。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 23:09:22 +08:00
XuqmGroup
bbbd382651
feat(platform): 添加网站图标支持
...
- 在运营平台index.html中添加ico和svg格式图标链接
- 在租户平台index.html中统一图标引用为标准favicon路径
- 添加运营平台SVG格式网站图标文件
- 添加租户平台SVG格式网站图标文件
- 移除租户平台原有的vite默认图标引用
2026-06-12 19:53:39 +08:00
XuqmGroup
58f7fb4a44
fix(web): 修复双垂直滚动条并优化Docker构建缓存策略
...
- MainLayout: 为侧边栏添加 overflow:hidden,避免 el-aside 默认
overflow:auto 在菜单内容较多时产生第二条垂直滚动条
- Dockerfile.tenant: 将 COPY 源码移至 yarn install 之后并引入
GIT_COMMIT ARG,确保每次提交都重新构建源码层,防止 --cache-from
错误复用旧层导致更新未生效
- Jenkinsfile: 传入 GIT_COMMIT 构建参数;新增 NO_CACHE 参数,缓存
异常时可强制全量重建
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:11:43 +08:00
XuqmGroup
90c9705ff1
feat(system): 添加系统更新检查和选择性更新功能
...
- 新增 streamSelectiveUpdate 函数支持选择性服务更新
- 添加 UpdateCheckResult 接口定义版本更新检查结果
- 实现 checkForUpdates 函数获取版本更新信息
- 在安全中心视图添加版本信息显示和更新检查按钮
- 添加选择性更新对话框支持按服务选择更新
- 实现版本管理视图中的实时更新通知配置
- 添加从 IM 导入灰度成员功能
- 移除应用密钥管理相关的重复组件实现
2026-06-11 14:11:06 +08:00
XuqmGroup
8abcf59147
feat(app): 支持多平台包名配置和应用信息编辑功能
...
- 后端增加至少填写一个平台包名的验证逻辑
- 前端调整应用数据模型,将包名字段改为可选类型
- 添加应用详情页的编辑功能和表单验证
- 优化应用列表页包名显示逻辑,支持多平台包名展示
- 重构应用配置指引页面,按平台分类展示商店配置指南
- 在版本管理页面增加包名配置检查和相应提示
- 新增应用信息编辑弹窗组件和相关业务逻辑
2026-06-11 13:04:28 +08:00
XuqmGroup
0a8011d9be
refactor(version): 优化版本管理中的灰度发布配置
...
- 移除 GrayMemberGroup 和 GraySelectionSource 类型定义
- 添加 GrayTag 类型定义以支持标签模式
- 重命名 normalizeCallbackUrl 函数为 normalizeUrl
- 简化灰度发布配置逻辑,移除本地选择源相关代码
- 将灰度同步回调URL和发布回调URL统一为 graySyncUrl 和 publishCallbackUrl
- 更新灰度成员加载逻辑为标签加载逻辑
- 移除成员模式下的回调地址验证和选择源设置
- 简化灰度模式切换条件判断逻辑
2026-06-11 12:36:27 +08:00
XuqmGroup
f116b63369
feat(update): 重构灰度发布系统并新增标签管理功能
...
- 灰度模式简化为 PERCENT 和 MEMBERS 两种
- 新增成员标签系统,支持标签 CRUD 和按标签选择发版
- 成员同步保留已有标签,手动成员不受同步影响
- 支持标签 + 额外成员组合选择:groupNames + extraMemberIds
- 发布时回调集成方获取成员列表,支持 AppSecret 签名验证
- 从 IM 服务导入成员功能
- 修复 isInGrayRelease() 中的 String.contains() 误匹配 bug
- 移除 IM_PUSH_USERS、CUSTOMER_SYNC、CUSTOMER_CALLBACK 模式
- 更新前端界面,优化灰度成员选择体验
- 添加发布配置和操作日志等相关数据库表结构
2026-06-11 12:30:13 +08:00
XuqmGroup
cbc29cf255
feat(update): 添加 API Key 管理和 WebSocket 实时通知功能
...
- 新增 API Key 管理功能,支持外部工具认证调用平台 API
- 实现 WebSocket 实时通知,版本发布时推送轻量通知给客户端
- 添加 APK 文件哈希校验,支持已下载检测和直接安装
- 支持外部 APK 上传使用 API Key 认证
- 优化私有化部署自动注入 nginx WebSocket 代理配置
- 扩展 SDK 功能包括已下载检测、直接安装和实时通知监听
2026-06-11 12:25:16 +08:00
XuqmGroup
cd39c7fb30
feat(app): 添加重新生成应用配置文件功能
...
- 在AppController中新增regenerateConfigFile接口
- 在AppService中实现重新生成配置文件的业务逻辑
- 记录重新生成配置文件的操作日志
- 在前端API中添加重新生成功能调用方法
- 在应用详情页面添加重新生成按钮和确认对话框
- 实现重新生成配置文件的前端交互逻辑
2026-06-02 17:43:36 +08:00
XuqmGroup
348c04ba72
refactor(app): 将许可证文件功能替换为配置文件功能
...
- 替换 LicenseFileCrypto 为 ConfigFileCrypto 加密类
- 将 /license-file 相关接口重命名为 /config-file
- 修改数据库实体中的 licenseFileContent 字段为 configFileContent
- 更新前端 API 调用从 downloadLicenseFile 改为 downloadConfigFile
- 将安全中心的 License 文件解析功能改为 Config 文件解析
- 更新文件扩展名从 .xuqmlicense 改为 .xuqmconfig
- 修改后端服务方法 ensureLicenseFile 为 ensureConfigFile
- 调整加密解密逻辑以支持新的配置文件格式
2026-06-02 17:35:29 +08:00
XuqmGroup
62966dcf20
feat(ui): 添加服务应用切换记忆功能并优化菜单结构
...
- 在IM、授权、推送、版本管理视图中添加最近使用应用的记忆功能
- 新增serviceApp工具函数用于存储和获取最近使用的应用
- 将系统日志、数据库、操作日志菜单项归类到运维管理子菜单
- 修复实体类索引字段命名不一致问题
- 在安全配置中启用方法级别安全注解支持
2026-05-28 10:53:13 +08:00
XuqmGroup
db3158d2e4
refactor(logs): 更新操作日志视图中的推送服务注释
...
- 修改了推送服务相关的注释说明
- 移除了重复的用户信息编辑和状态变更操作日志条目
- 添加了关于与im-service重复的说明注释
2026-05-27 17:30:03 +08:00