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.

138 lines
3.4 KiB

//
var isDebug = isDebug || false;
var useSignalR = useSignalR || false;
var isApp = location.href.indexOf('http') !== 0;
//
var wsUrl = iotCenter + '/hub?group=page';
var server = isApp ? localStorage.getItem('server') : null;
var iotCenter = isApp ? server + '/IoTCenter' : '';
var templateUrl = templateUrl || null;
var dataUrl = dataUrl||null;
var token = isApp ? localStorage.getItem('token') : null;
//
var connection = useSignalR? new signalR.HubConnectionBuilder().withUrl(wsUrl).build():null;
var vm;
var app;
//
var livePlayer;
var timer;
var decodedFrames;
var muted = true;
var volume = 0.5;
//
if (isApp) {
Framework7.use(Framework7Vue);
}
toastr.options.timeOut = 500;
toastr.options.positionClass = "toast-top-center";
//
//log
function debug(message) {
if (isDebug) {
console.log(message);
}
}
//signalr
function connect() {
debug('start connect to server:' + Date());
if (connection.state === signalR.HubConnectionState.Disconnected) {
connection.start().then(function () {
toastr.success('客户端与服务器连接成功!');
}).catch(function (err) {
toastr.error('客户端与服务器连接失败!');
setTimeout(connect, 15 * 1000);
});
}
}
function signalRInit() {
connection.on('Connected', function (id) {
connectionId = id;
debug(connectionId);
});
connection.onclose(function (err) {
setTimeout(connect, 15 * 1000);
});
connection.on("ServerToClient", function (method, json, from) {
debug(method + ':' + json);
onMessage(method, json, from);
});
}
//加载模板
function loadTemplate() {
axios.post(templateUrl, { crossDomain: true })
.then(function (response) {
var html = response.data;
$('#template').html(html);
init();
})
.catch(function (error) {
toastr.error('模板加载失败');
debug(error);
});
}
//加载数据
function loadData() {
var formData = new FormData();
formData.append('number', new URI().search(true).number);
if (isApp) {
formData.append('token', token);
}
axios.post(dataUrl, formData)
.then(function (response) {
debug(response);
data.model = response.data;
toastr.success('数据加载成功!');
})
.catch(function (error) {
toastr.error('数据加载失败');
debug(error);
});
}
//
//开始
function start() {
if (useSignalR) {
signalRInit();
connect();
}
if (templateUrl) {
loadTemplate();
}
else {
init();
}
}
//初始化vue
var mounted = mounted || function () { };
function init() {
$('#template style').each(function (i, n) {
$('head').append(n);
});
if (isApp) {
data['f7params'] = {
root: '#app',
id: 'io.framework7.testapp',
name: 'Framework7',
theme: 'ios',
};
}
vm = new Vue({
el: '#app',
data: data,
mounted: function () {
mounted();
if (isApp) {
this.$f7ready((f7) => {
app = this.$f7;
$.validator.unobtrusive.parse('form');
});
}
if (dataUrl) {
loadData();
}
},
methods:methods
});
}
//
start();