index.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <div>
  3. <div>
  4. <VideoDetails :isState="isState" ref="VideoDetailsRef" @onGetPageCommentNew="onGetPageCommentNew" />
  5. </div>
  6. <div>
  7. <TallList ref="tallList" v-show="!isState" />
  8. </div>
  9. <forumBtn :forumData="forumData" :isShow="[1, 3]"></forumBtn>
  10. </div>
  11. </template>
  12. <script setup>
  13. import Header from '@/views/portal/components/Header.vue'
  14. import BreadCrumb from '@/views/portal/components/BreadCrumb.vue'
  15. import Footer from '@/views/portal/components/Footer.vue'
  16. import VideoDetails from './components/VideoDetails.vue'
  17. import { useRoute, useRouter } from 'vue-router'
  18. import TallList from './components/TallList.vue'
  19. import { addViewCount, detail, add, queryList } from '@/api/portal'
  20. import EventBus from '@/utils/EventBus'
  21. import classCentre from '@/api/student/classCentre'
  22. const router = useRouter()
  23. const indexType = ref('resourceCenter')
  24. const itemData = ref({})
  25. const tallList = ref(null)
  26. const VideoDetailsRef = ref(null)
  27. const route = useRoute()
  28. const isState = ref(route.query.state || null)
  29. const onGetPageCommentNew = (item) => {
  30. tallList.value.onGetPageCommentNew(item)
  31. }
  32. const onChangeCurrent = (current) => {
  33. indexType.value = current
  34. router.push({
  35. path: '/' + current
  36. })
  37. }
  38. const setData = (item) => {
  39. getData(item)
  40. }
  41. const getData = (item) => {
  42. detail({ id: item.id })
  43. .then((res) => {
  44. if (res.code == 200) {
  45. itemData.value = res.data
  46. addFootprint()
  47. }
  48. })
  49. .catch((err) => {})
  50. }
  51. onMounted(() => {
  52. const id = route.query.id
  53. if (id != undefined && id != '') {
  54. addViewCount({ id: id })
  55. getData({ id: id })
  56. }
  57. })
  58. const addFootprint = () => {
  59. classCentre.footprintAdd({
  60. userFileId: route.query.id, //userfile文件id
  61. extendName: itemData.value.suffix, //扩展名
  62. fileId: itemData.value.fileId, //文件id
  63. fileName: itemData.value.fileName, //文件名称
  64. filePath: itemData.value.fileUrl, //文件路劲
  65. resourceRecordId: itemData.value.id //文件记录id
  66. })
  67. }
  68. const forumData = computed(() => {
  69. return {
  70. id: route.query.id,
  71. title: itemData.value.fileName
  72. }
  73. })
  74. defineExpose({
  75. setData
  76. })
  77. </script>
  78. <style scoped>
  79. .content {
  80. border: 1px solid #00000011; /* 灰色细边框 */
  81. }
  82. .scroll-container {
  83. height: 100vh;
  84. overflow-y: auto;
  85. }
  86. </style>