<template>
<view :class="canPreview ? 'customImg' : 'customImg isloading'">
<image :src="image" :mode="mode" fade-show lazy-load :class="iclass" @error="onImageError" @load="onImageLoad"
@tap="tap?tap():preview(image)"
>
</image>
</view>
</template>
<script>
export default {
props: {
tap:{
type: Function,
default:null
},
preFix: {
type: String,
default: process.uniEnv.imgPreFix
},
src: {
type: String,
default: ''
},
iclass: {
type: String,
default: ''
},
mode: {
type: String,
default: 'aspectFill'
}
},
data() {
return {
image: '',
canPreview: false,
noImage: require("@/static/images/noImage.jpg")
}
},
watch: {
src: {
handler(val) {
if (val) {
this.image = val
} else {
console.log('空地址');
this.image = this.noImage
}
},
immediate: true
}
},
methods: {
onImageLoad() {
this.canPreview = true
},
onImageError() {
console.log('无效路径图片');
this.image = this.noImage
},
preview(e) {
if (this.canPreview) {
let array = [];
array.push(e);
uni.previewImage({
urls: array,
current: array[0]
});
}
}
}
}
</script>
<style lang="scss" scoped>
.customImg {
display: inline-block;
}
.isloading {
background: url("@/static/images/loading2.gif") no-repeat center;
background-size: 100%;
}
</style>
<template>
<view style="width:10px;height:50px">
<customImg :src="require('@/static/images/success.png')" iclass="image-small" :tap="cc"></customImg>
<text>11</text>
</view>
</template>
<script>
import customImg from './test.vue'
export default {
components: { customImg },
data() {
return {}
},
methods: {
cc(){
console.log(455454);
}
}
}
</script>
<style lang="scss" scoped>
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探