|
|
$.ajaxSetup({
|
|
|
cache: false,
|
|
|
timeout:5000
|
|
|
});
|
|
|
// Init F7 Vue Plugin
|
|
|
Framework7.use(Framework7Vue);
|
|
|
|
|
|
// Init Page Components
|
|
|
Vue.component('page-login', {
|
|
|
template: '#page-login',
|
|
|
data(){
|
|
|
return {
|
|
|
Server: localStorage.getItem('Server')||'http://192.168.3.83:8000',
|
|
|
UserName: localStorage.getItem('UserName'),
|
|
|
Password: null,
|
|
|
RememberMe: localStorage.getItem('RememberMe')
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
$('form').removeData('validator');
|
|
|
$('form').removeData('unobtrusiveValidation');
|
|
|
$.validator.unobtrusive.parse('form');
|
|
|
},
|
|
|
methods: {
|
|
|
OnSubmit:function(e) {
|
|
|
if (!$('form').valid()) {
|
|
|
return;
|
|
|
}
|
|
|
var url = e.target.action;
|
|
|
var data = $(e.target).serialize();
|
|
|
var current = this;
|
|
|
$.post(url, data, function (response) {
|
|
|
if (response.Code === 0) {
|
|
|
vm.Token = response.Token || 'token';
|
|
|
if (current.RememberMe === true) {
|
|
|
localStorage.setItem("Token", response.Token || 'token');
|
|
|
localStorage.setItem("Server", current.Server);
|
|
|
localStorage.setItem("UserName", current.UserName);
|
|
|
localStorage.setItem("NickName", response.NickName);
|
|
|
localStorage.setItem("IoTServer", _.trimEnd(response.IoTServer,['/']));
|
|
|
}
|
|
|
else {
|
|
|
localStorage.removeItem("Token");
|
|
|
}
|
|
|
vm.Server = current.Server;
|
|
|
vm.RememberMe = current.RememberMe;
|
|
|
vm.UserName = current.UserName;
|
|
|
vm.NickName = response.NickName;
|
|
|
vm.IoTServer = _.trimEnd(response.IoTServer, ['/']);
|
|
|
vm.$f7.view.current.router.back();
|
|
|
}
|
|
|
else {
|
|
|
app.dialog.alert(response.Message, "消息");
|
|
|
}
|
|
|
}).fail(function (e) {
|
|
|
var message;
|
|
|
if (e.status === 0) {
|
|
|
message = "不是有效的服务器地址";
|
|
|
}
|
|
|
else {
|
|
|
message = e.status + ":" + e.statusText;
|
|
|
}
|
|
|
vm.$f7.dialog.alert(message, "消息");
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
Vue.component('page-index', {
|
|
|
template: '#page-index'
|
|
|
});
|
|
|
Vue.component('page-node', {
|
|
|
template: '#page-node'
|
|
|
});
|
|
|
Vue.component('page-device', {
|
|
|
template: '#page-device'
|
|
|
});
|
|
|
Vue.component('page-not-found', {
|
|
|
template: '#page-not-found'
|
|
|
});
|
|
|
|
|
|
// Init App
|
|
|
var vm = new Vue({
|
|
|
el: '#app',
|
|
|
data(){
|
|
|
return {
|
|
|
// Framework7 parameters here
|
|
|
f7params: {
|
|
|
root: '#app', // App root element
|
|
|
id: 'io.framework7.testapp', // App bundle ID
|
|
|
name: 'Framework7', // App name
|
|
|
theme: 'auto', // Automatic theme detection
|
|
|
// App routes
|
|
|
routes: [
|
|
|
{
|
|
|
path: '/login/',
|
|
|
component: 'page-login'
|
|
|
},
|
|
|
{
|
|
|
path: '/index/',
|
|
|
component: 'page-index'
|
|
|
},
|
|
|
{
|
|
|
path: '/node/:id/',
|
|
|
component: 'page-node'
|
|
|
},
|
|
|
{
|
|
|
path: '/device/:id/',
|
|
|
component: 'page-device'
|
|
|
},
|
|
|
{
|
|
|
path: '(.*)',
|
|
|
component: 'page-not-found',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
Server: localStorage.getItem('Server'),
|
|
|
Token: localStorage.getItem('Token'),
|
|
|
UserName: localStorage.getItem('UserName'),
|
|
|
RememberMe: localStorage.getItem('RememberMe'),
|
|
|
NickName: localStorage.getItem('NickName'),
|
|
|
IoTServer: localStorage.getItem('IoTServer'),
|
|
|
User: null,
|
|
|
Nodes: [],
|
|
|
Messages:[],
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
this.$f7ready((f7) => {
|
|
|
if (this.Token) {
|
|
|
this.init();
|
|
|
}
|
|
|
else {
|
|
|
f7.view.current.router.navigate('/login/')
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
init() {
|
|
|
var baseUrl = vm.IoTServer;
|
|
|
var wsUrl = baseUrl + "/hub?group=nodes";
|
|
|
var ajaxUrl = baseUrl + "/Home/GetNodes";
|
|
|
Framework7.request.json(ajaxUrl, null, function (response) {
|
|
|
vm.Nodes = response;
|
|
|
}, null, 'json');
|
|
|
}
|
|
|
}
|
|
|
}); |