EnrollList.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <template>
  2. <div>
  3. <div v-if="!showDetail" v-loading="loading">
  4. <mx-search-group v-model="pageForm.title" :span="8" placeholder="请输入内容" @search="getEnrollBrochure">
  5. <div class="f-666 f14 ml10">共 <span class="f-primary">{{ total }}</span> 条</div>
  6. </mx-search-group>
  7. <div v-if="enrollList.length" class="guide-list mt20">
  8. <el-row v-for="item in enrollList" :key="item.id" class="guid-item">
  9. <el-col :span="20">
  10. <a class="f-333 f16 text-ellipsis" @click="toDetail(item)">
  11. <span>{{ item.title }}</span>
  12. </a>
  13. </el-col>
  14. <el-col class="f-666 f14" :span="4">
  15. <div class="fx-row fx-bet-cen f-666 f14">
  16. <span>{{ item.hits }} 次浏览</span>
  17. <span>{{ item.createTime.split(' ')[0] }}</span>
  18. </div>
  19. </el-col>
  20. </el-row>
  21. <pagination
  22. v-if="total > 0"
  23. class="mt10"
  24. :total="total"
  25. :auto-scroll="false"
  26. :page.sync="pageForm.pageNum"
  27. :limit.sync="pageForm.pageSize"
  28. @pagination="onChangePage"
  29. />
  30. </div>
  31. <evaluation-empty v-else class="mt20" title="暂无数据" />
  32. </div>
  33. <div v-else>
  34. <div class="jc-between fx-row ai-center mb20">
  35. <p class="f28 f-333 text-ellipsis">{{ detailInfo.title }}</p>
  36. <el-button type="primary" size="mini" plain round @click="showDetail= false">返回列表</el-button>
  37. </div>
  38. <div class="jc-between fx-row ai-center mb20 f-999 f14">
  39. <div class="left">
  40. <span class="mr30">来源:{{ detailInfo.collegeName }}</span>
  41. <span class="mr30">{{ detailInfo.hits }} 次浏览 </span>
  42. <span>发布时间:{{ detailInfo.createTime.split(' ')[0] }}</span>
  43. </div>
  44. <div class="right">
  45. <i class="iconfont icon-zitisuoxiao " />
  46. <i class="iconfont icon-zitifangda" />
  47. </div>
  48. </div>
  49. <div v-html="detailInfo.content" />
  50. </div>
  51. </div>
  52. </template>
  53. <script>
  54. import MxSearchGroup from '@/components/MxSearch/mx-search-group'
  55. import { enrollBrochure, saveEnrollBrochureHits } from '@/api/webApi/career-course'
  56. export default {
  57. components: { MxSearchGroup },
  58. props: {
  59. code: {
  60. type: String || Number,
  61. default: ''
  62. }
  63. },
  64. data() {
  65. return {
  66. loading: false,
  67. pageForm: {
  68. pageSize: 999,
  69. pageNum: 1,
  70. title: ''
  71. },
  72. enrollList: [],
  73. total: 0,
  74. showDetail: false,
  75. detailInfo: {}
  76. }
  77. },
  78. created() {
  79. this.getEnrollBrochure()
  80. },
  81. methods: {
  82. getEnrollBrochure() {
  83. this.loading = true
  84. enrollBrochure({ code: this.code, ...this.pageForm }).then(res => {
  85. this.total = res.total
  86. this.enrollList = res.rows
  87. }).finally(() => {
  88. this.loading = false
  89. })
  90. },
  91. saveEnrollBrochureHits(id) {
  92. saveEnrollBrochureHits({ id: id }).then(res => {
  93. console.log(res)
  94. })
  95. },
  96. toDetail(row) {
  97. this.detailInfo = row
  98. this.saveEnrollBrochureHits(row.id)
  99. this.showDetail = true
  100. },
  101. onChangePage(page) {
  102. this.pageForm.pageSize = page.limit
  103. this.pageForm.pageNum = page.page
  104. this.getEnrollBrochure()
  105. }
  106. }
  107. }
  108. </script>
  109. <style lang="scss" scoped>
  110. @import "~@/assets/styles/common.scss";
  111. .guid-item {
  112. border-bottom: 2px dashed $--background-color-base;
  113. line-height: 60px;
  114. }
  115. .guid-item a :hover {
  116. color: $--color-primary;
  117. }
  118. </style>