methods:{loginSubmit(name){constself=this;self.modal_loading=true;self.$refs[name].validate((valid)=>{if(valid){letloginObj={mobile:this.logPrefix+this.form1.mobile,password:this.form1.password,};this.$store.dispatch('login',loginObj);}})},}如上,在当前组件传入登录信息,调用action登录,我ui组件用的iview,我想登录失败的时候,调用iview的this.$Message.error("")弹出错误提示但是这里不能直接用this.,说找不到error方法,请问有什么办法解决?login({state,commit},payload){axios.post('/login',payload).then((res)=>{Cookies.set('mobile',res.data.user.mobile);//Cookies.set('userId',res.data.user.id);Cookies.set('username',res.data.user.username);Cookies.set('token',res.data.token);Cookies.set('userType',res.data.userType);if(res.data.merchant){Cookies.set('auditStatus',res.data.merchant.status);Cookies.set('checkMessage',res.data.merchant.checkMessage);Cookies.set('merchantPhone',res.data.merchant.phone);Cookies.set('auditStatus',res.data.merchant.leaderPhone);}else{Cookies.set('auditStatus',"未提交审核");}if(res.data.userType==='admin'){Cookies.set('access',0);}elseif(res.data.userType==='user'){Cookies.set('access',1);}else{Cookies.set('access',2);}if(self.$route.query.redirect){//letredirect=decodeURIComponent(this.$route.query.redirect);letredirect=this.$route.query.redirect;self.$router.push(redirect);}else{self.$router.push('/');}}).catch((error)=>{if(error.response.data.errorMassage){this.$Message.error(error.response.data.errorMassage);}else{this.$Message.error("登录开小差了~请再试一遍");}self.modal_loading=false;});
添加回答
举报
0/150
提交
取消
