From a65bd96b5beaa4e24605df53e2d7845c3f3852bd Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期一, 10 二月 2025 10:08:32 +0800 Subject: [PATCH] # --- rsf-admin/src/layout/TenantTip.jsx | 28 ++++++++++++++ rsf-admin/src/config/authProvider.js | 5 +- rsf-admin/src/themes/rcsTheme.js | 13 ++++++ rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java | 4 + rsf-server/src/main/java/com/vincent/rsf/server/system/controller/result/LoginResult.java | 2 + rsf-admin/src/themes/themes.jsx | 10 ++-- rsf-server/src/main/java/com/vincent/rsf/server/common/config/ConfigProperties.java | 5 ++ rsf-server/src/main/resources/application.yml | 3 + rsf-admin/src/layout/AppBarToolbar.jsx | 3 + rsf-admin/src/page/settings/index.jsx | 11 +++++ rsf-server/src/main/resources/application-dev.yml | 2 11 files changed, 74 insertions(+), 12 deletions(-) diff --git a/rsf-admin/src/config/authProvider.js b/rsf-admin/src/config/authProvider.js index 1c440e7..38cf41d 100644 --- a/rsf-admin/src/config/authProvider.js +++ b/rsf-admin/src/config/authProvider.js @@ -7,7 +7,7 @@ const AuthProvider = { // login login: async ({ username, password, tenantId }) => { - const { accessToken, user } = await login({ + const { accessToken, user, tenant } = await login({ username: username, password: password, tenantId: tenantId, @@ -18,7 +18,8 @@ avatar: avatar, fullName: user.nickname, id: user.id, - username: user.username + username: user.username, + tenant: tenant, } setToken(accessToken); localStorage.setItem("user", JSON.stringify(userToPersist)); diff --git a/rsf-admin/src/layout/AppBarToolbar.jsx b/rsf-admin/src/layout/AppBarToolbar.jsx index ea23bef..45cf9db 100644 --- a/rsf-admin/src/layout/AppBarToolbar.jsx +++ b/rsf-admin/src/layout/AppBarToolbar.jsx @@ -1,11 +1,12 @@ import { LoadingIndicator, LocalesMenuButton } from 'react-admin'; - import { ThemeSwapper } from '../themes/ThemeSwapper'; +import { TenantTip } from './TenantTip'; export const AppBarToolbar = () => ( <> <LocalesMenuButton /> <ThemeSwapper /> <LoadingIndicator /> + <TenantTip /> </> ); diff --git a/rsf-admin/src/layout/TenantTip.jsx b/rsf-admin/src/layout/TenantTip.jsx new file mode 100644 index 0000000..e9feb6b --- /dev/null +++ b/rsf-admin/src/layout/TenantTip.jsx @@ -0,0 +1,28 @@ +import React, { useState, useRef, useEffect, useMemo } from "react"; +import { useGetIdentity } from 'react-admin'; +import { Stack, Grid, Box, Typography, Chip, useTheme } from '@mui/material'; +import GroupIcon from '@mui/icons-material/Group'; + +export const TenantTip = (props) => { + const { identity, isLoading, error } = useGetIdentity(); + + return ( + <> + <Box sx={{ + mr: 1, + ml: 2, + }}> + <Chip + icon={<GroupIcon />} + label={identity?.tenant ?? 'Unknown'} + variant="outlined" + sx={{ + borderRadius: '10px', + cursor: 'pointer', + paddingLeft: "0.3rem", + }} + /> + </Box> + </> + ) +} \ No newline at end of file diff --git a/rsf-admin/src/page/settings/index.jsx b/rsf-admin/src/page/settings/index.jsx index bb4a869..ff3f665 100644 --- a/rsf-admin/src/page/settings/index.jsx +++ b/rsf-admin/src/page/settings/index.jsx @@ -55,8 +55,17 @@ onChange={(event, newValue) => { setValue(newValue); }} - indicatorColor="secondary" + indicatorColor="primary" textColor="inherit" + TabIndicatorProps={{ + style: { + left: 0, + right: 'auto', + width: '5px', + borderRadius: '2px', + opacity: .8, + } + }} sx={{ borderRight: 1, borderColor: 'divider', diff --git a/rsf-admin/src/themes/rcsTheme.js b/rsf-admin/src/themes/rcsTheme.js index 41fe76f..e5e24d8 100644 --- a/rsf-admin/src/themes/rcsTheme.js +++ b/rsf-admin/src/themes/rcsTheme.js @@ -101,6 +101,19 @@ elevation: 1, }, }, + MuiChip: { + styleOverrides: { + outlined: { + '.MuiAppBar-root &': { + color: '#ffffff', + borderColor: '#ffffff', + '& .MuiChip-icon': { + color: '#ffffff', + }, + }, + }, + }, + }, // MuiLinearProgress: { // styleOverrides: { // colorPrimary: { diff --git a/rsf-admin/src/themes/themes.jsx b/rsf-admin/src/themes/themes.jsx index 0cbd2c9..6442335 100644 --- a/rsf-admin/src/themes/themes.jsx +++ b/rsf-admin/src/themes/themes.jsx @@ -15,11 +15,11 @@ import { rcsLightTheme, rcsDarkTheme } from './rcsTheme'; export const themes = [ - { name: 'rcs', light: rcsLightTheme, dark: rcsDarkTheme }, + { name: 'default', light: rcsLightTheme, dark: rcsDarkTheme }, { name: 'soft', light: softLightTheme, dark: softDarkTheme }, - { name: 'default', light: defaultLightTheme, dark: defaultDarkTheme }, + // { name: 'default', light: defaultLightTheme, dark: defaultDarkTheme }, { name: 'nano', light: nanoLightTheme, dark: nanoDarkTheme }, - { name: 'radiant', light: radiantLightTheme, dark: radiantDarkTheme }, - { name: 'house', light: houseLightTheme, dark: houseDarkTheme }, - { name: 'chiptune', light: chiptuneTheme }, + // { name: 'radiant', light: radiantLightTheme, dark: radiantDarkTheme }, + // { name: 'house', light: houseLightTheme, dark: houseDarkTheme }, + // { name: 'chiptune', light: chiptuneTheme }, ]; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/ConfigProperties.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/ConfigProperties.java index 8709c73..4a636f4 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/common/config/ConfigProperties.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/config/ConfigProperties.java @@ -30,4 +30,9 @@ */ private String tokenKey; + /** + * 瓒呯骇绠$悊鍛� + */ + private String superUsername; + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java index 7639897..47c1739 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java @@ -12,6 +12,7 @@ import com.vincent.rsf.server.system.controller.result.LoginResult; import com.vincent.rsf.server.system.controller.result.MenuVo; import com.vincent.rsf.server.system.entity.Menu; +import com.vincent.rsf.server.system.entity.Tenant; import com.vincent.rsf.server.system.entity.User; import com.vincent.rsf.server.system.entity.UserLogin; import com.vincent.rsf.server.system.service.*; @@ -66,7 +67,8 @@ String accessToken = JwtUtil.buildToken(new JwtSubject(username, user.getTenantId()), configProperties.getTokenExpireTime(), configProperties.getTokenKey()); userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, tenantId, null, request); - return R.ok("Login Success").add(new LoginResult(accessToken, user)); + Tenant tenant = tenantService.getById(user.getTenantId()); + return R.ok("Login Success").add(new LoginResult(accessToken, user, tenant.getName())); } @GetMapping("/tenant/list") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/result/LoginResult.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/result/LoginResult.java index b0618aa..767f2e6 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/result/LoginResult.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/result/LoginResult.java @@ -21,4 +21,6 @@ private User user; + private String tenant; + } diff --git a/rsf-server/src/main/resources/application-dev.yml b/rsf-server/src/main/resources/application-dev.yml index 87745e5..890851d 100644 --- a/rsf-server/src/main/resources/application-dev.yml +++ b/rsf-server/src/main/resources/application-dev.yml @@ -51,4 +51,4 @@ max: 30 min: 10 timeout: 5000 - index: 11 + index: 11 \ No newline at end of file diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml index 3166709..6156a60 100644 --- a/rsf-server/src/main/resources/application.yml +++ b/rsf-server/src/main/resources/application.yml @@ -28,4 +28,5 @@ path: logs/@pom.artifactId@ config: - token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2 \ No newline at end of file + token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2 + super-username: root \ No newline at end of file -- Gitblit v1.9.1