From cd4b64140d032ed5d05d6aa7975a16a581137390 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Mon, 10 Nov 2025 15:46:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/api/user.js | 33 ++++ pages.json | 7 + pages/login/index.vue | 390 ++++++++++++++++++++++++++++++++++++++++++ static/logo.jpg | Bin 18825 -> 0 bytes 4 files changed, 430 insertions(+) create mode 100644 pages/login/index.vue delete mode 100644 static/logo.jpg diff --git a/common/api/user.js b/common/api/user.js index c308bab..af8361c 100644 --- a/common/api/user.js +++ b/common/api/user.js @@ -14,3 +14,36 @@ export const getUserInfo = () => { }); }; +/** + * 获取验证码图片 + * @returns {Promise<{img: string, uuid: string, captchaEnabled: boolean}>} + */ +export const getCaptchaImage = () => { + return uni.$uv.http.get('/captchaImage', { + // 验证码无需 token + custom: { + auth: false, + toast: false + } + }); +}; + +/** + * 登录 + * @param {Object} payload 登录参数 + * @param {string} payload.username 用户名 + * @param {string} payload.password 密码 + * @param {string} [payload.code] 验证码 + * @param {string} [payload.uuid] 验证码唯一标识 + * @returns {Promise} 登录结果 + */ +export const login = (payload) => { + return uni.$uv.http.post('/login', payload, { + custom: { + auth: false, + catch: true, + toast: false + } + }); +}; + diff --git a/pages.json b/pages.json index f25e477..10ad3e6 100644 --- a/pages.json +++ b/pages.json @@ -7,6 +7,13 @@ }, "pages": [ + { + "path": "pages/login/index", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + }, { "path": "pages/index/index", "style": { diff --git a/pages/login/index.vue b/pages/login/index.vue new file mode 100644 index 0000000..2698c8c --- /dev/null +++ b/pages/login/index.vue @@ -0,0 +1,390 @@ + + + + + + diff --git a/static/logo.jpg b/static/logo.jpg deleted file mode 100644 index 083426de7a789e4a69ce2e4086e392287c8c7b88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18825 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 D-5JI>