tournamentList.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <template>
  2. <div class="tournament">
  3. <div class="box" v-if="list.length">
  4. <div class="title">
  5. <!-- Top Creators -->
  6. <div class="fadeInRight">{{ $t("game.lab") }}</div>
  7. <div class="all fadeInLeft" @click="$toUrl('./top-creators')">
  8. <!-- See More -->
  9. {{ $t('live.more1') }}
  10. </div>
  11. </div>
  12. <div class="tag-box fadeInLeft">
  13. <div class="list-box">
  14. <div
  15. class="item"
  16. v-for="item in list"
  17. :key="item.id"
  18. @click="toUrlLive(item)"
  19. >
  20. <div class="img-box">
  21. <u--image
  22. class="avatar"
  23. :src="item.avatar"
  24. shape="circle"
  25. width="104rpx"
  26. height="104rpx"
  27. ></u--image>
  28. <img v-if="item.islive == 1" class="img" src="/static/image/match/live-actives.png" alt="">
  29. <img v-else class="img" src="/static/image/match/live.png" alt="">
  30. </div>
  31. <div class="name text-clamp">{{ item.user_nickname }}</div>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37. </template>
  38. <script>
  39. import { numberToK } from "@/utils/util";
  40. import animationMixin from '@/pages/mixins/animation'
  41. export default {
  42. props: ['list'],
  43. mixins: [animationMixin],
  44. data() {
  45. return {
  46. activeInfo: {},
  47. timer: null,
  48. };
  49. },
  50. deactivated() {
  51. },
  52. created() {
  53. },
  54. activated() {
  55. },
  56. methods: {
  57. toUrlLive(item) {
  58. uni.navigateTo({
  59. url: `/pages/Match/member/usermanger?id=${item.id}`,
  60. });
  61. },
  62. numberToK(v) {
  63. return numberToK(v);
  64. },
  65. formaScore(v) {
  66. if (!v) {
  67. return "-";
  68. }
  69. if (v == "0/0(0)") {
  70. return "Yet To Bat";
  71. }
  72. let s = v.replace("(", "(");
  73. let index = v.indexOf("(");
  74. return s.substring(index);
  75. },
  76. formaScore1(v) {
  77. if (!v) {
  78. return "";
  79. }
  80. let s = v.replace("(", "(");
  81. let index = v.indexOf("(");
  82. return s.substring(0, index);
  83. },
  84. watchLiveAt(value) {
  85. if (!value) {
  86. return "";
  87. }
  88. var date = new Date(value.replace(new RegExp(/-/gm), "/"));
  89. var hours = date.getHours();
  90. var minutes = date.getMinutes();
  91. if (hours != 12) {
  92. hours = hours % 12;
  93. }
  94. if (hours == 12 && minutes) {
  95. hours = hours % 12;
  96. }
  97. minutes = minutes < 10 ? "0" + minutes : minutes;
  98. hours = hours < 10 ? "0" + hours : hours;
  99. var strTime = hours + ":" + minutes;
  100. return strTime;
  101. },
  102. watchLiveAt1(value) {
  103. if (!value) {
  104. return "";
  105. }
  106. var date = new Date(value.replace(new RegExp(/-/gm), "/"));
  107. var hours = date.getHours();
  108. var minutes = date.getMinutes();
  109. var ampm = hours >= 12 ? "PM" : "AM";
  110. var strTime = ampm;
  111. if (minutes && hours == 12) {
  112. strTime = "PM";
  113. }
  114. return strTime;
  115. },
  116. countdownFun(value) {
  117. if (!value) {
  118. return "";
  119. }
  120. var h = parseInt(value / 3600);
  121. var m = parseInt((value % 3600) / 60);
  122. var str = "";
  123. if (h > 0) {
  124. str += h + "hrs";
  125. if (m < 10) {
  126. m = "0" + m;
  127. }
  128. str += " " + m + "min";
  129. return str;
  130. } else {
  131. if (m > 0) {
  132. if (m < 10) {
  133. m = "0" + m;
  134. }
  135. str += m + "min";
  136. }
  137. }
  138. var s = parseInt((value % 3600) % 60);
  139. if (s < 10) {
  140. s = "0" + s;
  141. }
  142. str += " " + s + "s";
  143. return str;
  144. },
  145. },
  146. };
  147. </script>
  148. <style lang="scss">
  149. .box {
  150. padding-top: 30px;
  151. padding-bottom: 6rpx;
  152. .title {
  153. font-size: 15px;
  154. padding-right: 14px;
  155. font-weight: bold;
  156. color: #242424;
  157. line-height: 1;
  158. display: flex;
  159. align-items: center;
  160. justify-content: space-between;
  161. padding-bottom: 20rpx;
  162. padding-left: 29rpx;
  163. .icon {
  164. height: 4.08vw;
  165. margin-right: 14rpx;
  166. }
  167. .all {
  168. color: #FF3300;
  169. }
  170. }
  171. }
  172. .tag-box {
  173. width: 100%;
  174. overflow: hidden;
  175. position: relative;
  176. .left-tag,
  177. .right-tag {
  178. position: absolute;
  179. z-index: 5;
  180. bottom: 0;
  181. height: 19rpx;
  182. width: 42rpx;
  183. background-color: #f3f3f7;
  184. }
  185. .left-tag {
  186. left: 0;
  187. }
  188. .right-tag {
  189. right: 0;
  190. }
  191. }
  192. .list-box {
  193. padding-top: 13rpx;
  194. padding-left: 17rpx;
  195. display: flex;
  196. align-items: center;
  197. flex-wrap: nowrap;
  198. overflow-x: auto;
  199. .item {
  200. min-width: 124rpx;
  201. max-width: 124rpx;
  202. position: relative;
  203. padding-bottom: 19rpx;
  204. overflow: hidden;
  205. }
  206. .img-box {
  207. position: relative;
  208. padding: 10rpx;
  209. &.active {
  210. background-image: url("/static/image/live/icon5.png");
  211. background-size: contain;
  212. background-repeat: no-repeat;
  213. }
  214. .img {
  215. position: absolute;
  216. bottom: 0;
  217. left: 50%;
  218. transform: translateX(-50%);
  219. width: 70%;
  220. }
  221. .avatar {
  222. width: 104rpx;
  223. height: 104rpx;
  224. }
  225. }
  226. .name {
  227. padding: 1.4vw 16rpx 0;
  228. font-size: 3.27vw;
  229. font-weight: 400;
  230. color: #242424;
  231. line-height: 1;
  232. text-align: center;
  233. }
  234. .active-box {
  235. position: absolute;
  236. z-index: 2;
  237. border: 2rpx solid #ff3300;
  238. width: 10px;
  239. height: 10px;
  240. left: 50%;
  241. transform: translateX(-50%);
  242. bottom: -7px;
  243. background-color: #fff;
  244. transform: rotate(45deg);
  245. }
  246. }
  247. </style>