From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 21 十二月 2024 18:40:43 +0800
Subject: [PATCH] 新建德森项目分支

---
 zy-asrs-admin/src/views/login/LoginView.vue |  612 +++++++++++++++++++++++++++---------------------------
 1 files changed, 306 insertions(+), 306 deletions(-)

diff --git a/zy-asrs-admin/src/views/login/LoginView.vue b/zy-asrs-admin/src/views/login/LoginView.vue
index bc8e659..ae6d731 100644
--- a/zy-asrs-admin/src/views/login/LoginView.vue
+++ b/zy-asrs-admin/src/views/login/LoginView.vue
@@ -1,307 +1,307 @@
-<script setup>
-import { getCurrentInstance, inject, ref } from 'vue';
-import { message } from 'ant-design-vue';
-import { get, post } from '../../utils/request.js'
-import { formatMessage } from '@/utils/localeUtils.js';
-const context = getCurrentInstance()?.appContext.config.globalProperties;
-const globalState = inject('globalState');
-
-let copyrightLargeShow = ref(false);
-let username = ref("");
-let password = ref("");
-let hostId = ref(null);
-let hostList = ref([]);
-
-function loginConfirm() {
-    if (username.value == "" || password.value == "") {
-        message.info(formatMessage('login.input', '璇疯緭鍏ヨ处鍙峰瘑鐮�!'));
-        return;
-    }
-
-    post('/api/login', {
-        username: username.value,
-        password: password.value,
-        hostId: hostId.value,
-    }).then((result) => {
-        if (result.data.code == 200) {
-            let data = result.data.data;
-            globalState.token = data.accessToken;
-            globalState.user = data.user;
-            localStorage.setItem('token', data.accessToken)
-            localStorage.setItem('user', JSON.stringify(data.user))
-            message.success(formatMessage('login.success', '鐧诲綍鎴愬姛'))
-            window.location.reload();
-        } else {
-            message.error(result.data.msg)
-        }
-    })
-
-}
-
-getHostList()
-function getHostList() {
-    get('/api/auth/host', {}).then((result) => {
-        if (result.data.code == 200) {
-            let data = result.data.data;
-            let tmp = []
-            data.forEach((item) => {
-                tmp.push({
-                    label: item.name,
-                    value: item.id
-                })
-            })
-            hostList.value = tmp;
-
-            if(tmp.length > 0) {
-                let tmpHost = tmp[0]
-                hostId.value = tmpHost.value;
-            }
-        } else {
-            message.error(result.data.msg)
-        }
-    })
-}
-
-</script>
-
-<script>
-export default {
-    name: 'login'
-}
-</script>
-
-<template>
-    <div class="container" @keyup.enter="loginConfirm">
-        <div class="left-box">
-            <div class="login-video">
-                <video src="/public/img/login-bg.mp4" height="100%" loop autoplay muted="false"
-                    controlslist="nodownload" disablepictureinpicture></video>
-                <!-- <img src="/public/img/bg1.png" height="100%"> -->
-            </div>
-        </div>
-
-        <div class="right-box">
-            <div class="login-box">
-                <div class="form-main">
-                    <p style="text-align: center;"><img class="loginLogoUrl" src="/public/img/logo.png" alt=""
-                            style="width: 80%">
-                    </p>
-                    <p style="margin-top: -10px;"><span class="login100-form-title p-t-20 p-b-45"
-                            style="color: #868686;font-size: 24px">WMS</span></p>
-
-                    <div class="inputContainer">
-                        <a-select v-model:value="hostId" style="width: 100%;" :options="hostList"></a-select>
-                    </div>
-
-                    <div class="inputContainer">
-                        <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
-                            xmlns="http://www.w3.org/2000/svg" class="inputIcon">
-                            <path
-                                d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z">
-                            </path>
-                        </svg>
-                        <input :placeholder="formatMessage('login.rule.username', '璇疯緭鍏ョ敤鎴峰悕')" v-model="username" class="inputField" type="text">
-                    </div>
-
-                    <div class="inputContainer">
-                        <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
-                            xmlns="http://www.w3.org/2000/svg" class="inputIcon">
-                            <path
-                                d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z">
-                            </path>
-                        </svg>
-                        <input :placeholder="formatMessage('login.rule.password', '璇疯緭鍏ュ瘑鐮�')" v-model="password" class="inputField" type="password">
-                    </div>
-
-                    <input @click="loginConfirm" type="button" class="login-button" :value="formatMessage('common.submit', '鐧诲綍')">
-
-                    <div style="display: none;margin-top: 5px;width: 100%;" id="updateLicense">
-                        <form enctype="multipart/form-data" style="display: none;">
-                            <input id="license" type="file" name="file">
-                        </form>
-                        <input type="button" id="submitLicense" class="login-button" style="margin: 0;" value="鏇存柊璁稿彲璇�">
-                    </div>
-                </div>
-            </div>
-
-            <div class="login-copyright">
-                <div class="copyright-text">Copyright 漏2023 娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙哥増鏉冩墍鏈�</div>
-                <div id="copyright-img1" class="copyright-img" @mouseover="copyrightLargeShow = true"
-                    @mouseout="copyrightLargeShow = false">
-                    <img class="copyright-img-url" src="/public/img/weixin_qrcode.jpg" />
-                    <div v-if="copyrightLargeShow" class="copyright-img-large"><img class="copyright-img-url"
-                            src="/public/img/weixin_qrcode.jpg" /></div>
-                </div>
-            </div>
-        </div>
-    </div>
-</template>
-
-<style>
-* {
-    padding: 0;
-    margin: 0;
-}
-
-.container {
-    display: flex;
-    height: 100vh;
-    width: 100%;
-}
-
-.left-box {
-    height: 100%;
-    width: 70%;
-}
-
-.login-video {
-    height: 100%;
-    overflow: hidden;
-}
-
-.form-main {
-    width: 300px;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    justify-content: center;
-    background-color: rgba(255, 255, 255, 0.6);
-    padding: 50px 30px 50px 30px;
-    border-radius: 20px;
-    box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.062);
-}
-
-.heading {
-    font-size: 2.5em;
-    color: #2e2e2e;
-    font-weight: 700;
-    margin: 15px 0 0px 0;
-}
-
-.inputContainer {
-    width: 100%;
-    position: relative;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-}
-
-.inputIcon {
-    position: absolute;
-    left: 10px;
-}
-
-.inputField {
-    width: 100%;
-    height: 40px;
-    background-color: transparent;
-    border: none;
-    border-bottom: 2px solid rgb(173, 173, 173);
-    border-radius: 30px;
-    margin: 10px 0;
-    color: black;
-    font-size: .8em;
-    font-weight: 500;
-    box-sizing: border-box;
-    padding-left: 30px;
-}
-
-.inputField:focus {
-    outline: none;
-    border-bottom: 2px solid rgb(199, 114, 255);
-}
-
-.inputField::placeholder {
-    color: rgb(80, 80, 80);
-    font-size: 1em;
-    font-weight: 500;
-}
-
-.login-box {
-    height: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-}
-
-.login-button {
-    position: relative;
-    width: 100%;
-    border: 2px solid #8000ff;
-    background-color: #8000ff;
-    height: 40px;
-    color: white;
-    font-size: .8em;
-    font-weight: 500;
-    letter-spacing: 1px;
-    border-radius: 30px;
-    margin: 10px;
-    cursor: pointer;
-    overflow: hidden;
-}
-
-.login-button::after {
-    content: "";
-    position: absolute;
-    background-color: rgba(255, 255, 255, 0.253);
-    height: 100%;
-    width: 150px;
-    top: 0;
-    left: -200px;
-    border-bottom-right-radius: 100px;
-    border-top-left-radius: 100px;
-    filter: blur(10px);
-    transition-duration: .5s;
-}
-
-.login-button:hover::after {
-    transform: translateX(600px);
-    transition-duration: .5s;
-}
-
-.right-box {
-    height: 100%;
-    width: 30%;
-    background: #f6f6f6;
-    position: relative;
-}
-
-.login-copyright {
-    position: absolute;
-    bottom: 20px;
-    right: 20px;
-    font-size: 14px;
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-}
-
-.copyright-text {
-    margin-right: 20px;
-}
-
-.copyright-img {
-    width: 40px;
-    height: 40px;
-    position: relative;
-}
-
-.copyright-img>img {
-    width: 100%;
-    height: 100%;
-}
-
-.copyright-img-large {
-    width: 140px;
-    height: 140px;
-    position: absolute;
-    top: -140px;
-    left: -50px;
-}
-
-.copyright-img-large>img {
-    width: 100%;
-    height: 100%;
-}
+<script setup>
+import { getCurrentInstance, inject, ref } from 'vue';
+import { message } from 'ant-design-vue';
+import { get, post } from '../../utils/request.js'
+import { formatMessage } from '@/utils/localeUtils.js';
+const context = getCurrentInstance()?.appContext.config.globalProperties;
+const globalState = inject('globalState');
+
+let copyrightLargeShow = ref(false);
+let username = ref("");
+let password = ref("");
+let hostId = ref(null);
+let hostList = ref([]);
+
+function loginConfirm() {
+    if (username.value == "" || password.value == "") {
+        message.info(formatMessage('login.input', '璇疯緭鍏ヨ处鍙峰瘑鐮�!'));
+        return;
+    }
+
+    post('/api/login', {
+        username: username.value,
+        password: password.value,
+        hostId: hostId.value,
+    }).then((result) => {
+        if (result.data.code == 200) {
+            let data = result.data.data;
+            globalState.token = data.accessToken;
+            globalState.user = data.user;
+            localStorage.setItem('token', data.accessToken)
+            localStorage.setItem('user', JSON.stringify(data.user))
+            message.success(formatMessage('login.success', '鐧诲綍鎴愬姛'))
+            window.location.reload();
+        } else {
+            message.error(result.data.msg)
+        }
+    })
+
+}
+
+getHostList()
+function getHostList() {
+    get('/api/auth/host', {}).then((result) => {
+        if (result.data.code == 200) {
+            let data = result.data.data;
+            let tmp = []
+            data.forEach((item) => {
+                tmp.push({
+                    label: item.name,
+                    value: item.id
+                })
+            })
+            hostList.value = tmp;
+
+            if(tmp.length > 0) {
+                let tmpHost = tmp[0]
+                hostId.value = tmpHost.value;
+            }
+        } else {
+            message.error(result.data.msg)
+        }
+    })
+}
+
+</script>
+
+<script>
+export default {
+    name: 'login'
+}
+</script>
+
+<template>
+    <div class="container" @keyup.enter="loginConfirm">
+        <div class="left-box">
+            <div class="login-video">
+                <video src="/public/img/login-bg.mp4" height="100%" loop autoplay muted="false"
+                    controlslist="nodownload" disablepictureinpicture></video>
+                <!-- <img src="/public/img/bg1.png" height="100%"> -->
+            </div>
+        </div>
+
+        <div class="right-box">
+            <div class="login-box">
+                <div class="form-main">
+                    <p style="text-align: center;"><img class="loginLogoUrl" src="/public/img/logo.png" alt=""
+                            style="width: 80%">
+                    </p>
+                    <p style="margin-top: -10px;"><span class="login100-form-title p-t-20 p-b-45"
+                            style="color: #868686;font-size: 24px">WMS</span></p>
+
+                    <div class="inputContainer">
+                        <a-select v-model:value="hostId" style="width: 100%;" :options="hostList"></a-select>
+                    </div>
+
+                    <div class="inputContainer">
+                        <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
+                            xmlns="http://www.w3.org/2000/svg" class="inputIcon">
+                            <path
+                                d="M13.106 7.222c0-2.967-2.249-5.032-5.482-5.032-3.35 0-5.646 2.318-5.646 5.702 0 3.493 2.235 5.708 5.762 5.708.862 0 1.689-.123 2.304-.335v-.862c-.43.199-1.354.328-2.29.328-2.926 0-4.813-1.88-4.813-4.798 0-2.844 1.921-4.881 4.594-4.881 2.735 0 4.608 1.688 4.608 4.156 0 1.682-.554 2.769-1.416 2.769-.492 0-.772-.28-.772-.76V5.206H8.923v.834h-.11c-.266-.595-.881-.964-1.6-.964-1.4 0-2.378 1.162-2.378 2.823 0 1.737.957 2.906 2.379 2.906.8 0 1.415-.39 1.709-1.087h.11c.081.67.703 1.148 1.503 1.148 1.572 0 2.57-1.415 2.57-3.643zm-7.177.704c0-1.197.54-1.907 1.456-1.907.93 0 1.524.738 1.524 1.907S8.308 9.84 7.371 9.84c-.895 0-1.442-.725-1.442-1.914z">
+                            </path>
+                        </svg>
+                        <input :placeholder="formatMessage('login.rule.username', '璇疯緭鍏ョ敤鎴峰悕')" v-model="username" class="inputField" type="text">
+                    </div>
+
+                    <div class="inputContainer">
+                        <svg viewBox="0 0 16 16" fill="#2e2e2e" height="16" width="16"
+                            xmlns="http://www.w3.org/2000/svg" class="inputIcon">
+                            <path
+                                d="M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2z">
+                            </path>
+                        </svg>
+                        <input :placeholder="formatMessage('login.rule.password', '璇疯緭鍏ュ瘑鐮�')" v-model="password" class="inputField" type="password">
+                    </div>
+
+                    <input @click="loginConfirm" type="button" class="login-button" :value="formatMessage('common.submit', '鐧诲綍')">
+
+                    <div style="display: none;margin-top: 5px;width: 100%;" id="updateLicense">
+                        <form enctype="multipart/form-data" style="display: none;">
+                            <input id="license" type="file" name="file">
+                        </form>
+                        <input type="button" id="submitLicense" class="login-button" style="margin: 0;" value="鏇存柊璁稿彲璇�">
+                    </div>
+                </div>
+            </div>
+
+            <div class="login-copyright">
+                <div class="copyright-text">Copyright 漏2023 娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙哥増鏉冩墍鏈�</div>
+                <div id="copyright-img1" class="copyright-img" @mouseover="copyrightLargeShow = true"
+                    @mouseout="copyrightLargeShow = false">
+                    <img class="copyright-img-url" src="/public/img/weixin_qrcode.jpg" />
+                    <div v-if="copyrightLargeShow" class="copyright-img-large"><img class="copyright-img-url"
+                            src="/public/img/weixin_qrcode.jpg" /></div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<style>
+* {
+    padding: 0;
+    margin: 0;
+}
+
+.container {
+    display: flex;
+    height: 100vh;
+    width: 100%;
+}
+
+.left-box {
+    height: 100%;
+    width: 70%;
+}
+
+.login-video {
+    height: 100%;
+    overflow: hidden;
+}
+
+.form-main {
+    width: 300px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    background-color: rgba(255, 255, 255, 0.6);
+    padding: 50px 30px 50px 30px;
+    border-radius: 20px;
+    box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.062);
+}
+
+.heading {
+    font-size: 2.5em;
+    color: #2e2e2e;
+    font-weight: 700;
+    margin: 15px 0 0px 0;
+}
+
+.inputContainer {
+    width: 100%;
+    position: relative;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+.inputIcon {
+    position: absolute;
+    left: 10px;
+}
+
+.inputField {
+    width: 100%;
+    height: 40px;
+    background-color: transparent;
+    border: none;
+    border-bottom: 2px solid rgb(173, 173, 173);
+    border-radius: 30px;
+    margin: 10px 0;
+    color: black;
+    font-size: .8em;
+    font-weight: 500;
+    box-sizing: border-box;
+    padding-left: 30px;
+}
+
+.inputField:focus {
+    outline: none;
+    border-bottom: 2px solid rgb(199, 114, 255);
+}
+
+.inputField::placeholder {
+    color: rgb(80, 80, 80);
+    font-size: 1em;
+    font-weight: 500;
+}
+
+.login-box {
+    height: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+.login-button {
+    position: relative;
+    width: 100%;
+    border: 2px solid #8000ff;
+    background-color: #8000ff;
+    height: 40px;
+    color: white;
+    font-size: .8em;
+    font-weight: 500;
+    letter-spacing: 1px;
+    border-radius: 30px;
+    margin: 10px;
+    cursor: pointer;
+    overflow: hidden;
+}
+
+.login-button::after {
+    content: "";
+    position: absolute;
+    background-color: rgba(255, 255, 255, 0.253);
+    height: 100%;
+    width: 150px;
+    top: 0;
+    left: -200px;
+    border-bottom-right-radius: 100px;
+    border-top-left-radius: 100px;
+    filter: blur(10px);
+    transition-duration: .5s;
+}
+
+.login-button:hover::after {
+    transform: translateX(600px);
+    transition-duration: .5s;
+}
+
+.right-box {
+    height: 100%;
+    width: 30%;
+    background: #f6f6f6;
+    position: relative;
+}
+
+.login-copyright {
+    position: absolute;
+    bottom: 20px;
+    right: 20px;
+    font-size: 14px;
+    width: 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+
+.copyright-text {
+    margin-right: 20px;
+}
+
+.copyright-img {
+    width: 40px;
+    height: 40px;
+    position: relative;
+}
+
+.copyright-img>img {
+    width: 100%;
+    height: 100%;
+}
+
+.copyright-img-large {
+    width: 140px;
+    height: 140px;
+    position: absolute;
+    top: -140px;
+    left: -50px;
+}
+
+.copyright-img-large>img {
+    width: 100%;
+    height: 100%;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1