fix(ui): Toast 撤销可暂停,存储告警提升为全局

- Toast 自动关闭支持悬停/聚焦暂停,移开后按剩余时间继续
- 存储异常提示移到 App 级,看板与今日视图都能看到
- 归档隐藏与筛选隐藏分开说明,并提示列内排序暂停原因
This commit is contained in:
chenshoulin
2026-10-19 17:21:05 +08:00
parent f69a24de94
commit 4aba003a9e
8 changed files with 198 additions and 25 deletions
+14 -3
View File
@@ -83,10 +83,11 @@ describe('BoardView 结构', () => {
expect(sections[2]?.text()).toContain('已完成事项')
})
it('存在存储提示时展示提示条', () => {
it('存在存储提示时由 App 统一展示(看板不再重复渲染)', () => {
const { pinia, store } = setup()
store.notice = '本地存储不可用'
expect(mountBoard(pinia).text()).toContain('本地存储不可用')
// 提示已提升到 App 层,BoardView 自身不应再渲染一遍
expect(mountBoard(pinia).text()).not.toContain('本地存储不可用')
})
})
@@ -167,7 +168,7 @@ describe('BoardView 详情抽屉', () => {
expect(store.tasks[0]?.title).toBe('新标题')
})
it('取消后抽屉关闭且数据不变', async () => {
it('有未保存修改时取消先确认,放弃后抽屉关闭且数据不变', async () => {
const { pinia, store } = setup()
store.createTask({ title: '原标题' })
const wrapper = mountBoard(pinia)
@@ -180,6 +181,14 @@ describe('BoardView 详情抽屉', () => {
await cancelButton?.trigger('click')
await nextTick()
// 先给出确认,抽屉保持打开
expect(wrapper.text()).toContain('有未保存的修改')
expect(wrapper.find('input[aria-label="标题"]').exists()).toBe(true)
const discardButton = wrapper.findAll('button').find((node) => node.text() === '放弃修改')
await discardButton?.trigger('click')
await nextTick()
expect(wrapper.find('input[aria-label="标题"]').exists()).toBe(false)
expect(store.tasks[0]?.title).toBe('原标题')
})
@@ -329,6 +338,8 @@ describe('BoardView 归档', () => {
expect(wrapper.findAll('article')).toHaveLength(0)
expect(wrapper.text()).toContain('已隐藏 1 个')
// 提示里要说明是归档造成的,否则用户不知道列内排序为什么拖不动
expect(wrapper.text()).toContain('归档 1')
})
it('开启「显示归档」后归档任务重新出现', async () => {