my.component.html 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <ion-content class="content">
  2. <div
  3. [ngClass]="{
  4. 'header': true,
  5. 'pad-top-ios': deviceSer.isIOS
  6. }" [style.background-image]="'url(img/bg.png)'">
  7. <div class="user-dateil">
  8. @if(!loading){
  9. <app-avatar
  10. [avatar]="user.get('avatar')"
  11. [frame]="userObj.vip?.rights['avatar']"
  12. />
  13. }
  14. <div class="user-right">
  15. <div class="user-nikcname">
  16. {{
  17. user.get("nickname") || user.get("mobile") || user.get("username")
  18. }}
  19. @if (profile?.get('identyType') == 'anchor') {
  20. <div
  21. class="level"
  22. [style.background-color]="
  23. aiServ.authorLevelColor[user.get('completionRate')]?.color
  24. "
  25. >
  26. LV{{ user.get("completionRate") }}
  27. </div>
  28. }@else {
  29. <div
  30. class="level"
  31. [style.background-color]="
  32. aiServ.userLevelColor[user.get('achievementCount')]?.color
  33. "
  34. >
  35. LV{{ user.get("achievementCount") }}
  36. </div>
  37. }
  38. </div>
  39. <div class="user-block">
  40. <div class="tags">
  41. @if (user.get('sex') == '男') {
  42. <div class="sex">
  43. <ion-icon name="male-outline"></ion-icon>
  44. </div>
  45. }@else if (user.get('sex') == '女') {
  46. <div class="sex girl">
  47. <ion-icon name="male-female-outline"></ion-icon>
  48. </div>
  49. }
  50. <div class="age">
  51. <img
  52. src="https://file-cloud.fmode.cn/Qje9D4bqol/20241109/pctmvt110807052.png"
  53. alt=""
  54. />
  55. {{ profile?.get("birthdate") || "未知" }}
  56. </div>
  57. <div class="id">ID:{{ user.id }}</div>
  58. </div>
  59. <div class="btn" (click)="toUrl('user/profile/' + user.id)">
  60. 个人主页
  61. </div>
  62. </div>
  63. <div class="user-footer">
  64. <div class="row" (click)="toUrl('user/friends')">{{ userObj.fans }} 粉丝</div>
  65. <div class="row" (click)="toUrl('user/friends')">{{ userObj.follow }} 关注</div>
  66. <div class="row">{{ userObj.friendly_degree }} 亲密度</div>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="ad" [style.background-image]="'url(img/ad-banner.png)'">
  72. @if (userObj.vip?.expiredAt) {
  73. <div class="my-vip">
  74. <div class="lable">
  75. {{ userObj.vip?.name }}<img src="img/VIP.png" alt="" />
  76. </div>
  77. <div class="vip-date" (click)="toUrl('goods/vip')">
  78. <!-- 到期时间:{{ userObj.vip?.expiredAt | date : "yyyy-MM-dd"
  79. }} -->
  80. 剩余天数:{{ userObj.vip?.daysLeft }}
  81. <ion-icon name="chevron-forward"></ion-icon>
  82. </div>
  83. </div>
  84. }@else {
  85. <div class="ad-left">
  86. <div class="text">hey聊 <span>VIP</span></div>
  87. <p>开通VIP,解锁海量专属主播聊天。</p>
  88. </div>
  89. <div class="btn" (click)="toUrl('goods/vip')">立即开通</div>
  90. }
  91. </div>
  92. <div class="tool">
  93. @for (item of tools; track $index) {
  94. <div class="tool-li" (click)="toUrl(item.path)">
  95. <div class="icon">
  96. <img [src]="item.icon" alt="" />
  97. </div>
  98. <div class="label">
  99. {{ item.title }}
  100. </div>
  101. </div>
  102. }
  103. </div>
  104. <div class="order" [style.background-image]="'url(img/用户榜底.png)'" (click)="toUrl('user/ranking')">
  105. <div class="title">
  106. <div class="link">排行榜</div>
  107. <!-- <div class="link" (click)="toUrl('user/ranking')">更多</div> -->
  108. </div>
  109. <div class="ladder">
  110. <div class="top-block">
  111. <div class="top2">
  112. <div class="user-block">
  113. <div class="user-avatar">
  114. <img src="img/2.png" alt="" class="tag" />
  115. <img [src]="orderList[1]?.avatar" class="avatar" alt="" />
  116. </div>
  117. <div class="user-name">
  118. {{ orderList[1]?.nickname }}
  119. </div>
  120. </div>
  121. <div class="user-detail user-detail2">
  122. <div class="num">{{ orderList[1]?.credit }}</div>
  123. <div class="pm">TOP2</div>
  124. </div>
  125. </div>
  126. <div class="top1">
  127. <div class="user-block">
  128. <div class="user-avatar">
  129. <img
  130. src="img/1.png"
  131. alt=""
  132. class="tag"
  133. style="transform: rotate(90deg)"
  134. />
  135. <img [src]="orderList[0]?.avatar" class="avatar" alt="" />
  136. </div>
  137. <div class="user-name">
  138. {{ orderList[0]?.nickname }}
  139. </div>
  140. </div>
  141. <div class="user-detail user-detail1">
  142. <div class="num">{{ orderList[0]?.credit }}</div>
  143. <div class="pm">TOP2</div>
  144. </div>
  145. </div>
  146. <div class="top3">
  147. <div class="user-block">
  148. <div class="user-avatar">
  149. <img src="img/3.png" alt="" class="tag" />
  150. <img [src]="orderList[2]?.avatar" class="avatar" alt="" />
  151. </div>
  152. <div class="user-name">
  153. {{ orderList[2]?.nickname }}
  154. </div>
  155. </div>
  156. <div class="user-detail user-detail3">
  157. <div class="num">{{ orderList[2]?.credit }}</div>
  158. <div class="pm">TOP2</div>
  159. </div>
  160. </div>
  161. </div>
  162. </div>
  163. @for (item of orderList.slice(3,4); track $index) {
  164. <div class="row">
  165. <div class="row-left">
  166. <span class="row-index">4</span>
  167. <img [src]="item.avatar" alt="" class="row-avatar" />
  168. <div class="row-name">{{ item?.nickname }} <span style="color: #ff7d0a;">{{item.credit}}</span> </div>
  169. </div>
  170. <div class="row-right">
  171. <div class="row-tpis">距离第一名</div>
  172. <div class="row-tpis-num">
  173. {{ orderList[0].credit - item.credit}}
  174. </div>
  175. </div>
  176. </div>
  177. }
  178. </div>
  179. <div class="setting">
  180. <div class="setting-tabs">
  181. <div class="row">
  182. <div class="tabs-left">
  183. <ion-icon name="remove-circle-outline"></ion-icon>
  184. 勿扰开关
  185. </div>
  186. <ion-toggle
  187. [checked]="profile?.get('isCheck')"
  188. (ionChange)="onChange($event)"
  189. color="tertiary"
  190. ></ion-toggle>
  191. </div>
  192. </div>
  193. <div class="list">
  194. <div class="li" (click)="toUrl('/user/certification')">
  195. <div class="li-lable">
  196. <img src="img/实名 (2).png" alt="" class="icon" />
  197. </div>
  198. <div class="li-val">
  199. 实名认证
  200. <ion-icon name="chevron-forward-outline"></ion-icon>
  201. </div>
  202. </div>
  203. <div class="li" (click)="toUrl('/user/anchor')">
  204. <div class="li-lable">
  205. <img src="img/成为主播.png" alt="" class="icon" />
  206. </div>
  207. <div class="li-val">
  208. 成为主播
  209. <ion-icon name="chevron-forward-outline"></ion-icon>
  210. </div>
  211. </div>
  212. <div class="li" (click)="goRoom()">
  213. <div class="li-lable">
  214. <img src="img/直播.png" alt="" class="icon" />
  215. </div>
  216. <div class="li-val">
  217. 直播间管理
  218. <ion-icon name="chevron-forward-outline"></ion-icon>
  219. </div>
  220. </div>
  221. <div class="li" (click)="showAgreement('registerAgreement')">
  222. <div class="li-lable">
  223. <img src="img/隐私.png" alt="" class="icon" />
  224. </div>
  225. <div class="li-val">
  226. 隐私协议
  227. <ion-icon name="chevron-forward-outline"></ion-icon>
  228. </div>
  229. </div>
  230. <div class="li" (click)="toUrl('user/feedback')">
  231. <div class="li-lable">
  232. <img src="img/意见反馈.png" alt="" class="icon" />
  233. </div>
  234. <div class="li-val">
  235. 意见反馈
  236. <ion-icon name="chevron-forward-outline"></ion-icon>
  237. </div>
  238. </div>
  239. <div class="li" (click)="toUrl('user/service')">
  240. <div class="li-lable">
  241. <img src="img/在线客服.png" alt="" class="icon" />
  242. </div>
  243. <div class="li-val">
  244. 联系客服
  245. <ion-icon name="chevron-forward-outline"></ion-icon>
  246. </div>
  247. </div>
  248. <div class="li" (click)="showAgreement('liveAgreement')">
  249. <div class="li-lable">
  250. <img src="img/签署协议.png" alt="" class="icon" />
  251. </div>
  252. <div class="li-val">
  253. 直播协议
  254. <ion-icon name="chevron-forward-outline"></ion-icon>
  255. </div>
  256. </div>
  257. <div class="li" (click)="onLogout()">
  258. <div class="li-lable">
  259. <img src="img/退出登录.png" alt="" class="icon" />
  260. </div>
  261. <div class="li-val">
  262. 退出登录
  263. <ion-icon name="chevron-forward-outline"></ion-icon>
  264. </div>
  265. </div>
  266. <!-- @for (item of settings; track $index) {
  267. <div class="li">
  268. <div class="li-lable">
  269. <img [src]="item.icon" alt="" class="icon" />
  270. </div>
  271. <div class="li-val">
  272. {{ item.title }}
  273. <ion-icon name="chevron-forward-outline"></ion-icon>
  274. </div>
  275. </div>
  276. } -->
  277. </div>
  278. </div>
  279. </ion-content>