From 1a0eb3989c5ca8ec58bb85581ca23fd8fdf3965c Mon Sep 17 00:00:00 2001
From: Hooray <304327508@qq.com>
Date: Sun, 15 Jun 2025 23:43:48 +0800
Subject: [PATCH] =?UTF-8?q?feat!:=20=E6=96=B0=E5=A2=9E=20`FaImagePreview`?=
=?UTF-8?q?=20=E7=BB=84=E4=BB=B6=EF=BC=8C=E5=B9=B6=E7=A7=BB=E9=99=A4=20`Im?=
=?UTF-8?q?agePreview`=20=E7=BB=84=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ImagePreview/index.vue | 63 ------
src/types/components.d.ts | 2 +-
.../FaImagePreview/dialog/Dialog.vue | 14 ++
.../FaImagePreview/dialog/DialogClose.vue | 11 ++
.../FaImagePreview/dialog/DialogContent.vue | 48 +++++
.../dialog/DialogDescription.vue | 21 ++
.../FaImagePreview/dialog/DialogFooter.vue | 19 ++
.../FaImagePreview/dialog/DialogHeader.vue | 16 ++
.../dialog/DialogScrollContent.vue | 56 ++++++
.../FaImagePreview/dialog/DialogTitle.vue | 26 +++
.../FaImagePreview/dialog/DialogTrigger.vue | 11 ++
.../components/FaImagePreview/dialog/index.ts | 9 +
src/ui/components/FaImagePreview/index.vue | 187 ++++++++++++++++++
13 files changed, 419 insertions(+), 64 deletions(-)
delete mode 100755 src/components/ImagePreview/index.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/Dialog.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogClose.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogContent.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogDescription.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogFooter.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogHeader.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogTitle.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/DialogTrigger.vue
create mode 100644 src/ui/components/FaImagePreview/dialog/index.ts
create mode 100644 src/ui/components/FaImagePreview/index.vue
diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue
deleted file mode 100755
index c8afadfd..00000000
--- a/src/components/ImagePreview/index.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/types/components.d.ts b/src/types/components.d.ts
index dbd056ce..90db10ff 100644
--- a/src/types/components.d.ts
+++ b/src/types/components.d.ts
@@ -24,6 +24,7 @@ declare module 'vue' {
FaFixedActionBar: typeof import('./../ui/components/FaFixedActionBar/index.vue')['default']
FaHoverCard: typeof import('./../ui/components/FaHoverCard/index.vue')['default']
FaIcon: typeof import('./../ui/components/FaIcon/index.vue')['default']
+ FaImagePreview: typeof import('./../ui/components/FaImagePreview/index.vue')['default']
FaInput: typeof import('./../ui/components/FaInput/index.vue')['default']
FaKbd: typeof import('./../ui/components/FaKbd/index.vue')['default']
FaModal: typeof import('./../ui/components/FaModal/index.vue')['default']
@@ -46,7 +47,6 @@ declare module 'vue' {
FaToast: typeof import('./../ui/components/FaToast/index.vue')['default']
FaTooltip: typeof import('./../ui/components/FaTooltip/index.vue')['default']
FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
- ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
ImagesUpload: typeof import('./../components/ImagesUpload/index.vue')['default']
ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
diff --git a/src/ui/components/FaImagePreview/dialog/Dialog.vue b/src/ui/components/FaImagePreview/dialog/Dialog.vue
new file mode 100644
index 00000000..9fc9c7d1
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/Dialog.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogClose.vue b/src/ui/components/FaImagePreview/dialog/DialogClose.vue
new file mode 100644
index 00000000..ba036b51
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogClose.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogContent.vue b/src/ui/components/FaImagePreview/dialog/DialogContent.vue
new file mode 100644
index 00000000..4307460a
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogContent.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogDescription.vue b/src/ui/components/FaImagePreview/dialog/DialogDescription.vue
new file mode 100644
index 00000000..096fb6f8
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogDescription.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogFooter.vue b/src/ui/components/FaImagePreview/dialog/DialogFooter.vue
new file mode 100644
index 00000000..b633458e
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogFooter.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogHeader.vue b/src/ui/components/FaImagePreview/dialog/DialogHeader.vue
new file mode 100644
index 00000000..dee30d9a
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogHeader.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue b/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue
new file mode 100644
index 00000000..a4ba16d2
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogScrollContent.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {
+ const originalEvent = event.detail.originalEvent;
+ const target = originalEvent.target as HTMLElement;
+ if (originalEvent.offsetX > target.clientWidth || originalEvent.offsetY > target.clientHeight) {
+ event.preventDefault();
+ }
+ }"
+ >
+
+
+
+
+ Close
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogTitle.vue b/src/ui/components/FaImagePreview/dialog/DialogTitle.vue
new file mode 100644
index 00000000..00c5a3ab
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogTitle.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue b/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue
new file mode 100644
index 00000000..2984f371
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/DialogTrigger.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/ui/components/FaImagePreview/dialog/index.ts b/src/ui/components/FaImagePreview/dialog/index.ts
new file mode 100644
index 00000000..ca8cfeae
--- /dev/null
+++ b/src/ui/components/FaImagePreview/dialog/index.ts
@@ -0,0 +1,9 @@
+export { default as Dialog } from './Dialog.vue'
+export { default as DialogClose } from './DialogClose.vue'
+export { default as DialogContent } from './DialogContent.vue'
+export { default as DialogDescription } from './DialogDescription.vue'
+export { default as DialogFooter } from './DialogFooter.vue'
+export { default as DialogHeader } from './DialogHeader.vue'
+export { default as DialogScrollContent } from './DialogScrollContent.vue'
+export { default as DialogTitle } from './DialogTitle.vue'
+export { default as DialogTrigger } from './DialogTrigger.vue'
diff --git a/src/ui/components/FaImagePreview/index.vue b/src/ui/components/FaImagePreview/index.vue
new file mode 100644
index 00000000..3270688d
--- /dev/null
+++ b/src/ui/components/FaImagePreview/index.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+