index.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. }
  80. },
  81. methods: {
  82. clickBanner(data){
  83. if(data){
  84. window.open(data)
  85. }
  86. },
  87. handleCurrentChange(val) {
  88. this.currentPage = val;
  89. this.getMessage();
  90. },
  91. async getMessage() {
  92. let opt = {
  93. page: this.currentPage,
  94. size: this.pageSize,
  95. };
  96. const url2 = '/common/client/web/news/list';
  97. const res2 = await this.$axios.post(url2, opt);
  98. this.newsList = res2.data.data;
  99. this.totalLists = res2.data.total || defaultNewsClassifyId;
  100. },
  101. btnClick(data, index) {
  102. this.activeIndex = index;
  103. console.log(data);
  104. this.currentPage = 1;
  105. this.getMessage();
  106. },
  107. },
  108. mounted() {
  109. }
  110. };
  111. </script>
  112. <style>
  113. </style>