⚠ 页面加载失败

请尝试:1) 强制刷新 (Ctrl+Shift+R) 2) 清除缓存 3) 检查网络/VPN

🔐 需要登录

请登录以访问系统

仪表盘

{{ stats.products }}
产品总数
{{ stats.shops }}
店铺数量
{{ stats.pendingTasks }}
待处理任务
{{ stats.workers }}
在线工作机

快速操作

图片包管理

📦 批量上传图片包

上传队列

📄 {{ item.name }} ({{ Math.round(item.size / 1024 / 1024) }}MB)
等待中 上传中...
总进度 {{ batchUploadProgress.completed }}/{{ batchUploadProgress.total }}

{{ uploadStatus }}

💡 支持格式:ZIP, RAR (仅支持这两种格式)

💡 选择文件夹会自动扫描其中所有的压缩包

💡 支持并行上传,最多同时上传 8 个文件

{{ packages.length }}
总记录数
{{ packages.filter(p => p.status === 'pending').length }}
待处理
{{ packages.filter(p => p.ai_analyzed).length }}
已 AI 分析
{{ packages.filter(p => p.products && p.products.length > 0).length }}
已创建产品
{{ totalImages }}
图片总数
加载中...

{{ record.archive_filename }}

供应商:{{ record.supplier }} 型号:{{ record.model }} 价格:¥{{ record.price }}
{{ record.status }}
已创建: {{ p.spu || p.id?.substring(0,8) }}{{ idx < record.products.length - 1 ? ', ' : '' }}
主图:{{ record.main_images?.length || 0 }} | 详情:{{ record.detail_images?.length || 0 }} | SKU: {{ record.sku_images?.length || 0 }} ({{ Math.round(record.archive_size / 1024 / 1024) }}MB)
AI 建议标题: {{ record.ai_content.title }}
{{ new Date(record.created_at).toLocaleString() }}

暂无图片包记录,请先上传压缩包

🔄 批量推理进行中

{{ batchInferStatus }}

{{ batchInferProgress.total }}
总计
{{ batchInferProgress.success }}
成功
{{ batchInferProgress.failed }}
失败
{{ batchInferProgress.skipped }}
跳过

请勿关闭页面,推理将在后台继续...

🛒 发布到 SHEIN

{{ spPackage?.archive_filename }}

{{ s < spStep ? '✓' : s }}

Step 1: 选择 SHEIN 店铺

包信息概要
SPU: {{ spPackage.spu || '未设置' }}
供应商: {{ spPackage.supplier || '-' }}
型号: {{ spPackage.model || '-' }}
价格: ¥{{ spPackage.price || 0 }}
材质: {{ spPackage.material || '-' }}
性别: {{ spPackage.gender || '-' }}
颜色: {{ (spPackage.color || []).join(', ') || '-' }}
英文标题: {{ spPackage.title_en || '-' }}

Step 2: 选择要发布的颜色

每个颜色 = 一个 SKC。请勾选需要发布的颜色。

该图片包没有颜色信息,请先运行 AI 识别。

Step 3: 设置价格和库存

包信息参考价: ¥{{ spPackage?.price || 0 }}

Step 4: 预览图片选择

正在自动选择图片...
颜色: {{ sel.color }}
方图 (1200x1200)
将自动裁剪生成
无可用图片
模特图 ({{ sel.model_images.length }}/6)
无模特图
白底图
无白底图
尺寸图 ({{ sel.size_images.length }})
无尺寸图
内部图 ({{ sel.internal_images.length }})
无内部图
注意: 有 {{ spUninferredCount }} 张图片未进行单图推理,可能影响图片选择质量。建议先运行"批量单图推理"。

Step 5: AI 匹配类目和颜色

类目匹配
类目: {{ spCategoryMatch.category_name }}
ID: {{ spCategoryMatch.category_id }} / Product Type: {{ spCategoryMatch.product_type_id }}
{{ spCategoryMatch.reason }}
颜色属性匹配
请先匹配类目
{{ colorName }} {{ mapping.name }} (ID: {{ mapping.attribute_value_id }})

Step 6: 确认并提交

