【首页】 修复# 价格显示NAN问题
parent
ed75ec4008
commit
d4728b489a
|
@ -2,7 +2,7 @@
|
|||
<view v-if="content.data.length && content.enabled">
|
||||
<CategoryCard :title="item.name" v-for="(item, index) in pageData" :key="index">
|
||||
<view class="goods">
|
||||
<block v-for="(item1, idx) in item.data" :key="item1.id">
|
||||
<block v-for="(item1, idx) in converItem(item.data)" :key="item1.id">
|
||||
<view class="goods-item" @click="goPage(`/pages/goods/index?id=${item1.id}`)">
|
||||
<view class="info-img mr-3">
|
||||
<u-image
|
||||
|
@ -28,10 +28,7 @@
|
|||
<view>
|
||||
<view style="color: #d41313">
|
||||
¥
|
||||
<span class="price">
|
||||
{{ numFilter(item1.price)[0] }}
|
||||
</span>
|
||||
<span>.{{ numFilter(item1.price)[1] }}</span>
|
||||
<span class="price">{{ servicePrice(item1) }}</span>
|
||||
<span class="unit pl-1">{{ item1.unit }}</span>
|
||||
</view>
|
||||
<view class="text-sm normal mt-1" style="color: #b0aeae">
|
||||
|
@ -59,11 +56,13 @@
|
|||
|
||||
<script lang="ts" setup>
|
||||
import CategoryCard from './category-card.vue'
|
||||
import { ref, nextTick } from 'vue'
|
||||
import { ref, nextTick, computed } from 'vue'
|
||||
import { apiGoodsLists } from '@/api/store'
|
||||
import cloudIcon from '@/static/images/home/cloud.png'
|
||||
import waveIcon from '@/static/images/home/wave.png'
|
||||
import { useAppStore } from '@/stores/app'
|
||||
import { PriceEnum } from '@/enums/appEnums'
|
||||
import { formatString } from '@/utils/util'
|
||||
|
||||
const { getImageUrl } = useAppStore()
|
||||
|
||||
|
@ -81,6 +80,21 @@ interface CardItem {
|
|||
listBgimage: string
|
||||
}
|
||||
const pageData = ref<CardItem[]>([])
|
||||
const converItem = computed(() => data => {
|
||||
if (!data) return
|
||||
return data.map(item => {
|
||||
const { price, minPrice, maxPrice } = item
|
||||
return {
|
||||
...item,
|
||||
goodsPrice: price,
|
||||
priceRange: `${minPrice}-${maxPrice}`
|
||||
}
|
||||
})
|
||||
})
|
||||
const servicePrice = computed(() => item => {
|
||||
const { priceType, goodsPrice, priceRange } = item
|
||||
return priceType == PriceEnum.CUSTOMER_PRICE ? goodsPrice : formatString(priceRange)
|
||||
})
|
||||
|
||||
const intPageData = async () => {
|
||||
if (props.content && props.content.data?.length > 0) {
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
{{ item.categoryName }}
|
||||
</view> -->
|
||||
<div class="goods">
|
||||
<block v-for="(item1, idx) in item.data" :key="item1.id">
|
||||
<block v-for="(item1, idx) in converItem(item.data)" :key="item1.id">
|
||||
<view
|
||||
class="goods-item"
|
||||
@click="goPage(`/pages/goods/index?id=${item1.id}`)"
|
||||
|
@ -60,7 +60,7 @@
|
|||
<view class="flex justify-between items-center mt-[20rpx]">
|
||||
<view class="price-wrap text-lg">
|
||||
¥
|
||||
<span class="price">{{ numFilter(item1.price) }}</span>
|
||||
<span class="price">{{ servicePrice(item1) }}</span>
|
||||
</view>
|
||||
<view class="text-sm normal" style="color: #b0aeae">
|
||||
<text class="font-bold">{{ item1.orderNum }}</text>
|
||||
|
@ -80,6 +80,8 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, watch, nextTick, onMounted, getCurrentInstance, computed } from 'vue'
|
||||
import { apiGoodsLists } from '@/api/store'
|
||||
import { PriceEnum } from '@/enums/appEnums'
|
||||
import { formatString } from '@/utils/util'
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
top: number
|
||||
|
@ -95,6 +97,22 @@ const props = withDefaults(
|
|||
const instance = getCurrentInstance() // 获取组件实例
|
||||
const emit = defineEmits(['tabChange', 'backRefresh'])
|
||||
const topheight = ref(0)
|
||||
const converItem = computed(() => data => {
|
||||
if (!data) return
|
||||
return data.map(item => {
|
||||
const { price, minPrice, maxPrice } = item
|
||||
return {
|
||||
...item,
|
||||
goodsPrice: price,
|
||||
priceRange: `${minPrice}-${maxPrice}`
|
||||
}
|
||||
})
|
||||
})
|
||||
const servicePrice = computed(() => item => {
|
||||
const { priceType, goodsPrice, priceRange } = item
|
||||
return priceType == PriceEnum.CUSTOMER_PRICE ? goodsPrice : formatString(priceRange)
|
||||
})
|
||||
|
||||
const handleChange = async (e: any) => {
|
||||
emit('tabChange', topInstance.value[e] - 150)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
lineHeight: navHeight + 'px'
|
||||
}"
|
||||
>
|
||||
{{ titleImageObj[0]?.content?.title ?? '福源建筑生活' }}
|
||||
{{ titleImageObj[0]?.content?.title ?? '思缘生活' }}
|
||||
</view>
|
||||
<template v-if="searchList">
|
||||
<w-search
|
||||
|
|
Loading…
Reference in New Issue