unsubscribe.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>Unsubscribe</title>
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <meta name="full-screen" content="yes">
  8. <meta name="x5-fullscreen" content="true">
  9. <meta name="viewport"
  10. content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
  11. <link rel="stylesheet" href="css/element-ui.css" />
  12. <link rel="stylesheet" href="css/element@2.12.2.css" />
  13. <style>
  14. :root {
  15. --primary: #ef4444;
  16. --primary-dark: #dc2626;
  17. --primary-soft: #fef2f2;
  18. --text-main: #0f172a;
  19. --text-secondary: #475569;
  20. --text-muted: #94a3b8;
  21. --border: #e2e8f0;
  22. --bg-page: #f5f7fb;
  23. --bg-card: rgba(255, 255, 255, .96);
  24. --radius-xl: 28px;
  25. --radius-lg: 22px;
  26. --shadow-card: 0 24px 70px rgba(15, 23, 42, .08), 0 6px 20px rgba(15, 23, 42, .05);
  27. }
  28. * {
  29. box-sizing: border-box;
  30. }
  31. body {
  32. margin: 0;
  33. min-height: 100vh;
  34. font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  35. background: var(--bg-page);
  36. color: var(--text-main);
  37. -webkit-font-smoothing: antialiased;
  38. }
  39. .container {
  40. display: flex;
  41. justify-content: center;
  42. padding: 40px 20px;
  43. }
  44. .unsubscribe-card {
  45. width: min(680px, 100%);
  46. background: var(--bg-card);
  47. border-radius: var(--radius-xl);
  48. box-shadow: var(--shadow-card);
  49. padding: 32px;
  50. }
  51. .title-head {
  52. display: flex;
  53. align-items: center;
  54. gap: 12px;
  55. font-size: 24px;
  56. font-weight: 700;
  57. margin-bottom: 24px;
  58. }
  59. .content-info {
  60. display: flex;
  61. flex-direction: column;
  62. gap: 18px;
  63. }
  64. .language-switch {
  65. display: inline-flex;
  66. align-items: center;
  67. gap: 8px;
  68. padding: 8px 12px;
  69. border: 1px solid var(--border);
  70. border-radius: 999px;
  71. background: #fff;
  72. }
  73. .logo img {
  74. display: block;
  75. margin: 0 auto;
  76. width: 160px;
  77. }
  78. .form .el-form-item {
  79. margin-bottom: 16px;
  80. }
  81. .myCheck .el-checkbox {
  82. display: block;
  83. font-size: 14px;
  84. color: var(--text-secondary);
  85. }
  86. .m-input .el-input__inner {
  87. border-radius: 16px;
  88. border: 1px solid var(--border);
  89. height: 44px;
  90. font-size: 14px;
  91. }
  92. .s-btn.el-button--primary {
  93. width: 100%;
  94. height: 48px;
  95. border: none;
  96. border-radius: 999px;
  97. font-weight: 700;
  98. background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  99. box-shadow: 0 12px 28px rgba(239, 68, 68, .28);
  100. transition: all .25s ease;
  101. }
  102. .s-btn.el-button--primary:hover {
  103. transform: translateY(-2px);
  104. box-shadow: 0 16px 36px rgba(239, 68, 68, .32);
  105. }
  106. .header {
  107. display: flex;
  108. align-items: center;
  109. justify-content: space-between;
  110. margin-bottom: 24px;
  111. }
  112. </style>
  113. </head>
  114. <body>
  115. <div class="container" id="unsubscribe">
  116. <div class="unsubscribe-card">
  117. <header class="header">
  118. <div class="logo"><img src="img/logo.jpg" alt="Logo" /></div>
  119. <div class="language-switch chooseLang">
  120. <el-dropdown trigger="click" @command="chooseLang">
  121. <span class="menu">{{langList[language]}}<i
  122. class="el-icon-arrow-down el-icon--right"></i></span>
  123. <el-dropdown-menu slot="dropdown">
  124. <el-dropdown-item command="en">English</el-dropdown-item>
  125. <el-dropdown-item command="cn">中文简体</el-dropdown-item>
  126. </el-dropdown-menu>
  127. </el-dropdown>
  128. </div>
  129. </header>
  130. <div class="title-head"><i class="el-icon-star-on"></i> <span>{{lang.item1}}</span></div>
  131. <div class="content-info">
  132. <el-form :model="params" :rules="rules" ref="params" label-width="0" class="form">
  133. <el-form-item prop=""><span
  134. style="font-size:16px;font-weight:bold;">{{lang.item2}}</span></el-form-item>
  135. <el-form-item prop="">{{lang.item3}}</el-form-item>
  136. <el-form-item prop=""><span>{{lang.item4}}</span></el-form-item>
  137. <el-form-item prop="">
  138. <el-checkbox-group class="myCheck" v-model="params.reasons">
  139. <el-checkbox :label="lang.item5"></el-checkbox>
  140. <el-checkbox :label="lang.item6"></el-checkbox>
  141. <el-checkbox :label="lang.item7"></el-checkbox>
  142. <el-checkbox :label="lang.item8"></el-checkbox>
  143. <el-checkbox :label="lang.item9"></el-checkbox>
  144. </el-checkbox-group>
  145. </el-form-item>
  146. <el-form-item>
  147. <el-input show-password class="m-input" type="textarea" :rows="2" v-model="params.reasonsOther"
  148. :placeholder="lang.item9"></el-input>
  149. </el-form-item>
  150. <el-form-item>
  151. <el-button type="primary" class="s-btn" @click="send">{{lang.btn}}</el-button>
  152. </el-form-item>
  153. </el-form>
  154. </div>
  155. </div>
  156. </div>
  157. <script src="js/vue.min.js"></script>
  158. <script src="js/axios.min.js"></script>
  159. <script src="js/element-ui.js"></script>
  160. <script src="js/element@2.12.2.js"></script>
  161. <script src="js/unsubscribe.js"></script>
  162. </body>
  163. </html>