From 19adcad31f20cee871ef3bfcddb36a267dfe92e9 Mon Sep 17 00:00:00 2001 From: kevin Date: Wed, 11 Jun 2025 11:56:29 +0800 Subject: [PATCH] =?UTF-8?q?h5=E7=89=88=E6=9C=AC=E7=A7=BB=E6=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gin_ops/static/dist/js/my_js_func.js | 72 +++++++++++++++++++++++++-- gin_ops/templates/header-logined.html | 32 +++--------- gin_ops/templates/sign-in-01.html | 49 +++++++----------- 3 files changed, 93 insertions(+), 60 deletions(-) diff --git a/gin_ops/static/dist/js/my_js_func.js b/gin_ops/static/dist/js/my_js_func.js index 3599a60..bfbd9eb 100644 --- a/gin_ops/static/dist/js/my_js_func.js +++ b/gin_ops/static/dist/js/my_js_func.js @@ -1,6 +1,70 @@ - //判断字符串是否为邮箱 function isValidEmail(email) { - const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; - return regex.test(email); - } \ No newline at end of file + const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; + return regex.test(email); +} + +function save(key, data) { + localStorage.setItem(key, data); +} +function load(key) { + return localStorage.getItem(key); +} +function dele(key) { + localStorage.removeItem(key); +} + +function save_json(key, data) { + save(key, JSON.stringify(data)); +} + +function load_json(key) { + var js_data = load(key); + if (js_data) { + return JSON.parse(js_data); + } else { + return null; + } +} + +function post_json(path, json, callback) { + var host = ""; + var port = 0; + var head_path = "/api/v1"; + //把cookie插入json + var data = {}; + data["data"] = json; + var cookie = load_json("cookie"); + if (cookie) { + data["cookie"] = cookie; + } + var re_data = {}; + + axios + .post(head_path + path, data, { + headers: { + "Content-Type": "application/json", + }, + }) + .then((response) => { + console.log(response) + re_data["statusCode"] = response.status; + //载入服务器返回的数据 + if (response.data) { + re_data["data"] = response.data; + } + //自动保存服务器发送的cookie + if (response.cookie) { + if (response.cookie.Value == "") { + dele("cookie"); + } else { + save_json("cookie", response.cookie); + } + } + callback(re_data); + }) + .catch((error) => { + re_data["statusCode"] = -1; + callback(re_data); + }); +} diff --git a/gin_ops/templates/header-logined.html b/gin_ops/templates/header-logined.html index fa295f5..d860ccd 100644 --- a/gin_ops/templates/header-logined.html +++ b/gin_ops/templates/header-logined.html @@ -100,31 +100,15 @@ \ No newline at end of file diff --git a/gin_ops/templates/sign-in-01.html b/gin_ops/templates/sign-in-01.html index aa59922..bde333d 100644 --- a/gin_ops/templates/sign-in-01.html +++ b/gin_ops/templates/sign-in-01.html @@ -157,42 +157,27 @@ } if (from_data_check) { - const url = '/api/v1/user/login'; - const sumt_data = { - data: { + post_json("/user/login", { username: username_dom.value, password: password_dom.value, is_keep_login: keep_login_dom.checked - }, + }, (c) => { + if (c.statusCode == 200) { + if (c.data.err_code == 0) { + save_json("cookie", c.data.return.cookie) + save_json("user_info", c.data.return.user_info) + setTimeout(() => { + location.href = '/' + }, 500); + } else { + //this.$refs.footer.alert('warning', "账号或密码不正确") + } + } else { + //this.$refs.footer.alert('danger', "网络连接错误:" + c.statusCode) + } + }) - }; - - try { - const response = axios.post(url, sumt_data, { - headers: { - 'Content-Type': 'application/json' - } - }).then(response => { - console.log('提交成功:', response.data); // 正确打印服务器数据 - //跳转到主页 - if (response.data.err_code == 0) { - location.href = '/' - } else { - password_dom.classList.add("is-invalid"); - document.getElementById("pass_err").innerHTML = "账号或密码错误"; - } - - - - }); - } catch (error) { - if (error.response) { - // 服务器返回了错误状态码(如 4xx, 5xx) - console.error('服务器错误:', error.response.data); - } else { - console.error('请求未完成:', error.message); - } - } + } }