moveable.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <CommonListPage
  3. :title="'可移动文物'"
  4. :dropDownNames="dropdownNames"
  5. :pageSize="8"
  6. :load="loadData"
  7. :loadDetail="loadDetail"
  8. :tagsData="tagsData"
  9. :defaultSelectTag="tagsData[0].id"
  10. detailsPage="/details/artifact"
  11. />
  12. </template>
  13. <script setup lang="ts">
  14. import { GetContentListParams } from '@/api/CommonContent';
  15. import { onMounted, ref } from 'vue';
  16. import MoveableContent from '@/api/inheritor/MoveableContent';
  17. import type { DropDownNames } from '@/components/content/CommonListBlock.vue';
  18. async function loadDetail(id: number, item: any) {
  19. const res = await MoveableContent.getContentDetail(id);
  20. res.addItems = [
  21. { name: '保护级别', text: item.crTypeText || '未定级', span: 12 },
  22. ];
  23. return res;
  24. }
  25. async function loadData(
  26. page: number,
  27. pageSize: number,
  28. selectedTag: number,
  29. searchText: string,
  30. dropDownValues: number[]
  31. ) {
  32. const res = await MoveableContent.getContentList(new GetContentListParams().setSelfValues({
  33. crType: selectedTag == 0 ? undefined: selectedTag,
  34. level: dropDownValues[0] == 0 ? undefined: dropDownValues[0],
  35. region: dropDownValues[1] == 0 ? undefined: dropDownValues[1],
  36. keywords: searchText,
  37. }), page, pageSize);
  38. return {
  39. page: page,
  40. total: res.total,
  41. data: res.list.map((item, index) => {
  42. return {
  43. ...item,
  44. addItems: [
  45. { name: '保护级别', text: item.crTypeText || '未定级', span: 12 },
  46. ],
  47. };
  48. }),
  49. }
  50. }
  51. const dropdownNames = ref<DropDownNames[]>([]);
  52. //子分类
  53. const tagsData = ref([
  54. { id: 0, name: '全部' },
  55. ]);
  56. onMounted(async () => {
  57. tagsData.value = tagsData.value.concat((await MoveableContent.getCategoryList(310)).map((item) => ({
  58. id: item.id,
  59. name: item.title,
  60. })));
  61. dropdownNames.value.push({
  62. options: [{
  63. id: 0,
  64. name: '全部'
  65. }].concat((await MoveableContent.getCategoryList(2)).map((item) => ({
  66. id: item.id,
  67. name: item.title,
  68. }))),
  69. label: '文物级别',
  70. defaultSelectedValue: 0,
  71. });
  72. dropdownNames.value.push({
  73. options: [{
  74. id: 0,
  75. name: '全部'
  76. }].concat((await MoveableContent.getCategoryList(1)).map((item) => ({
  77. id: item.id,
  78. name: item.title,
  79. }))),
  80. label: '区域',
  81. defaultSelectedValue: 0,
  82. });
  83. })
  84. </script>
  85. <style>
  86. </style>