必填属性
无必填属性或尚未加载
发布概要
SPU: {{ spPackage?.spu }}
标题: {{ spPackage?.title_en }}
类目: {{ spCategoryMatch?.category_name }} ({{ spCategoryMatch?.category_id }})
颜色数: {{ spSelectedColors.length }} 个 SKC
供货价: ¥{{ spCostPrice }}
库存: {{ spInventory }}
{{ spSubmitResult.success ? '发布成功!' : '发布失败' }}
{{ spSubmitResult.message || spSubmitResult.error }}
校验错误详情:
  • {{ ve.field || '未知字段' }}: {{ ve.message }}
查看完整返回
{{ JSON.stringify(spSubmitResult.detail, null, 2) }}
步骤 {{ spStep }} / 6

产品管理

无图片
{{ p.spu || '-' }}

{{ p.name || '(未命名)' }}

供应商:{{ p.supplier }} 型号:{{ p.model }}
{{ p.status }}
成本价:¥{{ p.cost_price || 0 }} {{ new Date(p.created_at).toLocaleString() }}

暂无产品,请先上传图片包

从图片记录创建产品

格式:供应商拼音大写_型号

默认使用:压缩包文件名 + 文件夹名

加载中...
暂无图片

AI 建议

标题: {{ selectedRecord.ai_content.title }}

关键词: {{ selectedRecord.ai_content.keywords?.join(', ') }}

价格区间: ¥{{ selectedRecord.ai_content.suggested_price_range?.[0] }} - ¥{{ selectedRecord.ai_content.suggested_price_range?.[1] }}

编辑图片包信息

格式:供应商拼音首字母大写 + 下划线 + 型号

AI 分析结果

标题: {{ selectedRecord.ai_content.title_cn }}

材质: {{ selectedRecord.ai_content.material }}

风格: {{ selectedRecord.ai_content.style }}

价格建议: ¥{{ selectedRecord.ai_content.suggested_price_range?.[0] }} - ¥{{ selectedRecord.ai_content.suggested_price_range?.[1] }}

👜 AI 识别包包属性

说明:选择宽度约 750px 的前 10 张图片进行 AI 分析,自动识别包包的尺寸、材质、颜色等属性

供应商信息:
供应商: {{ inferenceResult.supplier }}
型号: {{ inferenceResult.model }}
价格: ¥{{ inferenceResult.price }}
包包属性:
宽度: {{ inferenceResult.width }} cm
高度: {{ inferenceResult.height }} cm
厚度: {{ inferenceResult.thickness }} cm
重量: {{ inferenceResult.weight }} kg
材质: {{ inferenceResult.material }}
适用性别: {{ inferenceResult.gender }}
肩带数量: {{ inferenceResult.strap_count }}
颜色: {{ inferenceResult.color.join(', ') }}
内部结构: {{ inferenceResult.internal_structure }}
功能: {{ inferenceResult.function_features.join(', ') }}
销售版本: {{ inferenceResult.sales_versions }}
电商信息:
中文标题: {{ inferenceResult.title_cn }}
英文标题: {{ inferenceResult.title_en }}
电商描述: {{ inferenceResult.ecommerce_description.substring(0, 100) }}...

发布产品到店铺

产品:{{ selectedProduct?.name }}

{{ shop.name }} ({{ shop.platform }}) → {{ shop.worker_id }}

店铺管理

{{ shop.name }}

{{ shop.platform }}
{{ shop.status }}

产品数:{{ shop.product_count }} | 待发订单:{{ shop.pending_orders }}

绑定 Worker: {{ shop.worker_id }} 未绑定

暂无店铺,请先添加

{{ editingShop ? '编辑店铺' : '添加店铺' }}

任务列表

ID 类型 平台/店铺 Worker 状态 创建时间
{{ task.id?.substring(0,8) }} {{ task.type }} {{ task.platform }} / {{ task.shop_id?.substring(0,8) }} {{ task.assigned_worker || '-' }} {{ task.status }} {{ new Date(task.created_at).toLocaleString() }}

暂无任务

工作机状态

{{ worker.name || worker.worker_id }}

{{ worker.worker_id }}

{{ worker.status }}

支持平台:{{ worker.capabilities?.join(', ') }}

CPU: {{ worker.cpu_usage?.toFixed(1) }}% | 内存:{{ worker.memory_usage?.toFixed(1) }}%

浏览器:{{ worker.browser_instances }}/{{ worker.max_browser_instances }}

最后心跳:{{ new Date(worker.last_heartbeat).toLocaleString() }}

暂无工作机连接

🤖 AI 提供者管理

