From c04d741f6daddd9e445a0d00adc42d1c8c45f67f Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期五, 23 一月 2026 10:40:33 +0800
Subject: [PATCH] 钥匙柜同步柜格实际钥匙数据
---
admin/src/views/login.vue | 69 ++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 20 deletions(-)
diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index ee91131..5c64f46 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -3,7 +3,8 @@
<img src="@/assets/images/bg@2x.png" class="main_bg" alt="">
<div class="login_wrap">
<div class="login_img">
- <div class="h3">鏅烘収鐗╂祦鍥尯瀹夋秷涓�浣撳寲绯荤粺</div>
+ <div class="h3" style="font-size: 30px; margin-bottom: 0;">{{sysConfig.title || ''}}</div>
+ <div class="h3">{{sysConfig.subtitle || title}}</div>
</div>
<div class="form_wrap">
<div class="tabs">
@@ -72,22 +73,22 @@
</template>
<script>
-import { mapMutations } from 'vuex'
-import { getCaptcha, loginByPassword, sendSmsPost, loginByPhone } from '@/api/system/common'
-import Cookies from "js-cookie"
+import { mapMutations, mapState } from 'vuex'
+import { getCaptcha, loginByPassword, sendSmsPost, loginByPhone, getSystemConfig } from '@/api/system/common'
+import Cookies from 'js-cookie'
import { Message } from 'element-ui'
export default {
name: 'Login',
- data() {
+ data () {
return {
+ title: process.env.VUE_APP_TITLE,
loading: false,
isRemPsd: false,
username: '',
password: '',
phone: '',
downTime: 0,
-
smsCode: '',
activeTab: '0',
// 楠岃瘉鐮�
@@ -99,26 +100,38 @@
}
}
},
- mounted() {
+ computed: {
+ ...mapState(['sysConfig'])
+ },
+ mounted () {
this.username = localStorage.getItem('username') || ''
this.password = localStorage.getItem('password') || ''
this.phone = localStorage.getItem('phone') || ''
const isRemPsd = localStorage.getItem('isRemPsd') || false
this.isRemPsd = JSON.parse(isRemPsd)
this.refreshCaptcha()
+ this.getSystemConfig()
},
methods: {
- ...mapMutations(['setUserInfo']),
+ ...mapMutations(['setUserInfo', 'setSysconfig']),
+ getSystemConfig () {
+ getSystemConfig()
+ .then((res) => {
+ if (res && res.subtitle) {
+ this.setSysconfig(res)
+ }
+ })
+ },
// 鐧诲綍
- login() {
+ login () {
if (this.loading) {
return
}
- this.loading = true
if (this.activeTab == 0) {
if (!this.__check()) {
return
}
+ this.loading = true
loginByPassword({
username: this.username.trim(),
password: this.password,
@@ -153,19 +166,21 @@
if (!smsCode) {
return Message.error('璇疯緭鍏ラ獙璇佺爜')
}
+ this.loading = true
loginByPhone({ phone, code: smsCode }).then(res => {
if (this.isRemPsd) {
localStorage.setItem('phone', this.username.trim())
}
Cookies.set('dm_user_token', res)
this.$router.push('index')
+ }).catch(e => {
+ this.refreshCaptcha()
}).finally(() => {
this.loading = false
})
}
-
},
- getCode() {
+ getCode () {
console.log('getCode')
const { phone } = this
if (!phone || phone.length != 11) {
@@ -173,8 +188,8 @@
}
sendSmsPost({ phone, type: 0 }).then(res => {
Message.success('鐭俊鍙戦�佹垚鍔�')
- this.downTime = 10
- let timer = setInterval(() => {
+ this.downTime = 60
+ const timer = setInterval(() => {
if (this.downTime == 0) {
return clearInterval(timer)
}
@@ -182,11 +197,11 @@
}, 1000)
})
},
- tabClick(val) {
+ tabClick (val) {
this.activeTab = val
},
// 鍒锋柊楠岃瘉鐮�
- refreshCaptcha() {
+ refreshCaptcha () {
this.captcha.loading = true
getCaptcha()
.then(data => {
@@ -203,7 +218,7 @@
})
},
// 鐧诲綍鍓嶉獙璇�
- __check() {
+ __check () {
if (this.username.trim() === '') {
this.$tip.error('璇疯緭鍏ョ敤鎴峰悕')
return false
@@ -218,7 +233,7 @@
}
return true
}
- },
+ }
}
</script>
@@ -263,10 +278,24 @@
height: 600px;
background: url("../assets/images/login_img@2x.png");
background-size: 100% 100%;
- padding-left: 40px;
- padding-top: 80px;
+ padding-top: 60px;
+
+ .h2 {
+ color: $primary-color;
+ background-color: #fff;
+ height: 24px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 4px;
+ text-align: center;
+ width: 208px;
+ display: flex;
+ margin-bottom: 12px;
+ }
.h3 {
+ text-align: center;
font-size: 28px;
font-weight: 700;
color: #fff;
--
Gitblit v1.9.3