Просмотр исходного кода

优化:1、修改主题 2、树节点不联动 3、增加按钮权限 4、升级依赖

zuohuaijun 3 лет назад
Родитель
Сommit
fb34ad0d28

+ 1 - 1
Admin.NET/Admin.NET.Application/AppConfig.json

@@ -8,7 +8,7 @@
                 "ConfigId": "Dilon",
                 "DbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access
                 "ConnectionString": "DataSource=./Admin.NET.db",
-                "EnableInitDb": true, // 启用库表初始化
+                "EnableInitDb": false, // 启用库表初始化
                 "EnableDiffLog": false // 启用库表差异日志
             },
             // 其他业务库

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

@@ -24,9 +24,9 @@
 
   <ItemGroup>
     <PackageReference Include="AspNetCoreRateLimit" Version="4.0.2" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.6.4" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.6.4" />
-    <PackageReference Include="Furion.Pure" Version="4.6.4" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.6.5" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.6.5" />
+    <PackageReference Include="Furion.Pure" Version="4.6.5" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.7" />
     <PackageReference Include="Magicodes.IE.Pdf" Version="2.6.7" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.10" />

+ 2 - 2
Admin.NET/Admin.NET.Core/SeedData/SysRoleSeedData.cs

@@ -13,11 +13,11 @@ public class SysRoleSeedData : ISqlSugarEntitySeedData<SysRole>
     {
         return new[]
         {
-            new SysRole{ Id=252885263003721, Name="管理员", DataScope=DataScopeEnum.Dept_with_child, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="管理员", TenantId=142307070918780 },
+            new SysRole{ Id=252885263003721, Name="管理员", DataScope=DataScopeEnum.All, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="管理员", TenantId=142307070918780 },
             new SysRole{ Id=252885263003722, Name="普通用户", DataScope=DataScopeEnum.Self, Code="user", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="普通用户", TenantId=142307070918780 },
             new SysRole{ Id=252885263003723, Name="游客", DataScope=DataScopeEnum.Define, Code="guest", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="游客", TenantId=142307070918780 },
 
-            new SysRole{ Id=252885263003724, Name="管理员", DataScope=DataScopeEnum.Dept_with_child, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="管理员", TenantId=142307070918781 },
+            new SysRole{ Id=252885263003724, Name="管理员", DataScope=DataScopeEnum.All, Code="admin", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="管理员", TenantId=142307070918781 },
             new SysRole{ Id=252885263003725, Name="普通用户", DataScope=DataScopeEnum.Self, Code="user", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="普通用户",  TenantId=142307070918781 },
             new SysRole{ Id=252885263003726, Name="游客", DataScope=DataScopeEnum.Define, Code="guest", CreateTime=DateTime.Parse("2022-02-10 00:00:00"), Remark="游客",  TenantId=142307070918781 },
         };

+ 9 - 0
Admin.NET/Admin.NET.Core/Service/Menu/SysMenuService.cs

@@ -42,6 +42,15 @@ public class SysMenuService : IDynamicApiController, ITransient
         else
         {
             var menuIdList = await GetMenuIdList();
+            //// 获取所有节点的父节点(当半选状态的父节点未存储时)
+            //var treeIdList = new List<long>();
+            //foreach (var cId in menuIdList)
+            //{
+            //    if (cId < 1)
+            //        continue;
+            //    var pIds = _sysMenuRep.AsQueryable().ToParentList(u => u.Pid, cId).Select(u => u.Id).ToList();
+            //    treeIdList = treeIdList.Union(pIds).ToList();
+            //}
             var menuList = await _sysMenuRep.AsQueryable()
                 .Where(u => u.Type != MenuTypeEnum.Btn)
                 .Where(u => menuIdList.Contains(u.Id))

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs

@@ -202,7 +202,7 @@ public class SysOrgService : IDynamicApiController, ITransient
             // 角色机构集合
             var orgList2 = await GetUserRoleOrgIdList(userId);
             // 并集机构集合
-            orgIdList = orgList1.Concat(orgList2).Distinct().ToList();
+            orgIdList = orgList1.Union(orgList2).ToList();
             _sysCacheService.SetOrgIdList(userId, orgIdList); // 存缓存
         }
         return orgIdList;
@@ -254,7 +254,7 @@ public class SysOrgService : IDynamicApiController, ITransient
         _sysCacheService.SetMaxDataScopeType(_userManager.UserId, strongerDataScopeType);
 
         // 并集机构集合
-        return orgIdList1.Concat(orgIdList2).Distinct().ToList();
+        return orgIdList1.Union(orgIdList2).ToList();
     }
 
     /// <summary>

+ 4 - 0
vue-next-admin/src/theme/app.scss

