admin
c31c7a88bd
fix: 云端变量记录页面筛选改用DateTimePicker组件,对齐财务页面样式
...
- 日期选择器从原生input[type=date]改为DateTimePicker组件(带日历和时间选择)
- 添加快捷日期按钮:今天/近7天/本月
- 日期范围使用dateRange对象(from/to)替代独立的startDate/endDate
- 搜索按钮移除,搜索框回车触发
2026-05-08 10:10:18 +08:00
admin
29fb448d04
fix: 优化云端变量记录页面样式,对齐其他表格页面
...
- 移除ID列的font-mono text-xs样式,改用与其他页面一致的truncate样式
- 移除toolbar顶部多余的批量删除按钮,只保留BulkActions组件内的
- 搜索框和日期选择器尺寸对齐其他页面(h-8)
- 日期格式化对齐其他页面(zh-CN格式)
- 动态字段值显示改用truncate+title,替代pre标签
- 移除raw_data调试字段和诊断卡片
2026-05-08 09:31:47 +08:00
admin
375fd46224
fix: 修复云端变量记录data为null的问题
...
- 后端: handleAddRecord增加recordData nil检查,避免存入null
- 后端: 记录读取改用interface{}替代map[string]interface{}解析JSON
- 后端: JSON解析失败时回退返回原始字符串
- 后端: API返回raw_data字段暴露数据库原始数据用于诊断
- 后端: app/cloud.go同步修复同样的JSON解析问题
- 前端: parseRecordData增加raw_data回退解析
- 前端: 添加数据诊断卡片显示原始数据结构
2026-05-08 02:31:15 +08:00
admin
e1578f299e
debug: add detailed logs for dynamicKeys computation
2026-05-08 01:11:37 +08:00
admin
51447e9221
debug: add console logs to check record data structure
2026-05-08 00:57:19 +08:00
admin
ee7f58a4dc
fix: add missing viewRecords i18n key for cloudVariables in zh.json
2026-05-08 00:48:03 +08:00
admin
2dafef9f33
fix: parse JSON string data in cloud variable records
...
- Add parseRecordData function to handle data that may be JSON string
- Update dynamicKeys computation to use parsed data
- Update column cell rendering to use parsed data
- Fixes issue where record fields were not displayed as separate columns
2026-05-08 00:43:02 +08:00
admin
de2c455e79
refactor: improve cloud variable records page with standard DataTable layout
...
- Add statistics cards (total records, variable key, max records, scope)
- Use standard DataTable component with toolbar template
- Add BulkActions component for batch operations
- Add DataTableViewOptions for column visibility control
- Dynamic columns are generated from record data fields
- Add missing i18n keys (totalRecords, maxRecordsLabel, unlimited)
- Match styling with other admin data table pages
2026-05-07 23:40:14 +08:00
admin
74d030f846
fix: replace vue3-flag-icons with custom CSS-only flag icons
...
- Remove vue3-flag-icons dependency (was causing slow loading)
- Create custom flag-icons.css with only cn and us flags (inline SVG)
- Update language-change.vue to use CSS-based flag icons
- Delete vue3-flag-icons type declaration file
- Flag icons now load instantly without any JavaScript overhead
2026-05-07 23:21:53 +08:00
admin
c816f4d85c
feat: add comprehensive i18n support across all pages
...
- Add i18n support to admin sidebar, breadcrumbs, and nav-footer
- Add i18n support to admin pages: system-settings, users, versions, risk-control, sessions, cloud-variables, cloud-constants
- Add i18n support to auth pages: login, register
- Add i18n support to install and profile pages
- Add i18n support to agent pages: dashboard, finance, users, apps, cards
- Replace all hard-coded Chinese text with i18n translation keys
- Add comprehensive translation keys to zh.json and en.json
- Fix date formatting to use locale-agnostic toLocaleDateString()
- Pass t function as parameter for i18n in non-component files
2026-05-07 23:06:58 +08:00
admin
f1f2a9dc9d
feat: 云端变量操作菜单添加查看记录入口
...
- stream 类型变量下拉菜单增加「查看记录」选项
- 添加 List 图标导入
- 添加中英文国际化文本
2026-05-07 19:42:37 +08:00
admin
d01e20dfd5
feat: 重构云端变量记录页面,支持动态列和服务端分页
...
- 使用项目 DataTable 组件替换原生 table
- 根据记录数据动态生成表格列
- 支持服务端分页、搜索、日期筛选
- 添加单条/批量删除确认对话框
- 添加路由配置和国际化文本
- 更新 pnpm-lock.yaml 修复 Docker 构建问题
2026-05-07 19:10:25 +08:00
admin
fa281040d0
perf: 优化构建体积和依赖
...
- 移除未使用的依赖包 (@unovis/ts, @unovis/vue, markdown-it)
- 优化 vite manualChunks 配置,将 echarts/chart.js 分离为独立 chunk
- 主入口文件从 1.1MB 减少到 211KB (-81%)
- 依赖包数量从 837 减少到 662
2026-05-07 18:48:14 +08:00
admin
f700dc0a58
perf: 优化CSS体积,从5.18MB减少到179KB
...
- 用自定义flag-icons.css替换vue3-flag-icons全量导入,只包含cn和us国旗
- 删除themes.css中重复定义的.theme-yellow样式
2026-05-07 17:02:02 +08:00
admin
48889a1c90
perf: 优化上传文件缓存策略
...
- 上传新文件时删除同类型旧文件,避免文件堆积
- 文件名带时间戳,每次上传生成新 URL
- 缓存时间设为 1 年 + immutable,文件更新后 URL 变化自动重新请求
2026-05-07 14:12:45 +08:00
admin
4ffb7c0071
perf: 为 /uploads 静态资源添加缓存控制
...
- 设置 Cache-Control: public, max-age=3600 (缓存 1 小时)
- 减少 logo、favicon 等上传文件的重复请求
2026-05-07 14:04:20 +08:00
admin
f290b81700
perf: 优化 Dashboard 接口性能,并行执行数据库查询
...
- 使用 goroutine 并行执行 8 个数据库查询
- 将串行查询改为并行,显著减少响应时间
- 使用 sync.WaitGroup 和 sync.Mutex 保证线程安全
2026-05-07 13:58:28 +08:00
admin
8161a3f75f
perf: 优化路由守卫安装检查,使用 localStorage 缓存
...
- 将安装状态缓存到 localStorage,有效期 24 小时
- 避免每次路由切换都发起 HTTP 请求
- 显著提升页面切换速度
2026-05-07 13:27:13 +08:00
admin
8811511ff8
refactor: 删除未实现的 call-function API
...
- 该功能与 dynamic-code/:key/execute 重复
- 保持代码整洁,移除无用代码
2026-05-07 13:22:43 +08:00
admin
c1a9532456
fix: 修复风控规则表格不显示数据的问题
...
- 修改 generateVueTable 调用方式,使用 getter 函数传递 data 和 loading
- 确保表格数据响应式更新
2026-05-07 13:17:58 +08:00
admin
6bdffcd90f
fix: 云端函数区分当前用户和目标用户
...
- user 始终为当前登录用户(从 token 获取)
- 新增 targetUser 变量,当请求参数指定 user_id 时注入
- 同时注入 targetSubscription、targetUserVariables、targetDevices
2026-05-07 13:15:23 +08:00
admin
551eff2f60
fix: 云端函数默认注入当前登录用户信息
...
- 当请求参数未指定 user_id 时,使用 token 中的用户 ID
- 确保 user、subscription、devices 等变量始终有值
2026-05-07 13:13:18 +08:00
admin
e019f6a55c
fix: 移除云端函数HTTP客户端硬编码代理
...
- 将硬编码的代理地址改为从环境变量读取
- 使用 http.ProxyFromEnvironment 让代理配置更灵活
- 服务器环境不设置代理环境变量即可直连
2026-05-07 12:39:33 +08:00
admin
ceabff333e
fix: 修复在线实例页面表格不显示数据的问题
...
- 修改 generateVueTable 调用方式,使用 getter 函数传递 data 和 loading
- 确保表格数据响应式更新
2026-05-07 11:56:43 +08:00
admin
d84111a103
fix: 修复generateVueTable函数响应式问题,统一columns参数传递方式
2026-05-07 10:44:11 +08:00
admin
8c48c002d3
fix: 修复设备列表API的Count查询导致Find失败的问题
2026-05-07 09:39:53 +08:00
admin
64569e305e
fix: 修复授权详情API返回格式,重构授权管理页面表格和批量操作
2026-05-07 02:31:15 +08:00
admin
9e8f5bc826
fix: 更新路由移除已删除的 card-types.vue 引用
2026-05-07 01:58:26 +08:00
admin
13482cde4a
refactor: 将查看授权和编辑授权改为独立页面
2026-05-07 01:52:51 +08:00
admin
7a3353ee96
feat: 添加查看授权和编辑授权功能, 代理充值使用 NumberField 组件
2026-05-07 01:34:05 +08:00
admin
a2eccb9818
feat: 添加代理充值功能到代理管理页面, 移除授权管理页面的无效操作
2026-05-07 01:13:09 +08:00
admin
d9f4574f33
fix: 修复计费类型显示、授权价格组件和操作图标问题
2026-05-07 00:48:51 +08:00
admin
b2295b3c38
fix: 修复 total_consumption undefined 和 SelectItem 空字符串错误
2026-05-07 00:38:02 +08:00
admin
e7e7631fa5
feat: 授权管理改为设置卡类价格,代理管理增加消费列
2026-05-07 00:28:52 +08:00
admin
7646bd2c88
feat: 新建授权改为独立页面,修复代理列表获取和卡片颜色
2026-05-07 00:08:04 +08:00
admin
3cd22fdce1
feat: 重构授权管理为层级模型 - 管理员直接对代理授权应用卡密权限
2026-05-06 22:16:31 +08:00
admin
53e60c7c07
feat: 在侧边栏添加代理授权导航入口
2026-05-06 21:40:44 +08:00
admin
9f071464bb
revert: 恢复 ECharts 世界地图展示用户分布
2026-05-06 20:21:32 +08:00
admin
086c5c6573
perf: 性能优化与错误修复
...
- 修复 N+1 查询: users/devices/agents 批量 GROUP BY 替代循环查询
- 添加分页: cards/finance/agents/devices API
- Redis 初始化根据安装配置 redis.enabled 决定是否连接
- 修复 DefaultVal 解析错误: 使用 sql.NullString 处理 NULL 值
- Dashboard 优化: 替换 ECharts 世界地图为 Chart.js 环形饼图
- 适配前端 cards 页面新 API 响应格式
- 添加数据库索引优化查询性能
- 实现可配置的数据清理定时任务
2026-05-06 19:19:02 +08:00
admin
98986b0eb7
fix: 修复数据库配置和事务一致性问题
...
数据库配置:
- SQLite 开启 WAL 模式,读写可并发
- 设置 busy_timeout=5000ms 避免锁超时
- 设置 synchronous=NORMAL 平衡性能和安全
- SQLite MaxOpenConns 设为 1 避免并发写入冲突
事务修复:
- auth.go: 注册流程(用户+设备+会话)加入事务
- auth.go: 密码重置(修改密码+标记验证码)加入事务
- cards.go: 卡密使用加入事务,补充 UsedAt 字段
- cards.go: 代理商批量生成(扣款+生成卡密)加入事务
- extension.go: 充值(修改余额+记录)加入事务
- extension.go: 扣费(修改余额+记录)加入事务
- storage_config.go: 设置默认存储加入事务
2026-05-06 08:12:04 +08:00
admin
4841920727
perf: 修复 cards.go 和 users.go 中的 N+1 查询问题
...
cards.go:
- 合并循环中的 Count 查询为单次 GROUP BY 查询
users.go:
- 合并 ownApps 循环查询为单次 IN 查询
- 合并 agentApps 循环查询为批量查询
- 减少数据库查询次数从 O(n) 到 O(1)
2026-05-06 08:02:03 +08:00
admin
488b1581e9
perf: 优化dashboard API,41次查询12次
...
- 合并30次循环查询为1次(onlineTrend)
- 使用 GROUP BY DATE() 一次获取所有日期数据
- 在内存中填充缺失日期,避免 N+1 问题
- API 响应时间预计从 1-2s 降至 100-200ms
2026-05-06 07:55:36 +08:00
admin
3cf702d9b8
fix: 修复ECharts动态import方式
...
- import('echarts') 返回模块命名空间对象,不是 { default }
- 移除错误的解构语法
2026-05-06 07:50:47 +08:00
admin
92813fde49
fix: 修复Alpine上MIME类型检测失败
...
- fallbackMimeTypes 硬编码映射优先,不依赖系统 mime.types
- Docker 镜像安装 mailcap 包提供 /etc/mime.types
- 移除不可靠的 mime.AddExtensionType 方案
2026-05-05 19:58:56 +08:00
admin
041eeaf34b
ci: 优化构建速度
...
- 移除 arm64 平台(QEMU 模拟导致构建慢 10-20 倍)
- 移除 no-cache(启用 Docker 层缓存,依赖不变时复用)
- 预计构建时间从 10-30 分钟降至 2-3 分钟
2026-05-05 19:20:50 +08:00
admin
6c99256e71
fix: 修复gzip中间件ERR_INCOMPLETE_CHUNKED_ENCODING
...
- 首次Write时删除Content-Length头(压缩后大小不同)
- 非压缩类型直接透传,不经过gzip writer
- 移除有问题的noopWriter方案
2026-05-05 14:58:47 +08:00
admin
d584b578f1
perf: 优化前端加载速度
...
- 改用 mime 标准库替代硬编码 MIME 类型(更优雅)
- 全局 gzip 中间件替代手动压缩(覆盖所有响应)
- ECharts 改为动态 import,首屏不再加载 1.1MB
- manualChunks 拆分 vue-vendor/ui-vendor 减小主包
- 首屏 gzip 体积从 544KB 降至 236KB(减少 57%)
2026-05-05 13:18:40 +08:00
admin
bc30afe106
perf: 添加gzip压缩提升前端资源加载速度
...
- 对JS/CSS/HTML/JSON/SVG等文本资源启用gzip压缩
- 传输体积可减少70-80%,大幅提升页面加载速度
- 图片和字体等已压缩格式不重复压缩
2026-05-05 12:15:46 +08:00
admin
bb802e765c
fix: 用硬编码MIME映射替代mime.TypeByExtension
...
- Alpine镜像缺少/etc/mime.types导致TypeByExtension不可靠
- 使用getContentType函数硬编码常见Web文件MIME类型
- 不再依赖系统环境,确保所有平台行为一致
2026-05-05 04:12:12 +08:00
admin
a1e3306fc7
fix: 注册MIME类型解决Alpine镜像js文件返回octet-stream的问题
...
- mime.TypeByExtension在Alpine精简环境中缺少.js等MIME映射
- 使用mime.AddExtensionType在启动时注册常见Web文件类型
2026-05-05 03:28:23 +08:00