89 lines
1.9 KiB
Vue
89 lines
1.9 KiB
Vue
<!--
|
||
@name: 新品首发
|
||
@author: kahu4
|
||
@date: 2023-10-27 14:42
|
||
@description:index
|
||
@update: 2023-10-27 14:42
|
||
-->
|
||
<script setup>
|
||
import { onLoad } from '@dcloudio/uni-app'
|
||
import { usePage } from "@/hooks";
|
||
import { getProductList } from "@/api/product";
|
||
import Empty from "@/components/Empty/index.vue"
|
||
import ListLoadOver from "@/components/ListLoadOver/index.vue"
|
||
import ListLoadLoading from "@/components/ListLoadLoading/index.vue"
|
||
import { useRouter } from "@/hooks/useRouter";
|
||
|
||
const {refresh, dataList, loadend, loading, listEmpty} = usePage(getProductList)
|
||
const {push} = useRouter()
|
||
onLoad(() => {
|
||
refresh()
|
||
})
|
||
|
||
|
||
</script>
|
||
|
||
<template>
|
||
<blank size="15"></blank>
|
||
|
||
<activity
|
||
title="商品推荐"
|
||
more="查看更多"
|
||
@moreClick="push({ url: '/pages/goodsList/goodsList' })"
|
||
>
|
||
<view class="card goods-row">
|
||
<template v-if="!listEmpty">
|
||
<uv-grid
|
||
:border="false"
|
||
:col="2"
|
||
:gutter="10"
|
||
>
|
||
<uv-grid-item
|
||
v-for="(item, index) in dataList"
|
||
:key="index"
|
||
>
|
||
<goods
|
||
class="item"
|
||
link
|
||
card
|
||
:data="item"
|
||
:storeName="item.storeName"
|
||
:price="item.price"
|
||
:stock="true"
|
||
>
|
||
</goods>
|
||
</uv-grid-item>
|
||
</uv-grid>
|
||
</template>
|
||
<Empty
|
||
v-else
|
||
:iconSrc="emptyIcon"
|
||
>
|
||
这里空空如也~
|
||
</Empty>
|
||
<!-- 加载中 -->
|
||
<ListLoadLoading v-if="loading" />
|
||
<!-- 加载完毕-->
|
||
<ListLoadOver v-if="loadend" />
|
||
</view>
|
||
|
||
</activity>
|
||
</template>
|
||
|
||
<style
|
||
scoped
|
||
lang="scss"
|
||
>
|
||
@import "@/style/main.scss";
|
||
|
||
.goods-row {
|
||
@include usePadding(20, 20);
|
||
border-radius: 15rpx;
|
||
|
||
.item {
|
||
width: 100%;
|
||
margin: 0 10rpx;
|
||
}
|
||
}
|
||
</style>
|