diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 6e60483..e9d4c37 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -440,7 +440,7 @@ export default function App() { // 命令面板条目:口令(发对话)/ 面板(布局开关)/ 视图(视口切换) const paletteItems: PaletteItem[] = [ ...[ - '多策略方案对比', '试排一版交期优先', '产能均衡重排', '建一个检查点', + '多策略方案对比', '生成一版交期优先试排方案', '产能均衡重排', '建一个检查点', '回滚到上一个检查点', '查看冲突', '标出超期订单', '查看当前KPI', '发布当前排产版本', ].map(q => ({ id: `cmd-${q}`, kind: '口令' as const, label: q, hint: '发送到对话', diff --git a/apps/web/src/auth/AuthGate.tsx b/apps/web/src/auth/AuthGate.tsx index 9a8a75d..5fab021 100644 --- a/apps/web/src/auth/AuthGate.tsx +++ b/apps/web/src/auth/AuthGate.tsx @@ -168,11 +168,11 @@ function GuestWorkspace() {
IB -

今天想先忙哪件事?

+

请选择要处理的任务

); @@ -94,13 +105,13 @@ export interface ChatHandle { } const QUICK = [ - '跑一版柔性排产', '瓶颈产能', 'PDU 500套什么时候能交', + '生成一版柔性排产方案', '瓶颈产能', 'PDU 500 套交期评估', '新建订单 客户 示例客户 产品 请替换为真实料号 数量 120 交期 8月20日', '新建物料 编码 SCR-NEW 名称 不锈钢螺丝 类型 原料 库存 800', '导入订单\n客户A,成品料号,200,2026-08-01,VIP\n客户 客户B 产品 成品料号 数量 100 交期 8月15日', '导入物料\nSCR-NEW,不锈钢螺丝,原料,包,800\nPCB-X,试验板,原料,块,200', '追溯订单依据', '分解全部订单', '主数据录入顺序有什么规定', - '多策略方案对比', '试排一版交期优先', '产能均衡重排', + '多策略方案对比', '生成一版交期优先试排方案', '产能均衡重排', '换线有什么规定', '生成排产方案报告', '生成日报', '生成版本对比报告', '建一个检查点', '回滚到上一个检查点', '只看VIP订单', '标出超期订单', '查看冲突', @@ -238,7 +249,7 @@ const ChatPanel = forwardRef ({ ...m, blocks: [...(m.blocks ?? []), ev.block] })); - else if (ev.type === 'error') patchLast(m => ({ ...m, text: m.text + '\n⚠ ' + ev.message })); + else if (ev.type === 'error') patchLast(m => ({ ...m, text: m.text + '\n\n**操作未完成**:' + ev.message })); else if (ev.type === 'done') { patchLast(m => ({ ...m, @@ -284,7 +295,7 @@ const ChatPanel = forwardRef patchLast(m => ({ ...m, text: m.text + '\n⚠ 连接失败,请确认后端已启动。', streaming: false }))); + }, hist).catch(() => patchLast(m => ({ ...m, text: m.text + '\n\n**连接未完成**:服务暂时不可用,请稍后重试。', streaming: false }))); setBusy(false); }, [busy, patchLast, props]); @@ -385,7 +396,7 @@ const ChatPanel = forwardRef setListening(false); recognitionRef.current = recognition; - setVoiceNotice('正在听,请说出排产要求或主数据说明。'); + setVoiceNotice('正在监听,请说明排产目标或主数据变更。'); setListening(true); recognition.start(); }, [autoGrow, listening]); @@ -394,7 +405,7 @@ const ChatPanel = forwardRef { const result = await postConfirm(sessionRef.current, confirmId, approve) - .catch(() => ({ message: '确认请求失败', refresh: false })); + .catch(() => ({ message: '确认操作未完成,数据未修改。', refresh: false })); setMsgs(ms => [...ms, { role: 'agent', text: result.message }]); if (result.refresh) props.onWorldRefresh(); return result; @@ -402,7 +413,7 @@ const ChatPanel = forwardRef { const result = await postScenarioApply(sessionRef.current, card.strategy, card.engine) - .catch(() => ({ message: '采用失败,请确认后端已启动', refresh: false })); + .catch(() => ({ message: '方案未采用,数据未修改。请稍后重试。', refresh: false })); setMsgs(ms => [...ms, { role: 'agent', text: result.message || `已采用【${card.label}】` }]); if (result.refresh) props.onWorldRefresh(); }, [props]); @@ -498,7 +509,7 @@ const ChatPanel = forwardRef : 正在处理…) : <>{m.text}{m.streaming ? '▍' : ''}} - {m.intent && !m.streaming && ( + {SHOW_INTENT_DEBUG && m.intent && !m.streaming && (
调试信息
{JSON.stringify(m.intent, null, 2)}
@@ -649,7 +660,7 @@ const ChatPanel = forwardRef