Ver código fonte

🤓调整优化众多功能细节点 !553 感谢@xjj_0906

zuohuaijun 3 anos atrás
pai
commit
c86be8a057

+ 5 - 5
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -18,9 +18,9 @@
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
     <PackageReference Include="DotNetCore.Natasha.CSharp" Version="5.0.2" />
     <PackageReference Include="FluentEmail.Smtp" Version="3.0.2" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.5.10" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.5.10" />
-    <PackageReference Include="Furion.Pure" Version="4.8.5.10" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.6.1" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.6.1" />
+    <PackageReference Include="Furion.Pure" Version="4.8.6.1" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.1" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.7.4.2" />
     <PackageReference Include="Magicodes.IE.Pdf" Version="2.7.4.2" />
@@ -28,9 +28,9 @@
     <PackageReference Include="NEST" Version="7.17.5" />
     <PackageReference Include="NewLife.Redis" Version="5.1.2023.203" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.22.0" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.23.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.15.2" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.3.49" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.3.50" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.25" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />

+ 7 - 0
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -5154,6 +5154,13 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:Admin.NET.Core.Service.SysDictDataService.DeleteDictData(System.Int64)">
+            <summary>
+            根据字典类型Id删除字典值
+            </summary>
+            <param name="dictTypeId"></param>
+            <returns></returns>
+        </member>
         <member name="T:Admin.NET.Core.Service.SysDictTypeService">
             <summary>
             系统字典类型服务

+ 11 - 0
Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs

@@ -168,4 +168,15 @@ public class SysDictDataService : IDynamicApiController, ITransient
                 Value = b.Code
             }).ToListAsync();
     }
+
+    /// <summary>
+    /// 根据字典类型Id删除字典值
+    /// </summary>
+    /// <param name="dictTypeId"></param>
+    /// <returns></returns>
+    [ApiDescriptionSettings(false)]
+    public async Task DeleteDictData(long dictTypeId)
+    {
+        await _sysDictDataRep.DeleteAsync(u => u.DictTypeId == dictTypeId);
+    }
 }

+ 1 - 4
Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs

@@ -8,15 +8,12 @@
 public class SysDictTypeService : IDynamicApiController, ITransient
 {
     private readonly SqlSugarRepository<SysDictType> _sysDictTypeRep;
-    private readonly SqlSugarRepository<SysDictData> _sysDictDataRep;
     private readonly SysDictDataService _sysDictDataService;
 
     public SysDictTypeService(SqlSugarRepository<SysDictType> sysDictTypeRep,
-        SqlSugarRepository<SysDictData> sysDictDataRep,
         SysDictDataService sysDictDataService)
     {
         _sysDictTypeRep = sysDictTypeRep;
-        _sysDictDataRep = sysDictDataRep;
         _sysDictDataService = sysDictDataService;
     }
 
@@ -108,8 +105,8 @@ public class SysDictTypeService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D3000);
 
         //删除字典值
-        await _sysDictDataRep.AsDeleteable().Where(u => u.DictTypeId == input.Id).ExecuteCommandAsync();
         await _sysDictTypeRep.DeleteAsync(dictType);
+        await _sysDictDataService.DeleteDictData(input.Id);
     }
 
     /// <summary>

+ 3 - 3
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -209,9 +209,9 @@ public class SysTenantService : IDynamicApiController, ITransient
         // 关联租户组织机构和管理员用户
         await _sysTenantRep.UpdateAsync(u => new SysTenant() { UserId = newUser.Id, OrgId = newOrg.Id }, u => u.Id == tenantId);
 
