From cda383534e7dd9a32b5f971805184600b0911cea Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期四, 30 十二月 2021 10:51:17 +0800
Subject: [PATCH] 新增图片预览组件
---
src/main.js | 3 +
src/components/ImagePreview/index.vue | 67 +++++++++++++++++++++++++++++++++
2 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue
new file mode 100644
index 0000000..e1cd197
--- /dev/null
+++ b/src/components/ImagePreview/index.vue
@@ -0,0 +1,67 @@
+<template>
+ <el-image :src="`${realSrc}`" fit="cover" :style="`width:${realWidth};height:${realHeight};`" :preview-src-list="[`${realSrc}`]">
+ <template #error>
+ <div class="image-slot">
+ <el-icon><picture-filled /></el-icon>
+ </div>
+ </template>
+ </el-image>
+</template>
+
+<script setup>
+import { isExternal } from '@/utils/validate'
+
+const props = defineProps({
+ src: {
+ type: String,
+ required: true
+ },
+ width: {
+ type: [Number, String],
+ default: ''
+ },
+ height: {
+ type: [Number, String],
+ default: ''
+ }
+});
+
+const realSrc = computed(() => {
+ if (isExternal(props.src)) {
+ return props.src
+ }
+ return import.meta.env.VITE_APP_BASE_API + props.src
+})
+
+const realWidth = computed(
+ () => typeof props.width == 'string' ? props.width : `${props.width}px`
+);
+
+const realHeight = computed(
+ () => typeof props.height == 'string' ? props.height : `${props.height}px`
+);
+</script>
+
+<style lang="scss" scoped>
+.el-image {
+ border-radius: 5px;
+ background-color: #ebeef5;
+ box-shadow: 0 0 5px 1px #ccc;
+ :deep(.el-image__inner) {
+ transition: all 0.3s;
+ cursor: pointer;
+ &:hover {
+ transform: scale(1.2);
+ }
+ }
+ :deep(.image-slot) {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ color: #909399;
+ font-size: 30px;
+ }
+}
+</style>
diff --git a/src/main.js b/src/main.js
index 9398b0c..d6e38bf 100644
--- a/src/main.js
+++ b/src/main.js
@@ -33,6 +33,8 @@
import RightToolbar from '@/components/RightToolbar'
// 鍥剧墖涓婁紶缁勪欢
import ImageUpload from "@/components/ImageUpload"
+// 鍥剧墖棰勮缁勪欢
+import ImagePreview from "@/components/ImagePreview"
// 鑷畾涔夋爲閫夋嫨缁勪欢
import TreeSelect from '@/components/TreeSelect'
// 瀛楀吀鏍囩缁勪欢
@@ -54,6 +56,7 @@
app.component('Pagination', Pagination)
app.component('TreeSelect', TreeSelect)
app.component('ImageUpload', ImageUpload)
+app.component('ImagePreview', ImagePreview)
app.component('RightToolbar', RightToolbar)
app.use(router)
--
Gitblit v1.9.3