isDebug = true; useSignalR = true; dataUrl = iotCenter + '/App/GetProduct?number=' + new URI().search(true).number; data = function data() { return { f7params: f7params, server: localStorage.getItem('server'), token: localStorage.getItem('token'), model: null }; } methods = { HasBatchCommand() { return this.model.Name === '调色灯' || this.model.Name.indexOf('窗帘电机') >= 0 || this.model.Name.indexOf('开关') >= 0 || this.model.Name.indexOf('插座') >= 0; }, GetDevices() { return Enumerable.from(this.model.Devices).orderBy(function (o) { return o.DisplayOrder; }).orderBy(function (o) {return o.Name }).toArray(); }, GetDataValue(number, name) { var device = Enumerable.from(this.model.Devices) .where(function (o) { return o.Number === number; }) .firstOrDefault(); if (device != null) { var data = Enumerable.from(device.Data) .where(function (o) { return o.Name == name }) .firstOrDefault(); if (data != null) { return data.Value; } } return null; }, GetDeviceDataAttr(number, name, attr) { var device = Enumerable.from(this.model.Devices).where(function (o) { return o.Number === number; }).firstOrDefault(); var data = Enumerable.from(device.Data).where(o => o.Name === name).firstOrDefault(); if (data != null) { return data[attr]; } return null; }, SelectDevice:Select, CallApiAll(method) { var numbers = []; $('.item:checked').each(function () { numbers.push($(this).val()); }); if (numbers.length) { ajax('/App/ExecApiAll', { token: token, connectionId: connectionId, method: vm.model.Path + method, numbers: numbers }, 'post'); } else { toastr.error('没有选中任何项'); } } }; function onMessage(method, json, to, from) { debug(method + ':' + json); var item = JSON.parse(json); console.log(method + ':' + json); var item = JSON.parse(json); if (method == 'DeviceEntityInserted' || method == 'DeviceEntityUpdated' || method == 'DeviceEntityDeleted') { loadData(); } else if (method == 'DataEntityInserted' || method == 'DataEntityUpdated' || method == 'DataEntityDeleted') { var device = Enumerable.from(vm.model.Devices).firstOrDefault(function (o) { return o.Id === item.DeviceId; }) if (device) { updateItem(device.Data, item); toastr.info(device.DisplayName + '更新'); } } } start();