-        // 默认租户管理员角色菜单集合(如果一级菜单下有子菜单,不能填写一级菜单Id,否则界面授权菜单显示时,会错误地全选它的子菜单)
-        var menuIdList = new List<long> { /*1300000000101,*/1300000000111,1300000000121, // 工作台
-            /*1310000000101,*/1310000000111,1310000000112,1310000000113,1310000000114,1310000000115,1310000000116,1310000000117,1310000000118,1310000000119,1310000000120,1310000000121, // 账号
+        // 默认租户管理员角色菜单集合
+        var menuIdList = new List<long> { 1300000000111,1300000000121, // 工作台
+            1310000000111,1310000000112,1310000000113,1310000000114,1310000000115,1310000000116,1310000000117,1310000000118,1310000000119,1310000000120,1310000000121, // 账号
             1310000000131,1310000000132,1310000000133,1310000000134,1310000000135,1310000000136,1310000000137,1310000000138, // 角色
             1310000000141,1310000000142,1310000000143,1310000000144,1310000000145, // 机构
             1310000000151,1310000000152,1310000000153,1310000000154,1310000000155, // 职位

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -40,7 +40,7 @@ public class SysUserService : IDynamicApiController, ITransient
             _userManager.SuperAdmin ? null : await _sysOrgService.GetUserOrgIdList(); // 各管理员只能看到自己机构下的用户列表
 
         return await _sysUserRep.AsQueryable()
-            .LeftJoin<SysUserExtOrg>((u, o) => u.Id == o.UserId)
+            .InnerJoin<SysUserExtOrg>((u, o) => u.Id == o.UserId)
             .WhereIF(!_userManager.SuperAdmin, u => u.AccountType != AccountTypeEnum.SuperAdmin)
             .WhereIF(orgList != null, (u, o) => orgList.Contains(u.OrgId) || orgList.Contains(o.OrgId))
             .WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account.Contains(input.Account))

+ 3 - 0
Web/src/layout/navBars/breadcrumb/setings.vue

@@ -235,6 +235,9 @@
 					<div class="layout-breadcrumb-seting-bar-flex-label">{{ $t('message.layout.fiveAnimation') }}</div>
 					<div class="layout-breadcrumb-seting-bar-flex-value">
 						<el-select v-model="getThemeConfig.animation" placeholder="请选择" size="default" style="width: 90px" @change="setLocalThemeConfig">
+							<el-option label="slide-right" value="slide-right"></el-option>
+							<el-option label="slide-left" value="slide-left"></el-option>
+							<el-option label="opacitys" value="opacitys"></el-option>
 							<el-option label="fade" value="fade"></el-option>
 							<el-option label="fadeUp" value="fadeUp"></el-option>
 							<el-option label="fadeDown" value="fadeDown"></el-option>

+ 1 - 1
Web/src/stores/themeConfig.ts

@@ -18,7 +18,7 @@ export const useThemeConfig = defineStore('themeConfig', {
 			 * 全局主题
 			 */
 			// 默认 primary 主题颜色
-			primary: '#DE2910', // '#0052D9', // '#03663D'
+			primary: '#DE2910', // '#11559C', // '#03663D'
 			// 是否开启深色模式
 			isIsDark: false,
 

+ 36 - 34
Web/src/theme/common/transition.scss

@@ -1,4 +1,4 @@
-/* 页面切换动画
+/* 自定义页面切换动画
 ------------------------------- */
 .fade-enter-active{
 	animation: fadeIn;
@@ -113,39 +113,41 @@
 }
 
 
-// .slide-right-enter-active,
-// .slide-right-leave-active,
-// .slide-left-enter-active,
-// .slide-left-leave-active {
-// 	will-change: transform;
-// 	transition: all 0.3s ease;
-// }
-// // slide-right
-// .slide-right-enter-from {
-// 	opacity: 0;
-// 	transform: translateX(-20px);
-// }
-// .slide-right-leave-to {
-// 	opacity: 0;
-// 	transform: translateX(20px);
-// }
-// // slide-left
-// .slide-left-enter-from {
-// 	@extend .slide-right-leave-to;
-// }
-// .slide-left-leave-to {
-// 	@extend .slide-right-enter-from;
-// }
-// // opacitys
-// .opacitys-enter-active,
-// .opacitys-leave-active {
-// 	will-change: transform;
-// 	transition: all 0.3s ease;
-// }
-// .opacitys-enter-from,
-// .opacitys-leave-to {
-// 	opacity: 0;
-// }
+/* 页面切换动画
+------------------------------- */
+.slide-right-enter-active,
+.slide-right-leave-active,
+.slide-left-enter-active,
+.slide-left-leave-active {
+	will-change: transform;
+	transition: all 0.3s ease;
+}
+// slide-right
+.slide-right-enter-from {
+	opacity: 0;
+	transform: translateX(-20px);
+}
+.slide-right-leave-to {
+	opacity: 0;
+	transform: translateX(20px);
+}
+// slide-left
+.slide-left-enter-from {
+	@extend .slide-right-leave-to;
+}
+.slide-left-leave-to {
+	@extend .slide-right-enter-from;
+}
+// opacitys
+.opacitys-enter-active,
+.opacitys-leave-active {
+	will-change: transform;
+	transition: all 0.3s ease;
+}
+.opacitys-enter-from,
+.opacitys-leave-to {
+	opacity: 0;
+}
 
 /* Breadcrumb 面包屑过渡动画
 ------------------------------- */

+ 1 - 1
Web/src/theme/element.scss

@@ -277,7 +277,7 @@
 	background: var(--el-color-primary);
 }
 .el-dialog__footer {
-	border-top: 1px dashed var(--el-color-primary-light-5);
+	border-top: 1px solid var(--el-color-primary-light-7);
 	padding-bottom: 10px;
   }
 .el-dialog__headerbtn{