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