优化页面
This commit is contained in:
parent
455f50d32f
commit
184288a64e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -7,7 +7,7 @@ using WalkingTec.Mvvm.Core.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using IoTGateway.Model;
|
||||
|
||||
using Plugin;
|
||||
|
||||
namespace IoTGateway.ViewModel.BasicData.DeviceConfigVMs
|
||||
{
|
||||
@ -62,6 +62,8 @@ namespace IoTGateway.ViewModel.BasicData.DeviceConfigVMs
|
||||
|
||||
public override IOrderedQueryable<DeviceConfig_View> GetSearchQuery()
|
||||
{
|
||||
if (Searcher.DeviceId != null)
|
||||
IoTBackgroundService.ConfigSelectDeviceId = Searcher.DeviceId;
|
||||
var query = DC.Set<DeviceConfig>()
|
||||
.CheckContain(Searcher.DeviceConfigName, x => x.DeviceConfigName)
|
||||
.CheckContain(Searcher.Value, x => x.Value)
|
||||
|
@ -47,6 +47,10 @@ namespace IoTGateway.ViewModel.BasicData.DeviceConfigVMs
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (IoTBackgroundService.ConfigSelectDeviceId != null)
|
||||
{
|
||||
Entity.DeviceId = IoTBackgroundService.ConfigSelectDeviceId;
|
||||
}
|
||||
}
|
||||
|
||||
public override void DoAdd()
|
||||
|
@ -100,6 +100,9 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs
|
||||
}
|
||||
public override IOrderedQueryable<DeviceVariable_View> GetSearchQuery()
|
||||
{
|
||||
if (Searcher.DeviceId != null)
|
||||
IoTBackgroundService.VariableSelectDeviceId = Searcher.DeviceId;
|
||||
|
||||
var query = DC.Set<DeviceVariable>()
|
||||
.CheckContain(Searcher.Name, x => x.Name)
|
||||
.CheckContain(Searcher.Method, x => x.Method)
|
||||
|
@ -34,6 +34,10 @@ namespace IoTGateway.ViewModel.BasicData.DeviceVariableVMs
|
||||
AllMethods = deviceService.GetDriverMethods(Entity.DeviceId);
|
||||
var DapThread = deviceService.DeviceThreads.Where(x => x._device.ID == Entity.DeviceId).FirstOrDefault();
|
||||
}
|
||||
else if (IoTBackgroundService.ConfigSelectDeviceId != null)
|
||||
{
|
||||
Entity.DeviceId = IoTBackgroundService.ConfigSelectDeviceId;
|
||||
}
|
||||
}
|
||||
|
||||
public override void DoAdd()
|
||||
|
@ -4,7 +4,6 @@
|
||||
<wt:treecontainer items="AllDevices" id-field="Searcher.DeviceId" height="500">
|
||||
<wt:searchpanel vm="@Model" reset-btn="true">
|
||||
<wt:row items-per-row="ItemsPerRowEnum.Three">
|
||||
<wt:combobox field="Searcher.DeviceId" items="Searcher.AllDevices" empty-text="@Localizer["Sys.All"]" />
|
||||
<wt:textbox field="Searcher.DeviceConfigName" />
|
||||
<wt:textbox field="Searcher.Value" />
|
||||
</wt:row>
|
||||
|
@ -4,7 +4,6 @@
|
||||
<wt:treecontainer items="AllDevices" id-field="Searcher.DeviceId" height="500">
|
||||
<wt:searchpanel vm="@Model" reset-btn="true">
|
||||
<wt:row items-per-row="ItemsPerRowEnum.Three">
|
||||
<wt:combobox field="Searcher.DeviceId" items="Searcher.AllDevices" empty-text="@Localizer["Sys.All"]" />
|
||||
<wt:textbox field="Searcher.Name" />
|
||||
<wt:textbox field="Searcher.Method" />
|
||||
<wt:textbox field="Searcher.DeviceAddress" />
|
||||
|
@ -3,6 +3,8 @@
|
||||
<PropertyGroup>
|
||||
<ActiveDebugProfile>IoTGateway</ActiveDebugProfile>
|
||||
<NameOfLastUsedPublishProfile>D:\Repos\iotgateway\IoTGateway\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||
<View_SelectedScaffolderID>RazorViewEmptyScaffolder</View_SelectedScaffolderID>
|
||||
<View_SelectedScaffolderCategoryPath>root/Common/MVC/View</View_SelectedScaffolderCategoryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
||||
|
@ -99,6 +99,7 @@ namespace IoTGateway
|
||||
{
|
||||
{ ".html", "text/html" },
|
||||
{ ".glb", "model/gltf-binary" },
|
||||
{ ".json", " application/json" },
|
||||
{ ".js", "application/javascript" },
|
||||
{ ".css", "text/css" },
|
||||
{ ".wasm", "application/wasm" },
|
||||
|
@ -2,133 +2,191 @@
|
||||
@using System.Text.Json
|
||||
|
||||
<div class="layui-row layui-col-space15" id="frontpage">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12" style="display:none;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">快捷方式</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12" style="display:none;">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">快捷方式</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-shortcut">
|
||||
<div carousel-item>
|
||||
<ul class="layui-row layui-col-space15">
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkUser/Index">
|
||||
<i class="layui-icon layui-icon-username"></i>
|
||||
<cite>用户</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkRole/Index">
|
||||
<i class="layui-icon layui-icon-tabs"></i>
|
||||
<cite>角色</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkMenu/Index">
|
||||
<i class="layui-icon layui-icon-app"></i>
|
||||
<cite>菜单</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkGroup/Index">
|
||||
<i class="layui-icon layui-icon-user"></i>
|
||||
<cite>用户组</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/DataPrivilege/Index">
|
||||
<i class="layui-icon layui-icon-auz"></i>
|
||||
<cite>数据权限</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/ActionLog/Index">
|
||||
<i class="layui-icon layui-icon-console"></i>
|
||||
<cite>日志</cite>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="layui-carousel layadmin-carousel layadmin-shortcut">
|
||||
<div carousel-item>
|
||||
<ul class="layui-row layui-col-space15">
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkUser/Index">
|
||||
<i class="layui-icon layui-icon-username"></i>
|
||||
<cite>用户</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkRole/Index">
|
||||
<i class="layui-icon layui-icon-tabs"></i>
|
||||
<cite>角色</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkMenu/Index">
|
||||
<i class="layui-icon layui-icon-app"></i>
|
||||
<cite>菜单</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/FrameworkGroup/Index">
|
||||
<i class="layui-icon layui-icon-user"></i>
|
||||
<cite>用户组</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/DataPrivilege/Index">
|
||||
<i class="layui-icon layui-icon-auz"></i>
|
||||
<cite>数据权限</cite>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs2">
|
||||
<a lay-href="_Admin/ActionLog/Index">
|
||||
<i class="layui-icon layui-icon-console"></i>
|
||||
<cite>日志</cite>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设备状态</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" show-legend="true" show-tooltip="true" type="Pie" height="300" trigger-url="/Home/GetDeviceChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设备变量状态</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart show-legend="false" show-tooltip="true" type="Bar" height="300" trigger-url="/Home/GetDeviceVariableChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">访问分布TODO</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md4">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设备状态</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" show-legend="true" show-tooltip="true" type="Pie" height="300" trigger-url="/Home/GetDeviceChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md8">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设备变量状态</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart show-legend="false" show-tooltip="true" type="Bar" height="300" trigger-url="/Home/GetDeviceVariableChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">控制器</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" show-legend="true" show-tooltip="true" type="Bar" height="300" trigger-url="/Home/GetActionChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">模型</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart show-legend="false" show-tooltip="true" type="Pie" height="300" trigger-url="/Home/GetModelChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">模拟数据</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" type="Scatter" height="400" trigger-url="/Home/GetSampleChart" radius="50" name-x="X" name-y="Y" name-category="C" name-addition="A"/>
|
||||
<div id="map" style="height:650px;"><i class="layui-icon layui-icon-loading1 layadmin-loading"></i>读取数据中</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">控制器</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" show-legend="true" show-tooltip="true" type="Bar" height="300" trigger-url="/Home/GetActionChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">模型</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart show-legend="false" show-tooltip="true" type="Pie" height="300" trigger-url="/Home/GetModelChart" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">模拟数据</div>
|
||||
<div class="layui-card-body">
|
||||
<wt:chart is-horizontal="true" type="Scatter" height="400" trigger-url="/Home/GetSampleChart" radius="50" name-x="X" name-y="Y" name-category="C" name-addition="A" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<script>
|
||||
$("#frontpage").parents(".layui-card").css("background-color", "#eee").css("height","unset");
|
||||
$("#frontpage").parents(".layui-card").css("background-color", "#eee").css("height","unset");
|
||||
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, carousel = layui.carousel
|
||||
, element = layui.element
|
||||
, device = layui.device();
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, carousel = layui.carousel
|
||||
, element = layui.element
|
||||
, device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function () {
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
, width: '100%'
|
||||
, arrow: 'none'
|
||||
, interval: othis.data('interval')
|
||||
, autoplay: othis.data('autoplay') === true
|
||||
, trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
, anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
element.render('progress');
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function () {
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
, width: '100%'
|
||||
, arrow: 'none'
|
||||
, interval: othis.data('interval')
|
||||
, autoplay: othis.data('autoplay') === true
|
||||
, trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
, anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
element.render('progress');
|
||||
//数据概览
|
||||
layui.use(['admin', 'carousel', 'echarts'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, carousel = layui.carousel
|
||||
, echarts = layui.echarts;
|
||||
|
||||
});
|
||||
var map;
|
||||
$.get('layui/china.json', function (chinaJson) {
|
||||
|
||||
</script>
|
||||
echarts.registerMap('china', chinaJson);
|
||||
var mapoption =
|
||||
{
|
||||
title: {
|
||||
text: '',
|
||||
subtext: ''
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
dataRange: {
|
||||
orient: 'horizontal',
|
||||
min: 0,
|
||||
max: 10000,
|
||||
text: ['10000', '0'],
|
||||
splitNumber: 0
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '访问量',
|
||||
type: 'map',
|
||||
mapType: 'china',
|
||||
selectedMode: 'multiple',
|
||||
itemStyle: {
|
||||
normal: { label: { show: true } },
|
||||
emphasis: { label: { show: true } }
|
||||
},
|
||||
data: [
|
||||
{ name: '江苏', value: 10000 },
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
map = echarts.init(document.getElementById('map'), layui.echartsTheme);
|
||||
map.setOption(mapoption);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
Binary file not shown.
1
IoTGateway/wwwroot/layui/china.json
Normal file
1
IoTGateway/wwwroot/layui/china.json
Normal file
File diff suppressed because one or more lines are too long
@ -14,6 +14,7 @@ namespace Plugin
|
||||
{
|
||||
public static DBTypeEnum DBType;
|
||||
public static string connnectSetting;
|
||||
public static Guid? VariableSelectDeviceId, ConfigSelectDeviceId;
|
||||
public IoTBackgroundService(IConfiguration ConfigRoot)
|
||||
{
|
||||
var connnectSettings = new List<ConnnectSettingsModel>();
|
||||
|
BIN
iotgateway.db
BIN
iotgateway.db
Binary file not shown.
Loading…
Reference in New Issue
Block a user