<script setup>
import {userArtworks} from "@/api/goods/index.js";
import {authStore} from "@/stores/auth/index.js";
import xImage from '@/components/x-image/index.vue'
import {goodStore} from "~/stores/goods/index.js";
import {ref} from "vue";
definePageMeta({
  layout: 'default',
  title: '我的',
  i18n: 'menu.profile',
})
const {artWorkDetail} = goodStore()
const myList=ref([])
const showMyList=ref([])
const {userInfo}= authStore()
const groupAndSortByDate=(data)=> {
  if (!Array.isArray(data)) {
    return
  }
  return Object.values(data.reduce((acc, curr) => {
    if (!acc[curr.userCreatedAt]) {
      acc[curr.userCreatedAt] = {
        userCreatedAt: curr.userCreatedAt,
        list: []
      }
    }
    acc[curr.userCreatedAt].list.push(curr)
    return acc;
  }, {})).sort((a, b) => new Date(b.userCreatedAt) - new Date(a.userCreatedAt));
}
const initData=async ()=>{
 const res=await userArtworks({})
  if (res.status===0){
    myList.value=res.data.data
    showMyList.value=groupAndSortByDate(myList.value)
  }
}
const router = useRouter()
const localState = ref({
  finished: false,
  refreshing: false,
  showDetail: false,
  showHeight: ''
})
initData()
const goPay=()=>{
  router.push({
    path:'/signature/personal-Info'
  })
}
const goDetail=(item)=>{
  router.push({
    path:'/artDetail',
    query:{
      uuid:item.uuid
    }
  })
}
const onRefresh = async () => {
  try {
    localState.value.refreshing = true
    localState.value.finished = false
    const { finished } = await getArtworkList(true)
    localState.value.finished = finished
  } finally {
    localState.value.refreshing = false
  }
}
</script>

<template>
  <div class="w-[100vw] bg-[url('@/static/images/3532@2x.png')] bg-cover pt-43px flex-grow-1 flex flex-col">
  <div class="flex items-center px-16px mb-43px">
    <div class="mr-23px">
      <img class="w-57px h-57px" src="@/static/images/5514@2x.png" alt="">
    </div>
    <div class="flex flex-col">
      <div class="text-18px text-#181818">{{userInfo.realName}}</div>
      <div class="text-#575757 text-14px">{{userInfo.telNum}}</div>
    </div>
  </div>
    <div class="flex-grow-1 ">
      <div class="border-b-1px border-b-#D3D3D3  px-16px flex">
        <div class="text-#000 text-16px border-b-3 border-b-#2B53AC h-36px">我的拍品</div>
      </div>
      <van-pull-refresh       v-model="localState.refreshing"
                              success-text="刷新成功"
                              :success-duration="700"
                              @refresh="onRefresh">
        <van-list
            finished-text="没有更多了"
        >
          <div class="px-16px pt-14px" v-for="(item,index) of showMyList" >
            <div class="text-#575757 text-14px mb-3px">{{item.userCreatedAt}}</div>
            <div class="flex mb-22px" v-for="(item1,index1) of item.list" @click="goDetail(item1)">
              <div class="flex-shrink-0 mr-10px rounded-4px overflow-hidden">
                <x-image class="w-80px h-80px" :src="item1?.auctionArtworkInfo?.artwork?.hdPic" :preview="false" alt=""/>
              </div>
              <div class="flex flex-col justify-between grow-1">
                <div class="text-#000 text-16px ellipsis line-height-21px">{{item1?.auctionArtworkInfo?.artworkTitle}}</div>
                <div class="flex justify-between">
                  <div>
                    <div class="text-#575757 text-14px line-height-none mb-5px">起拍价:RMB 1,000</div>
                    <div class="text-#B58047 text-14px line-height-none">成交价:RMB 10,000</div>
                  </div>
                  <div v-if="[1,3,4].includes(item1.status)" @click.stop="goPay">
                    <van-button class="w-73px !h-30px" type="primary"><span class="text-12px">去支付</span></van-button>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </van-list>
      </van-pull-refresh>
    </div>
  </div>
</template>
<style scoped>
.ellipsis {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
</style>