77 Commits

Author SHA1 Message Date
644b20ebef 工单组件
Some checks are pending
Build and Release / Build (push) Waiting to run
2026-05-01 17:09:24 +03:00
7400137b3c feat: 节点/服务器批量编辑 Sheet、Server 表单协议合并修复、设备类型解析
Some checks failed
Build and Release / Build (push) Has been cancelled
- 新增 NodeBatchSheet 与 ServerBatchSheet,支持批量选中后一键编辑公共字段
- Server 表单:引入 mergeProtocol / buildSanitizedProtocols,过滤空字符串避免 Zod 枚举校验失败;renderGroupCard 改为具名导出供批量 Sheet 复用;优化嵌套错误提示递归取第一条
- 新增 parseDeviceType 工具函数,从 User-Agent 解析设备平台(iPhone/Android/Mac 等)
- 用户列表:登录标识旁展示设备平台 Badge
- 注册安全设置表单:引入 Textarea 组件并完善字段布局
- 类型定义补充及 i18n 本地化更新

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-01 05:17:01 -07:00
de87133061 feat: 用户订阅列表显示节点分组名,限速详情显示起止时间
- UserSubscribe 类型新增 node_group_id/node_group_name 字段
- UserSubscribeDetail 类型新增 throttle_start/throttle_end/node_group_id/node_group_name 字段
- 订阅列表表格新增「节点分组」列
- 限速卡片新增限速窗口起止时间显示

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-29 10:36:11 -07:00
dd30b8eb8b fix: notify-settings-form 补充 enable_trade_notify 字段修复类型错误
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-28 08:36:59 -07:00
e6c2370d02 feat: 限速状态可视化 - 订阅详情 Sheet 顶部展示实时限速状态
- typings.d.ts 新增 UserSubscribeDetail.effective_speed/is_throttled/throttle_rule 字段
- SubscriptionDetail Sheet 打开时拉取订阅详情,顶部展示 SpeedLimitCard
- 被降速时显示警告样式 + 实际速率 + 划掉原始速率 + 触发规则说明

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-28 08:32:05 -07:00
785c832e02 fix: 限速输入统一为 Mbps,去掉 mbToBits 转换
Some checks failed
Build and Release / Build (push) Has been cancelled
Issue Close Require / issue-close-require (push) Has been cancelled
Issue Check Inactive / issue-check-inactive (push) Has been cancelled
- 订阅表单 speed_limit 去掉 bitsToMb/mbToBits 转换,直接存 Mbps
- traffic_limit speed_limit 标签从 KB 改为 Mbps
- 节点组 speed_limit 标签从 KB/s 改为 Mbps
- Display trafficSpeed 类型直接显示 {value} Mbps

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-27 02:47:40 -07:00
5a493fce67 fix: 修复订阅跳转引号问题 + 设备组显示设备类型 + 统一用户名显示
Some checks failed
Build and Release / Build (push) Has been cancelled
- 去掉所有 Link search 中的 String() 包装(7处),修复 URL 引号问题
- View Owner 改用 useNavigate 强制导航,解决同页面跳转不生效
- 设备组详情成员列表添加 auth_type Badge 和 device_type Badge
- 设备组列表 owner 列统一为 [AUTH_TYPE Badge] + identifier 格式
- UserDetail 组件统一设备标识逻辑,去掉 shortenDeviceIdentifier

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-26 21:36:12 -07:00
5019f76a73 fix: 修复用户管理搜索栏被 ProTable params 覆盖问题
ProTable 的渲染逻辑是:有 params 就渲染内置 ColumnFilter,
否则才渲染 header.title。导致自定义 UserSearchBar 不显示。

- 删除 params 配置
- 新增 buildSearchParams() 将 searchRef 的 type/value 转换为 API 参数
- request 直接调用 buildSearchParams() 而非依赖 filter
2026-03-24 01:34:14 -07:00
8d0ddbb5ef fix: 修复合并后 TypeScript 编译错误
- 补充 RefObject import(local-captcha、slider-captcha、node-group-form)
- 删除 slider-captcha 中无用的 _scaleX/_scaleY 变量
- user_subscribe_id 类型转换 number → string
- 移除 services 文件中失效的 @ts-expect-error 指令
2026-03-24 01:23:36 -07:00
ef54d2479d chore: 恢复本地定制修改(stash pop) 2026-03-23 22:08:58 -07:00
d6616c5859 merge: 同步 upstream/main 新功能到定制版本
- feat: Add slider verification code (bd67997)
- fix bug: Inventory cannot be zero (1f7a6ee)
- fix: resolve merge conflicts and lint errors
2026-03-23 21:50:10 -07:00
3806264343 merge: 同步 upstream/main 新功能到定制版本
Some checks failed
Build and Release / Build (push) Has been cancelled
Issue Close Require / issue-close-require (push) Has been cancelled
- 分流规则 + 用户流量统计
- 验证码功能
- 节点分组管理 UI
- 重构用户分组组件
2026-03-19 03:16:59 -07:00
830430645c merge: 同步 origin/main (v1.4.0) 到定制版本
Some checks failed
Build and Release / Build (push) Has been cancelled
2026-03-19 02:56:42 -07:00
6b92979c7c feat: 自定义版本功能更新
Some checks failed
Build and Release / Build (push) Has been cancelled
- 新增家庭共享订阅管理
- 新增用户邀请统计
- 新增签名和订阅模式设置表单
- 更新 API 服务层和国际化文件
- UI 组件优化(enhanced-input、pro-table)
2026-03-19 01:56:13 -07:00
EUForest
f8fbf5529f feat: add traffic limit rules and user traffic statistics 2026-03-14 17:59:27 +08:00
EUForest
eac7b27f60 feat: Authentication verification code 2026-03-10 19:03:39 +08:00
31803a1d24 feat: 后台订单列表新增手动激活按钮
- API 层新增 activateOrder 方法 (POST /v1/admin/order/activate)
- pending(1) 和 cancelled(3) 状态的订单显示 Activate 按钮
- 点击后调用后端手动激活接口,强制发放订阅权益
2026-03-09 04:08:23 -07:00
EUForest
4b4edd48e3 refactor(group): remove deprecated user group components
Remove unused user group management components as user groups have been deprecated in favor of node groups only.
2026-03-08 23:42:39 +08:00
EUForest
ae31019477 feat(group): add node group management UI
Add node group management interface with automatic user assignment and traffic-based grouping.

