<template>
  <layout>
    <uv-sticky customNavHeight="0">
      <uv-navbar
          :fixed="false"
          title="商品列表"
          left-arrow
          @leftClick="goBack"
      />
      <view class="search-bar">
        <uv-search
            v-model="keyword"
            shape="round"
            placeholder="搜索商品"
            show-action
            @custom="onSearch"
            @clear="onSearch"
            @search="onSearch"
        >
        </uv-search>
      </view>
    </uv-sticky>

    <blank size="15"></blank>

    <container>
      <template v-if="!listEmpty">
        <uv-grid
            :border="false"
            :col="1"
            :gutter="10"
        >
          <uv-grid-item
              v-for="(item, index) in dataList"
              :key="index"
          >
            <card class="pro-card">
              <goods
                  link
                  list
                  :data="item"
                  :storeName="item.storeName"
                  :price="item.price"
                  :stock="!item.campaignType"
                  :groupBuy="item.campaignType === 1"
                  :original="item.campaignType === 1"
                  :buyProgress="[2,3].includes(item.campaignType)"
                  :total="[2,3].includes(item.campaignType)"
              >
              </goods>
            </card>
          </uv-grid-item>
        </uv-grid>
      </template>
      <Empty
          v-else
          :iconSrc="emptyCollectIcon"
      >
        这里空空如也~
      </Empty>
      <!-- 加载中 -->
      <ListLoadLoading v-if="loading" />
      <!-- 加载完毕-->
      <ListLoadOver v-if="loadend" />
    </container>

  </layout>
  <ReturnTop :scrollTop="scrollTop" />

</template>

<script setup>

import { getProductList } from '@/api/product'
import { onLoad } from '@dcloudio/uni-app'
import { usePage } from '@/hooks'
import { useRouter } from "@/hooks/useRouter";
import Empty from "@/components/Empty/index.vue"
import ListLoadOver from "@/components/ListLoadOver/index.vue"
import ListLoadLoading from "@/components/ListLoadLoading/index.vue"
import { emptyCollectIcon } from "@/utils/images";
import ReturnTop from "@/components/ReturnTop/index.vue"
import { useScroll } from "@/hooks/useScroll";

const {scrollTop} = useScroll()
const {getParams, goBack} = useRouter()
const {keyword, refresh, sid, couponId, dataList, loadend, loading, listEmpty} = usePage(getProductList)


onLoad((options) => {
  const params = getParams(options)
  keyword.value = params.keyword || ''
  sid.value = params.sid || ''
  couponId.value = params.couponId || ''
  refresh()
})

const onSearch = () => {
  refresh()
}


</script>

<style lang="scss">
.pro-card {
  margin-bottom: 20rpx;
  border-radius: 15rpx;
  width: 100%;
}
</style>
