resetPsw.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <template>
  2. <div class="family text-[14px] leading-[1.42857143] text-[#333] bg-[#fff]">
  3. <div class="header h-80px">
  4. <nav
  5. class="nav-header-password col-md-12 leading-[80px] relative min-h-1px px-15px"
  6. >
  7. <div class="logo p-0">
  8. <!-- 此处a需不需要改 -->
  9. <nuxt-link to="/" class="text-[#666] text-[24px] no-underline bg-transparent">
  10. <span class="logo-img m-0 py-20px pl-170px"></span>
  11. <span>17PDF Reader</span>
  12. </nuxt-link>
  13. </div>
  14. </nav>
  15. </div>
  16. <div class="pc-container px-15px mx-auto sm:w-750px">
  17. <section class="password-reset-form py-72px px-0">
  18. <div class="px-15px mx-auto sm:w-750px">
  19. <div class="row mx-[-15px]">
  20. <div class="col-md-3 relative min-h-1px px-15px"></div>
  21. <div class="col-md-6 relative min-h-1px px-15px tiny:w-[70%] tiny:my-0 tiny:mx-auto">
  22. <h2 class="text-center text-[#00bbd3] text-[30px] mb-32px text-center mt-20px leading-[1.1] font-medium">
  23. 设置新密码
  24. </h2>
  25. </div>
  26. </div>
  27. <div class="row form-wrapper mx-[-15px]">
  28. <div class="col-md-3 relative min-h-1px px-15px"></div>
  29. <div class="col-md-6 relative min-h-1px px-15px tiny:w-[70%] tiny:my-0 tiny:mx-auto">
  30. <h3 v-show = " showError " class="warning text-[24px] mt-20px mb-10px font-medium laeding-[1.1]">
  31. 密码重置失败,请确认两次密码一致!
  32. </h3>
  33. <input type="hidden" name="_method" value="put" /><input
  34. type="hidden"
  35. name="authenticity_token"
  36. value="QBgQOkuMzY9y68DxLhdc/7SYTXa5vCi1AOwaPmWairZQEy8t4DnUteFfBA8cJWji/bkgBGwDpQrcSnHum6baJQ=="
  37. />
  38. <div class="form-group mb-34px">
  39. <label
  40. for="password"
  41. class="text-[#333] text-[14px] font-normal max-w-full mb-5px"
  42. >请输入新密码</label
  43. >
  44. <input
  45. id="password"
  46. v-model="newPassword"
  47. type="password"
  48. class="form-control h-40px w-full py-6px px-12px text-[14px] leading-[1.42857143] text-[#555] bg-[#fff] border border-solid border-gray-[#ccc] m-0"
  49. />
  50. </div>
  51. <div class="form-group mb-34px">
  52. <label
  53. for="password-confirmation"
  54. class="text-[#666] text-[14px] font-normal max-w-full mb-5px"
  55. >请输入新密码</label
  56. >
  57. <input
  58. id="password-confirmation"
  59. v-model="confirm_newPassword"
  60. type="password"
  61. class="form-control h-40px w-full py-6px px-12px text-[14px] leading-[1.42857143] text-[#555] bg-[#fff] border border-solid border-gray-[#ccc] m-0"
  62. />
  63. </div>
  64. <button
  65. class="btn btn-block bg-[#fdc656] text-[#fff] h-50px w-full py-6px px-12px mb-0 text-[14px] m-0 font-normal leading-[1.42857143] text-center whitespace-nowrap align-middle cursor-pointer border border-solid border-transparent"
  66. type="submit"
  67. @click="resetPassword"
  68. >
  69. 确认修改
  70. </button>
  71. </div>
  72. </div>
  73. </div>
  74. </section>
  75. </div>
  76. <footer class="footer-password">
  77. <div
  78. class="container-password footer-container w-full bg-[#222] text-[#fff] text-[18px] text-center px-15px mx-auto"
  79. >
  80. <div class="row footer-row py-50px px-100px text-left mx-[-15px]">
  81. <div
  82. class="col-xs-2 w-[16.66666667%] float-left relative min-h-1px px-15px"
  83. ></div>
  84. <div class="col-xs-3 w-[25%] float-left relative min-h-1px px-15px">
  85. <h4 class="title text-[18px] my-10px font-medium leading-[1.1]">
  86. PDF
  87. </h4>
  88. <ul class="p-0 mt-0 mb-10px">
  89. <li class="list-none text-[16px] mt-24px">
  90. <nuxt-link to="/" class="opacity-30 text-[#fff] no-underline bg-transparent">产品</nuxt-link>
  91. </li>
  92. <li class="list-none text-[16px] mt-24px">
  93. <nuxt-link to="/sdk" class="opacity-30 text-[#fff] no-underline bg-transparent">SDK介绍</nuxt-link>
  94. </li>
  95. </ul>
  96. </div>
  97. <div class="col-xs-3 w-[25%] float-left relative min-h-1px px-15px">
  98. <h4 class="title text-[18px] my-10px font-medium leading-[1.1]">
  99. 下载
  100. </h4>
  101. <ul class="p-0 mt-0 mb-10px">
  102. <li class="list-none text-[16px] mt-24px">
  103. <a
  104. target="_blank"
  105. href="https://www.kdanmobile.com/zh-cn/pdf-reader/"
  106. class="opacity-30 text-[#fff] no-underline bg-transparent"
  107. >PDF Reader</a
  108. >
  109. </li>
  110. <li class="list-none text-[16px] mt-24px">
  111. <a
  112. target="_blank"
  113. href="https://markups.kdanmobile.com/"
  114. class="opacity-30 text-[#fff] no-underline bg-transparent"
  115. >Markup</a
  116. >
  117. </li>
  118. <li class="list-none text-[16px] mt-24px">
  119. <a
  120. target="_blank"
  121. href="https://www.kdanmobile.com/zh-cn/pdf-reader/"
  122. class="opacity-30 text-[#fff] no-underline bg-transparent"
  123. >Connoisser</a
  124. >
  125. </li>
  126. <li class="list-none text-[16px] mt-24px">
  127. <a
  128. target="_blank"
  129. href="https://chrome.google.com/webstore/detail/pdf-markup-my-web-markups/cbjngbfjehiofmihfpodinolkcokdojp"
  130. class="opacity-30 text-[#fff] no-underline bg-transparent"
  131. >网页插件</a
  132. >
  133. </li>
  134. </ul>
  135. </div>
  136. <div class="col-xs-3 w-[25%] float-left relative min-h-1px px-15px">
  137. <h4 class="title text-[18px] my-10px font-medium leading-[1.1]">
  138. 联系我们
  139. </h4>
  140. <div class="icon mt-28px">
  141. <a
  142. class="call mt-20px mr-20px no-underline"
  143. title="0731-84225961"
  144. ></a>
  145. <a
  146. target="_blank"
  147. href="http://weibo.com/kdanmobilesoftware"
  148. class="weibo mt-20px mr-20px no-underline"
  149. ></a>
  150. <a
  151. class="qq mt-20px mr-20px no-underline"
  152. href="tencent://message/?uin=231368992&amp;Site"
  153. ></a>
  154. </div>
  155. </div>
  156. </div>
  157. <p class="text-muted text-[14px] text-[#777] mb-10px mt-0 mx-0">
  158. <a target="_blank" href="/terms" class="text-muted"
  159. >服务条款</a
  160. >
  161. |
  162. <a target="_blank" href="/privacy" class="text-muted"
  163. >隐私政策</a
  164. >
  165. | ©2022 Kdanmobile All Rights Reserved.
  166. </p>
  167. <p class="text-muted text-[14px] text-[#777] mb-10px mt-0 mx-0">
  168. 凯钿公司 版权所有
  169. </p>
  170. </div>
  171. </footer>
  172. </div>
  173. </template>
  174. <script>
  175. import qs from 'qs'
  176. export default {
  177. layout(){
  178. return 'custom'
  179. },
  180. middleware:'user',
  181. head(){
  182. return {
  183. title:'17PDF Reader - 账号管理'
  184. }
  185. },
  186. data() {
  187. return {
  188. confirm_newPassword: '',
  189. newPassword: '',
  190. showError: false
  191. }
  192. },
  193. methods: {
  194. resetPassword() {
  195. if(this.newPassword === '' || this.confirm_newPassword !== this.newPassword || this.newPassword.length < 6) {
  196. this.showError = true
  197. return
  198. }
  199. const data = qs.parse(location.href.split('?')[1])
  200. const params = {
  201. account: data.account,
  202. verifyCode: data.verifyCode,
  203. type: '0',
  204. newPassword: this.newPassword
  205. }
  206. this.$axios.post('members/resetPassword', params).then((res) => {
  207. if(res.code === 200) {
  208. this.$router.push('/')
  209. }
  210. })
  211. }
  212. }
  213. }
  214. </script>
  215. <style>
  216. /* 字体 */
  217. .family {
  218. font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  219. }
  220. /* 头部边框 */
  221. .nav-header-password {
  222. border-bottom: 1px solid #dadada;
  223. }
  224. /* logo背景图 */
  225. .logo-img {
  226. background: url(~/assets/images/password/logo_pdf_top_red-f4311f231ebc70c4ba5ac8e1e6af907a48ea69f1f159c501a277ade70dfd7022.png)
  227. no-repeat 85% 50%;
  228. }
  229. /* input被focus */
  230. .form-control:focus {
  231. border-color: #66afe9;
  232. outline: 0;
  233. -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%),
  234. 0 0 8px rgb(102 175 233 / 60%);
  235. box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(102 175 233 / 60%);
  236. }
  237. .btn:hover {
  238. background-color: #fab93d;
  239. }
  240. .container-password::before,
  241. .container-password::after,
  242. .row::before,
  243. .row::after {
  244. content: ' ';
  245. display: table;
  246. clear: both;
  247. }
  248. /* windi css不能实现的 */
  249. .form-control {
  250. -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
  251. box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
  252. -webkit-transition: border-color ease-in-out 0.15s,
  253. -webkit-box-shadow ease-in-out 0.15s;
  254. -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  255. transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  256. }
  257. /* 确认按钮 */
  258. .btn {
  259. -ms-touch-action: manipulation;
  260. touch-action: manipulation;
  261. -webkit-user-select: none;
  262. -moz-user-select: none;
  263. -ms-user-select: none;
  264. user-select: none;
  265. }
  266. /* 底部图标 */
  267. .call:before {
  268. content: url(~/assets/images/password/ic_foot_phone_normal-6c4b69f54ec3fd9ba9c181a1a776c0ea4695c2c4f26c134b88f41796d14c72af.png);
  269. }
  270. .weibo:before {
  271. content: url(~/assets/images/password/ic_foot_weibo_normal-c0b566a8cc73aa0577487c8f179327856e74b0572a787211917c3a2e671f8628.png);
  272. }
  273. .qq:before {
  274. content: url(~/assets/images/password/ic_foot_qq_normal-e67510e549266f75e77757d308306b01185370fffc5a105438d91601b6a486ec.png);
  275. }
  276. </style>