138 lines
3.4 KiB
Vue
138 lines
3.4 KiB
Vue
<template>
|
|
<view class="choiceness_warp">
|
|
<view class="choiceness_title">
|
|
<up-image src="/static/common/jingxuan_left.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
|
<view class="choiceness_title_msg">为您精选</view>
|
|
<up-image src="/static/common/jingxuan_right.png" width="24" height="8" bgColor="#f1f6ff00"></up-image>
|
|
</view>
|
|
<view class="choiceness_product" :class="platformType ? '' : 'iosplatformType'">
|
|
<view v-for="item in productList" :key="item.id" class="choiceness_product_item" @click="jumpInfo(item)">
|
|
<view>
|
|
<up-image :lazy-load="true" :src="item.url" width="100%" height="140" bgColor="#f1f6ff00"></up-image>
|
|
<view class="product_item_name">{{ item.title }}</view>
|
|
</view>
|
|
<view class="product_item_price">
|
|
<view class="price_">
|
|
<text>¥</text>
|
|
<text style="color: 36rpx">{{ item.price }}</text>
|
|
</view>
|
|
<view class="price_sell">全网销量{{ limit999(item.sales) }}件</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import { searchList } from "@/api/product.js";
|
|
|
|
export default {
|
|
name: "choiceness",
|
|
data() {
|
|
return {
|
|
productList: [],
|
|
platformType: true,
|
|
};
|
|
},
|
|
mounted() {
|
|
/*#ifdef APP-PLUS*/
|
|
const appUpdate = uni.getStorageSync("platform");
|
|
this.platformType = appUpdate == "android" ? "ANDROID" : "IOS";
|
|
/*#endif*/
|
|
this.getSearchList();
|
|
},
|
|
methods: {
|
|
limit999(n) {
|
|
const num = Number(n);
|
|
if (isNaN(num) || num < 10000) {
|
|
return n != null && n !== '' ? String(n) : '0';
|
|
}
|
|
return `${Math.floor(num / 10000)}万+`;
|
|
},
|
|
//
|
|
jumpInfo(item) {
|
|
console.log('秦星星---1', item);
|
|
uni.navigateTo({
|
|
url: "/pages/other_package/productInfo/productInfo?id=" + item.id,
|
|
});
|
|
},
|
|
async getSearchList() {
|
|
const params = {
|
|
isRecomm: true,
|
|
page: 1,
|
|
pageSize: 66,
|
|
};
|
|
const resp = await searchList(params);
|
|
if (resp && resp.bizcode === 100) {
|
|
this.productList = resp.data;
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.choiceness_warp {
|
|
margin-top: 35rpx;
|
|
}
|
|
|
|
.choiceness_title {
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
.choiceness_title_msg {
|
|
margin: 0 18rpx;
|
|
}
|
|
}
|
|
|
|
.choiceness_product {
|
|
margin-top: 40rpx;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
padding-bottom: calc(env(safe-area-inset-bottom) + 100rpx);
|
|
|
|
&.iosplatformType {
|
|
padding-bottom: 100rpx;
|
|
}
|
|
|
|
.choiceness_product_item {
|
|
background: #ffffff;
|
|
box-shadow: 0rpx 0rpx 10rpx 0rpx #eeeeee;
|
|
border-radius: 24rpx;
|
|
width: 43%;
|
|
margin-bottom: 20rpx;
|
|
padding: 20rpx;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.product_item_name {
|
|
font-weight: bold;
|
|
font-size: 26rpx;
|
|
color: #333333;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.product_item_price {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-top: 10rpx;
|
|
|
|
.price_ {
|
|
font-weight: bold;
|
|
font-size: 26rpx;
|
|
color: $app-bt-bj;
|
|
}
|
|
|
|
.price_sell {
|
|
font-weight: 400;
|
|
font-size: 18rpx;
|
|
color: #999999;
|
|
}
|
|
}
|
|
}
|
|
</style>
|