diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/.gitignore b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/.gitignore new file mode 100644 index 00000000..f4e2c6d6 --- /dev/null +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +*.tsbuildinfo diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/index.html b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/index.html new file mode 100644 index 00000000..43bb0d5a --- /dev/null +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/index.html @@ -0,0 +1,21 @@ + + +
+ + +正在读取业务过程...
+ ) : businessTimeline.length === 0 ? ( +暂无业务过程。重新执行本任务后会显示处理进展。
+ ) : ( +任务完成后,这里会显示结果摘要和产物入口。
+ )} +正在读取执行情况...
: null} + {mission.steps.length === 0 ? ( +暂无步骤进展
+ ) : ( + mission.steps.map((step, i) => ( +暂无事件日志
+ )} +会话读取失败:{sessionError}
+ ) : sessionLoading ? ( +正在读取会话...
+ ) : sessionMessages.length === 0 ? ( +暂无会话消息。
+ ) : ( +{displayBackendMessage(message.content, message.content)}
+暂无原始任务记录
+ ) : ( + tasks.map((task) => { + const taskRuns = runsByTask.get(task.task_id) || []; + const latestRun = taskRuns[0]; + return ( +默认隐藏排障信息;需要排障时可展开。
+ )} +业务目标:{mission.objective}
+ )} +{planItem.summary}
+暂无任务,首页不会再展示硬编码任务。
+ ) : visibleTaskItems.length === 0 ? ( +当前筛选下暂无任务,点击总任务查看全部内容。
+ ) : ( + visibleTaskItems.map((planItem) => ( +{bubbleText}
+ +左侧选择任务后,这里会按任务生成执行次数和成功情况。
+ ) : ( + taskSummaryCards.map((summary) => ( + + )) + )} +任务执行后,这里会滚动显示每个步骤的时间、任务、步骤和结果。
+ ) : ( + visibleRunDetails.map((detail) => ( + + )) + )} +{dailyReport?.summary ?? '点击生成日报后,AI 会基于当天所有任务写出总分结构日报。'}
+ {(dailyReport?.detail_lines ?? []).slice(0, 3).map((line) =>{line}
)} +{selectedDateLabel} 生成时间 {dailyReport.report_schedule_time},来源:{dailyReport.generated_by === 'ai' ? 'AI 生成' : '规则兜底'}
+当前日报暂无可预览文字。
+ ) : ( + reportPreviewLines.map((line, index) => ( +{line}
+ )) + )} +维护数字员工在首页展示的姓名、单位、岗位和当前状态。
+这条记录已被锁定,滚动不会把它刷掉。
+{eventBusinessResult(selectedEvent)}
+当前日期共 {allEvents.length} 条记录,本窗口展示最新 {Math.min(filteredHistoryEvents.length, EVENT_HISTORY_RENDER_LIMIT)} 条。
+当前筛选下没有执行记录。
+ ) : ( + visibleHistoryEvents.map((event) => ( + + )) + )} +定时会把任务注册到后端调度链路,每天按设置时间自动派发。
+{schedulePlanItem.title}
+确认后立即创建并派发任务步骤,不需要先进入任务中心设置。
+{executePlanItem.title}
+像值班员早上交接一样,先确认日期和执行内容,再让数字员工开始接单、外呼、汇总和汇报。
+{step.body}
+暂无任务,首页不再展示硬编码任务。请先在任务中心创建或同步。
+ ) : ( + planItems.map((planItem) => renderDutyChecklistCard(planItem, 'guide')) + )} +像员工早上确认工作一样,勾选今天要执行的内容,必要时进入详情或处理待决策事项。
+暂无任务,首页不会显示硬编码任务。可进入任务中心创建。
+ ) : ( + planItems.map((planItem) => renderDutyChecklistCard(planItem, 'manager')) + )} +今天还没有可汇总的任务。
; + } + + return ( +任务执行后,这里会展示时间、任务、步骤和执行情况。
; + } + + return ( +{reportSourceText(report)}
+{report?.summary || '点击生成日报后,AI 会基于当天所有任务写出总分结构日报。'}
+ {sourceNotice ?{sourceNotice}
: null} +计划生成时间:{reportScheduleTime};最近生成:{formatGeneratedAt(report?.generated_at)}
+ {message ?{message}
: null} +生成日报后会展示 AI 整理后的分项说明。
+ ) : ( +{line}
)} +{missionNotice.planId}}
+ {t('console.state.backendDown')}
+ ) : displayMissions.length === 0 ? ( +这个日期没有匹配到任务记录,演示时可以切回演示日期,或临时查看全部任务。
+后天演示建议先从左侧选择“自动外呼现场人员”或“接收约时工单”,让领导看到数字员工不是静态页面,而是在按流程接活、执行、反馈。
+选择日常协作身份,数字员工会按你的岗位重点调整提醒和汇总口径。
+默认隐藏,仅供技术人员排查使用。当前角色刷新阈值:{Math.round(profile.staleDataThresholdMs / 1000)} 秒。
+{getOutcome(skill)}
+{section.hint}
+{section.emptyText}
+ ) : ( +服务暂不可用,已保留本地示例供预览。
+ ) : filtered.length === 0 && skills.length > 0 ? ( +无匹配技能,请调整搜索或筛选条件
+ ) : filtered.length === 0 ? ( +暂无可展示的学习技能。
+ ) : ( +