_id.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <div class="client-details-page">
  3. <!-- 详情页 -->
  4. <div class="client-details-box">
  5. <!--行业资讯详情-->
  6. <div class="client-details-wrap">
  7. <h1>{{infoData.title}}</h1>
  8. <p class="details-visits-box"><i></i><span>{{infoData.startTime}}</span><i type="visits"></i><span>{{infoData.visits}}</span>
  9. </p>
  10. <div class="client-content-box" v-html="infoData.content"></div>
  11. <div class="client-details-pagination">
  12. <a v-show="infoData.lastId" :href="`${baseUrl}/news/${infoData.lastId}`">
  13. <span @click.prevent="changeNews(infoData.lastId)">上一篇:{{infoData.lastName}}</span>
  14. </a>
  15. <a v-show="infoData.nextId" :href="`${baseUrl}/news/${infoData.nextId}`">
  16. <span @click.prevent="changeNews(infoData.nextId)">下一篇:{{infoData.nextName}}</span>
  17. </a>
  18. </div>
  19. </div>
  20. <!-- 最新新闻 -->
  21. <div class="latest-news-box">
  22. <h4>最新新闻</h4>
  23. <ul class="latest-news-list">
  24. <li v-for="(item, index) in newestData" :key="index">
  25. <a :href="`${baseUrl}/news/${item.iiId}`">
  26. <span @click.prevent="changeNews(item.iiId)">{{item.title}}</span>
  27. </a>
  28. <p class="details-visits-box"><i></i><span>{{item.startTime}}</span><i type="visits"></i><span>{{item.visits}}</span>
  29. </p>
  30. </li>
  31. </ul>
  32. </div>
  33. </div>
  34. </div>
  35. </template>
  36. <script>
  37. import { mapGetters } from 'vuex';
  38. export default {
  39. name: 'news_id',
  40. layout: 'templateB',
  41. async asyncData({ params, $axios, store }) {
  42. // 设置选中菜单
  43. store.commit('setActiveNav', '/news');
  44. try {
  45. const url = '/home/news/info';
  46. const opt = {
  47. iiId: params.id,
  48. };
  49. const res = await $axios.post(url, opt);
  50. const url2 = '/home/news/newest';
  51. const res2 = await $axios.post(url2);
  52. return {
  53. infoData: res.data.data,
  54. newestData: res2.data.data.data,
  55. };
  56. } catch (e) {
  57. return {};
  58. }
  59. },
  60. computed: {
  61. baseUrl() {
  62. return this.getBaseUrl;
  63. },
  64. ...mapGetters(['getBaseUrl']),
  65. },
  66. methods: {
  67. changeNews(id) {
  68. this.$router.push({ name: 'news-id', params: { id } });
  69. },
  70. },
  71. };
  72. </script>
  73. <style>
  74. </style>