|
|
@@ -175,7 +175,13 @@ type SheetTab = 'task' | 'file' | 'deliver' | 'state';
|
|
|
/>
|
|
|
}
|
|
|
@case ('empty') {
|
|
|
- @if (chat.emptyReason() === 'removed') {
|
|
|
+ @if (preparingRoom()) {
|
|
|
+ <!-- 新建会话建房间中(2026-11-13):给出明确反馈,避免「点了没反应」 -->
|
|
|
+ <div class="m-loading" role="status" aria-live="polite" aria-label="正在准备会话">
|
|
|
+ <span class="m-typing"><i></i><i></i><i></i></span>
|
|
|
+ <p class="m-loading-text">正在准备会话…</p>
|
|
|
+ </div>
|
|
|
+ } @else if (chat.emptyReason() === 'removed') {
|
|
|
<!-- 已软删会话(2026-11-09 用户裁决):URL 直达也不认领 -->
|
|
|
<app-m-empty
|
|
|
icon="fa-solid fa-trash-can"
|
|
|
@@ -596,8 +602,15 @@ type SheetTab = 'task' | 'file' | 'deliver' | 'state';
|
|
|
.m-loading {
|
|
|
display: grid;
|
|
|
place-items: center;
|
|
|
+ gap: var(--sp-3);
|
|
|
padding: var(--sp-8);
|
|
|
}
|
|
|
+ /* 建会话/加载中的说明文字(2026-11-13) */
|
|
|
+ .m-loading-text {
|
|
|
+ margin: 0;
|
|
|
+ font-size: var(--fs-13);
|
|
|
+ color: var(--muted);
|
|
|
+ }
|
|
|
.m-typing {
|
|
|
display: inline-flex;
|
|
|
gap: 4px;
|
|
|
@@ -888,6 +901,15 @@ export class MbChatPage implements OnDestroy {
|
|
|
protected readonly sheetOpen = signal(false);
|
|
|
/** 图片走灯箱 */
|
|
|
protected readonly lightbox = signal<{ url: string; name: string; size: number } | null>(null);
|
|
|
+ /**
|
|
|
+ * 正在为新建会话开独立房间(2026-11-13)。
|
|
|
+ *
|
|
|
+ * 🔴 桌面端在「新建对话」弹窗里显示「正在准备会话…」,移动端没有对应位置 ——
|
|
|
+ * 点选容器后面板立刻关闭,要等 0.6~0.7 秒建房完成才跳转,
|
|
|
+ * 这段时间屏幕上什么都没发生,用户以为点了没反应(真机实测反馈)。
|
|
|
+ * 这里在会话页给出明确反馈。
|
|
|
+ */
|
|
|
+ protected readonly preparingRoom = signal(false);
|
|
|
/** 其余文件走全屏预览 */
|
|
|
protected readonly preview = signal<{ url: string; name: string; mimeType: string } | null>(null);
|
|
|
protected readonly sheetTab = signal<SheetTab>('task');
|
|
|
@@ -1399,7 +1421,13 @@ export class MbChatPage implements OnDestroy {
|
|
|
if (sessionId === 'new') {
|
|
|
const ws = this.route.snapshot.queryParamMap.get('ws');
|
|
|
/* 一房间一会话:建房完成后再进入(2026-11-12,与桌面端同口径) */
|
|
|
- const created = await this.chat.startBlankWithRoom(agentId, ws || null);
|
|
|
+ this.preparingRoom.set(true);
|
|
|
+ let created: Awaited<ReturnType<typeof this.chat.startBlankWithRoom>> = null;
|
|
|
+ try {
|
|
|
+ created = await this.chat.startBlankWithRoom(agentId, ws || null);
|
|
|
+ } finally {
|
|
|
+ this.preparingRoom.set(false);
|
|
|
+ }
|
|
|
if (created) {
|
|
|
/*
|
|
|
* 首页输入坞带过来的草稿(2026-11-09):用户先在首页打字、再选人,
|