feat(web): 工作台 AI 模式与差旅/风险建议交互优化
- 新增 PersonalWorkbenchAiMode 组件、AI 侧边栏与 orb 机器人视觉资源 - 新增 aiApplicationDraftModel / aiExpenseDraftModel / aiWorkbenchConversationStore 及业务准入 aiSidebarBusinessAccess,支撑 AI 模式下的申请与报销草稿 - 顶栏、侧边栏、工作台样式重构,适配 AI 模式切换与响应式布局 - 同步 steward plan/off_topic、差旅报销引导流、风险建议卡片等测试
This commit is contained in:
@@ -13,14 +13,20 @@ const sidebar = readFileSync(
|
||||
'utf8'
|
||||
)
|
||||
|
||||
const sidebarStyles = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/components/sidebar-rail.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
|
||||
const appStyles = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/app.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
|
||||
test('sidebar supports smooth animated collapsed layout', () => {
|
||||
assert.match(appShell, /sidebarCollapsed = ref\(true\)/)
|
||||
assert.match(appShell, /:class="\{ 'sidebar-collapsed': sidebarCollapsed \}"/)
|
||||
assert.match(appShell, /sidebarCollapsed = ref\(false\)/)
|
||||
assert.match(appShell, /'sidebar-collapsed': sidebarCollapsed/)
|
||||
assert.match(appShell, /'workbench-ai-sidebar-active': isAiShellMode/)
|
||||
assert.match(appShell, /:collapsed="sidebarCollapsed"/)
|
||||
assert.match(appShell, /class="app-sidebar"/)
|
||||
assert.match(appShell, /@toggle-collapse="toggleSidebarCollapsed"/)
|
||||
@@ -32,9 +38,15 @@ test('sidebar supports smooth animated collapsed layout', () => {
|
||||
assert.match(sidebar, /rail-collapsed/)
|
||||
assert.match(sidebar, /折叠侧边栏/)
|
||||
assert.match(sidebar, /展开侧边栏/)
|
||||
assert.match(sidebar, /--rail-motion-duration: 320ms/)
|
||||
assert.match(sidebar, /opacity var\(--rail-fade-duration\)/)
|
||||
assert.match(sidebar, /class="user-actions"/)
|
||||
assert.match(sidebar, /class="user-action user-logout"/)
|
||||
assert.doesNotMatch(sidebar, /mdi-chevron-up/)
|
||||
assert.match(sidebarStyles, /--rail-motion-duration: 220ms/)
|
||||
assert.match(sidebarStyles, /opacity var\(--rail-fade-duration\)/)
|
||||
assert.match(sidebarStyles, /\.rail-user\s*\{[\s\S]*height:\s*72px;[\s\S]*grid-template-columns:\s*42px minmax\(0,\s*1fr\) 44px;/)
|
||||
assert.match(sidebarStyles, /\.user-actions\s*\{[\s\S]*grid-template-columns:\s*44px;/)
|
||||
|
||||
assert.match(appStyles, /--sidebar-expanded-width:\s*304px/)
|
||||
assert.match(appStyles, /--sidebar-collapsed-width: 64px/)
|
||||
assert.match(appStyles, /\.app-sidebar\s*\{[^}]*transition:\s*width var\(--sidebar-motion\)/)
|
||||
assert.match(appStyles, /\.app\.sidebar-collapsed\s+\.app-sidebar\s*\{\s*width:\s*var\(--sidebar-collapsed-width\)/)
|
||||
|
||||
Reference in New Issue
Block a user