| | |
| | | <template> |
| | | <el-image :src="`${realSrc}`" fit="cover" :style="`width:${realWidth};height:${realHeight};`" :preview-src-list="realSrcList" preview-teleported> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><picture-filled /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { propTypes } from '@/utils/propTypes'; |
| | | |
| | | const props = defineProps({ |
| | | src: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | src: propTypes.string.def(''), |
| | | width: { |
| | | type: [Number, String], |
| | | default: "" |
| | | default: '' |
| | | }, |
| | | height: { |
| | | type: [Number, String], |
| | | default: "" |
| | | default: '' |
| | | } |
| | | }); |
| | | |
| | |
| | | if (!props.src) { |
| | | return; |
| | | } |
| | | let real_src = props.src.split(",")[0]; |
| | | let real_src = props.src.split(',')[0]; |
| | | return real_src; |
| | | }); |
| | | |
| | |
| | | if (!props.src) { |
| | | return; |
| | | } |
| | | let real_src_list = props.src.split(","); |
| | | let srcList:string[] = []; |
| | | real_src_list.forEach(item => { |
| | | let real_src_list = props.src.split(','); |
| | | let srcList: string[] = []; |
| | | real_src_list.forEach((item: string) => { |
| | | return srcList.push(item); |
| | | }); |
| | | return srcList; |
| | | }); |
| | | |
| | | const realWidth = computed(() => |
| | | typeof props.width == "string" ? props.width : `${props.width}px` |
| | | ); |
| | | const realWidth = computed(() => (typeof props.width == 'string' ? props.width : `${props.width}px`)); |
| | | |
| | | const realHeight = computed(() => |
| | | typeof props.height == "string" ? props.height : `${props.height}px` |
| | | ); |
| | | const realHeight = computed(() => (typeof props.height == 'string' ? props.height : `${props.height}px`)); |
| | | </script> |
| | | |
| | | <template> |
| | | <el-image :src="`${realSrc}`" fit="cover" :style="`width:${realWidth};height:${realHeight};`" :preview-src-list="realSrcList" preview-teleported> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon><picture-filled /></el-icon> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | </template> |
| | | |
| | | <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; |