From d6fd02ec19cf0bc312b838c2dbc36fc8812af028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= Date: Sat, 29 Oct 2022 10:33:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B7=AF=E7=94=B1=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yi-sqlsugar-dev.db | Bin 221184 -> 221184 bytes .../Yi.Framework.Model/MenuEntity.cs | 2 +- .../ModelsTemplate/OperationLogEntity.cs | 2 +- .../ModelsTemplate/UserEntity.cs | 4 +- .../Yi.Framework.Model/SeedData/MenuSeed.cs | 103 ++- .../CommonExtend/HttpContextExtend.cs | 10 +- .../src/views/system/dept/index.vue | 625 ++++++++++-------- .../article.vue => article/index.vue} | 5 +- .../src/views/business/article/index.vue | 381 +++++++++++ 9 files changed, 854 insertions(+), 278 deletions(-) rename Yi.Vue3.x.RuoYi/src/views/{business/article.vue => article/index.vue} (99%) create mode 100644 Yi.Vue3.x.RuoYi/src/views/business/article/index.vue diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db index 191da0c9777ec58ec8badbd2232df5e396a54fb7..dd378c1a61e9c8648fa6cac0c67d88235ee1274a 100644 GIT binary patch literal 221184 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 literal 221184 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 diff --git a/Yi.Framework.Net6/Yi.Framework.Model/MenuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/MenuEntity.cs index 7cc31a48..c867aa6f 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/MenuEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/MenuEntity.cs @@ -13,7 +13,7 @@ namespace Yi.Framework.Model.Models public partial class MenuEntity { [SqlSugar.SugarColumn(IsIgnore = true)] - public List Children { get; set; } + public List? Children { get; set; } public static List RouterBuild(List menus) diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/OperationLogEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/OperationLogEntity.cs index 3ee911fd..8ebd2d91 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/OperationLogEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/OperationLogEntity.cs @@ -37,7 +37,7 @@ namespace Yi.Framework.Model.Models /// 操作人员 /// [SugarColumn(ColumnName="OperUser" )] - public string OperUser { get; set; } + public string? OperUser { get; set; } /// /// 操作Ip /// diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/UserEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/UserEntity.cs index ba887c24..62203bb4 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/UserEntity.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/UserEntity.cs @@ -62,12 +62,12 @@ namespace Yi.Framework.Model.Models /// /// [SugarColumn(ColumnName="UserName" )] - public string UserName { get; set; } + public string? UserName { get; set; } /// /// /// [SugarColumn(ColumnName="Password" )] - public string Password { get; set; } + public string? Password { get; set; } /// /// /// diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs index dae1310f..c0c53c5e 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/SeedData/MenuSeed.cs @@ -83,6 +83,108 @@ namespace Yi.Framework.Model.SeedData IsDeleted = false }; Entitys.Add(tool); + //swagger文档 + MenuEntity swagger = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "接口文档", + MenuType = MenuTypeEnum.Menu.GetHashCode(), + Router = "http://localhost:19001", + IsShow = true, + IsLink = true, + MenuIcon = "list", + OrderNum = 100, + ParentId = tool.Id, + IsDeleted = false, + }; + Entitys.Add(swagger); + + + //业务功能 + MenuEntity business = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "业务功能", + MenuType = MenuTypeEnum.Catalogue.GetHashCode(), + Router = "/business", + IsShow = true, + IsLink = false, + MenuIcon = "international", + OrderNum = 97, + ParentId = 0, + IsDeleted = false + }; + Entitys.Add(business); + //文章管理 + MenuEntity article = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "文章管理", + PermissionCode = "business:article:list", + MenuType = MenuTypeEnum.Menu.GetHashCode(), + Router = "article", + IsShow = true, + IsLink = false, + IsCache = true, + Component = "business/article/index", + MenuIcon = "education", + OrderNum = 100, + ParentId = business.Id, + IsDeleted = false + }; + Entitys.Add(article); + + MenuEntity articleQuery = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "文章查询", + PermissionCode = "business:article:query", + MenuType = MenuTypeEnum.Component.GetHashCode(), + OrderNum = 100, + ParentId = article.Id, + IsDeleted = false + }; + Entitys.Add(articleQuery); + + MenuEntity articleAdd = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "文章新增", + PermissionCode = "business:article:add", + MenuType = MenuTypeEnum.Component.GetHashCode(), + OrderNum = 100, + ParentId = article.Id, + IsDeleted = false + }; + Entitys.Add(articleAdd); + + MenuEntity articleEdit = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "文章修改", + PermissionCode = "business:article:edit", + MenuType = MenuTypeEnum.Component.GetHashCode(), + OrderNum = 100, + ParentId = article.Id, + IsDeleted = false + }; + Entitys.Add(articleEdit); + + MenuEntity articleRemove = new MenuEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + MenuName = "文章删除", + PermissionCode = "business:article:remove", + MenuType = MenuTypeEnum.Component.GetHashCode(), + OrderNum = 100, + ParentId = article.Id, + IsDeleted = false + }; + Entitys.Add(articleRemove); + + + + //Yi框架 MenuEntity guide = new MenuEntity() @@ -100,7 +202,6 @@ namespace Yi.Framework.Model.SeedData }; Entitys.Add(guide); - //用户管理 MenuEntity user = new MenuEntity() { diff --git a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs b/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs index 784be41e..70dbdd21 100644 --- a/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs +++ b/Yi.Framework.Net6/Yi.Framework.WebCore/CommonExtend/HttpContextExtend.cs @@ -230,7 +230,15 @@ namespace Yi.Framework.WebCore public static LoginLogEntity GetLoginLogInfo(this HttpContext context) { var ipAddr = context.GetClientIp(); - var location = IpTool.Search(ipAddr); + IpInfo location; + if (ipAddr == "127.0.0.1") + { + location = new IpInfo() { Province = "本地", City = "本机" }; + } + else + { + location = IpTool.Search(ipAddr); + } ClientInfo clientInfo = context.GetClientInfo(); LoginLogEntity entity = new() { diff --git a/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue b/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue index 8c02caca..b96bb81c 100644 --- a/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue +++ b/Yi.Vue3.X.RuoYi/src/views/system/dept/index.vue @@ -1,291 +1,376 @@ - - + + + \ No newline at end of file diff --git a/Yi.Vue3.x.RuoYi/src/views/business/article.vue b/Yi.Vue3.x.RuoYi/src/views/article/index.vue similarity index 99% rename from Yi.Vue3.x.RuoYi/src/views/business/article.vue rename to Yi.Vue3.x.RuoYi/src/views/article/index.vue index 5e36ac1f..4e9515cc 100644 --- a/Yi.Vue3.x.RuoYi/src/views/business/article.vue +++ b/Yi.Vue3.x.RuoYi/src/views/article/index.vue @@ -1,5 +1,6 @@ - + \ No newline at end of file