You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.6 KiB
60 lines
2.6 KiB
function login() {
|
|
return Vue.component('login', function (resolve, reject) {
|
|
axios.get("/login.html").then(function (response) {
|
|
resolve({
|
|
template: response.data,
|
|
data() {
|
|
return {
|
|
name: 'login'
|
|
};
|
|
},
|
|
mounted: function () {
|
|
console.log('mounted:login');
|
|
weui.form.checkIfBlur('#form', this.regexp);
|
|
},
|
|
computed: {
|
|
regexp: function () {
|
|
return {
|
|
regexp: {
|
|
userName: /^[^\s]+/,
|
|
password: /^[^\s]+$/
|
|
}
|
|
};
|
|
}
|
|
},
|
|
methods: {
|
|
submit: function () {
|
|
weui.form.validate('#form', function (error) {
|
|
if (!error) {
|
|
var loading = weui.loading('提交中...');
|
|
var form = $("#form");
|
|
var url = form.attr('action');
|
|
var data = form.serializeJSON();
|
|
axios.post(url, data).then(function (response) {
|
|
token = response.data.accessToken;
|
|
localStorage.setItem("accessToken", token);
|
|
refreshToken = response.data.refreshToken;
|
|
localStorage.setItem("refreshToken", refreshToken);
|
|
router.push('/');
|
|
}).catch(function (error) {
|
|
console.log(error.response);
|
|
var data = error.response.data;
|
|
var key = error.response.data.key;
|
|
if (key) {
|
|
$("[name='" + key + "']").parents('.weui-cell').addClass('weui-cell_warn');
|
|
}
|
|
weui.topTips(data.message, { duration: 3000 });
|
|
}).finally(function () {
|
|
loading.hide();
|
|
});
|
|
}
|
|
else {
|
|
console.log(error);
|
|
}
|
|
}, this.regexp);
|
|
}
|
|
}
|
|
})
|
|
});
|
|
});
|
|
} |