|
@@ -17,7 +17,8 @@
|
|
|
'margin-left': avatarGroup.margin + 'rpx'
|
|
|
}"
|
|
|
@click="handleClick"
|
|
|
- >
|
|
|
+ >
|
|
|
+ <image class="fs-avatar-img" :src="errImg" v-if="errImg" :lazy-load="lazyLoad" :mode="imageMode" @click="handlePreview" />
|
|
|
<image class="fs-avatar-img" :src="src" v-if="src" :lazy-load="lazyLoad" :mode="imageMode" @click="handlePreview" />
|
|
|
<view v-else class="fs-avatar-slot" :class="['bg-' + bgColorType]" :style="{backgroundColor:bgColor}">
|
|
|
<slot></slot>
|
|
@@ -26,7 +27,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { computed, inject } from 'vue'
|
|
|
+import { computed, inject, ref } from 'vue'
|
|
|
|
|
|
const props = defineProps({
|
|
|
src: String,
|
|
@@ -103,9 +104,14 @@ const handleClick = () => {
|
|
|
const handlePreview = () => {
|
|
|
if (props.preview) {
|
|
|
uni.previewImage({
|
|
|
- urls: [props.src]
|
|
|
+ urls: [props.src || errImg.value]
|
|
|
})
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+const errImg = ref('')
|
|
|
+const handleError = e => {
|
|
|
+ errImg.value = props.defaultErrorImg
|
|
|
}
|
|
|
</script>
|
|
|
|