index.vue 3.4 KB

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