Former-commit-id: 6b8e08173b0940b7e853520244bc4d9f0b810000
TangShanKaiPing
wanggang 6 years ago
parent b6a40d6b43
commit c1882499ce

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

@ -143,19 +143,19 @@
</style>
<div class="row">
<div class="col-md-12">
<div v-if="ViewModel" class="callout callout-success">
<h4>{{ViewModel.Name}}</h4>
<div v-if="model" class="callout callout-success">
<h4>{{model.Name}}</h4>
</div>
</div>
</div>
<div class="row" v-if="ViewModel">
<div class="row" v-if="model">
<div class="col-md-6">
<template v-if="HasDevices('摄像头')">
<div class="row">
<div class="col-md-12">
<div class="box box-solid">
<select class="form-control" id="camera" @change="CameraSelected">
<option v-for="c in GetCameras()" :value="c.Number">{{c.DisplayName||c.Name}}</option>
<option v-for="c in GetDevices('摄像头')" :value="c.Number">{{c.DisplayName||c.Name}}</option>
</select>
<div style="width:100%;height:186px;margin:0;padding:0;background:#000;">
<video id="flvPlayer" class="video" controls autoplay style="width:100%;max-width:100%;height:100%;"></video>
@ -486,8 +486,8 @@
<div class="box-header with-border">
<h3 class="box-title"><img src="/images/batch.png" style="height:16px;margin-right:10px;" />批量操作</h3>
<div class="box-tools pull-right">
<button class="btn btn-sm bg-olive ajax NodePowerOn" :data-node-number="ViewModel.Number">一键开</button>
<button class="btn btn-sm bg-olive ajax NodePowerOff" :data-node-number="ViewModel.Number">一键关</button>
<button class="btn btn-sm bg-olive ajax NodePowerOn" :data-node-number="model.Number">一键开</button>
<button class="btn btn-sm bg-olive ajax NodePowerOff" :data-node-number="model.Number">一键关</button>
</div>
</div>
<div class="box-body" style="height:178px;">
@ -496,9 +496,9 @@
<button class="btn bg-olive margin ajax SocketOn">插座开</button>
<button class="btn bg-olive margin ajax SocketOff">插座关</button>
<br />
<button class="btn bg-olive margin ajax Scene" v-for="scene in ViewModel.Scenes" :data-scene-id="scene.Id">{{scene.Name}}</button>
<button class="btn bg-olive margin ajax Scene" v-for="scene in model.Scenes" :data-scene-id="scene.Id">{{scene.Name}}</button>
<br />
<template v-for="device in ViewModel.Devices">
<template v-for="device in model.Devices">
<button class="btn bg-olive margin ajax Command" v-for="command in device.Commands" :data-command-id="command.Id">{{command.Name}}</button>
</template>
</div>
@ -668,8 +668,8 @@
<div class="box-header with-border">
<h3 class="box-title"><img src="/images/switch.png" style="height:16px;margin-right:10px;" />{{device.DisplayName||device.Name}}</h3>
<div class="box-tools pull-right">
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/On')" :data-node-number="ViewModel.Number">一键开</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/Off')" :data-node-number="ViewModel.Number">一键关</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/On')" :data-node-number="model.Number">一键开</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/Off')" :data-node-number="model.Number">一键关</button>
</div>
</div>
<div class="box-body">
@ -691,8 +691,8 @@
<div class="box-header with-border">
<h3 class="box-title"><img src="/images/switch2.png" style="height:16px;margin-right:10px;" />{{device.DisplayName||device.Name}}</h3>
<div class="box-tools pull-right">
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/On')" :data-node-number="ViewModel.Number">一键开</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/Off')" :data-node-number="ViewModel.Number">一键关</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/On')" :data-node-number="model.Number">一键开</button>
<button class="btn btn-sm bg-olive" @click="CallApi(device.Number,'/Switch3/Off')" :data-node-number="model.Number">一键关</button>
</div>
</div>
<div class="box-body">
@ -815,30 +815,12 @@
connection.on('Connected', function (id) {
connectionId = id;
});
//connection.on("UpdateDevice", (message) => {
// var newDevice = JSON.parse(message);
// if (newDevice.NodeId === vm.ViewModel.Id) {
// var update = false;
// for (var i = 0; i < vm.ViewModel.Devices.length; i++) {
// if (vm.ViewModel.Devices[i].Number == newDevice.Number) {
// update = true;
// break;
// }
// }
// if (update) {
// vm.ViewModel.Devices.splice(i, 1, newDevice);
// }
// else {
// vm.ViewModel.Devices.push(newDevice);
// }
// }
//});
connection.on("ServerToClient", function (method, json, from) {
console.log(method + ':' + json);
if (method == 'DataEntityInserted' ||
method == 'DataEntityUpdated') {
var data = JSON.parse(json);
var device = Enumerable.from(vm.ViewModel.Devices).firstOrDefault(function (o) { return o.Id === data.DeviceId; })
var device = Enumerable.from(vm.model.Devices).firstOrDefault(function (o) { return o.Id === data.DeviceId; })
if (device) {
update(device.Data, data);
}
@ -979,15 +961,6 @@
function UpdateCamera() {
var number = $('#camera').val();
if (number) {
var device = Enumerable.from(vm.ViewModel.Devices).where(function (o) { return o.Number === number; }).firstOrDefault();
var url = Enumerable.from(device.Data).where(o => o.Name === '主码流flv').firstOrDefault().Value;
var hasPtz = Enumerable.from(device.Data).where(o => o.Name === '缩放支持').firstOrDefault().Value === '是';
if (hasPtz) {
$('#ptz').show();
}
else {
$('#ptz').hide();
}
closePlayer(flvPlayer);
playFlv(document.getElementById("flvPlayer"));
}
@ -995,10 +968,10 @@
function playFlv(videoElement) {
var number = $('#camera').val();
if (number) {
var device = Enumerable.from(vm.ViewModel.Devices).where(function (o) { return o.Number === number; }).firstOrDefault();
var device = Enumerable.from(vm.model.Devices).where(function (o) { return o.Number === number; }).firstOrDefault();
var url = Enumerable.from(device.Data).where(o => o.Name === '主码流flv').firstOrDefault().Value;
var hasPtz = Enumerable.from(device.Data).where(o => o.Name === '缩放支持').firstOrDefault().Value === '是';
if (hasPtz) {
var hasPtz = Enumerable.from(device.Data).where(o => o.Name === '缩放支持').firstOrDefault();
if (hasPtz && hasPtz.Value === '是') {
$('#ptz').show();
}
else {
@ -1071,13 +1044,13 @@
el: '#template',
data() {
return {
ViewModel: null
model: null
}
},
mounted() {
var url = '/Home/GetNode' + '?number=' + new URI().query(true).number;
$.get(url, function (data) {
vm.ViewModel = data;
vm.model = data;
var wsUrl = '/hub?group=page';
connection = new signalR.HubConnectionBuilder().withUrl(wsUrl).build();
onMessage();
@ -1094,7 +1067,7 @@
},
methods: {
GetData(deviceName, displayName, tag, dataName, attr) {
var query = Enumerable.from(vm.ViewModel.Devices).where(function (o) { return o.Name === deviceName; });
var query = Enumerable.from(vm.model.Devices).where(function (o) { return o.Name === deviceName; });
if (displayName != null) {
query = query.where(o => o.DisplayName === displayName);
}
@ -1112,26 +1085,20 @@
},
HasDevices(name) {
return Enumerable
.from(vm.ViewModel.Devices)
.from(vm.model.Devices)
.any(function (o) { return o.Name === name });
},
GetCameras() {
return Enumerable
.from(vm.ViewModel.Devices)
.where(function (o) { return o.Name === '摄像头' })
GetDevices(name) {
return Enumerable.from(vm.model.Devices)
.where(function (o) { return o.Name == name; })
.toArray();
},
CameraSelected() {
console.log('camera selected:' + new Date());
UpdateCamera();
},
GetDevices(name) {
return Enumerable.from(vm.ViewModel.Devices)
.where(function (o) { return o.Name == name; })
.toArray();
},
GetDevice(name, tag) {
var query = Enumerable.from(vm.ViewModel.Devices);
var query = Enumerable.from(vm.model.Devices);
if (name) {
query = query.where(function (o) { return o.Name === name; });
}
@ -1141,7 +1108,7 @@
return query.firstOrDefault();
},
GetDeviceDataValue(number, name, attr) {
var device = Enumerable.from(vm.ViewModel.Devices).where(function (o) { return o.Number === number; }).firstOrDefault();
var device = Enumerable.from(vm.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];
@ -1153,7 +1120,7 @@
return device == null ? null : device.Number;
},
GetDataValue(number, name) {
var device = Enumerable.from(vm.ViewModel.Devices)
var device = Enumerable.from(vm.model.Devices)
.where(function (o) { return o.Number === number; })
.firstOrDefault();
if (device != null) {
@ -1170,7 +1137,7 @@
ajax('/App/ExecApi', { number: number, method: method, query: query }, 'post');
},
AjaxSubmit(event, deviceNumber, dataName) {
var device = Enumerable.from(vm.ViewModel.Devices)
var device = Enumerable.from(vm.model.Devices)
.where(function (o) { return o.Number === deviceNumber; })
.firstOrDefault();
if (device != null) {

@ -12,40 +12,4 @@
<ItemGroup>
<EmbeddedResource Include="wwwroot\**\*" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="wwwroot\images\empty.png" />
<EmbeddedResource Remove="wwwroot\lib\linq.js\linq.min.js" />
</ItemGroup>
<ItemGroup>
<None Remove="wwwroot\css\app - 复制.css" />
<None Remove="wwwroot\fonts\Framework7Icons-Regular.eot" />
<None Remove="wwwroot\fonts\Framework7Icons-Regular.ttf" />
<None Remove="wwwroot\fonts\Framework7Icons-Regular.woff" />
<None Remove="wwwroot\fonts\Framework7Icons-Regular.woff2" />
<None Remove="wwwroot\images\empty.png" />
<None Remove="wwwroot\lib\linq.js\linq.min.js" />
<None Remove="wwwroot\lib\signalr\signalr-protocol-msgpack.min.js" />
<None Remove="wwwroot\lib\signalr\signalr.min.js" />
<None Remove="wwwroot\node.html" />
<None Remove="wwwroot\nodes.html" />
<None Remove="wwwroot\user.html" />
</ItemGroup>
<ItemGroup>
<Content Include="wwwroot\images\empty.png">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="wwwroot\lib\linq.js\linq.min.js">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="wwwroot\lib\signalr\signalr-protocol-msgpack.min.js">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="wwwroot\lib\signalr\signalr.min.js">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
</Project>

@ -1,6 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="stylesheet" href="lib/framework7/css/framework7.bundle.min.css">
<link rel="stylesheet" href="css/framework7-icons.css">
<link rel="stylesheet" href="css/app.css">

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e6129b38f2b39f74cb9b55bdb680a25c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d92346a59288fb14db2921b297fff940
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a86860a9e998de348a03e71c75f85f10
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 31590b0b70a91aa46b8bab10624fcf59
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 264fadc0d6c413c48ae3c7ad4007c9f2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4877a04db9e01f34dbc9eb65df30d900
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0b725cc18e582ce479031214172c9081
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 20e52cea12ffe8c4b9e58d3f4d1a6735
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 895d843439bb7bc499b57b002158df9c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 470fd209ffae0174aaf2a3ec66874453
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 521ab3fe09a114848903e8ca9ef192e0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 18a4996784b0238468f613a15ff35189
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0b0303c3526f9ba4e973e9d52d22116c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7f3854dcc21cf984da5fbc2e5ce44e21
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d62bbd662c2b60f4f8ea63553c30709a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1ec5930fe7836a945b4112014268a5e9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 91e4986129ae7f541b11fcc4d61a338d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 36c0318e9f5e067408046817b0a33940
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: faf87b94d4a911b49a0db25b68e640fc
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: daa0e2b1e69820f488c7304a4357c29e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 6c5e7ccac04e5a24795e566953051085
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 52ee27b48654b5f4597be1f62ebae172
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d7d45f452a6662245be9f362c3f6c3bb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: b8542c1505391b94b813f5283747910d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0541c689ddd82f0438bf94966db2a1b0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5c35f91e78d082a4ab43c104b2d15544
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7160fc6321de7f147b7ffe869b286a2b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bc8c4b776b32556429c9369ea1032c16
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f69f432c742bd8f4b8af323b825b54a9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0e8ab5c3698b35e49876eab5ca17bdfa
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d2b5c4da1ae52b34b83c98a5617f78fb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f386951d30b81ab42a701744ea81a6ec
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bf975bd2cf70a4043a33b0615071b191
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a567f0363c2bcab408982f386d71df91
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2b5a066a71fda5c4a9238a563093b361
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8de67d4c11d88c142bde3a692cd02b9c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4fec82fa4aeeddf4180565584e290426
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 62830dc6e6997014188768a2bef1448b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1ae744c5cfab73b4697bc8956150c620
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save