185 lines
4.8 KiB
Vue
185 lines
4.8 KiB
Vue
<template>
|
|
<div class="login-wrapper">
|
|
<div class="login-container">
|
|
<div class="title-container">
|
|
<h1 class="title margin-no">登录到</h1>
|
|
<h1 class="title" v-if="info!=''">{{info.association_name}}</h1>
|
|
<h1 class="title" v-if="info==''">智慧云商协后台管理系统</h1>
|
|
</div>
|
|
<t-form
|
|
ref="form"
|
|
:class="['item-container', `login-login`]"
|
|
:data="formData"
|
|
:rules="FORM_RULES"
|
|
label-width="0"
|
|
@submit="onSubmit"
|
|
>
|
|
<template>
|
|
<t-form-item name="zhanghu">
|
|
<t-input v-model="formData.zhanghu" size="large" placeholder="请输入账号">
|
|
<template #prefix-icon>
|
|
<user-icon/>
|
|
</template>
|
|
</t-input>
|
|
</t-form-item>
|
|
|
|
<t-form-item name="password">
|
|
<t-input
|
|
v-model="formData.password"
|
|
size="large"
|
|
type="password"
|
|
clearable
|
|
key="password"
|
|
placeholder="请输入登录密码"
|
|
>
|
|
<template #prefix-icon>
|
|
<lock-on-icon/>
|
|
</template>
|
|
<template #suffix-icon>
|
|
<browse-icon v-if="showPsw" @click="showPsw = !showPsw" key="browse"/>
|
|
<browse-off-icon v-else @click="showPsw = !showPsw" key="browse-off"/>
|
|
</template>
|
|
</t-input>
|
|
</t-form-item>
|
|
<div class="check-container remember-pwd">
|
|
<t-checkbox>记住账号</t-checkbox>
|
|
<div style="color: var(--td-brand-color)">
|
|
<!-- <span @click="openUrl(0)">会员注册</span>-->
|
|
<!-- <span style="margin-left: 20px" @click="openUrl(1)">会员登录</span>-->
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<t-form-item class="btn-container">
|
|
<t-button block size="large" type="submit"> 登录</t-button>
|
|
</t-form-item>
|
|
</t-form>
|
|
</div>
|
|
|
|
<footer class="copyright">Copyright @ 2021-2022 Tencent. All Rights Reserved</footer>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import {UserIcon, LockOnIcon} from 'tdesign-icons-vue';
|
|
|
|
export default {
|
|
components: {
|
|
UserIcon,
|
|
LockOnIcon,
|
|
},
|
|
data() {
|
|
return {
|
|
formData: {
|
|
zhanghu: 'admin',
|
|
password: 'qinze731344.',
|
|
},
|
|
FORM_RULES: {
|
|
zhanghu: [{required: true, message: '账号必填', type: 'error'}],
|
|
password: [{required: true, message: '密码必填', type: 'error'}],
|
|
},
|
|
showPsw: false,
|
|
countDown: 0,
|
|
intervalTimer: null,
|
|
id:0,
|
|
info:''
|
|
};
|
|
},
|
|
mounted() {
|
|
console.log(this.$route.query.id);
|
|
// if(typeof (this.$route.query.id)!='undefined'){
|
|
// this.id=this.$route.query.id;
|
|
// this.getInfo();
|
|
// }
|
|
},
|
|
methods: {
|
|
openUrl(type){
|
|
if(this.id===0){
|
|
if(type==0){
|
|
this.$message.error('后台注册链接有误,请联系管理员或者后台链接!',);
|
|
}else{
|
|
this.$message.error('后台登录链接有误,请联系管理员或者后台链接!',);
|
|
}
|
|
|
|
}else{
|
|
if(type==0){
|
|
this.$router.push('/register?id='+this.id);
|
|
}else{
|
|
this.$router.push('/land?id='+this.id);
|
|
}
|
|
}
|
|
},
|
|
getInfo(){
|
|
this.$request
|
|
.post("/association/find",{association_id:this.id})
|
|
.then( (res) => {
|
|
console.log(res);
|
|
if(res.code==1){
|
|
this.info=res.data;
|
|
}
|
|
})
|
|
.catch((e) => {
|
|
console.log(e);
|
|
});
|
|
},
|
|
async onSubmit({ validateResult }) {
|
|
if (validateResult === true) {
|
|
this.$request
|
|
.post("/login/login",this.formData)
|
|
.then( (res) => {
|
|
console.log(res);
|
|
if(res.code === 0){
|
|
this.$message.error('帐号或密码错误!');
|
|
}else{
|
|
this.$store.dispatch('user/login', res.data);
|
|
this.$message.success('登录成功');
|
|
setTimeout(() => {
|
|
this.$router.push('/dashboard/base');
|
|
}, 1000);
|
|
}
|
|
})
|
|
.catch((e) => {
|
|
console.log(e);
|
|
});
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="less">
|
|
@import url('./index.less');
|
|
|
|
.login-header {
|
|
height: var(--td-comp-size-xxxl);
|
|
padding: 0 24px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
backdrop-filter: blur(5px);
|
|
color: var(--td-text-color-primary);
|
|
|
|
.logo {
|
|
width: 188px;
|
|
height: var(--td-comp-size-xxxl);
|
|
}
|
|
|
|
.operations-container {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.t-button {
|
|
margin-left: 16px;
|
|
}
|
|
|
|
.icon {
|
|
height: 20px;
|
|
width: 20px;
|
|
padding: 6px;
|
|
box-sizing: content-box;
|
|
|
|
&:hover {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|