index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="client-newsInfor-page">
  3. <!-- 新闻资讯banner栏 -->
  4. <!-- <div class="newsInfor-banner" @click="clickBanner(bannerList[0].url)"
  5. :style="{backgroundImage: `url(${bannerList[0].pic||require(`~/static/images/client/course/course-banner-background.jpg`)})`}">
  6. </div>-->
  7. <!-- 新闻资讯 -->
  8. <div class="client-container newsInfor-content-box">
  9. <ul class="newsInfor-content-ul" style="width:100%">
  10. <template v-if="activeIndex!=2" >
  11. <new-list
  12. v-for="(item,index) in newsList"
  13. :newsData="item"
  14. :key="index"></new-list>
  15. </template>
  16. <template v-else>
  17. <NewsListRiZhi v-for="(item,index) in newsList"
  18. :newsData="item"
  19. :key="index"></NewsListRiZhi>
  20. </template>
  21. </ul>
  22. <div class="client-el-pagination">
  23. <el-pagination
  24. background
  25. small
  26. class="mta-hidden-sm"
  27. layout="prev, pager, next"
  28. @current-change="handleCurrentChange"
  29. :current-page.sync="currentPage"
  30. :page-size="pageSize"
  31. :total="totalLists">
  32. </el-pagination>
  33. <el-pagination
  34. background
  35. class="mta-hidden-xs"
  36. layout="prev, pager, next"
  37. @current-change="handleCurrentChange"
  38. :current-page.sync="currentPage"
  39. :page-size="pageSize"
  40. :total="totalLists">
  41. </el-pagination>
  42. </div>
  43. </div>
  44. </div>
  45. </template>
  46. <script>
  47. import NewList from '~/components/news/NewsList';
  48. import NewsListRiZhi from '~/components/news/NewsListRiZhi';
  49. const defaultNewsClassifyId = 0;
  50. export default {
  51. name: 'news',
  52. layout: 'templateB',
  53. components: {
  54. NewList,NewsListRiZhi
  55. },
  56. async asyncData({ $axios, store }) {
  57. // 设置选中菜单
  58. store.commit('setActiveNav', '/news');
  59. try {
  60. const url2 = '/client/web/news/list';
  61. const opt = {
  62. page: 1,
  63. size: 10,
  64. };
  65. const res2 = await $axios.post(url2, opt);
  66. const { data: { data: data2 } } = res2;
  67. return {
  68. newsList: data2.data || [],
  69. totalLists: data2.total || defaultNewsClassifyId,
  70. };
  71. } catch (e) {
  72. return {
  73. newsList: [],
  74. totalLists: 0,
  75. };
  76. }
  77. },
  78. data() {
  79. return {
  80. clicked: 0,
  81. newsClassifyId: null,
  82. homeNewsClassify: [],
  83. totalLists: 0,
  84. currentPage: 1,
  85. pageSize: 5,
  86. // 新闻数据
  87. newsList: [],
  88. activeIndex: 1,
  89. // banner图
  90. newsInforBannerImg: require(`~/static/images/client/newsInfor/newsInfor-banner-img.png`),
  91. };
  92. },
  93. head(){
  94. return {
  95. title: '麦塔考试系统案例_麦塔培训系统案例',
  96. meta: [
  97. {
  98. name: 'keywords',
  99. content: '麦塔考试系统案例_麦塔培训系统案例'
  100. },
  101. {
  102. name:'description',
  103. content:'麦塔致力于为客户提供专业的在线教育方案,打造企业核心竞争力。麦塔品牌诞生于2009年,公司创始团队多年来一直深耕在线教育领域,积累了丰富的行业经验。'
  104. }
  105. ],
  106. }
  107. },
  108. methods: {
  109. clickBanner(data){
  110. if(data){
  111. window.open(data)
  112. }
  113. },
  114. handleCurrentChange(val) {
  115. this.currentPage = val;
  116. this.getMessage();
  117. },
  118. async getMessage() {
  119. let opt = {
  120. page: this.currentPage,
  121. size: this.pageSize,
  122. };
  123. const url2 = '/home/news/list';
  124. const res2 = await this.$axios.post(url2, opt);
  125. this.newsList = res2.data.data.data;
  126. this.totalLists = res2.data.data.total || defaultNewsClassifyId;
  127. },
  128. btnClick(data, index) {
  129. this.activeIndex = index;
  130. console.log(data);
  131. this.currentPage = 1;
  132. this.getMessage();
  133. },
  134. },
  135. mounted() {
  136. }
  137. };
  138. </script>
  139. <style>
  140. </style>