@@ -22,6 +22,10 @@
 	--next-color-seting-main: #e9eef3;
 	--next-color-seting-aside: #d3dce6;
 	--next-color-seting-header: #b3c0d1;
+	// 重写全局样式
+	//--el-text-color-primary: rgba(0, 0, 0, .75) !important;
+    --el-text-color-regular: rgba(0, 0, 0, .75) !important;
+	//--el-text-color-secondary: var(--el-text-color-regular) !important;
 }
 
 html,

+ 7 - 4
vue-next-admin/src/theme/element.scss

@@ -263,10 +263,13 @@
 	.el-button.is-text {
 		padding: 0;
 	}
-	// .el-table__cell {
-	// 	// 	background:#FF0000;
-	// 	// 	font-weight: 300;
-	// }
+	// 标题背景色
+	--el-table-header-bg-color: #fafafa;
+	// 标题字体颜色
+	thead{
+		color: var(--el-text-color-regular);	
+		font-weight: normal;
+	}
 }
 // 分页组件靠右显示
 .el-pagination {

+ 7 - 1
vue-next-admin/src/utils/authDirective.ts

@@ -13,7 +13,13 @@ export function authDirective(app: App) {
 	app.directive('auth', {
 		mounted(el, binding) {
 			const stores = useUserInfo();
-			if (!stores.userInfos.authBtnList.some((v: string) => v === binding.value)) el.parentNode.removeChild(el);
+			console.log(binding.value)
+			if (!stores.userInfos.authBtnList.some((v: string) => v === binding.value)) {
+				//el.parentNode.removeChild(el);
+				//el.disabled = true;
+				el.classList.add('is-disabled');
+				el.setAttribute('aria-disabled', 'true');
+			}
 		},
 	});
 	// 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]")

+ 21 - 28
vue-next-admin/src/views/system/log/oplog/index.vue

@@ -3,10 +3,12 @@
 		<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
 			<el-form :model="queryParams" ref="queryForm" :inline="true">
 				<el-form-item label="开始时间" prop="name">
-					<el-date-picker v-model="queryParams.startTime" type="datetime" placeholder="开始时间" :shortcuts="shortcuts" />
+					<el-date-picker v-model="queryParams.startTime" type="datetime" placeholder="开始时间"
+						:shortcuts="shortcuts" />
 				</el-form-item>
 				<el-form-item label="结束时间" prop="code">
-					<el-date-picker v-model="queryParams.endTime" type="datetime" placeholder="结束时间" :shortcuts="shortcuts" />
+					<el-date-picker v-model="queryParams.endTime" type="datetime" placeholder="结束时间"
+						:shortcuts="shortcuts" />
 				</el-form-item>
 				<el-form-item>
 					<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
@@ -25,27 +27,22 @@
 				<el-table-column prop="exception" label="异常对象" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="state" label="当前状态值" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="threadId" label="线程Id" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="logDateTime" label="日志记录时间" align="center" show-overflow-tooltip> </el-table-column>
+				<el-table-column prop="logDateTime" label="日志记录时间" align="center" show-overflow-tooltip>
+				</el-table-column>
 				<el-table-column prop="createTime" label="操作时间" align="center" show-overflow-tooltip></el-table-column>
 				<el-table-column label="操作" width="110" align="center" fixed="right" show-overflow-tooltip>
 					<template #default="scope">
-						<el-button icon="ele-Edit" size="small" text type="primary" @click="viewdetail(scope.row)">查看详情 </el-button>
+						<el-button icon="ele-Edit" size="small" text type="primary" @click="viewDetail(scope.row)">详情
+						</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
-			<el-pagination
-				v-model:currentPage="tableParams.page"
-				v-model:page-size="tableParams.pageSize"
-				:total="tableParams.total"
-				:page-sizes="[10, 20, 50, 100]"
-				small
-				background
-				@size-change="handleSizeChange"
-				@current-change="handleCurrentChange"
-				layout="total, sizes, prev, pager, next, jumper"
-			/>
+			<el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize"
+				:total="tableParams.total" :page-sizes="[10, 20, 50, 100]" small background
+				@size-change="handleSizeChange" @current-change="handleCurrentChange"
+				layout="total, sizes, prev, pager, next, jumper" />
 		</el-card>
-		<el-dialog v-model="dialogVisible" title="Tips" width="700px">
+		<el-dialog v-model="dialogVisible" title="日志详情" width="769px">
 			<pre>{{content}}</pre>
 			<template #footer>
 				<span class="dialog-footer">
@@ -80,7 +77,7 @@ export default defineComponent({
 			},
 			logData: [] as any,
 			dialogVisible: false,
-			content:"",
+			content: "",
 		});
 		onMounted(async () => {
 			handleQuery();
@@ -125,12 +122,11 @@ export default defineComponent({
 			state.tableParams.page = val;
 			handleQuery();
 		};
-		const viewdetail = (row: any) => {
-			debugger
-			state.content=row.state;
+		// 查看详情
+		const viewDetail = (row: any) => {
+			state.content = row.message;
 			state.dialogVisible = true;
 		};
-
 		const shortcuts = [
 			{
 				text: '今天',
@@ -160,7 +156,7 @@ export default defineComponent({
 			shortcuts,
 			handleSizeChange,
 			handleCurrentChange,
-			viewdetail,
+			viewDetail,
 			...toRefs(state),
 		};
 	},
@@ -172,12 +168,9 @@ export default defineComponent({
 	//font-size: 14px;
 	max-width: 60%;
 }
+
 pre {
-    white-space: break-spaces;
-    line-height: 17px;
-    margin-bottom: 0;
-    overflow: hidden;
-	font-size: 1em;
-    font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
+	white-space: break-spaces;
+	line-height: 20px;
 }
 </style>

+ 2 - 1
vue-next-admin/src/views/system/org/component/orgTree.vue

@@ -29,7 +29,8 @@
     <div style="margin-bottom: 45px" v-loading="state.loading">
       <el-tree ref='treeRef' class='filter-tree' :data='state.orgData' node-key="id"
         :props="{children: 'children', label: 'name'}" :filter-node-method='filterNode' @node-click="nodeClick"
-        :show-checkbox="state.isShowCheckbox" :default-checked-keys="state.ownOrgData" highlight-current />
+        :show-checkbox="state.isShowCheckbox" :default-checked-keys="state.ownOrgData" highlight-current
+        check-strictly />
     </div>
   </el-card>
 </template>

+ 1 - 1
vue-next-admin/src/views/system/role/component/editRole.vue

@@ -42,7 +42,7 @@
 							<el-tree ref="treeRef" :data="menuData" node-key="id" show-checkbox
 								:props="{ children: 'children', label: 'title', class: treeNodeClass }"
 								:default-checked-keys="ownMenuData" highlight-current class="menu-data-tree"
-								icon="ele-Menu" />
+								icon="ele-Menu" check-strictly />
 						</el-form-item>
 					</el-col>
 

+ 10 - 10
vue-next-admin/src/views/system/user/index.vue

@@ -20,10 +20,10 @@
 							<el-button icon="ele-Refresh" @click="resetQuery">
 								重置
 							</el-button>
-							<el-button type="primary" icon="ele-Search" @click="handleQuery">
+							<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysUser:page'">
 								查询
 							</el-button>
-							<el-button icon="ele-Plus" @click="openAddUser">
+							<el-button icon="ele-Plus" @click="openAddUser" v-auth="'sysUser:add'">
 								新增
 							</el-button>
 						</el-form-item>
@@ -60,7 +60,7 @@
 						<el-table-column label="状态" width="70" align="center" show-overflow-tooltip>
 							<template #default="scope">
 								<el-switch v-model="scope.row.status" :active-value="1" :inactive-value="2" size="small"
-									@change="changeStatus(scope.row)">
+									@change="changeStatus(scope.row)" v-auth="'sysUser:setStatus'">
 								</el-switch>
 							</template>
 						</el-table-column>
@@ -73,7 +73,7 @@
 							<template #default="scope">
 								<el-tooltip content="用户编辑">
 									<el-button icon="ele-Edit" size="small" text type="primary"
-										@click="openEditUser(scope.row)">编辑
+										@click="openEditUser(scope.row)" v-auth="'sysUser:update'">编辑
 									</el-button>
 								</el-tooltip>
 								<el-dropdown>
@@ -84,14 +84,14 @@
 									</span>
 									<template #dropdown>
 										<el-dropdown-menu>
-											<el-dropdown-item icon="ele-OfficeBuilding"
-												@click="openGrantOrg(scope.row)">
-												数据范围
+											<el-dropdown-item icon="ele-OfficeBuilding" @click="openGrantOrg(scope.row)"
+												:v-auth="'sysUser:grantData'">数据范围
 											</el-dropdown-item>
-											<el-dropdown-item icon="ele-RefreshLeft" @click="resetUserPwd(scope.row)">
-												重置密码
+											<el-dropdown-item icon="ele-RefreshLeft" @click="resetUserPwd(scope.row)"
+												:v-auth="'sysUser:resetPwd'" disabled>重置密码
 											</el-dropdown-item>
-											<el-dropdown-item icon="ele-Delete" @click="delUser(scope.row)">
+											<el-dropdown-item icon="ele-Delete" @click="delUser(scope.row)"
+												:v-auth="'sysUser:delete'">
 												删除账号
 											</el-dropdown-item>
 										</el-dropdown-menu>