index.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <template>
  2. <div>
  3. <div class="header">
  4. <div class="top">
  5. <img class="logo" src="/static/logo_big.png" alt="">
  6. <u--image
  7. class="border"
  8. :showLoading="true"
  9. :src="info.avatar || '/static/image/match/teams_avatar_ico@2x.png'"
  10. @click="go('/pages/Match/member/usermanger', true)"
  11. width="24px"
  12. height="24px"
  13. shape="circle"
  14. ></u--image>
  15. </div>
  16. <div class="title-box">
  17. <!-- More -->
  18. {{ $t('more.lab') }}
  19. </div>
  20. </div>
  21. <div class="user-box" @click="go('/pages/Match/member/infomation')">
  22. <u--image
  23. :showLoading="true"
  24. class="u-skeleton-circle"
  25. :src="info.avatar || '/static/image/match/teams_avatar_ico@2x.png'"
  26. width="60px"
  27. height="60px"
  28. shape="circle"
  29. ></u--image>
  30. <div>
  31. <div class="name">{{ isLogin == 1 ? info.user_nickname : $t('login.login') }}</div>
  32. <div class="email" v-if="isLogin == 1 && info.mobile">{{ info.mobile }}</div>
  33. </div>
  34. </div>
  35. <div class="list">
  36. <div class="item" @click="toLive">
  37. <div class="flex">
  38. <img class="icon" src="/static/image/more/icon1.png" alt="">
  39. <!-- Live Score -->
  40. {{ $t('more.lab1') }}
  41. </div>
  42. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  43. </div>
  44. <div class="item" @click="$toUrl('/pages/News/news')">
  45. <div class="flex">
  46. <img class="icon" src="/static/image/more/icon2.png" alt="">
  47. <!-- News -->
  48. {{ $t('more.lab2') }}
  49. </div>
  50. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  51. </div>
  52. <div class="item" @click="go('/pages/Match/member/author')">
  53. <div class="flex">
  54. <img class="icon" src="/static/image/more/icon2.png" alt="">
  55. <!-- My Friend -->
  56. {{ $t('more.lab3') }}
  57. </div>
  58. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  59. </div>
  60. <div class="item" @click="go('/pages/Match/setting/setting')">
  61. <div class="flex">
  62. <img class="icon" src="/static/image/more/icon2.png" alt="">
  63. <!-- Setting -->
  64. {{ $t('more.lab4') }}
  65. </div>
  66. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  67. </div>
  68. <div class="item" @click="$toUrl('/pages/Match/setting/language')">
  69. <div class="flex">
  70. <img class="icon" src="/static/image/more/icon2.png" alt="">
  71. <!-- Language -->
  72. {{ $t('more.lab6') }}
  73. </div>
  74. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  75. </div>
  76. <!-- <div class="item" @click="$toUrl('/pages/News/news')">
  77. <div class="flex">
  78. <img class="icon" src="/static/image/more/icon2.png" alt="">
  79. Others
  80. </div>
  81. <u-icon name="arrow-right" color="#242424" size="16px" bold></u-icon>
  82. </div> -->
  83. </div>
  84. <div class="btn-box" v-if="isLogin == 1">
  85. <div class="btn" @click="logOut">
  86. <!-- Log Out -->
  87. {{ $t('more.lab5') }}
  88. </div>
  89. </div>
  90. </div>
  91. </template>
  92. <script>
  93. import { setTabBar } from '@/utils/util'
  94. export default {
  95. data () {
  96. return {
  97. }
  98. },
  99. computed: {
  100. info() {
  101. return this.$store.state.info;
  102. },
  103. isLogin() {
  104. return this.$store.state.isLogin;
  105. },
  106. },
  107. created() {
  108. this.setBar()
  109. },
  110. activated() {
  111. this.setBar()
  112. },
  113. methods: {
  114. go(url) {
  115. if (this.isLogin == 2) {
  116. this.$toUrl('/pages/login/login')
  117. return
  118. };
  119. this.$toUrl(url)
  120. },
  121. logOut() {
  122. this.$common.del("information");
  123. this.$common.del("imTouristAccount");
  124. this.$store.state.info = {};
  125. this.$store.state.isLogin = 2;
  126. },
  127. toLive() {
  128. uni.switchTab({
  129. url: '/pages/Live/Live'
  130. })
  131. },
  132. setBar() {
  133. setTabBar(this)
  134. }
  135. }
  136. }
  137. </script>
  138. <style lang="scss" scoped>
  139. .header {
  140. position: sticky;
  141. top: 0;
  142. }
  143. .top {
  144. display: flex;
  145. align-items: center;
  146. justify-content: space-between;
  147. padding: 8rpx 16px 16rpx;
  148. background-color: #10044A;
  149. .logo {
  150. height: 24px;
  151. }
  152. .border {
  153. border: 1px solid #CC2900;
  154. border-radius: 50%;
  155. }
  156. }
  157. .title-box {
  158. height: 40px;
  159. background-color: #262E4A;
  160. padding: 0 16px;
  161. display: flex;
  162. align-items: center;
  163. color: #fff;
  164. font-weight: 500;
  165. font-size: 16px;
  166. }
  167. .user-box {
  168. margin-top: 26px;
  169. margin-bottom: 52px;
  170. background-color: #F9F9F9;
  171. padding: 28px 10px 28px 33px;
  172. display: flex;
  173. align-items: center;
  174. .name {
  175. margin-left: 19px;
  176. font-weight: 500;
  177. font-size: 16px;
  178. color: #242424;
  179. }
  180. .email {
  181. font-weight: 500;
  182. font-size: 14px;
  183. color: #7E7C7C;
  184. margin-top: 12px;
  185. margin-left: 19px;
  186. }
  187. .u-skeleton-circle {
  188. border: 1px solid #CC2900;
  189. border-radius: 50%;
  190. }
  191. }
  192. .list {
  193. .item {
  194. height: 48px;
  195. background-color: #F9F9F9;
  196. display: flex;
  197. align-items: center;
  198. justify-content: space-between;
  199. padding-left: 15px;
  200. padding-right: 18px;
  201. font-weight: 500;
  202. font-size: 16px;
  203. color: #242424;
  204. .icon {
  205. width: 18px;
  206. margin-right: 9px;
  207. }
  208. &+.item {
  209. margin-top: 6px;
  210. }
  211. }
  212. }
  213. .btn-box {
  214. padding: 0 16px calc(var(--window-bottom) + 10px);
  215. margin-top: 75rpx;
  216. .btn {
  217. cursor: pointer;
  218. background: linear-gradient(94.25deg, #FF3300 -3.08%, #D22A00 100%);
  219. border-radius: 4px;
  220. height: 52px;
  221. display: flex;
  222. align-items: center;
  223. justify-content: center;
  224. font-weight: 500;
  225. font-size: 16px;
  226. color: #fff;
  227. }
  228. }
  229. </style>