moveable.vue 2.4 KB

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