read.vue 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <script setup lang="ts">
  2. import { ref, onMounted } from 'vue'
  3. import { useStore } from 'vuex'
  4. import { useRoute } from "vue-router"
  5. import banner from '@/components/layout/banner.vue'
  6. import recomMendation from '@/components/layout/recomMendation.vue'
  7. const store = useStore()
  8. const route = useRoute()
  9. const recomMendationList = ref([]) //推荐内容
  10. setTimeout(()=>{
  11. recomMendationList.value = recomMendationFilter(store.state.recomMendation)
  12. },1000)
  13. //推荐内容过滤
  14. function recomMendationFilter(data:any){
  15. let array = []
  16. for(let i =0;i<data.length;i++){
  17. if(data[i].id != route.query?.id){
  18. array.push(data[i])
  19. }
  20. }
  21. return array
  22. }
  23. //页面内容初始化
  24. function init(){
  25. const data = ref(store.state.menuList)
  26. let str =ref("")
  27. let sub = ref()
  28. const paramsData = ref({})
  29. if(route.path.indexOf("_")){
  30. str.value = route.path.split("_")[0]
  31. }
  32. for(let i=0;i<data.value.length;i++){
  33. if( route.path == data.value[i].path || str == data.value[i].path){
  34. if(route.query?.categoryid && !route.query.dup){
  35. sub.value = i
  36. }
  37. }
  38. }
  39. if(route.query?.categoryid && !route.query.dup){
  40. paramsData.value = {
  41. params:{
  42. categoryid: route.query?.categoryid,
  43. pageNum:1,
  44. pageSize:1,
  45. order:"sortindex",
  46. articleid: route.query?.id,
  47. id: route.query?.id,
  48. details:true
  49. },
  50. index:route.path,
  51. sub:sub
  52. }
  53. }
  54. store.dispatch('getPageData',paramsData.value)
  55. }
  56. onMounted(() => {
  57. init()
  58. });
  59. </script>
  60. <template>
  61. <div class="pageContain">
  62. <section class="common-bradcrumb-section" >
  63. <banner />
  64. </section>
  65. <section class="product-content-section pt-60">
  66. <div class="container" v-if="store.state.pageContent.length>0">
  67. <div class="row">
  68. <div class="col-lg-12 col-md-12 content">
  69. <div class="read_content mb-60">
  70. <div class="section-title text-center both-border mb-60 d-flex justify-content-between">
  71. <span class="title-tag2 text-left" >{{store.state.pageContent[0].title}}</span>
  72. <a href="javascript:history.back(-1)"><img src="@/assets/img/product/close.png" alt=""></a>
  73. </div>
  74. <div class="row">
  75. <div class=" col-lg-12 col-md-12 " >
  76. <div v-html="store.state.pageContent[0].content" class="text-left"></div>
  77. </div>
  78. </div>
  79. </div>
  80. <recomMendation :data="recomMendationList" v-if="recomMendationList.length>0"/>
  81. </div>
  82. </div>
  83. </div>
  84. </section>
  85. </div>
  86. </template>