<template>
  <CommonListPage
    :title="'不可移动文物'"
    :prevPage="{ title: '保护传承' }"
    :dropDownNames="dropdownNames"
    :pageSize="8"
    :rowType="2"
    :load="loadData"
    :loadDetail="loadDetail"
    :tagsData="tagsData"
    :defaultSelectTag="tagsData[0].id"
    detailsPage="/details/artifact"
  />
</template>

<script setup lang="ts">
import CommonContent, { GetContentListParams } from '@/api/CommonContent';
import { onMounted, ref } from 'vue';
import UnmoveableContent from '@/api/inheritor/UnmoveableContent';
import type { DropDownNames } from '@/components/content/CommonListPage.vue';

async function loadDetail(id: number, item: any) {
  const res = await UnmoveableContent.getContentDetail(id);
  res.addItems = [
    { name: '地理位置', text: res.address, span: 12 },
    { name: '建筑时间', text: res.age, span: 12 },
    { name: '保护级别', text: res.levelText, span: 12 },
  ];
  return res;
}
async function loadData(
  page: number, 
  pageSize: number,
  selectedTag: number,
  searchText: string,
  dropDownValues: number[]
) {

  const res = await UnmoveableContent.getContentList(new GetContentListParams().setSelfValues({
    crType: selectedTag == 0 ? undefined: selectedTag,
    level: dropDownValues[0] == 0 ? undefined: dropDownValues[0],
    region: dropDownValues[1] == 0 ? undefined: dropDownValues[1],
    keywords: searchText,
  }), page, pageSize);

  return { 
    page: page,
    total: res.total,
    data: res.list.map((item, index) => {
      return {
        id: item.id,
        title: item.title ?? '!!title!!',
        desc: item.desc,
        image: item.thumbnail || item.image,
        addItems: [
          { name: '地理位置', text: item.address, span: 12 },
          { name: '建筑时间', text: item.age, span: 12 },
          { name: '保护级别', text: item.levelText, span: 12 },
        ],
      };
    }),
  }
}

const dropdownNames = ref<DropDownNames[]>([]);

//子分类
const tagsData = ref([
  { id: 0, name: '全部' },
]);

onMounted(async () => {
  tagsData.value = tagsData.value.concat((await CommonContent.getCategoryList(3)).map((item) => ({
    id: item.id,
    name: item.title,
  })));
  dropdownNames.value.push({ 
    options: [{
      id: 0, 
      name: '全部'
    }].concat((await CommonContent.getCategoryList(2)).map((item) => ({
      id: item.id,
      name: item.title,
    }))),
    defaultSelectedValue: 0,
  });
  dropdownNames.value.push({ 
    options: [{
      id: 0, 
      name: '全部'
    }].concat((await CommonContent.getCategoryList(1)).map((item) => ({
      id: item.id,
      name: item.title,
    }))),
    defaultSelectedValue: 0,
  });
})
</script>

<style>
</style>


