feat(web): 工作台 AI 模式与差旅/风险建议交互优化
- 新增 PersonalWorkbenchAiMode 组件、AI 侧边栏与 orb 机器人视觉资源 - 新增 aiApplicationDraftModel / aiExpenseDraftModel / aiWorkbenchConversationStore 及业务准入 aiSidebarBusinessAccess,支撑 AI 模式下的申请与报销草稿 - 顶栏、侧边栏、工作台样式重构,适配 AI 模式切换与响应式布局 - 同步 steward plan/off_topic、差旅报销引导流、风险建议卡片等测试
This commit is contained in:
@@ -19,33 +19,19 @@ const workbenchDateComposable = readFileSync(
|
||||
fileURLToPath(new URL('../src/composables/useWorkbenchComposerDate.js', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const workbenchStyles = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/components/personal-workbench.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const workbenchDateStyles = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/components/personal-workbench-composer-date.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
const workbenchResponsiveStyles = readFileSync(
|
||||
fileURLToPath(new URL('../src/assets/styles/components/personal-workbench-responsive.css', import.meta.url)),
|
||||
'utf8'
|
||||
)
|
||||
|
||||
test('workbench composer renders date picker beside attachment upload', () => {
|
||||
assert.match(workbench, /aria-label="上传附件"[\s\S]*class="workbench-date-anchor"/)
|
||||
assert.match(workbench, /aria-label="选择日期"/)
|
||||
assert.match(workbench, /class="workbench-date-chip"/)
|
||||
assert.match(workbench, /removeWorkbenchDateTag/)
|
||||
assert.match(workbench, /composer-date-popover/)
|
||||
assert.match(workbench, /setWorkbenchDateMode\('single'\)/)
|
||||
assert.match(workbench, /setWorkbenchDateMode\('range'\)/)
|
||||
assert.match(workbench, /handleWorkbenchDateInputChange\('single'\)/)
|
||||
assert.match(workbench, /handleWorkbenchDateInputChange\('range-start'\)/)
|
||||
assert.match(workbench, /handleWorkbenchDateInputChange\('range-end'\)/)
|
||||
assert.doesNotMatch(workbench, /@click="applyWorkbenchDateSelection"/)
|
||||
assert.doesNotMatch(workbench, /插入标签/)
|
||||
assert.match(workbench, /useWorkbenchComposerDate/)
|
||||
test('traditional workbench no longer renders the old composer date picker', () => {
|
||||
assert.doesNotMatch(workbench, /aria-label="上传附件"[\s\S]*class="workbench-date-anchor"/)
|
||||
assert.doesNotMatch(workbench, /aria-label="选择日期"/)
|
||||
assert.doesNotMatch(workbench, /class="workbench-date-chip"/)
|
||||
assert.doesNotMatch(workbench, /removeWorkbenchDateTag/)
|
||||
assert.doesNotMatch(workbench, /composer-date-popover/)
|
||||
assert.doesNotMatch(workbench, /setWorkbenchDateMode\('single'\)/)
|
||||
assert.doesNotMatch(workbench, /useWorkbenchComposerDate/)
|
||||
assert.match(workbenchDateComposable, /const workbenchSingleDate = ref\(getTodayDateValue\(\)\)/)
|
||||
assert.match(workbenchDateComposable, /const workbenchDateTagLabel = ref\(''\)/)
|
||||
assert.match(workbenchDateComposable, /const today = getTodayDateValue\(\)[\s\S]*workbenchSingleDate\.value = today/)
|
||||
@@ -53,13 +39,6 @@ test('workbench composer renders date picker beside attachment upload', () => {
|
||||
assert.match(workbenchDateStyles, /\.workbench-date-anchor/)
|
||||
assert.match(workbenchDateStyles, /\.workbench-date-chip/)
|
||||
assert.match(workbenchDateStyles, /\.composer-date-popover/)
|
||||
assert.match(workbenchStyles, /\.assistant-composer\s*\{[\s\S]*position:\s*relative/)
|
||||
assert.match(workbenchDateStyles, /\.composer-date-popover\s*\{[\s\S]*top:\s*calc\(100% \+ 8px\)/)
|
||||
assert.doesNotMatch(workbenchDateStyles, /bottom:\s*calc\(100%/)
|
||||
assert.doesNotMatch(workbench, /composer-related-button/)
|
||||
assert.doesNotMatch(workbenchStyles, /\.composer-related-button/)
|
||||
assert.doesNotMatch(workbenchDateStyles, /\.composer-related-button/)
|
||||
assert.doesNotMatch(workbenchResponsiveStyles, /\.composer-related-button/)
|
||||
})
|
||||
|
||||
test('workbench date helper builds labels and inserts them into draft text', () => {
|
||||
|
||||
Reference in New Issue
Block a user