fix: 使用 NScrollbar 统一内容区滚动条
This commit is contained in:
@@ -5,7 +5,9 @@ defineProps<{ split?: boolean }>()
|
||||
</script>
|
||||
<template>
|
||||
<section class="workspace-page">
|
||||
<header v-if="$slots.header" class="workspace-heading"><slot name="header" /></header>
|
||||
<NScrollbar v-if="$slots.header" class="workspace-heading-scroll"
|
||||
><header class="workspace-heading"><slot name="header" /></header
|
||||
></NScrollbar>
|
||||
<div v-if="split" class="workspace-split"><slot /></div>
|
||||
<NScrollbar v-else class="workspace-scroll" content-class="workspace-scroll-content"><slot /></NScrollbar>
|
||||
</section>
|
||||
|
||||
@@ -23,13 +23,20 @@ describe('管理后台组件边界', () => {
|
||||
expect(adminCss).toMatch(/html,\s*body,\s*#app,\s*\.app-provider\s*\{[^}]*overflow:\s*hidden/)
|
||||
expect(adminCss).toMatch(/\.workspace-page\s*\{[^}]*min-height:\s*0;[^}]*overflow:\s*hidden/)
|
||||
})
|
||||
it('固定标题在滚动容器之外,普通工作区只有内容使用滚动组件', () => {
|
||||
it('业务样式不再直接开启浏览器原生滚动条', () => {
|
||||
const css = readFileSync('src/admin.css', 'utf8') + readFileSync('src/styles.css', 'utf8')
|
||||
expect(css).not.toMatch(/overflow(?:-[xy])?\s*:\s*(?:auto|scroll)\b/)
|
||||
})
|
||||
it('标题与内容使用各自滚动容器,不随正文一起滚动', () => {
|
||||
wrapper = mount(WorkspacePage, {
|
||||
slots: { header: '<h2>固定操作区</h2>', default: '<p>正文</p>' }
|
||||
})
|
||||
expect(wrapper.get('.workspace-heading').text()).toBe('固定操作区')
|
||||
expect(wrapper.getComponent(NScrollbar).text()).toBe('正文')
|
||||
expect(wrapper.getComponent(NScrollbar).find('h2').exists()).toBe(false)
|
||||
const content = wrapper.get('.workspace-scroll')
|
||||
expect(content.classes()).toContain('n-scrollbar')
|
||||
expect(content.text()).toBe('正文')
|
||||
expect(content.find('h2').exists()).toBe(false)
|
||||
expect(wrapper.get('.workspace-heading-scroll .n-scrollbar-content').text()).toBe('固定操作区')
|
||||
})
|
||||
|
||||
it('分栏工作区不再包一层整页滚动', () => {
|
||||
|
||||
Reference in New Issue
Block a user