⏰ 您的订阅{{recharge.expiry.expiry_at?'已到期':'尚未激活'}} — 可正常配置数据,但启动任务/采集/发送需要先充值
立即购买
🔍 正在查看下级【{{ impersonatingUser }}】的后台 — 所有操作将以该用户身份执行
关闭窗口
{{ currentUser?.username || '未登录' }}
使用教程
个人中心
主题
暗黑模式
侧边栏颜色
当前:{{sidebarThemes.find(t=>t.key===sidebarTheme)?.label}}
📊 任务管理
📋
总任务数
{{stats.total_tasks||0}}
📤
全局今日发送
{{stats.current_sent||0}}
❌
全局今日失败
{{stats.total_failed||0}}
📁 分组
全部
未分组
{{grp.name}} ({{grp.task_count}})
✎
✕
+ 新建分组
🔍
搜索
共 {{taskTotalCount}} 个任务
{{ row.name }}
{{taskGroups.find(g=>g.id===row.task_group_id)?.name||'未分组'}}
未分组
▾
快速分组
📋 未分组
📁 {{g.name}}
暂无分组
⚠ 自动暂停
⏳ 限流冷却 {{row.flood_wait_seconds}}s
{{getStatusText(row.status)}}
{{row.total_targets||0}}
{{row.total_messages||0}}
{{row.delay_min}}{{row.delay_min}}-{{row.delay_max}}
正常
冻结
异常
未登录
无账号
—
{{row.loops}}
✓{{row.today_total_sent||0}}✗{{row.today_total_failed||0}}
✓{{row.total_sent||0}}✗{{row.total_failed||0}}⏭{{row.total_skipped||0}}第{{row.current_round||1}}/{{row.loops||1}}轮·目标{{row.total_targets||0}}
—
⚙ 配置
▶ 启动
⏸ 停止
删除
📭
未找到匹配的任务,请调整搜索条件
清除筛选
暂无任务,点击"创建任务"开始吧!
📊 数据总览
{{dashboardLastUpdate}}
🔄 刷新
今日发送
{{fmtNum(dashboardStats.summary.tasks.today_sent)}}
失败 {{fmtNum(dashboardStats.summary.tasks.today_failed)}} 条
历史累计发送
{{fmtNum(dashboardStats.summary.tasks.history_sent)}}
累计失败 {{fmtNum(dashboardStats.summary.tasks.history_failed)}}
今日成功率
{{dashboardStats.summary.tasks.success_rate!==null ? dashboardStats.summary.tasks.success_rate+'%' : '—'}}
发送中 {{dashboardStats.summary.tasks.running}} 个任务
账号规模
{{dashboardStats.summary.accounts.total}}
正常 {{dashboardStats.summary.accounts.active}}
冻结 {{dashboardStats.summary.accounts.banned}}
异常 {{dashboardStats.summary.accounts.error}}
群组资源
{{fmtNum(dashboardStats.summary.groups.total)}}
{{dashboardStats.summary.groups.categories}} 个分类
下级用户数据
共 {{dashboardStats.sub_users.length}} 个用户
{{row.username}}
禁用
{{row.accounts_active}} / {{row.accounts_total}}
{{fmtNum(row.today_sent)||'—'}}
{{fmtNum(row.history_sent)||'—'}}
{{row.success_rate}}%
—
{{row.running_tasks}}
0
{{fmtNum(row.groups)}}
进入
统计
合计
{{dashboardStats.sub_users.reduce((s,r)=>s+r.accounts_active,0)}} / {{dashboardStats.sub_users.reduce((s,r)=>s+r.accounts_total,0)}}
{{fmtNum(dashboardStats.sub_users.reduce((s,r)=>s+r.today_sent,0))}}
{{fmtNum(dashboardStats.sub_users.reduce((s,r)=>s+r.history_sent,0))}}
{{dashboardSummaryRate}}
{{dashboardStats.sub_users.reduce((s,r)=>s+r.running_tasks,0)||''}}
{{fmtNum(dashboardStats.sub_users.reduce((s,r)=>s+r.groups,0))}}
账号健康分布
{{dashboardStats.summary.accounts.active}}
正常
{{dashboardStats.summary.accounts.banned}}
冻结
{{dashboardStats.summary.accounts.error}}
异常
{{dashboardStats.summary.accounts.inactive}}
未登录
💬 客服管理
a.phone===selectedCsPhone)?.is_connected?csDoCsDisconnect():csDoCsConnect()" :loading="csConnecting">
{{csAccounts.find(a=>a.phone===selectedCsPhone)?.is_connected?'断开连接':'建立连接'}}
🔄 刷新对话
加载中...
暂无账号
{{acc.nickname || acc.phone}}
{{acc.phone}}
{{acc.status==='active'?'正常':acc.status==='banned'?'冻结':acc.status==='error'?'异常':'未登录'}}
{{acc.group_name}}
{{t.task_name}}
{{acc.note}}
对话列表
{{csDialogs.length}}个
请先选择左侧账号
账号未连接,请点击右上角「建立连接」
加载中...
暂无可用对话
{{dialog.name}}
{{ dialog.dialog_type==='private' ? '私信' : (dialog.dialog_type==='group' ? '群组' : '频道') }}
{{dialog.latest_message||''}}
请选择左侧对话
加载中...
{{msg.text||'[媒体消息]'}}
{{opt.text}}
{{msg.date?new Date(msg.date).toLocaleString('zh-CN',{month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit'}):''}}
发送
请先连接账号
暂无群组
{{g.title||g.link}}
🔒 需要验证
✅ 直接进入
{{!g.link?'缺少链接':(isCsGroupJoined(g)?'已加入':'📥 加群')}}
请先连接账号
加载中...
暂无文件夹链接
请到「群组管理」页面添加
📂 {{fl.title}}
✅ 成功加入
新加入 {{folderJoinResults[fl.id].joined}} 个 · 已在群内 {{folderJoinResults[fl.id].already_in}} 个
❌ {{folderJoinErrors[fl.id]}}
🤖 自动过验证 {{folderVerifyProgress[fl.id].done}}/{{folderVerifyProgress[fl.id].total}}
✓ 完成
进行中
当前: {{folderVerifyProgress[fl.id].current}}
✓
○
{{r.chat}}
{{r.method==='poll'?'投票':'按钮'}}: {{r.answer}}
未过
验证中 {{folderVerifyProgress[fl.id].done}}/{{folderVerifyProgress[fl.id].total}}
加入所有群组
{ if(v==='folder') loadFolderLinks(); }">
群组分类
全部 ({{managedGroupTotalCount}})
未分组 ({{managedGroupUncategorizedCount}})
{{cat.name}} ({{cat.group_count}})
✕
新建分类
移动分组
同步下级
{{row.link}}
{{groupCategories.find(c=>c.id===row.category_id)?.name||''}}
未分组
▾
快速分组
未分组
{{cat.name}}
暂无分组,可在上方"新建分类"
{{row.join_type==='MANUAL_VERIFY'?'人工验证':'直接进入'}}
编辑
删除
{{row.link}}
删除
取消
保存
已选 {{managedGroupSelection.length}} 个群组
取消
确认移动
自动判断
直接进入
人工验证
文件夹链接
{{ isEditManagedGroup ? '编辑时可手动修改类型,也可切回自动判断。' : '新增时默认自动判断,也可手动指定类型。' }}
取消
保存
{{u.display_name}} ({{u.username}})
{{u.status}}
仅同步勾选项
同步当前搜索结果
仅新增(默认)
覆盖更新
双向去重
同步结果
成功 {{syncResult.summary?.inserted||0}},更新 {{syncResult.summary?.updated||0}},跳过 {{syncResult.summary?.skipped||0}},失败 {{syncResult.summary?.failed||0}}
失败原因已在提示框展示。
取消
确认同步
预览解析结果
将导入 {{batchImportPreview.valid}} 条
解析失败 {{batchImportPreview.failed}} 条
{{row.link}}
{{row.join_type==='MANUAL_VERIFY'?'人工验证':'直接进入'}}
...还有 {{batchImportPreview.items.length-5}} 条未显示
解析失败行:
第{{e.line}}行:{{e.reason}}
取消
开始导入
此处登录的账号由总后台统一维护,所有下级新增群聊时都会复用这些账号自动读取群名并判断群类型。
添加账号
刷新
{{row.status==='active'?'已登录':row.status==='banned'?'冻结':'待验证'}}
{{ formatDateTime(row.created_at) }}
登录
编辑资料
检测
删除
📡 频道转发
📱 账号管理
新增规则
重新加载监听
📱 {{row.account_name||row.account_phone||'未绑定'}}
{{row.source_chat_name||row.source_chat}}
{{row.target_chat_name||row.target_chat}}
{{row.mode==='forward'?'转发-保留来源':'转发-隐藏来源'}}
{{row.enabled?'启用':'停用'}}
编辑
{{row.enabled?'停用':'启用'}}
删除
转发(隐藏来源)
转发(保留来源)
取消
保存
📱 {{row.account_name||row.account_phone||'未绑定'}}
{{row.target_chat_name||row.target_chat}}
{{row.schedule_type==='once'?'单次':row.schedule_type==='daily'?'每天':'每周'}}
{{row.next_run||'-'}}
{{row.enabled?'启用':'停用'}}
{{row.last_run_at?formatDateTime(row.last_run_at):'-'}}
{{row.last_error.substring(0,40)}}
编辑
{{row.enabled?'停用':'启用'}}
删除
单次
每天
每周
一
二
三
四
五
六
日
取消
保存
💡 此处添加的账号仅供「频道转发」和「定时发送」使用,与群发账号完全隔离互不影响。
➕ 添加账号
{{row.name}}
{{row.status==='active'?'已登录':'待验证'}}
改名
保存
登录
删除
📁 任务分组
全部 ({{managedAccountTotalCount}})
{{grp.name}} ({{grp.group_account_count||0}})
✅
正常
{{managedAccounts.filter(a=>a.status==='active').length}}
🔒
冻结
{{managedAccounts.filter(a=>a.status==='banned').length}}
⚠️
异常
{{managedAccounts.filter(a=>a.status==='error').length}}
💤
未登录
{{managedAccounts.filter(a=>a.status==='inactive').length}}
🔍
分配到任务
🗑️ 从当前任务移除
移动到分组
分组内任务
本分组全部账号
{{task.name}}
({{task.account_count}}号, {{task.account_statuses.active||0}}正常)
缺账号
managedAccountSelection=val">
{{row.phone}}
任务中
{{row.nickname||'+ 添加备注'}}
{{row.display_name}}
-
{{row.status==='active'?'正常':row.status==='banned'?'冻结':row.status==='error'?'异常':'未登录'}}
{{accountGroups.find(g=>g.id===row.group_id)?.name||''}}
未分组
▾
快速分组
📋 未分组
📁 {{g.name}}
暂无分组
{{row.proxy_type}}://{{row.proxy_host}}:{{row.proxy_port}}
直连
{{t.task_name}}
{{t.task_status==='running'?'运行中':t.task_status==='paused'?'已暂停':t.task_status==='idle'?'未启动':t.task_status==='completed'?'已完成':'失败'}}
+ 分配任务
仅显示「{{accountGroups.find(g=>g.id===row.group_id)?.name||''}}」分组下的任务
仅显示「未分组」任务(账号未分组)
{{t.name}} (已分配) ({{t.account_count}}号)
{{t.status==='running'?'运行中':t.status==='idle'?'未启动':'已暂停'}}
该分组下暂无任务
{{row.frozen_reason}}
—
检测
登录
修改资料
删除
账号:{{joinGroupPhone}}
· 每行一个链接,支持邀请链接(t.me/+xxx)或用户名(@xxx / t.me/xxx)
{{r.status==='ok'?'✅':r.status==='skip'?'⚠️':r.status==='pending'?'⏳':'❌'}}
{{r.name||r.link}}
{{r.msg}}
正在处理 {{joinGroupDone}} / {{joinGroupTotal}} ...
关闭
开始入群
🚫 不使用代理
⚡ 自动分配代理
已向 {{addAccountMgrForm.phone}} 发送验证码
取消
发送验证码
登录
不使用代理
自动分配代理
关闭
已选 {{managedAccountSelection.length}} 个账号
取消
确认分配
已选 {{managedAccountSelection.length}} 个账号
取消
确认移动
SOCKS5
HTTP
SOCKS4
清除代理
取消
保存
🪪 资料模版
➕ 新建模版
全部 ({{profileTemplates.length}})
全部 ({{profileTemplates.length}})
未分组 ({{profileTemplates.filter(t=>!t.group_id).length}})
{{g.name}} ({{g.template_count}})
+ 新建分组
加载中...
🪪
{{selectedPTGroupId===null?'暂无模版,点击「新建模版」添加':'该分组暂无模版'}}
{{t.name}}
{{[t.first_name,t.last_name].filter(Boolean).join(' ')||'未设置姓名'}}
{{t.group_name}}
{{t.about}}
无签名
✏️ 编辑
📄 复制
🗑️
取消
保存
取消
确定
📝 文案管理
📚 全部 ({{copyGroups.length}})
📋 未分类 ({{copyGroups.filter(g=>!g.category_id).length}})
📁 {{c.name}} ({{c.group_count}})
✏️
🗑️
➕ 新建分组
加载中...
暂无文案组
点击上方"+ 新建"
{{g.name}}
{{g.item_count}} 条文案
{{ g.category_id ? '📁 ' + (copyCategories.find(c=>c.id===g.category_id)?.name || '?') : '📋 未分类' }}
📋 未分类
📁 {{c.name}}
暂无分组,点击上方"➕ 新建分组"
{{selectedCopyGroup.name}}
✏️ 重命名
🗑️ 删除组
加载中...
暂无文案,点击上方添加
共 {{copyGroupItems.length}} 条 · 点击条目可编辑
每条文案之间用空行分隔,一次可导入多条。
取消
导入
暂无文案组,请先在「文案管理」页面创建。
分类:
📚 全部 ({{copyGroups.length}})
📋 未分类 ({{copyGroups.filter(g=>!g.category_id).length}})
📁 {{c.name}} ({{c.group_count}})
选择文案组 ({{pickerFilteredCopyGroups.length}}):
此分类下暂无文案组
{{g.name}}
{{g.item_count}} 条
📁 {{copyCategories.find(c=>c.id===g.category_id)?.name || '?'}}
取消
确认导入
暂无分类,请先在「群组管理」页面创建分类。
选择分类:
{{cat.name}}
{{cat.group_count}} 个
取消
确认导入
暂无账号分组,请先在「账号管理」页面创建分组。
选择账号分组:
{{grp.name}}
{{grp.account_count}} 个
账号列表(灰色=已被其他任务占用,不可选):
已选 {{pickerSelectedAccountIds.length}} 个
未选择则导入全部可用账号
{{acc.phone}}
已占用
{{acc.status==='active'?'正常':acc.status==='banned'?'冻结':acc.status==='error'?'异常':'未登录'}}
该分组暂无账号
取消
确认导入
🔍 采集成员
采集群组成员
📱 我的账号
➕ 添加账号
🔄 刷新
暂无账号,请先点击「添加账号」登录一个 Telegram 账号
{{ a.status==='active'?'在线':'离线' }}
{{ a.phone }}
({{ a.nickname }})
✏️
登录
{{ a.phone }}
在线
🔄 刷新群组
{{ g.name }}
{{ g.type==='supergroup'?'超级群':g.type==='channel'?'频道':'普通群' }}
共 {{ scraperGroupList.length }} 个群组,支持输入关键词搜索
开启后会扫描群聊消息,采集发言过的人(适用于隐藏成员列表的群)
越多采集越全,但耗时更长
🔍 开始采集
已采集的群组
全部
{{ c.name }}
未分组
+ 新建分组
🔄 刷新
{{ row.group_title }}
@{{ row.group_username }}
{{ row.member_count }}
setItemCategory('group', row.id, val)">
未存入
{{ p.name }}
{{ formatTime(row.scraped_at) }}
👁 查看成员
📦 存入资产包
删除
📦 批量存入资产包:
📦 存入资产包
搜索
共 {{ viewingGroup?.member_count || 0 }} 人
@{{ row.username }}—
{{ [row.first_name, row.last_name].filter(Boolean).join(' ') || '—' }}
⭐
📦 资产包
全部
{{ c.name }}
未分组
+ 新建分组
➕ 新建资产包
🔄 刷新
📦 {{ row.name }}
{{ row.total_members }} 人
setItemCategory('package', row.id, val)">
{{ formatTime(row.created_at) }}
👁 查看成员
删除
共 {{ viewingPackage?.total_members || 0 }} 人
{{ showManualMemberInput ? '收起录入' : '✏️ 手动录入' }}
手动录入成员
支持 @username 和 user_id,自动去重
确认录入
@{{ row.username }}—
{{ [row.first_name, row.last_name].filter(Boolean).join(' ') || '—' }}
{{ row.source_group || '—' }}
⭐
存入时将自动按 User ID 去重
取消
确认存入
任务分组
全部 ({{dmAccounts.length}})
{{g}} ({{dmAcctGroupCount(g)}})
未分配 ({{dmAcctUngroupedCount}})
🔑 登录
📥 导入
🔄 刷新
重命名分组:
确定
取消
不使用代理
自动分配代理
关闭
📱 {{dmLoginForm.phone}}
✅ 登录
取消
{{row.display_name}}
-
{{ {idle:'待使用',active:'正常',banned:'被封',error:'异常'}[row.status]||row.status }}
🔍
{{row.proxy_type}}://{{row.proxy_host}}:{{row.proxy_port}}
直连
⚙
检测
改资料
删除
为账号 {{proxyForm.phone}} 选择代理
暂无代理,请先到左侧「代理管理」添加
取消
💾 保存
取消
创建
📋 从模版选用
全部
{{g}}
👤
{{t.name}}
暂无模版
@
取消
保存
任务分组
全部 ({{dmTasks.length}})
{{g}} ({{dmTasks.filter(t=>t.task_group===g).length}})
未分组 ({{dmTasks.filter(t=>!t.task_group).length}})
+ 新建分组
删除
重命名
重命名分组:
确定
取消
🔄 刷新
➕ 创建私信任务
{{ row.name }}
{{ dmStatusLabel(row.status) }}
🤖 Inline Bot
📝 文本
✓{{ row.sent_count }}
✗{{ row.failed_count }}
⊘{{ row.skip_count }}
/ {{ row.total_members }}
▶ 启动
⏸ 暂停
📋 详情
✏ 编辑
📋 复制
删除
单账号
分组(多号轮发)
{{ a.phone }}
{{ {idle:'待使用',active:'正常',banned:'被封',error:'异常'}[a.status]||a.status }}
[{{ a.group_name }}]
(任务占用中)
将按成员顺序轮流使用该分组内所有账号发送
暂无发送账号,请先到「账号管理」页面登录或导入
从资产包中导入目标成员,自动去重
暂无资产包,请先采集成员并保存到资产包
📝 普通文本
🤖 Inline Bot
@{{ b.bot_username }}
{{ b.ad_count }} 条广告
暂无已上线的机器人,请先到「机器人管理」添加并启动
{{ ad.content_type === 'photo' ? '🖼️' : '📝' }} {{ ad.title }}
关键词: {{ ad.query_keyword }}
该 Bot 下暂无广告内容,请先到「机器人管理」添加广告
~
秒
⚠️ 建议间隔 ≥ 30秒,过快可能触发 Telegram 限制
取消
创建任务
单账号
分组(多号轮发)
{{ a.phone }}
{{ {idle:'待使用',active:'正常',banned:'被封',error:'异常'}[a.status]||a.status }}
(任务占用中)
📝 普通文本
🤖 Inline Bot
{{ ad.content_type === 'photo' ? '🖼️' : '📝' }} {{ ad.title }}
关键词: {{ ad.query_keyword }}
~
秒
取消
保存
使用的账号
{{ dmAccountStatus.accounts.length }} 个
{{ dmAccountStatus.accounts.filter(a=>a.active_limit).length }} 个受限
🔄 手动刷新
{{ showDMAccountHistory ? '收起历史' : '查看 7 天历史' }}
{{ row.group_name }}—
{{ row.status || 'idle' }}
{{ dmLimitTypeLabel(row.active_limit.limit_type) }}
{{ dmActiveCooldownText(row.active_limit) }}
✓ 正常
{{ row.active_limit.last_target }}
—
{{ row.history_7d_count }}
7 天历史(按时间倒序)
{{ dmLimitTypeLabel(row.limit_type) }}
{{ row.last_target || '—' }}
#{{ row.last_task_id }}
{{ row.triggered_at ? formatTime(row.triggered_at) : '—' }}
{{ row.is_active ? '仍限流' : '已结束' }}
总计 {{ viewingDMTask?.total_members || 0 }} |
成功 {{ viewingDMTask?.sent_count || 0 }} |
失败 {{ viewingDMTask?.failed_count || 0 }} |
跳过 {{ viewingDMTask?.skip_count || 0 }}
@{{ row.username }}
{{ row.display_name || '—' }}
{{ dmMemberStatusLabel(row.status) }}
{{ row.error }}
{{ row.sent_at ? formatTime(row.sent_at) : '—' }}
取消
确定
🪪 资料模版
➕ 新建模版
加载中...
{{t.name}}
{{[t.first_name,t.last_name].filter(Boolean).join(' ')||'未设置姓名'}}
{{t.about}}
无签名
✏️ 编辑
📄 复制
🗑️
取消
保存
🤖 机器人管理
Inline Bot 列表
➕ 添加 Bot
@{{ row.bot_username }}
未启动
{{ row.bot_token }}
✓
✗
{{ row.note }}
点击添加备注
{{ row.note }}
—
{{ row.is_active ? '运行中' : '已停止' }}
共享
{{ row.ad_count }}
▶ 启动
⏸ 停止
删除
由管理员管理
📝 广告内容
@{{ inlineBots[0].bot_username || '未启动' }}
➕ 添加广告
{{ row.content_type==='photo'?'图文':'文本' }}
{{ (row.message_text || '').substring(0, 60) }}{{ (row.message_text || '').length > 60 ? '...' : '' }}
-
{{ row.query_keyword || '-' }}
编辑
删除
💡 使用说明
2. 向 @BotFather 发送 /setinline 开启 Inline 模式
3. 在上方添加 Bot Token,点击启动
4. 在下方「广告内容」区域添加要发送的图文+按钮
5. 创建私信任务时选择「Inline Bot」模式,选择 Bot 和广告即可
格式如:123456789:ABCdefGHI...
取消
添加
📝 纯文本
📷 图文
×
➕ 添加按钮
链接支持填写 @username 自动转换 · 颜色不选则使用默认样式
数字越小越靠前
取消
保存
👥 拉人任务
+ 新建拉人任务
{{row.target_group_title || row.target_group}}
{{row.source_type==='package'?'资产包':row.source_type==='group'?'采集群':'手动'}}
{{row.success_count}}/{{row.total_members}}
成功 {{row.success_count}}
失败 {{row.failed_count}}
跳过 {{row.skip_count}}
{{row.status==='idle'?'未启动':row.status==='running'?'运行中':row.status==='paused'?'已暂停':row.status==='completed'?'已完成':'失败'}}
{{(row.account_ids||[]).length}}个
启动
暂停
详情
编辑
删除
资产包
采集群
手动输入
每个账号每次最多拉多少人
~
秒
取消
创建
~
取消
保存
目标群:{{inviteTaskDetail.target_group_title || inviteTaskDetail.target_group}}
状态:
{{inviteTaskDetail.status==='idle'?'未启动':inviteTaskDetail.status==='running'?'运行中':inviteTaskDetail.status==='paused'?'已暂停':inviteTaskDetail.status==='completed'?'已完成':'失败'}}
总计 {{inviteTaskDetail.total_members}}
成功 {{inviteTaskDetail.success_count}}
失败 {{inviteTaskDetail.failed_count}}
跳过 {{inviteTaskDetail.skip_count}}
重试失败
{{row.first_name||''}} {{row.last_name||''}}
@{{row.username}}
{{row.status==='pending'?'待拉':row.status==='success'?'成功':row.status==='already_in'?'已在群':row.status==='privacy'?'隐私限制':row.status==='flood'?'频率限制':row.status==='failed'?'失败':'跳过'}}
{{row.error_msg||''}}
{{row.invited_by_phone||'-'}}
{{row.display_name}}
-
{{ {idle:'待使用',active:'正常',banned:'被封',error:'异常'}[row.status]||row.status }}
🔍
{{row.proxy_type}}://{{row.proxy_host}}:{{row.proxy_port}}
直连
⚙
检测
删除
取消
添加
🌐 代理管理
🔍 全部测试
📋 批量导入
➕ 添加代理
总计 {{proxyStats.total}}
空闲 {{proxyStats.free}}
已分配 {{proxyStats.assigned}}
{{row.proxy_type}}
{{row.host}}:{{row.port}}
有
无
已分配 {{row.assigned_phone || row.assigned_account_id}}
空闲
测试中...
✓ {{proxyTestResults[row.id].message}}
✗ 不可用
未测试
测试
编辑
删除
添加代理后,在登录或导入账号时可直接选用,也可在账号管理的"代理"列单独修改。导入账号时会自动分配空闲代理。
每行一个代理,格式:host:port 或 host:port:user:pass
取消
导入
群组采集
暂无搜索账号
{{a.phone}}
{{a.display_name}}
点击进群
文件夹进群
✕
不使用代理
自动分配代理
已向 {{addSearchAcctForm.phone}} 发送验证码
取消
发送验证码
登录
分类
全选
清空
已选 {{joinGroups.selected.length}} / {{joinGroups.filtered.length}}
该分类下暂无群,请先去「群组管理」添加群
文件夹
{{g.title}}
{{g.link}}
进度 {{joinGroups.done}} / {{joinGroups.total}} · 成功 {{joinGroups.joined}} · 已在群 {{joinGroups.already}} · 失败 {{joinGroups.failedList.length}}
每个群间隔 3~8 秒防限流,可关闭弹窗,任务在后台继续。
进群完成:成功 {{joinGroups.joined}} · 已在群 {{joinGroups.already}} · 失败 {{joinGroups.failedList.length}}
{{f.name}} — {{f.reason}}
{{joinGroups.running?'后台运行并关闭':'关闭'}}
开始进群
使用此账号执行搜索(建议小号)
每关键词最多 20 个结果,多关键词自动 3~8s 延迟
开始搜索
清空
关键词命中:{{s.keyword}}: {{s.found}} | 去重后总计 {{kwSearchResults.length}}
{{e.keyword}}: {{e.error}}
共 {{kwSearchResults.length}},已选 {{kwSearchSelected.length}}
导入选中到群组库
kwSearchSelected=vals" style="width:100%;--el-table-header-bg-color:#dcfce7;">
{{row.title}}
频道
超群
群
{{row.link}}
{{row.members_count.toLocaleString()}}—
{{row.keyword}}
扫该账号已加入的所有群组的近期消息
推荐 200
推荐 50
开始挖链接
清空
已扫 {{grLinkScannedGroups.length}} 个群,共 {{grLinkScannedGroups.reduce((s,g)=>s+g.messages_scanned,0)}} 条消息,发现 {{grLinkResults.length}} 个新链接
共 {{grLinkResults.length}} 个新链接,已选 {{grLinkSelected.length}}
解析类型 ({{grLinkResolveProgress}})
导入选中到群组库
grLinkSelected=vals" style="width:100%;--el-table-header-bg-color:#dcfce7;">
频道
超群
群
个人
错误
未解析
{{row.link}}
{{row.title}}
{{row.hits}}
{{row.found_in_count}}
{{row.found_in_groups.join(' · ')}}
每人一次 GetFullUser 调用,建议 100 以内
开始挖链接
清空
已扫 {{bioLinkScannedCount}} 个成员,发现 {{bioLinkResults.length}} 个唯一链接
共 {{bioLinkResults.length}},已选 {{bioLinkSelected.length}}
解析类型 ({{bioLinkResolveProgress}})
导入选中到群组库
bioLinkSelected=vals" style="width:100%;--el-table-header-bg-color:#dcfce7;">
频道
超群
群
个人
错误
未解析
{{row.link}}
{{row.title}}
{{row.hits}}
{{row.source_users.map(u=>'@'+u).join(' · ')}}
套餐购买
🔄 刷新
💵
已到账总额
{{rechargeAdminStats.paidTotal}} USDT
🧾
已到账订单数
{{rechargeAdminStats.paidCount}}
⏳
待付款
{{rechargeAdminStats.pendingCount}}
📦
活跃套餐
{{rechargeAdmin.packages.filter(p=>p.is_active).length}}
📦 套餐管理
➕ 新增套餐
{{row.sort_order}}
{{row.description.length>40?row.description.slice(0,40)+'…':row.description}}
—
{{row.days}} 天
{{row.price_usdt}}
{{row.is_active?'上架':'下架'}}
编辑
删除
⏳ 待付款订单 ({{rechargeAdminStats.pendingCount}})
{{row.order_no}}
{{rechargeAdmin.userMap[row.user_id]||('user#'+row.user_id)}}
{{Number(row.amount_exact).toFixed(4)}} U
{{new Date(row.created_at).toLocaleString('zh-CN')}}
✓ 确认到账
📋 全部订单(含历史)
{{row.order_no}}
{{rechargeAdmin.userMap[row.user_id]||('user#'+row.user_id)}}
{{row.package_days}}
{{Number(row.amount_exact).toFixed(4)}}
{{row.status==='paid'?'已到账':row.status==='pending'?'待付款':row.status==='expired'?'已过期':'已取消'}}
{{row.confirmed_by||'—'}}
{{new Date(row.created_at).toLocaleString('zh-CN')}}
✓ 确认
—
套餐购买
余额: {{Number(recharge.balance||0).toFixed(2)}} USDT
💰 余额充值
🔄 刷新
{{recharge.expiry.is_expired?'⏰':'✅'}}
账号已过期
账号剩余 {{recharge.expiry.days_left}} 天
尚未激活
到期时间:{{new Date(recharge.expiry.expiry_at).toLocaleString('zh-CN')}}
请选择下方套餐充值激活账号
选择充值套餐
暂无可用套餐,请联系管理员
{{pkg.name}}
{{pkg.days}}
天
{{pkg.description}}
{{Number(pkg.price_usdt).toFixed(2)}} USDT
余额支付
USDT 付款
📋 充值记录
{{row.order_no}}
{{row.package_days}}
{{Number(row.amount_exact).toFixed(4)}}
{{row.status==='paid'?'已到账':row.status==='pending'?'待付款':row.status==='expired'?'已过期':'已取消'}}
{{new Date(row.created_at).toLocaleString('zh-CN')}}
订单号: {{recharge.pendingOrder.order_no}}
⏳ 待付款
套餐
{{recharge.pendingOrder.package_name}}({{recharge.pendingOrder.package_days}} 天)
应付金额(必须精确到 4 位小数)
{{Number(recharge.pendingOrder.amount_exact).toFixed(4)}} USDT
网络
TRC20(Tron)
收款地址
{{recharge.pendingOrder.address}}
📋 复制
剩余时间
{{recharge.countdown}}
⚠️ 重要:
• 转账金额必须精确到 4 位小数(最后 4 位用于识别您的订单)
• 仅支持 TRC20 网络,转错网络资金无法找回
• 转账后等待 1~2 分钟,系统自动到账
取消订单
关闭
我已确认支付成功
账号库存
🔄 刷新
📥 导入账号
📤 批量上架 ({{acctShop.invSelection.length}})
📦 账号库存为空 — 点击「📥 导入账号」上传 .session/.zip/.json 到库存池
此库存与「账号管理」完全隔离,仅用于销售
acctShop.invSelection=vals" empty-text="暂无账号">
{{row.phone}}
{{row.region_flag}} {{row.region_name}}
{{row.sale_year}}—
{{row.status==='active'?'正常':row.status==='banned'?'冻结':row.status==='error'?'异常':'未登录'}}
已售
上架中
库存
{{Number(row.sale_price_usdt).toFixed(2)}}—
{{t}}
{{row.sale_description.length>30?row.sale_description.slice(0,30)+'…':row.sale_description}}
—
上架
编辑
下架
售于 {{new Date(row.sold_at).toLocaleDateString('zh-CN')}}
已售账号数
{{acctSalesStats.count}}
销售总额
{{acctSalesStats.total}} USDT
余额支付 / USDT 直付
{{acctSalesStats.balanceCount}} / {{acctSalesStats.usdtCount}}
🔄 刷新
{{row.order_no}}
{{rechargeAdmin.userMap[row.user_id]||('user#'+row.user_id)}}
{{row.account_snapshot?.phone_masked||'—'}}
{{Number(row.paid_amount||row.amount_exact).toFixed(2)}}
{{row.pay_method==='balance'?'余额':'USDT'}}
{{(row.tx_hash||'').slice(0,18)}}{{row.tx_hash&&row.tx_hash.length>18?'…':''}}
{{row.confirmed_by||'—'}}
{{row.paid_at?new Date(row.paid_at).toLocaleString('zh-CN'):'—'}}
{{acctShop.listForm.account.phone}}
{{acctShop.listForm.account.region_flag}} {{acctShop.listForm.account.region_name}}
({{acctShop.listForm.account.display_name}})
已选 {{acctShop.invSelection.length}} 个账号(地区自动识别)
USDT
支持年或年月
取消
确认上架
USDT
{{acctShop.importForm.fileName}}
开启后:导入完成立即用上面的价格/年份/标签上架
取消
开始导入
账号购买
余额: {{Number(recharge.balance||0).toFixed(2)}} USDT
💰 余额充值
🔄 刷新
⏳ 你有一个待付款订单:账号 {{acctShop.currentOrder.account_snapshot?.phone_masked}} · 应付 {{Number(acctShop.currentOrder.amount_exact).toFixed(4)}} USDT
💳 继续付款
取消订单
暂无在售账号
{{item.phone_masked}}
已预订
{{item.region_flag}}
{{item.region_name}}
{{item.year}}
—
{{item.display_name}}
{{t}}
🔥 {{item.description.length>24?item.description.slice(0,24)+'…':item.description}}
{{Number(item.price_usdt).toFixed(2)}}
USDT
💳 继续付款
余额支付
USDT 付款
📦 我的账号({{acctShop.myAccounts.length}})
你还没有购买任何账号
在「🛒 购买账号」标签下选购,付款后账号会出现在这里
共 {{acctShop.myAccounts.length}} 个账号 · 可随时切换分配到不同模块
{{row.phone}}
{{row.display_name}}—
{{row.status==='active'?'正常':row.status==='banned'?'冻结':row.status==='error'?'异常':'未登录'}}
📢 广告群发
🔍 群组采集
⏸️ 未分配
changeMyAccountPurpose(row, v)">
订单号: {{acctShop.currentOrder.order_no}}
购买账号
{{acctShop.currentOrder.account_snapshot?.phone_masked}}
应付金额(4 位小数精确)
{{Number(acctShop.currentOrder.amount_exact).toFixed(4)}} USDT
网络
TRC20(Tron)
收款地址
{{acctShop.currentOrder.address}}
📋
剩余时间
{{acctShop.countdown}}
⚠️ 重要:
• 金额必须精确到 4 位小数
• 仅支持 TRC20,转错网络资金无法找回
• 30 分钟超时订单自动取消
取消订单
关闭
我已确认支付成功
账号
{{acctShop.buyTarget.item.phone_masked}} {{acctShop.buyTarget.item.region_flag}} {{acctShop.buyTarget.item.region_name}}
支付方式
💰 余额支付
USDT 付款
金额
{{Number(acctShop.buyTarget.item.price_usdt).toFixed(2)}} USDT
📂 账号买完放哪里?
{{opt.icon}}
{{opt.label}}
{{opt.sub}}
✓
取消
确认购买
USDT
50
100
500
1000
取消
生成订单
👥 下级管理
共 {{users.length}} 个下级账号 · 启用 {{users.filter(u=>u.is_active).length}} 个
➕ 创建下级账号
总账号数
{{users.reduce((s,u)=>s+(u.total_accounts||0),0)}}
今日总发送
{{users.reduce((s,u)=>s+(u.today_sent||0),0)}}
今日总失败
{{users.reduce((s,u)=>s+(u.today_failed||0),0)}}
{{row.username.charAt(0).toUpperCase()}}
{{row.username}}
ID: {{row.id}}
{{row.total_accounts||0}}
{{row.total_tasks||0}}
{{row.today_sent||0}}
{{row.today_failed||0}}
全部功能
无权限
{{permLabel(p)}}
{{row.is_active?'启用':'禁用'}}
未激活
{{new Date(row.expiry_at).toLocaleString('zh-CN',{year:'numeric',month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit'})}}
已过期
剩余 {{Math.ceil((new Date(row.expiry_at).getTime()-Date.now())/86400000)}} 天
进入
延期
编辑
谷歌重置
删除
通知机器人
平台机器人尚未配置,请联系管理员在「机器人配置」标签中设置机器人 Token。
机器人 @{{ notifyBot.bot_username }} 当前离线,绑定后需等管理员启动才能收到推送。
绑定状态:
已绑定 {{ notifyBot.tg_username ? '@'+notifyBot.tg_username : (notifyBot.tg_first_name||'') }}
未绑定
{{ notifyBot.push_enabled?'推送开启':'推送关闭' }}
绑定步骤:
- 打开机器人:@{{ notifyBot.bot_username }}
- 向它发送下面这串验证码
{{ notifyBot.verify_code }}
复制验证码
{{ notifyBot.push_enabled?'关闭推送':'开启推送' }}
解除绑定
刷新状态
进行中
已关闭
刷新
暂无工单
{{ t.group_title || '(群)' }}
工单#{{ t.id }} · {{ t.requester_name || '用户' }}
选择左侧工单查看对话
{{ currentTicket.group_title }} · {{ currentTicket.requester_name }}
关闭工单
发送
工单已关闭
发送广播
将发送到机器人已登记的全部群({{ botGroups.length }} 个)。也可在 TG 私聊机器人发送「广播 文案」。
剩余 ≤ N 天时群内播报,0=关闭
余额低于此值时播报,0=关闭
保存
系统每小时检查一次,每个群每天最多播报一次,并同时私聊对应用户。
刷新
把机器人拉进群后会自动出现在下方,选择要绑定的账号即可。绑定后群内 @机器人 显示「召唤客服 / 查看剩余时间 / 查看账户余额」。
{{ row.title || '(未命名群)' }}{{ row.tg_chat_id }}
onBindGroup(row, v)">
移除
我的绑定
机器人尚未配置,请在下方填写 Token 并启动后再绑定。
机器人 @{{ notifyBot.bot_username }} 当前离线,绑定后需启动才能收到推送。
绑定状态:
已绑定 {{ notifyBot.tg_username ? '@'+notifyBot.tg_username : (notifyBot.tg_first_name||'') }}
未绑定
{{ notifyBot.push_enabled?'推送开启':'推送关闭' }}
绑定步骤:
- 打开机器人:@{{ notifyBot.bot_username }}
- 向它发送下面这串验证码
{{ notifyBot.verify_code }}
复制验证码
{{ notifyBot.push_enabled?'关闭推送':'开启推送' }}
解除绑定
机器人配置
运行状态:
{{ notifyBot.bot_running?'运行中':'未运行' }}
@{{ notifyBot.bot_username }}
启动机器人
停止
刷新状态
保存并启动
全平台共用此机器人。保存后机器人会自动上线,所有下级即可私聊绑定接收各自的任务进度。
私聊广播白名单
只有名单内的 TG 用户ID 才能在私聊里用「广播 文案」命令(TG 用户ID 无法伪造,可防冒用)。名单为空时私聊广播完全禁用,仅网页端「广播文案」可用。
保存白名单
添加我的TG({{ broadcastMyTgId }})
你还没绑定 TG,先到「我的绑定」绑定后即可一键添加自己
群内按钮设置(客户)
自定义群里 @机器人 弹给客户的按钮:文字、颜色、顺序(▲▼)。可添加多个「自定义链接」按钮(点击跳转网址),管理员绑定/解除群用纯文字命令,不放进按钮。
0 && moveMenuBtn(i,-1)">▲
▼
✕
普通 emoji 直接写进文字框即可。会员/自定义表情把整段标记连文字写进文字框,如 召唤客服,发到群里时自动渲染成表情图标。能否渲染取决于服务端策略,建议先填一个真机测试。
恢复默认
保存
接收任务进度推送
- 到「我的绑定」标签,复制你的 8 位数字验证码
- 私聊机器人,把验证码发给它 → 提示「绑定成功」
- 之后你的任务完成 / 暂停 / 停止会自动推送到你的 Telegram
- 给机器人发「停止推送」可暂停,发「开启推送」恢复
群内自助查询(把机器人拉进群后)
在群里发「客服」「菜单」或 @机器人,会弹出三个按钮:
- 📞 召唤客服 —— 通知后台客服并建立工单,客服可在「客服工单」里和你来回对话
- ⏳ 查看剩余时间 —— 显示该群绑定账号的到期天数
- 💰 查看账户余额 —— 显示该群绑定账号的余额
⚠️ 前提:在 @BotFather 发送 /setprivacy 把机器人设为 Disable,然后把机器人移出群再重新拉进群,否则机器人收不到群里的普通消息("客服/菜单"会没反应)。@机器人 或回复它的消息则不受此限制。
到期 / 余额提醒
当绑定账号的剩余天数或余额低于阈值时,机器人会在群里播报并私聊提醒,每个群每天最多一次。
管理员功能
- 机器人配置 —— 填写 @BotFather 的 Token,保存即上线;可启动 / 停止
- 广播文案 —— 一键群发到机器人所在的全部群;也可私聊机器人发「广播 文案」
- 广播白名单 —— 只有名单内的 TG 用户ID 能私聊广播,防止被冒用
- 入群绑定 —— 把每个群绑定到对应后台账号,群内按钮才会显示该账号的数据。两种绑定方式(需用绑定了管理员账号的 TG 操作):①后台「入群绑定」标签下拉选择;②直接在群里发文字命令「
绑定后台 用户名」(如 绑定后台 tron1usd),发「解除后台」解绑。管理员操作不占用客户按钮菜单
- 到期/余额预警 —— 设置剩余天数与余额阈值
- 客服工单 —— 查看并回复群内用户的客服请求(回复会以客服身份发回群里)
系统配置
自动清理
系统每天凌晨 3:00 自动清理过期数据(日志、群组记录、已完成任务的发送记录)
天
Telegram API 配置
1. 访问 https://my.telegram.org
2. 用你的Telegram账号登录
3. 点击 "API development tools"
4. 创建新应用,获取 api_id 和 api_hash
保存API配置
重新加载
• 修改API配置后需要重启后端服务才能生效
• 如遇到"api_id/api_hash invalid"错误,请申请新的API密钥
• API密钥泄露可能导致账号被滥用,请妥善保管