vue.js实现用户评论、登录、注册、及修改信息功(2)

//日期格式化函数 Date.prototype.format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; } //创建vue实例 var v = new Vue({ el: "#comment", data: { //原始用户评论信息 comments: [{ username: "张三", userimg: "user02.jpg", words: "这历史可以啊,不错不错。呵呵!", like: 87, nolike: 53, time: "2017-02-17 09:15:25" }, { username: "李四", userimg: "user01.jpg", words: "吃饭去了啊。呵呵!", like: 23, nolike: 63, time: "2017-3-27 10:12:34" }, { username: "王五", userimg: "user03.jpg", words: "这评论可以。呵呵!", like: 27, nolike: 33, time: "2017-04-02 03:26:54" }], //原始用户信息 users: [{ username: "zhangsan", password: "123456", userimg: "user.jpg", words: "世界那么大我想去看看。" }, { username: "zyc", password: "123456", userimg: "user01.jpg", words: "雨过天晴的美好。" }, { username: "admin", password: "123456", userimg: "user02.jpg", words: "下大雨了,怎么办啊。" }], //当前用户信息 currentUser: { username: "", words: "", userimg: "" }, //登录框显示或隐藏状态 loginStatus: false, //注册框显示或隐藏状态 registerStatus: false, //用户信息栏显示或隐藏状态 userbarStatus: false, //登录注册入口显示或隐藏状态 lrBtnStatus: true }, methods: { //点击登录 showLogin: function() { document.getElementById("login").reset(); this.loginStatus = true; this.registerStatus = false; }, //点击注册 showregister: function() { document.getElementById("register").reset(); this.loginStatus = false; this.registerStatus = true; }, //退出登录 loginout: function() { //清空当前用户数据 this.currentUser.username = ""; this.currentUser.words = ""; this.currentUser.userimg = ""; alert("退出成功!"); this.userbarStatus = false; //登录或注册入口显示 this.lrBtnStatus = true; }, //登录遮罩层点击事件 loginboxClick: function() { this.loginStatus = false; }, //注册遮罩层点击事件 registerboxClick: function() { this.registerStatus = false; }, //点击登录或注册框阻止事件冒泡 stopProp: function(e) { e = e || event; e.stopPropagation(); }, //点赞 like: function(index) { this.comments[index].like++; }, //点踩 notlike: function(index) { this.comments[index].nolike++; }, //登录 login: function() { var username = $(".loginbox").find(".username").val(); //获取用户名 var psw = $(".loginbox").find(".psw").val() //获取密码 var flag = false; for (var i = 0, len = this.users.length; i < len; i++) { //判断用户名密码是否正确 if (this.users[i].username === username && this.users[i].password === psw) { flag = true; alert("登录成功!"); //用户登录框消失 this.loginStatus = false; //用户登录信息显示 this.userbarStatus = true; //设置用户栏信息 this.currentUser.username = this.users[i].username; this.currentUser.words = this.users[i].words; this.currentUser.userimg = this.users[i].userimg; //登录或注册入口消失 this.lrBtnStatus = false; break; } } if (!flag) { alert("输入的账号或密码不正确!"); document.getElementById("login").reset(); } }, //注册 register: function() { var obj = {}; //创建用户账号密码容器 var flag = false; var username = $(".registerbox").find(".username").val(); //获取用户名 var psw = $(".registerbox").find(".psw").val() //获取密码 //判断用户名是否存在 for (var i = 0, len = this.users.length; i < len; i++) { if (this.users[i].username === username) { flag = true; alert("该用户名已经被注册!"); break; } } if (!flag) { if (username == "" || psw == "") { alert("账号和密码不能为空!"); } else { var randomNum = Math.floor(Math.random() * 5) + 1; //随机生成头像 var randomImg = "user0" + randomNum + ".jpg"; obj.username = username; obj.password = psw; obj.words = "系统默认标语。" obj.userimg = randomImg; //添加用户信息到用户列表 this.users.push(obj); alert("注册成功!"); //设置用户信息栏显示 this.userbarStatus = true; //设置用户栏信息 this.currentUser.username = obj.username; this.currentUser.words = obj.words; this.currentUser.userimg = obj.userimg; //登录或注册入口消失 this.lrBtnStatus = false; //重置表单数据 document.getElementById("register").reset(); //注册框消失 this.registerStatus = false; } } }, //编辑用户心情 editUserWords: function() { var wordsObj = $(".commentbox").find(".userword"); var edit = wordsObj.attr("contenteditable"); //获取元素的H5可编辑属性 if (edit == "false") { //打开可编辑功能 wordsObj.attr("contenteditable", "true"); } else { for (var i = 0, len = this.users.length; i < len; i++) { //查找对应用户名 if (this.users[i].username === this.currentUser.username) { //改变用户信息里面的words数据 this.currentUser.words = $(".commentbox").find(".userword").text(); this.users[i].words = this.currentUser.words; //关闭可编辑功能 wordsObj.attr("contenteditable", "false"); alert("保存成功!"); } } } }, //点击提交评论 subCommont: function() { if (!this.userbarStatus) { alert("登录之后才可以评论!"); this.loginStatus = true; } else { if ($(".wordsbox textarea").val() == "") { alert("请先填写评论内容!"); } else { var obj = {}; //评论信息对象的容器 obj.username = this.currentUser.username; obj.userimg = this.currentUser.userimg; obj.words = $(".wordsbox textarea").val(); obj.like = 0; obj.nolike = 0; obj.time = new Date().format("yyyy-MM-dd hh:mm:ss"); //将评论信息压入评论信息列表 this.comments.push(obj); alert("评论成功!"); $(".wordsbox textarea").val(""); } } } } });

github效果在线预览

仓库地址:https://github.com/zhongyoucong/vuejs/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wysdsp.html