feat(web): 票据夹资产缓存接入与 AI 工作台附件流程完善

- ReceiptFolderView 删除票据后提示已关联附件副本保留,接入 useToast;fetchReceiptFolderAsset 加 no-store 避免预览缓存
- PersonalWorkbenchAiMode 附件区/对话气泡适配资产缓存,personal-workbench-ai-mode.css 调整布局
- usePersonalWorkbenchAiMode/useWorkbenchAiApplicationPreviewFlow/useWorkbenchAiAttachmentAssociationFlow/useWorkbenchAiStewardFlow 完善附件草稿选择与关联流程
- travelRequestDetailSmartEntryRecognition 智能识别增强,AppShellRouteView/PersonalWorkbenchView/useApplicationPreviewEditor/useTravelReimbursementSubmitComposer 等配套适配
- 新增 expense-attachment-draft-selection、receipt-folder-asset-cache、travel-request-detail-smart-entry-recognition 测试,更新 attachment-association-confirmation、expense-application-fast-preview、workbench-ai-mode-switch 测试
This commit is contained in:
caoxiaozhu
2026-06-23 09:42:13 +08:00
parent 84a8998e59
commit e725b7f19c
22 changed files with 850 additions and 70 deletions

View File

@@ -0,0 +1,35 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import {
resolveCreatedSmartEntryRecognitionItem
} from '../src/views/scripts/travelRequestDetailSmartEntryRecognition.js'
test('智能录入创建明细后跳过系统补贴行', () => {
const createdItem = resolveCreatedSmartEntryRecognitionItem([
{
id: 'allowance-item',
item_type: 'travel_allowance',
invoice_id: ''
},
{
id: 'business-item',
item_type: 'travel',
invoice_id: ''
}
], new Set())
assert.equal(createdItem?.id, 'business-item')
})
test('智能录入创建明细后没有可上传业务行时返回空', () => {
const createdItem = resolveCreatedSmartEntryRecognitionItem([
{
id: 'allowance-item',
item_type: 'travel_allowance',
invoice_id: ''
}
], new Set())
assert.equal(createdItem, null)
})