liveList.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <div id="liveList">
  3. <el-row>
  4. <el-col :span="24" class="info">
  5. <el-col class="list" v-for="(item, index) in list" :key="index">
  6. <el-col :span="24" class="left">
  7. <p class="textOver">{{ item.title }}</p>
  8. <p>
  9. 举办城市:<span>{{ getprovince(item.province) }}-{{ getplace(item.place) }}</span>
  10. </p>
  11. <p>
  12. 直播时间:<span>{{ item.start_time }}</span>
  13. </p>
  14. </el-col>
  15. <el-col :span="24" style="text-align:center">
  16. <span v-if="item.room_id == '1005'">
  17. <el-button type="primary" size="mini" @click="$router.push({ path: '/live/detailtwo', query: { id: item.id } })" v-if="item.status == '1'"
  18. >进入房间</el-button
  19. >
  20. </span>
  21. <span v-else>
  22. <el-button type="primary" size="mini" @click="$router.push({ path: '/live/detail', query: { id: item.id } })" v-if="item.status == '1'"
  23. >进入房间</el-button
  24. >
  25. </span>
  26. </el-col>
  27. </el-col>
  28. </el-col>
  29. </el-row>
  30. </div>
  31. </template>
  32. <script>
  33. import { mapState, createNamespacedHelpers } from 'vuex';
  34. export default {
  35. name: 'liveList',
  36. props: {
  37. list: { type: Array },
  38. status: { type: String, default: '0' },
  39. // 省
  40. province: { type: Array, default: () => [] },
  41. // 市
  42. place: { type: Array, default: () => [] },
  43. },
  44. components: {},
  45. data: function() {
  46. return {};
  47. },
  48. created() {},
  49. methods: {
  50. // 过滤省
  51. getprovince(item) {
  52. let res = this.province.find(i => i.code == item);
  53. if (res) return res.name;
  54. },
  55. // 过滤市
  56. getplace(item) {
  57. let res = this.place.find(i => i.code == item);
  58. if (res) return res.name;
  59. },
  60. },
  61. computed: {
  62. ...mapState(['user']),
  63. pageTitle() {
  64. return `${this.$route.meta.title}`;
  65. },
  66. },
  67. metaInfo() {
  68. return { title: this.$route.meta.title };
  69. },
  70. };
  71. </script>
  72. <style lang="less" scoped>
  73. .info {
  74. padding: 10px;
  75. }
  76. .list {
  77. background: #fff;
  78. padding: 10px;
  79. border-radius: 5px;
  80. margin: 0 0 10px 0;
  81. .left {
  82. font-size: 16px;
  83. color: #ccc;
  84. p {
  85. padding: 0 0 10px 0;
  86. span {
  87. color: #000;
  88. }
  89. }
  90. p:first-child {
  91. color: #000;
  92. }
  93. }
  94. .right {
  95. text-align: center;
  96. p {
  97. background: #409eff;
  98. color: #fff;
  99. padding: 5px 8px;
  100. border-radius: 5px;
  101. margin: 0 0 10px 0;
  102. }
  103. }
  104. }
  105. </style>