diff --git a/src/assets/login/close-eyes.png b/src/assets/login/close-eyes.png new file mode 100644 index 00000000..14e483a4 Binary files /dev/null and b/src/assets/login/close-eyes.png differ diff --git a/src/assets/login/face.png b/src/assets/login/face.png new file mode 100644 index 00000000..a00cb688 Binary files /dev/null and b/src/assets/login/face.png differ diff --git a/src/assets/login/hand-down-left.png b/src/assets/login/hand-down-left.png new file mode 100644 index 00000000..aefef6cf Binary files /dev/null and b/src/assets/login/hand-down-left.png differ diff --git a/src/assets/login/hand-down-right.png b/src/assets/login/hand-down-right.png new file mode 100644 index 00000000..a2602a6a Binary files /dev/null and b/src/assets/login/hand-down-right.png differ diff --git a/src/assets/login/hand-up-left.png b/src/assets/login/hand-up-left.png new file mode 100644 index 00000000..0d971f80 Binary files /dev/null and b/src/assets/login/hand-up-left.png differ diff --git a/src/assets/login/hand-up-right.png b/src/assets/login/hand-up-right.png new file mode 100644 index 00000000..088fa160 Binary files /dev/null and b/src/assets/login/hand-up-right.png differ diff --git a/src/views/login/components/Owl.vue b/src/views/login/components/Owl.vue new file mode 100644 index 00000000..db284b87 --- /dev/null +++ b/src/views/login/components/Owl.vue @@ -0,0 +1,92 @@ + + + + + + + + + + + + + diff --git a/src/views/login/hooks/useFocus.ts b/src/views/login/hooks/useFocus.ts new file mode 100644 index 00000000..b6204e39 --- /dev/null +++ b/src/views/login/hooks/useFocus.ts @@ -0,0 +1,17 @@ +import { ref } from "vue" + +export function useFocus() { + /** 是否有焦点 */ + const isFocus = ref(false) + + /** 失去焦点 */ + const handleBlur = () => { + isFocus.value = false + } + /** 获取焦点 */ + const handleFocus = () => { + isFocus.value = true + } + + return { isFocus, handleBlur, handleFocus } +} diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 45237490..5abe84cd 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -7,8 +7,11 @@ import { User, Lock, Key, Picture, Loading } from "@element-plus/icons-vue" import { getLoginCodeApi } from "@/api/login" import { type LoginRequestData } from "@/api/login/types/login" import ThemeSwitch from "@/components/ThemeSwitch/index.vue" +import Owl from "./components/Owl.vue" +import { useFocus } from "./hooks/useFocus" const router = useRouter() +const { isFocus, handleBlur, handleFocus } = useFocus() /** 登录表单元素的引用 */ const loginFormRef = ref(null) @@ -72,6 +75,7 @@ createCode() + @@ -97,6 +101,8 @@ createCode() :prefix-icon="Lock" size="large" show-password + @blur="handleBlur" + @focus="handleFocus" /> @@ -135,6 +141,7 @@ createCode()