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

调整水印只有在用户登录成功后显示

Ir0nMax 1 год назад
Родитель
Сommit
5bc2c7bea6

+ 5 - 0
Admin.NET/Admin.NET.Core/Service/Auth/Dto/LoginUserOutput.cs

@@ -95,4 +95,9 @@ public class LoginUserOutput
     /// 角色集合
     /// </summary>
     public List<long> RoleIds { get; set; }
+
+    /// <summary>
+    /// 水印文字
+    /// </summary>
+    public string WatermarkText { get; set; }
 }

+ 6 - 2
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -4,6 +4,7 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using Elastic.Clients.Elasticsearch.Xpack;
 using Furion.SpecificationDocument;
 using Lazy.Captcha.Core;
 
@@ -274,7 +275,9 @@ public class SysAuthService : IDynamicApiController, ITransient
         // 获取角色集合
         var roleIds = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysUserRole>>().AsQueryable()
             .Where(u => u.UserId == user.Id).Select(u => u.RoleId).ToListAsync();
-
+        // 获取水印文字
+        var watermarkText = await _sysConfigService.GetConfigValue<string>("sys_web_watermark");
+        watermarkText += $"-{user.RealName}-{_httpContextAccessor.HttpContext.GetRemoteIp()}-{DateTime.Now}";
         return new LoginUserOutput
         {
             Id = user.Id,
@@ -292,7 +295,8 @@ public class SysAuthService : IDynamicApiController, ITransient
             OrgType = org?.Type,
             PosName = pos?.Name,
             Buttons = buttons,
-            RoleIds = roleIds
+            RoleIds = roleIds,
+            WatermarkText = watermarkText
         };
     }
 

+ 0 - 3
Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs

@@ -252,9 +252,6 @@ public class SysConfigService : IDynamicApiController, ITransient
         var sysIcp = await GetConfigValue<string>("sys_web_icp");
         var sysIcpUrl = await GetConfigValue<string>("sys_web_icpUrl");
 
-        //var ip = _httpContextAccessor.HttpContext.GetRemoteIp();
-        //var watermark = $"{sysWatermark}-{DateTime.Now}-{ip}-{_userManager.RealName}";
-
         return new
         {
             SysLogo = sysLogo,

+ 1 - 1
Web/src/App.vue

@@ -130,7 +130,7 @@ const loadSysInfo = () => {
 			themeConfig.value.icpUrl = data.sysIcpUrl;
 			// 水印
 			themeConfig.value.isWatermark = data.sysWatermark != null;
-			themeConfig.value.watermarkText = data.sysWatermark;
+			themeConfig.value.watermarkText = '';
 			// 版权说明
 			themeConfig.value.copyright = data.sysCopyright;
 

+ 14 - 1
Web/src/stores/userInfo.ts

@@ -1,8 +1,11 @@
 import { defineStore } from 'pinia';
-import { Session } from '/@/utils/storage';
+import { Local, Session } from '/@/utils/storage';
+import Watermark from '/@/utils/watermark';
+import { useThemeConfig } from '/@/stores/themeConfig';
 
 import { getAPI } from '/@/utils/axios-utils';
 import { SysAuthApi, SysConstApi, SysDictTypeApi } from '/@/api-services/api';
+import watermark from '../utils/watermark';
 
 /**
  * 用户信息
@@ -66,6 +69,7 @@ export const useUserInfo = defineStore('userInfo', {
 					.then(async (res: any) => {
 						if (res.data.result == null) return;
 						var d = res.data.result;
+						console.log('用户信息:', d	);
 						const userInfos = {
 							id: d.id,
 							account: d.account,
@@ -88,6 +92,15 @@ export const useUserInfo = defineStore('userInfo', {
 						// 增加了下面代码,引起当前会话的用户信息不会刷新,如:重新提交的头像不更新,需要新开一个页面才能正确显示
 						// Session.set('userInfo', userInfos);
 
+						const storesThemeConfig = useThemeConfig();
+						storesThemeConfig.themeConfig.watermarkText = d.watermarkText ?? '';
+						console.log('用户信息:', d.watermarkText	);
+						if (storesThemeConfig.themeConfig.isWatermark) Watermark.set(storesThemeConfig.themeConfig.watermarkText);
+						else Watermark.del();
+
+						Local.remove('themeConfig');
+						Local.set('themeConfig', storesThemeConfig.themeConfig);
+
 						resolve(userInfos);
 					});
 			});