<template>
<div class="loginContent">
<div style="padding-bottom: 2.5rem;">
<div class="lgnheader">
<img src="../assets/images/loginLogo.jpg" />
<h4 class="header_tit_txt">小米帐号登录</h4>
</div>
<label class="labelBox label_user" :class="{error:userNameCheck}">
<div v-show="loginType" class="cityList">
+86
<i></i>
</div>
<input
v-model="userName"
class="item_account"
autocomplete="off"
type="tel"
name="user"
:placeholder="userNamePlaceHolder"
@input="validetaUserName()"
/>
<div v-show="isClearLink" class="clear_link_panel">
<span class="clear_link" @click="clearLink()"></span>
</div>
</label>
<label class="labelBox label_cmsCode" :class="{error:passwordCheck}">
<input
v-model="password"
class="item_account"
autocomplete="off"
:type="passwordType"
name="user"
:placeholder="passwordPlaceHolder"
@input="validetaPasd()"
/>
<div v-if="loginType" class="code_panel" :class="{active:!show}">
<a
class="send_ticket"
@click="getCode()"
href="javascript:;"
id="getSMSCode"
>{{this.snsCodeBtn}}</a>
</div>
<div v-else class="eye_panel pwd-visiable" @click="changePasswordInputType()">
<span class="eye pwd-eye">
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<path class="eye_outer" d="M0 8 C6 0,14 0,20 8, 14 16,6 16, 0 8 z" />
<circle class="eye_inner" cx="10" cy="8" r="3" />
</svg>
</span>
</div>
</label>
<div class="err_tip" v-if="errorTip">
<em class="icon_error"></em>
<span class="error-con" v-text="errorText"></span>
</div>
<div class="actionButton loginRegisBtn" @click="login()">没有账号/立即注册</div>
<div
@click="changeLoginType()"
class="actionButton loginTypeChange"
v-html="loginTypeChangeTxt"
></div>
<div class="n_links_area">
<a href class="outer-link"></a>
</div>
<div class="other_login_type sns-login-container">
<fieldset class="oth_type_tit">
<div class="oth_type_txt">其他方式登录</div>
</fieldset>
<div class="oth_type_links">
<a class="icon_type btn_weibo sns-login-link">
<i class="btn_sns_icontype icon_default_weibo"></i>
</a>
<a class="icon_type btn_alipay sns-login-link">
<i class="btn_sns_icontype icon_default_alipay"></i>
</a>
<a class="icon_type btn_weixin sns-login-link">
<i class="btn_sns_icontype icon_default_weixin"></i>
</a>
</div>
</div>
</div>
<div class="nf-link-area clearfix n-footer">
<ul class="lang-select-list">
<li>
<a href="#" class="lang-select-li current">简体</a>|
</li>
<li>
<a href="#" class="lang-select-li">繁体</a>|
</li>
<li>
<a href="#" class="lang-select-li">English</a>|
</li>
<li>
<a href="#" target="_blank">常见问题</a>|
</li>
<li>
<a href="#" target="_blank">隐私政策</a>
</li>
</ul>
</div>
</div>
</template>
<script>
import axios from "../api/index";
export default {
components: {},
data() {
return {
isClearLink: false, //用户名按钮是否显示
userName: "", //用户名
snsCode: "", // 验证码
password: "", //密码
userNameCheck: false,
passwordCheck: false,
errorTip: false,
errorText: "手机号格式不正确",
loginType: true, //登录方式 true:验证码登录,false:账号密码登录
loginTypeChangeTxt: "用户名密码登录",
userNamePlaceHolder: "手机号码",
passwordPlaceHolder: "短信验证码",
passwordType: "number",
snsCodeBtn: "获取验证码", //获取验证码按钮文案
//验证码事件
show: true,
count: "",
timer: null
};
},
methods: {
//验证表单信息
validateForm() {
if (this.loginType) {
if (!/^1[3456789]\d{9}$/.test(this.userName)) {
this.userNameCheck = true;
this.errorTip = true;
this.errorText = "手机号格式不正确";
return false;
}
if (!/^\d{4}$/.test(this.password)) {
this.passwordCheck = true;
this.errorTip = true;
this.errorText = "验证码格式不正确";
return false;
}
return true;
}
return true;
},
//点击登录按钮
login() {
if (this.validateForm()) {
console.log("通过验证之后");
axios.post("/user/login", {
account: this.userName,
password: 'e807f1fcf82d132f9bb018ca6738a19f',
}).then(result => {
if (parseInt(result.code) === 0) {
console.log(result,'+++++++++');
localStorage.setItem("isLogin", "yes");
localStorage.setItem("userId", result.id);
localStorage.setItem("userName", result.name);
this.$router.replace('/myself');
}else{
this.userNameCheck = true;
this.passwordCheck = true;
this.errorTip = true;
this.errorText = "用户名密码不匹配";
}
});
}
},
//点击按钮清除用户名输入框
clearLink() {
this.isClearLink = false;
this.userName = "";
},
//修改登录方式
changeLoginType() {
this.loginType = !this.loginType;
console.log(this.loginType);
this.password = "";
if (this.loginType) {
this.loginTypeChangeTxt = "用户名密码登录";
this.userNamePlaceHolder = "手机号码";
this.passwordPlaceHolder = "短信验证码";
this.passwordType = "number";
} else {
this.loginTypeChangeTxt = "手机短信登录/注册";
this.userNamePlaceHolder = "邮箱/手机号码/小米ID";
this.passwordPlaceHolder = "密码";
this.passwordType = "password";
}
},
//修改密码输入框type类型
changePasswordInputType() {
let type = this.passwordType;
if (type === "number") {
this.passwordType = "password";
} else {
this.passwordType = "number";
}
},
//用户名改变时触发验证等事件
validetaUserName() {
let userName = this.userName;
this.userNameCheck = false;
this.errorTip = false;
if (userName && userName.length > 0) {
this.isClearLink = true;
} else {
this.isClearLink = false;
}
},
//验证码,密码输入框change事件
validetaPasd() {
this.passwordCheck = false;
this.errorTip = false;
},
//验证码倒计时
getCode() {
const TIME_COUNT = 60;
if (!this.timer) {
this.count = TIME_COUNT;
this.show = false;
this.timer = setInterval(() => {
if (this.count > 0 && this.count <= TIME_COUNT) {
this.count--;
this.snsCodeBtn = `重新发送(${this.count})`;
} else {
this.snsCodeBtn = `重新获取`;
this.show = true;
clearInterval(this.timer);
this.timer = null;
}
}, 1000);
}
}
}
};
</script>
<style lang='less'>
.loginContent {
width: 100%;
margin: 0 auto 0.6rem;
padding: 0 0.4rem;
position: relative;
box-sizing: border-box;
.lgnheader {
padding: 0.6rem 0 0.2rem;
box-sizing: border-box;
h4 {
font-size: 0.36rem;
color: #000;
font-weight: normal;
text-align: c
没有合适的资源?快使用搜索试试~ 我知道了~
大学毕业设计,前端使用了vue,后端使用了node.js.zip
共367个文件
jpg:110个
png:91个
vue:44个
0 下载量 139 浏览量
2024-08-19
09:20:53
上传
评论
收藏 9.47MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供技术指导/答疑
资源推荐
资源详情
资源评论
收起资源包目录
大学毕业设计,前端使用了vue,后端使用了node.js.zip (367个子文件)
demo.css 8KB
demo.css 8KB
iconfont.css 5KB
iconfont.css 5KB
Shopcart.css 4KB
iconfont.css 4KB
Shopcart-payList.css 3KB
iconfont.css 2KB
reset.min.css 2KB
reset.min.css 2KB
Search.css 1KB
Surepay.css 1KB
Successpay.css 1006B
Details.css 0B
iconfont.eot 5KB
iconfont.eot 5KB
iconfont.eot 4KB
iconfont.eot 2KB
k20.gif 184KB
K20 Pro 尊享版.gif 184KB
note8.gif 163KB
Redmi Note 8 Pro.gif 163KB
note8 pro.gif 121KB
Redmi Note 8.gif 121KB
cell3.gif 105KB
cell3.gif 105KB
.gitignore 225B
demo_index.html 16KB
demo_index.html 11KB
index.html 501B
login.html 363B
good20.jpg 592KB
good19.jpg 584KB
beijinga.jpg 503KB
good18.jpg 328KB
good21.jpg 285KB
good15.jpg 279KB
beijing.jpg 199KB
s6.jpg 144KB
s7.jpg 144KB
s6.jpg 144KB
good22.jpg 137KB
good12.jpg 110KB
productIntroduce2.jpg 103KB
productIntroduce2.jpg 103KB
s4.jpg 102KB
s4.jpg 102KB
s5.jpg 89KB
s5.jpg 89KB
timg.jpg 89KB
timg.jpg 89KB
good24.jpg 80KB
good11.jpg 79KB
productIntroduce1.jpg 78KB
productIntroduce1.jpg 78KB
good25.jpg 66KB
good16.jpg 60KB
productIntroduce5.jpg 58KB
productIntroduce5.jpg 58KB
s2.jpg 57KB
s2.jpg 57KB
ccd81ecae235f04eb15bf171defeafaa.jpg 57KB
good14.jpg 54KB
good17.jpg 52KB
下面的图片.jpg 52KB
SearchBanner.jpg 51KB
good10.jpg 46KB
good9.jpg 37KB
s3.jpg 36KB
s1.jpg 36KB
d1bdd5e441a4fd7fcc119ba54c586fec.jpg 36KB
userAvatar.jpg 34KB
good13.jpg 34KB
gessulike.jpg 32KB
gessulike.jpg 32KB
secondphoto1.jpg 31KB
secondphoto1.jpg 31KB
item2.jpg 30KB
item2.jpg 30KB
1.jpg 29KB
chuangkoutie.jpg 29KB
chuangkoutie.jpg 29KB
s1.jpg 29KB
s3.jpg 29KB
3b8afebacb8a69eda2b6d324dcc4a252.jpg 29KB
firstphoto1.jpg 28KB
firstphoto1.jpg 28KB
good23.jpg 28KB
封面.jpg 27KB
图表.jpg 27KB
item1.jpg 27KB
item1.jpg 27KB
timg.jpg 25KB
productIntroduce3.jpg 24KB
productIntroduce3.jpg 24KB
cell2-1.jpg 20KB
cell2-1.jpg 20KB
left.jpg 18KB
good1.jpg 17KB
right.jpg 17KB
共 367 条
- 1
- 2
- 3
- 4
资源评论
专家大圣
- 粉丝: 1949
- 资源: 6765
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- -短链接管理系统,为企业和个人用户提供便捷的URL压缩和转换服务 系统通过非加密算法将长链接转换-shortrink.zip
- bp神经网路对Iris和MNIST数据集的MATLAB实现,非工具包-BASIC-Java项目设计资源
- a算法的matlab实现-A-star-matlab.zip
- 精品解析:四川省成都外国语学校2023-2024学年高一上学期10月月考数学试题.zip
- 梦幻西游道人j240920
- Apifox-macOS-arm64-2.4.3
- Screenshot_20240920_185411.jpg
- 第1周作业(1).zip
- stm32 hal canopen通讯
- c++调用com接口操作wps word/excel/ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功