|
@@ -1,13 +1,13 @@
|
|
|
<script lang="ts" setup>
|
|
|
-import { defineProps, ref, computed } from 'vue';
|
|
|
import XEUtils from 'xe-utils';
|
|
|
|
|
|
+
|
|
|
const props = defineProps<{
|
|
|
field: string;
|
|
|
value: string;
|
|
|
}>();
|
|
|
|
|
|
-const badgeMap = {
|
|
|
+const badgeMap: { [key: number]: string } = {
|
|
|
0: '',
|
|
|
1: 'LD',
|
|
|
2: '7DD',
|
|
@@ -16,15 +16,16 @@ const badgeMap = {
|
|
|
|
|
|
const loadJsonString = (val: string) => XEUtils.toStringJSON(val);
|
|
|
|
|
|
-const isArray = computed(() => XEUtils.includes(['bullet_point', 'variants'], props.field));
|
|
|
+const isArray = computed(() => XEUtils.includes([ 'bullet_point', 'variants' ], props.field));
|
|
|
|
|
|
const formatedVal = computed(() => {
|
|
|
if (props.field === 'discount') {
|
|
|
- return `${props.value}%`;
|
|
|
+ return `${ props.value }%`;
|
|
|
} else if (props.field === 'coupon' || props.field === 'price') {
|
|
|
- return `$${props.value}`;
|
|
|
+ return `$${ props.value }`;
|
|
|
} else if (props.field === 'badge') {
|
|
|
- return badgeMap[props.value];
|
|
|
+ const badgeValue = Number(props.value);
|
|
|
+ return badgeMap[badgeValue] || ''; // 添加默认值以处理无效的 badge 值
|
|
|
}
|
|
|
return props.value;
|
|
|
});
|
|
@@ -34,16 +35,18 @@ const formatedVal = computed(() => {
|
|
|
<div>
|
|
|
<template v-if="props.field==='imgs'">
|
|
|
<span v-for="(img, index) in loadJsonString(props.value)" :key="index">
|
|
|
- <el-tooltip placement="bottom-start" effect="light">
|
|
|
+ <el-tooltip effect="light" placement="bottom-start">
|
|
|
<el-image
|
|
|
- style="width: 40px; margin-right: 5px;"
|
|
|
- fit="fill"
|
|
|
:src="`https://m.media-amazon.com/images/I/${img}.jpg`"
|
|
|
+ fit="fill"
|
|
|
+ lazy
|
|
|
+ style="width: 40px; margin-right: 5px;"
|
|
|
/>
|
|
|
<template #content>
|
|
|
<el-image
|
|
|
- style="width: 250px"
|
|
|
:src="`https://m.media-amazon.com/images/I/${img}.jpg`"
|
|
|
+ lazy
|
|
|
+ style="width: 250px"
|
|
|
/>
|
|
|
</template>
|
|
|
</el-tooltip>
|