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/WebSPA/wwwroot/pages/login.js

97 lines
4.3 KiB

function pages_login() {
return {
component: Vue.component(arguments.callee.toString(), function (resolve, reject) {
axios.get("/pages/login.html?v=0.1.0.202004270919").then(function (response) {
resolve({
template: response.data,
data() {
return {
name: '登录',
url: '/UserCenter/api/v1/token/getToken'
};
},
mounted: function () {
weui.form.checkIfBlur('#form', this.regexp);
// 绑定enter事件
this.enterKeyup();
},
computed: {
regexp: function () {
return {
regexp: {
userName: /^[^\s]+/,
password: /^[^\s]+$/
}
};
},
user: function () {
return this.$store.user;
}
},
destroyed() {
// 销毁enter事件
this.enterKeyupDestroyed();
},
methods: {
submit: function () {
var url = this.url;
weui.form.validate('#form', function (error) {
if (!error) {
var loading = weui.loading('提交中...');
var form = $("#form");
var data = form.serializeJSON();
axios.post(url, data).then(function (response) {
store.commit('setToken', response.data);
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);
},
enterKey(event) {
const code = event.keyCode
? event.keyCode
: event.which
? event.which
: event.charCode;
if (code == 13) {
this.submit();
}
},
enterKeyupDestroyed() {
document.removeEventListener("keyup", this.enterKey);
},
enterKeyup() {
document.addEventListener("keyup", this.enterKey);
},
closeWindow(){
if(window.api){
window.api.execScript(
{
name: window.api.winName,
script: "api.closeWin()"
}
)
}
},
}
})
});
}),
onMessage: function (event, model, to, from) {
//
}
}
}