同步页面正文标题改名:付费中心→会员订阅、微信机器人→微信Bot、会员订阅→会员管理、应用市场审核→AI技能审核、技能管理→Skills技能管理、MCP服务→MCP Client管理、支付渠道配置→支付渠道、广告位管理→广告管理
This commit is contained in:
1 parent
fcc84d98df
commit
202a181ebe
12 files changed
+17
-17
No files matched your search
@@ -51,7 +51,7 @@ const adminNavGroups: NavGroup[] = [
|
||||
items: [
|
||||
{ path: '/admin/models', icon: 'models', label: '大模型库' },
|
||||
{ path: '/admin/agents', icon: 'agents', label: 'Agent 管理' },
|
||||
{ path: '/admin/skills', icon: 'skills', label: 'Skills 技能管理' },
|
||||
{ path: '/admin/skills', icon: 'skills', label: 'Skills技能管理' },
|
||||
{ path: '/admin/mcp', icon: 'mcp', label: 'MCP Client 管理' },
|
||||
{ path: '/admin/market', icon: 'market', label: 'AI 技能审核' },
|
||||
],
|
||||
|
||||
@@ -204,7 +204,7 @@ const Ads: React.FC = () => {
|
||||
return (
|
||||
<div style={{ animation: 'fadeIn var(--transition-normal)' }}>
|
||||
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 'var(--space-xl)' }}>
|
||||
<h1 className="admin-page-title" style={{ marginBottom: 0 }}>广告位管理</h1>
|
||||
<h1 className="admin-page-title" style={{ marginBottom: 0 }}>广告管理</h1>
|
||||
<button className="admin-btn admin-btn-primary" onClick={handleCreate}>
|
||||
<SVGIcon size={14}><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></SVGIcon>
|
||||
新增广告位
|
||||
|
||||
@@ -68,7 +68,7 @@ const Market: React.FC = () => {
|
||||
|
||||
return (
|
||||
<div style={{ animation: 'fadeIn var(--transition-normal)' }}>
|
||||
<h1 className="admin-page-title">应用市场审核管理</h1>
|
||||
<h1 className="admin-page-title">AI技能审核管理</h1>
|
||||
|
||||
{/* Tabs */}
|
||||
<div style={{ display: 'flex', gap: 'var(--space-sm)', marginBottom: 'var(--space-2xl)', borderBottom: '1px solid var(--color-border)', paddingBottom: 'var(--space-lg)' }}>
|
||||
|
||||
@@ -130,7 +130,7 @@ export default function AdminMcp() {
|
||||
};
|
||||
|
||||
const handleDelete = async (server: MCPServer) => {
|
||||
if (!confirm(`确认删除 MCP 服务 "${server.name}"?`)) return;
|
||||
if (!confirm(`确认删除 MCP Client "${server.name}"?`)) return;
|
||||
try {
|
||||
await adminAPI.deleteAdminMcpServer(server.id);
|
||||
showToast('服务已删除');
|
||||
@@ -209,7 +209,7 @@ export default function AdminMcp() {
|
||||
)}
|
||||
|
||||
<div style={styles.header}>
|
||||
<h1 style={styles.title}>MCP 服务管理</h1>
|
||||
<h1 style={styles.title}>MCP Client管理</h1>
|
||||
{/* 手动添加服务入口已移除:MCP 仅支持通过 URL 导入(见应用市场「导入」)或由 AI 聊天自动部署安装 */}
|
||||
</div>
|
||||
|
||||
@@ -267,7 +267,7 @@ export default function AdminMcp() {
|
||||
{loading ? (
|
||||
<tr><td colSpan={7} style={{ ...styles.td, textAlign: 'center', padding: 40 }}>加载中...</td></tr>
|
||||
) : servers.length === 0 ? (
|
||||
<tr><td colSpan={7} style={{ ...styles.td, textAlign: 'center', padding: 40, color: '#9ca3af' }}>未找到 MCP 服务</td></tr>
|
||||
<tr><td colSpan={7} style={{ ...styles.td, textAlign: 'center', padding: 40, color: '#9ca3af' }}>未找到 MCP Client</td></tr>
|
||||
) : servers.map(s => (
|
||||
<tr key={s.id}>
|
||||
<td style={styles.td}>
|
||||
@@ -348,7 +348,7 @@ function McpModal({ server, onSubmit, onClose }: { server: MCPServer | null; onS
|
||||
return (
|
||||
<div style={styles.modalOverlay} onClick={onClose}>
|
||||
<div style={styles.modal} onClick={e => e.stopPropagation()}>
|
||||
<div style={styles.modalTitle}>{server ? '编辑 MCP 服务' : '添加 MCP 服务'}</div>
|
||||
<div style={styles.modalTitle}>{server ? '编辑 MCP Client' : '添加 MCP Client'}</div>
|
||||
<form onSubmit={handleSubmit}>
|
||||
<div style={styles.formGroup}>
|
||||
<label style={styles.label}>名称 *</label>
|
||||
|
||||
@@ -94,7 +94,7 @@ const Membership: React.FC = () => {
|
||||
|
||||
return (
|
||||
<div style={{ animation: 'fadeIn var(--transition-normal)' }}>
|
||||
<h1 className="admin-page-title">会员订阅体系管理</h1>
|
||||
<h1 className="admin-page-title">会员管理</h1>
|
||||
|
||||
{/* Plan Cards */}
|
||||
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(340px, 1fr))', gap: 'var(--space-xl)', marginBottom: 'var(--space-2xl)' }}>
|
||||
|
||||
@@ -131,7 +131,7 @@ const Payment: React.FC = () => {
|
||||
|
||||
return (
|
||||
<div style={{ animation: 'fadeIn var(--transition-normal)' }}>
|
||||
<h1 className="admin-page-title">支付渠道配置</h1>
|
||||
<h1 className="admin-page-title">支付渠道</h1>
|
||||
|
||||
{Object.entries(msg).map(([id, m]) => m.text ? (
|
||||
<div key={id} style={{
|
||||
|
||||
@@ -1300,7 +1300,7 @@ export default function PrivacySettings() {
|
||||
|
||||
<div>
|
||||
|
||||
<h4 style={{ margin: '0 0 12px', color: '#ccc', fontSize: 14 }}>MCP 服务器配置</h4>
|
||||
<h4 style={{ margin: '0 0 12px', color: '#ccc', fontSize: 14 }}>MCP Client 配置</h4>
|
||||
|
||||
<pre style={{
|
||||
|
||||
@@ -1370,7 +1370,7 @@ export default function PrivacySettings() {
|
||||
|
||||
<li>安装依赖: <code style={{ background: '#FFFFFF', padding: '2px 6px', borderRadius: 4, color: '#4ade80' }}>pip install -r requirements.txt</code></li>
|
||||
|
||||
<li>配置环境变量: 将上方 MCP 服务器配置添加到 Goose</li>
|
||||
<li>配置环境变量: 将上方 MCP Client 配置添加到 Goose</li>
|
||||
|
||||
<li>启动 Goose: 配置将自动连接到平台</li>
|
||||
|
||||
|
||||
@@ -329,7 +329,7 @@ const Skills: React.FC = () => {
|
||||
{/* Header */}
|
||||
<div className="admin-page-header">
|
||||
<div>
|
||||
<h2 style={{ margin: 0, fontSize: 20, fontWeight: 600 }}>技能管理</h2>
|
||||
<h2 style={{ margin: 0, fontSize: 20, fontWeight: 600 }}>Skills技能管理</h2>
|
||||
<p style={{ margin: '4px 0 0', color: '#6B7280', fontSize: 13 }}>
|
||||
管理全平台 AI 技能,支持版本历史与市场发布
|
||||
</p>
|
||||
|
||||
@@ -68,7 +68,7 @@ const features = [
|
||||
{ d: <><circle cx="12" cy="12" r="10" /><path d="M12 6v6l4 2" /></>,
|
||||
title: 'Token 驾驶舱', desc: '实时监控 Token 消耗,费用透明可控,每一笔都有据可查。' },
|
||||
{ d: <><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" /><circle cx="9" cy="7" r="4" /><path d="M23 21v-2a4 4 0 0 0-3-3.87" /><path d="M16 3.13a4 4 0 0 1 0 7.75" /></>,
|
||||
title: 'AI 微信机器人', desc: '个人微信 AI 助手直接对接,消息自动回复,AI 融入你的日常沟通。' },
|
||||
title: 'AI 微信Bot', desc: '个人微信 AI 助手直接对接,消息自动回复,AI 融入你的日常沟通。' },
|
||||
{ d: <><polyline points="16 3 21 3 21 8" /><line x1="4" y1="20" x2="21" y2="3" /><polyline points="21 16 21 21 16 21" /><line x1="15" y1="15" x2="21" y2="21" /><line x1="4" y1="4" x2="9" y2="9" /></>,
|
||||
title: '自动化任务编排', desc: '关键词触发、定时执行等自动化任务,让 AI 按你的节奏工作。' },
|
||||
];
|
||||
@@ -308,7 +308,7 @@ const LandingPage: React.FC = () => {
|
||||
<div className="lp-inner">
|
||||
<div className="lp-section-head">
|
||||
<h2 className="lp-h2">热门技能榜 · Top 5</h2>
|
||||
<p className="lp-sub">涵盖 Skills、Agent、MCP 服务,按下载 / 安装量排行,看看大家都在用哪些能力</p>
|
||||
<p className="lp-sub">涵盖 Skills、Agent、MCP Client,按下载 / 安装量排行,看看大家都在用哪些能力</p>
|
||||
</div>
|
||||
<ol className="lp-rank">
|
||||
{topSkills.map((app, i) => (
|
||||
|
||||
@@ -324,7 +324,7 @@ const PricingPage: React.FC = () => {
|
||||
return (
|
||||
<div className="pricing-page">
|
||||
<div className="pricing-header">
|
||||
<h1 className="pricing-title">订阅付费中心</h1>
|
||||
<h1 className="pricing-title">会员订阅</h1>
|
||||
<p className="pricing-subtitle">选择最适合你的方案,解锁 AI 无限可能</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ const WechatBot: React.FC = () => {
|
||||
<div style={{ maxWidth: '860px', margin: '0 auto' }}>
|
||||
{/* Header */}
|
||||
<div style={{ marginBottom: '24px' }}>
|
||||
<h1 style={{ fontSize: '24px', fontWeight: 700, margin: 0, color: '#1A1F36' }}>我的微信机器人</h1>
|
||||
<h1 style={{ fontSize: '24px', fontWeight: 700, margin: 0, color: '#1A1F36' }}>我的微信Bot</h1>
|
||||
<p style={{ color: '#6B7280', fontSize: '14px', margin: '6px 0 0 0' }}>
|
||||
绑定你自己的个人微信,由七虎AI 大脑自动应答。基于腾讯官方 iLink 协议,扫码授权即可,无需任何开放平台凭证。
|
||||
</p>
|
||||
|
||||
@@ -62,7 +62,7 @@ const WechatHistory: React.FC = () => {
|
||||
<div style={{ background: '#F8F9FC', borderRadius: '12px', padding: '16px', minHeight: '420px' }}>
|
||||
{messages.length === 0 ? (
|
||||
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '380px', color: '#9CA3AF', fontSize: '14px', textAlign: 'center', padding: '0 24px' }}>
|
||||
{loading ? '加载中…' : '暂无对话记录。请先在「微信机器人」中绑定并发送消息,对话记录会显示在这里。'}
|
||||
{loading ? '加载中…' : '暂无对话记录。请先在「微信Bot」中绑定并发送消息,对话记录会显示在这里。'}
|
||||
</div>
|
||||
) : (
|
||||
messages.map((m, i) => (
|
||||
|
||||
Reference in new issue
Block a user