<script lang="ts" setup>
import { ref, onMounted } from 'vue'
import { fetchSubjectConfigInfo } from '@/services/subject/info'
import type { SubjectCatalogResult } from '@/services/subject/catalog'
import Progress from './components/progress.uvue'
import Back from '@/components/back.uvue'
import Loading from '@/components/loading.uvue'
import { config } from '@/config'
import { router } from "@/.cool";
const isLoading = ref(true)
const visible = ref<boolean>(false)
const dataList = ref<SubjectCatalogResult[]>([])
const catalog = ref<SubjectCatalogResult>()
async function getDataList() {
  const res = await fetchSubjectConfigInfo({ id: '69c49329091547710d451f9d' })
  dataList.value = res.catalogList || []
  catalog.value = res?.catalogList?.[0]
}
onMounted(async () => {
  try {
    await getDataList()
    isLoading.value = false
  } catch (err) {
    console.log(err);
    isLoading.value = false
  }
})
function handleSelect(item: SubjectCatalogResult) {
  catalog.value = item
  visible.value = false
}
function handleDetail(item: SubjectCatalogResult) {
  router.push({
    path: "/pages/catalog/detail",
    query: {
      id: item.id,
    }
  });
}
</script>

<template>
  <Loading v-show="isLoading" />
  <cl-page v-show="!isLoading">
    <Back />
    <img src="https://oss.xiaoxiongcode.com/static/home/2.png" alt="" class="w-full h-full object-cover" />
    <!-- 精灵图动画 -->
    <cl-image src="https://oss.xiaoxiongcode.com/static/home/3.gif" mode="heightFix"
      class="!absolute bottom-0 left-0 !w-[44vh] !h-[55vh] z-[1]" />
    <view>

    </view>
    <!-- 顶部右侧光标签 -->
    <view class="light-tag" @tap="visible = true">
      <image class="light-icon" v-if="catalog?.fileList?.[0]?.url" :src="config.baseUrl + catalog?.fileList?.[0]?.url">
      </image>
      <text class="light-text">{{ catalog?.name }}</text>
      <cl-icon name="arrow-left-right-line" color="primary"></cl-icon>
    </view>
    <view class="boxs">
      <scroll-view class="scroll-view_H" direction="horizontal" :show-scrollbar="false">
        <view class="scroll-view-item_H bg-[white]" v-for="course in catalog?.courseList || []" :key="course.id"
          @tap="handleDetail(course)">
          <cl-image :src="config.baseUrl + course?.fileList?.[0]?.url" mode="heightFix"
            class="!w-full !h-[26vh] mb-[2px] rounded-xl"></cl-image>
          <text class="text-[16px] font-bold">{{
            course.mainTitle }}</text>
          <text class="text-[14px] text-[#666]">{{
            course.assistantTitle }}</text>
          <view>
            <Progress :progress="30" />
          </view>
        </view>
      </scroll-view>
    </view>
    <view class="footer">
      <view>
        <cl-image src="https://oss.xiaoxiongcode.com/static/home/4.png" mode="heightFix"
          class=" !h-[40px] mb-[2px] rounded-xl"></cl-image>
        <text class="text-[14px] text-white font-bold text-stroke-custom">虚拟实验</text>
      </view>
      <view>
        <cl-image src="https://oss.xiaoxiongcode.com/static/home/5.png" mode="heightFix"
          class=" !h-[40px] mb-[2px] rounded-xl"></cl-image>
        <text class="text-[14px] text-white font-bold text-stroke-custom">我的收获</text>
      </view>
      <view>
        <cl-image src="https://oss.xiaoxiongcode.com/static/home/6.png" mode="heightFix"
          class=" !h-[40px] mb-[2px] rounded-xl"></cl-image>
        <text class="text-[14px] text-white font-bold text-stroke-custom">学习报告</text>
      </view>
    </view>
    <cl-popup v-model="visible" :show-header="false" direction="center" :size="500">
      <view class="p-4">
        <cl-row :gutter="0">
          <cl-col :span="6" v-for="item in dataList || []" :key="item.id" :pt="{
            className: '!p-2'
          }" @tap="handleSelect(item)">
            <view class="select-item" :class="{ selected: item.id === catalog?.id }">
              <image :src="config.baseUrl + item?.fileList?.[0]?.url" class="w-[30rpx] h-[30rpx] mb-[2px]"></image>
              <text>{{ item.name }}</text>
            </view>
          </cl-col>
        </cl-row>
      </view>
    </cl-popup>
  </cl-page>
</template>



<style lang="scss" scoped>
.boxs {
  @apply w-[100vw] h-[50vh] absolute top-1/2 left-[50vh] z-[1];
  transform: translateY(-50%);
}

.scroll-view_H {
  width: 100%;
  height: 100%;
  flex-direction: row;
}

.scroll-view-item_H {
  @apply w-[40vh] h-[50vh] mr-[20px] rounded-2xl border-[5px] border-[#1D4BD9] border-solid border-b-[10px] p-1 flex items-center;
}

.light-tag {
  @apply absolute top-3 left-1/2 z-[1] flex flex-row items-center bg-white px-3 py-2 font-bold rounded-full shadow-md;
  transform: translateX(-50%);

  .light-icon {
    width: 20px;
    height: 20px;
    margin-right: 3px;
  }

  .light-text {
    font-size: 16px;
    width: 100px;
  }
}

.select-item {
  @apply flex items-center justify-center rounded-xl border-[3px] border-[#1D4BD9] border-solid border-b-[5px] px-4 py-2 font-bold;
}

.selected {
  @apply border-green-500;
}

.footer {
  @apply absolute bottom-2 right-5 z-[1] flex flex-row items-center justify-center gap-4;
}

.text-stroke-custom {
  color: white;
  text-shadow:
    /* 左上角投影 */
    -1px -1px 0 #1D4BD9,
    /* 右上角投影 */
    1px -1px 0 #1D4BD9,
    /* 左下角投影 */
    -1px 1px 0 #1D4BD9,
    /* 右下角投影 */
    1px 1px 0 #1D4BD9;

}
</style>
