From b40c9c30362669b1862d42d31557ec6e04e5a973 Mon Sep 17 00:00:00 2001 From: landaiqing <3517283258@qq.com> Date: Sun, 11 Aug 2024 18:11:15 +0800 Subject: [PATCH] :sparkles: qr login page /reset password page --- components.d.ts | 8 + .../images/{login-back.png => background.png} | Bin src/components/BoxDog/index.scss | 1 - src/locales/language/en.ts | 10 +- src/locales/language/zh.ts | 14 +- src/router/modules/qrlogin.ts | 11 + src/router/modules/register.ts | 11 - src/router/modules/resetpass.ts | 11 + src/router/router.ts | 6 +- src/types/user.d.ts | 8 + src/views/Forget/ForgetPage.vue | 209 ++++++++++++++++++ src/views/Forget/index.scss | 90 ++++++++ src/views/Login/LoginFooter.vue | 25 +++ src/views/Login/LoginPage.vue | 44 ++-- src/views/Login/index.scss | 6 +- src/views/QRLogin/QRLogin.vue | 51 +++++ src/views/QRLogin/QRLoginFooter.vue | 25 +++ src/views/QRLogin/index.scss | 98 ++++++++ src/views/Register/RegisterPage.vue | 17 -- src/views/Register/index.scss | 0 20 files changed, 580 insertions(+), 65 deletions(-) rename src/assets/images/{login-back.png => background.png} (100%) create mode 100644 src/router/modules/qrlogin.ts delete mode 100644 src/router/modules/register.ts create mode 100644 src/router/modules/resetpass.ts create mode 100644 src/views/Forget/ForgetPage.vue create mode 100644 src/views/Forget/index.scss create mode 100644 src/views/Login/LoginFooter.vue create mode 100644 src/views/QRLogin/QRLogin.vue create mode 100644 src/views/QRLogin/QRLoginFooter.vue create mode 100644 src/views/QRLogin/index.scss delete mode 100644 src/views/Register/RegisterPage.vue delete mode 100644 src/views/Register/index.scss diff --git a/components.d.ts b/components.d.ts index f3f37be..1475997 100644 --- a/components.d.ts +++ b/components.d.ts @@ -19,6 +19,7 @@ declare module 'vue' { AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] + AQrcode: typeof import('ant-design-vue/es')['QRCode'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] ATabPane: typeof import('ant-design-vue/es')['TabPane'] @@ -27,7 +28,14 @@ declare module 'vue' { ATooltip: typeof import('ant-design-vue/es')['Tooltip'] BoxDog: typeof import('./src/components/BoxDog/BoxDog.vue')['default'] DynamicTitle: typeof import('./src/components/DynamicTitle/DynamicTitle.vue')['default'] + FoegetPage: typeof import('./src/views/Forget/FoegetPage.vue')['default'] + ForgetPage: typeof import('./src/views/Forget/ForgetPage.vue')['default'] + LockOutlined: typeof import('@ant-design/icons-vue')['LockOutlined'] + LoginFooter: typeof import('./src/views/Login/LoginFooter.vue')['default'] LoginPage: typeof import('./src/views/Login/LoginPage.vue')['default'] + QRLogin: typeof import('./src/views/QRLogin/QRLogin.vue')['default'] + QRLoginFooter: typeof import('./src/views/QRLogin/QRLoginFooter.vue')['default'] + RegisterFooter: typeof import('./src/views/Register/RegisterFooter.vue')['default'] RegisterPage: typeof import('./src/views/Register/RegisterPage.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/src/assets/images/login-back.png b/src/assets/images/background.png similarity index 100% rename from src/assets/images/login-back.png rename to src/assets/images/background.png diff --git a/src/components/BoxDog/index.scss b/src/components/BoxDog/index.scss index 99e4e2b..dff7f04 100644 --- a/src/components/BoxDog/index.scss +++ b/src/components/BoxDog/index.scss @@ -21,7 +21,6 @@ body { background: transparent; padding: 0; margin: 0; - z-index: 999; } .container { diff --git a/src/locales/language/en.ts b/src/locales/language/en.ts index db59b39..d1f9b59 100644 --- a/src/locales/language/en.ts +++ b/src/locales/language/en.ts @@ -20,7 +20,15 @@ export default { login: "login", register: "register", reSendCaptcha: " re-send", - passwordRule: "The password must be 6~18 characters and must contain letters, numbers and special symbols!" + passwordRule: "The password must be 6~18 characters and must contain letters, numbers and special symbols!", + phoneLoginAndRegister: "phone login/register", + open: "Please open", + scan: "scan the code to login", + wechat: "wechat", + repassword: "confirm password", + repasswordValidate: "please enter the confirmation password", + forgetPassword: "forget password", + resetPassword: "reset password", }, error: { networkError: 'Network error, please try again later', diff --git a/src/locales/language/zh.ts b/src/locales/language/zh.ts index 8dc8002..c1c8825 100644 --- a/src/locales/language/zh.ts +++ b/src/locales/language/zh.ts @@ -1,7 +1,7 @@ // zh.ts export default { login: { - title: '五味子云存储', + title: '五味子云相册', accountLogin: '账号登录', account: '账号', accountValidate: '请输入手机号/账号/邮箱', @@ -9,7 +9,7 @@ export default { passwordValidate: "请输入密码", autoLogin: "自动登录", forgotPassword: "忘记密码", - loginAndRegister: "登录", + loginAndRegister: "登录/注册", qrLogin: "扫码登录", phoneLogin: "短信登录", phone: "手机号", @@ -20,7 +20,15 @@ export default { login: "登录", register: "注册", reSendCaptcha: "重新发送", - passwordRule: "密码要6~18位字符,且必须包含字母、数字和特殊符号!" + passwordRule: "密码要6~18位字符,且必须包含字母、数字和特殊符号!", + phoneLoginAndRegister: "短信注册/登录", + open: "请打开", + scan: "扫码登录", + wechat: "微信", + repassword: "确认密码", + repasswordValidate: "请输入确认密码", + forgetPassword: "忘记密码", + resetPassword: "重置密码", }, error: { networkError: '网络连接失败!', diff --git a/src/router/modules/qrlogin.ts b/src/router/modules/qrlogin.ts new file mode 100644 index 0000000..286771a --- /dev/null +++ b/src/router/modules/qrlogin.ts @@ -0,0 +1,11 @@ +export default [ + { + path: '/qrlogin', + name: 'qrlogin', + component: () => import('@/views/QRLogin/QRLogin.vue'), + meta: { + requiresAuth: false, + title: '扫码登录' + } + } +]; diff --git a/src/router/modules/register.ts b/src/router/modules/register.ts deleted file mode 100644 index c3748da..0000000 --- a/src/router/modules/register.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default [ - { - path: '/register', - name: 'register', - component: () => import('@/views/Register/RegisterPage.vue'), - meta: { - requiresAuth: false, - title: '注册页' - } - } -]; diff --git a/src/router/modules/resetpass.ts b/src/router/modules/resetpass.ts new file mode 100644 index 0000000..1170257 --- /dev/null +++ b/src/router/modules/resetpass.ts @@ -0,0 +1,11 @@ +export default [ + { + path: '/resetpass', + name: 'resetpass', + component: () => import('@/views/Forget/ForgetPage.vue'), + meta: { + requiresAuth: false, + title: '重置密码' + } + } +]; diff --git a/src/router/router.ts b/src/router/router.ts index 280d33a..19c9b02 100644 --- a/src/router/router.ts +++ b/src/router/router.ts @@ -7,12 +7,14 @@ import test2 from "@/router/modules/testI18n.ts"; import useStore from "@/store"; import {message} from "ant-design-vue"; import {close, start} from '@/utils/nprogress/nprogress.ts'; -import register from "@/router/modules/register.ts"; +import qrlogin from "@/router/modules/qrlogin.ts"; +import resetpass from "@/router/modules/resetpass.ts"; const routes: Array = [ ...login, - ...register, + ...qrlogin, + ...resetpass, ...test, ...test2, ]; diff --git a/src/types/user.d.ts b/src/types/user.d.ts index 90c5698..d355780 100644 --- a/src/types/user.d.ts +++ b/src/types/user.d.ts @@ -8,7 +8,15 @@ export interface AccountLogin { account?: string password?: string; } + export interface PhoneLogin { phone?: string captcha?: string; } + +export interface ResetPassword { + phone?: string + captcha?: string; + password?: string; + repassword?: string; +} diff --git a/src/views/Forget/ForgetPage.vue b/src/views/Forget/ForgetPage.vue new file mode 100644 index 0000000..0250511 --- /dev/null +++ b/src/views/Forget/ForgetPage.vue @@ -0,0 +1,209 @@ + + + diff --git a/src/views/Forget/index.scss b/src/views/Forget/index.scss new file mode 100644 index 0000000..2b63293 --- /dev/null +++ b/src/views/Forget/index.scss @@ -0,0 +1,90 @@ +.forget-main { + display: flex; + flex-direction: row; + //background-color: rgb(238, 255, 238); + width: 100vw; + height: 100vh; + /* 加载背景图 */ + background-image: url("@/assets/images/background.png"); + /* 背景图垂直、水平均居中 */ + background-position: center center; + /* 背景图不平铺 */ + background-repeat: no-repeat; + /* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ + background-attachment: fixed; + /* 让背景图基于容器大小伸缩 */ + background-size: cover; + + .forget-left { + width: 50%; + } + + .forget-right { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 50%; + height: 100%; + + .forget-right-title { + font-size: 32px; + font-weight: 600; + margin-bottom: 32px; + } + + .forget-card-span { + color: #999ba1; + font-size: 12px; + } + + .forget-card-return { + color: #999ba1; + font-size: 12px; + cursor: pointer; + } + + .forget-card-return:hover { + color: #08a327; + font-size: 12px; + cursor: pointer; + } + } + + .forget-card { + width: 440px; + height: 490px; + border-radius: 15px; + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .08); + + .forget-card-title { + font-size: 20px; + font-weight: 600; + color: #222; + line-height: 26px; + margin-bottom: 24px + } + + .forget-right-qrcode { + position: absolute; + right: 0; + top: 0; + background-position: 50%; + background-size: cover; + background-repeat: no-repeat; + width: 72px; + height: 72px; + background-image: url(data:image/png;base64,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); + cursor: pointer; + } + + .forget-right-qrcode:hover { + opacity: 0.9; + } + + .forget-form-bottom-button { + color: #999ba1; + } + } + +} diff --git a/src/views/Login/LoginFooter.vue b/src/views/Login/LoginFooter.vue new file mode 100644 index 0000000..eb9bb92 --- /dev/null +++ b/src/views/Login/LoginFooter.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/views/Login/LoginPage.vue b/src/views/Login/LoginPage.vue index 18f117d..a3426a9 100644 --- a/src/views/Login/LoginPage.vue +++ b/src/views/Login/LoginPage.vue @@ -20,7 +20,7 @@ name="phone"> {{ t("login.phone") }} + diff --git a/src/views/QRLogin/QRLoginFooter.vue b/src/views/QRLogin/QRLoginFooter.vue new file mode 100644 index 0000000..2f6d10c --- /dev/null +++ b/src/views/QRLogin/QRLoginFooter.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/views/QRLogin/index.scss b/src/views/QRLogin/index.scss new file mode 100644 index 0000000..e903744 --- /dev/null +++ b/src/views/QRLogin/index.scss @@ -0,0 +1,98 @@ +.qrlogin-main { + display: flex; + flex-direction: row; + //background-color: rgb(238, 255, 238); + width: 100vw; + height: 100vh; + /* 加载背景图 */ + background-image: url("@/assets/images/background.png"); + /* 背景图垂直、水平均居中 */ + background-position: center center; + /* 背景图不平铺 */ + background-repeat: no-repeat; + /* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ + background-attachment: fixed; + /* 让背景图基于容器大小伸缩 */ + background-size: cover; + + .qrlogin-left { + width: 50%; + } + + .qrlogin-right { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 50%; + height: 100%; + + .qrlogin-right-title { + font-size: 32px; + font-weight: 600; + margin-bottom: 32px; + } + } + + .qrlogin-card { + width: 440px; + height: 490px; + border-radius: 15px; + box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .08); + + .qrlogin-card-item-span { + font-size: 20px; + font-weight: 600; + color: #222; + line-height: 26px; + } + + .qrlogin-card-item-info { + margin-top: 12px; + font-size: 12px; + font-weight: 400; + color: #999; + line-height: 18px; + margin-bottom: 24px; + + .qrlogin-card-wechat { + color: #7acc35; + margin-left: 4px; + margin-right: 4px; + cursor: pointer; + font-weight: 600; + } + } + + .qrlogin-card-qr { + margin-top: 24px; + } + + .qrlogin-card-auto-login { + margin-top: 24px; + } + + + .qrlogin-right-qrcode { + position: absolute; + right: 0; + top: 0; + background-position: 50%; + background-size: cover; + background-repeat: no-repeat; + width: 72px; + height: 72px; + background-image: url(data:image/png;base64,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); + cursor: pointer; + } + + .qrlogin-right-qrcode:hover { + opacity: 0.9; + } + + .qrlogin-form-bottom-button { + color: #999ba1; + } + } + +} diff --git a/src/views/Register/RegisterPage.vue b/src/views/Register/RegisterPage.vue deleted file mode 100644 index 340660c..0000000 --- a/src/views/Register/RegisterPage.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/src/views/Register/index.scss b/src/views/Register/index.scss deleted file mode 100644 index e69de29..0000000