feat: 优化差旅报销预审流程与个人工作台 UI 体系

- 完善 user_agent_application 申请差旅报销预审槽位与消息组装
- 增强预算助理报告与风险建议卡片交互
- 重构登录页视觉样式与移动端响应式适配
- 优化个人工作台、文档中心、政策中心、员工管理等页面布局
- 拆分 travelRequestDetailPreReviewModel 为 advice/submit 模型
- 补充报销草稿、风险复核、Item Sync 与模板执行器测试覆盖
This commit is contained in:
caoxiaozhu
2026-06-02 14:01:51 +08:00
parent 92444e7eae
commit ca691f3ee0
107 changed files with 5663 additions and 1542 deletions

View File

@@ -32,8 +32,8 @@ test('document center new state resolves source scoped document keys', () => {
test('document center new state counts unseen documents and persists viewed rows', () => {
const storage = createMemoryStorage()
const rows = [
{ source: 'archive', claimId: 'claim-1' },
{ source: 'archive', claimId: 'claim-2' }
{ source: 'owned', claimId: 'claim-1' },
{ source: 'approval', claimId: 'claim-2' }
]
let viewedKeys = readViewedDocumentKeys(storage)
@@ -44,7 +44,21 @@ test('document center new state counts unseen documents and persists viewed rows
assert.equal(countNewDocuments(rows, viewedKeys), 1)
assert.equal(isNewDocument(rows[0], viewedKeys), false)
assert.deepEqual([...readViewedDocumentKeys(storage)], ['archive:claim-1'])
assert.deepEqual([...readViewedDocumentKeys(storage)], ['owned:claim-1'])
})
test('document center archive rows are never marked as new', () => {
const viewedKeys = readViewedDocumentKeys(createMemoryStorage())
const rows = [
{ source: 'archive', claimId: 'archived-1' },
{ archived: true, source: 'owned', claimId: 'archived-2' },
{ isNewDocument: false, source: 'owned', claimId: 'archived-3' }
]
assert.equal(countNewDocuments(rows, viewedKeys), 0)
assert.equal(isNewDocument(rows[0], viewedKeys), false)
assert.equal(isNewDocument(rows[1], viewedKeys), false)
assert.equal(isNewDocument(rows[2], viewedKeys), false)
})
test('document center sidebar inbox shares source scoped document keys', () => {