From fda152b544ed0b3ceb8309df5b7eca2de888f3f1 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期二, 10 六月 2025 11:39:55 +0800 Subject: [PATCH] 开票登记编辑功能开发 --- src/views/login.vue | 111 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 68 insertions(+), 43 deletions(-) diff --git a/src/views/login.vue b/src/views/login.vue index 4ac6e3e..a3c8613 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -2,6 +2,7 @@ <div class="login"> <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> <h3 class="title">{{ title }}</h3> + <el-divider /> <el-form-item prop="username"> <el-input v-model="loginForm.username" @@ -9,8 +10,9 @@ size="large" auto-complete="off" placeholder="璐﹀彿" + @input="getUserLoginFacotryList" > - <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template> + <template #prefix><el-icon><User /></el-icon></template> </el-input> </el-form-item> <el-form-item prop="password"> @@ -20,27 +22,32 @@ size="large" auto-complete="off" placeholder="瀵嗙爜" + show-password @keyup.enter="handleLogin" > <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template> </el-input> </el-form-item> - <el-form-item prop="code" v-if="captchaEnabled"> - <el-input - v-model="loginForm.code" - size="large" - auto-complete="off" - placeholder="楠岃瘉鐮�" - style="width: 63%" - @keyup.enter="handleLogin" - > - <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template> - </el-input> - <div class="login-code"> - <img :src="codeUrl" @click="getCode" class="login-code-img"/> - </div> + <el-form-item prop="currentFatoryId"> + <el-select v-model="loginForm.currentFatoryId" placeholder="璇烽�夋嫨鍏徃" > + <el-option v-for="item in factoryList" :key="item.deptId" :label="item.deptName" :value="item.deptId" /> + </el-select> </el-form-item> - <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox> +<!-- <el-form-item prop="code" v-if="captchaEnabled">--> +<!-- <el-input--> +<!-- v-model="loginForm.code"--> +<!-- size="large"--> +<!-- auto-complete="off"--> +<!-- placeholder="楠岃瘉鐮�"--> +<!-- style="width: 63%"--> +<!-- @keyup.enter="handleLogin"--> +<!-- >--> +<!-- <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>--> +<!-- </el-input>--> +<!-- <div class="login-code">--> +<!-- <img :src="codeUrl" @click="getCode" class="login-code-img"/>--> +<!-- </div>--> +<!-- </el-form-item>--> <el-form-item style="width:100%;"> <el-button :loading="loading" @@ -56,19 +63,21 @@ <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link> </div> </el-form-item> + <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox> </el-form> <!-- 搴曢儴 --> - <div class="el-login-footer"> - <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span> - </div> +<!-- <div class="el-login-footer">--> +<!-- <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span>--> +<!-- </div>--> </div> </template> <script setup> -import { getCodeImg } from "@/api/login" +import {getCodeImg} from "@/api/login" import Cookies from "js-cookie" import { encrypt, decrypt } from "@/utils/jsencrypt" import useUserStore from '@/store/modules/user' +import {userLoginFacotryList} from "@/api/system/user.js" const title = import.meta.env.VITE_APP_TITLE const userStore = useUserStore() @@ -80,14 +89,13 @@ username: "admin", password: "admin123", rememberMe: false, - code: "", - uuid: "" + currentFatoryId:'', }) const loginRules = { username: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" }], password: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" }], - code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }] + // code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }] } const codeUrl = ref("") @@ -98,6 +106,9 @@ const register = ref(false) const redirect = ref(undefined) +const factoryList = ref([]) +const currentFatoryId = ref('') + watch(route, (newRoute) => { redirect.value = newRoute.query && newRoute.query.redirect }, { immediate: true }) @@ -107,18 +118,10 @@ if (valid) { loading.value = true // 鍕鹃�変簡闇�瑕佽浣忓瘑鐮佽缃湪 cookie 涓缃浣忕敤鎴峰悕鍜屽瘑鐮� - if (loginForm.value.rememberMe) { - Cookies.set("username", loginForm.value.username, { expires: 30 }) - Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 }) - Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 }) - } else { - // 鍚﹀垯绉婚櫎 - Cookies.remove("username") - Cookies.remove("password") - Cookies.remove("rememberMe") - } - // 璋冪敤action鐨勭櫥褰曟柟娉� - userStore.login(loginForm.value).then(() => { + Cookies.set("username", loginForm.value.username, { expires: 30 }) + Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 }) + Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 }) + userStore.loginCheckFactory(loginForm.value).then(res => { const query = route.query const otherQueryParams = Object.keys(query).reduce((acc, cur) => { if (cur !== "redirect") { @@ -159,30 +162,47 @@ } } +function getUserLoginFacotryList() { + if(loginForm.value.username){ + userLoginFacotryList({userName:loginForm.value.username}).then(res => { + console.log('res', res) + factoryList.value = res.data + }) + }else { + factoryList.value = [] + } +} + getCode() getCookie() +getUserLoginFacotryList() </script> <style lang='scss' scoped> .login { - display: flex; - justify-content: center; - align-items: center; height: 100%; - background-image: url("../assets/images/login-background.jpg"); + background-image: url("../assets/images/login-background.png"); background-size: cover; + position: relative; } .title { - margin: 0px auto 30px auto; + margin: 20px auto 14px auto; text-align: center; - color: #707070; + color: #2C51D9; + font-size: 28px; + font-weight: 700; } .login-form { + position: absolute; + top: 50%; + right: 15%; + transform: translate(0, -50%); border-radius: 6px; background: #ffffff; - width: 400px; - padding: 25px 25px 5px 25px; + width: 420px; + height: 500px; + padding: 40px; z-index: 1; .el-input { height: 40px; @@ -226,4 +246,9 @@ height: 40px; padding-left: 12px; } +:deep() { + .el-form-item--default { + margin-bottom: 36px; + } +} </style> -- Gitblit v1.9.3