删除了验证码组件并且复写了一些UI

This commit is contained in:
Liuqi 2023-08-14 14:15:18 +08:00
parent 1ddaf42574
commit eaa4a7fe8b
3 changed files with 239 additions and 250 deletions

BIN
src/assets/background.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -4,7 +4,7 @@
<div class="top">
<div class="header">
<a href="/">
<img src="~@/assets/logo.svg" class="logo" alt="logo">
<img src="~@/assets/logo.svg" class="logo" alt="logo" />
<span class="title">计科院ERP系统</span>
</a>
</div>
@ -30,11 +30,11 @@
</template>
<script>
import RouteView from "@/components/layouts/RouteView"
import RouteView from '@/components/layouts/RouteView'
import { mixinDevice } from '@/utils/mixin.js'
export default {
name: "UserLayout",
name: 'UserLayout',
components: { RouteView },
mixins: [mixinDevice],
data() {
@ -45,14 +45,14 @@
},
beforeDestroy() {
document.body.classList.remove('userLayout')
},
}
}
</script>
<style lang="less" scoped>
#userLayout.user-layout-wrapper {
height: 100%;
background: #f0f2f5 url(~@/assets/background.jpg) no-repeat 0%;
&.mobile {
.container {
.main {
@ -63,13 +63,13 @@
}
.container {
width: 100%;
width: 900px;
background-size: cover;
min-height: 100%;
background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%;
background-size: 100%;
padding: 110px 0 144px;
position: relative;
position: absolute;
background-size: cover;
right: 0%;
a {
text-decoration: none;
}
@ -100,8 +100,10 @@
.title {
font-size: 33px;
color: rgba(0, 0, 0, .85);
font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
color: rgba(0, 0, 0, 0.85);
font-family: 'Chinese Quote', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB',
'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
'Segoe UI Symbol';
font-weight: 600;
position: relative;
top: 2px;

View File

@ -7,24 +7,16 @@
</a-input>
</a-form-model-item>
<a-form-model-item required prop="password">
<a-input v-model="model.password" size="large" type="password" autocomplete="false" placeholder="请输入密码 / 123456">
<a-input
v-model="model.password"
size="large"
type="password"
autocomplete="false"
placeholder="请输入密码 / 123456"
>
<a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }" />
</a-input>
</a-form-model-item>
<a-row :gutter="0">
<a-col :span="16">
<a-form-model-item required prop="inputCode">
<a-input v-model="model.inputCode" size="large" type="text" placeholder="请输入验证码">
<a-icon slot="prefix" type="smile" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-model-item>
</a-col>
<a-col :span="8" style="text-align: right">
<img v-if="requestCodeSuccess" style="margin-top: 2px;" :src="randCodeImage" @click="handleChangeCheckCode"/>
<img v-else style="margin-top: 2px;" src="../../assets/checkcode.png" @click="handleChangeCheckCode"/>
</a-col>
</a-row>
</a-form-model>
</div>
</template>
@ -44,34 +36,30 @@
loginType: 0,
model: {
username: 'admin',
password: '123456',
inputCode: ''
password: '123456'
},
validatorRules: {
username: [
{ required: true, message: '请输入用户名!' },
{ validator: this.handleUsernameOrEmail }
],
password: [{
required: true, message: '请输入密码!', validator: 'click'
}],
inputCode: [{
required: true, message: '请输入验证码!'
}]
username: [{ required: true, message: '请输入用户名!' }, { validator: this.handleUsernameOrEmail }],
password: [
{
required: true,
message: '请输入密码!',
validator: 'click'
}
]
}
}
},
created() {
this.handleChangeCheckCode();
this.handleChangeCheckCode()
},
methods: {
...mapActions(['Login']),
/**刷新验证码*/
handleChangeCheckCode() {
this.currdatetime = new Date().getTime();
this.model.inputCode = ''
getAction(`/sys/randomImage/${this.currdatetime}`).then(res=>{
this.currdatetime = new Date().getTime()
getAction(`/sys/randomImage/${this.currdatetime}`)
.then(res => {
if (res.success) {
this.randCodeImage = res.result
this.requestCodeSuccess = true
@ -79,13 +67,14 @@
this.$message.error(res.message)
this.requestCodeSuccess = false
}
}).catch(()=>{
})
.catch(() => {
this.requestCodeSuccess = false
})
},
//
handleUsernameOrEmail(rule, value, callback) {
const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/
if (regex.test(value)) {
this.loginType = 0
} else {
@ -102,19 +91,21 @@
let promiseArray = []
for (let item of arr) {
let p = new Promise((resolve, reject) => {
this.$refs['form'].validateField(item, (err)=>{
this.$refs['form'].validateField(item, err => {
if (!err) {
resolve();
resolve()
} else {
reject(err);
reject(err)
}
})
});
})
promiseArray.push(p)
}
Promise.all(promiseArray).then(()=>{
Promise.all(promiseArray)
.then(() => {
callback()
}).catch(err=>{
})
.catch(err => {
callback(err)
})
},
@ -123,38 +114,34 @@
},
//
handleLogin(rememberMe) {
this.validateFields([ 'username', 'password', 'inputCode' ], (err)=>{
this.validateFields(['username', 'password'], err => {
if (!err) {
let loginParams = {
username: this.model.username,
password: this.model.password,
captcha: this.model.inputCode,
checkKey: this.currdatetime,
remember_me: rememberMe,
remember_me: rememberMe
}
console.log("登录参数", loginParams)
this.Login(loginParams).then((res) => {
console.log('登录参数', loginParams)
this.Login(loginParams)
.then(res => {
this.$emit('success', res.result)
}).catch((err) => {
})
.catch(err => {
//update-begin-author: taoyan date:20220425 for: #41
if (err && err.code === 412) {
this.handleChangeCheckCode();
this.handleChangeCheckCode()
}
//update-end-author: taoyan date:20220425 for: #41
this.$emit('fail', err)
});
})
} else {
this.$emit('validateFail')
}
})
}
}
}
</script>
<style scoped>
</style>
<style scoped></style>