logIn.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns="http://www.w3.org/1999/html">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport"
  6. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  8. <meta name='apple-touch-fullscreen' content='yes'>
  9. <meta name="apple-mobile-web-app-capable" content="yes"/>
  10. <meta content="fullscreen=yes,preventMove=no" name="ML-Config">
  11. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  12. <meta name="renderer" content="webkit">
  13. <meta name="apple-mobile-web-app-capable" content="yes"/>
  14. <meta name="keywords" content="电子烟,关键字"/>
  15. <meta name="Description" content="网站描述"/>
  16. <title>Log in|Register</title>
  17. <link rel="stylesheet" href="/assets/index/css/common.css?t=10100">
  18. <link rel="stylesheet" href="/assets/index/css/login.css?t=101">
  19. </head>
  20. <body>
  21. <main id="main">
  22. <div class="pageContainer">
  23. <a href="/index/index/index.html">
  24. <div class="pageLogo">
  25. <img src="/assets/index/asstes/icon/logo.png" alt="">
  26. </div>
  27. </a>
  28. <section class="pageSection">
  29. <!-- 登录模块 -->
  30. <div id="loginModel">
  31. <h1 class="modelTitle">Log In</h1>
  32. <div class="modelContainer">
  33. <!-- 电子邮箱 -->
  34. <div class="modelItem">
  35. <p class="miTitle">Email Address</p>
  36. <input class="input" type="text" name="" id="userName">
  37. </div>
  38. <!-- 密码 -->
  39. <div class="modelItem">
  40. <p class="miTitle">Password</p>
  41. <input class="input" type="password" name="" id="password">
  42. </div>
  43. <a href="/index/passport/retrievePassword.html"><p class="forgotPassword">Forgot Password?</p>
  44. </a>
  45. <!-- 登录 -->
  46. <div class="pageButton" id="loginButton">Log In</div>
  47. <!-- 没有账户 -->
  48. <div class="accountTips">
  49. <p>No account? </p>
  50. <span id="toRegister">&nbsp;Sign Up</span>
  51. </div>
  52. </div>
  53. </div>
  54. <!-- 注册模块 -->
  55. <div id="registerModel">
  56. <!-- 电子邮箱输入模块 -->
  57. <div id="emailInputModel">
  58. <h1 class="modelTitle">Sign Up</h1>
  59. <div class="modelContainer">
  60. <!-- 电子邮箱地址 -->
  61. <div class="modelItem">
  62. <p class="miTitle">Email Address</p>
  63. <input class="input" type="text" name="" id="email">
  64. </div>
  65. <div class="pageButton" id="continueButton">Continue</div>
  66. <div class="accountTips">
  67. <p>Have an Account?</p>
  68. <span id="toLogin">&nbsp;Log In</span>
  69. </div>
  70. </div>
  71. </div>
  72. <!-- 电子邮箱验证模块 -->
  73. <div id="emailVerifyModel">
  74. <h1 class="modelTitle">Verify Email Address</h1>
  75. <p class="modelTips">Code has been sent to <span id="emailAddress"></span></p>
  76. <div class="modelContainer">
  77. <!-- 电子邮箱验证码 -->
  78. <div class="modelItem">
  79. <p class="miTitle">Code</p>
  80. <input class="input" type="text" name="" id="vcode">
  81. </div>
  82. <!-- 验证 -->
  83. <div class="pageButton" id="verifyButton">Verify</div>
  84. </div>
  85. </div>
  86. <!-- 设置密码 -->
  87. <div id="setPasswordModel">
  88. <h1 class="modelTitle">Password</h1>
  89. <div class="modelContainer">
  90. <!-- 设置密码 -->
  91. <div class="modelItem">
  92. <p class="miTitle">Password</p>
  93. <input class="input" type="password" name="" id="regPassword">
  94. </div>
  95. <!-- 注册 -->
  96. <div class="pageButton" id="registerButton">Register</div>
  97. </div>
  98. </div>
  99. </div>
  100. </section>
  101. </div>
  102. </main>
  103. <!-- 年龄提示层 -->
  104. <section class="maskContainer">
  105. <div class="ageReminderBox">
  106. <img class="ageReminderBack"
  107. src="https://img1.baidu.com/it/u=3449617615,1431463931&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1709485200&t=489bafcac7c5bebed91cf50c14356269"
  108. alt="">
  109. <div class="ageReminderInfo">
  110. <h3>ARE YOU OF LEAAL SMOKIND AGE?</h3>
  111. <div class="ageReminderButBox">
  112. <div class="ageRBut ageReminderNo"><span>NO</span></div>
  113. <div class="ageRBut ageReminderYes"><span>Yes, I am 21+</span></div>
  114. </div>
  115. </div>
  116. </div>
  117. </section>
  118. <!-- 吐司提示 -->
  119. <div id="toastContainer"></div>
  120. </body>
  121. <script src="/assets/index/js/jquery-1.12.0.js"></script>
  122. <script src="/assets/index/js/flexible.js"></script>
  123. <script src="/assets/index/js/public.js"></script>
  124. <script src="/assets/index/js/login.js?y=10"></script>
  125. <script>
  126. $(document).ready(function () {
  127. //用户存储token名
  128. const VAPES_TOKEN = "vapes_token"
  129. //触屏事件 || 点击事件
  130. const tap = "ontouchstart" in window ? "touchstart" : "click";
  131. /**
  132. * 吐司提示
  133. * @param message 消息
  134. * @returns
  135. */
  136. function showToast(message) {
  137. var toastElement = $('#toastContainer');
  138. toastElement.text(message);
  139. toastElement.stop(true, true).fadeIn(200).delay(2000).fadeOut(200);
  140. }
  141. //去登录
  142. $("#toLogin").on(tap, function () {
  143. $("#registerModel").hide(0)
  144. $("#loginModel").show(0)
  145. });
  146. //去注册
  147. $("#toRegister").on(tap, function () {
  148. $("#loginModel").hide(0)
  149. $("#registerModel").show(0)
  150. });
  151. //登录
  152. $("#loginButton").on(tap, function (event) {
  153. event.preventDefault();
  154. const userNameEle = $("#userName");
  155. const passwordEle = $("#password");
  156. //输入框不存在
  157. if (!userNameEle || !passwordEle) {
  158. return
  159. }
  160. //用户名
  161. const userName = userNameEle.val()
  162. //密码
  163. const password = passwordEle.val()
  164. if (!userName || userName == "") {
  165. userNameEle.focus();
  166. return
  167. }
  168. if (!password || password == "") {
  169. passwordEle.focus();
  170. return
  171. }
  172. console.log("用户名", userName)
  173. console.log("密码", password)
  174. var dp = {
  175. form: {
  176. mobile: userName,
  177. smsCode: '888888',
  178. password: password,
  179. isParty: false,
  180. partyData: []
  181. }
  182. }
  183. $.ajax({
  184. url: "/index/passport/login",
  185. headers: {platform: 'H5', storeId: 10001},
  186. dataType: 'json',
  187. data: JSON.stringify(dp),
  188. type: "POST",
  189. contentType: 'application/json',
  190. success: function (obj) {
  191. console.log(obj);
  192. //return false;
  193. //注册成功后进入
  194. if (obj.status === 200 || obj.status === '200') {
  195. showToast('Login successful')
  196. setTimeout(function () {
  197. //jumpPage()
  198. if (obj.data.returnUri !== ''){
  199. window.location.replace(obj.data.returnUri);
  200. }else {
  201. window.location.replace('/index/index/index.html');
  202. }
  203. }, 2000)
  204. } else {
  205. showToast(obj.message)
  206. }
  207. }
  208. })
  209. });
  210. let countdown = 60;
  211. let countdownTimer;
  212. //继续(注册)
  213. $("#continueButton").on(tap, function (event) {
  214. event.preventDefault();
  215. console.log(2)
  216. if (countdownTimer) {
  217. return;
  218. }
  219. const emailEle = $("#email");
  220. //输入框不存在
  221. if (!emailEle) {
  222. return
  223. }
  224. //电子邮箱地址
  225. const email = emailEle.val()
  226. if (!email || email == "") {
  227. emailEle.focus();
  228. return
  229. }
  230. // 点击后立即执行一次倒计时
  231. countdown = 60
  232. $(this).text(countdown + 's');
  233. countdown--;
  234. const dp = {
  235. form: {
  236. mobile: email,
  237. smsCode: "hjhjhj",
  238. isParty: false,
  239. partyData: []
  240. }
  241. };
  242. // 开始倒计时
  243. countdownTimer = setInterval(() => {
  244. if (countdown <= 0) {
  245. clearInterval(countdownTimer);
  246. countdownTimer = null;
  247. // 倒计时结束后恢复按钮状态
  248. $(this).text('Get code');
  249. } else {
  250. $(this).text(countdown + 's');
  251. countdown--;
  252. }
  253. }, 1000);
  254. $.ajax({
  255. url: "/index/captcha/sendEmailCaptcha",
  256. headers: {platform: 'H5'},
  257. dataType: 'json',
  258. data: JSON.stringify(dp),
  259. type: "POST",
  260. contentType: 'application/json',
  261. success: function (obj) {
  262. console.log(obj);
  263. //return false;
  264. //注册成功后进入
  265. if (obj.status === 200 || obj.status === '200') {
  266. showToast('Code has been sent! Please check your new mails.')
  267. const parentElement = $(this).parent();
  268. //parentElement.hide(0)
  269. //parentElement.siblings().hide(0)
  270. $("#emailVerifyModel").show(0).siblings().hide(0)
  271. $("#emailAddress").text(email)
  272. } else {
  273. showToast(obj.message)
  274. }
  275. }
  276. })
  277. //验证成功后进入
  278. });
  279. //验证电子邮箱(注册)
  280. $("#verifyButton").on(tap, function (event) {
  281. event.preventDefault();
  282. const vcodeEle = $("#vcode");
  283. //输入框不存在
  284. if (!vcodeEle) {
  285. return
  286. }
  287. //验证码
  288. const vcode = vcodeEle.val()
  289. if (!vcode || vcode == "") {
  290. vcodeEle.focus();
  291. return
  292. }
  293. console.log("验证码", vcode)//checkEmailCaptcha
  294. const emailEle = $("#email");
  295. const email = emailEle.val()
  296. const dp = {
  297. mobile: email,
  298. smsCode: vcode,
  299. };
  300. $.ajax({
  301. url: "/index/captcha/checkEmailCaptcha",
  302. headers: {platform: 'H5'},
  303. dataType: 'json',
  304. data: JSON.stringify(dp),
  305. type: "POST",
  306. contentType: 'application/json',
  307. success: function (obj) {
  308. //console.log(obj);
  309. //验证成功后进入
  310. if (obj.status === 200 || obj.status === '200') {
  311. const parentElement = $(this).parent();
  312. //parentElement.hide(0)
  313. //parentElement.siblings().hide(0)
  314. $("#setPasswordModel").show(0).siblings().hide(0)
  315. } else {
  316. showToast(obj.message)
  317. //showToast('Please try again later.')
  318. }
  319. }
  320. })
  321. });
  322. //确认注册(注册)
  323. $("#registerButton").on(tap, function (event) {
  324. event.preventDefault();
  325. const emailEle = $("#email");
  326. const vcodeEle = $("#vcode");
  327. const regPasswordEle = $("#regPassword");
  328. const email = emailEle.val()
  329. const vcode = vcodeEle.val()
  330. const password = regPasswordEle.val()
  331. if (!password || password == "") {
  332. regPasswordEle.focus();
  333. return
  334. }
  335. var dp = {
  336. form: {
  337. mobile: email,
  338. smsCode: vcode,
  339. password: password,
  340. isParty: false,
  341. partyData: []
  342. }
  343. }
  344. $.ajax({
  345. url: "/index/passport/register",
  346. headers: {platform: 'H5'},
  347. dataType: 'json',
  348. data: JSON.stringify(dp),
  349. type: "POST",
  350. contentType: 'application/json',
  351. success: function (obj) {
  352. //注册成功后进入
  353. if (obj.status === 200 || obj.status === '200') {
  354. // console.log("注册成功",obj.data.token)
  355. // localStorage.setItem(VAPES_TOKEN, obj.data.token)
  356. showToast('Register successful')
  357. setTimeout(function () {
  358. window.location.replace('/index/passport/login.html');
  359. }, 2000)
  360. } else {
  361. showToast(obj.message)
  362. }
  363. }
  364. })
  365. })
  366. function jumpPage() {
  367. const url = window.location.href;
  368. // 判断是否存在 return 参数 && 可返回上一页
  369. if (url.indexOf('return') != -1 && window.history.length > 1) {
  370. // 返回上一页
  371. window.history.back();
  372. } else {
  373. //跳转首页
  374. window.location.replace('/index/index/index.html');
  375. }
  376. }
  377. })
  378. </script>
  379. </html>