diff --git a/packages/components/backtop/__tests__/backtop.spec.ts b/packages/components/backtop/__tests__/backtop.spec.ts index 237a7c08d3..0143f88ec2 100644 --- a/packages/components/backtop/__tests__/backtop.spec.ts +++ b/packages/components/backtop/__tests__/backtop.spec.ts @@ -1,5 +1,6 @@ +import { nextTick } from 'vue' import { mount } from '@vue/test-utils' -import Backtop from '../src/index.vue' +import Backtop from '../src/backtop.vue' const _mount = (template: string) => mount( @@ -21,6 +22,8 @@ describe('Backtop.vue', () => { `) + await nextTick() + expect(wrapper.find('.el-backtop').exists()).toBe(false) wrapper.element.scrollTop = 2000 await wrapper.trigger('scroll') diff --git a/packages/components/backtop/index.ts b/packages/components/backtop/index.ts index 2ec05ac1e5..0e214020aa 100644 --- a/packages/components/backtop/index.ts +++ b/packages/components/backtop/index.ts @@ -1,13 +1,8 @@ -import Backtop from './src/index.vue' -import type { App } from 'vue' +import { withInstall } from '@element-plus/utils/with-install' -import type { SFCWithInstall } from '@element-plus/utils/types' +import Backtop from './src/backtop.vue' -Backtop.install = (app: App): void => { - app.component(Backtop.name, Backtop) -} +export const ElBacktop = withInstall(Backtop) +export default ElBacktop -const _Backtop = Backtop as SFCWithInstall - -export default _Backtop -export const ElBacktop = _Backtop +export * from './src/backtop' diff --git a/packages/components/backtop/src/backtop.ts b/packages/components/backtop/src/backtop.ts new file mode 100644 index 0000000000..f38499e128 --- /dev/null +++ b/packages/components/backtop/src/backtop.ts @@ -0,0 +1,26 @@ +import type { ExtractPropTypes } from 'vue' + +export const backtopProps = { + visibilityHeight: { + type: Number, + default: 200, + }, + target: { + type: String, + default: '', + }, + right: { + type: Number, + default: 40, + }, + bottom: { + type: Number, + default: 40, + }, +} as const +export type BacktopProps = ExtractPropTypes + +export const backtopEmits = { + click: (evt: MouseEvent) => evt instanceof MouseEvent, +} +export type BacktopEmits = typeof backtopEmits diff --git a/packages/components/backtop/src/backtop.vue b/packages/components/backtop/src/backtop.vue new file mode 100644 index 0000000000..4150676596 --- /dev/null +++ b/packages/components/backtop/src/backtop.vue @@ -0,0 +1,89 @@ + + + diff --git a/packages/components/backtop/src/index.vue b/packages/components/backtop/src/index.vue deleted file mode 100644 index 3a585178e3..0000000000 --- a/packages/components/backtop/src/index.vue +++ /dev/null @@ -1,114 +0,0 @@ - - -