优化页面

This commit is contained in:
dd 2022-04-18 16:35:33 +08:00
parent 455f50d32f
commit 184288a64e
17 changed files with 190 additions and 116 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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)

View File

@ -47,6 +47,10 @@ namespace IoTGateway.ViewModel.BasicData.DeviceConfigVMs
}
}
}
else if (IoTBackgroundService.ConfigSelectDeviceId != null)
{
Entity.DeviceId = IoTBackgroundService.ConfigSelectDeviceId;
}
}
public override void DoAdd()

View File

@ -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)

View File

@ -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()

View File

@ -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>

View File

@ -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" />

View File

@ -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>

View File

@ -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" },

View File

@ -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.

File diff suppressed because one or more lines are too long

View File

@ -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>();

Binary file not shown.