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.
iot/projects/WebUI/wwwroot/login.js

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);
}
}
})
});
});
}