@@ -26,11 +26,15 @@ | |||
<ItemGroup> | |||
<Folder Include="Services\DeviceService\" /> | |||
<Folder Include="Services\KepServerDataService\Dto\" /> | |||
<Folder Include="Services\MaterialService\" /> | |||
<Folder Include="Services\RecipesService\" /> | |||
<Folder Include="Services\CustomCodeService\" /> | |||
<Folder Include="Services\SystemService\" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="FreeRedis" Version="1.2.5" /> | |||
<PackageReference Include="ServiceStack.Redis" Version="6.11.0" /> | |||
</ItemGroup> | |||
</Project> |
@@ -1080,6 +1080,36 @@ | |||
负责人 | |||
</summary> | |||
</member> | |||
<member name="P:BPA.MES.Base.Application.Entitys.KepData.AlarmLog.Value"> | |||
<summary> | |||
当前值 | |||
</summary> | |||
</member> | |||
<member name="P:BPA.MES.Base.Application.Entitys.KepData.AlarmLog.ValueStr"> | |||
<summary> | |||
报警信息 | |||
</summary> | |||
</member> | |||
<member name="T:BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit"> | |||
<summary> | |||
大屏报警限制 | |||
</summary> | |||
</member> | |||
<member name="P:BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit.Name"> | |||
<summary> | |||
限制名称 | |||
</summary> | |||
</member> | |||
<member name="P:BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit.MinLimitValue"> | |||
<summary> | |||
最小限制值 | |||
</summary> | |||
</member> | |||
<member name="P:BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit.MaxLimitValue"> | |||
<summary> | |||
最大限制值 | |||
</summary> | |||
</member> | |||
<member name="T:BPA.MES.Base.Application.Entitys.AlarmLogEntity"> | |||
<summary> | |||
名 称 :报警日志 | |||
@@ -4588,6 +4618,32 @@ | |||
<param name="Id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:BPA.MES.Base.Application.Services.KepServerDataService.Services.KepDataService.AddDataVAlarmLimit(BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit)"> | |||
<summary> | |||
添加报警限制 | |||
</summary> | |||
<param name="inputDto"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:BPA.MES.Base.Application.Services.KepServerDataService.Services.KepDataService.UpdateDataVAlarmLimit(BPA.MES.Base.Application.Entitys.KepData.DataVAlarmLimit)"> | |||
<summary> | |||
修改报警限制 | |||
</summary> | |||
<param name="inputDto"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:BPA.MES.Base.Application.Services.KepServerDataService.Services.KepDataService.GetDataVAlarmLimitList(BPA.MES.Base.Core.RequestPage)"> | |||
<summary> | |||
获取报警限制 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:BPA.MES.Base.Application.Services.KepServerDataService.Services.KepDataService.DelDataVAlarmLimitList(System.String)"> | |||
<summary> | |||
删除报警限制 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="T:BPA.MES.Base.Application.Services.AlarmLogDto"> | |||
<summary> | |||
名 称 : | |||
@@ -0,0 +1,27 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPA.MES.Base.Application.Entitys.KepData | |||
{ | |||
[SugarTable("DataVAlarmLog")] | |||
public class AlarmLog: DEntityBase | |||
{ | |||
public string Name { get; set; } | |||
/// <summary> | |||
/// 当前值 | |||
/// </summary> | |||
public string Value { get; set; } | |||
/// <summary> | |||
/// 报警信息 | |||
/// </summary> | |||
public string ValueStr{ get; set; } | |||
public DateTime CreateTime { get; set; } | |||
} | |||
} |
@@ -0,0 +1,33 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPA.MES.Base.Application.Entitys.KepData | |||
{ | |||
/// <summary> | |||
/// 大屏报警限制 | |||
/// </summary> | |||
[SugarTable("DataVAlarmLimit")] | |||
public class DataVAlarmLimit: DEntityBase | |||
{ | |||
/// <summary> | |||
/// 限制名称 | |||
/// </summary> | |||
public string Name { get; set; } | |||
public string Code { get; set; } | |||
/// <summary> | |||
/// 最小限制值 | |||
/// </summary> | |||
public decimal MinLimitValue { get; set; } | |||
/// <summary> | |||
/// 最大限制值 | |||
/// </summary> | |||
public decimal MaxLimitValue { get; set; } | |||
} | |||
} |
@@ -6,7 +6,7 @@ using System.Threading.Tasks; | |||
namespace BPA.MES.Base.Application.Entitys.KepData | |||
{ | |||
[SugarTable("ch1_device1")] | |||
// [SugarTable("ch1_device1")] | |||
public class ch1_device1 | |||
{ | |||
[SugarColumn(IsPrimaryKey = true)] | |||
@@ -0,0 +1,15 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Linq; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
namespace BPA.MES.Base.Application.Services.KepServerDataService.Dto | |||
{ | |||
public class DataVDataDto | |||
{ | |||
public string Key { get; set; } | |||
public string Value { get; set; } | |||
} | |||
} |
@@ -10,5 +10,6 @@ namespace BPA.MES.Base.Application.Services.KepServerDataService.Services | |||
public interface IKepDataService | |||
{ | |||
Task<Dictionary<string, object>> GetList(); | |||
Task<string> GetA1(); | |||
} | |||
} |
@@ -1,16 +1,24 @@ | |||
using BPA.MES.Base.Application.Entitys.KepData; | |||
using FreeRedis; | |||
using Furion.ClayObject.Extensions; | |||
using Furion.RemoteRequest; | |||
using Newtonsoft.Json; | |||
//using ServiceStack.Redis; | |||
using SqlSugar; | |||
using System; | |||
using System.Collections; | |||
using System.Collections.Generic; | |||
using System.Data; | |||
using System.Linq; | |||
using System.Reflection; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using Yitter.IdGenerator; | |||
using static ServiceStack.Diagnostics.Events; | |||
namespace BPA.MES.Base.Application.Services.KepServerDataService.Services | |||
{ | |||
[AllowAnonymous] | |||
[ApiDescriptionSettings("大屏数据", Order = 4, Name = "KepData", Tag = "大屏数据", KeepName = true, SplitCamelCase = true, KeepVerb = true)] | |||
public class KepDataService: KepServerSqlsugar, IKepDataService,ITransient, IDynamicApiController | |||
{ | |||
@@ -19,7 +27,6 @@ namespace BPA.MES.Base.Application.Services.KepServerDataService.Services | |||
} | |||
[HttpPost] | |||
[AllowAnonymous] | |||
public async Task<Dictionary<string, object>> GetList() | |||
{ | |||
var data =await KepDb.Queryable<ch1_device1>().Where(x=> SqlFunc.DateIsSame(x._TIMESTAMP, DateTime.Now)).Take(1000).ToListAsync(); | |||
@@ -36,5 +43,171 @@ namespace BPA.MES.Base.Application.Services.KepServerDataService.Services | |||
var JsonString = JsonConvert.SerializeObject(dic); | |||
return dic; | |||
} | |||
public async Task<string> GetA1() | |||
{ | |||
//await using (RedisClient client = new RedisClient("10.2.1.21", 6379, "1178661552398188544", 0)) | |||
//{ | |||
// if (client == null) return string.Empty; | |||
// string configData = client.Get<string>("ns=2;s=CH1.Device1.A1"); | |||
// return configData; | |||
//} | |||
return ""; | |||
} | |||
[HttpGet] | |||
[AllowAnonymous] | |||
public Task<bool> CodeFirst() | |||
{ | |||
var types = Assembly.Load("BPA.MES.Base.Application").GetTypes() | |||
.Where(x => x.GetCustomAttribute<SugarTable>() != null | |||
&& x.Namespace == "BPA.MES.Base.Application.Entitys.KepData").ToArray(); | |||
KepDb.CodeFirst.InitTables(types); | |||
return Task.FromResult(true); | |||
} | |||
/// <summary> | |||
/// 添加报警限制 | |||
/// </summary> | |||
/// <param name="inputDto"></param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AllowAnonymous] | |||
public async Task<bool> AddDataVAlarmLimit(DataVAlarmLimit inputDto) | |||
{ | |||
inputDto.Id = YitIdHelper.NextId().ToString(); | |||
var res = await KepDb.Insertable<DataVAlarmLimit>(inputDto).ExecuteCommandAsync(); | |||
return res > 0; | |||
} | |||
/// <summary> | |||
/// 修改报警限制 | |||
/// </summary> | |||
/// <param name="inputDto"></param> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AllowAnonymous] | |||
public async Task<bool> UpdateDataVAlarmLimit(DataVAlarmLimit inputDto) | |||
{ | |||
var res = await KepDb.Updateable<DataVAlarmLimit>(inputDto).ExecuteCommandAsync(); | |||
return res > 0; | |||
} | |||
/// <summary> | |||
/// 获取报警限制 | |||
/// </summary> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AllowAnonymous] | |||
public async Task<SqlSugarPagedList<DataVAlarmLimit>> GetDataVAlarmLimitList(RequestPage input) | |||
{ | |||
var entity = await KepDb.Queryable<DataVAlarmLimit>() | |||
.ToPagedListAsync(input.PageIndex, input.PageSize); | |||
SqlSugarPagedList<DataVAlarmLimit> output = entity.Adapt<SqlSugarPagedList<DataVAlarmLimit>>(); | |||
return output; | |||
} | |||
/// <summary> | |||
/// 删除报警限制 | |||
/// </summary> | |||
/// <returns></returns> | |||
[HttpPost] | |||
[AllowAnonymous] | |||
public async Task<bool> DelDataVAlarmLimitList(string id) | |||
{ | |||
var res = await KepDb.Deleteable<DataVAlarmLimit>().Where(x=>x.Id==id).ExecuteCommandAsync(); | |||
return res>0; | |||
} | |||
[HttpGet] | |||
[AllowAnonymous] | |||
public Dictionary<string, string> GetDataVList() | |||
{ | |||
// var client = new ServiceStack.Redis.RedisClient("10.2.1.21", 6379, "1178661552398188544"); | |||
//var client = new RedisClient("10.2.1.21:6379,password=1178661552398188544,defaultDatabase=13"); | |||
try | |||
{ | |||
var client = new FreeRedis.RedisClient("10.2.1.21:6379,password=1178661552398188544,defaultDatabase=0"); | |||
var res = new Dictionary<string, string>(); | |||
for (int i = 1; i <= 28; i++) | |||
{ | |||
var str = "ns=2;WFZ.Device1.A" + i; | |||
var value = client.Get<string>(str); | |||
if (!string.IsNullOrEmpty(value)&&i!=4) | |||
{ | |||
if (value.Length>=4) | |||
{ | |||
value = value.Substring(0, 2); | |||
} | |||
} | |||
res.Add("Device1.A" + i, value); | |||
} | |||
for (int i = 1; i <=31; i++) | |||
{ | |||
var str = "ns=2;WFZ.Device2.A" + i; | |||
var value = client.Get<string>(str); | |||
if (!string.IsNullOrEmpty(value) ) | |||
{ | |||
if (value.Length >= 4) | |||
{ | |||
value = value.Substring(0, 2); | |||
} | |||
} | |||
res.Add("Device2.A" + i, value); | |||
} | |||
for (int i = 1; i <=7; i++) | |||
{ | |||
var str = "ns=2;WFZ.Device3.A" + i; | |||
var value = client.Get<string>(str); | |||
res.Add("Device3.A" + i, value); | |||
} | |||
for (int i = 1; i <= 1; i++) | |||
{ | |||
var str = "ns=2;WFZ.Device4.A" + i; | |||
var value = client.Get<string>(str); | |||
res.Add("Device4.A" + i, value); | |||
} | |||
return res; | |||
} | |||
catch (Exception e) | |||
{ | |||
var res = new Dictionary<string, string>(); | |||
return res; | |||
} | |||
} | |||
[HttpGet] | |||
[AllowAnonymous] | |||
public async Task<List<List<string>>> GetLogsAsync() | |||
{ | |||
var result = new List<List<string>>(); | |||
var entity = await KepDb.Queryable<AlarmLog>().Where(x=>x.CreateTime.Date==DateTime.Now.Date).ToListAsync(); | |||
foreach (var item in entity) | |||
{ | |||
var data = new List<string>(); | |||
var thisData = new object(); | |||
thisData = item.GetType().GetProperty("Name").GetValue(item, null); | |||
data.Add(thisData == null ? "" : thisData.ToString()); | |||
thisData = item.GetType().GetProperty("ValueStr").GetValue(item, null); | |||
data.Add(thisData == null ? "" : thisData.ToString()); | |||
thisData = item.GetType().GetProperty("CreateTime").GetValue(item, null); | |||
data.Add(thisData == null ? "" : thisData.ToString()); | |||
result.Add(data); | |||
} | |||
return result; | |||
} | |||
} | |||
} |
@@ -55,7 +55,7 @@ | |||
_httpContextAccessor.HttpContext.SigninToSwagger(accessToken); | |||
// 生成刷新Token令牌 | |||
var refreshToken = | |||
JWTEncryption.GenerateRefreshToken(accessToken, 25); | |||
JWTEncryption.GenerateRefreshToken(accessToken, int.MaxValue); | |||
_httpContextAccessor.HttpContext.Response.Headers["access-token"] = accessToken; | |||
// 设置刷新Token令牌 | |||
@@ -22,13 +22,14 @@ namespace BPA.MES.Base.Core | |||
//如果是跨服务器分库,也需要动态配置的,因为库的IP会变 | |||
//参考业务库用法 | |||
string configId = "configId"; | |||
var dbs = App.GetConfig<List<ConnectionConfig>>("ConnectionConfigs")[0]; | |||
if (!Db.IsAnyConnection(configId)) | |||
{ //用非默认ConfigId进行测试 | |||
//添加业务库只在当前上下文有效(原理:SqlSugarScope模式入门文档去看) | |||
Db.AddConnection(new ConnectionConfig() | |||
{ | |||
ConfigId = configId, | |||
ConnectionString = "server=10.2.1.254;Database=kepserver_data;Uid=root;Pwd=BapAdmin123456.;Allow Zero Datetime=True;Convert Zero Datetime=True;", | |||
ConnectionString = dbs.ConnectionString, | |||
DbType = DbType.MySql, | |||
IsAutoCloseConnection = true, | |||
InitKeyType = InitKeyType.Attribute | |||
@@ -87,6 +87,7 @@ public class Startup : AppStartup | |||
services.AddControllers() | |||
.AddInjectWithUnifyResult(); | |||
} | |||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) | |||
@@ -5,5 +5,6 @@ | |||
</PropertyGroup> | |||
<PropertyGroup> | |||
<ActiveDebugProfile>BPA.MES.Base.Web.Entry</ActiveDebugProfile> | |||
<NameOfLastUsedPublishProfile>D:\Work\WFZ.MES\backend\BPA.MES.Base.Web.Entry\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,17 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- | |||
https://go.microsoft.com/fwlink/?LinkID=208121. | |||
--> | |||
<Project> | |||
<PropertyGroup> | |||
<DeleteExistingFiles>false</DeleteExistingFiles> | |||
<ExcludeApp_Data>false</ExcludeApp_Data> | |||
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> | |||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> | |||
<LastUsedPlatform>Any CPU</LastUsedPlatform> | |||
<PublishProvider>FileSystem</PublishProvider> | |||
<PublishUrl>bin\Release\net6.0\publish\</PublishUrl> | |||
<WebPublishMethod>FileSystem</WebPublishMethod> | |||
<_TargetId>Folder</_TargetId> | |||
</PropertyGroup> | |||
</Project> |
@@ -0,0 +1,11 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- | |||
https://go.microsoft.com/fwlink/?LinkID=208121. | |||
--> | |||
<Project> | |||
<PropertyGroup> | |||
<_PublishTargetUrl>D:\Work\WFZ.MES\backend\BPA.MES.Base.Web.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl> | |||
<History>True|2023-11-21T18:21:39.5146403Z;False|2023-11-22T02:20:54.9725149+08:00;True|2023-11-22T02:03:13.7452019+08:00;</History> | |||
<LastFailureDetails /> | |||
</PropertyGroup> | |||
</Project> |
@@ -12,6 +12,10 @@ | |||
"IIS Express": { | |||
"commandName": "IISExpress", | |||
"launchBrowser": true, | |||
"WebApplication1": { | |||
"...": null, | |||
"applicationUrl": "http://localhost:5001" | |||
}, | |||
"environmentVariables": { | |||
"ASPNETCORE_ENVIRONMENT": "Development" | |||
} | |||
@@ -22,7 +26,7 @@ | |||
"environmentVariables": { | |||
"ASPNETCORE_ENVIRONMENT": "Development" | |||
}, | |||
"applicationUrl": "http://localhost:5002", | |||
"applicationUrl": "http://localhost:5001", | |||
"dotnetRunMessages": true | |||
}, | |||
"Docker": { | |||
@@ -10,7 +10,7 @@ | |||
"AllowedHosts": "*", | |||
"ConnectionConfigs": [ | |||
{ | |||
"ConnectionString": "server=10.2.1.254;Port=3306;Database=bpa_pztj_mes;Uid=root;Pwd=BapAdmin123456.;", | |||
"ConnectionString": "server=10.2.1.254;Port=3306;Database=bpa_wfz;Uid=root;Pwd=BapAdmin123456.;", | |||
"DbType": "MySql", | |||
"IsAutoCloseConnection": true | |||
} | |||
@@ -15,7 +15,7 @@ const Settings: LayoutSettings & { | |||
fixedHeader: false, | |||
fixSiderbar: true, | |||
colorWeak: false, | |||
title: "胖子天骄中控管理系统", | |||
title: "中控管理系统", | |||
menu: { | |||
locale: false, // 禁用多语言功能 | |||
}, | |||
@@ -6,11 +6,21 @@ | |||
export default { | |||
dev: { | |||
'/api/': { | |||
target: 'http://localhost:5002', | |||
target: 'http://localhost:5001', | |||
pathRewrite: { | |||
'/api': '/api' | |||
}, | |||
changeOrigin: true, | |||
} | |||
} | |||
}, | |||
pre: { | |||
'/api/': { | |||
target: 'http://localhost:5000', | |||
changeOrigin: true, | |||
secure: false, | |||
pathRewrite: { | |||
'/api': '' | |||
}, | |||
}, | |||
}, | |||
}; |
@@ -1,87 +1,91 @@ | |||
export default [ | |||
{ path: '/user', layout: false, routes: [{ path: '/user/login', component: './user/login' }] }, | |||
{ path: '/', icon: 'SmileOutlined', component: './welcome', name: '数据看板' }, | |||
{ | |||
icon: 'SettingOutlined', | |||
path: '/system', | |||
name: '系统管理', | |||
routes: [ | |||
// { path: '/system/account', name: '账号管理', component: './system/account' }, | |||
{ path: '/system/user', name: '人员管理', component: './system/user' }, | |||
{ path: '/system/role', name: '角色管理', component: './system/role' }, | |||
{ path: '/system/module', name: '模块管理', component: './system/module' }, | |||
{ path: '/system/authTemplate', name: '权限管理', component: './system/authTemplate' }, | |||
], | |||
}, | |||
{ | |||
path: '/wmx', icon: 'SettingOutlined', name: '设备产品管理', | |||
routes: [{ | |||
name: '产品管理', | |||
path: '/wmx/deviceProduct', | |||
component: './deviceProductInfo/index', | |||
}, | |||
// { path: '/', icon: 'SmileOutlined', component: './welcome', name: '数据看板' }, | |||
// { | |||
// icon: 'SettingOutlined', | |||
// path: '/system', | |||
// name: '系统管理', | |||
// routes: [ | |||
// // { path: '/system/account', name: '账号管理', component: './system/account' }, | |||
// { path: '/system/user', name: '人员管理', component: './system/user' }, | |||
// { path: '/system/role', name: '角色管理', component: './system/role' }, | |||
// { path: '/system/module', name: '模块管理', component: './system/module' }, | |||
// { path: '/system/authTemplate', name: '权限管理', component: './system/authTemplate' }, | |||
// ], | |||
// }, | |||
// { | |||
// path: '/wmx', icon: 'SettingOutlined', name: '设备产品管理', | |||
// routes: [{ | |||
// name: '产品管理', | |||
// path: '/wmx/deviceProduct', | |||
// component: './deviceProductInfo/index', | |||
// }, | |||
] | |||
}, | |||
// ] | |||
// }, | |||
{ | |||
path: '/kep', icon: 'SettingOutlined', name: '大屏数据', | |||
routes: [{ | |||
routes: [ { | |||
name: '数据看板', | |||
path: '/kep', | |||
component: './kep', | |||
path: '/kep/datav', | |||
component: './kep/datav', | |||
}, | |||
] | |||
}, | |||
{ | |||
path: '/base', icon: 'SettingOutlined', name: '基础数据管理', | |||
routes: [{ path: '/base/deviceinfo', name: '设备管理', component: './deviceInfo/index' }, | |||
{ path: '/base/stock', name: '料仓管理', component: './stock/index' }, | |||
{ path: '/base/materials', name: '原料管理', component: './materials/index' }, | |||
{ path: '/base/bucket', name: '桶管理', component: './bucket/index' }, | |||
{ path: '/base/final', name: '成品管理', component: './final/index' }, | |||
{ path: '/base/dict',name:'数据字典',component:'./dict/index'} | |||
{ | |||
name: '报警限制', | |||
path: '/kep/alarmLimit', | |||
component: './kep/alarmLimit', | |||
} | |||
] | |||
}, | |||
// { | |||
// path: '/base', icon: 'SettingOutlined', name: '基础数据管理', | |||
// routes: [{ path: '/base/deviceinfo', name: '设备管理', component: './deviceInfo/index' }, | |||
// { path: '/base/stock', name: '料仓管理', component: './stock/index' }, | |||
// { path: '/base/materials', name: '原料管理', component: './materials/index' }, | |||
// { path: '/base/bucket', name: '桶管理', component: './bucket/index' }, | |||
// { path: '/base/final', name: '成品管理', component: './final/index' }, | |||
// { path: '/base/dict',name:'数据字典',component:'./dict/index'} | |||
// ] | |||
// }, | |||
{ | |||
path: '/line', icon: 'SettingOutlined', name: '产线管理', | |||
routes: [ | |||
{ path: '/line/manufacturing', name: '产线设备管理', component: './manufacturing/index' }, | |||
] | |||
}, | |||
{ | |||
path: '/recipeCraft', icon: 'SettingOutlined', name: '配方工艺管理', | |||
routes: [ | |||
{ path: '/recipeCraft/recipe', name: '配方管理', component: './recipe/index' }, | |||
{ path: '/recipeCraft/pot', name: '炒锅工艺', component: './craftInfo/pot' } | |||
] | |||
}, | |||
{ path: '/work', icon: 'SettingOutlined', name: '工单管理', component: './workInfo/index' }, | |||
{ | |||
path: '/data', icon: 'SettingOutlined', name: '数据服务', | |||
routes: [ | |||
{ path: '/data/userlog', name: '操作日志', component: './logs/userlog' }, | |||
{ path: '/data/runlog', name: '运行日志', component: './logs/runlog' }, | |||
{ path: '/data/alarmlog', name: '报警日志', component: './logs/alarmlog' }, | |||
{ path: '/data/programlog', name: '系统日志', component: './logs/programlog' } | |||
] | |||
}, | |||
{ | |||
path:'/agv',icon:'SettingOutlined',name:'agv管理', | |||
routes:[ | |||
{path:'/agv/agvbasic',name:'agv基础数据',component:'./agvbasic/index'}, | |||
{path:'/agv/agvline',name:'agv线路管理',component:'./agvline/index'} | |||
] | |||
}, | |||
{ path: '/order', icon: 'SettingOutlined', name: '订单管理', component: './order/index' }, | |||
{ | |||
path: '/report', icon: 'SettingOutlined', name: '统计报表', | |||
routes: [ | |||
{ path: '/report/product', name: '成品统计', component: './report/product' }, | |||
{ path: '/report/material', name: '原料统计', component: './report/material' }, | |||
] | |||
}, | |||
// { | |||
// path: '/line', icon: 'SettingOutlined', name: '产线管理', | |||
// routes: [ | |||
// { path: '/line/manufacturing', name: '产线设备管理', component: './manufacturing/index' }, | |||
// ] | |||
// }, | |||
// { | |||
// path: '/recipeCraft', icon: 'SettingOutlined', name: '配方工艺管理', | |||
// routes: [ | |||
// { path: '/recipeCraft/recipe', name: '配方管理', component: './recipe/index' }, | |||
// { path: '/recipeCraft/pot', name: '炒锅工艺', component: './craftInfo/pot' } | |||
// ] | |||
// }, | |||
// { path: '/work', icon: 'SettingOutlined', name: '工单管理', component: './workInfo/index' }, | |||
// { | |||
// path: '/data', icon: 'SettingOutlined', name: '数据服务', | |||
// routes: [ | |||
// { path: '/data/userlog', name: '操作日志', component: './logs/userlog' }, | |||
// { path: '/data/runlog', name: '运行日志', component: './logs/runlog' }, | |||
// { path: '/data/alarmlog', name: '报警日志', component: './logs/alarmlog' }, | |||
// { path: '/data/programlog', name: '系统日志', component: './logs/programlog' } | |||
// ] | |||
// }, | |||
// { | |||
// path:'/agv',icon:'SettingOutlined',name:'agv管理', | |||
// routes:[ | |||
// {path:'/agv/agvbasic',name:'agv基础数据',component:'./agvbasic/index'}, | |||
// {path:'/agv/agvline',name:'agv线路管理',component:'./agvline/index'} | |||
// ] | |||
// }, | |||
// { path: '/order', icon: 'SettingOutlined', name: '订单管理', component: './order/index' }, | |||
// { | |||
// path: '/report', icon: 'SettingOutlined', name: '统计报表', | |||
// routes: [ | |||
// { path: '/report/product', name: '成品统计', component: './report/product' }, | |||
// { path: '/report/material', name: '原料统计', component: './report/material' }, | |||
// ] | |||
// }, | |||
{ path: '*', layout: false, component: './404' }, | |||
]; |
@@ -6,6 +6,6 @@ | |||
</head> | |||
<body> | |||
<div id="root"></div> | |||
<script src="/umi.eb20ece1.js"></script> | |||
<script src="/umi.21356be0.js"></script> | |||
</body></html> |
@@ -1 +0,0 @@ | |||
.qrcodebox{display:flex;flex-direction:column;text-align:center;align-items:center}.btn1{display:block} |
@@ -1 +0,0 @@ | |||
.box .rowBgColor{background-color:#cfd0d1}.box .ant-table-tbody>tr.ant-table-row:hover>td{background:none!important} |
@@ -1 +0,0 @@ | |||
.sss{color:red} |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[522],{90503:function(A,s,d){d.d(s,{DH:function(){return c},Xk:function(){return p},n5:function(){return P},xu:function(){return g}});var f=d(97857),r=d.n(f),t=d(12578),p={Add:function(e){return(0,t.request)("/api/alarmlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/alarmlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/alarmlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/alarmlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/alarmlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/alarmlog/pagedlist",{method:"POST",data:r()({},e)})}},c={Add:function(e){return(0,t.request)("/api/programlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/programlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/programlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/programlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/programlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/programlog/pagedlist",{method:"POST",data:r()({},e)})}},P={Add:function(e){return(0,t.request)("/api/userlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/userlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/userlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/userlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/userlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/userlog/pagedlist",{method:"POST",data:r()({},e)})}},g={Add:function(e){return(0,t.request)("/api/runlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/runlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/runlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/runlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/runlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/runlog/pagedlist",{method:"POST",data:r()({},e)})}}},48350:function(A,s,d){d.r(s);var f=d(15009),r=d.n(f),t=d(99289),p=d.n(t),c=d(5574),P=d.n(c),g=d(67286),a=d(15513),e=d(71577),i=d(45360),E=d(67294),T=d(90503),_=d(85893);s.default=function(){var b=(0,E.useState)("table"),M=P()(b,2),D=M[0],O=M[1],h=(0,E.useRef)(),S=(0,E.useRef)(),L=function(){var n,o;(n=h.current)===null||n===void 0||n.resetFields(),(o=S.current)===null||o===void 0||o.reload()},R=[{title:"\u4E3B\u952E",dataIndex:"id",hideInForm:!0,search:!1},{title:"\u8BBE\u5907\u540D\u79F0",dataIndex:"deviceName",ellipsis:!0},{title:"\u62A5\u8B66\u7B49\u7EA7",dataIndex:"grade",ellipsis:!0},{title:"\u62A5\u8B66\u503C",dataIndex:"value",search:!1},{title:"\u62A5\u8B66\u4FE1\u606F",dataIndex:"msgInfo",search:!1}];return(0,_.jsx)(_.Fragment,{children:(0,_.jsxs)(g.Z,{children:[D==="form"?(0,_.jsx)(e.ZP,{type:"link",onClick:function(){var n;(n=h.current)===null||n===void 0||n.resetFields(),O("table")},children:"\u2B05\u8FD4\u56DE"}):"",(0,_.jsx)(a.Z,{columns:R,type:D,formRef:h,actionRef:S,onSubmit:function(n){console.log(n),D==="form"&&(n.id?T.Xk.Update(n).then(function(o){o.statusCode===200?(i.ZP.info("\u66F4\u65B0\u6210\u529F!"),O("table"),L()):i.ZP.error(o.errors)}):T.Xk.Add(n).then(function(o){o.statusCode===200?(i.ZP.info("\u65B0\u589E\u6210\u529F!"),O("table"),L()):i.ZP.error(o.errors)}))},request:p()(r()().mark(function l(){var n,o,m,v=arguments;return r()().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return n=v.length>0&&v[0]!==void 0?v[0]:{},o={pageIndex:n.current||1,pageSize:n.pageSize||10,msgInfo:n.msgInfo,value:n.value,grade:n.grade,deviceName:n.deviceName},u.next=4,T.Xk.PagedList(o);case 4:if(m=u.sent,m.statusCode!==200){u.next=9;break}return u.abrupt("return",{data:m.data.items,success:!0,total:m.data.total});case 9:return u.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return u.stop()}},l)})),pagination:{pageSize:5},rowKey:"id",dateFormatter:"string",headerTitle:"\u5217\u8868",toolBarRender:!1})]})})}}}]); |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[309],{90503:function(A,s,n){n.d(s,{DH:function(){return P},Xk:function(){return p},n5:function(){return g},xu:function(){return c}});var f=n(97857),r=n.n(f),t=n(12578),p={Add:function(e){return(0,t.request)("/api/alarmlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/alarmlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/alarmlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/alarmlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/alarmlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/alarmlog/pagedlist",{method:"POST",data:r()({},e)})}},P={Add:function(e){return(0,t.request)("/api/programlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/programlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/programlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/programlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/programlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/programlog/pagedlist",{method:"POST",data:r()({},e)})}},g={Add:function(e){return(0,t.request)("/api/userlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/userlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/userlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/userlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/userlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/userlog/pagedlist",{method:"POST",data:r()({},e)})}},c={Add:function(e){return(0,t.request)("/api/runlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/runlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/runlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/runlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/runlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/runlog/pagedlist",{method:"POST",data:r()({},e)})}}},95690:function(A,s,n){n.r(s);var f=n(15009),r=n.n(f),t=n(99289),p=n.n(t),P=n(5574),g=n.n(P),c=n(67286),a=n(15513),e=n(71577),i=n(45360),E=n(67294),T=n(90503),_=n(85893);s.default=function(){var b=(0,E.useState)("table"),S=g()(b,2),D=S[0],O=S[1],h=(0,E.useRef)(),v=(0,E.useRef)(),L=function(){var o,d;(o=h.current)===null||o===void 0||o.resetFields(),(d=v.current)===null||d===void 0||d.reload()},R=[{title:"\u4E3B\u952E",dataIndex:"id",search:!1},{title:"\u65E5\u5FD7\u7C7B\u522B",dataIndex:"logType"},{title:"\u65E5\u5FD7\u6D88\u606F",dataIndex:"msgInfo"}];return(0,_.jsx)(_.Fragment,{children:(0,_.jsxs)(c.Z,{children:[D==="form"?(0,_.jsx)(e.ZP,{type:"link",onClick:function(){var o;(o=h.current)===null||o===void 0||o.resetFields(),O("table")},children:"\u2B05\u8FD4\u56DE"}):"",(0,_.jsx)(a.Z,{columns:R,type:D,formRef:h,actionRef:v,onSubmit:function(o){console.log(o),D==="form"&&(o.id?T.DH.Update(o).then(function(d){d.statusCode===200?(i.ZP.info("\u66F4\u65B0\u6210\u529F!"),O("table"),L()):i.ZP.error(d.errors)}):T.DH.Add(o).then(function(d){d.statusCode===200?(i.ZP.info("\u65B0\u589E\u6210\u529F!"),O("table"),L()):i.ZP.error(d.errors)}))},request:p()(r()().mark(function l(){var o,d,m,M=arguments;return r()().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return o=M.length>0&&M[0]!==void 0?M[0]:{},d={pageIndex:o.current||1,pageSize:o.pageSize||10,logType:o.logType,msgInfo:o.msgInfo},u.next=4,T.DH.PagedList(d);case 4:if(m=u.sent,m.statusCode!==200){u.next=9;break}return u.abrupt("return",{data:m.data.items,success:!0,total:m.data.total});case 9:return u.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return u.stop()}},l)})),pagination:{pageSize:5},rowKey:"id",dateFormatter:"string",headerTitle:"\u5217\u8868",toolBarRender:!1})]})})}}}]); |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[675],{90503:function(A,s,n){n.d(s,{DH:function(){return P},Xk:function(){return p},n5:function(){return g},xu:function(){return c}});var f=n(97857),r=n.n(f),t=n(12578),p={Add:function(e){return(0,t.request)("/api/alarmlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/alarmlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/alarmlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/alarmlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/alarmlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/alarmlog/pagedlist",{method:"POST",data:r()({},e)})}},P={Add:function(e){return(0,t.request)("/api/programlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/programlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/programlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/programlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/programlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/programlog/pagedlist",{method:"POST",data:r()({},e)})}},g={Add:function(e){return(0,t.request)("/api/userlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/userlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/userlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/userlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/userlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/userlog/pagedlist",{method:"POST",data:r()({},e)})}},c={Add:function(e){return(0,t.request)("/api/runlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/runlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/runlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/runlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/runlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/runlog/pagedlist",{method:"POST",data:r()({},e)})}}},48098:function(A,s,n){n.r(s);var f=n(15009),r=n.n(f),t=n(99289),p=n.n(t),P=n(5574),g=n.n(P),c=n(67286),a=n(15513),e=n(71577),i=n(45360),E=n(67294),T=n(90503),_=n(85893);s.default=function(){var b=(0,E.useState)("table"),S=g()(b,2),D=S[0],O=S[1],h=(0,E.useRef)(),v=(0,E.useRef)(),L=function(){var o,d;(o=h.current)===null||o===void 0||o.resetFields(),(d=v.current)===null||d===void 0||d.reload()},R=[{title:"\u4E3B\u952E",dataIndex:"id",search:!1},{title:"\u65E5\u5FD7\u7C7B\u522B",dataIndex:"logType"},{title:"\u65E5\u5FD7\u6D88\u606F",dataIndex:"msgInfo"}];return(0,_.jsx)(_.Fragment,{children:(0,_.jsxs)(c.Z,{children:[D==="form"?(0,_.jsx)(e.ZP,{type:"link",onClick:function(){var o;(o=h.current)===null||o===void 0||o.resetFields(),O("table")},children:"\u2B05\u8FD4\u56DE"}):"",(0,_.jsx)(a.Z,{columns:R,type:D,formRef:h,actionRef:v,onSubmit:function(o){console.log(o),D==="form"&&(o.id?T.xu.Update(o).then(function(d){d.statusCode===200?(i.ZP.info("\u66F4\u65B0\u6210\u529F!"),O("table"),L()):i.ZP.error(d.errors)}):T.xu.Add(o).then(function(d){d.statusCode===200?(i.ZP.info("\u65B0\u589E\u6210\u529F!"),O("table"),L()):i.ZP.error(d.errors)}))},request:p()(r()().mark(function l(){var o,d,m,M=arguments;return r()().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return o=M.length>0&&M[0]!==void 0?M[0]:{},d={pageIndex:o.current||1,pageSize:o.pageSize||10,logType:o.logType,msgInfo:o.msgInfo},u.next=4,T.xu.PagedList(d);case 4:if(m=u.sent,m.statusCode!==200){u.next=9;break}return u.abrupt("return",{data:m.data.items,success:!0,total:m.data.total});case 9:return u.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return u.stop()}},l)})),pagination:{pageSize:5},rowKey:"id",dateFormatter:"string",headerTitle:"\u5217\u8868",toolBarRender:!1})]})})}}}]); |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[464],{90503:function(A,_,n){n.d(_,{DH:function(){return P},Xk:function(){return p},n5:function(){return c},xu:function(){return g}});var f=n(97857),r=n.n(f),t=n(12578),p={Add:function(e){return(0,t.request)("/api/alarmlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/alarmlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/alarmlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/alarmlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/alarmlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/alarmlog/pagedlist",{method:"POST",data:r()({},e)})}},P={Add:function(e){return(0,t.request)("/api/programlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/programlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/programlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/programlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/programlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/programlog/pagedlist",{method:"POST",data:r()({},e)})}},c={Add:function(e){return(0,t.request)("/api/userlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/userlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/userlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/userlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/userlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/userlog/pagedlist",{method:"POST",data:r()({},e)})}},g={Add:function(e){return(0,t.request)("/api/runlog/add",{method:"POST",data:r()({},e)})},Del:function(e){return(0,t.request)("/api/runlog/del",{method:"POST",data:r()({},e)})},Update:function(e){return(0,t.request)("/api/runlog/update",{method:"POST",data:r()({},e)})},Detail:function(e){return(0,t.request)("/api/runlog/detail?id=".concat(e),{method:"GET"})},List:function(e){return(0,t.request)("/api/runlog/list",{method:"POST",data:r()({},e)})},PagedList:function(e){return(0,t.request)("/api/runlog/pagedlist",{method:"POST",data:r()({},e)})}}},46730:function(A,_,n){n.r(_);var f=n(15009),r=n.n(f),t=n(99289),p=n.n(t),P=n(5574),c=n.n(P),g=n(67286),a=n(15513),e=n(71577),i=n(45360),E=n(67294),T=n(90503),s=n(85893);_.default=function(){var b=(0,E.useState)("table"),S=c()(b,2),D=S[0],O=S[1],h=(0,E.useRef)(),v=(0,E.useRef)(),L=function(){var d,o;(d=h.current)===null||d===void 0||d.resetFields(),(o=v.current)===null||o===void 0||o.reload()},R=[{title:"\u4E3B\u952E",dataIndex:"id",hideInForm:!0,search:!1},{title:"\u6743\u9650",dataIndex:"permission",ellipsis:!0,search:!1},{title:"\u7528\u6237\u540D",dataIndex:"userName"},{title:"\u65E5\u5FD7\u6D88\u606F",dataIndex:"msgInfo",width:120}];return(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)(g.Z,{children:[D==="form"?(0,s.jsx)(e.ZP,{type:"link",onClick:function(){var d;(d=h.current)===null||d===void 0||d.resetFields(),O("table")},children:"\u2B05\u8FD4\u56DE"}):"",(0,s.jsx)(a.Z,{columns:R,type:D,formRef:h,actionRef:v,onSubmit:function(d){console.log(d),D==="form"&&(d.id?T.n5.Update(d).then(function(o){o.statusCode===200?(i.ZP.info("\u66F4\u65B0\u6210\u529F!"),O("table"),L()):i.ZP.error(o.errors)}):T.n5.Add(d).then(function(o){o.statusCode===200?(i.ZP.info("\u65B0\u589E\u6210\u529F!"),O("table"),L()):i.ZP.error(o.errors)}))},request:p()(r()().mark(function l(){var d,o,m,M=arguments;return r()().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return d=M.length>0&&M[0]!==void 0?M[0]:{},o={pageIndex:d.current||1,pageSize:d.pageSize||10,userName:d.userName,msgInfo:d.msgInfo},u.next=4,T.n5.PagedList(o);case 4:if(m=u.sent,m.statusCode!==200){u.next=9;break}return u.abrupt("return",{data:m.data.items,success:!0,total:m.data.total});case 9:return u.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return u.stop()}},l)})),pagination:{pageSize:5},rowKey:"id",dateFormatter:"string",headerTitle:"\u5217\u8868",toolBarRender:!1})]})})}}}]); |
@@ -1 +0,0 @@ | |||
.tag___uiPjc{height:100%;width:100%}.tag_item___gsaqa{padding:0 5px 0 20px;height:72px;position:relative;cursor:pointer;display:flex;align-items:center}.tag_item_active___IY6iJ{position:absolute;width:3px;height:72px;left:0;top:0;background-color:#13c2c2}.tag_item_activeItem___aLzBU{background-color:#f7f8fa}.tag_item_editicon___qJMP7{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center} |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[496],{76704:function(P,r,e){var u=e(97857),a=e.n(u),d=e(12578);r.Z={PagedList:function(n){return(0,d.request)("/api/report/getproductreport",{method:"POST",data:a()({},n)})},PagedMaterialList:function(n){return(0,d.request)("/api/report/getmaterialsreport",{method:"POST",data:a()({},n)})}}},7780:function(P,r,e){e.r(r);var u=e(15009),a=e.n(u),d=e(99289),s=e.n(d),n=e(67294),c=e(71577),p=e(15513),T=e(76704),l=e(85893);r.default=function(){var M=(0,n.useRef)(),f=[{title:"materialId",dataIndex:"materialId",hideInSearch:!0,hideInTable:!0,align:"center"},{title:"\u6210\u54C1\u540D\u79F0",dataIndex:"materialName",align:"center"},{title:"\u751F\u4EA7\u6570\u91CF",dataIndex:"count",hideInSearch:!0,align:"center"},{title:"\u751F\u4EA7\u65F6\u95F4",dataIndex:"dateTime",valueType:"dateRange",hideInTable:!0,align:"center"}];return(0,l.jsx)(p.Z,{columns:f,actionRef:M,cardBordered:!0,request:s()(a()().mark(function m(){var t,E,o,i=arguments;return a()().wrap(function(_){for(;;)switch(_.prev=_.next){case 0:return t=i.length>0&&i[0]!==void 0?i[0]:{},E={endTime:t.dateTime?t.dateTime[1]:void 0,startTime:t.dateTime?t.dateTime[0]:void 0,productName:t.productName||""},_.next=4,T.Z.PagedMaterialList(E);case 4:if(o=_.sent,o.statusCode!==200){_.next=9;break}return _.abrupt("return",{data:o.data,success:!0,total:1});case 9:return _.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return _.stop()}},m)})),rowKey:"productId",pagination:{pageSize:10},dateFormatter:"string",headerTitle:"\u5DE5\u5355\u5217\u8868",toolBarRender:function(){return[(0,l.jsx)(c.ZP,{type:"primary",onClick:function(){},children:"\u65B0\u5EFA\u5DE5\u5355"},"button")]}},"myTable")}}}]); |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[926],{76704:function(P,r,e){var u=e(97857),a=e.n(u),d=e(12578);r.Z={PagedList:function(n){return(0,d.request)("/api/report/getproductreport",{method:"POST",data:a()({},n)})},PagedMaterialList:function(n){return(0,d.request)("/api/report/getmaterialsreport",{method:"POST",data:a()({},n)})}}},47667:function(P,r,e){e.r(r);var u=e(15009),a=e.n(u),d=e(99289),s=e.n(d),n=e(67294),c=e(71577),p=e(15513),T=e(76704),l=e(85893);r.default=function(){var M=(0,n.useRef)(),f=[{title:"productId",dataIndex:"productId",hideInSearch:!0,hideInTable:!0,align:"center"},{title:"\u6210\u54C1\u540D\u79F0",dataIndex:"productName",align:"center"},{title:"\u751F\u4EA7\u6570\u91CF",dataIndex:"count",hideInSearch:!0,align:"center"},{title:"\u751F\u4EA7\u65F6\u95F4",dataIndex:"dateTime",valueType:"dateRange",hideInTable:!0,align:"center"}];return(0,l.jsx)(p.Z,{columns:f,actionRef:M,cardBordered:!0,request:s()(a()().mark(function m(){var t,E,o,i=arguments;return a()().wrap(function(_){for(;;)switch(_.prev=_.next){case 0:return t=i.length>0&&i[0]!==void 0?i[0]:{},E={endTime:t.dateTime?t.dateTime[1]:void 0,startTime:t.dateTime?t.dateTime[0]:void 0,productName:t.productName||""},_.next=4,T.Z.PagedList(E);case 4:if(o=_.sent,o.statusCode!==200){_.next=9;break}return _.abrupt("return",{data:o.data,success:!0,total:1});case 9:return _.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return _.stop()}},m)})),rowKey:"productId",pagination:{pageSize:10},dateFormatter:"string",headerTitle:"\u5DE5\u5355\u5217\u8868",toolBarRender:function(){return[(0,l.jsx)(c.ZP,{type:"primary",onClick:function(){},children:"\u65B0\u5EFA\u5DE5\u5355"},"button")]}},"myTable")}}}]); |
@@ -1 +0,0 @@ | |||
"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[24],{56160:function(b,M,e){var h=e(97857),_=e.n(h),E=e(12578);M.Z={CreateRole:function(u){return(0,E.request)("/api/authorize/AddRole",{method:"POST",data:_()({},u)})},DeleteRole:function(u){return(0,E.request)("/api/authorize/RemoveRole/".concat(u),{method:"GET"})},ModifyRole:function(u){return(0,E.request)("/api/authorize/EditRole",{method:"POST",data:_()({},u)})},GetRoleList:function(){return(0,E.request)("/api/authorize/GetRoleList",{method:"GET"})},GetRolePagedList:function(u){return(0,E.request)("/api/authorize/QueryRole",{method:"POST",data:_()({},u)})}}},36056:function(b,M,e){e.r(M);var h=e(15009),_=e.n(h),E=e(99289),d=e.n(E),u=e(5574),v=e.n(u),p=e(67294),f=e(12029),B=e(42075),I=e(86738),c=e(45360),C=e(71577),L=e(5914),O=e(12096),D=e(56160),g=e(51042),K=e(15513),r=e(85893),S=function(){var y=(0,p.useState)({id:"",name:"",description:""}),j=v()(y,2),F=j[0],Z=j[1],U=(0,p.useState)(!1),A=v()(U,2),W=A[0],P=A[1],x=f.Z.useForm(),G=v()(x,1),T=G[0],z=[{title:"\u89D2\u8272\u540D\u79F0",dataIndex:"name",key:"name"},{title:"\u89D2\u8272\u63CF\u8FF0",dataIndex:"description",key:"description",search:!1},{title:"\u64CD\u4F5C",search:!1,key:"action",render:function(t,n){return(0,r.jsxs)(B.Z,{size:"middle",children:[(0,r.jsx)("a",{onClick:function(){return $(n)},children:"\u7F16\u8F91"}),(0,r.jsx)(I.Z,{title:"\u786E\u5B9A\u8981\u5220\u9664\u6B64\u89D2\u8272\u5417\uFF1F",onConfirm:function(){return J(n)},okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:(0,r.jsx)("a",{children:"\u5220\u9664"})})]})}}],$=function(t){var n;Z(t),T.setFieldsValue(t),P(!0),(n=R.current)===null||n===void 0||n.reload()},J=function(){var o=d()(_()().mark(function t(n){var s,m;return _()().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return l.next=2,D.Z.DeleteRole(n.id);case 2:s=l.sent,s.statusCode===200?(c.ZP.success("\u5220\u9664\u6210\u529F"),(m=R.current)===null||m===void 0||m.reload()):c.ZP.error(s.msg||"\u5220\u9664\u5931\u8D25");case 4:case"end":return l.stop()}},t)}));return function(n){return o.apply(this,arguments)}}(),V=function(){var o=d()(_()().mark(function t(n){var s,m,a,l;return _()().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(!n.id){i.next=7;break}return i.next=3,D.Z.ModifyRole(n);case 3:s=i.sent,s.statusCode===200?(c.ZP.success("\u66F4\u65B0\u89D2\u8272\u4FE1\u606F\u6210\u529F"),P(!1),(m=R.current)===null||m===void 0||m.reload()):c.ZP.error(s.msg||"\u66F4\u65B0\u89D2\u8272\u4FE1\u606F\u5931\u8D25"),i.next=11;break;case 7:return i.next=9,D.Z.CreateRole(n);case 9:a=i.sent,a.statusCode===200?(c.ZP.success("\u521B\u5EFA\u89D2\u8272\u6210\u529F"),P(!1),(l=R.current)===null||l===void 0||l.reload()):c.ZP.error(a.msg||"\u521B\u5EFA\u89D2\u8272\u5931\u8D25");case 11:case"end":return i.stop()}},t)}));return function(n){return o.apply(this,arguments)}}(),N=function(){Z({id:"",name:"",description:""}),T.resetFields(),P(!0)},R=(0,p.useRef)();return(0,r.jsxs)("div",{children:[(0,r.jsx)(K.Z,{columns:z,actionRef:R,cardBordered:!0,request:d()(_()().mark(function o(){var t,n,s=arguments;return _()().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return t=s.length>0&&s[0]!==void 0?s[0]:{},a.next=3,D.Z.GetRolePagedList({keyword:t.name,sortName:"",sortByAsc:!1,pageIndex:t.current||1,pageSize:t.pageSize||10});case 3:if(n=a.sent,n.statusCode!==200){a.next=8;break}return a.abrupt("return",{data:n.data.items,success:!0,total:n.data.total});case 8:return c.ZP.error(n.errors||"\u83B7\u53D6\u89D2\u8272\u5217\u8868\u5931\u8D25"),a.abrupt("return",{data:[],success:!1,total:0});case 10:case"end":return a.stop()}},o)})),rowKey:"id",pagination:{pageSize:10},dateFormatter:"string",headerTitle:"\u89D2\u8272\u5217\u8868",toolBarRender:function(){return[(0,r.jsx)(C.ZP,{icon:(0,r.jsx)(g.Z,{}),type:"primary",onClick:N,children:"\u6DFB\u52A0"},"button")]}}),(0,r.jsx)(L.Z,{footer:null,title:F.id===""?"\u6DFB\u52A0\u89D2\u8272":"\u7F16\u8F91\u89D2\u8272",open:W,onCancel:function(){return P(!1)},children:(0,r.jsxs)(f.Z,{name:"basic",form:T,onFinish:V,children:[(0,r.jsx)(f.Z.Item,{label:"id",name:"id",hidden:!0,children:(0,r.jsx)(O.Z,{})}),(0,r.jsx)(f.Z.Item,{label:"\u540D\u79F0",name:"name",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u540D\u79F0\uFF01"}],children:(0,r.jsx)(O.Z,{})}),(0,r.jsx)(f.Z.Item,{label:"\u63CF\u8FF0",name:"description",rules:[{required:!0,message:"\u8BF7\u8F93\u5165\u89D2\u8272\u63CF\u8FF0\uFF01"}],children:(0,r.jsx)(O.Z,{})}),(0,r.jsx)(f.Z.Item,{children:(0,r.jsx)(C.ZP,{type:"primary",htmlType:"submit",children:"\u786E\u5B9A"})})]})})]})};M.default=S}}]); |
@@ -1 +0,0 @@ | |||
.tab_navbar_card___TM3Di{display:flex;align-items:center;box-shadow:0 4px 8px 1px #07111b26;height:100px;border-radius:5px;background-color:#fff}.tab_navbar_active___PLvNu{position:relative;color:#546bf0}.tab_navbar_active___PLvNu:after{position:absolute;content:"";bottom:-10px;left:0;width:70px;height:2px;background-color:#546bf0}.tab_navbar_item___FaQZn{cursor:pointer;margin:0 20px;font-size:18px}.tab_navbar_item___FaQZn:hover{transition:all .3s;color:#546bf0;transform:scale(1.1)}.log_head_card___e4OFg{padding:20px;box-shadow:0 4px 8px 1px #07111b26}.log_head_card_text____MQ82{font-size:18px;font-weight:700;margin-bottom:30px}.log_card_data___Uhh4q{padding:0 40px;display:flex;flex-wrap:wrap;justify-content:space-between}.log_data_pos___M3M6A{text-align:center;margin-bottom:20px}.log_data_number___Fh2Z2{color:#546bf0;font-size:20px;margin-bottom:5px}.log_data_text___ApoMe{font-size:16px;color:#222}.log_list_title___l0YtY{font-size:18px;font-weight:700;margin:20px 0;color:#222}.log_detail_row___B6WKE{display:flex;align-items:center;justify-content:space-between}.log_detail_item___JgTlO{display:flex;align-items:center;flex-grow:1;flex-shrink:0;border:1px solid #dedede;border-bottom:none;height:50px;box-sizing:border-box;font-size:16px}.log_detail_half___bh7yF{width:50%}.log_detail_item___JgTlO:nth-child(2){border-left:none}.log_detail_item_last___w0ouH{border-bottom:1px solid #dedede}.log_detail_title____90Pu{display:flex;align-items:center;flex-shrink:0;background-color:#fafafa;width:100px;color:#222;height:100%;border-right:1px solid #dedede;padding-left:10px}.log_detail_content___nhonA{display:flex;align-items:center;padding-left:10px}.tab_navbar_btn___yQEXt{margin-left:auto;margin-right:50px}.person_list___ZO8Fs{display:flex;flex-wrap:wrap;justify-content:space-between;padding:20px 0}.person_list_item___HkHZR{position:relative;height:300px;width:200px;display:flex;flex-direction:column;justify-content:space-around;align-items:center;box-shadow:0 2px 8px #07111b26;background-color:#fff}.person_list_btn___ZGGz9{position:absolute;bottom:10px;right:10px}.person_list_item___HkHZR .item_content___btVdX{width:150px;display:flex;align-items:center;justify-content:flex-start} |
@@ -1 +0,0 @@ | |||
@media screen and (max-width: 480px){.umi-plugin-layout-container{width:100%!important}.umi-plugin-layout-container>*{border-radius:0!important}}.umi-plugin-layout-menu .anticon{margin-right:8px}.umi-plugin-layout-menu .ant-dropdown-menu-item{min-width:160px}.umi-plugin-layout-right{display:flex!important;float:right;height:100%;margin-left:auto;overflow:hidden}.umi-plugin-layout-right .umi-plugin-layout-action{display:flex;align-items:center;height:100%;padding:0 12px;cursor:pointer;transition:all .3s}.umi-plugin-layout-right .umi-plugin-layout-action>i{color:#ffffffd9;vertical-align:middle}.umi-plugin-layout-right .umi-plugin-layout-action:hover{background:rgba(0,0,0,.025)}.umi-plugin-layout-right .umi-plugin-layout-action:global(.opened){background:rgba(0,0,0,.025)}.umi-plugin-layout-right .umi-plugin-layout-search{padding:0 12px}.umi-plugin-layout-right .umi-plugin-layout-search:hover{background:transparent}.umi-plugin-layout-name{margin-left:8px} |
@@ -0,0 +1,48 @@ | |||
import { request } from '@umijs/max'; | |||
export default { | |||
Getdatavalarmlimitpage(params) { | |||
return request('/api/kepdata/getdatavalarmlimitlist', { | |||
method: 'POST', | |||
data: { | |||
...params | |||
} | |||
}); | |||
}, | |||
Adddatavalarmlimit(params) { | |||
return request('/api/kepdata/adddatavalarmlimit', { | |||
method: 'POST', | |||
data: { | |||
...params | |||
} | |||
}); | |||
}, | |||
Updatedatavalarmlimit(params) { | |||
return request('/api/kepdata/updatedatavalarmlimit', { | |||
method: 'POST', | |||
data: { | |||
...params | |||
} | |||
}); | |||
}, | |||
Del(parms) { | |||
return request(`/api/kepdata/deldatavalarmlimitlist/`+parms, { | |||
method: 'POST', | |||
}); | |||
}, | |||
getdatavData() { | |||
return request(`/api/kepdata/getdatavlist`, { | |||
method: 'GET', | |||
}); | |||
}, | |||
getlogs() { | |||
return request(`/api/kepdata/getlogs`, { | |||
method: 'GET', | |||
}); | |||
} | |||
} | |||
@@ -0,0 +1,110 @@ | |||
#data-view { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #030409; | |||
color: #fff; | |||
#dv-full-screen-container { | |||
background-image: url('./img/bg.png'); | |||
box-shadow: 0 0 3px blue; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
.main-header { | |||
background-image: url('./img/top.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ | |||
background-attachment: fixed; | |||
/* 让背景图基于容器大小伸缩 */ | |||
background-size: cover; | |||
height: 50px; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: flex-end; | |||
.mh-left { | |||
font-size: 20px; | |||
color: rgb(1, 134, 187); | |||
a:visited { | |||
color: rgb(1, 134, 187); | |||
} | |||
} | |||
.mh-middle { | |||
font-size: 30px; | |||
} | |||
.mh-left, | |||
.mh-right { | |||
width: 480px; | |||
} | |||
.dateclass{ | |||
font-size: 22px; | |||
text-align: center; | |||
} | |||
} | |||
.main-container { | |||
height: calc(~'100% - 80px'); | |||
.mc-top, | |||
.mc-bottom { | |||
display: flex; | |||
} | |||
.mc-top { | |||
height: 33%; | |||
} | |||
.mc-bottom { | |||
height: 66%; | |||
} | |||
.main-container_dev{ | |||
height: 100%; | |||
width: 100%; | |||
} | |||
.qpj{ | |||
// background-image: url('./img/555.png'); | |||
} | |||
.mc-bottom1{ | |||
width: 75%; | |||
} | |||
.mc-bottom2{ | |||
width: 25%; | |||
} | |||
} | |||
.titlebak{ | |||
background-image: url('./img/title1.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
text-align: center; | |||
} | |||
.main-container_c{ | |||
height: 100%; | |||
// border: 1px red solid; | |||
} | |||
.main-container_s{ | |||
height: 33.3%; | |||
width: 100%; | |||
//border: 1px red solid; | |||
} | |||
.main-container_z{ | |||
height: 33.3%; | |||
width: 100%; | |||
// border: 1px red solid; | |||
} | |||
.main-container_x{ | |||
height: 33.3%; | |||
width: 100%; | |||
//border: 1px red solid; | |||
} | |||
} |
@@ -0,0 +1,791 @@ | |||
import React, { useState, useEffect } from 'react'; | |||
import { Col, Row, Statistic } from 'antd'; | |||
import './index.less' | |||
import { | |||
FullScreenContainer, | |||
Decoration9, | |||
BorderBox10, | |||
BorderBox1, | |||
ScrollBoard, | |||
} from '@jiaminghi/data-view-react' | |||
import Api from "@/api/kepService" | |||
const KepData: React.FC = () => { | |||
const [thisdate, setThisdate] = useState({ timeStr: '' }) | |||
const [dataVData, setDataVData] = useState({ "A1": "AA" }) | |||
const [logData, setLogData] = useState({ | |||
header: ['报警设备', '报警信息', '报警时间'], | |||
rowNum: 5, | |||
headerBGC: "#000724", | |||
oddRowBGC: "#000724", | |||
evenRowBGC: "#000724", | |||
data: [[]] | |||
}) | |||
const initScript = () => { | |||
let script = document.createElement('script') | |||
script.type = 'text/javascript' | |||
script.async = true | |||
script.src = './index.js'//这个代表的是script 的src | |||
document.head.appendChild(script) | |||
} | |||
useEffect(() => { | |||
const id = setInterval(() => { | |||
getdatavData(); | |||
}, 1000 * 5); | |||
return () => { | |||
clearInterval(0); //组件卸载时清除定时器 | |||
}; | |||
}, []) | |||
const getdatavData = async () => { | |||
const response = await Api.getdatavData(); | |||
if (response.statusCode === 200) { | |||
setDataVData(response.data); | |||
} | |||
Api.getlogs().then((r) => { | |||
setLogData({ | |||
header: ['报警设备', '报警信息', '报警时间'], | |||
rowNum: 5, | |||
headerBGC: "#000724", | |||
oddRowBGC: "#000724", | |||
evenRowBGC: "#000724", | |||
data: r.data | |||
}); | |||
}); | |||
} | |||
const style = { width: '5px', height: '45%' } | |||
const style2 = { | |||
width: '120px', | |||
height: '50px', | |||
lineHeight: '50px', | |||
textAlign: 'center', | |||
marginLeft: '200px', | |||
} | |||
function setTimingFn() { | |||
setInterval(() => { | |||
let dateYear = formatTime(new Date(), 'yyyy-MM-dd'); | |||
let dateDay = formatTime(new Date(), 'HH: mm: ss'); | |||
setThisdate({ timeStr: `${dateYear} ${dateDay} ` }); | |||
}, 1000); | |||
} | |||
function formatTime(time: string | number | Date, fmt: string) { | |||
if (!time) return ''; | |||
else { | |||
const date = new Date(time); | |||
const o = { | |||
'M+': date.getMonth() + 1, | |||
'd+': date.getDate(), | |||
'H+': date.getHours(), | |||
'm+': date.getMinutes(), | |||
's+': date.getSeconds(), | |||
'q+': Math.floor((date.getMonth() + 3) / 3), | |||
S: date.getMilliseconds(), | |||
}; | |||
if (/(y+)/.test(fmt)) | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
(date.getFullYear() + '').substr(4 - RegExp.$1.length) | |||
); | |||
for (const k in o) { | |||
if (new RegExp('(' + k + ')').test(fmt)) { | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
RegExp.$1.length === 1 | |||
? o[k] | |||
: ('00' + o[k]).substr(('' + o[k]).length) | |||
); | |||
} | |||
} | |||
return fmt; | |||
} | |||
} | |||
return ( | |||
<div id="data-view"> | |||
<FullScreenContainer> | |||
<div className="main-header"> | |||
<div className="mh-left"> </div> | |||
<div className="mh-middle"> | |||
五芳斋数据大屏 | |||
</div> | |||
<div className="mh-right"> | |||
<div className='dateclass' > | |||
{thisdate.timeStr} | |||
</div> | |||
</div> | |||
</div> | |||
<div className="main-container"> | |||
<div className='main-container_c'> | |||
<div className='main-container_s'> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 1#浸泡间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>限量提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "170px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡机温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡出缓存提升:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>限量提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>防滑板频率频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>脱水称重提升机:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "195px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>伸缩试进料机频率:</span> | |||
<span style={{ fontSize: 18 }}>999</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "180px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>离心电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡出料机频率:</span> | |||
<span style={{ fontSize: 18 }}>999</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>称重提升机预置速度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
{/* <span style={{ fontSize: 18 }}>°C</span> */} | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>称重提升机预置频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1 > | |||
<div style={{ height: "25%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 油炸间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ height: "25%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>一区温度测量值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>二区温度测量值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>二区温度测量值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "25%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>一区温度设定值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>二区温度设定值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>三区温度设定值:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "25%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>刮渣关时间:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>刮渣开时间:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
<BorderBox1> | |||
<div style={{ height: "15%", textAlign: "center" }}> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "94%", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>跨线提升机频率</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "39.2%", textAlign: "center" }}> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>储油暂存罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "170px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>储油暂存罐压力:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>原油罐称重重里:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "14%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 搅拌间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#称重提升机预置重量:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#称重提升机预置重量:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#称重提升机预置次数:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#称重提升机预置次数:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#脱油称重提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#脱油称重提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#伸缩式进料机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#伸缩式进料机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "187px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#离心电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "187px", float: "left", marginLeft: "7px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#离心电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "205px", float: "left", marginLeft: "7px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>主转盘旋转电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
</div> | |||
<div className='main-container_z'> | |||
<BorderBox1> | |||
<img style={{ width: "100%", height: "100%" }} src={require('./img/20231113174659.png')}></img> | |||
</BorderBox1> | |||
</div> | |||
<div className='main-container_x'> | |||
<div style={{ width: "33%", height: "100%", float: "left" }}> | |||
<BorderBox1> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 2#浸泡间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>限量提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "170px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡机温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡出缓存提升:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>限量提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>防滑板频率频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>脱水称重提升机:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "195px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>伸缩试进料机频率:</span> | |||
<span style={{ fontSize: 18 }}>999</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "180px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>离心电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>浸泡出料机频率:</span> | |||
<span style={{ fontSize: 18 }}>999</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "21.2%", textAlign: "center" }}> | |||
<div style={{ width: "290px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>称重提升机预置速度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
{/* <span style={{ fontSize: 18 }}>°C</span> */} | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "290px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>称重提升机预置频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left" }}> | |||
<BorderBox1> | |||
<div style={{ width: '93%', height: '100%', display: "block", margin: " 0 auto", }}> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 报警信息</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<ScrollBoard config={logData} style={{ width: '100%', height: '80%' }} /> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left" }}> | |||
<BorderBox1> | |||
<div style={{ height: "14%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 搅拌间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "180px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>称重输送机预置重量:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "200px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>承重输送机预预置次数:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "210px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>承重输送机预预置次数:</span> | |||
<span style={{ fontSize: 18 }}>100</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>抖料机预置出料秒:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>抖料机预置拌料分:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>投辅料预置停滞秒:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>抖料高位提升机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>抖料称重输送机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>抖料伸缩式进料机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>双向输送机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>风冷输送机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>1#转拌料电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ height: "17.2%", textAlign: "center" }}> | |||
<div style={{ width: "190px", float: "left", marginLeft: "20px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>2#转拌料电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>3#转拌料电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ width: "190px", float: "left", marginLeft: "10px" }}> | |||
<BorderBox10 > | |||
<div> | |||
<span style={{ fontSize: 12, color: "#50B15D" }}>4#转拌料电机频率:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</FullScreenContainer> | |||
</div> | |||
) | |||
} | |||
export default KepData; |
@@ -0,0 +1,93 @@ | |||
#data-view { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #030409; | |||
color: #fff; | |||
#dv-full-screen-container { | |||
background-image: url('./img/bg.png'); | |||
box-shadow: 0 0 3px blue; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
.main-header { | |||
background-image: url('./img/top.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ | |||
background-attachment: fixed; | |||
/* 让背景图基于容器大小伸缩 */ | |||
background-size: cover; | |||
height: 50px; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: flex-end; | |||
.mh-left { | |||
font-size: 20px; | |||
color: rgb(1, 134, 187); | |||
a:visited { | |||
color: rgb(1, 134, 187); | |||
} | |||
} | |||
.mh-middle { | |||
font-size: 30px; | |||
} | |||
.mh-left, | |||
.mh-right { | |||
width: 480px; | |||
} | |||
.dateclass{ | |||
font-size: 22px; | |||
text-align: center; | |||
} | |||
} | |||
.main-container { | |||
height: calc(~'100% - 80px'); | |||
.mc-top, | |||
.mc-bottom { | |||
display: flex; | |||
} | |||
.mc-top { | |||
height: 33%; | |||
} | |||
.mc-bottom { | |||
height: 66%; | |||
} | |||
.main-container_dev{ | |||
height: 100%; | |||
width: 25%; | |||
} | |||
.mc-bottom1{ | |||
width: 75%; | |||
} | |||
.mc-bottom2{ | |||
width: 25%; | |||
} | |||
} | |||
.main-container_dev1{ | |||
width: 33.3%; | |||
float: left; | |||
} | |||
.main-container_dev2{ | |||
float: left; | |||
} | |||
.titlebak{ | |||
background-image: url('./img/title1.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
text-align: center; | |||
} | |||
} |
@@ -0,0 +1,463 @@ | |||
import React, { useState, useEffect } from 'react'; | |||
import { Col, Row, Statistic } from 'antd'; | |||
import './index.less' | |||
import { | |||
FullScreenContainer, | |||
ScrollBoard, | |||
Decoration3, | |||
BorderBox12, | |||
Decoration4, | |||
} from '@jiaminghi/data-view-react' | |||
const KepData: React.FC = () => { | |||
const [thisdate, setThisdate] = useState({ timeStr: '' }) | |||
useEffect(() => { | |||
setTimingFn(); | |||
}, []) | |||
const style = { width: '5px', height: '45%' } | |||
const style2 = { | |||
width: '120px', | |||
height: '50px', | |||
lineHeight: '50px', | |||
textAlign: 'center', | |||
marginLeft: '200px', | |||
} | |||
function setTimingFn() { | |||
setInterval(() => { | |||
let dateYear = formatTime(new Date(), 'yyyy-MM-dd'); | |||
let dateDay = formatTime(new Date(), 'HH: mm: ss'); | |||
setThisdate({ timeStr: `${dateYear} ${dateDay} ` }); | |||
}, 1000); | |||
} | |||
function formatTime(time: string | number | Date, fmt: string) { | |||
if (!time) return ''; | |||
else { | |||
const date = new Date(time); | |||
const o = { | |||
'M+': date.getMonth() + 1, | |||
'd+': date.getDate(), | |||
'H+': date.getHours(), | |||
'm+': date.getMinutes(), | |||
's+': date.getSeconds(), | |||
'q+': Math.floor((date.getMonth() + 3) / 3), | |||
S: date.getMilliseconds(), | |||
}; | |||
if (/(y+)/.test(fmt)) | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
(date.getFullYear() + '').substr(4 - RegExp.$1.length) | |||
); | |||
for (const k in o) { | |||
if (new RegExp('(' + k + ')').test(fmt)) { | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
RegExp.$1.length === 1 | |||
? o[k] | |||
: ('00' + o[k]).substr(('' + o[k]).length) | |||
); | |||
} | |||
} | |||
return fmt; | |||
} | |||
} | |||
return ( | |||
<div id="data-view"> | |||
<FullScreenContainer> | |||
<div className="main-header"> | |||
<div className="mh-left"> </div> | |||
<div className="mh-middle"> | |||
五芳斋数据大屏 | |||
</div> | |||
<div className="mh-right"> | |||
<div className='dateclass' > | |||
{thisdate.timeStr} | |||
</div> | |||
</div> | |||
</div> | |||
| |||
<div className="main-container"> | |||
<div className="mc-top"> | |||
<BorderBox12 className='main-container_dev'> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 浸泡机数一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span> | |||
{/* <span style={{ color: "red" }}> 冷水罐温度过高</span> */} | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ width: "40%", height: "100%", float: "left", whiteSpace: "nowrap" }} > | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
</div> | |||
<div style={{ width: "60%", height: "100%", float: "left", textAlign: "center" }}> | |||
<img src={require('./img/313x289.png')} style={{ width: "99%", height: "80%", float: "right" }} /> | |||
<h3 style={{ color: "green" }}>运行中</h3> | |||
</div> | |||
</div> | |||
</BorderBox12> | |||
<BorderBox12 className='main-container_dev'> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 浸泡机数一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ width: "40%", height: "100%", float: "left", whiteSpace: "nowrap" }} > | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
</div> | |||
<div style={{ width: "60%", height: "100%", float: "left", textAlign: "center" }}> | |||
<img src={require('./img/313x289.png')} style={{ width: "99%", height: "80%", float: "right" }} /> | |||
<h3 style={{ color: "green" }}>运行中</h3> | |||
</div> | |||
</div> | |||
</BorderBox12> | |||
<BorderBox12 className='main-container_dev'> <div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 浸泡机数一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ width: "40%", height: "100%", float: "left", whiteSpace: "nowrap" }} > | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
</div> | |||
<div style={{ width: "60%", height: "100%", float: "left", textAlign: "center" }}> | |||
<img src={require('./img/313x289.png')} style={{ width: "99%", height: "80%", float: "right" }} /> | |||
<h3 style={{ color: "green" }}>运行中</h3> | |||
</div> | |||
</div></BorderBox12> | |||
<BorderBox12 className='main-container_dev'> <div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 浸泡机数一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ width: "40%", height: "100%", float: "left", whiteSpace: "nowrap" }} > | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "30%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
</div> | |||
<div style={{ width: "60%", height: "100%", float: "left", textAlign: "center" }}> | |||
<img src={require('./img/313x289.png')} style={{ width: "99%", height: "80%", float: "right" }} /> | |||
<h3 style={{ color: "green" }}>运行中</h3> | |||
</div> | |||
</div></BorderBox12> | |||
</div> | |||
<div className="mc-bottom"> | |||
<div className="mc-bottom1"> | |||
<div style={{ height: "50%" }}> | |||
<BorderBox12 className='main-container_dev1'> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 储存罐一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ height: "70%", width: "100%", justifyContent: "center", display: "flex", position: "absolute", textAlign: "center", alignItems: "center" }}> | |||
<div> | |||
<div style={{ float: "left" }}> | |||
<img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ float: "left" }}> | |||
| |||
</div> | |||
<div style={{ float: "left" }}> | |||
{/* <img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> */} | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>液位:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>mm</span> | |||
</div> | |||
</div> | |||
</div> | |||
<img src={require('./img/屏幕截图 20.png')} style={{ height: "100%", width: "100%" }} /> | |||
</div> | |||
</BorderBox12> | |||
<BorderBox12 className='main-container_dev1'> <div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 储存罐一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ height: "70%", width: "100%", justifyContent: "center", display: "flex", position: "absolute", textAlign: "center", alignItems: "center" }}> | |||
<div> | |||
<div style={{ float: "left" }}> | |||
<img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ float: "left" }}> | |||
| |||
</div> | |||
<div style={{ float: "left" }}> | |||
{/* <img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> */} | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>液位:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>mm</span> | |||
</div> | |||
</div> | |||
</div> | |||
<img src={require('./img/屏幕截图 20.png')} style={{ height: "100%", width: "100%" }} /> | |||
</div></BorderBox12> | |||
<BorderBox12 className='main-container_dev1'> <div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 储存罐一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ height: "70%", width: "100%", justifyContent: "center", display: "flex", position: "absolute", textAlign: "center", alignItems: "center" }}> | |||
<div> | |||
<div style={{ float: "left" }}> | |||
<img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ float: "left" }}> | |||
| |||
</div> | |||
<div style={{ float: "left" }}> | |||
{/* <img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> */} | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>液位:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>mm</span> | |||
</div> | |||
</div> | |||
</div> | |||
<img src={require('./img/屏幕截图 20.png')} style={{ height: "100%", width: "100%" }} /> | |||
</div></BorderBox12> | |||
</div> | |||
<div style={{ height: "50%" }}> | |||
<BorderBox12 className='main-container_dev2' style={{ width: "33.3%" }}> <div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 储存罐一</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ height: "70%", width: "100%", justifyContent: "center", display: "flex", position: "absolute", textAlign: "center", alignItems: "center" }}> | |||
<div> | |||
<div style={{ float: "left" }}> | |||
<img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ float: "left" }}> | |||
| |||
</div> | |||
<div style={{ float: "left" }}> | |||
{/* <img style={{ opacity: 1, height: 25 }} src={require('./img/aaaa.png')}></img> */} | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>液位:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>mm</span> | |||
</div> | |||
</div> | |||
</div> | |||
<img src={require('./img/屏幕截图 20.png')} style={{ height: "100%", width: "100%" }} /> | |||
</div></BorderBox12> | |||
<BorderBox12 className='main-container_dev2' style={{ width: "66.6%" }}> | |||
<div style={{ height: "20%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 报警记录</h2> | |||
</div> | |||
{/* <span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> */} | |||
</div> | |||
<div style={{ height: "80%", width: "100%", textAlign: "center" }}> | |||
<div style={{ width: '95%', height: '100%', display: "block", margin: " 0 auto", }}> | |||
<ScrollBoard config={{ | |||
header: ['报警设备', '报警信息', '报警时间'], | |||
headerBGC:"#000724", | |||
oddRowBGC:"#000724", | |||
evenRowBGC:"#000724", | |||
data: [ | |||
['沁泡机', '维度过高', '2023-01-18'], | |||
['传送带', '停止运行', '2023-01-18'] | |||
] | |||
}} style={{ width: '100%', height: '100%' }} /> | |||
</div> | |||
</div> | |||
</BorderBox12> | |||
</div> | |||
</div> | |||
<div className="mc-bottom2"> | |||
<BorderBox12> | |||
<div style={{ height: "15%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 传输带</h2> | |||
</div> | |||
<span style={{ color: "red" }}> 警告:</span><span style={{ color: "red" }}> 冷水罐温度过高</span> | |||
</div> | |||
<div style={{ height: "85%", width: "100%" }}> | |||
<div style={{ width: "50%", float: "left", height: "100%", }}> | |||
<div style={{ height: "30%", width: "100%" }}> | |||
<img style={{ width: "100%", height: "90%" }} src={require('./img/R-C.gif')}></img> | |||
</div> | |||
<div style={{ height: "70%", width: "100%" }}> | |||
<div style={{ height: "20%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "20%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "20%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "20%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
<div style={{ height: "20%" }}> | |||
| |||
<img style={{ opacity: 1, height: 30 }} src={require('./img/aaaa.png')}></img> | |||
<span style={{ fontSize: 15, color: "#50B15D" }}>冷水罐温度:</span> | |||
<span style={{ fontSize: 18 }}>10</span> | |||
<span style={{ marginLeft: '10px', fontSize: 18 }}>°C</span> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ width: "50%", height: "100%", float: "left", textAlign: "center" }}> | |||
<img style={{ width: "100%", height: "90%" }} src={require('./img/ssssx.png')}></img> | |||
<h3 style={{ color: "green" }}>运行中</h3> | |||
</div> | |||
</div> | |||
</BorderBox12> | |||
</div> | |||
</div> | |||
</div> | |||
</FullScreenContainer> | |||
</div> | |||
) | |||
} | |||
export default KepData; |
@@ -0,0 +1,110 @@ | |||
#data-view { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #030409; | |||
color: #fff; | |||
#dv-full-screen-container { | |||
background-image: url('./img/bg.png'); | |||
box-shadow: 0 0 3px blue; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
.main-header { | |||
background-image: url('./img/top.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */ | |||
background-attachment: fixed; | |||
/* 让背景图基于容器大小伸缩 */ | |||
background-size: cover; | |||
height: 50px; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: flex-end; | |||
.mh-left { | |||
font-size: 20px; | |||
color: rgb(1, 134, 187); | |||
a:visited { | |||
color: rgb(1, 134, 187); | |||
} | |||
} | |||
.mh-middle { | |||
font-size: 30px; | |||
} | |||
.mh-left, | |||
.mh-right { | |||
width: 480px; | |||
} | |||
.dateclass{ | |||
font-size: 22px; | |||
text-align: center; | |||
} | |||
} | |||
.main-container { | |||
height: calc(~'100% - 80px'); | |||
.mc-top, | |||
.mc-bottom { | |||
display: flex; | |||
} | |||
.mc-top { | |||
height: 33%; | |||
} | |||
.mc-bottom { | |||
height: 66%; | |||
} | |||
.main-container_dev{ | |||
height: 100%; | |||
width: 100%; | |||
} | |||
.qpj{ | |||
// background-image: url('./img/555.png'); | |||
} | |||
.mc-bottom1{ | |||
width: 75%; | |||
} | |||
.mc-bottom2{ | |||
width: 25%; | |||
} | |||
} | |||
.titlebak{ | |||
background-image: url('./img/title1.png'); | |||
/* 背景图垂直、水平均居中 */ | |||
background-position: center center; | |||
/* 背景图不平铺 */ | |||
background-repeat: no-repeat; | |||
text-align: center; | |||
} | |||
.main-container_c{ | |||
height: 100%; | |||
// border: 1px red solid; | |||
} | |||
.main-container_s{ | |||
height: 33.3%; | |||
width: 100%; | |||
//border: 1px red solid; | |||
} | |||
.main-container_z{ | |||
height: 33.3%; | |||
width: 100%; | |||
// border: 1px red solid; | |||
} | |||
.main-container_x{ | |||
height: 33.3%; | |||
width: 100%; | |||
//border: 1px red solid; | |||
} | |||
} |
@@ -0,0 +1,769 @@ | |||
import React, { useState, useEffect } from 'react'; | |||
import { Col, Row, Statistic } from 'antd'; | |||
import './index.less' | |||
import { | |||
FullScreenContainer, | |||
BorderBox6, | |||
BorderBox10, | |||
BorderBox1, | |||
ScrollBoard, | |||
BorderBox4, | |||
} from '@jiaminghi/data-view-react' | |||
import Api from "@/api/kepService" | |||
const KepData: React.FC = () => { | |||
const [thisdate, setThisdate] = useState({ timeStr: '' }) | |||
const [dataVData, setDataVData] = useState({ "A1": "AA" }) | |||
const [logData, setLogData] = useState({ | |||
header: ['报警设备', '报警信息', '报警时间'], | |||
rowNum: 5, | |||
headerBGC: "#000724", | |||
oddRowBGC: "#000724", | |||
evenRowBGC: "#000724", | |||
data: [[]] | |||
}) | |||
const initScript = () => { | |||
let script = document.createElement('script') | |||
script.type = 'text/javascript' | |||
script.async = true | |||
script.src = './index.js'//这个代表的是script 的src | |||
document.head.appendChild(script) | |||
} | |||
useEffect(() => { | |||
const id = setInterval(() => { | |||
getdatavData(); | |||
}, 1000*1); | |||
return () => { | |||
clearInterval(0); //组件卸载时清除定时器 | |||
}; | |||
}, []) | |||
const getdatavData = async () => { | |||
const response = await Api.getdatavData(); | |||
if (response.statusCode === 200) { | |||
setDataVData(response.data); | |||
} | |||
Api.getlogs().then((r) => { | |||
setLogData({ | |||
header: ['报警设备', '报警信息', '报警时间'], | |||
rowNum: 5, | |||
headerBGC: "#000724", | |||
oddRowBGC: "#000724", | |||
evenRowBGC: "#000724", | |||
data: r.data | |||
}); | |||
}); | |||
} | |||
const style = { width: '5px', height: '45%' } | |||
const style2 = { | |||
width: '120px', | |||
height: '50px', | |||
lineHeight: '50px', | |||
textAlign: 'center', | |||
marginLeft: '200px', | |||
} | |||
function setTimingFn() { | |||
setInterval(() => { | |||
let dateYear = formatTime(new Date(), 'yyyy-MM-dd'); | |||
let dateDay = formatTime(new Date(), 'HH: mm: ss'); | |||
setThisdate({ timeStr: `${dateYear} ${dateDay} ` }); | |||
}, 1000); | |||
} | |||
function formatTime(time: string | number | Date, fmt: string) { | |||
if (!time) return ''; | |||
else { | |||
const date = new Date(time); | |||
const o = { | |||
'M+': date.getMonth() + 1, | |||
'd+': date.getDate(), | |||
'H+': date.getHours(), | |||
'm+': date.getMinutes(), | |||
's+': date.getSeconds(), | |||
'q+': Math.floor((date.getMonth() + 3) / 3), | |||
S: date.getMilliseconds(), | |||
}; | |||
if (/(y+)/.test(fmt)) | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
(date.getFullYear() + '').substr(4 - RegExp.$1.length) | |||
); | |||
for (const k in o) { | |||
if (new RegExp('(' + k + ')').test(fmt)) { | |||
fmt = fmt.replace( | |||
RegExp.$1, | |||
RegExp.$1.length === 1 | |||
? o[k] | |||
: ('00' + o[k]).substr(('' + o[k]).length) | |||
); | |||
} | |||
} | |||
return fmt; | |||
} | |||
} | |||
return ( | |||
<div id="data-view"> | |||
<FullScreenContainer> | |||
<div className="main-header"> | |||
<div className="mh-left"> </div> | |||
<div className="mh-middle"> | |||
五芳斋数据大屏 | |||
</div> | |||
<div className="mh-right"> | |||
<div className='dateclass' > | |||
{thisdate.timeStr} | |||
</div> | |||
</div> | |||
</div> | |||
<div className="main-container"> | |||
<div className='main-container_c'> | |||
<div className='main-container_s'> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 1#浸泡间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#浸泡机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A1"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4 >1#称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A5"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#限量提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A9"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>储油暂存罐</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A3"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>压力:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A4"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#防浮链板</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A14"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#浸泡出缓存提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A16"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
{/* <div ><h4>1#脱水称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A18"]}</span> | |||
</div> */} | |||
<div ><h4>1#浸泡出料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A25"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A8"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A10"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#伸缩式进料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A20"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#离心电机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A22"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>跨线提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A24"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
{/* <div ><h4>1#浸泡出料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A25"]}</span> | |||
</div> */} | |||
<div ><h4>1#脱水称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A18"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>备料次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A27"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 油炸间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "50%" }}> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>一区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A1"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>二区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A2"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>三区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A3"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>刮渣开</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>时间</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A7"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "50%" }}> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>一区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A4"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>二区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A5"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>三区温度测量</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>测量值:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A6"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "58px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>刮渣关</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>时间</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A8"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "14%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 搅拌间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "98px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>称重输送机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A5"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A6"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预实时重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A28"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#离心机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A16"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A1"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A2"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
{/* <div ><h4>1#脱油称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device3.A12"]}</span> | |||
</div> */} | |||
<div ><h4>主转盘旋转电机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device3.A25"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#伸缩式进料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A14"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "110px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>抖料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置出料秒:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A7"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置出料分:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A8"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>投料预置停滞秒:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A9"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" , marginTop: "10px"}}> | |||
<BorderBox10 > | |||
<div ><h4>拌料高位提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A18"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>拌料称重输送机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A19"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
{/* <div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>拌料称伸缩式进料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device3.A20"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> */} | |||
<div style={{ height: "98px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>1#脱油称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A12"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>实时重量</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A26"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>备料次数</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A29"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
</div> | |||
<div className='main-container_z'> | |||
<BorderBox1> | |||
<img style={{ width: "100%", height: "100%" }} src={require('./img/20231113174659.png')}></img> | |||
</BorderBox1> | |||
</div> | |||
<div className='main-container_x'> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 2#浸泡间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#浸泡机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>温度:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A2"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4 >2#称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A6"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
{/* <div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4 >原油罐</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>称重重量:</span> | |||
<span style={{ fontSize: 12 }}>10</span> | |||
</div> | |||
</BorderBox10> | |||
</div> */} | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#限量提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A13"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>原油罐称重:</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A7"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#防浮链板</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A15"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#浸泡出缓存提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A17"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#脱水称重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A19"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#承重提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A9"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>预置次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A11"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#伸缩式进料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A21"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#离心电机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A23"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#浸泡出料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A26"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>跨线提升机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device1.A24"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ width: '93%', height: '99%', display: "block", margin: " 0 auto", }}> | |||
<div style={{ height: "15%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 报警信息</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<ScrollBoard config={logData} style={{ width: '98%', height: '80%' }} /> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
<div style={{ width: "33%", height: "100%", float: "left", textAlign: "center" }}> | |||
<BorderBox1> | |||
<div style={{ height: "14%" }}> | |||
<div style={{ height: "30%", width: "100%", textAlign: "center" }}> | |||
<div style={{ height: "50px", width: "90%", display: "block", margin: " 0 auto", textAlign: "center" }} className='titlebak'> | |||
<h2 style={{ color: "#34CDE1" }}> 搅拌间</h2> | |||
</div> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#称重提升机</h4></div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>重量:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A2"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A4"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#伸缩式进料机</h4></div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A15"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "80px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#脱油称重提升机</h4></div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A13"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>实时重量</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A27"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>备料次数:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A30"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>2#离心电机</h4></div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A17"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
<div style={{ float: "left", width: "33.3%" }}> | |||
<div style={{ height: "130px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>旋转抖料电机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>1#频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A21"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>2#频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A22"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>3#频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A23"]}</span> | |||
</div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>4#频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A24"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
<div style={{ height: "55px", width: "90%", marginLeft: "15px", marginTop: "10px" }}> | |||
<BorderBox10 > | |||
<div ><h4>拌料称伸缩式进料机</h4> </div> | |||
<div > | |||
<span style={{ fontSize: 10, color: "#50B15D" }}>频率:</span> | |||
<span style={{ fontSize: 12 }}>{dataVData["Device2.A20"]}</span> | |||
</div> | |||
</BorderBox10> | |||
</div> | |||
</div> | |||
</BorderBox1> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</FullScreenContainer> | |||
</div> | |||
) | |||
} | |||
export default KepData; |
@@ -0,0 +1,233 @@ | |||
// agv基础数据页面 | |||
import type { ActionType, ProColumns } from '@ant-design/pro-components'; | |||
import { ProTable } from '@ant-design/pro-components'; | |||
import { Button, Modal, Form, Input, message, Popconfirm, Tag} from 'antd'; | |||
import { useEffect, useRef, useState } from 'react'; | |||
import agvbasicInfoAPI from '@/api/agvbasicService' | |||
const AgvPoint = () => { | |||
// 2.定义编辑/新增的弹窗 | |||
const [isModalOpen, setIsModalOpen] = useState(false); | |||
// 3.定义表单 | |||
const [typeForm] = Form.useForm(); | |||
const [modelTitle, setModelTitle] = useState<string>(); | |||
const actionRef = useRef<ActionType>(); | |||
// 1.定义列 | |||
const columns: ProColumns<AgvbasicInfoTypes.Info>[] = [ | |||
{ | |||
title: 'id', | |||
dataIndex: 'id', | |||
tip: '规则名称是唯一的 key', | |||
hideInSearch: true, | |||
hideInTable: true, | |||
}, | |||
{ | |||
title: '点位名称', | |||
dataIndex: 'name', | |||
ellipsis: true, | |||
align: 'center' | |||
}, | |||
{ | |||
title: '点位编码', | |||
dataIndex: 'code', | |||
hideInSearch: true, | |||
ellipsis: true, | |||
align: 'center' | |||
}, | |||
{ | |||
title: '操作', | |||
valueType: 'option', | |||
key: 'option', | |||
align: 'center', | |||
// 4.操作内有两个按钮 | |||
render: (_, record) => [ | |||
<Button | |||
key="edit" | |||
type="primary" ghost | |||
onClick={async () => { | |||
setIsModalOpen(true); | |||
setModelTitle('编辑点位'); | |||
const copyFormData = JSON.parse(JSON.stringify(record)); | |||
typeForm.setFieldsValue(copyFormData); | |||
}} | |||
>编辑 | |||
</Button>, | |||
// 删除 | |||
<Popconfirm | |||
key="del" | |||
title="确定要删除此条数据吗?" | |||
onConfirm={() => { | |||
const EnablejsonData: AgvbasicInfoTypes.Info = { | |||
id: record.id, | |||
name: '', | |||
code: '' | |||
}; | |||
agvbasicInfoAPI.Del(EnablejsonData).then((r: MyResponse.Content) => { | |||
if (r.statusCode === 200) { | |||
message.success(r.statusCode === 200 ? '删除成功' : r.message); | |||
actionRef.current?.reload() | |||
} | |||
}); | |||
}} | |||
onCancel={() => { | |||
message.info('已取消删除'); | |||
}} | |||
okText="确认" | |||
cancelText="关闭" | |||
> | |||
<Button type="primary" danger ghost>删除</Button> | |||
</Popconfirm>, | |||
] | |||
}, | |||
]; | |||
useEffect(() => { | |||
}, []); | |||
// 7.定义表单提交 | |||
// 表单提交 | |||
const OnSubmit = async (values: AgvbasicInfoTypes.Info) => { | |||
if (values.id) { | |||
const response = await agvbasicInfoAPI.Update(values); | |||
if (response.statusCode === 200) { | |||
message.success('修改成功'); | |||
actionRef.current?.reload(); | |||
setIsModalOpen(false); | |||
} else { | |||
message.error(JSON.stringify(response.errors) || '修改失败'); | |||
} | |||
} else { | |||
const response = await agvbasicInfoAPI.Add(values); | |||
console.log('response', response); | |||
if (response.statusCode === 200) { | |||
message.success('添加成功'); | |||
actionRef.current?.reload(); | |||
setIsModalOpen(false); | |||
} else { | |||
message.error(JSON.stringify(response.errors) || '添加失败'); | |||
} | |||
} | |||
}; | |||
return ( | |||
<> | |||
<ProTable<AgvbasicInfoTypes.Info> | |||
key="myTable" | |||
actionRef={actionRef} | |||
cardBordered | |||
request={async (params = {}) => { | |||
const jsonData: AgvbasicInfoTypes.Page = { | |||
pageIndex: params.current || 1, | |||
pageSize: params.pageSize || 10, | |||
name: params.name || '', | |||
// id: '', | |||
// code: '' | |||
}; | |||
const response = await agvbasicInfoAPI.PagedList(jsonData); | |||
if (response.statusCode === 200) { | |||
return { | |||
data: response.data.items, | |||
success: true, | |||
total: response.data.total, | |||
}; | |||
} else { | |||
return { | |||
data: [], | |||
success: false, | |||
total: 0, | |||
}; | |||
} | |||
}} | |||
rowKey="id" | |||
pagination={{ | |||
pageSize: 10, | |||
}} | |||
dateFormatter="string" | |||
headerTitle="点位列表" | |||
columns={columns} | |||
toolBarRender={() => [ | |||
<Button | |||
key="button" | |||
type="primary" | |||
onClick={() => { | |||
typeForm.resetFields(); | |||
setIsModalOpen(true); | |||
setModelTitle('新增点位'); | |||
}} | |||
> | |||
新增点位 | |||
</Button>, | |||
]} | |||
/> | |||
{/* 弹窗 */} | |||
<Modal | |||
key="01" | |||
width={800} | |||
title={<Tag color="#cd201f">{modelTitle}</Tag>} | |||
open={isModalOpen} | |||
onCancel={() => { | |||
setIsModalOpen(false); | |||
}} | |||
footer={[ | |||
<Button | |||
key="back" | |||
onClick={() => { | |||
setIsModalOpen(false); | |||
}} | |||
> | |||
返回 | |||
</Button>, | |||
<Button key="submit" form="agvbasicForm" type="primary" htmlType="submit"> | |||
提交 | |||
</Button>, | |||
]} | |||
> | |||
{/* 弹窗内的表单 */} | |||
<Form | |||
form={typeForm} | |||
name="basic" | |||
id="agvbasicForm" | |||
labelAlign='right' | |||
// lCol={{ span: 4 }} | |||
wrapperCol={{ span: 12 }} | |||
onFinish={OnSubmit} | |||
autoComplete="off" | |||
> | |||
<Form.Item label="id" name="id" hidden> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item | |||
label="点位名称" | |||
name="name" | |||
rules={[{ required: true, message: '此项为必填项!' }]} | |||
> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item label="点位编码" name="code" rules={[{ required: true, message: '此项为必填项!' }]} > | |||
<Input /> | |||
</Form.Item> | |||
</Form> | |||
</Modal> | |||
</> | |||
) | |||
} | |||
export default AgvPoint |
@@ -0,0 +1,208 @@ | |||
import { EllipsisOutlined, PlusOutlined } from '@ant-design/icons'; | |||
import type { ActionType, ProColumns } from '@ant-design/pro-components'; | |||
import { ProTable, TableDropdown } from '@ant-design/pro-components'; | |||
import { Button, message, Space, Modal, Form, Input, Alert ,Popconfirm, InputNumber } from 'antd'; | |||
import { useRef, useState,useEffect } from 'react'; | |||
import request from 'umi-request'; | |||
import Api from "@/api/kepService" | |||
export default () => { | |||
const actionRef = useRef<ActionType>(); | |||
const [current, setSurrent] = useState({}); | |||
const [isModalVisible, setIsModalVisible] = useState(false); | |||
const [form] = Form.useForm(); | |||
var timer = 0; | |||
const columns: ProColumns[] = [ | |||
{ | |||
title: 'id', | |||
dataIndex: 'id', | |||
key: 'id', | |||
hideInSearch: true, | |||
}, | |||
{ | |||
title: '名称', | |||
dataIndex: 'name', | |||
key: 'name', | |||
}, | |||
{ | |||
title: '代码', | |||
dataIndex: 'code', | |||
key: 'code', | |||
}, | |||
{ | |||
title: '最小区间值', | |||
dataIndex: 'minLimitValue', | |||
key: 'minLimitValue', | |||
hideInSearch: true, | |||
}, | |||
{ | |||
title: '最大区间值', | |||
dataIndex: 'maxLimitValue', | |||
key: 'maxLimitValue', | |||
hideInSearch: true, | |||
}, | |||
{ | |||
title: '操作', | |||
valueType: 'option', | |||
key: 'option', | |||
render: (text, record, _, action) => [ | |||
<a | |||
key="editable" | |||
onClick={() => { | |||
setSurrent(record); | |||
form.setFieldsValue(record); | |||
setIsModalVisible(true); | |||
}} | |||
> | |||
编辑 | |||
</a>, | |||
<Popconfirm | |||
key='del' | |||
title="确定要删除吗?" | |||
onConfirm={async () =>{ | |||
const response = await Api.Del(record.id); | |||
if (response.data) { | |||
message.success('删除成功'); | |||
actionRef.current?.reload(); | |||
} else { | |||
message.error(response.msg || '删除失败'); | |||
} | |||
}} | |||
okText="确定" | |||
cancelText="取消" | |||
> | |||
<a>删除</a> | |||
</Popconfirm> | |||
], | |||
}, | |||
]; | |||
return ( | |||
<> | |||
<ProTable | |||
columns={columns} | |||
actionRef={actionRef} | |||
cardBordered | |||
rowKey="id" | |||
request={async (params = {}, sort, filter) => { | |||
console.log(sort, filter); | |||
const response = await Api.Getdatavalarmlimitpage({ | |||
pageIndex: params.current || 1, | |||
pageSize: params.pageSize || 10 | |||
}); | |||
if (response.statusCode === 200) { | |||
return { | |||
data: response.data.items, | |||
success: true, | |||
total: response.data.total | |||
} | |||
} else { | |||
message.error(response.errors || '获取列表失败'); | |||
return { | |||
data: [], | |||
success: false, | |||
total: 0 | |||
} | |||
} | |||
}} | |||
search={{ | |||
labelWidth: 'auto', | |||
}} | |||
options={{ | |||
setting: { | |||
listsHeight: 400, | |||
}, | |||
}} | |||
headerTitle="大屏配置" | |||
toolBarRender={() => [ | |||
<Button | |||
key="button" | |||
icon={<PlusOutlined />} | |||
onClick={() => { | |||
form.resetFields(); | |||
setIsModalVisible(true); | |||
}} | |||
type="primary" | |||
> | |||
新建 | |||
</Button> | |||
]} | |||
/> | |||
<Modal footer={null} title={current.id === '' ? '添加' : '编辑'} open={isModalVisible} | |||
onCancel={() => setIsModalVisible(false)}> | |||
<Form | |||
name="basic" | |||
form={form} | |||
onFinish={async (item) => { | |||
if (item.id) { | |||
const response = await Api.Updatedatavalarmlimit(item); | |||
if (response.data) { | |||
message.success('更新信息成功'); | |||
setIsModalVisible(false); | |||
actionRef.current?.reload(); | |||
} else { | |||
message.error(response.msg || '更新信息失败'); | |||
} | |||
} else { | |||
const response = await Api.Adddatavalarmlimit(item); | |||
if (response.data) { | |||
message.success('创建成功'); | |||
setIsModalVisible(false); | |||
actionRef.current?.reload(); | |||
} else { | |||
message.error(response.msg || '创建失败'); | |||
} | |||
} | |||
}} | |||
> | |||
<Form.Item label="id" name="id" hidden={true} > | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item | |||
label="名称" | |||
name="name" | |||
rules={[{ required: true, message: '请输入名称!' }]} | |||
> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item | |||
label="代码" | |||
name="code" | |||
rules={[{ required: true, message: '请输入代码!' }]} | |||
> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item | |||
label="最小区间值" | |||
name="minLimitValue" | |||
rules={[{ required: true, message: '请输入值!' }]} | |||
> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item | |||
label="最大区间值" | |||
name="maxLimitValue" | |||
rules={[{ required: true, message: '请输入值!' }]} | |||
> | |||
<Input /> | |||
</Form.Item> | |||
<Form.Item > | |||
<Button type="primary" htmlType="submit"> | |||
确定 | |||
</Button> | |||
</Form.Item> | |||
</Form> | |||
</Modal> | |||
</> | |||
); | |||
}; |
@@ -0,0 +1,27 @@ | |||
import { Card } from 'antd'; | |||
import React,{ useState, useEffect } from 'react'; | |||
// import DataV from '../../components/datav' | |||
import KepData from '../../../components/KepData' | |||
const Kep: React.FC = () => { | |||
useEffect( () => { | |||
// const timer = window.setInterval(() => { | |||
// KepServiceAPI.List().then((t)=>{ | |||
// console.log(JSON.stringify(t.data)) | |||
// }) | |||
// }, 1000); | |||
// return () => { | |||
// clearInterval(timer); | |||
// }; | |||
// KepServiceAPI.List().then((t)=>{ | |||
// console.log(JSON.stringify(t.data[0])) | |||
// }) | |||
},[]) | |||
return ( | |||
<div id="app"> | |||
<KepData /> | |||
</div> | |||
); | |||
}; | |||
export default Kep; |
@@ -1,13 +0,0 @@ | |||
import { Card } from 'antd'; | |||
import React from 'react'; | |||
import { PageContainer } from '@ant-design/pro-components'; | |||
import DataV from '../../components/datav' | |||
const Kep: React.FC = () => { | |||
return ( | |||
<div id="app"> | |||
<DataV /> | |||
</div> | |||
); | |||
}; | |||
export default Kep; |