detail-list.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <div class="app-container">
  3. <!-- 顶部操作区域 -->
  4. <div class="filter-container">
  5. <!-- 关键词列表 -->
  6. <el-table v-loading="isLoading" :data="list" border>
  7. <el-table-column prop="pagePath" label="页面路径" align="center" width="300">
  8. <template slot-scope="{ row }">
  9. <a v-if="row.accessClient === '0'" style="color:#2fa4e7;" target="_blank" :href="row.pagePath"> {{ row.pagePath }}</a>
  10. <span v-else> {{ row.pagePath }} </span>
  11. </template>
  12. </el-table-column>
  13. <el-table-column prop="accessSource" label="访问来源" align="center" width="100">
  14. <template slot-scope="{ row }">
  15. {{ row.accessSource | accessSourceFilters }}
  16. </template>
  17. </el-table-column>
  18. <el-table-column prop="pageTypes" label="页面类型" align="center">
  19. <template slot-scope="{ row }">
  20. {{ row.pageTypes ? row.pageTypes : '---' }}
  21. </template>
  22. </el-table-column>
  23. <el-table-column prop="pageLabel" label="页面标签" align="center">
  24. <template slot-scope="{ row }">
  25. {{ row.pageLabel ? row.pageLabel : '---' }}
  26. </template>
  27. </el-table-column>
  28. <el-table-column prop="pagePath" label="商品图片" align="center" width="100">
  29. <template v-if="row.productId" slot-scope="{ row }">
  30. <el-popover
  31. placement="top-start"
  32. title=""
  33. width="180"
  34. trigger="hover"
  35. >
  36. <img :src="row.productImage" alt="" style="width:150px;height:150px;">
  37. <img slot="reference" :src="row.productImage" alt="" style="width:30px;height:30px;">
  38. </el-popover>
  39. </template>
  40. <template v-else>
  41. <span>---</span>
  42. </template>
  43. </el-table-column>
  44. <el-table-column label="商品ID" align="center" width="100">
  45. <template slot-scope="{ row }">
  46. {{ row.productId ? row.productId : '---' }}
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="productName" label="商品名称" align="center">
  50. <template slot-scope="{ row }">
  51. {{ row.productName ? row.productName : '---' }}
  52. </template>
  53. </el-table-column>
  54. <el-table-column label="关联供应商" align="center">
  55. <template slot-scope="{ row }">
  56. <p v-for="item in handleRelevanceShop(row.relevanceShop)" :key="item">
  57. {{ item ? item : '---' }}
  58. </p>
  59. </template>
  60. </el-table-column>
  61. <el-table-column prop="accessTime" label="访问时间" align="center" />
  62. <el-table-column prop="accessDuration" label="访问时长" align="center" />
  63. </el-table>
  64. <!-- 页码 -->
  65. <pagination
  66. :total="total"
  67. :page-sizes="[20]"
  68. :page-size="20"
  69. :page.sync="listQuery.pageNum"
  70. :limit.sync="listQuery.pageSize"
  71. @pagination="fetchBehaviorList"
  72. />
  73. </div>
  74. </div>
  75. </template>
  76. <script>
  77. import { fetchBehaviorList } from '@/api/user/record/record'
  78. export default {
  79. name: 'RecordDtails',
  80. filters: {
  81. accessSourceFilters(value) {
  82. // 公司类型
  83. const map = {
  84. '0': '直接访问',
  85. '1': '百度搜索',
  86. '2': '360搜索',
  87. '3': '谷歌搜索',
  88. '4': '神马搜索',
  89. '5': '头条搜索',
  90. '6': '搜狗搜索',
  91. '7': '直接访问'
  92. }
  93. return map[value]
  94. }
  95. },
  96. data() {
  97. return {
  98. isLoading: true,
  99. listQuery: {
  100. ip: '',
  101. accessDate: '',
  102. userId: 0,
  103. pageNum: 1,
  104. pageSize: 20
  105. },
  106. list: [],
  107. total: 0
  108. }
  109. },
  110. computed: {
  111. },
  112. created() {
  113. this.listQuery = { ...this.listQuery, ...this.$route.query }
  114. console.log('listQuery', this.listQuery)
  115. this.getList()
  116. },
  117. methods: {
  118. // 获取详情列表
  119. getList() {
  120. this.listQuery.pageNum = 1
  121. this.fetchBehaviorList()
  122. },
  123. // 获取关键词列表
  124. async fetchBehaviorList() {
  125. try {
  126. this.isLoading = true
  127. const res = await fetchBehaviorList(this.listQuery)
  128. this.list = res.data.results
  129. this.total = res.data.totalRecord
  130. this.isLoading = false
  131. } catch (error) {
  132. console.log(error)
  133. }
  134. },
  135. handleRelevanceShop(value) {
  136. console.log('va', value.split(','))
  137. return value.split(',')
  138. }
  139. }
  140. }
  141. </script>
  142. <style></style>