{{ provider.name }}

{{ provider.base_url }}

{{ model.display_name || model.name }} (禁用)
{{ provider.is_active ? '已启用' : '已禁用' }}

暂无 AI 提供者配置


🎯 包包识别配置

配置 AI 识别包包属性时使用的固定模型,设置后图片包列表的"AI 识别"按钮将自动使用此配置。

✅ 当前启用: {{ activeInferenceConfig.provider_name || '未知提供者' }} {{ activeInferenceConfig.model_name }}

⚠️ 暂无启用的配置,请添加配置以使用 AI 识别功能

{{ config.provider_name || '未知提供者' }} → {{ config.model_name }}

创建时间:{{ new Date(config.created_at).toLocaleString() }}

{{ config.is_active ? '已启用' : '已禁用' }}

暂无 AI 识别配置


🖼️ 单图识别配置

配置 AI 识别单张图片时使用的固定模型,设置后图片列表中的"AI 识别"按钮将自动使用此配置。

✅ 当前启用: {{ activeImageInferenceConfig.provider_name || '未知提供者' }} {{ activeImageInferenceConfig.model_name }} | 并发: {{ activeImageInferenceConfig.max_concurrency || 10 }}

⚠️ 暂无启用的配置,请添加配置以使用 AI 单图识别功能

{{ config.provider_name || '未知提供者' }} → {{ config.model_name }} 并发: {{ config.max_concurrency || 10 }}

创建时间:{{ new Date(config.created_at).toLocaleString() }}

{{ config.is_active ? '已启用' : '已禁用' }}

暂无 AI 单图识别配置


💬 AI 助手配置

配置 AI 聊天助手使用的固定模型,设置后 AI 助手将自动使用此配置。

✅ 当前启用: {{ activeChatConfig.provider_name || '未知提供者' }} {{ activeChatConfig.model_name }}

⚠️ 暂无启用的配置,请添加配置以使用 AI 助手功能

{{ config.provider_name || '未知提供者' }} → {{ config.model_name }}

创建时间:{{ new Date(config.created_at).toLocaleString() }}

{{ config.is_active ? '已启用' : '已禁用' }}

暂无 AI 助手配置

{{ editingChatConfig ? '编辑 AI 助手配置' : '添加 AI 助手配置' }}

{{ editingImageInferenceConfig ? '编辑单图识别配置' : '添加单图识别配置' }}

批量推理和一键推理时的最大并发数量(1-50),建议 5-15

{{ editingInferenceConfig ? '编辑识别配置' : '添加识别配置' }}

📷 图片列表 - {{ selectedRecord?.archive_filename || '' }}

{{ img.filename }}
{{ img.folder_name }} {{ img.width }}x{{ img.height }}
颜色: {{ img.color.join(', ') }} {{ img.color }}
白底:{{ img.is_white_background ? '✓ 是' : '✗ 否' }}
模特:{{ img.is_model_photo ? '✓ 是' : '✗ 否' }}
内部:{{ img.is_internal ? '✓ 是' : '✗ 否' }}
文字:{{ img.has_text ? '✓ 有' : '✗ 无' }}
尺寸标注:{{ img.has_size_mark ? '✓ 有' : '✗ 无' }}

暂无图片

{{ editingProvider ? '编辑 AI 提供者' : '添加 AI 提供者' }}

唯一标识符,不能与其他提供者重复

兼容 OpenAI 格式的 API 地址

API Key 或访问令牌

远程浏览器控制

选择一个在线的工作机,查看其浏览器画面并进行远程操作

{{ remoteUrl }}
等待画面...

🖥️

选择工作机并连接以查看远程画面

🛒 SHEIN 授权管理

授权流程:

  1. 添加 SHEIN 开放平台的应用配置(APP_ID + APP_SecretKey)
  2. 点击"发起授权"生成授权链接,在浏览器中打开
  3. 商家登录 SHEIN 并同意授权后,系统自动完成密钥换取并创建店铺

应用配置

{{ app.name }}

APP_ID: {{ app.app_id }}

Secret: {{ app.app_secret_masked }}

环境: {{ app.environment === 'production' ? '生产' : '测试' }}

回调: {{ app.redirect_url }}

暂无应用配置

授权页面已在新窗口打开,请在 SHEIN 页面完成授权。

授权成功后系统将自动换取密钥并创建店铺。


已授权的 SHEIN 店铺

