From 3b710020fe4e43791a2cc83f6b8552e772d73e0e Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Sat, 4 Apr 2026 19:47:17 +0800 Subject: [PATCH] feat(chat): add randomized summary loaders in minimal mode --- static/src/components/chat/MinimalBlocks.vue | 203 ++++++++++++------ .../chat/loaders/BouncingSquaresLoader.vue | 57 +++++ .../chat/loaders/DualChaseLoader.vue | 71 ++++++ .../chat/loaders/FiveSquaresLoader.vue | 107 +++++++++ .../chat/loaders/NineGridLoader.vue | 197 +++++++++++++++++ .../components/chat/loaders/RippleLoader.vue | 84 ++++++++ .../chat/loaders/RotatingSquaresLoader.vue | 83 +++++++ .../chat/loaders/SquareGridLoader.vue | 95 ++++++++ static/src/components/chat/loaders/index.ts | 25 +++ 9 files changed, 859 insertions(+), 63 deletions(-) create mode 100644 static/src/components/chat/loaders/BouncingSquaresLoader.vue create mode 100644 static/src/components/chat/loaders/DualChaseLoader.vue create mode 100644 static/src/components/chat/loaders/FiveSquaresLoader.vue create mode 100644 static/src/components/chat/loaders/NineGridLoader.vue create mode 100644 static/src/components/chat/loaders/RippleLoader.vue create mode 100644 static/src/components/chat/loaders/RotatingSquaresLoader.vue create mode 100644 static/src/components/chat/loaders/SquareGridLoader.vue create mode 100644 static/src/components/chat/loaders/index.ts diff --git a/static/src/components/chat/MinimalBlocks.vue b/static/src/components/chat/MinimalBlocks.vue index 269e346..a326fa2 100644 --- a/static/src/components/chat/MinimalBlocks.vue +++ b/static/src/components/chat/MinimalBlocks.vue @@ -1,12 +1,5 @@ - - - - {{ letter }} - - - @@ -20,9 +13,14 @@ {{ getSummaryPreview(group.actions) }} - - - + + + + + + + + @@ -78,9 +76,10 @@ + + diff --git a/static/src/components/chat/loaders/DualChaseLoader.vue b/static/src/components/chat/loaders/DualChaseLoader.vue new file mode 100644 index 0000000..f2bb5fa --- /dev/null +++ b/static/src/components/chat/loaders/DualChaseLoader.vue @@ -0,0 +1,71 @@ + + + + + + + diff --git a/static/src/components/chat/loaders/FiveSquaresLoader.vue b/static/src/components/chat/loaders/FiveSquaresLoader.vue new file mode 100644 index 0000000..ee202d8 --- /dev/null +++ b/static/src/components/chat/loaders/FiveSquaresLoader.vue @@ -0,0 +1,107 @@ + + + + + + + + + + + + + diff --git a/static/src/components/chat/loaders/NineGridLoader.vue b/static/src/components/chat/loaders/NineGridLoader.vue new file mode 100644 index 0000000..81294c2 --- /dev/null +++ b/static/src/components/chat/loaders/NineGridLoader.vue @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + diff --git a/static/src/components/chat/loaders/RippleLoader.vue b/static/src/components/chat/loaders/RippleLoader.vue new file mode 100644 index 0000000..dd44af1 --- /dev/null +++ b/static/src/components/chat/loaders/RippleLoader.vue @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + diff --git a/static/src/components/chat/loaders/RotatingSquaresLoader.vue b/static/src/components/chat/loaders/RotatingSquaresLoader.vue new file mode 100644 index 0000000..20fa266 --- /dev/null +++ b/static/src/components/chat/loaders/RotatingSquaresLoader.vue @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + diff --git a/static/src/components/chat/loaders/SquareGridLoader.vue b/static/src/components/chat/loaders/SquareGridLoader.vue new file mode 100644 index 0000000..e262971 --- /dev/null +++ b/static/src/components/chat/loaders/SquareGridLoader.vue @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + diff --git a/static/src/components/chat/loaders/index.ts b/static/src/components/chat/loaders/index.ts new file mode 100644 index 0000000..af30df3 --- /dev/null +++ b/static/src/components/chat/loaders/index.ts @@ -0,0 +1,25 @@ +import { Component } from 'vue'; +import SquareGridLoader from './SquareGridLoader.vue'; +import RotatingSquaresLoader from './RotatingSquaresLoader.vue'; +import DualChaseLoader from './DualChaseLoader.vue'; +import BouncingSquaresLoader from './BouncingSquaresLoader.vue'; +import FiveSquaresLoader from './FiveSquaresLoader.vue'; +import NineGridLoader from './NineGridLoader.vue'; +import RippleLoader from './RippleLoader.vue'; + +// 加载动画池 +export const loaderPool: Component[] = [ + SquareGridLoader, + RotatingSquaresLoader, + DualChaseLoader, + BouncingSquaresLoader, + FiveSquaresLoader, + NineGridLoader, + RippleLoader +]; + +// 随机获取一个加载动画 +export function getRandomLoader(): Component { + const randomIndex = Math.floor(Math.random() * loaderPool.length); + return loaderPool[randomIndex]; +}