mirror of
http://git.xinwangdao.com/cnnc-embedded-parts-detect/detect.git
synced 2025-06-24 13:34:13 +08:00
fixed
This commit is contained in:
parent
c592bacd23
commit
cc8aa7afed
@ -54,11 +54,13 @@ public class ApiService
|
|||||||
_webApp.UseCors("AllowAll");
|
_webApp.UseCors("AllowAll");
|
||||||
|
|
||||||
// api
|
// api
|
||||||
_ = new DetectTaskApi(_webApp);
|
|
||||||
_ = new DeviceApi(_webApp);
|
|
||||||
_ = new LogApi(_webApp);
|
|
||||||
_ = new UserApi(_webApp);
|
_ = new UserApi(_webApp);
|
||||||
_ = new AuthorityApi(_webApp);
|
_ = new AuthorityApi(_webApp);
|
||||||
|
_ = new DetectTaskApi(_webApp);
|
||||||
|
_ = new DetectTaskLogApi(_webApp);
|
||||||
|
_ = new DetectTaskProgressApi(_webApp);
|
||||||
|
_ = new DeviceApi(_webApp);
|
||||||
|
_ = new LogApi(_webApp);
|
||||||
|
|
||||||
Task.Run(() => { _webApp.RunAsync(AppSettingsManager.Manager().GetString("ApiUrl")); });
|
Task.Run(() => { _webApp.RunAsync(AppSettingsManager.Manager().GetString("ApiUrl")); });
|
||||||
Log.Information("Web Application is started!");
|
Log.Information("Web Application is started!");
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using detect.gui.Models;
|
|
||||||
using detect.gui.Models.Entities;
|
|
||||||
|
|
||||||
namespace detect.gui.Api.Helpers;
|
|
||||||
|
|
||||||
public class DeviceHelper
|
|
||||||
{
|
|
||||||
public static ApiResponse<List<DeviceEntity>>? GetList()
|
|
||||||
{
|
|
||||||
return ApiHelper.Get<List<DeviceEntity>>("/v1/system/device/all", "");
|
|
||||||
}
|
|
||||||
}
|
|
@ -11,27 +11,27 @@ public class DetectTaskApi
|
|||||||
{
|
{
|
||||||
public DetectTaskApi(IEndpointRouteBuilder? webApp)
|
public DetectTaskApi(IEndpointRouteBuilder? webApp)
|
||||||
{
|
{
|
||||||
// // all
|
// all
|
||||||
// webApp?.MapGet("/v1/system/device/all", () => Locator.Current.GetService<VapDeviceService>()!.ListAll());
|
webApp?.MapGet("/v1/system/task/all", () => Locator.Current.GetService<DetectTaskService>()!.ListAll());
|
||||||
//
|
|
||||||
// // search
|
// search
|
||||||
// webApp?.MapGet("/v1/system/device/search", ([FromQuery] int? regionId, [FromQuery] string? name, [FromQuery] string? ip, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
webApp?.MapGet("/v1/system/task/search", ([FromQuery] string? name, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
||||||
// Locator.Current.GetService<VapDeviceService>()!.Search(regionId, name, ip, pageNum, pageSize));
|
Locator.Current.GetService<DetectTaskService>()!.Search(name, pageNum, pageSize));
|
||||||
//
|
|
||||||
// // id
|
// id
|
||||||
// webApp?.MapGet("/v1/system/device/{id:long}", ([FromRoute] long id) =>
|
webApp?.MapGet("/v1/system/task/{id:long}", ([FromRoute] long id) =>
|
||||||
// Locator.Current.GetService<VapDeviceService>()!.ListById(id));
|
Locator.Current.GetService<DetectTaskService>()!.ListById(id));
|
||||||
//
|
|
||||||
// // add
|
// add
|
||||||
// webApp?.MapPost("/v1/system/device/", ([FromBody] DeviceEntity entity) =>
|
webApp?.MapPost("/v1/system/task/", ([FromBody] DetectTaskEntity entity) =>
|
||||||
// Locator.Current.GetService<VapDeviceService>()!.AddData(entity));
|
Locator.Current.GetService<DetectTaskService>()!.AddData(entity));
|
||||||
//
|
|
||||||
// // update
|
// update
|
||||||
// webApp?.MapPut("/v1/system/device/", ([FromBody] DeviceEntity entity) =>
|
webApp?.MapPut("/v1/system/task/", ([FromBody] DetectTaskEntity entity) =>
|
||||||
// Locator.Current.GetService<VapDeviceService>()!.UpdateData(entity));
|
Locator.Current.GetService<DetectTaskService>()!.UpdateData(entity));
|
||||||
//
|
|
||||||
// // delete
|
// delete
|
||||||
// webApp?.MapDelete("/v1/system/device/{id:long}", ([FromRoute] long id) =>
|
webApp?.MapDelete("/v1/system/task/{id:long}", ([FromRoute] long id) =>
|
||||||
// Locator.Current.GetService<VapDeviceService>()!.DeleteById(id));
|
Locator.Current.GetService<DetectTaskService>()!.DeleteById(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
37
detect.gui/Api/System/DetectTaskLogApi.cs
Normal file
37
detect.gui/Api/System/DetectTaskLogApi.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using detect.gui.Models.Entities;
|
||||||
|
using detect.gui.Services.Detect;
|
||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Routing;
|
||||||
|
using Splat;
|
||||||
|
|
||||||
|
namespace detect.gui.Api.System;
|
||||||
|
|
||||||
|
public class DetectTaskLogApi
|
||||||
|
{
|
||||||
|
public DetectTaskLogApi(IEndpointRouteBuilder? webApp)
|
||||||
|
{
|
||||||
|
// all
|
||||||
|
webApp?.MapGet("/v1/system/task-log/all", () => Locator.Current.GetService<DetectTaskLogService>()!.ListAll());
|
||||||
|
|
||||||
|
// search
|
||||||
|
webApp?.MapGet("/v1/system/task-log/search", ([FromQuery] long? taskId, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
||||||
|
Locator.Current.GetService<DetectTaskLogService>()!.Search(taskId, pageNum, pageSize));
|
||||||
|
|
||||||
|
// id
|
||||||
|
webApp?.MapGet("/v1/system/task-log/{id:long}", ([FromRoute] long id) =>
|
||||||
|
Locator.Current.GetService<DetectTaskLogService>()!.ListById(id));
|
||||||
|
|
||||||
|
// add
|
||||||
|
webApp?.MapPost("/v1/system/task-log/", ([FromBody] DetectTaskLogEntity entity) =>
|
||||||
|
Locator.Current.GetService<DetectTaskLogService>()!.AddData(entity));
|
||||||
|
|
||||||
|
// update
|
||||||
|
webApp?.MapPut("/v1/system/task-log/", ([FromBody] DetectTaskLogEntity entity) =>
|
||||||
|
Locator.Current.GetService<DetectTaskLogService>()!.UpdateData(entity));
|
||||||
|
|
||||||
|
// delete
|
||||||
|
webApp?.MapDelete("/v1/system/task-log/{id:long}", ([FromRoute] long id) =>
|
||||||
|
Locator.Current.GetService<DetectTaskLogService>()!.DeleteById(id));
|
||||||
|
}
|
||||||
|
}
|
37
detect.gui/Api/System/DetectTaskProgressApi.cs
Normal file
37
detect.gui/Api/System/DetectTaskProgressApi.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using detect.gui.Models.Entities;
|
||||||
|
using detect.gui.Services.Detect;
|
||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Routing;
|
||||||
|
using Splat;
|
||||||
|
|
||||||
|
namespace detect.gui.Api.System;
|
||||||
|
|
||||||
|
public class DetectTaskProgressApi
|
||||||
|
{
|
||||||
|
public DetectTaskProgressApi(IEndpointRouteBuilder? webApp)
|
||||||
|
{
|
||||||
|
// all
|
||||||
|
webApp?.MapGet("/v1/system/task-progress/all", () => Locator.Current.GetService<DetectTaskProgressService>()!.ListAll());
|
||||||
|
|
||||||
|
// search
|
||||||
|
webApp?.MapGet("/v1/system/task-progress/search", ([FromQuery] long? taskId, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
||||||
|
Locator.Current.GetService<DetectTaskProgressService>()!.Search(taskId, pageNum, pageSize));
|
||||||
|
|
||||||
|
// id
|
||||||
|
webApp?.MapGet("/v1/system/task-progress/{id:long}", ([FromRoute] long id) =>
|
||||||
|
Locator.Current.GetService<DetectTaskProgressService>()!.ListById(id));
|
||||||
|
|
||||||
|
// add
|
||||||
|
webApp?.MapPost("/v1/system/task-progress/", ([FromBody] DetectTaskProgressEntity entity) =>
|
||||||
|
Locator.Current.GetService<DetectTaskProgressService>()!.AddData(entity));
|
||||||
|
|
||||||
|
// update
|
||||||
|
webApp?.MapPut("/v1/system/task-progress/", ([FromBody] DetectTaskProgressEntity entity) =>
|
||||||
|
Locator.Current.GetService<DetectTaskProgressService>()!.UpdateData(entity));
|
||||||
|
|
||||||
|
// delete
|
||||||
|
webApp?.MapDelete("/v1/system/task-progress/{id:long}", ([FromRoute] long id) =>
|
||||||
|
Locator.Current.GetService<DetectTaskProgressService>()!.DeleteById(id));
|
||||||
|
}
|
||||||
|
}
|
@ -15,8 +15,8 @@ public class DeviceApi
|
|||||||
webApp?.MapGet("/v1/system/device/all", () => Locator.Current.GetService<DetectDeviceService>()!.ListAll());
|
webApp?.MapGet("/v1/system/device/all", () => Locator.Current.GetService<DetectDeviceService>()!.ListAll());
|
||||||
|
|
||||||
// search
|
// search
|
||||||
webApp?.MapGet("/v1/system/device/search", ([FromQuery] int? regionId, [FromQuery] string? name, [FromQuery] string? ip, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
webApp?.MapGet("/v1/system/device/search", ([FromQuery] string? name, [FromQuery] string? ip, [FromQuery]int pageNum = 1, [FromQuery]int pageSize = 10) =>
|
||||||
Locator.Current.GetService<DetectDeviceService>()!.Search(regionId, name, ip, pageNum, pageSize));
|
Locator.Current.GetService<DetectDeviceService>()!.Search(name, ip, pageNum, pageSize));
|
||||||
|
|
||||||
// id
|
// id
|
||||||
webApp?.MapGet("/v1/system/device/{id:long}", ([FromRoute] long id) =>
|
webApp?.MapGet("/v1/system/device/{id:long}", ([FromRoute] long id) =>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Text;
|
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
using Avalonia.ReactiveUI;
|
using Avalonia.ReactiveUI;
|
||||||
@ -33,10 +31,12 @@ public class App : Application
|
|||||||
Locator.CurrentMutable.Register(() => new UserView(), typeof(IViewFor<UserViewModel>));
|
Locator.CurrentMutable.Register(() => new UserView(), typeof(IViewFor<UserViewModel>));
|
||||||
|
|
||||||
Locator.CurrentMutable.Register(() => new DetectUserService(), typeof(DetectUserService));
|
Locator.CurrentMutable.Register(() => new DetectUserService(), typeof(DetectUserService));
|
||||||
|
Locator.CurrentMutable.Register(() => new DetectAuthorityService(), typeof(DetectAuthorityService));
|
||||||
Locator.CurrentMutable.Register(() => new DetectDeviceService(), typeof(DetectDeviceService));
|
Locator.CurrentMutable.Register(() => new DetectDeviceService(), typeof(DetectDeviceService));
|
||||||
Locator.CurrentMutable.Register(() => new DetectTaskService(), typeof(DetectTaskService));
|
Locator.CurrentMutable.Register(() => new DetectTaskService(), typeof(DetectTaskService));
|
||||||
|
Locator.CurrentMutable.Register(() => new DetectTaskLogService(), typeof(DetectTaskLogService));
|
||||||
|
Locator.CurrentMutable.Register(() => new DetectTaskProgressService(), typeof(DetectTaskProgressService));
|
||||||
Locator.CurrentMutable.Register(() => new DetectLogService(), typeof(DetectLogService));
|
Locator.CurrentMutable.Register(() => new DetectLogService(), typeof(DetectLogService));
|
||||||
Locator.CurrentMutable.Register(() => new DetectAuthorityService(), typeof(DetectAuthorityService));
|
|
||||||
|
|
||||||
Locator.CurrentMutable.Register(() => new DeviceClientService(), typeof(DeviceClientService));
|
Locator.CurrentMutable.Register(() => new DeviceClientService(), typeof(DeviceClientService));
|
||||||
Locator.Current.GetService<DeviceClientService>();
|
Locator.Current.GetService<DeviceClientService>();
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.IO;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using detect.gui.Models.Entities;
|
using detect.gui.Models.Entities;
|
||||||
using xwd.utils;
|
using xwd.utils;
|
||||||
|
|
||||||
@ -34,9 +33,9 @@ public class DetectContext : DbContext
|
|||||||
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 3, UserId = 1, AuthorityId = 3 });
|
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 3, UserId = 1, AuthorityId = 3 });
|
||||||
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 4, UserId = 1, AuthorityId = 4 });
|
Set<UserAuthorityEntity>().Add(new UserAuthorityEntity { Id = 4, UserId = 1, AuthorityId = 4 });
|
||||||
|
|
||||||
Set<DeviceEntity>().Add(new DeviceEntity { Id = 1, Name = "设备11", DeviceIp = "192.168.101.253", DevicePort = "13000", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
|
Set<DeviceEntity>().Add(new DeviceEntity { Id = 1, Name = "设备11", DeviceIp = "192.168.101.253" });
|
||||||
Set<DeviceEntity>().Add(new DeviceEntity { Id = 2, Name = "设备12", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
|
Set<DeviceEntity>().Add(new DeviceEntity { Id = 2, Name = "设备12" });
|
||||||
Set<DeviceEntity>().Add(new DeviceEntity { Id = 3, Name = "设备13", CameraRtsp = "https://stream7.iqilu.com/10339/article/202002/17/4417a27b1a656f4779eaa005ecd1a1a0.mp4"});
|
Set<DeviceEntity>().Add(new DeviceEntity { Id = 3, Name = "设备13" });
|
||||||
|
|
||||||
SaveChanges();
|
SaveChanges();
|
||||||
}
|
}
|
||||||
@ -49,12 +48,14 @@ public class DetectContext : DbContext
|
|||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
modelBuilder.Entity<UserEntity>().ToTable("User");
|
modelBuilder.Entity<UserEntity>().ToTable("dat_user");
|
||||||
modelBuilder.Entity<AuthorityEntity>().ToTable("Authority");
|
modelBuilder.Entity<AuthorityEntity>().ToTable("dat_authority");
|
||||||
modelBuilder.Entity<UserAuthorityEntity>().ToTable("UserAuthority");
|
modelBuilder.Entity<UserAuthorityEntity>().ToTable("dat_user_authority");
|
||||||
modelBuilder.Entity<DetectTaskEntity>().ToTable("DetectTask");
|
modelBuilder.Entity<DetectTaskEntity>().ToTable("dat_detect_task");
|
||||||
modelBuilder.Entity<DeviceEntity>().ToTable("Device");
|
modelBuilder.Entity<DetectTaskLogEntity>().ToTable("dat_detect_task_log");
|
||||||
modelBuilder.Entity<LogEntity>().ToTable("Log");
|
modelBuilder.Entity<DetectTaskProgressEntity>().ToTable("dat_detect_task_progress");
|
||||||
|
modelBuilder.Entity<DeviceEntity>().ToTable("dat_device");
|
||||||
|
modelBuilder.Entity<LogEntity>().ToTable("dat_log");
|
||||||
|
|
||||||
modelBuilder.Entity<UserEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<UserEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
modelBuilder.Entity<UserEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<UserEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
||||||
@ -63,6 +64,8 @@ public class DetectContext : DbContext
|
|||||||
modelBuilder.Entity<AuthorityEntity>().Property(p => p.ParentId).HasDefaultValueSql("0");
|
modelBuilder.Entity<AuthorityEntity>().Property(p => p.ParentId).HasDefaultValueSql("0");
|
||||||
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<DetectTaskEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
||||||
|
modelBuilder.Entity<DetectTaskLogEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
|
modelBuilder.Entity<DetectTaskProgressEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
modelBuilder.Entity<DeviceEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<DeviceEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
modelBuilder.Entity<DeviceEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<DeviceEntity>().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')");
|
||||||
modelBuilder.Entity<LogEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
modelBuilder.Entity<LogEntity>().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')");
|
||||||
|
2
detect.gui/Embedded/dist/_app.config.js
vendored
2
detect.gui/Embedded/dist/_app.config.js
vendored
@ -1 +1 @@
|
|||||||
window.__PRODUCTION__667A80FD89C6989176D163A75E7353F0__CONF__={"VITE_GLOB_API_URL":"http://localhost:3910","VITE_GLOB_UPLOAD_URL":"http://localhost:3910/v1/system/upload","VITE_GLOB_API_URL_PREFIX":"","VITE_GLOB_APP_TITLE":"智能视频监控平台"};Object.freeze(window.__PRODUCTION__667A80FD89C6989176D163A75E7353F0__CONF__);Object.defineProperty(window, "__PRODUCTION__667A80FD89C6989176D163A75E7353F0__CONF__", {configurable: false,writable: false,});
|
window.__PRODUCTION__4E2D683896C656E2988457CB4EF668C06D4B7CFB7EDF__CONF__={"VITE_GLOB_API_URL":"http://localhost:3920","VITE_GLOB_UPLOAD_URL":"http://localhost:3910/v1/system/upload","VITE_GLOB_API_URL_PREFIX":"","VITE_GLOB_APP_TITLE":"中核集团预埋件检测系统"};Object.freeze(window.__PRODUCTION__4E2D683896C656E2988457CB4EF668C06D4B7CFB7EDF__CONF__);Object.defineProperty(window, "__PRODUCTION__4E2D683896C656E2988457CB4EF668C06D4B7CFB7EDF__CONF__", {configurable: false,writable: false,});
|
@ -1 +0,0 @@
|
|||||||
import{am as a}from"./index.js";const s="/v1/system/authority",r=t=>a.post({url:`${s}/`,data:t}),l=(t,e=!1)=>a.put({url:`${s}/`,data:t,params:{updateAllFields:e}}),c=t=>a.delete({url:`${s}/${t}`}),u=t=>a.get({url:`${s}/search`,params:t}),d=t=>a.get({url:`${s}/all`,params:t}),p=t=>a.get({url:`${s}/${t}`}),$=t=>a.post({url:`${s}/batch-delete`,data:t});export{d as a,r as b,$ as c,p as g,c as r,u as s,l as u};
|
|
@ -1 +0,0 @@
|
|||||||
[data-v-9ebe5099] .ant-card-body{padding-top:0}
|
|
@ -1 +0,0 @@
|
|||||||
import{d as D,aj as I,f as $,o as w,c as F,a6 as _,Z as r,a4 as c,a5 as l,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-08ef39cb.js";import{al as L,_ as N}from"./index.js";import{d as P}from"./schema-3cd89a70.js";import{g as R}from"./authorityApi-15a5fdf7.js";import{G as S,H as v,a4 as V}from"./antd-fb8ca017.js";const j={key:0},A=D({__name:"detail",setup(E){var p;const m=I(),g=$((p=m.params)==null?void 0:p.id),k=m.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(R(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?P.map(({title:e,dataIndex:o="",customRender:n})=>({key:o,title:e,value:n?n({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=_("a-button"),n=_("Image");return r(),c(a(V),{bordered:!1,loading:a(x)},{default:l(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:l(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:l(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:l(()=>[(r(!0),u(f,null,G(B.value,t=>(r(),c(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:l(()=>[t.key==="avatar"?(r(),u("span",j,[i(n,{style:{width:"100px"},src:t.value},null,8,["src"])])):(r(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const J=N(A,[["__scopeId","data-v-d041459a"]]);export{J as default};
|
|
@ -1 +0,0 @@
|
|||||||
[data-v-799749cb] .ant-card-body{padding-top:0}
|
|
@ -1 +0,0 @@
|
|||||||
import{d as D,aj as I,f as $,o as w,c as F,a6 as _,Z as r,a4 as c,a5 as l,k as i,u as a,G as y,_ as d,F as f,a7 as G,a0 as H}from"./vue-08ef39cb.js";import{al as L,_ as N}from"./index.js";import{d as P}from"./schema-86a5e5c4.js";import{g as R}from"./regionApi-ad45a6bd.js";import{G as S,H as v,a4 as V}from"./antd-fb8ca017.js";const j={key:0},A=D({__name:"detail",setup(E){var p;const m=I(),g=$((p=m.params)==null?void 0:p.id),k=m.meta.title,{state:u,isReady:b,isLoading:x,execute:C}=L(R(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?P.map(({title:e,dataIndex:o="",customRender:n})=>({key:o,title:e,value:n?n({text:u.value[o],record:u.value}):u.value[o]})):{});return(s,e)=>{const o=_("a-button"),n=_("Image");return r(),c(a(V),{bordered:!1,loading:a(x)},{default:l(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:l(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:l(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:l(()=>[(r(!0),d(f,null,G(B.value,t=>(r(),c(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:l(()=>[t.key==="avatar"?(r(),d("span",j,[i(n,{style:{width:"100px"},src:t.value},null,8,["src"])])):(r(),d(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const J=N(A,[["__scopeId","data-v-9ebe5099"]]);export{J as default};
|
|
@ -1 +0,0 @@
|
|||||||
[data-v-c831da6d] .ant-card-body{padding-top:0}
|
|
@ -1 +0,0 @@
|
|||||||
[data-v-d6db8810] .ant-card-body{padding-top:0}
|
|
@ -1 +0,0 @@
|
|||||||
import{d as D,aj as I,f as $,o as w,c as F,a6 as m,Z as l,a4 as _,a5 as n,k as i,u as a,G as y,_ as d,F as f,a7 as G,a0 as H}from"./vue-08ef39cb.js";import{al as L,_ as N}from"./index.js";import{g as P,d as R}from"./schema-a437f68d.js";import{G as S,H as v,a4 as V}from"./antd-fb8ca017.js";const j={key:0},A=D({__name:"detail",setup(E){var p;const c=I(),g=$((p=c.params)==null?void 0:p.id),k=c.meta.title,{state:u,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:u.value[o],record:u.value}):u.value[o]})):{});return(s,e)=>{const o=m("a-button"),r=m("Image");return l(),_(a(V),{bordered:!1,loading:a(x)},{default:n(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:n(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:n(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:n(()=>[(l(!0),d(f,null,G(B.value,t=>(l(),_(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:n(()=>[t.key==="avatar"?(l(),d("span",j,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(l(),d(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const z=N(A,[["__scopeId","data-v-799749cb"]]);export{z as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{d as D,aj as I,f as $,o as w,c as F,a6 as _,Z as l,a4 as c,a5 as n,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-08ef39cb.js";import{al as L,_ as N}from"./index.js";import{g as P,d as R}from"./schema-fc621ae3.js";import{G as S,H as v,a4 as V}from"./antd-fb8ca017.js";const j={key:0},A=D({__name:"detail",setup(E){var m;const p=I(),g=$((m=p.params)==null?void 0:m.id),k=p.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=_("a-button"),r=_("Image");return l(),c(a(V),{bordered:!1,loading:a(x)},{default:n(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:n(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:n(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:n(()=>[(l(!0),u(f,null,G(B.value,t=>(l(),c(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:n(()=>[t.key==="avatar"?(l(),u("span",j,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(l(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const z=N(A,[["__scopeId","data-v-d6db8810"]]);export{z as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{d as D,aj as I,f as $,o as w,c as F,a6 as m,Z as l,a4 as _,a5 as n,k as i,u as a,G as y,_ as u,F as f,a7 as G,a0 as H}from"./vue-08ef39cb.js";import{al as L,_ as N}from"./index.js";import{g as P,d as R}from"./schema-a80423cd.js";import{G as S,H as v,a4 as V}from"./antd-fb8ca017.js";const j={key:0},A=D({__name:"detail",setup(E){var p;const c=I(),g=$((p=c.params)==null?void 0:p.id),k=c.meta.title,{state:d,isReady:b,isLoading:x,execute:C}=L(P(g.value).then(s=>s),null,{immediate:!1});w(()=>{C()});const B=F(()=>b.value?R.map(({title:e,dataIndex:o="",customRender:r})=>({key:o,title:e,value:r?r({text:d.value[o],record:d.value}):d.value[o]})):{});return(s,e)=>{const o=m("a-button"),r=m("Image");return l(),_(a(V),{bordered:!1,loading:a(x)},{default:n(()=>[i(a(S),{title:a(k),onBack:e[1]||(e[1]=()=>s.$router.go(-1))},{extra:n(()=>[i(o,{type:"primary",onClick:e[0]||(e[0]=t=>s.$router.go(-1))},{default:n(()=>e[2]||(e[2]=[y("返回上一页面")])),_:1})]),_:1},8,["title"]),i(a(v),{bordered:"",column:3},{default:n(()=>[(l(!0),u(f,null,G(B.value,t=>(l(),_(a(v).Item,{key:t.key,label:t.title,span:["avatar"].includes(t.key)?3:1},{default:n(()=>[t.key==="avatar"?(l(),u("span",j,[i(r,{style:{width:"100px"},src:t.value},null,8,["src"])])):(l(),u(f,{key:1},[y(H(t.value),1)],64))]),_:2},1032,["label","span"]))),128))]),_:1})]),_:1},8,["loading"])}}});const z=N(A,[["__scopeId","data-v-c831da6d"]]);export{z as default};
|
|
@ -1 +0,0 @@
|
|||||||
var b=Object.defineProperty,j=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var u=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var w=(s,t,e)=>t in s?b(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,f=(s,t)=>{for(var e in t||(t={}))h.call(t,e)&&w(s,e,t[e]);if(u)for(var e of u(t))y.call(t,e)&&w(s,e,t[e]);return s},D=(s,t)=>j(s,L(t));var v=(s,t)=>{var e={};for(var r in s)h.call(s,r)&&t.indexOf(r)<0&&(e[r]=s[r]);if(s!=null&&u)for(var r of u(s))t.indexOf(r)<0&&y.call(s,r)&&(e[r]=s[r]);return e};var g=(s,t,e)=>new Promise((r,n)=>{var p=a=>{try{c(e.next(a))}catch(m){n(m)}},l=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?r(a.value):Promise.resolve(a.value).then(p,l);c((e=e.apply(s,t)).next())});import{u as C,B as H}from"./useForm-322569b9.js";import{f as I}from"./schema-86a5e5c4.js";import{a as M,B as O}from"./index-922f0b14.js";import{a as P,u as S}from"./regionApi-ad45a6bd.js";import{j as T}from"./antd-fb8ca017.js";import{d as U,f as B,c as V,u as i,Z as A,a4 as E,a5 as G,k as N,a9 as W}from"./vue-08ef39cb.js";import{_ as Z}from"./index.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./copyTextToClipboard-bf4926ca.js";const $=U({__name:"drawer",emits:["success","register"],setup(s,{emit:t}){const e=t,r=B(!0),n=B(),[p,{resetFields:l,setFieldsValue:c,validate:a}]=C({labelWidth:60,schemas:I,showActionButtonGroup:!1}),[m,{setDrawerProps:_,closeDrawer:F}]=M(o=>g(this,null,function*(){yield l(),_({confirmLoading:!1}),r.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(r)&&(yield c(f({},o.record)))})),x=V(()=>i(r)?"编辑":"新增");function R(){return g(this,null,function*(){try{const o=yield a();_({confirmLoading:!0});const d=v(o,[]),k=i(r)?S:P,Y=i(r)?Object.assign({},D(f(f({},i(n)),d),{updateTime:T().format("YYYY-MM-DD HH:mm:ss")})):f({},d);yield k(Y),F(),e("success")}finally{_({confirmLoading:!1})}})}return(o,d)=>(A(),E(i(O),W(o.$attrs,{onRegister:i(m),showFooter:"",title:x.value,width:"600px",onOk:R}),{default:G(()=>[N(i(H),{onRegister:i(p),name:"EditForm"},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});const ae=Z($,[["__scopeId","data-v-876102f7"]]);export{ae as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-6fccf3c1.js";import"./useForm-322569b9.js";import"./vue-08ef39cb.js";import"./index.js";import"./antd-fb8ca017.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./copyTextToClipboard-bf4926ca.js";import"./schema-fc621ae3.js";import"./index-922f0b14.js";export{o as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-b93f1b6b.js";import"./useForm-322569b9.js";import"./vue-08ef39cb.js";import"./index.js";import"./antd-fb8ca017.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./copyTextToClipboard-bf4926ca.js";import"./schema-3cd89a70.js";import"./index-922f0b14.js";import"./authorityApi-15a5fdf7.js";export{o as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-d2f36041.js";import"./useForm-322569b9.js";import"./vue-08ef39cb.js";import"./index.js";import"./antd-fb8ca017.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./copyTextToClipboard-bf4926ca.js";import"./schema-a437f68d.js";import"./index-922f0b14.js";export{o as default};
|
|
@ -1 +0,0 @@
|
|||||||
import{_ as o}from"./drawer.vue_vue_type_script_setup_true_lang-eec91392.js";import"./useForm-322569b9.js";import"./vue-08ef39cb.js";import"./index.js";import"./antd-fb8ca017.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./copyTextToClipboard-bf4926ca.js";import"./schema-a80423cd.js";import"./index-922f0b14.js";export{o as default};
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-322569b9.js";import{f as M,b as O,u as P}from"./schema-fc621ae3.js";import{a as S,B as T}from"./index-922f0b14.js";import{j as U}from"./antd-fb8ca017.js";import{d as V,f as F,c as A,u as i,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-08ef39cb.js";const Q=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=S(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),b=A(()=>i(t)?"编辑":"新增");function k(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),R=i(t)?P:O,Y=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield R(Y),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(T),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:b.value,width:"600px",onOk:k}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{Q as _};
|
|
@ -1 +0,0 @@
|
|||||||
var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-322569b9.js";import{f as M}from"./schema-3cd89a70.js";import{a as O,B as P}from"./index-922f0b14.js";import{b as S,u as T}from"./authorityApi-15a5fdf7.js";import{j as U}from"./antd-fb8ca017.js";import{d as V,f as F,u as i,c as A,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-08ef39cb.js";const X=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=O(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),b=A(()=>i(t)?"编辑":"新增");function k(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),R=i(t)?T:S,Y=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield R(Y),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(P),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:b.value,width:"600px",onOk:k}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{X as _};
|
|
@ -1 +0,0 @@
|
|||||||
var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-322569b9.js";import{f as M,b as O,u as P}from"./schema-a437f68d.js";import{a as S,B as T}from"./index-922f0b14.js";import{j as U}from"./antd-fb8ca017.js";import{d as V,f as F,c as A,u as i,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-08ef39cb.js";const Q=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=S(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),b=A(()=>i(t)?"编辑":"新增");function k(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),R=i(t)?P:O,Y=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield R(Y),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(T),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:b.value,width:"600px",onOk:k}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{Q as _};
|
|
@ -1 +0,0 @@
|
|||||||
var j=Object.defineProperty,x=Object.defineProperties;var L=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var h=(s,r,e)=>r in s?j(s,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[r]=e,u=(s,r)=>{for(var e in r||(r={}))_.call(r,e)&&h(s,e,r[e]);if(l)for(var e of l(r))B.call(r,e)&&h(s,e,r[e]);return s},D=(s,r)=>x(s,L(r));var y=(s,r)=>{var e={};for(var t in s)_.call(s,t)&&r.indexOf(t)<0&&(e[t]=s[t]);if(s!=null&&l)for(var t of l(s))r.indexOf(t)<0&&B.call(s,t)&&(e[t]=s[t]);return e};var g=(s,r,e)=>new Promise((t,n)=>{var f=a=>{try{c(e.next(a))}catch(m){n(m)}},p=a=>{try{c(e.throw(a))}catch(m){n(m)}},c=a=>a.done?t(a.value):Promise.resolve(a.value).then(f,p);c((e=e.apply(s,r)).next())});import{u as C,B as H}from"./useForm-322569b9.js";import{f as M,b as O,u as P}from"./schema-a80423cd.js";import{a as S,B as T}from"./index-922f0b14.js";import{j as U}from"./antd-fb8ca017.js";import{d as V,f as F,c as A,u as i,Z as G,a4 as I,a5 as N,k as W,a9 as Z}from"./vue-08ef39cb.js";const Q=V({__name:"drawer",emits:["success","register"],setup(s,{emit:r}){const e=r,t=F(!0),n=F(),[f,{resetFields:p,setFieldsValue:c,validate:a}]=C({labelWidth:120,schemas:M,showActionButtonGroup:!1}),[m,{setDrawerProps:d,closeDrawer:v}]=S(o=>g(this,null,function*(){yield p(),d({confirmLoading:!1}),t.value=!!(o!=null&&o.isUpdate),n.value=o==null?void 0:o.record,i(t)&&(yield c(u({},o.record)))})),b=A(()=>i(t)?"编辑":"新增");function k(){return g(this,null,function*(){try{const o=yield a();d({confirmLoading:!0});const w=y(o,[]),R=i(t)?P:O,Y=i(t)?Object.assign({},D(u(u({},i(n)),w),{updateTime:U().format("YYYY-MM-DD HH:mm:ss")})):u({},w);yield R(Y),v(),e("success")}finally{d({confirmLoading:!1})}})}return(o,w)=>(G(),I(i(T),Z(o.$attrs,{onRegister:i(m),showFooter:"",title:b.value,width:"600px",onOk:k}),{default:N(()=>[W(i(H),{onRegister:i(f)},null,8,["onRegister"])]),_:1},16,["onRegister","title"]))}});export{Q as _};
|
|
@ -1 +0,0 @@
|
|||||||
var D=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var S=(a,d)=>{var i={};for(var t in a)j.call(a,t)&&d.indexOf(t)<0&&(i[t]=a[t]);if(a!=null&&D)for(var t of D(a))d.indexOf(t)<0&&H.call(a,t)&&(i[t]=a[t]);return i};import{j as I,k as N,m as O}from"./index.js";import{u as V,B as E}from"./useTable-f8594a7b.js";import{T as F}from"./useForm-322569b9.js";import{j as b}from"./antd-fb8ca017.js";import{r as K,s as z,c as G,a as Y}from"./schema-a437f68d.js";import{u as U}from"./index-922f0b14.js";import{_ as W}from"./drawer.vue_vue_type_script_setup_true_lang-d2f36041.js";import{d as Z,a6 as q,Z as y,_ as J,k as g,a5 as _,G as L,a4 as Q,u,a8 as X}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";const fe=Z({name:"StoragePlanPage",__name:"index",setup(a){I();const d=N(),[i,{openDrawer:t}]=U(),[k,{reload:w,setSelectedRowKeys:v}]=V({api:e=>z(x(e)),columns:G,formConfig:{labelWidth:120,schemas:Y,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),x=(e,l=!0)=>{const C=e,{pageNum:p,pageSize:f,field:c="id",order:A="descend"}=C,M=S(C,["pageNum","pageSize","field","order"]),n={pageNum:p,pageSize:f,orderByClause:`${c} ${A==="descend"?"desc":"asc"}`};return Object.keys(M).forEach(h=>{const r=Y.find(m=>m.field===h),o=e[h],s=h;if(r){if(o!==void 0&&o!=="")if(r.component==="Input"){const m=l?"":"%";n[s]=`${m}${o.trim()}${m}`}else["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?n[s]=O(o)?o.value:o:r.component==="RangePicker"?(n[`${s}From`]=b(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),n[`${s}To`]=b(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?n[s]=b(o).format(r.componentProps.format||"YYYY-MM-DD"):n[s]=o}else n[s]=o}),n},T=()=>{t(!0,{isUpdate:!1})},P=e=>{t(!0,{record:e,isUpdate:!0})},R=e=>{K(e.id).then(l=>{w(),v([])})},$=()=>{w()},B=e=>{d("/system/storage-plan/detail/"+e.id)};return(e,l)=>{const p=q("a-button");return y(),J("div",null,[g(u(E),{onRegister:u(k)},{toolbar:_(()=>[g(p,{type:"primary",onClick:T},{default:_(()=>l[0]||(l[0]=[L(" 新增")])),_:1})]),bodyCell:_(({column:f,record:c})=>[f.dataIndex==="action"?(y(),Q(u(F),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:P.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:B.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:R.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):X("",!0)]),_:1},8,["onRegister"]),g(W,{onRegister:u(i),onSuccess:$},null,8,["onRegister"])])}}});export{fe as default};
|
|
@ -1 +0,0 @@
|
|||||||
var D=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var Y=(n,d)=>{var i={};for(var t in n)j.call(n,t)&&d.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&D)for(var t of D(n))d.indexOf(t)<0&&H.call(n,t)&&(i[t]=n[t]);return i};import{j as I,k as N,m as O}from"./index.js";import{u as V,B as E}from"./useTable-f8594a7b.js";import{T as F}from"./useForm-322569b9.js";import{j as b}from"./antd-fb8ca017.js";import{r as K,s as z,c as G,a as y}from"./schema-fc621ae3.js";import{u as U}from"./index-922f0b14.js";import{_ as W}from"./drawer.vue_vue_type_script_setup_true_lang-6fccf3c1.js";import{d as Z,a6 as q,Z as S,_ as J,k as g,a5 as _,G as L,a4 as Q,u,a8 as X}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";const fe=Z({name:"ConstantPage",__name:"index",setup(n){I();const d=N(),[i,{openDrawer:t}]=U(),[k,{reload:C,setSelectedRowKeys:v}]=V({api:e=>z(x(e)),columns:G,formConfig:{labelWidth:120,schemas:y,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),x=(e,l=!0)=>{const w=e,{pageNum:p,pageSize:f,field:c="id",order:A="descend"}=w,M=Y(w,["pageNum","pageSize","field","order"]),a={pageNum:p,pageSize:f,orderByClause:`${c} ${A==="descend"?"desc":"asc"}`};return Object.keys(M).forEach(h=>{const r=y.find(m=>m.field===h),o=e[h],s=h;if(r){if(o!==void 0&&o!=="")if(r.component==="Input"){const m=l?"":"%";a[s]=`${m}${o.trim()}${m}`}else["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?a[s]=O(o)?o.value:o:r.component==="RangePicker"?(a[`${s}From`]=b(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),a[`${s}To`]=b(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?a[s]=b(o).format(r.componentProps.format||"YYYY-MM-DD"):a[s]=o}else a[s]=o}),a},T=()=>{t(!0,{isUpdate:!1})},R=e=>{t(!0,{record:e,isUpdate:!0})},$=e=>{K(e.id).then(l=>{C(),v([])})},B=()=>{C()},P=e=>{d("/system/constant/detail/"+e.id)};return(e,l)=>{const p=q("a-button");return S(),J("div",null,[g(u(E),{onRegister:u(k)},{toolbar:_(()=>[g(p,{type:"primary",onClick:T},{default:_(()=>l[0]||(l[0]=[L(" 新增")])),_:1})]),bodyCell:_(({column:f,record:c})=>[f.dataIndex==="action"?(S(),Q(u(F),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:R.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:P.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:$.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):X("",!0)]),_:1},8,["onRegister"]),g(W,{onRegister:u(i),onSuccess:B},null,8,["onRegister"])])}}});export{fe as default};
|
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
var A=Object.getOwnPropertySymbols;var K=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var C=(a,p)=>{var i={};for(var o in a)K.call(a,o)&&p.indexOf(o)<0&&(i[o]=a[o]);if(a!=null&&A)for(var o of A(a))p.indexOf(o)<0&&z.call(a,o)&&(i[o]=a[o]);return i};import{j as G,k as L,m as W,l as Z}from"./index.js";import{u as q,B as J}from"./useTable-f8594a7b.js";import{T as Q}from"./useForm-322569b9.js";import{j as b,N as X,P as ee}from"./antd-fb8ca017.js";import{s as te,r as oe,c as se}from"./authorityApi-15a5fdf7.js";import{u as ne}from"./index-922f0b14.js";import{_ as ae}from"./drawer.vue_vue_type_script_setup_true_lang-b93f1b6b.js";import{c as re,s as E}from"./schema-3cd89a70.js";import{d as ie,f as le,a6 as ce,n as de,Z as m,_ as y,k as _,a5 as c,u as n,F as me,$ as H,a0 as ue,G as R,a4 as v,a8 as x,m as fe}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";const pe={key:1},He=ie({name:"AUTH_SYSTEM_AUTHORITY",__name:"index",setup(a){const{createMessage:p}=Z(),{hasPermission:i}=G(),o=L(),u=le([]),M=e=>{u.value=e.filter(t=>typeof t!="undefined")},[U,{openDrawer:k}]=ne(),[I,{reload:g,setSelectedRowKeys:S}]=q({title:"权限表",api:e=>te(B(e)),columns:re,formConfig:{labelWidth:120,schemas:E,showAdvancedButton:!1},rowSelection:{type:"checkbox",onChange:M},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),B=e=>{const w=e,{pageNum:t,pageSize:h,field:D="id",order:T="descend"}=w,f=C(w,["pageNum","pageSize","field","order"]),r={pageNum:t,pageSize:h,orderByClause:`${D} ${T==="descend"?"desc":"asc"}`};return Object.keys(f).forEach(Y=>{const d=E.find(V=>V.field===Y),s=e[Y],l=Y;d?s!==void 0&&s!==""&&(d.component==="Input"?r[l]=`%${s.trim()}%`:["Select","ApiSelect","ApiTreeSelect"].includes(d.component)?r[l]=W(s)?s.value:s:d.component==="RangePicker"?(r[`${l}From`]=b(s[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),r[`${l}To`]=b(s[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):d.component==="DatePicker"?r[l]=b(s).format(d.componentProps.format||"YYYY-MM-DD"):r[l]=s):r[l]=s}),r},O=()=>{k(!0,{isUpdate:!1})},P=e=>{k(!0,{record:e,isUpdate:!0})},$=e=>{oe(e.id).then(t=>{g(),S([])})},N=()=>{if(u.value.length===0){p.error("当前未选中任何项目!");return}se(u.value).then(e=>{g(),S([])})},j=()=>{g()},F=e=>{o("/system/authority/detail/"+e.id)};return(e,t)=>{const h=ce("a-button"),D=de("auth");return m(),y("div",null,[_(n(J),{onRegister:n(I)},{headerTop:c(()=>[_(n(X),{type:"info","show-icon":""},{message:c(()=>[u.value.length>0?(m(),y(me,{key:0},[H("span",null,"已选中"+ue(u.value.length)+"条记录",1),_(h,{type:"link",onClick:t[0]||(t[0]=T=>n(S)([])),size:"small"},{default:c(()=>t[1]||(t[1]=[R("清空")])),_:1}),n(i)("AUTH_SYSTEM_AUTHORITY:DELETE")?(m(),v(n(ee),{key:0,class:"ml-4",title:"确定要全部删除吗?","ok-text":"是","cancel-text":"否",onConfirm:N},{default:c(()=>t[2]||(t[2]=[H("a",{href:"#",class:"text-red-500"},"删除",-1)])),_:1})):x("",!0)],64)):(m(),y("span",pe,"未选中任何项目"))]),_:1})]),toolbar:c(()=>[fe((m(),v(h,{type:"primary",onClick:O},{default:c(()=>t[3]||(t[3]=[R(" 新增")])),_:1})),[[D,"AUTH_SYSTEM_AUTHORITY:ADD"]])]),bodyCell:c(({column:T,record:f})=>[T.dataIndex==="action"?(m(),v(n(Q),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:P.bind(null,f),ifShow:n(i)("AUTH_SYSTEM_AUTHORITY:EDIT"),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:F.bind(null,f),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:$.bind(null,f),placement:"topRight"},ifShow:n(i)("AUTH_SYSTEM_AUTHORITY:DELETE")}]},null,8,["actions","dropDownActions"])):x("",!0)]),_:1},8,["onRegister"]),_(ae,{onRegister:n(U),onSuccess:j},null,8,["onRegister"])])}}});export{He as default};
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
import{N as _,y as B,a_ as T,u as y,a5 as l,_ as D}from"./index.js";import{c as d,u as L}from"./index-094bd341.js";import{aS as P}from"./antd-fb8ca017.js";import{d as w,c as f,u as t,Z as s,_ as C,k as E,a4 as S,a8 as k,a1 as F,F as v,a6 as a}from"./vue-08ef39cb.js";import"./index-5222460c.js";import"./index-be3bd629.js";import"./useContentViewHeight-3410df66.js";import"./useWindowSizeFn-40274562.js";import"./lock-4bf6aa77.js";const x=w({name:"LayoutFeatures",components:{BackTop:P,LayoutLockPage:d(()=>_(()=>import("./index-7bc3df1d.js"),["./index-7bc3df1d.js","./vue-08ef39cb.js","./LockPage-5a118990.js","./index.js","./antd-fb8ca017.js","./index-b5b5c2ac.css","./lock-4bf6aa77.js","./header-b90f4bbc.js","./LockPage-b0b08e00.css"],import.meta.url)),SettingDrawer:d(()=>_(()=>import("./index-1adf9d7f.js").then(e=>e.i),["./index-1adf9d7f.js","./index-922f0b14.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-b5b5c2ac.css","./index-ac2d527c.css","./index-094bd341.js","./index-5222460c.js","./index-be3bd629.js","./useContentViewHeight-3410df66.js","./useWindowSizeFn-40274562.js","./index-054645fa.css","./lock-4bf6aa77.js","./index-fffcad33.css"],import.meta.url))},setup(){const{getUseOpenBackTop:e,getShowSettingButton:i,getSettingButtonPosition:u,getFullContent:c}=B(),p=T(),{prefixCls:m}=y("setting-drawer-feature"),{getShowHeader:o}=L(),n=f(()=>p.getSessionTimeout),r=f(()=>{if(!t(i))return!1;const g=t(u);return g===l.AUTO?!t(o)||t(c):g===l.FIXED});return{getTarget:()=>document.body,getUseOpenBackTop:e,getIsFixedSettingDrawer:r,prefixCls:m,getIsSessionTimeout:n}}});function I(e,i,u,c,p,m){const o=a("LayoutLockPage"),n=a("BackTop"),r=a("SettingDrawer");return s(),C(v,null,[E(o),e.getUseOpenBackTop?(s(),S(n,{key:0,target:e.getTarget},null,8,["target"])):k("",!0),e.getIsFixedSettingDrawer?(s(),S(r,{key:1,class:F(e.prefixCls)},null,8,["class"])):k("",!0)],64)}const b=D(x,[["render",I]]);export{b as default};
|
import{N as _,y as B,a_ as T,u as y,a5 as l,_ as D}from"./index.js";import{c as d,u as L}from"./index-094bd341.js";import{aS as P}from"./antd-fb8ca017.js";import{d as w,c as f,u as t,Z as s,_ as C,k as E,a4 as S,a8 as k,a1 as F,F as v,a6 as a}from"./vue-08ef39cb.js";import"./index-5222460c.js";import"./index-be3bd629.js";import"./useContentViewHeight-3410df66.js";import"./useWindowSizeFn-40274562.js";import"./lock-4bf6aa77.js";const x=w({name:"LayoutFeatures",components:{BackTop:P,LayoutLockPage:d(()=>_(()=>import("./index-7bc3df1d.js"),["./index-7bc3df1d.js","./vue-08ef39cb.js","./LockPage-5a118990.js","./index.js","./antd-fb8ca017.js","./index-50de0f48.css","./lock-4bf6aa77.js","./header-b90f4bbc.js","./LockPage-b0b08e00.css"],import.meta.url)),SettingDrawer:d(()=>_(()=>import("./index-1adf9d7f.js").then(e=>e.i),["./index-1adf9d7f.js","./index-922f0b14.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-50de0f48.css","./index-ac2d527c.css","./index-094bd341.js","./index-5222460c.js","./index-be3bd629.js","./useContentViewHeight-3410df66.js","./useWindowSizeFn-40274562.js","./index-054645fa.css","./lock-4bf6aa77.js","./index-fffcad33.css"],import.meta.url))},setup(){const{getUseOpenBackTop:e,getShowSettingButton:i,getSettingButtonPosition:u,getFullContent:c}=B(),p=T(),{prefixCls:m}=y("setting-drawer-feature"),{getShowHeader:o}=L(),n=f(()=>p.getSessionTimeout),r=f(()=>{if(!t(i))return!1;const g=t(u);return g===l.AUTO?!t(o)||t(c):g===l.FIXED});return{getTarget:()=>document.body,getUseOpenBackTop:e,getIsFixedSettingDrawer:r,prefixCls:m,getIsSessionTimeout:n}}});function I(e,i,u,c,p,m){const o=a("LayoutLockPage"),n=a("BackTop"),r=a("SettingDrawer");return s(),C(v,null,[E(o),e.getUseOpenBackTop?(s(),S(n,{key:0,target:e.getTarget},null,8,["target"])):k("",!0),e.getIsFixedSettingDrawer?(s(),S(r,{key:1,class:F(e.prefixCls)},null,8,["class"])):k("",!0)],64)}const b=D(x,[["render",I]]);export{b as default};
|
||||||
|
@ -1 +1 @@
|
|||||||
import{N as D,p as U,u as b,ak as N,o as O,U as P,b9 as S,_ as x}from"./index.js";import{D as A}from"./siteSetting-efd6ab5b.js";import{c as v,u as E}from"./index-094bd341.js";import{b as R}from"./index-9a268806.js";import{h as V}from"./header-b90f4bbc.js";import{D as B,q as L}from"./antd-fb8ca017.js";import{d as T,c as F,Z as l,_ as q,k as t,a5 as g,F as z,a6 as n,a4 as k,a8 as _,$ as a,a1 as s,a0 as I}from"./vue-08ef39cb.js";import"./index-5222460c.js";import"./index-be3bd629.js";import"./useContentViewHeight-3410df66.js";import"./useWindowSizeFn-40274562.js";import"./lock-4bf6aa77.js";const H=T({name:"UserDropdown",components:{Dropdown:B,Menu:L,MenuItem:v(()=>D(()=>import("./DropMenuItem-fd789d02.js"),["./DropMenuItem-fd789d02.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-b5b5c2ac.css"],import.meta.url)),MenuDivider:L.Divider,LockAction:v(()=>D(()=>import("./LockModal-d04426a6.js"),["./LockModal-d04426a6.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-b5b5c2ac.css","./index-9a268806.js","./useWindowSizeFn-40274562.js","./index-7064e331.css","./useForm-322569b9.js","./copyTextToClipboard-bf4926ca.js","./useForm-01d9c31d.css","./lock-4bf6aa77.js","./header-b90f4bbc.js","./LockModal-ca58db68.css"],import.meta.url))},props:{theme:U.oneOf(["dark","light"])},setup(){const{prefixCls:e}=b("header-user-dropdown"),{t:h}=O(),{getShowDoc:C,getUseLockPage:w}=E(),c=N(),y=F(()=>{const{realName:f="",avatar:M,tenant:$}=c.getUserInfo||{};return{realName:f,avatar:M||V,desc:"",tenant:$}}),[o,{openModal:p}]=R();function u(){p(!0)}function d(){c.confirmLoginOut()}function m(){P(A)}function r(){S.push("/change-password")}function i(f){switch(f.key){case"password":r();break;case"logout":d();break;case"doc":m();break;case"lock":u();break}}return{prefixCls:e,t:h,getUserInfo:y,handleMenuClick:i,getShowDoc:C,register:o,getUseLockPage:w}}});const W=["src"];function Z(e,h,C,w,c,y){const o=n("MenuItem"),p=n("MenuDivider"),u=n("Menu"),d=n("Dropdown"),m=n("LockAction");return l(),q(z,null,[t(d,{placement:"bottomLeft",overlayClassName:`${e.prefixCls}-dropdown-overlay`},{overlay:g(()=>[t(u,{onClick:e.handleMenuClick},{default:g(()=>[e.getShowDoc?(l(),k(o,{key:"doc",text:e.t("layout.header.dropdownItemDoc"),icon:"ion:document-text-outline"},null,8,["text"])):_("",!0),e.getShowDoc?(l(),k(p,{key:1})):_("",!0),e.getUseLockPage?(l(),k(o,{key:"lock",text:e.t("layout.header.tooltipLock"),icon:"ion:lock-closed-outline"},null,8,["text"])):_("",!0),t(o,{key:"password",text:e.t("layout.header.tooltipChangePassword"),icon:"ion:document-lock-outline"},null,8,["text"]),t(o,{key:"logout",text:e.t("layout.header.dropdownItemLoginOut"),icon:"ion:power-outline"},null,8,["text"])]),_:1},8,["onClick"])]),default:g(()=>{var r,i;return[a("span",{class:s([[e.prefixCls,`${e.prefixCls}--${e.theme}`],"flex"])},[a("span",{style:{"margin-right":"10px"},class:s(`${e.prefixCls}__name`)},I((i=(r=e.getUserInfo.tenant)==null?void 0:r.productList)==null?void 0:i[0].name),3),a("img",{class:s(`${e.prefixCls}__header`),src:e.getUserInfo.avatar},null,10,W),a("span",{class:s(`${e.prefixCls}__info hidden md:block`)},[a("span",{class:s([`${e.prefixCls}__name`,"truncate"])},I(e.getUserInfo.realName),3)],2)],2)]}),_:1},8,["overlayClassName"]),t(m,{onRegister:e.register},null,8,["onRegister"])],64)}const se=x(H,[["render",Z]]);export{se as default};
|
import{N as D,p as U,u as b,ak as N,o as O,U as P,b9 as S,_ as x}from"./index.js";import{D as A}from"./siteSetting-efd6ab5b.js";import{c as v,u as E}from"./index-094bd341.js";import{b as R}from"./index-9a268806.js";import{h as V}from"./header-b90f4bbc.js";import{D as B,q as L}from"./antd-fb8ca017.js";import{d as T,c as F,Z as l,_ as q,k as t,a5 as g,F as z,a6 as n,a4 as k,a8 as _,$ as a,a1 as s,a0 as I}from"./vue-08ef39cb.js";import"./index-5222460c.js";import"./index-be3bd629.js";import"./useContentViewHeight-3410df66.js";import"./useWindowSizeFn-40274562.js";import"./lock-4bf6aa77.js";const H=T({name:"UserDropdown",components:{Dropdown:B,Menu:L,MenuItem:v(()=>D(()=>import("./DropMenuItem-fd789d02.js"),["./DropMenuItem-fd789d02.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-50de0f48.css"],import.meta.url)),MenuDivider:L.Divider,LockAction:v(()=>D(()=>import("./LockModal-d04426a6.js"),["./LockModal-d04426a6.js","./index.js","./vue-08ef39cb.js","./antd-fb8ca017.js","./index-50de0f48.css","./index-9a268806.js","./useWindowSizeFn-40274562.js","./index-7064e331.css","./useForm-322569b9.js","./copyTextToClipboard-bf4926ca.js","./useForm-01d9c31d.css","./lock-4bf6aa77.js","./header-b90f4bbc.js","./LockModal-ca58db68.css"],import.meta.url))},props:{theme:U.oneOf(["dark","light"])},setup(){const{prefixCls:e}=b("header-user-dropdown"),{t:h}=O(),{getShowDoc:C,getUseLockPage:w}=E(),c=N(),y=F(()=>{const{realName:f="",avatar:M,tenant:$}=c.getUserInfo||{};return{realName:f,avatar:M||V,desc:"",tenant:$}}),[o,{openModal:p}]=R();function u(){p(!0)}function d(){c.confirmLoginOut()}function m(){P(A)}function r(){S.push("/change-password")}function i(f){switch(f.key){case"password":r();break;case"logout":d();break;case"doc":m();break;case"lock":u();break}}return{prefixCls:e,t:h,getUserInfo:y,handleMenuClick:i,getShowDoc:C,register:o,getUseLockPage:w}}});const W=["src"];function Z(e,h,C,w,c,y){const o=n("MenuItem"),p=n("MenuDivider"),u=n("Menu"),d=n("Dropdown"),m=n("LockAction");return l(),q(z,null,[t(d,{placement:"bottomLeft",overlayClassName:`${e.prefixCls}-dropdown-overlay`},{overlay:g(()=>[t(u,{onClick:e.handleMenuClick},{default:g(()=>[e.getShowDoc?(l(),k(o,{key:"doc",text:e.t("layout.header.dropdownItemDoc"),icon:"ion:document-text-outline"},null,8,["text"])):_("",!0),e.getShowDoc?(l(),k(p,{key:1})):_("",!0),e.getUseLockPage?(l(),k(o,{key:"lock",text:e.t("layout.header.tooltipLock"),icon:"ion:lock-closed-outline"},null,8,["text"])):_("",!0),t(o,{key:"password",text:e.t("layout.header.tooltipChangePassword"),icon:"ion:document-lock-outline"},null,8,["text"]),t(o,{key:"logout",text:e.t("layout.header.dropdownItemLoginOut"),icon:"ion:power-outline"},null,8,["text"])]),_:1},8,["onClick"])]),default:g(()=>{var r,i;return[a("span",{class:s([[e.prefixCls,`${e.prefixCls}--${e.theme}`],"flex"])},[a("span",{style:{"margin-right":"10px"},class:s(`${e.prefixCls}__name`)},I((i=(r=e.getUserInfo.tenant)==null?void 0:r.productList)==null?void 0:i[0].name),3),a("img",{class:s(`${e.prefixCls}__header`),src:e.getUserInfo.avatar},null,10,W),a("span",{class:s(`${e.prefixCls}__info hidden md:block`)},[a("span",{class:s([`${e.prefixCls}__name`,"truncate"])},I(e.getUserInfo.realName),3)],2)],2)]}),_:1},8,["overlayClassName"]),t(m,{onRegister:e.register},null,8,["onRegister"])],64)}const se=x(H,[["render",Z]]);export{se as default};
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
var D=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable;var Y=(n,d)=>{var i={};for(var t in n)j.call(n,t)&&d.indexOf(t)<0&&(i[t]=n[t]);if(n!=null&&D)for(var t of D(n))d.indexOf(t)<0&&H.call(n,t)&&(i[t]=n[t]);return i};import{j as I,k as N,m as O}from"./index.js";import{u as V,B as E}from"./useTable-f8594a7b.js";import{T as F}from"./useForm-322569b9.js";import{j as b}from"./antd-fb8ca017.js";import{r as K,s as z,c as G,a as y}from"./schema-a80423cd.js";import{u as U}from"./index-922f0b14.js";import{_ as W}from"./drawer.vue_vue_type_script_setup_true_lang-eec91392.js";import{d as Z,a6 as q,Z as S,_ as J,k as g,a5 as _,G as L,a4 as Q,u,a8 as X}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";const fe=Z({name:"AlgoPage",__name:"index",setup(n){I();const d=N(),[i,{openDrawer:t}]=U(),[k,{reload:w,setSelectedRowKeys:v}]=V({api:e=>z(x(e)),columns:G,formConfig:{labelWidth:120,schemas:y,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:e=>e.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),x=(e,l=!0)=>{const C=e,{pageNum:p,pageSize:f,field:c="id",order:P="descend"}=C,M=Y(C,["pageNum","pageSize","field","order"]),a={pageNum:p,pageSize:f,orderByClause:`${c} ${P==="descend"?"desc":"asc"}`};return Object.keys(M).forEach(h=>{const r=y.find(m=>m.field===h),o=e[h],s=h;if(r){if(o!==void 0&&o!=="")if(r.component==="Input"){const m=l?"":"%";a[s]=`${m}${o.trim()}${m}`}else["Select","ApiSelect","ApiTreeSelect"].includes(r.component)?a[s]=O(o)?o.value:o:r.component==="RangePicker"?(a[`${s}From`]=b(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),a[`${s}To`]=b(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):r.component==="DatePicker"?a[s]=b(o).format(r.componentProps.format||"YYYY-MM-DD"):a[s]=o}else a[s]=o}),a},T=()=>{t(!0,{isUpdate:!1})},R=e=>{t(!0,{record:e,isUpdate:!0})},$=e=>{K(e.id).then(l=>{w(),v([])})},A=()=>{w()},B=e=>{d("/system/algo/detail/"+e.id)};return(e,l)=>{const p=q("a-button");return S(),J("div",null,[g(u(E),{onRegister:u(k)},{toolbar:_(()=>[g(p,{type:"primary",onClick:T},{default:_(()=>l[0]||(l[0]=[L(" 新增")])),_:1})]),bodyCell:_(({column:f,record:c})=>[f.dataIndex==="action"?(S(),Q(u(F),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:R.bind(null,c),divider:!0},{label:"详情",icon:"ant-design:eye-outlined",onClick:B.bind(null,c),divider:!0}],dropDownActions:[{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:$.bind(null,c),placement:"topRight"}}]},null,8,["actions","dropDownActions"])):X("",!0)]),_:1},8,["onRegister"]),g(W,{onRegister:u(i),onSuccess:A},null,8,["onRegister"])])}}});export{fe as default};
|
|
@ -1 +0,0 @@
|
|||||||
var S=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var w=(s,d)=>{var i={};for(var e in s)M.call(s,e)&&d.indexOf(e)<0&&(i[e]=s[e]);if(s!=null&&S)for(var e of S(s))d.indexOf(e)<0&&O.call(s,e)&&(i[e]=s[e]);return i};import{j,k as N,S as A,m as H,_ as V}from"./index.js";import{u as z,B as E}from"./useTable-f8594a7b.js";import{T as F}from"./useForm-322569b9.js";import{O as K,j as g}from"./antd-fb8ca017.js";import{r as G,s as U}from"./regionApi-ad45a6bd.js";import{u as W}from"./index-922f0b14.js";import Z from"./drawer-14fca2a9.js";import{c as q,s as x}from"./schema-86a5e5c4.js";import{d as J,a6 as L,Z as D,_ as Q,$ as Y,k as u,u as l,a5 as b,l as X,G as ee,a4 as te,a8 as oe}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";const se={class:"header"},ae=J({name:"RegionPage",__name:"index",setup(s){j(),N();const[d,{openDrawer:i}]=W(),[e,{reload:v,setSelectedRowKeys:y}]=z({api:t=>U(R(t)),columns:q,formConfig:{labelWidth:0,schemas:x,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,rowKey:t=>t.id,actionColumn:{width:170,title:"操作",dataIndex:"action",fixed:"right"}}),R=(t,n=!0)=>{const C=t,{pageNum:f,pageSize:_,field:m="id",order:$="descend"}=C,I=w(C,["pageNum","pageSize","field","order"]),a={pageNum:f,pageSize:_,orderByClause:`${m} ${$==="descend"?"desc":"asc"}`};return Object.keys(I).forEach(h=>{const c=x.find(p=>p.field===h),o=t[h],r=h;if(c){if(o!==void 0&&o!=="")if(c.component==="Input"){const p=n?"":"%";a[r]=`${p}${o.trim()}${p}`}else["Select","ApiSelect","ApiTreeSelect"].includes(c.component)?a[r]=H(o)?o.value:o:c.component==="RangePicker"?(a[`${r}From`]=g(o[0]).startOf("d").format("YYYY-MM-DD HH:mm:ss"),a[`${r}To`]=g(o[1]).endOf("d").format("YYYY-MM-DD HH:mm:ss")):c.component==="DatePicker"?a[r]=g(o).format(c.componentProps.format||"YYYY-MM-DD"):a[r]=o}else a[r]=o}),a},k=()=>{i(!0,{isUpdate:!1})},T=t=>{i(!0,{record:t,isUpdate:!0})},B=t=>{G(t.id).then(n=>{v(),y([])})},P=()=>{v()};return(t,n)=>{const f=L("a-button");return D(),Q("div",null,[Y("div",se,[u(l(A),{size:"19",name:"list"}),n[0]||(n[0]=Y("div",{class:"title"},"区域列表",-1))]),u(l(E),{onRegister:l(e)},{toolbar:b(()=>[u(f,{type:"primary",onClick:k,icon:X(l(K))},{default:b(()=>n[1]||(n[1]=[ee("新增")])),_:1},8,["icon"])]),bodyCell:b(({column:_,record:m})=>[_.dataIndex==="action"?(D(),te(l(F),{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:T.bind(null,m),divider:!0},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:B.bind(null,m),placement:"topRight"}}]},null,8,["actions"])):oe("",!0)]),_:1},8,["onRegister"]),u(Z,{onRegister:l(d),onSuccess:P},null,8,["onRegister"])])}}});const Ce=V(ae,[["__scopeId","data-v-874a504f"]]);export{Ce as default};
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{B as g,u as C}from"./useTable-f8594a7b.js";import{T as v}from"./useForm-322569b9.js";import{S as w,r as T,l as B,s as S,_ as R}from"./index.js";import{u as k}from"./index-922f0b14.js";import{R as D,c as y,s as I}from"./drawer-e97b5bda.js";import{O as $}from"./antd-fb8ca017.js";import{d as A,l as E,a6 as a,Z as _,_ as F,$ as h,k as r,a5 as m,G as N,a4 as V,a8 as O}from"./vue-08ef39cb.js";import"./index-9a268806.js";import"./useWindowSizeFn-40274562.js";import"./onMountedOrActivated-4630d53b.js";import"./sortable.esm-15c0a34e.js";import"./copyTextToClipboard-bf4926ca.js";import"./authorityApi-15a5fdf7.js";const P=A({name:"UserPage",methods:{PlusOutlined:$,h:E},components:{SvgIcon:w,BasicTable:g,RoleDrawer:D,TableAction:v},setup(){const{createMessage:e}=B(),[o,{openDrawer:i}]=k(),[p,{reload:l}]=C({api:S,columns:y,formConfig:{labelWidth:0,schemas:I,showAdvancedButton:!1},useSearchForm:!0,showTableSetting:!1,bordered:!0,showIndexColumn:!1,canResize:!1,pagination:!1,actionColumn:{width:80,title:"操作",dataIndex:"action",fixed:void 0}});function f(){i(!0,{isUpdate:!1})}function c(t){i(!0,{record:t,isUpdate:!0})}function u(t){T(t.id).then(n=>{e.success("删除用户成功!"),l()},n=>{e.error(`删除用户失败:${n}`)})}function d(){l()}return{registerTable:p,registerDrawer:o,handleCreate:f,handleEdit:c,handleDelete:u,handleSuccess:d}}});const U={class:"header"};function x(e,o,i,p,l,f){const c=a("SvgIcon"),u=a("a-button"),d=a("TableAction"),t=a("BasicTable"),n=a("RoleDrawer");return _(),F("div",null,[h("div",U,[r(c,{size:"19",name:"list"}),o[0]||(o[0]=h("div",{class:"title"},"用户列表",-1))]),r(t,{onRegister:e.registerTable},{toolbar:m(()=>[r(u,{type:"primary",onClick:e.handleCreate,icon:e.h(e.PlusOutlined)},{default:m(()=>o[1]||(o[1]=[N("新增用户 ")])),_:1},8,["onClick","icon"])]),bodyCell:m(({column:b,record:s})=>[b.key==="action"?(_(),V(d,{key:0,actions:[{label:"编辑",icon:"clarity:note-edit-line",onClick:e.handleEdit.bind(null,s),divider:!0,disabled:s.username==="admin"},{label:"删除",icon:"ant-design:delete-outlined",color:"error",popConfirm:{title:"是否确认删除",confirm:e.handleDelete.bind(null,s),placement:"topRight"},disabled:s.username==="admin"}]},null,8,["actions"])):O("",!0)]),_:1},8,["onRegister"]),r(n,{onRegister:e.registerDrawer,onSuccess:e.handleSuccess},null,8,["onRegister","onSuccess"])])}const Y=R(P,[["render",x],["__scopeId","data-v-f25e0200"]]);export{Y as default};
|
|
44
detect.gui/Embedded/dist/assets/index.js
vendored
44
detect.gui/Embedded/dist/assets/index.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
var P=Object.defineProperty,T=Object.defineProperties;var D=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var c=(e,a,t)=>a in e?P(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,o=(e,a)=>{for(var t in a||(a={}))m.call(a,t)&&c(e,t,a[t]);if(d)for(var t of d(a))u.call(a,t)&&c(e,t,a[t]);return e},p=(e,a)=>T(e,D(a));var f=(e,a)=>{var t={};for(var l in e)m.call(e,l)&&a.indexOf(l)<0&&(t[l]=e[l]);if(e!=null&&d)for(var l of d(e))a.indexOf(l)<0&&u.call(e,l)&&(t[l]=e[l]);return t};import{am as r}from"./index.js";const n="/v1/system/constant",V=e=>r.post({url:`${n}/`,data:e}),$=(e,a=!1)=>r.put({url:`${n}/`,data:e,params:{updateAllFields:a}}),A=e=>r.delete({url:`${n}/${e}`}),B=e=>r.get({url:`${n}/search`,params:e}),y=e=>r.get({url:`${n}/${e}`}),s={xs:{span:24},sm:{span:24},lg:{span:8}},F={span:24},i={model:"Constant",viewInPage:!1,properties:[{field:"id",label:"ID系统自动生成",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"ID系统自动生成"},colProps:s,component:"InputNumber",rules:[{required:!0,message:"请输入ID系统自动生成!"}]},table:{}},{field:"code",label:"编码",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"编码"},colProps:s,component:"Input",rules:[{required:!0,message:"请输入编码!"}]},table:{}},{field:"name",label:"名称",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"名称"},colProps:s,component:"Input",rules:[{required:!0,message:"请输入名称!"}]},table:{}},{field:"description",label:"描述",defaultValue:void 0,form:{componentProps:{allowClear:!1,placeholder:"描述"},component:"InputTextArea",colProps:{span:24},rules:[{required:!0,message:"请输入描述!"}]},table:{}},{field:"createTime",label:"CreateTime",defaultValue:void 0,form:{colProps:s,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入CreateTime!"}]},table:{}},{field:"updateTime",label:"UpdateTime",defaultValue:void 0,form:{colProps:s,componentProps:{allowClear:!1,placeholder:["开始时间","结束时间"],format:"YYYY-MM-DD",valueFormat:"YYYY-MM-DD",showTime:!1},component:"RangePicker",rules:[{required:!0,message:"请输入UpdateTime!"}]},table:{}}]},M=["name"],Y=["code","name","value","description"],v=["code","name","value","description","createTime","updateTime"],h=["code","name","value","description","createTime","updateTime"],g=new Map(M.map((e,a)=>[e,a])),k=i.properties.filter(e=>M.includes(e.field)).map(l=>{var{field:e,label:a,form:w}=l,t=f(w,[]);return p(o({field:e,label:a,defaultValue:void 0},t),{required:!1,rules:[{required:!1}]})}).sort((e,a)=>{const t=g.get(e.field),l=g.get(a.field);return t-l}),x=new Map(Y.map((e,a)=>[e,a])),R=i.properties.filter(e=>Y.includes(e.field)).map(({field:e,label:a,defaultValue:t,form:l})=>p(o({field:e,label:a,defaultValue:t},l),{colProps:F})).sort((e,a)=>{const t=x.get(e.field),l=x.get(a.field);return t-l}),I=new Map(v.map((e,a)=>[e,a])),S=i.properties.filter(e=>v.includes(e.field)).map(({field:e,label:a,table:t})=>o({dataIndex:e,title:a},t)).sort((e,a)=>{const t=I.get(e.dataIndex),l=I.get(a.dataIndex);return t-l}),b=new Map(h.map((e,a)=>[e,a])),U=i.properties.filter(e=>h.includes(e.field)).map(({field:e,label:a,table:t})=>o({dataIndex:e,title:a},t)).sort((e,a)=>{const t=b.get(e.dataIndex),l=b.get(a.dataIndex);return t-l});export{k as a,V as b,S as c,U as d,R as f,y as g,A as r,B as s,$ as u};
|
|
2
detect.gui/Embedded/dist/index.html
vendored
2
detect.gui/Embedded/dist/index.html
vendored
@ -1 +1 @@
|
|||||||
<!doctype html><html lang="en" id="htmlRoot"><head><script crossorigin src="./_app.config.js"></script><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="renderer" content="webkit"/><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0"/><title>智能视频监控平台</title><link rel="icon" href="./favicon.ico"/><style></style><script type="module" crossorigin src="./assets/index.js"></script><link rel="modulepreload" crossorigin href="./assets/vue-08ef39cb.js"><link rel="modulepreload" crossorigin href="./assets/antd-fb8ca017.js"><link rel="stylesheet" href="./assets/index-b5b5c2ac.css"></head><body><div id="app"><style>html[data-theme=dark] .app-loading{background-color:transparent}html[data-theme=dark] .app-loading .app-loading-title{color:transparent}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background-color:transparent}.app-loading .app-loading-wrap{display:flex;position:absolute;top:50%;left:50%;flex-direction:column;align-items:center;justify-content:center;transform:translate3d(-50%,-50%,0)}.app-loading .dots{display:flex;align-items:center;justify-content:center;padding:98px}.app-loading .app-loading-title{display:flex;align-items:center;justify-content:center;margin-top:30px;color:rgb(0 0 0 / 85%);font-size:30px}.app-loading .app-loading-logo{display:block;width:90px;margin:0 auto;margin-bottom:20px}.dot{display:inline-block;position:relative;box-sizing:border-box;width:48px;height:48px;margin-top:30px;transform:rotate(45deg);animation:ant-rotate 1.2s infinite linear;font-size:32px}.dot i{display:block;position:absolute;width:20px;height:20px;transform:scale(.75);transform-origin:50% 50%;animation:ant-spin-move 1s infinite linear alternate;border-radius:100%;opacity:.3;background-color:#0065cc}.dot i:first-child{top:0;left:0}.dot i:nth-child(2){top:0;right:0;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;animation-delay:1.2s}@keyframes ant-rotate{to{transform:rotate(405deg)}}@keyframes ant-rotate{to{transform:rotate(405deg)}}@keyframes ant-spin-move{to{opacity:1}}@keyframes ant-spin-move{to{opacity:1}}</style><div class="app-loading"><div class="app-loading-wrap"><img src="./logo.png" class="app-loading-logo" alt="Logo"/></div></div></div></body></html>
|
<!doctype html><html lang="en" id="htmlRoot"><head><script crossorigin src="./_app.config.js"></script><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta name="renderer" content="webkit"/><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0"/><title>中核集团预埋件检测系统</title><link rel="icon" href="./favicon.ico"/><style>#app{background-color:#0d1540}</style><script type="module" crossorigin src="./assets/index.js"></script><link rel="modulepreload" crossorigin href="./assets/vue-08ef39cb.js"><link rel="modulepreload" crossorigin href="./assets/antd-fb8ca017.js"><link rel="stylesheet" href="./assets/index-50de0f48.css"></head><body><div id="app"><style>html[data-theme=dark] .app-loading{background-color:transparent}html[data-theme=dark] .app-loading .app-loading-title{color:transparent}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background-color:transparent}.app-loading .app-loading-wrap{display:flex;position:absolute;top:50%;left:50%;flex-direction:column;align-items:center;justify-content:center;transform:translate3d(-50%,-50%,0)}.app-loading .dots{display:flex;align-items:center;justify-content:center;padding:98px}.app-loading .app-loading-title{display:flex;align-items:center;justify-content:center;margin-top:30px;color:rgb(0 0 0 / 85%);font-size:30px}.app-loading .app-loading-logo{display:block;width:90px;margin:0 auto;margin-bottom:20px}.dot{display:inline-block;position:relative;box-sizing:border-box;width:48px;height:48px;margin-top:30px;transform:rotate(45deg);animation:ant-rotate 1.2s infinite linear;font-size:32px}.dot i{display:block;position:absolute;width:20px;height:20px;transform:scale(.75);transform-origin:50% 50%;animation:ant-spin-move 1s infinite linear alternate;border-radius:100%;opacity:.3;background-color:#0065cc}.dot i:first-child{top:0;left:0}.dot i:nth-child(2){top:0;right:0;animation-delay:.4s}.dot i:nth-child(3){right:0;bottom:0;animation-delay:.8s}.dot i:nth-child(4){bottom:0;left:0;animation-delay:1.2s}@keyframes ant-rotate{to{transform:rotate(405deg)}}@keyframes ant-rotate{to{transform:rotate(405deg)}}@keyframes ant-spin-move{to{opacity:1}}@keyframes ant-spin-move{to{opacity:1}}</style><div class="app-loading"><div class="app-loading-wrap"><img src="./logo.png" class="app-loading-logo" alt="Logo"/></div></div></div></body></html>
|
@ -1,159 +1,8 @@
|
|||||||
using System;
|
using ReactiveUI;
|
||||||
using ReactiveUI;
|
|
||||||
|
|
||||||
namespace detect.gui.Models;
|
namespace detect.gui.Models;
|
||||||
|
|
||||||
public class DeviceModel : ReactiveObject
|
public class DeviceModel : ReactiveObject
|
||||||
{
|
{
|
||||||
private long? _id;
|
|
||||||
|
|
||||||
public long? Id
|
|
||||||
{
|
|
||||||
get => _id;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _id, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _name;
|
|
||||||
|
|
||||||
public string? Name
|
|
||||||
{
|
|
||||||
get => _name;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _deviceIp;
|
|
||||||
|
|
||||||
public string? DeviceIp
|
|
||||||
{
|
|
||||||
get => _deviceIp;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _deviceIp, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _devicePort;
|
|
||||||
|
|
||||||
public string? DevicePort
|
|
||||||
{
|
|
||||||
get => _devicePort;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _devicePort, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _deviceUsername;
|
|
||||||
|
|
||||||
public string? DeviceUsername
|
|
||||||
{
|
|
||||||
get => _deviceUsername;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _deviceUsername, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _devicePassword;
|
|
||||||
|
|
||||||
public string? DevicePassword
|
|
||||||
{
|
|
||||||
get => _devicePassword;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _devicePassword, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _deviceType;
|
|
||||||
|
|
||||||
public string? DeviceType
|
|
||||||
{
|
|
||||||
get => _deviceType;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _deviceType, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _softwareVersion;
|
|
||||||
|
|
||||||
public string? SoftwareVersion
|
|
||||||
{
|
|
||||||
get => _softwareVersion;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _softwareVersion, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _firmwareVersion;
|
|
||||||
|
|
||||||
public string? FirmwareVersion
|
|
||||||
{
|
|
||||||
get => _firmwareVersion;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _firmwareVersion, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _algorithmVersion;
|
|
||||||
|
|
||||||
public string? AlgorithmVersion
|
|
||||||
{
|
|
||||||
get => _algorithmVersion;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _algorithmVersion, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _modelVersion;
|
|
||||||
|
|
||||||
public string? ModelVersion
|
|
||||||
{
|
|
||||||
get => _modelVersion;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _modelVersion, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _cameraIp;
|
|
||||||
|
|
||||||
public string? CameraIp
|
|
||||||
{
|
|
||||||
get => _cameraIp;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _cameraIp, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _cameraUsername;
|
|
||||||
|
|
||||||
public string? CameraUsername
|
|
||||||
{
|
|
||||||
get => _cameraUsername;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _cameraUsername, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _cameraPassword;
|
|
||||||
|
|
||||||
public string? CameraPassword
|
|
||||||
{
|
|
||||||
get => _cameraPassword;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _cameraPassword, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _cameraRtsp;
|
|
||||||
|
|
||||||
public string? CameraRtsp
|
|
||||||
{
|
|
||||||
get => _cameraRtsp;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _cameraRtsp, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _assayType;
|
|
||||||
|
|
||||||
public string? AssayType
|
|
||||||
{
|
|
||||||
get => _assayType;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _assayType, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DateTime? _createTime;
|
|
||||||
|
|
||||||
public DateTime? CreateTime
|
|
||||||
{
|
|
||||||
get => _createTime;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _createTime, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DateTime? _updateTime;
|
|
||||||
|
|
||||||
public DateTime? UpdateTime
|
|
||||||
{
|
|
||||||
get => _updateTime;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _updateTime, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _isSelected;
|
|
||||||
|
|
||||||
public bool IsSelected
|
|
||||||
{
|
|
||||||
get => _isSelected;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _isSelected, value);
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -8,20 +8,35 @@ using Newtonsoft.Json;
|
|||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("Authority")]
|
[Table("dat_authority")]
|
||||||
[Index(nameof(Name), IsUnique = true)]
|
[Index(nameof(Name), IsUnique = true)]
|
||||||
[Index(nameof(ParentId), IsUnique = false)]
|
[Index(nameof(ParentId), IsUnique = false)]
|
||||||
public class AuthorityEntity
|
public class AuthorityEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("名称")] public string? Name { get; set; }
|
[StringLength(255), Comment("名称")]
|
||||||
|
[JsonProperty(PropertyName = "name")]
|
||||||
|
[Column("name")]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[DefaultValue(0)] public long? ParentId { get; set; }
|
[DefaultValue(0)]
|
||||||
|
[JsonProperty(PropertyName = "parentId")]
|
||||||
|
[Column("parent_id")]
|
||||||
|
public long? ParentId { get; set; }
|
||||||
|
|
||||||
[Comment("创建时间")] public DateTime? CreateTime { get; set; }
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
|
||||||
[Comment("更新时间")] public DateTime? UpdateTime { get; set; }
|
[Comment("更新时间")]
|
||||||
|
[JsonProperty(PropertyName = "updateTime")]
|
||||||
|
[Column("update_time")]
|
||||||
|
public DateTime? UpdateTime { get; set; }
|
||||||
|
|
||||||
[NotMapped]
|
[NotMapped]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
|
@ -3,30 +3,62 @@ using System.ComponentModel;
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("DetectTask")]
|
[Table("dat_task")]
|
||||||
[Index(nameof(StartTime), IsUnique = false)]
|
[Index(nameof(DeviceSn), IsUnique = false)]
|
||||||
public class DetectTaskEntity
|
public class DetectTaskEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("名称")] public string? Name { get; set; }
|
[StringLength(255), Comment("设备序列号")]
|
||||||
|
[JsonProperty(PropertyName = "deviceSn")]
|
||||||
|
[Column("device_sn")]
|
||||||
|
public string? DeviceSn { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("名称")]
|
||||||
|
[JsonProperty(PropertyName = "name")]
|
||||||
|
[Column("name")]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
[Comment("开始时间")] public DateTime? StartTime { get; set; }
|
[Comment("开始时间")]
|
||||||
|
[JsonProperty(PropertyName = "startTime")]
|
||||||
|
[Column("start_time")]
|
||||||
|
public DateTime? StartTime { get; set; }
|
||||||
|
|
||||||
[Comment("结束时间")] public DateTime? EndTime { get; set; }
|
[Comment("结束时间")]
|
||||||
|
[JsonProperty(PropertyName = "endTime")]
|
||||||
|
[Column("end_time")]
|
||||||
|
public DateTime? EndTime { get; set; }
|
||||||
|
|
||||||
[StringLength(2000), Comment("参数")] public string? ParamJson { get; set; }
|
[StringLength(2000), Comment("参数")]
|
||||||
|
[JsonProperty(PropertyName = "paramJson")]
|
||||||
|
[Column("param_json")]
|
||||||
|
public string? ParamJson { get; set; }
|
||||||
|
|
||||||
[StringLength(2000), Comment("结果")] public string? ResultJson { get; set; }
|
[StringLength(2000), Comment("结果")]
|
||||||
|
[JsonProperty(PropertyName = "resultJson")]
|
||||||
|
[Column("result_json")]
|
||||||
|
public string? ResultJson { get; set; }
|
||||||
|
|
||||||
[Comment("状态(0.未开始 1.进行中 2.已结束 3.暂停)")]
|
[Comment("状态(0.未开始 1.进行中 2.已结束 3.暂停)")]
|
||||||
[DefaultValue(0)]
|
[DefaultValue(0)]
|
||||||
|
[JsonProperty(PropertyName = "state")]
|
||||||
|
[Column("state")]
|
||||||
public int State { get; set; }
|
public int State { get; set; }
|
||||||
|
|
||||||
[Comment("创建时间")] public DateTime? CreateTime { get; set; }
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
|
||||||
[Comment("更新时间")] public DateTime? UpdateTime { get; set; }
|
[Comment("更新时间")]
|
||||||
|
[JsonProperty(PropertyName = "updateTime")]
|
||||||
|
[Column("update_time")]
|
||||||
|
public DateTime? UpdateTime { get; set; }
|
||||||
}
|
}
|
37
detect.gui/Models/Entities/DetectTaskLogEntity.cs
Normal file
37
detect.gui/Models/Entities/DetectTaskLogEntity.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
|
[Table("dat_task_log")]
|
||||||
|
[Index(nameof(TaskId), IsUnique = false)]
|
||||||
|
public class DetectTaskLogEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("设备序列号")]
|
||||||
|
[JsonProperty(PropertyName = "deviceSn")]
|
||||||
|
[Column("device_sn")]
|
||||||
|
public string? DeviceSn { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "taskId")]
|
||||||
|
[Column("task_id")]
|
||||||
|
public long? TaskId { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("内容")]
|
||||||
|
[JsonProperty(PropertyName = "content")]
|
||||||
|
[Column("content")]
|
||||||
|
public string? Content { get; set; }
|
||||||
|
|
||||||
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
36
detect.gui/Models/Entities/DetectTaskProgressEntity.cs
Normal file
36
detect.gui/Models/Entities/DetectTaskProgressEntity.cs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
|
[Table("dat_task_progress")]
|
||||||
|
[Index(nameof(TaskId), IsUnique = false)]
|
||||||
|
public class DetectTaskProgressEntity
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("设备序列号")]
|
||||||
|
[JsonProperty(PropertyName = "deviceSn")]
|
||||||
|
[Column("device_sn")]
|
||||||
|
public string? DeviceSn { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "taskId")]
|
||||||
|
[Column("task_id")]
|
||||||
|
public long? TaskId { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("过程数据")]
|
||||||
|
[JsonProperty(PropertyName = "taskDataJson")]
|
||||||
|
[Column("task_data_json")]
|
||||||
|
public string? TaskDataJson { get; set; }
|
||||||
|
|
||||||
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
@ -3,52 +3,42 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using detect.gui.Commons;
|
using detect.gui.Commons;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("Device")]
|
[Table("dat_device")]
|
||||||
[Index(nameof(Name), IsUnique = true)]
|
[Index(nameof(Name), IsUnique = true)]
|
||||||
public class DeviceEntity
|
public class DeviceEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("设备名称")] public string? Name { get; set; }
|
[StringLength(255), Comment("设备名称")]
|
||||||
|
[JsonProperty(PropertyName = "name")]
|
||||||
|
[Column("name")]
|
||||||
|
public string? Name { get; set; }
|
||||||
|
|
||||||
|
[StringLength(255), Comment("设备序列号")]
|
||||||
|
[JsonProperty(PropertyName = "deviceSn")]
|
||||||
|
[Column("device_sn")]
|
||||||
|
public string? DeviceSn { get; set; }
|
||||||
|
|
||||||
[StringLength(20), Comment("设备IP地址")]
|
[StringLength(20), Comment("设备IP地址")]
|
||||||
[RegularExpression(RegexHelper.IpV4, ErrorMessage = "IpV4: {0}格式非法")]
|
[RegularExpression(RegexHelper.IpV4, ErrorMessage = "IpV4: {0}格式非法")]
|
||||||
|
[JsonProperty(PropertyName = "deviceIp")]
|
||||||
|
[Column("device_ip")]
|
||||||
public string? DeviceIp { get; set; }
|
public string? DeviceIp { get; set; }
|
||||||
|
|
||||||
[StringLength(6), Comment("设备端口")] public string? DevicePort { get; set; }
|
|
||||||
|
|
||||||
[StringLength(255), Comment("用户名")] public string? DeviceUsername { get; set; }
|
|
||||||
|
|
||||||
[StringLength(255), Comment("密码")] public string? DevicePassword { get; set; }
|
|
||||||
|
|
||||||
[StringLength(255), Comment("设备类型")] public string? DeviceType { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50), Comment("软件版本")] public string? SoftwareVersion { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50), Comment("固件版本")] public string? FirmwareVersion { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50), Comment("算法版本")] public string? AlgorithmVersion { get; set; }
|
|
||||||
|
|
||||||
[StringLength(50), Comment("模型版本")] public string? ModelVersion { get; set; }
|
|
||||||
|
|
||||||
[StringLength(20), Comment("相机IP地址")]
|
|
||||||
[RegularExpression(RegexHelper.IpV4, ErrorMessage = "IpV4: {0}格式非法")]
|
|
||||||
public string? CameraIp { get; set; }
|
|
||||||
|
|
||||||
[StringLength(255), Comment("相机用户名")] public string? CameraUsername { get; set; }
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("相机密码")] public string? CameraPassword { get; set; }
|
[Comment("更新时间")]
|
||||||
|
[JsonProperty(PropertyName = "updateTime")]
|
||||||
[StringLength(255), Comment("相机rtsp完整地址")]
|
[Column("update_time")]
|
||||||
[RegularExpression(RegexHelper.Url, ErrorMessage = "Rtsp: {0}格式非法")]
|
public DateTime? UpdateTime { get; set; }
|
||||||
public string? CameraRtsp { get; set; }
|
|
||||||
|
|
||||||
[StringLength(255), Comment("检测类型")] public string? AssayType { get; set; }
|
|
||||||
|
|
||||||
[Comment("创建时间")] public DateTime? CreateTime { get; set; }
|
|
||||||
|
|
||||||
[Comment("更新时间")] public DateTime? UpdateTime { get; set; }
|
|
||||||
}
|
}
|
@ -2,23 +2,43 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("Log")]
|
[Table("dat_log")]
|
||||||
[Index(nameof(UserId), IsUnique = false)]
|
[Index(nameof(UserId), IsUnique = false)]
|
||||||
[Index(nameof(CreateTime), IsUnique = false)]
|
[Index(nameof(CreateTime), IsUnique = false)]
|
||||||
public class LogEntity
|
public class LogEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
[Key]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("描述")] public string? Description { get; set; }
|
[JsonProperty(PropertyName = "description")]
|
||||||
|
[Column("description")]
|
||||||
|
[StringLength(255), Comment("描述")]
|
||||||
|
public string? Description { get; set; }
|
||||||
|
|
||||||
[Comment("操作人ID")] public long? UserId { get; set; }
|
[JsonProperty(PropertyName = "userId")]
|
||||||
|
[Column("user_id")]
|
||||||
|
[Comment("操作人ID")]
|
||||||
|
public long? UserId { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("操作人")] public string? Username { get; set; }
|
[StringLength(20), Comment("操作人")]
|
||||||
|
[JsonProperty(PropertyName = "username")]
|
||||||
|
[Column("username")]
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("说明")] public string? Remark { get; set; }
|
[StringLength(255), Comment("说明")]
|
||||||
|
[JsonProperty(PropertyName = "remark")]
|
||||||
|
[Column("remark")]
|
||||||
|
public string? Remark { get; set; }
|
||||||
|
|
||||||
[Comment("创建时间")] public DateTime? CreateTime { get; set; }
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
}
|
}
|
@ -1,17 +1,26 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("UserAuthority")]
|
[Table("dat_user_authority")]
|
||||||
[Index(nameof(UserId), IsUnique = false)]
|
[Index(nameof(UserId), IsUnique = false)]
|
||||||
[Index(nameof(AuthorityId), IsUnique = false)]
|
[Index(nameof(AuthorityId), IsUnique = false)]
|
||||||
public class UserAuthorityEntity
|
public class UserAuthorityEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "userId")]
|
||||||
|
[Column("user_id")]
|
||||||
public long? UserId { get; set; }
|
public long? UserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "authorityId")]
|
||||||
|
[Column("authority_id")]
|
||||||
public long? AuthorityId { get; set; }
|
public long? AuthorityId { get; set; }
|
||||||
}
|
}
|
@ -3,24 +3,43 @@ using System.Collections.Generic;
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace detect.gui.Models.Entities;
|
namespace detect.gui.Models.Entities;
|
||||||
|
|
||||||
[Table("User")]
|
[Table("dat_user")]
|
||||||
[Index(nameof(Username), IsUnique = true)]
|
[Index(nameof(Username), IsUnique = true)]
|
||||||
public class UserEntity
|
public class UserEntity
|
||||||
{
|
{
|
||||||
[Key] public long? Id { get; set; }
|
[Key]
|
||||||
|
[JsonProperty(PropertyName = "id")]
|
||||||
|
[Column("id")]
|
||||||
|
public long? Id { get; set; }
|
||||||
|
|
||||||
[NotMapped] public List<AuthorityEntity>? AuthorityList { get; set; }
|
[NotMapped] public List<AuthorityEntity>? AuthorityList { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("姓名")] public string? RealName { get; set; }
|
[StringLength(255), Comment("姓名")]
|
||||||
|
[JsonProperty(PropertyName = "realName")]
|
||||||
|
[Column("real_name")]
|
||||||
|
public string? RealName { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("用户名")] public string? Username { get; set; }
|
[StringLength(255), Comment("用户名")]
|
||||||
|
[JsonProperty(PropertyName = "username")]
|
||||||
|
[Column("username")]
|
||||||
|
public string? Username { get; set; }
|
||||||
|
|
||||||
[StringLength(255), Comment("密码")] public string? Password { get; set; }
|
[StringLength(255), Comment("密码")]
|
||||||
|
[JsonProperty(PropertyName = "password")]
|
||||||
|
[Column("password")]
|
||||||
|
public string? Password { get; set; }
|
||||||
|
|
||||||
[Comment("创建时间")] public DateTime? CreateTime { get; set; }
|
[Comment("创建时间")]
|
||||||
|
[JsonProperty(PropertyName = "createTime")]
|
||||||
|
[Column("create_time")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
|
||||||
[Comment("更新时间")] public DateTime? UpdateTime { get; set; }
|
[Comment("更新时间")]
|
||||||
|
[JsonProperty(PropertyName = "updateTime")]
|
||||||
|
[Column("update_time")]
|
||||||
|
public DateTime? UpdateTime { get; set; }
|
||||||
}
|
}
|
@ -1,70 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Reactive;
|
|
||||||
using Avalonia.Collections;
|
|
||||||
using ReactiveUI;
|
|
||||||
|
|
||||||
namespace detect.gui.Models;
|
|
||||||
|
|
||||||
public class RegionModel : ReactiveObject
|
|
||||||
{
|
|
||||||
private long? _id;
|
|
||||||
|
|
||||||
public long? Id
|
|
||||||
{
|
|
||||||
get => _id;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _id, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _name;
|
|
||||||
|
|
||||||
public string? Name
|
|
||||||
{
|
|
||||||
get => _name;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string? _code;
|
|
||||||
|
|
||||||
public string? Code
|
|
||||||
{
|
|
||||||
get => _code;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _code, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DateTime? _createTime;
|
|
||||||
|
|
||||||
public DateTime? CreateTime
|
|
||||||
{
|
|
||||||
get => _createTime;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _createTime, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DateTime? _updateTime;
|
|
||||||
|
|
||||||
public DateTime? UpdateTime
|
|
||||||
{
|
|
||||||
get => _updateTime;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _updateTime, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private AvaloniaList<DeviceModel> _deviceList = [];
|
|
||||||
public AvaloniaList<DeviceModel> DeviceList
|
|
||||||
{
|
|
||||||
get => _deviceList;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _deviceList, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _isExpand;
|
|
||||||
|
|
||||||
public bool IsExpand
|
|
||||||
{
|
|
||||||
get => _isExpand;
|
|
||||||
set => this.RaiseAndSetIfChanged(ref _isExpand, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ReactiveCommand<Unit, bool> ExpandCommand { get; }
|
|
||||||
public RegionModel()
|
|
||||||
{
|
|
||||||
ExpandCommand = ReactiveCommand.Create(() => IsExpand = !IsExpand);
|
|
||||||
}
|
|
||||||
}
|
|
@ -28,7 +28,7 @@ public class DetectDeviceService : ServiceBase<DeviceEntity>
|
|||||||
return new ApiResponse<List<DeviceEntity>?>(0, "success", items);
|
return new ApiResponse<List<DeviceEntity>?>(0, "success", items);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApiResponse<PagedResult<DeviceEntity>> Search(int? regionId, string? name = "", string? ip = "", int pageNum = 1, int pageSize = 10)
|
public ApiResponse<PagedResult<DeviceEntity>> Search(string? name = "", string? ip = "", int pageNum = 1, int pageSize = 10)
|
||||||
{
|
{
|
||||||
Expression<Func<DeviceEntity,bool>> filter = x => (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(x.Name) || x.Name.Contains(name))
|
Expression<Func<DeviceEntity,bool>> filter = x => (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(x.Name) || x.Name.Contains(name))
|
||||||
&& (string.IsNullOrEmpty(ip) || string.IsNullOrEmpty(x.DeviceIp) || x.DeviceIp.Contains(ip));
|
&& (string.IsNullOrEmpty(ip) || string.IsNullOrEmpty(x.DeviceIp) || x.DeviceIp.Contains(ip));
|
||||||
|
@ -11,7 +11,6 @@ public class DetectLogService : ServiceBase<LogEntity>
|
|||||||
{
|
{
|
||||||
public ApiResponse<PagedResult<LogEntity>> Search(int? userId, string? description = "", int pageNum = 1, int pageSize = 10)
|
public ApiResponse<PagedResult<LogEntity>> Search(int? userId, string? description = "", int pageNum = 1, int pageSize = 10)
|
||||||
{
|
{
|
||||||
// var items = FindList(BuildSearchPredicate(name, code), "CreateTime", false)
|
|
||||||
Expression<Func<LogEntity,bool>> filter = x =>
|
Expression<Func<LogEntity,bool>> filter = x =>
|
||||||
(userId == null || x.UserId == null || x.UserId == userId &&
|
(userId == null || x.UserId == null || x.UserId == userId &&
|
||||||
(string.IsNullOrEmpty(description) || string.IsNullOrEmpty(x.Description) || x.Description.Contains(description)));
|
(string.IsNullOrEmpty(description) || string.IsNullOrEmpty(x.Description) || x.Description.Contains(description)));
|
||||||
|
57
detect.gui/Services/Detect/DetectTaskLogService.cs
Normal file
57
detect.gui/Services/Detect/DetectTaskLogService.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using detect.gui.Models;
|
||||||
|
using detect.gui.Models.Entities;
|
||||||
|
|
||||||
|
namespace detect.gui.Services.Detect;
|
||||||
|
|
||||||
|
public class DetectTaskLogService : ServiceBase<DetectTaskLogEntity>
|
||||||
|
{
|
||||||
|
public ApiResponse<DetectTaskLogEntity?> ListById(long id)
|
||||||
|
{
|
||||||
|
var item = Find(x => x.Id == id);
|
||||||
|
return new ApiResponse<DetectTaskLogEntity?>(0, "success", item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<List<DetectTaskLogEntity>?> ListAll()
|
||||||
|
{
|
||||||
|
var items = FindList(x => true, "Id", true)
|
||||||
|
.ToList();
|
||||||
|
return new ApiResponse<List<DetectTaskLogEntity>?>(0, "success", items);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<PagedResult<DetectTaskLogEntity>> Search(long? taskId = -1, int pageNum = 1, int pageSize = 10)
|
||||||
|
{
|
||||||
|
Expression<Func<DetectTaskLogEntity,bool>> filter = x => taskId == -1 || x.TaskId == taskId;
|
||||||
|
var total = Count(filter);
|
||||||
|
var items = FindList(filter, "CreateTime", false)
|
||||||
|
.Skip((pageNum - 1) * pageSize).Take(pageSize).ToList();
|
||||||
|
var pagedResult = new PagedResult<DetectTaskLogEntity>(pageNum, pageSize, total, items);
|
||||||
|
return new ApiResponse<PagedResult<DetectTaskLogEntity>>(0, "success", pagedResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskLogEntity?> AddData(DetectTaskLogEntity entity)
|
||||||
|
{
|
||||||
|
var data = Add(entity);
|
||||||
|
return new ApiResponse<DetectTaskLogEntity?>(0, "success", data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskLogEntity?> UpdateData(DetectTaskLogEntity entity)
|
||||||
|
{
|
||||||
|
return new ApiResponse<DetectTaskLogEntity?>(Update(entity) ? 0 : -1, "success", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskLogEntity?> DeleteById(long id)
|
||||||
|
{
|
||||||
|
Delete(x => x.Id == id);
|
||||||
|
return new ApiResponse<DetectTaskLogEntity?>(0, "success", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskLogEntity?> DeleteData(DetectTaskLogEntity entity)
|
||||||
|
{
|
||||||
|
Delete(entity);
|
||||||
|
return new ApiResponse<DetectTaskLogEntity?>(0, "success", null);
|
||||||
|
}
|
||||||
|
}
|
57
detect.gui/Services/Detect/DetectTaskProgressService.cs
Normal file
57
detect.gui/Services/Detect/DetectTaskProgressService.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using detect.gui.Models;
|
||||||
|
using detect.gui.Models.Entities;
|
||||||
|
|
||||||
|
namespace detect.gui.Services.Detect;
|
||||||
|
|
||||||
|
public class DetectTaskProgressService : ServiceBase<DetectTaskProgressEntity>
|
||||||
|
{
|
||||||
|
public ApiResponse<DetectTaskProgressEntity?> ListById(long id)
|
||||||
|
{
|
||||||
|
var item = Find(x => x.Id == id);
|
||||||
|
return new ApiResponse<DetectTaskProgressEntity?>(0, "success", item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<List<DetectTaskProgressEntity>?> ListAll()
|
||||||
|
{
|
||||||
|
var items = FindList(x => true, "Id", true)
|
||||||
|
.ToList();
|
||||||
|
return new ApiResponse<List<DetectTaskProgressEntity>?>(0, "success", items);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<PagedResult<DetectTaskProgressEntity>> Search(long? taskId = -1, int pageNum = 1, int pageSize = 10)
|
||||||
|
{
|
||||||
|
Expression<Func<DetectTaskProgressEntity,bool>> filter = x => taskId == -1 || x.TaskId == taskId;
|
||||||
|
var total = Count(filter);
|
||||||
|
var items = FindList(filter, "CreateTime", false)
|
||||||
|
.Skip((pageNum - 1) * pageSize).Take(pageSize).ToList();
|
||||||
|
var pagedResult = new PagedResult<DetectTaskProgressEntity>(pageNum, pageSize, total, items);
|
||||||
|
return new ApiResponse<PagedResult<DetectTaskProgressEntity>>(0, "success", pagedResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskProgressEntity?> AddData(DetectTaskProgressEntity entity)
|
||||||
|
{
|
||||||
|
var data = Add(entity);
|
||||||
|
return new ApiResponse<DetectTaskProgressEntity?>(0, "success", data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskProgressEntity?> UpdateData(DetectTaskProgressEntity entity)
|
||||||
|
{
|
||||||
|
return new ApiResponse<DetectTaskProgressEntity?>(Update(entity) ? 0 : -1, "success", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskProgressEntity?> DeleteById(long id)
|
||||||
|
{
|
||||||
|
Delete(x => x.Id == id);
|
||||||
|
return new ApiResponse<DetectTaskProgressEntity?>(0, "success", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiResponse<DetectTaskProgressEntity?> DeleteData(DetectTaskProgressEntity entity)
|
||||||
|
{
|
||||||
|
Delete(entity);
|
||||||
|
return new ApiResponse<DetectTaskProgressEntity?>(0, "success", null);
|
||||||
|
}
|
||||||
|
}
|
@ -55,28 +55,28 @@ public class DeviceClientService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public IDeviceClient? ConnectDevice(DeviceEntity device)
|
public IDeviceClient? ConnectDevice(DeviceEntity device)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(device.DeviceIp) || string.IsNullOrEmpty(device.DevicePort))
|
// if (string.IsNullOrEmpty(device.DeviceIp) || string.IsNullOrEmpty(device.DevicePort))
|
||||||
{
|
// {
|
||||||
Log.Warning("设备【{Name}】没有配置ip和端口,不连接", device.Name);
|
// Log.Warning("设备【{Name}】没有配置ip和端口,不连接", device.Name);
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
_deviceClients.TryGetValue(device.Id!.Value, out var deviceClient);
|
_deviceClients.TryGetValue(device.Id!.Value, out var deviceClient);
|
||||||
if (deviceClient == null)
|
// if (deviceClient == null)
|
||||||
{
|
// {
|
||||||
deviceClient = new DeviceClientSocket(device.DeviceIp!, Convert.ToInt32(device.DevicePort));
|
// deviceClient = new DeviceClientSocket(device.DeviceIp!, Convert.ToInt32(device.DevicePort));
|
||||||
deviceClient.ConnectAsync();
|
// deviceClient.ConnectAsync();
|
||||||
_deviceClients.Add(device.Id!.Value, deviceClient);
|
// _deviceClients.Add(device.Id!.Value, deviceClient);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
if (!deviceClient.Connected())
|
// if (!deviceClient.Connected())
|
||||||
{
|
// {
|
||||||
deviceClient.ConnectAsync();
|
// deviceClient.ConnectAsync();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
deviceClient.DeviceEvent += DeviceClientOnDeviceEvent;
|
// deviceClient.DeviceEvent += DeviceClientOnDeviceEvent;
|
||||||
|
//
|
||||||
return deviceClient;
|
return deviceClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,10 +3,4 @@
|
|||||||
namespace detect.gui.ViewModels;
|
namespace detect.gui.ViewModels;
|
||||||
|
|
||||||
public class DetectTaskViewModel : RoutableViewModelBase<DetectTaskModel>
|
public class DetectTaskViewModel : RoutableViewModelBase<DetectTaskModel>
|
||||||
{
|
{ }
|
||||||
|
|
||||||
public DetectTaskViewModel()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -7,10 +7,4 @@ using ReactiveUI;
|
|||||||
namespace detect.gui.ViewModels;
|
namespace detect.gui.ViewModels;
|
||||||
|
|
||||||
public class DeviceViewModel : RoutableViewModelBase<DeviceModel>
|
public class DeviceViewModel : RoutableViewModelBase<DeviceModel>
|
||||||
{
|
{ }
|
||||||
|
|
||||||
public DeviceViewModel()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -8,53 +8,4 @@ namespace detect.gui.ViewModels;
|
|||||||
|
|
||||||
public class HomeViewModel : RoutableViewModelBase<HomeModel>
|
public class HomeViewModel : RoutableViewModelBase<HomeModel>
|
||||||
{
|
{
|
||||||
// private Home.TaskViewModel _homeTask;
|
|
||||||
//
|
|
||||||
// public Home.TaskViewModel HomeTask
|
|
||||||
// {
|
|
||||||
// get => _homeTask;
|
|
||||||
// set => this.RaiseAndSetIfChanged(ref _homeTask, value);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private Home.AppTypeViewModel _homeAppType;
|
|
||||||
//
|
|
||||||
// public Home.AppTypeViewModel HomeAppType
|
|
||||||
// {
|
|
||||||
// get => _homeAppType;
|
|
||||||
// set => this.RaiseAndSetIfChanged(ref _homeAppType, value);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /// <summary>
|
|
||||||
// /// 任务对象
|
|
||||||
// /// </summary>
|
|
||||||
// private TaskModel? _taskItem;
|
|
||||||
// public TaskModel? TaskItem
|
|
||||||
// {
|
|
||||||
// get => _taskItem;
|
|
||||||
// protected set => this.RaiseAndSetIfChanged(ref _taskItem, value);
|
|
||||||
// }
|
|
||||||
|
|
||||||
public HomeViewModel()
|
|
||||||
{
|
|
||||||
// _homeTask = new Home.TaskViewModel();
|
|
||||||
// _homeAppType = new Home.AppTypeViewModel();
|
|
||||||
//
|
|
||||||
// this.WhenAnyValue(x => x.RootViewModel!.Router.CurrentViewModel)
|
|
||||||
// .Subscribe(v =>
|
|
||||||
// {
|
|
||||||
// HomeTask.CanRun = v is not IObservable<HomeViewModel>;
|
|
||||||
// HomeAppType.CanRun = v is not IObservable<HomeViewModel>;
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
|
|
||||||
// public void CreateTaskItem(AppTemplateModel? template)
|
|
||||||
// {
|
|
||||||
// TaskItem = new TaskModel
|
|
||||||
// {
|
|
||||||
// AppTemplate = template,
|
|
||||||
// AppTemplateId = template?.Id,
|
|
||||||
// Name = "新的任务-"+DateTime.Now.ToString("yyyyMMddHHmmss"),
|
|
||||||
// State = 0,
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
}
|
}
|
@ -4,9 +4,4 @@ namespace detect.gui.ViewModels;
|
|||||||
|
|
||||||
public class LogViewModel : RoutableViewModelBase<LogModel>
|
public class LogViewModel : RoutableViewModelBase<LogModel>
|
||||||
{
|
{
|
||||||
|
|
||||||
public LogViewModel()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Reactive;
|
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using xwd.utils;
|
using xwd.utils;
|
||||||
|
@ -3,11 +3,8 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:viewModels="clr-namespace:detect.gui.ViewModels"
|
xmlns:viewModels="clr-namespace:detect.gui.ViewModels"
|
||||||
xmlns:wv="clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia"
|
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="detect.gui.Views.DeviceView"
|
x:Class="detect.gui.Views.DeviceView"
|
||||||
x:DataType="viewModels:DeviceViewModel">
|
x:DataType="viewModels:DeviceViewModel">
|
||||||
<Grid>
|
<Border x:Name="WebView" Loaded="OnLoaded" />
|
||||||
<TextBlock Text="Device View"></TextBlock>
|
|
||||||
</Grid>
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Interactivity;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
using Avalonia.ReactiveUI;
|
using Avalonia.ReactiveUI;
|
||||||
|
using detect.gui.Commons;
|
||||||
using detect.gui.ViewModels;
|
using detect.gui.ViewModels;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
|
|
||||||
@ -17,4 +20,21 @@ public partial class DeviceView : ReactiveUserControl<DeviceViewModel>
|
|||||||
{
|
{
|
||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnLoaded(object? sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
// this.GetParent<MainView>()!.WebWindow.ParentContent = this;
|
||||||
|
this.GetParent<MainView>()!.WebWindow.SetAddress(1);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
// private void OnUnloaded(object? sender, RoutedEventArgs e)
|
||||||
|
// {
|
||||||
|
// this.GetParent<MainView>()!.WebWindow.Hide();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private void OnSizeChanged(object? sender, SizeChangedEventArgs e)
|
||||||
|
// {
|
||||||
|
// if (!this.GetParent<MainView>()!.WebWindow.IsVisible) return;
|
||||||
|
// this.GetParent<MainView>()!.WebWindow.InitUI();
|
||||||
|
// }
|
||||||
}
|
}
|
@ -85,7 +85,7 @@
|
|||||||
<Binding Path="#Sidebar.Bounds.Height" />
|
<Binding Path="#Sidebar.Bounds.Height" />
|
||||||
</MultiBinding>
|
</MultiBinding>
|
||||||
</Border.Margin>
|
</Border.Margin>
|
||||||
<reactiveUi:RoutedViewHost Router="{Binding Router}">
|
<reactiveUi:RoutedViewHost Router="{Binding Router}" Name="RoutedViewHost">
|
||||||
<reactiveUi:RoutedViewHost.DefaultContent />
|
<reactiveUi:RoutedViewHost.DefaultContent />
|
||||||
</reactiveUi:RoutedViewHost>
|
</reactiveUi:RoutedViewHost>
|
||||||
</Border>
|
</Border>
|
||||||
|
@ -2,12 +2,12 @@ using System;
|
|||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using detect.gui.Classes;
|
using detect.gui.Classes;
|
||||||
using detect.gui.ViewModels;
|
using detect.gui.ViewModels;
|
||||||
using detect.gui.Views;
|
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using Avalonia.Controls.Primitives;
|
using Avalonia.Controls.Primitives;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
|
using Avalonia.ReactiveUI;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
|
|
||||||
namespace detect.gui.Views;
|
namespace detect.gui.Views;
|
||||||
@ -22,9 +22,22 @@ public partial class MainView : WindowBase<MainViewModel>
|
|||||||
|
|
||||||
WebWindow = new WebBrowserWindow();
|
WebWindow = new WebBrowserWindow();
|
||||||
|
|
||||||
|
var container = this.Get<RoutedViewHost>("RoutedViewHost");
|
||||||
|
|
||||||
this.WhenAnyValue(x => x.ViewModel).Subscribe(v =>
|
this.WhenAnyValue(x => x.ViewModel).Subscribe(v =>
|
||||||
{
|
{
|
||||||
if (v == null) return;
|
if (v == null) return;
|
||||||
|
v.WhenAnyValue(vd => vd.CurrentUser).Subscribe(u =>
|
||||||
|
{
|
||||||
|
if (u == null) return;
|
||||||
|
Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
|
{
|
||||||
|
WebWindow.Width = container.Bounds.Width;
|
||||||
|
WebWindow.Height = container.Bounds.Height;
|
||||||
|
WebWindow.Position = container.PointToScreen(new Point(0, 0));
|
||||||
|
WebWindow.Show();
|
||||||
|
});
|
||||||
|
});
|
||||||
v.Router.Navigate.Execute(new LoginViewModel());
|
v.Router.Navigate.Execute(new LoginViewModel());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -32,10 +45,10 @@ public partial class MainView : WindowBase<MainViewModel>
|
|||||||
{
|
{
|
||||||
Dispatcher.UIThread.InvokeAsync(() =>
|
Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
{
|
{
|
||||||
// if (s == WindowState.Minimized || !(DataContext as MainViewModel)!.IsHomeView)
|
if (s == WindowState.Minimized)
|
||||||
// WebWindow.Hide();
|
WebWindow.Hide();
|
||||||
// if (s != WindowState.Minimized && (DataContext as MainViewModel)!.IsSettingsView && !WebWindow.IsVisible)
|
if (s != WindowState.Minimized && (DataContext as MainViewModel)!.CurrentUser != null && !WebWindow.IsVisible)
|
||||||
// WebWindow.Show();
|
WebWindow.Show();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -3,65 +3,8 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:viewModels="clr-namespace:detect.gui.ViewModels"
|
xmlns:viewModels="clr-namespace:detect.gui.ViewModels"
|
||||||
xmlns:cvt="clr-namespace:detect.gui.Converters"
|
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="detect.gui.Views.UserView"
|
x:Class="detect.gui.Views.UserView"
|
||||||
x:DataType="viewModels:UserViewModel">
|
x:DataType="viewModels:UserViewModel">
|
||||||
<UserControl.Resources>
|
<Border x:Name="WebView" Loaded="OnLoaded" />
|
||||||
<cvt:IndexToBoolConverter x:Key="IndexToBoolConverter"/>
|
|
||||||
</UserControl.Resources>
|
|
||||||
<Border x:Name="WebView" Loaded="OnLoaded" Unloaded="OnUnloaded" SizeChanged="OnSizeChanged" />
|
|
||||||
<!-- <Grid ColumnDefinitions="Auto, 0, *"> -->
|
|
||||||
<!-- <Border Grid.Column="0"> -->
|
|
||||||
<!-- <Border.Background> -->
|
|
||||||
<!-- <SolidColorBrush Color="#2D77F3" Opacity="0.4"></SolidColorBrush> -->
|
|
||||||
<!-- </Border.Background> -->
|
|
||||||
<!-- <Grid Margin="10,20, 10, 0"> -->
|
|
||||||
<!-- <StackPanel Orientation="Vertical" VerticalAlignment="Top"> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-region" Content="区域管理" -->
|
|
||||||
<!-- Name="RegionButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=0}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="0" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-device" Content="设备管理" -->
|
|
||||||
<!-- x:Name="DeviceButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=1}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="1" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-storage" Content="存储计划" -->
|
|
||||||
<!-- x:Name="StorageButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=2}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="2" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-algo" Content="算法设置" -->
|
|
||||||
<!-- x:Name="AlgoButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=3}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="3" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-config" Content="系统设置" -->
|
|
||||||
<!-- x:Name="SettingButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=4}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="4" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-user" Content="用户管理" -->
|
|
||||||
<!-- x:Name="UserButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=5}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="5" /> -->
|
|
||||||
<!-- <Border Height="10" /> -->
|
|
||||||
<!-- <RadioButton GroupName="LeftSideBar" Classes="tab-left settings-log" Content="系统日志" -->
|
|
||||||
<!-- x:Name="LogButton" -->
|
|
||||||
<!-- IsChecked="{Binding CurrentModule, Converter={StaticResource IndexToBoolConverter}, ConverterParameter=6}" -->
|
|
||||||
<!-- Command="{Binding ModuleClickCommand}" -->
|
|
||||||
<!-- CommandParameter="6" /> -->
|
|
||||||
<!-- </StackPanel> -->
|
|
||||||
<!-- </Grid> -->
|
|
||||||
<!-- </Border> -->
|
|
||||||
<!-- <Border Grid.Column="2" x:Name="WebView" Loaded="OnLoaded" Unloaded="OnUnloaded" SizeChanged="OnSizeChanged" /> -->
|
|
||||||
<!-- </Grid> -->
|
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@ -20,21 +20,21 @@ public partial class UserView : ReactiveUserControl<UserViewModel>
|
|||||||
{
|
{
|
||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
}
|
}
|
||||||
|
//
|
||||||
private void OnLoaded(object? sender, RoutedEventArgs e)
|
private void OnLoaded(object? sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
this.GetParent<MainView>()!.WebWindow.ParentContent = this;
|
// this.GetParent<MainView>()!.WebWindow.ParentContent = this;
|
||||||
this.GetParent<MainView>()!.WebWindow.InitUI(3);
|
this.GetParent<MainView>()!.WebWindow.SetAddress(3);
|
||||||
}
|
|
||||||
|
|
||||||
private void OnUnloaded(object? sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
this.GetParent<MainView>()!.WebWindow.Hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnSizeChanged(object? sender, SizeChangedEventArgs e)
|
|
||||||
{
|
|
||||||
if (!this.GetParent<MainView>()!.WebWindow.IsVisible) return;
|
|
||||||
this.GetParent<MainView>()!.WebWindow.InitUI();
|
|
||||||
}
|
}
|
||||||
|
//
|
||||||
|
// private void OnUnloaded(object? sender, RoutedEventArgs e)
|
||||||
|
// {
|
||||||
|
// this.GetParent<MainView>()!.WebWindow.Hide();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private void OnSizeChanged(object? sender, SizeChangedEventArgs e)
|
||||||
|
// {
|
||||||
|
// if (!this.GetParent<MainView>()!.WebWindow.IsVisible) return;
|
||||||
|
// this.GetParent<MainView>()!.WebWindow.InitUI();
|
||||||
|
// }
|
||||||
}
|
}
|
@ -3,6 +3,7 @@ using Avalonia;
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
using Avalonia.Platform;
|
using Avalonia.Platform;
|
||||||
|
using Avalonia.ReactiveUI;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
using Avalonia.VisualTree;
|
using Avalonia.VisualTree;
|
||||||
using detect.gui.ViewModels;
|
using detect.gui.ViewModels;
|
||||||
@ -12,7 +13,8 @@ namespace detect.gui.Views;
|
|||||||
|
|
||||||
public partial class WebBrowserWindow : Window
|
public partial class WebBrowserWindow : Window
|
||||||
{
|
{
|
||||||
public UserView? ParentContent { get; set; }
|
public UserControl? ParentContent { get; set; }
|
||||||
|
|
||||||
public WebBrowserWindow()
|
public WebBrowserWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -33,27 +35,25 @@ public partial class WebBrowserWindow : Window
|
|||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitUI(int? index = null)
|
// public void InitUI(int? index = null)
|
||||||
{
|
// {
|
||||||
if (ParentContent == null) return;
|
// if (ParentContent == null) return;
|
||||||
var timer = new Timer(_ =>
|
// var timer = new Timer(_ =>
|
||||||
{
|
// {
|
||||||
Dispatcher.UIThread.InvokeAsync(() =>
|
// Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
{
|
// {
|
||||||
if (!ParentContent.IsAttachedToVisualTree()) return;
|
// if (!ParentContent.IsAttachedToVisualTree()) return;
|
||||||
Width = ParentContent.Get<Border>("WebView").Bounds.Width;
|
// Width = ParentContent.Get<Border>("WebView").Bounds.Width;
|
||||||
Height = ParentContent.Get<Border>("WebView").Bounds.Height;
|
// Height = ParentContent.Get<Border>("WebView").Bounds.Height;
|
||||||
Position = ParentContent.Get<Border>("WebView").PointToScreen(new Point(0, 0));
|
// Position = ParentContent.Get<Border>("WebView").PointToScreen(new Point(0, 0));
|
||||||
if (index != null)
|
// if (index != null)
|
||||||
SetAddress(index.Value);
|
// SetAddress(index.Value);
|
||||||
if (!IsVisible)
|
// if (!IsVisible)
|
||||||
Show();
|
// Show();
|
||||||
|
// });
|
||||||
// DataContext = ParentContent.DataContext;
|
// });
|
||||||
});
|
// timer.Change(100, 0);
|
||||||
});
|
// }
|
||||||
timer.Change(100, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetAddress(int index)
|
public void SetAddress(int index)
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"Backup" : true,
|
"Backup" : true,
|
||||||
"Delete" : false
|
"Delete" : false
|
||||||
},
|
},
|
||||||
"ApiUrl": "http://localhost:3910",
|
"ApiUrl": "http://localhost:3920",
|
||||||
"Embedded": {
|
"Embedded": {
|
||||||
"IsOnline": false,
|
"IsOnline": false,
|
||||||
"Path": "./dist/index.html"
|
"Path": "./dist/index.html"
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=D_003A_005Cxwd_005Ccnnc_005Cdetect_005Cdetect_002Egui_005CLibs_005Cxwd_002Eutils_002Edll/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=D_003A_005Cxwd_005Ccnnc_005Cdetect_005Cdetect_002Egui_005CLibs_005Cxwd_002Eutils_002Edll/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADependencyResolverMixins_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fca0d4592dc494bbaa872fd9db942335922638_003Ff9_003Fb0105fc3_003FDependencyResolverMixins_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReactiveUserControl_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F4d7c93652a64ddcaeff466d4c6bae2d847fe753565401deac6d1e5995386b1_003FReactiveUserControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARxApp_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F4c75a39152c6ea672be27a386dbf424c0f2d222d51114dffb436ecd6b570ce_003FRxApp_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARxApp_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F4c75a39152c6ea672be27a386dbf424c0f2d222d51114dffb436ecd6b570ce_003FRxApp_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATaskAwaiter_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F74e4c72cd3922ed61496931f33baf4a9b5950edddb6b78bc296241285f25c3_003FTaskAwaiter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATaskAwaiter_002Ecs_002Fl_003AC_0021_003FUsers_003FNick_0020Wang_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F74e4c72cd3922ed61496931f33baf4a9b5950edddb6b78bc296241285f25c3_003FTaskAwaiter_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
Loading…
Reference in New Issue
Block a user