{{ shop.name }}

OpenKeyId: {{ shop.open_key_id }}

SecretKey: {{ shop.secret_key_status }} {{ shop.secret_key_masked }}

环境: {{ shop.environment === 'production' ? '生产' : '测试' }}

授权时间: {{ shop.authorized_at }}

{{ shop.status }}

基础信息

商品 & 库存

订单 & 履约

财务

查询中...

暂无已授权的 SHEIN 店铺

{{ {products:'商品列表', orders:'采购单', deliveries:'发货单', brands:'品牌列表', categories:'类目树', sites:'站点/货币', warehouses:'收货仓', 'store-info':'店铺信息', 'ip-list':'IP白名单', 'stock-goods':'备货信息', 'express-list':'物流产品', finance:'报账单', 'sync-categories':'类目同步结果', 'publish-standard':'发布规范', 'sync-attributes':'属性模板', 'transform-image':'图片转换', 'product-review':'审核结果'}[sheinQueryType] || '查询结果' }}

{{ JSON.stringify(sheinQueryResult, null, 2) }}

添加 SHEIN 应用配置

授权成功后 SHEIN 将重定向到此地址

🛍️ 亚马逊管理

使用说明:

  1. 在 Amazon Seller Central 创建 SP-API 应用,获取 LWA 凭证
  2. 在下方添加配置(填入 LWA App ID、Client Secret、Refresh Token)
  3. 点击"测试连接"验证凭证是否有效
  4. 连接成功后即可查询订单和库存数据

配置管理

{{ cfg.name }}

区域: {{ cfg.region }}

卖家 ID: {{ cfg.seller_id }}

Marketplace: {{ cfg.marketplace_id }}

LWA App ID: {{ cfg.lwa_app_id }}

Secret: {{ cfg.lwa_client_secret_masked }} | Token: {{ cfg.refresh_token_masked }}

{{ amazonTestResult.success ? '连接成功' : '连接失败' }}

{{ amazonTestResult.error }}

已授权的市场:

  • {{ p.country }} - {{ p.name }} ({{ p.marketplace_id }})

暂无配置,请点击"添加配置"


订单查询

订单号 状态 金额 币种 购买日期 渠道
{{ order.AmazonOrderId }} {{ order.OrderStatus }} {{ order.OrderTotal ? order.OrderTotal.Amount : '-' }} {{ order.OrderTotal ? order.OrderTotal.CurrencyCode : '-' }} {{ order.PurchaseDate ? new Date(order.PurchaseDate).toLocaleString() : '-' }} {{ order.FulfillmentChannel || '-' }}

共 {{ amazonOrders.length }} 条订单

暂无订单数据


FBA 库存查询

ASIN SKU 产品名称 可用库存 在途库存 总库存
{{ item.asin || '-' }} {{ item.sellerSku || '-' }} {{ item.productName || '-' }} {{ item.inventoryDetails ? item.inventoryDetails.fulfillableQuantity : (item.totalQuantity || 0) }} {{ item.inventoryDetails ? item.inventoryDetails.inboundShippedQuantity : 0 }} {{ item.totalQuantity || 0 }}

共 {{ amazonInventory.length }} 条库存记录

暂无库存数据

Amazon Advertising API 使用说明:

  1. 在 Login with Amazon 控制台获取 Client ID 和 Client Secret
  2. 点击「添加广告配置」填入 Client ID 和 Secret(Refresh Token 留空)
  3. 保存后点击「OAuth 授权」按钮 → 跳转亚马逊登录授权 → 自动获取并保存 Token
  4. 点击「获取 Profiles」发现可用的广告 Profile,选择后即可查询广告数据

广告 API 配置

{{ cfg.name }}

区域: {{ cfg.region }}

Client ID: {{ cfg.client_id }}

Profile ID: {{ cfg.profile_id || '未设置' }}

Secret: {{ cfg.client_secret_masked }} | Token: {{ cfg.refresh_token_masked }}

{{ amazonAdTestResult.success ? '连接成功' : '连接失败' }}

{{ amazonAdTestResult.error }}

API 返回 0 个 Profile。请确认该账号已开通广告服务,或尝试在 Amazon Advertising Console 中确认。

可用的广告 Profiles:

Profile ID国家类型名称操作
{{ p.profileId }} {{ p.countryCode }} {{ p.accountType }} {{ p.name }}

