mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 15:36:49 +08:00
feat: 更新 AgentAssistantWidget 组件的空状态样式和文本内容
This commit is contained in:
@@ -493,8 +493,11 @@ onScopeDispose(() => {
|
|||||||
|
|
||||||
<main ref="messageListRef" class="agent-assistant-messages">
|
<main ref="messageListRef" class="agent-assistant-messages">
|
||||||
<div v-if="!hasMessages" class="agent-assistant-empty">
|
<div v-if="!hasMessages" class="agent-assistant-empty">
|
||||||
<VIcon icon="mdi-creation-outline" size="34" />
|
<div class="agent-assistant-empty__mark">
|
||||||
<div class="text-subtitle-2 mt-3">{{ t('agentAssistant.emptyTitle') }}</div>
|
<VIcon icon="lucide:sparkles" size="28" />
|
||||||
|
</div>
|
||||||
|
<div class="agent-assistant-empty__title">{{ t('agentAssistant.emptyTitle') }}</div>
|
||||||
|
<div class="agent-assistant-empty__subtitle">{{ t('agentAssistant.emptySubtitle') }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -630,7 +633,7 @@ onScopeDispose(() => {
|
|||||||
|
|
||||||
.agent-assistant-fab {
|
.agent-assistant-fab {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: 2100;
|
z-index: 1000;
|
||||||
display: grid;
|
display: grid;
|
||||||
border: 1px solid rgba(var(--v-theme-on-surface), 0.08);
|
border: 1px solid rgba(var(--v-theme-on-surface), 0.08);
|
||||||
border-radius: 999px 0 0 999px;
|
border-radius: 999px 0 0 999px;
|
||||||
@@ -644,7 +647,7 @@ onScopeDispose(() => {
|
|||||||
inset-block-start: 50%;
|
inset-block-start: 50%;
|
||||||
inset-inline-end: 0;
|
inset-inline-end: 0;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
transform: translate(1.35rem, -50%);
|
transform: translate(1rem, -50%);
|
||||||
transition:
|
transition:
|
||||||
inset-inline-end 0.2s ease,
|
inset-inline-end 0.2s ease,
|
||||||
transform 0.18s ease,
|
transform 0.18s ease,
|
||||||
@@ -724,13 +727,46 @@ onScopeDispose(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.agent-assistant-empty {
|
.agent-assistant-empty {
|
||||||
display: grid;
|
display: flex;
|
||||||
color: rgba(var(--v-theme-on-surface), 0.58);
|
flex-direction: column;
|
||||||
min-block-size: 55%;
|
align-items: center;
|
||||||
place-content: center;
|
justify-content: center;
|
||||||
|
color: rgba(var(--v-theme-on-surface), 0.7);
|
||||||
|
min-block-size: 100%;
|
||||||
|
padding-block: 2rem 1.25rem;
|
||||||
|
padding-inline: 0.25rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent-assistant-empty__mark {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: 1px solid rgba(var(--v-theme-primary), 0.18);
|
||||||
|
border-radius: 8px;
|
||||||
|
background: rgba(var(--v-theme-primary), 0.1);
|
||||||
|
block-size: 3.75rem;
|
||||||
|
box-shadow: inset 0 1px 0 rgba(var(--v-theme-on-primary), 0.1);
|
||||||
|
color: rgb(var(--v-theme-primary));
|
||||||
|
inline-size: 3.75rem;
|
||||||
|
margin-block-end: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.agent-assistant-empty__title {
|
||||||
|
color: rgba(var(--v-theme-on-surface), 0.9);
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1.35;
|
||||||
|
}
|
||||||
|
|
||||||
|
.agent-assistant-empty__subtitle {
|
||||||
|
color: rgba(var(--v-theme-on-surface), 0.58);
|
||||||
|
font-size: 0.86rem;
|
||||||
|
line-height: 1.55;
|
||||||
|
margin-block-start: 0.4rem;
|
||||||
|
max-inline-size: 21rem;
|
||||||
|
}
|
||||||
|
|
||||||
.agent-assistant-message {
|
.agent-assistant-message {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -1013,13 +1049,9 @@ onScopeDispose(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (width <= 600px) {
|
@media (width <= 600px) {
|
||||||
.agent-assistant-fab {
|
.agent-assistant-empty {
|
||||||
inset-block: auto max(5rem, calc(env(safe-area-inset-bottom, 0px) + 5rem));
|
justify-content: flex-start;
|
||||||
transform: translateX(1.35rem);
|
padding-block-start: 2.75rem;
|
||||||
}
|
|
||||||
|
|
||||||
.agent-assistant-fab:hover {
|
|
||||||
transform: translateX(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent-assistant-messages {
|
.agent-assistant-messages {
|
||||||
|
|||||||
@@ -703,7 +703,8 @@ export default {
|
|||||||
ready: 'Ready',
|
ready: 'Ready',
|
||||||
thinking: 'Thinking',
|
thinking: 'Thinking',
|
||||||
newChat: 'New Chat',
|
newChat: 'New Chat',
|
||||||
emptyTitle: 'Ask about sites, subscriptions, downloads, or organization tasks',
|
emptyTitle: 'What should we handle today?',
|
||||||
|
emptySubtitle: 'Ask about sites, subscriptions, downloads, or organization tasks.',
|
||||||
placeholder: 'Ask MoviePilot...',
|
placeholder: 'Ask MoviePilot...',
|
||||||
stop: 'Stop generating',
|
stop: 'Stop generating',
|
||||||
download: 'Download',
|
download: 'Download',
|
||||||
|
|||||||
@@ -699,7 +699,8 @@ export default {
|
|||||||
ready: '随时待命',
|
ready: '随时待命',
|
||||||
thinking: '思考中',
|
thinking: '思考中',
|
||||||
newChat: '新会话',
|
newChat: '新会话',
|
||||||
emptyTitle: '可以直接询问站点、订阅、下载和整理任务',
|
emptyTitle: '今天想处理什么?',
|
||||||
|
emptySubtitle: '站点、订阅、下载、整理任务,都可以直接问我。',
|
||||||
placeholder: '询问 MoviePilot...',
|
placeholder: '询问 MoviePilot...',
|
||||||
stop: '停止生成',
|
stop: '停止生成',
|
||||||
download: '下载',
|
download: '下载',
|
||||||
|
|||||||
@@ -699,7 +699,8 @@ export default {
|
|||||||
ready: '隨時待命',
|
ready: '隨時待命',
|
||||||
thinking: '思考中',
|
thinking: '思考中',
|
||||||
newChat: '新會話',
|
newChat: '新會話',
|
||||||
emptyTitle: '可以直接詢問站點、訂閱、下載和整理任務',
|
emptyTitle: '今天想處理什麼?',
|
||||||
|
emptySubtitle: '站點、訂閱、下載、整理任務,都可以直接問我。',
|
||||||
placeholder: '詢問 MoviePilot...',
|
placeholder: '詢問 MoviePilot...',
|
||||||
stop: '停止生成',
|
stop: '停止生成',
|
||||||
download: '下載',
|
download: '下載',
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useToast } from 'vue-toastification'
|
import { useToast } from 'vue-toastification'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
|
import { useGlobalSettingsStore } from '@/stores'
|
||||||
import { DownloaderConf, MediaServerConf } from '@/api/types'
|
import { DownloaderConf, MediaServerConf } from '@/api/types'
|
||||||
import DownloaderCard from '@/components/cards/DownloaderCard.vue'
|
import DownloaderCard from '@/components/cards/DownloaderCard.vue'
|
||||||
import MediaServerCard from '@/components/cards/MediaServerCard.vue'
|
import MediaServerCard from '@/components/cards/MediaServerCard.vue'
|
||||||
@@ -17,6 +18,7 @@ const display = useDisplay()
|
|||||||
const theme = useTheme()
|
const theme = useTheme()
|
||||||
|
|
||||||
const isTransparentTheme = computed(() => theme.name.value === 'transparent')
|
const isTransparentTheme = computed(() => theme.name.value === 'transparent')
|
||||||
|
const globalSettingsStore = useGlobalSettingsStore()
|
||||||
|
|
||||||
// 国际化
|
// 国际化
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
|
|||||||
Reference in New Issue
Block a user