diff --git a/README.md b/README.md
index 0a7b0797..4413a1be 100644
--- a/README.md
+++ b/README.md
@@ -75,6 +75,8 @@ sub2api-cn-relay-manager/
- [docs/OPENCLAW_EXTERNAL_VALIDATION.md](./docs/OPENCLAW_EXTERNAL_VALIDATION.md) —— OpenClaw 最后一跳真实使用验证
- [docs/PROJECT_STRUCTURE.md](./docs/PROJECT_STRUCTURE.md) —— 当前仓库目录职责说明
- [scripts/README.md](./scripts/README.md) —— 脚本目录分层说明与常用入口
+- [deploy/tksea-portal/admin/index.html](./deploy/tksea-portal/admin/index.html) —— 管理入口首页
+- [deploy/tksea-portal/admin/providers.html](./deploy/tksea-portal/admin/providers.html) —— provider 目录 / preview-import / import / manifest 草稿页(含服务端草稿保存)
- [deploy/tksea-portal/admin-batch-import.html](./deploy/tksea-portal/admin-batch-import.html) —— 最小 batch-import 管理页
背景/设计文档:
diff --git a/deploy/README.md b/deploy/README.md
index 83b2e970..847e6436 100644
--- a/deploy/README.md
+++ b/deploy/README.md
@@ -8,11 +8,22 @@
- `tksea-portal/index.html`
- `https://sub.tksea.top/portal/` 的静态页面源码
+- `tksea-portal/admin/index.html`
+ - `https://sub.tksea.top/portal/admin/` 的管理首页
+ - 统一收纳“新增模型 / 供应商目录”和“导入供应商帐号”入口
+- `tksea-portal/admin/providers.html`
+ - `https://sub.tksea.top/portal/admin/providers.html`
+ - 用现有 CRM API 做 pack/provider 浏览、preview-import、import,以及 provider manifest 草稿生成
+ - 当前也可直接调用服务端 `provider_drafts` API,把 manifest 草稿持久化到 CRM SQLite,并支持更新 / 删除
+- `tksea-portal/admin/batch-import.html`
+ - `https://sub.tksea.top/portal/admin/batch-import.html`
+ - 结构化入口地址,当前跳转到 legacy `admin-batch-import.html`
- `tksea-portal/admin-batch-import.html`
- `https://sub.tksea.top/portal/admin-batch-import.html` 的最小管理页
- 直接消费 `POST /api/batch-import/runs` 与 `GET /api/batch-import/runs/*`
- `tksea-portal/nginx.sub.tksea.top.conf.example`
- `sub.tksea.top` 上 portal 路由与代理示例
+ - 当前同时包含 `/portal-proxy/` 宿主用户态代理与 `/portal-admin-api/` CRM 管理态代理
它和 `scripts/` 的边界如下:
diff --git a/deploy/tksea-portal/admin-batch-import.html b/deploy/tksea-portal/admin-batch-import.html
index 438d269f..7d7c29a7 100644
--- a/deploy/tksea-portal/admin-batch-import.html
+++ b/deploy/tksea-portal/admin-batch-import.html
@@ -42,6 +42,33 @@
margin: 0 auto;
padding: 36px 20px 64px;
}
+ .topnav {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ margin-bottom: 18px;
+ }
+ .topnav a {
+ text-decoration: none;
+ padding: 10px 14px;
+ border-radius: 999px;
+ border: 1px solid var(--line);
+ background: rgba(255,255,255,0.78);
+ color: var(--muted);
+ font-size: 13px;
+ font-weight: 700;
+ transition: transform 120ms ease, background 120ms ease, color 120ms ease;
+ }
+ .topnav a:hover {
+ transform: translateY(-1px);
+ background: #fff;
+ color: var(--ink);
+ }
+ .topnav a.is-current {
+ background: var(--ink);
+ color: #fff;
+ border-color: var(--ink);
+ }
.hero {
display: grid;
grid-template-columns: 1.3fr 0.7fr;
@@ -343,6 +370,13 @@
+
+
Batch Import Admin
@@ -350,7 +384,7 @@
这个页面只做三件事:发起 batch import、查看 run 摘要、拉取 item 级复用结果。
后端仍然以现有 `POST /api/batch-import/runs` 与 `GET /api/batch-import/runs/*` 为准,
- 页面不引入额外协议。
+ 页面不引入额外协议。默认通过同域 `portal-admin-api` 访问 CRM。
- 直接展示 `matched_account_state`
@@ -384,7 +418,7 @@