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
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"all": "全部",
|
||||
"cancel": "取消",
|
||||
"confirm": "确认",
|
||||
"confirmDelete": "确定要删除吗?",
|
||||
@@ -7,13 +8,16 @@
|
||||
"create": "创建",
|
||||
"createSubscribe": "创建订阅",
|
||||
"createSuccess": "创建成功",
|
||||
"currentUserGroup": "当前用户分组",
|
||||
"defaultNodeGroup": "默认节点组",
|
||||
"delete": "删除",
|
||||
"nodeGroups": "节点组",
|
||||
"nodes": "个节点",
|
||||
"deleteSuccess": "删除成功",
|
||||
"deleteWarning": "删除后数据无法恢复,请谨慎操作。",
|
||||
"deviceLimit": "IP限制",
|
||||
"edit": "编辑",
|
||||
"editSubscribe": "编辑订阅",
|
||||
"sortSuccess": "排序成功",
|
||||
"form": {
|
||||
"annualReset": "年度重置",
|
||||
"basic": "基本",
|
||||
@@ -30,7 +34,6 @@
|
||||
"discountPercent": "折扣百分比",
|
||||
"Hour": "小时",
|
||||
"inventory": "订阅库存",
|
||||
"unlimitedInventory": "无限制(输入 -1)",
|
||||
"language": "语言",
|
||||
"languageDescription": "留空为默认无语言限制",
|
||||
"languagePlaceholder": "订阅的语言标识符,例如 en-US、zh-CN",
|
||||
@@ -40,7 +43,19 @@
|
||||
"name": "名称",
|
||||
"node": "节点",
|
||||
"nodeGroup": "节点组",
|
||||
"nodes": "节点",
|
||||
"nodeGroups": "节点组",
|
||||
"nodeGroupsDescription": "将此商品分配到多个节点分组。用户将可以从这些分组获取节点。",
|
||||
"nodeGroupsFirstSelectionDescription": "为此商品选择节点组。第一个选中的组将被设置为默认节点组。",
|
||||
"defaultNodeGroup": "默认节点组",
|
||||
"defaultNodeGroupDescription": "为此商品选择默认节点组。将自动包含在备用节点组中。",
|
||||
"selectDefaultNodeGroup": "选择默认节点组...",
|
||||
"noDefaultNodeGroup": "无默认节点组",
|
||||
"backupNodeGroups": "备用节点组",
|
||||
"backupNodeGroupsDescription": "选择其他备用节点组。默认节点组会自动包含。",
|
||||
"nodes": "关联节点",
|
||||
"nodesDescription": "选择此订阅的节点",
|
||||
"nodesInGroup": "分组中的节点:",
|
||||
"nodesWithoutGroupsDescription": "未分配到分组的节点将在此处显示(属于分组的节点在上方的节点组部分管理)",
|
||||
"noLimit": "无限制",
|
||||
"NoLimit": "无限制",
|
||||
"noReset": "不重置",
|
||||
@@ -61,16 +76,42 @@
|
||||
"traffic": "流量",
|
||||
"unitPrice": "单价",
|
||||
"unitTime": "时间单位",
|
||||
"unlimitedInventory": "无限制(输入 -1)",
|
||||
"Year": "年"
|
||||
},
|
||||
"groupMapping": "分组映射",
|
||||
"groupMappingTitle": "分组映射",
|
||||
"groupMappingUpdateFailed": "更新分组映射失败",
|
||||
"groupMappingUpdateSuccess": "分组映射更新成功",
|
||||
"migrateUsers": "迁移用户",
|
||||
"migrateUsersTitle": "迁移用户",
|
||||
"migrateUsersDescription": "将当前用户组的所有用户迁移到另一个用户组",
|
||||
"migrateUsersWarning": "这将把 {count} 个用户从 \"{group}\" 迁移到目标用户组。此操作无法撤销。",
|
||||
"migrateUsersSuccess": "成功将 {count} 个用户迁移到目标用户组",
|
||||
"migrateUsersFailed": "迁移用户失败",
|
||||
"targetUserGroup": "目标用户组",
|
||||
"selectTargetGroup": "选择目标用户组...",
|
||||
"selectTargetGroupFirst": "请先选择目标用户组",
|
||||
"cannotMigrateToSameGroup": "无法迁移到相同的用户组",
|
||||
"noSourceGroup": "没有可用的源用户组",
|
||||
"selectedGroup": "已选择的分组",
|
||||
"userCount": "用户数量",
|
||||
"migrating": "迁移中...",
|
||||
"inventory": "订阅库存",
|
||||
"language": "语言",
|
||||
"loading": "加载中...",
|
||||
"name": "名称",
|
||||
"noMapping": "未设置映射",
|
||||
"noNodes": "该分组下没有节点",
|
||||
"quota": "购买限制/次",
|
||||
"replacement": "重置价格/次",
|
||||
"save": "保存",
|
||||
"selectGroupPlaceholder": "选择分组...",
|
||||
"selectUserGroup": "选择用户分组",
|
||||
"sell": "销售",
|
||||
"show": "显示",
|
||||
"sold": "订阅数量",
|
||||
"sortSuccess": "排序成功",
|
||||
"traffic": "流量",
|
||||
"unitPrice": "单价",
|
||||
"updateSuccess": "更新成功"
|
||||
|
||||
Reference in New Issue
Block a user