index.vue 3.5 KB

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