⚠ 页面加载失败

请尝试: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 个文件

{{ packageTotal }}
总记录数
{{ 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 }}
图片总数
{{ packages.filter(p => p.ai_analyzed && getPackageValidation(p).status === 'incomplete').length }}
数据不完整
加载中...

{{ record.archive_filename }}

供应商:{{ record.supplier }} 型号:{{ record.model }} 价格:¥{{ record.price }}
{{ record.status }} ✓ 完整 缺 {{ getPackageValidation(record).missingFields.length }} 项
已创建: {{ 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) | 单图识别:{{ record.image_inferred_count }}/{{ record.image_count }}
AI 建议标题: {{ record.ai_content.title }}
{{ new Date(record.created_at).toLocaleString() }}

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

共 {{ packageTotal }} 条,第 {{ packagePage }}/{{ Math.ceil(packageTotal / packagePageSize) }} 页
{{ packagePage }}

🔄 批量推理进行中

{{ 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 ? '编辑店铺' : '添加店铺' }}

TikTok 全托管登录信息

浏览器数据目录自动管理:server/playwright_data/{店铺ID}/

任务列表

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 || '' }}

✓ 已识别:{{ selectedPackageImages.filter(i => getImageValidation(i).status === 'complete').length }} ○ 未识别:{{ selectedPackageImages.filter(i => getImageValidation(i).status !== 'complete').length }} | 🎨 颜色参考图已标记 ⚠ 缺少颜色参考图
{{ 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 ? '编辑用户' : '新建用户' }}

💬 飞书机器人配置

{{ feishuStatus.connected ? '🟢' : '⚪' }}
{{ feishuStatus.connected ? '机器人已连接' : '机器人未连接' }}
Bot Open ID: {{ feishuStatus.bot_open_id }}
{{ cfg.name }}
App ID: {{ cfg.app_id }} Secret: {{ cfg.app_secret }}
创建于 {{ cfg.created_at ? cfg.created_at.slice(0, 10) : '-' }}
已启用 已禁用
💬

还没有飞书机器人配置

点击右上角「添加配置」开始

📋 飞书用户映射

飞书名称 飞书 Open ID 系统用户 绑定时间
{{ m.feishu_name || '-' }} {{ m.feishu_open_id }} {{ m.system_username }} ({{ m.system_full_name }}) {{ m.created_at ? m.created_at.slice(0, 10) : '-' }}

{{ editingFeishuConfig ? '编辑飞书配置' : '添加飞书配置' }}

提示:飞书开放平台创建自建应用, 开通权限:im:message、im:message.receive_v1、im:resource、cardkit:card。 使用 WebSocket 连接无需公网 IP。

🏷️ SHEIN 预发布

已选 {{ prePublishSelected.length }} 项:
{{ batchProgress.message }} {{ batchProgress.current }}/{{ batchProgress.total }}
加载中...

暂无预发布记录

请在「图片包管理」中点击「🏷️ 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 备货管理

📝 备货单下单

{{ g.supplier_code }}
{{ g.spu_name }} | SKU: {{ (g.sku_list||[]).length }}个
{{ item.supplier_code }}
SKC: {{ item.skc }}
搜索并添加要下单的商品
{{ createOrderMessage }}

🏷️ 打印商品条码

每行一个供方货号(即商家SKU编码 supplierSku)

{{ barcodeError }}

{{ barcodePrinted ? '✅ 条码已发送打印' : '✅ 条码 PDF 已生成' }}

📄 点击下载/打印 PDF

本地: {{ barcodePdfPath }}

{{ sheinStockMessage }}
📦

SHEIN 备货管理

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

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

🎵 TikTok 预发布

暂无 TikTok 预发布记录

请在「图片包管理」中点击「🎵 TikTok预发布」创建

{{ pp.title || '(未命名)' }} {{ {draft:'草稿',category_matched:'已匹配类目',color_matched:'已匹配颜色',images_selected:'已选图',ready:'待发布',publishing:'发布中',published:'已发布',failed:'失败'}[pp.status] || pp.status }}
📦 {{ pp.package_name }}  |  类目: {{ pp.category || '(待匹配)' }}  |  颜色: {{ pp.color_count }}个 ({{ pp.colors_display.join(', ') }})  |  图片: {{ pp.image_count }}张  |  店铺: {{ pp.shop_name }}
错误: {{ pp.publish_error }}
创建: {{ pp.created_at ? new Date(pp.created_at).toLocaleString() : '' }}  |  发布: {{ new Date(pp.published_at).toLocaleString() }}

{{ tikTokForm.id ? '编辑' : '新建' }} TikTok 预发布

请先添加颜色变体
{{ c.color || '颜色 ' + (idx+1) }}

⏰ 定时任务

任务名称 任务类型 频率 执行时间 选项 状态 上次执行 下次执行 操作
{{ st.name }} {{ scheduledTaskTypeLabel(st.task_type) }} {{ st.frequency === 'daily' ? '每天' : '单次' }} {{ st.execute_time }} 🖨️ 打印 -
{{ new Date(st.last_run_at).toLocaleString() }} {{ st.last_run_status === 'success' ? '✓成功' : st.last_run_status === 'failed' ? '✗失败' : '⏳执行中' }}
未执行
{{ st.next_run_at ? new Date(st.next_run_at).toLocaleString() : '-' }}

暂无定时任务,点击右上角「新建定时任务」

最近执行记录

{{ st.name }} {{ st.last_run_at ? new Date(st.last_run_at).toLocaleString() : '' }}
{{ st.last_run_message }}

{{ editingScheduledTask ? '编辑定时任务' : '新建定时任务' }}

任务选项

💬 AI 助手

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