loginSuccess.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <template>
  2. <div class="success-page">
  3. <van-nav-bar title="登录成功" fixed placeholder safe-area-inset-top />
  4. <main class="content">
  5. <section class="success-hero" aria-labelledby="success-title">
  6. <van-icon name="passed" class="success-icon" aria-hidden="true" />
  7. <h1 id="success-title" class="title">您已重新登录</h1>
  8. <p class="subtitle">系统将继续为您完成开票</p>
  9. </section>
  10. <section class="info-card" aria-label="后续处理说明">
  11. <p class="info-card__lead">您可以离开<span>当前页面</span>,无需一直等待。</p>
  12. <p class="info-card__text">
  13. 开票完成后,系统会通过短信通知您;若您的登录状态失效,系统也会及时提醒您重新登录。
  14. </p>
  15. </section>
  16. <a class="contact-card" href="tel:400-639-1811" aria-label="拨打客服电话 400-639-1811">
  17. <van-icon name="phone-o" class="contact-card__icon" aria-hidden="true" />
  18. <span>如有疑问,请致电</span>
  19. <strong>400-639-1811</strong>
  20. </a>
  21. </main>
  22. </div>
  23. </template>
  24. <script setup lang="ts"></script>
  25. <style scoped lang="scss">
  26. .success-page {
  27. min-height: 100vh;
  28. min-height: 100dvh;
  29. background: linear-gradient(180deg, #f7fbff 0%, #ffffff 55%);
  30. color: #222222;
  31. font-family:
  32. -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei',
  33. sans-serif;
  34. :deep(.van-nav-bar) {
  35. background: linear-gradient(90deg, #1379ec 0%, #2998ef 100%);
  36. box-shadow: 0 3px 10px rgba(23, 121, 226, 0.14);
  37. }
  38. :deep(.van-nav-bar::after) {
  39. display: none;
  40. }
  41. :deep(.van-nav-bar__title) {
  42. color: #ffffff;
  43. font-size: 18px;
  44. font-weight: 600;
  45. }
  46. }
  47. .content {
  48. display: flex;
  49. flex-direction: column;
  50. align-items: center;
  51. box-sizing: border-box;
  52. min-height: calc(100dvh - 46px - var(--safe-top));
  53. padding: 64px 16px calc(24px + env(safe-area-inset-bottom));
  54. }
  55. .success-hero {
  56. display: flex;
  57. flex-direction: column;
  58. align-items: center;
  59. text-align: center;
  60. }
  61. .success-icon {
  62. display: block;
  63. margin-bottom: 32px;
  64. color: #2088ed;
  65. font-size: 108px;
  66. line-height: 1;
  67. filter: drop-shadow(0 8px 12px rgba(32, 136, 237, 0.12));
  68. }
  69. .title {
  70. margin: 0;
  71. color: #202020;
  72. font-size: 28px;
  73. font-weight: 700;
  74. line-height: 1.4;
  75. letter-spacing: 1px;
  76. }
  77. .subtitle {
  78. margin: 10px 0 0;
  79. color: #666666;
  80. font-size: 16px;
  81. line-height: 1.6;
  82. }
  83. .info-card {
  84. box-sizing: border-box;
  85. width: 100%;
  86. margin-top: 44px;
  87. padding: 25px 22px;
  88. border: 1px solid rgba(32, 136, 237, 0.1);
  89. border-radius: 20px;
  90. background: #ffffff;
  91. box-shadow: 0 10px 28px rgba(42, 82, 124, 0.11);
  92. }
  93. .info-card__lead {
  94. margin: 0;
  95. color: #222222;
  96. font-size: 17px;
  97. font-weight: 500;
  98. line-height: 1.75;
  99. }
  100. .info-card__lead span {
  101. color: #136fd1;
  102. font-weight: 600;
  103. }
  104. .info-card__text {
  105. margin: 16px 0 0;
  106. color: #444444;
  107. font-size: 15px;
  108. line-height: 1.85;
  109. }
  110. .contact-card {
  111. display: flex;
  112. align-items: center;
  113. justify-content: center;
  114. box-sizing: border-box;
  115. width: 100%;
  116. margin-top: 20px;
  117. padding: 10px 0;
  118. color: #333333;
  119. font-size: 14px;
  120. line-height: 1.5;
  121. text-decoration: none;
  122. }
  123. .contact-card__icon {
  124. margin-right: 7px;
  125. color: #2088ed;
  126. font-size: 18px;
  127. }
  128. .contact-card strong {
  129. margin-left: 6px;
  130. color: #1266bc;
  131. font-size: 17px;
  132. font-weight: 500;
  133. letter-spacing: 0.5px;
  134. }
  135. @media (max-height: 680px) {
  136. .content {
  137. padding-top: 38px;
  138. }
  139. .success-icon {
  140. margin-bottom: 22px;
  141. font-size: 88px;
  142. }
  143. .info-card {
  144. margin-top: 30px;
  145. padding-top: 21px;
  146. padding-bottom: 21px;
  147. }
  148. }
  149. </style>