秦佳浩 2 months ago
commit 7771cf0fae

@ -1,39 +1,70 @@
<template>
<view
class="prod-items"
<!--
使用view标签创建一个类名为"prod-items"的组件元素通过":data-prodid"绑定了一个名为"item.prodId"的数据属性
并监听了"tap"事件当触发点击时会调用"toProdPage"方法
-->
<view class="prod-items"
:data-prodid="item.prodId"
@tap="toProdPage"
>
@tap="toProdPage">
<!--
创建一个类名为"hot-imagecont"的view元素用于包裹商品图片相关内容起到容器的作用
-->
<view class="hot-imagecont">
<image
:src="item.pic"
class="hotsaleimg"
/>
<!--
使用image标签展示商品图片图片的src属性通过":src"绑定了名为"item.pic"的数据
并设置了类名"hotsaleimg"该类名应该在对应的样式文件中有相应的样式定义来控制图片的展示样式
-->
<image :src="item.pic"
class="hotsaleimg" />
</view>
<!--
创建一个类名为"hot-text"的view元素用于包裹商品的文本信息部分比如商品名称评价信息价格等内容
-->
<view class="hot-text">
<!--
创建一个类名为"hotprod-text"的view元素用于展示商品名称通过双大括号插值表达式"{{ item.prodName }}"来显示具体的商品名称数据
-->
<view class="hotprod-text">
{{ item.prodName }}
</view>
<view
v-if="sts===6"
class="prod-info"
>
<!--
根据"sts"的值来决定是否显示该元素"sts === 6"显示这个类名为"prod-info"的view元素
用于展示商品的评价相关信息如评价数量和好评率等同样通过插值表达式来展示具体数据
-->
<view v-if="sts===6"
class="prod-info">
{{ item.prodCommNumber }}评价 {{ item.positiveRating }}%好评
</view>
<!--
创建一个类名为"prod-text-info"的view元素用于包裹商品价格相关的展示内容是价格信息的整体容器
-->
<view class="prod-text-info">
<!--
创建一个类名为"price"的view元素用于进一步细分价格展示的不同部分如限时价标识货币符号价格的整数部分和小数部分等
-->
<view class="price">
<text
v-if="sts===2"
class="deadline-price"
>
<!--
根据"sts"的值来决定是否显示这个类名为"deadline-price"的text元素"sts === 2"显示"限时价"文本用于提示限时优惠价格情况
-->
<text v-if="sts===2"
class="deadline-price">
限时价
</text>
<!--
展示货币符号"¥"使用text标签进行文本展示设置了类名"symbol"方便样式控制虽然此处没看到具体样式但可以后续添加样式定义
-->
<text class="symbol">
</text>
<!--
通过调用"wxs.parsePrice(item.price)[0]"方法来获取商品价格的整数部分并展示在页面上类名"big-num"方便后续样式控制比如设置字体大小等
-->
<text class="big-num">
{{ wxs.parsePrice(item.price)[0] }}
</text>
<!--
通过调用"wxs.parsePrice(item.price)[1]"方法来获取商品价格的小数部分并展示在页面上类名"small-num"方便样式处理确保小数部分的显示格式等符合要求
-->
<text class="small-num">
.{{ wxs.parsePrice(item.price)[1] }}
</text>
@ -43,31 +74,40 @@
</view>
</template>
<script setup>
const wxs = number()
// eslint-disable-next-line no-unused-vars
const props = defineProps({
// "wxs""number""number"
const wxs = number()
// "props"使"defineProps"
// eslint使
// eslint-disable-next-line no-unused-vars
const props = defineProps({
// "item"Objectnullnull
item: {
type: Object,
default: () => {
return null
}
},
// "sts"Number22
sts: {
type: Number,
default: () => {
return 2
}
}
})
})
const toProdPage = (e) => {
// "toProdPage"
const toProdPage = (e) => {
// "e""data-prodid"idid
const prodid = e.currentTarget.dataset.prodid
// 使uni-app"uni.navigateTo""/pages/prod/prod"id便
uni.navigateTo({
url: '/pages/prod/prod?prodid=' + prodid
})
}
}
</script>
<style scoped lang="scss">
@use './production.scss';
// "./production.scss"使scoped
@use './production.scss';
</style>

Loading…
Cancel
Save