From 12bf28e8c811ff09e1b9db4dcbbbf2164f475722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90?= Date: Mon, 18 Oct 2021 16:24:52 +0800 Subject: [PATCH] refactor(components): refactor image-viewer (#3810) * refactor(components): refactor image-viewer * fix: remove unused * refactor: improve type --- .../__tests__/image-viewer.spec.ts | 2 +- packages/components/image-viewer/index.ts | 15 +- .../image-viewer/src/image-viewer.ts | 32 ++++ .../src/{index.vue => image-viewer.vue} | 155 +++++++++--------- packages/components/image/src/image.ts | 3 +- packages/components/image/src/image.vue | 2 +- packages/utils/util.ts | 13 +- 7 files changed, 120 insertions(+), 102 deletions(-) create mode 100644 packages/components/image-viewer/src/image-viewer.ts rename packages/components/image-viewer/src/{index.vue => image-viewer.vue} (74%) diff --git a/packages/components/image-viewer/__tests__/image-viewer.spec.ts b/packages/components/image-viewer/__tests__/image-viewer.spec.ts index 9b979c5d8e..7b205fa648 100644 --- a/packages/components/image-viewer/__tests__/image-viewer.spec.ts +++ b/packages/components/image-viewer/__tests__/image-viewer.spec.ts @@ -2,7 +2,7 @@ import { nextTick } from 'vue' import { IMAGE_SUCCESS } from '@element-plus/test-utils/mock' import makeMount from '@element-plus/test-utils/make-mount' -import ImageViewer from '../src/index.vue' +import ImageViewer from '../src/image-viewer.vue' const mount = makeMount(ImageViewer, { props: { diff --git a/packages/components/image-viewer/index.ts b/packages/components/image-viewer/index.ts index 130e6c3eaa..26947e75af 100644 --- a/packages/components/image-viewer/index.ts +++ b/packages/components/image-viewer/index.ts @@ -1,13 +1,8 @@ -import ImageViewer from './src/index.vue' +import { withInstall } from '@element-plus/utils/with-install' -import type { App } from 'vue' -import type { SFCWithInstall } from '@element-plus/utils/types' +import ImageViewer from './src/image-viewer.vue' -ImageViewer.install = (app: App): void => { - app.component(ImageViewer.name, ImageViewer) -} +export const ElImageViewer = withInstall(ImageViewer) +export default ElImageViewer -const _ImageViewer = ImageViewer as SFCWithInstall - -export default _ImageViewer -export const ElImageViewer = _ImageViewer +export * from './src/image-viewer' diff --git a/packages/components/image-viewer/src/image-viewer.ts b/packages/components/image-viewer/src/image-viewer.ts new file mode 100644 index 0000000000..3e4ceed343 --- /dev/null +++ b/packages/components/image-viewer/src/image-viewer.ts @@ -0,0 +1,32 @@ +import { buildProps, definePropType, mutable } from '@element-plus/utils/props' +import type { ExtractPropTypes } from 'vue' + +export const imageViewerProps = buildProps({ + urlList: { + type: definePropType(Array), + default: () => mutable([] as const), + }, + zIndex: { + type: Number, + default: 2000, + }, + initialIndex: { + type: Number, + default: 0, + }, + infinite: { + type: Boolean, + default: true, + }, + hideOnClickModal: { + type: Boolean, + default: false, + }, +} as const) +export type ImageViewerProps = ExtractPropTypes + +export const imageViewerEmits = { + close: () => true, + switch: (index: number) => typeof index === 'number', +} +export type ImageViewerEmits = typeof imageViewerEmits diff --git a/packages/components/image-viewer/src/index.vue b/packages/components/image-viewer/src/image-viewer.vue similarity index 74% rename from packages/components/image-viewer/src/index.vue rename to packages/components/image-viewer/src/image-viewer.vue index 1ef28369f7..06345c2602 100644 --- a/packages/components/image-viewer/src/index.vue +++ b/packages/components/image-viewer/src/image-viewer.vue @@ -9,11 +9,13 @@
+ /> + - + +
- - - - - + + + + + + /> + />
@@ -70,13 +72,22 @@