暂无广告配置,请点击"添加广告配置"


Sponsored Products 广告活动

{{ amazonAdCampaignType }} 广告活动 (共 {{ amazonAdCampaigns.length }} 个)

活动 ID 名称 状态 预算 投放类型 开始日期
{{ c.campaignId }} {{ c.name }} {{ c.state }} {{ c.budget ? (c.budget.budget || c.budget) : '-' }} {{ c.targetingType || c.dynamicBidding ? 'auto' : 'manual' }} {{ c.startDate || '-' }}

查询失败

{{ amazonAdCampaignError }}

暂无广告活动数据

{{ editingAmazonConfig ? '编辑' : '添加' }} Amazon 配置

留空则使用区域默认值

{{ editingAmazonAdConfig ? '编辑' : '添加' }} Amazon 广告配置

可先留空,创建后通过"获取 Profiles"按钮发现并选择

用户管理

用户名 姓名 邮箱 角色 状态 创建时间 操作
{{ u.username }} {{ u.full_name || '-' }} {{ u.email || '-' }} 超级管理员 普通用户 启用 禁用 {{ u.created_at ? u.created_at.slice(0,10) : '-' }}
暂无用户

{{ editingUser ? '编辑用户' : '新建用户' }}

🏷️ SHEIN 预发布

加载中...

暂无预发布记录

请在「图片包管理」中点击「🏷️ SHEIN预发布」创建

{{ pp.package_name || '未知包' }}

SPU: {{ pp.package_spu || '-' }} 店铺: {{ pp.shop_name || '-' }} {{ new Date(pp.created_at).toLocaleString() }}
{{ pp.package_title_en }}
草稿 已匹配类目 已匹配颜色 已选图 已上传 已推理属性 已发布 {{ pp.status }} {{ pp.color_count }}色 / {{ pp.image_count }}图
颜色: {{ c }}
类目匹配结果
{{ pp.category_match.category_name }} (ID: {{ pp.category_match.category_id }}, TypeID: {{ pp.category_match.product_type_id }})
{{ pp.category_match.reason }}
颜色匹配结果
{{ colorName }} {{ mapped.name }}
选图结果
加载中...
{{ cs.color_name }} — {{ cs.images.length }} 张图片
T5 方图
{{ img.is_hero ? '⭐T1' : 'T2' }} {{ ppRoleName(img.role) }}
T6 色块

发布属性预览

基本信息

SPU编码: {{ ppPreviewData.preview.supplier_code }}
标题: {{ ppPreviewData.preview.title }}
类目ID: {{ ppPreviewData.preview.category_id }}
商品类型ID: {{ ppPreviewData.preview.product_type_id }}
成本价: ¥{{ ppPreviewData.preview.base_cost || 0 }}
供货价 ({{ ppPreviewData.preview.currency }}): (成本+4)
库存数量:
颜色属性ID: {{ ppPreviewData.preview.color_attribute_id }}

商品属性 ({{ ppPreviewData.preview.attributes.length }} 项)

属性名 来源
{{ a.name }} {{ a.value_name }} {{ a.source }}

规格信息

主规格: {{ ppPreviewData.preview.spec_info.main_sale_attr.name }} (id={{ ppPreviewData.preview.spec_info.main_sale_attr.id }})
次规格: {{ s.name }} (id={{ s.id }}, status={{ s.status }})
无次规格

发布颜色 ({{ ppPreviewData.preview.color_details.filter(c => c.selected).length }} / {{ ppPreviewData.preview.color_details.length }})

无图
{{ cd.color_name }}
→ {{ cd.shein_color_name }}
{{ cd.image_count }} 张图

正在生成预览...

📦 SHEIN 备货管理

{{ sheinStockMessage }}
📦

SHEIN 备货管理

选择店铺后点击「生成每日备货单」或「生成排产单」

每日备货单: 备货+急采 → Excel双Sheet  |  排产单: 含图片,系数可调

💬 AI 助手

✅ {{ activeChatConfig.provider_name }} → {{ activeChatConfig.model_name }} ⚠️ 未配置模型,点击前往设置
🤖
你好!我是 AI 助手
我可以帮你查询图片包、分析产品、创建产品等
{{ chatStatusText }}
📎 {{ chatUploadFile.name }} ({{ (chatUploadFile.size / 1024 / 1024).toFixed(2) }} MB)