Features:
- Node group CRUD with traffic range configuration
- Three grouping modes: average, subscription-based, and traffic-based
- Group recalculation with preview and history tracking
- Subscribe-to-group mapping management
- User subscription group locking
- Group calculation history with detailed reports
- Multi-language support (en-US, zh-CN)
- Enhanced node and subscription forms with group selection
2026-03-08 23:39:30 +08:00
web@ppanel
116f6e5360 fix(admin): prioritize follow-up tickets (#18)
* 🐛 fix(admin): prioritize follow-up tickets by updated time

*  feat(dashboard): show node/user traffic ranks side-by-side
2026-03-04 08:16:31 -08:00
ppanel-web
08702fb643 fix(admin): stabilize node sorting with duplicate sort values 2026-03-04 08:16:29 -08:00
ppanel-web
bbea15dea4 Fix unstable node sorting order 2026-03-04 08:16:28 -08:00
ppanel-web
98da7b1476 🐛 fix node sort persistence on drag reorder 2026-03-04 08:16:26 -08:00
EUForest
b45ec4b56e Merge remote-tracking branch 'upstream/main' 2026-02-13 23:11:47 +08:00
ppanel-web
8831c9be9c fix(admin): persist reset-password Turnstile verify setting (Fixes #10) 2026-02-10 00:57:42 +00:00
EUForest
3ee2c711ef feat: Device short code lookup
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 11:58:17 +08:00
web-ppanel
ed3f6cb737 🧹 fix(i18n): remove duplicate locale keys 2026-01-27 18:27:20 +00:00
web-ppanel
052a0a4209 🐛 fix(build): ensure version.lock directory exists + fix merge typo 2026-01-27 18:21:39 +00:00
web-ppanel
830c18c9e4 🔀 merge: main into develop 2026-01-27 18:16:34 +00:00
web-ppanel
6dd743bbf4 🧹 fix(ci): avoid void|Promise union for refetch 2026-01-27 18:11:32 +00:00
web-ppanel
7e1d5746d4 🐛 fix(admin): refresh user list after balance update 2026-01-27 18:08:34 +00:00
web-ppanel
9e0dd4c874 🌐 i18n: add admin subscription UI strings 2026-01-27 18:02:18 +00:00
web-ppanel
7223eb41c6 admin: subscription controls + show original price 2026-01-27 17:57:46 +00:00
EUForest
585874777f feat: improve redemption feature i18n and error code handling
- Complete internationalization for redemption records dialog
  - Add i18n for table headers and unit time translations
  - Optimize redemption form validation error messages with i18n
  - Add 50003 error code handling for coupon plan incompatibility
  - Fix TypeScript errors in redemption-related components
  - Fix TypeScript errors in user announcement page
2026-01-07 15:38:42 +08:00
EUForest
22b24041a7 🔨 update: IP restrictions during development 2026-01-06 22:56:24 +08:00
EUForest
b85013e276 feat: Redemption code 2026-01-06 22:52:43 +08:00
EUForest
2c4518cbab feat: Redemption Code 2026-01-06 21:05:23 +08:00
EUForest
45b9b523b1 feat: Device Bind Limit 2026-01-06 21:03:31 +08:00
EUForest
e3c0dc2569 feat: Device Bind Limit 2026-01-06 21:02:38 +08:00
web@ppanel
cbd6e29ded 🐛 fix: Update server and web version update descriptions to remove version prefix for clarity 2025-12-30 08:08:48 +00:00
web@ppanel
39ebd09f09 🐛 fix: Update getUserSubscribe function to accept short and token parameters for improved URL generation 2025-12-30 06:10:44 +00:00
web@ppanel
0253b62b63 🐛 fix: Set modal prop to false for DropdownMenu in multiple components for improved user experience 2025-12-29 09:54:34 +00:00
web@ppanel
ba65588fdf 🐛 fix: Update HTMLEditor onChange event and set DropdownMenu modal to false for better user experience 2025-12-29 09:47:09 +00:00
web@ppanel
51a98afcae 🐛 fix: Update SendCode parameters to use form.watch for email and telephone fields 2025-12-29 09:44:18 +00:00
web@ppanel
2156a7f1df 🐛 fix: Update user_subscribe_id reference in RowMoreActions to use row.id for correct token reset and status toggle 2025-12-29 09:09:14 +00:00
web@ppanel
2f50c6df33 🐛 fix: Update default inventory value in SubscribeForm to -1 for better handling of inventory state 2025-12-29 09:04:11 +00:00
web@ppanel
0690debf6c 🐛 fix: Refactor update dialog logic in SystemVersionCard for better clarity and handling of update states 2025-12-29 09:04:04 +00:00
web@ppanel
cc52e3614d 🐛 fix: Update SubscribeTable to display inventory using Display component for better clarity 2025-12-29 08:17:45 +00:00
web@ppanel
83d821a2dc 🐛 fix:: Update localization files and improve display logic for inventory handling 2025-12-29 08:08:31 +00:00
web@ppanel
d36a2c902b feat: Update Vite configuration to load environment variables for improved API proxy setup 2025-12-29 07:16:13 +00:00