<route lang="json">
{ "style": { "navigationBarTitleText": "主页数据", "navigationBarBackgroundColor": "#fff" } }
</route>
<script setup lang="ts">
import SectionHeading from '@/components/section-heading.vue'
import {
  getDesignerInfo,
  getBrowseHistories,
  getReserveHistory,
  countThisYear,
} from '../../../../core/libs/requests'
import { useUserStore } from '../../../../store'
import { storeToRefs } from 'pinia'
import Card from '@/components/card.vue'
import PageHelper from '@/components/page-helper.vue'
import dayjs from 'dayjs'
import PageHelperEvo from '@/components/page-helper-evo.vue'

const userStore = useUserStore()
const { userInfo } = storeToRefs(userStore)
const current = ref('累计')
const request =
  ref<
    () => Promise<IResData<{ shareCount: number; viewCount: number; winCustomerCount: number }>>
  >()
const data = ref()
const info = computed(() => [
  { label: '分享', value: data.value?.shareCount || 0, unit: '次' },
  { label: '浏览', value: data.value?.viewCount || 0, unit: '次' },
  { label: '获客', value: data.value?.winCustomerCount || 0, unit: '人' },
])
const tab = ref('分享')
const tabs = ref([
  { label: '分享明细', value: '分享' },
  { label: '浏览明细', value: '浏览' },
  { label: '获客明细', value: '获客' },
])
const query = computed(() => ({}))
const setData = async ({ value }) => {
  console.log(1111)
  console.log(value)

  request.value = {
    累计: () =>
      getDesignerInfo(userInfo.value.userId).then((res) => ({
        code: res.code,
        msg: res.msg,
        data: {
          shareCount: res.data.shareCount,
          viewCount: res.data.viewCount,
          winCustomerCount: res.data.winCustomerCount,
        },
      })),
    本年: () =>
      countThisYear({ userId: userInfo.value.userId, year: new Date().getFullYear() }).then(
        (res) => ({
          code: res.code,
          msg: res.msg,
          data: {
            shareCount: res.data.find((it) => String(it.bizType) === '1')?.quantity || 0,
            viewCount: res.data.find((it) => String(it.bizType) === '3')?.quantity || 0,
            winCustomerCount: res.data.find((it) => String(it.bizType) === '2')?.quantity || 0,
          },
        }),
      ),
  }[value]
  const { data: resData } = await request.value()
  data.value = resData
  console.log(data.value)
}
onMounted(async () => {
  console.log(1111)

  await setData({ value: current.value })
  console.log(data.value)
  // await countThisYear({ userId: userInfo.value.userId, year: new Date().getFullYear() })
})
</script>
<template>
  <div class="flex-grow flex flex-col gap-5 px-3.5 py-6">
    <Card>
      <SectionHeading title="主页数据">
        <template #append>
          <div>
            <wd-segmented
              v-model:value="current"
              :options="['累计', '本年']"
              @change="setData"
            ></wd-segmented>
          </div>
        </template>
      </SectionHeading>
      <div class="flex mt-7">
        <template v-for="(it, i) in info" :key="i">
          <div class="flex-1 flex flex-col items-center gap-2">
            <div class="flex items-end gap-0.5">
              <div class="text-black text-2xl font-medium font-['D-DIN-PRO'] leading-6">
                {{ it.value }}
              </div>
              <div class="text-[#333333] text-sm font-normal font-['PingFang_SC']">
                {{ it.unit }}
              </div>
            </div>
            <div class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal">
              {{ it.label }}
            </div>
          </div>
        </template>
      </div>
    </Card>
    <Card>
      <wd-tabs v-model="tab">
        <template v-for="(it, i) in tabs" :key="i">
          <wd-tab :title="it.label" :name="it.value"></wd-tab>
        </template>
      </wd-tabs>
      <template v-if="tab === '分享'">
        <PageHelper :request="getBrowseHistories" :query="{ bizType: 1 }">
          <template #default="{ source }">
            <template v-for="(it, i) in source.list" :key="i">
              <div class="py-4">
                <div class="flex">
                  <div
                    class="flex-1 text-black text-sm font-normal font-['PingFang_SC'] leading-normal"
                  >
                    <!-- 银色飞行船 -->
                    {{ it.creatorName }}
                  </div>
                  <div
                    class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal"
                  >
                    <!-- 浏览时长：{{ (Number(it.duration) / 60).toFixed(2) }}分钟 -->
                  </div>
                </div>
                <div class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal">
                  分享时间：
                  <!-- 2024/04/01 14:52 -->
                  {{ dayjs(it.createTime).format('YYYY/MM/DD HH:mm') }}
                </div>
              </div>
              <div v-if="i < source.list.length - 1" class="bg-[#f6f6f6] h-.25"></div>
            </template>
          </template>
        </PageHelper>
      </template>
      <template v-if="tab === '浏览'">
        <PageHelper :request="getBrowseHistories" :query="query">
          <template #default="{ source }">
            <template v-for="(it, i) in source.list" :key="i">
              <div class="py-4">
                <div class="flex">
                  <div
                    class="flex-1 text-black text-sm font-normal font-['PingFang_SC'] leading-normal"
                  >
                    <!-- 银色飞行船 -->
                    {{ it.creatorName }}
                  </div>
                  <div
                    class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal"
                  >
                    浏览时长：{{ (Number(it.duration) / 60).toFixed(2) }}分钟
                  </div>
                </div>
                <div class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal">
                  查看时间：
                  <!-- 2024/04/01 14:52 -->
                  {{ dayjs(it.createTime).format('YYYY/MM/DD HH:mm') }}
                </div>
              </div>
              <div v-if="i < source.list.length - 1" class="bg-[#f6f6f6] h-.25"></div>
            </template>
          </template>
        </PageHelper>
      </template>
      <template v-if="tab === '获客'">
        <PageHelperEvo :request="getReserveHistory" :query="query">
          <template #default="{ source }">
            <template v-for="(it, i) in source.list" :key="i">
              <div class="py-4">
                <div class="flex gap-3">
                  <div class="text-black text-sm font-normal font-['PingFang_SC'] leading-normal">
                    <!-- 银色飞行船 -->
                    {{ it.appointmentName }}
                  </div>
                  <div class="text-black text-sm font-normal font-['PingFang_SC'] leading-normal">
                    <!-- 浏览时长：{{ (Number(it.duration) / 60).toFixed(2) }}分钟 -->
                    {{ it.appointmentPhone }}
                  </div>
                </div>
                <div class="text-black/40 text-xs font-normal font-['PingFang_SC'] leading-normal">
                  获客时间：
                  <!-- 2024/04/01 14:52 -->
                  {{ dayjs(it.createTime).format('YYYY/MM/DD HH:mm') }}
                </div>
              </div>
              <div v-if="i < source.list.length - 1" class="bg-[#f6f6f6] h-.25"></div>
            </template>
          </template>
        </PageHelperEvo>
      </template>
    </Card>
  </div>
</template>
