diff --git a/src/App.tsx b/src/App.tsx index fc0215a..7541dfe 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,7 +2,7 @@ import { useUpdateEffect } from 'ahooks'; import { localStg } from '@/utils/storage'; import { getLocale } from '@/store/slice/app'; import { getAntdTheme, setupThemeVarsToHtml, toggleCssDarkMode } from '@/store/slice/theme/shared.ts'; -import { getDarkMode, themeColors } from '@/store/slice/theme/index.ts'; +import { getDarkMode, themeColors, getThemeSettings } from '@/store/slice/theme'; import MenuProvider from '@/components/stateful/MenuProvider.tsx'; import { router } from '@/router'; import { antdLocales } from './locales/antd'; @@ -15,7 +15,7 @@ const watermarkProps: WatermarkProps = { fontSize: 16, }, width: 240, - height:128, + height: 128, offset: [12, 60], rotate: -15, zIndex: 9999 @@ -26,6 +26,7 @@ const App = () => { const colors = useAppSelector(themeColors); const darkMode = useAppSelector(getDarkMode); const antdTheme = getAntdTheme(colors, darkMode); + const themeSettings = useAppSelector(getThemeSettings); useEffect(() => { setupThemeVarsToHtml(colors); @@ -45,7 +46,7 @@ const App = () => { button={{ classNames: { icon: 'align-1px text-icon' } }} > - + {router.CustomRouterProvider()} diff --git a/src/layouts/modules/theme-drawer/modules/PageFun.tsx b/src/layouts/modules/theme-drawer/modules/PageFun.tsx index 1895941..af76521 100644 --- a/src/layouts/modules/theme-drawer/modules/PageFun.tsx +++ b/src/layouts/modules/theme-drawer/modules/PageFun.tsx @@ -8,6 +8,7 @@ import { setFooter, setHeader, setLayoutScrollMode, + setWatermark, setPage, setSider, setTab @@ -285,6 +286,29 @@ const PageFun = memo(() => { onChange={value => dispatch(setFooter({ right: value }))} /> + + + dispatch(setWatermark({ visible: value }))} + /> + + + + dispatch(setWatermark({ text: value.target.value || '' }))} + /> + + ); diff --git a/src/layouts/modules/theme-drawer/modules/ThemeColor.tsx b/src/layouts/modules/theme-drawer/modules/ThemeColor.tsx index baab3e6..fec2fcb 100644 --- a/src/layouts/modules/theme-drawer/modules/ThemeColor.tsx +++ b/src/layouts/modules/theme-drawer/modules/ThemeColor.tsx @@ -98,17 +98,16 @@ const ThemeColor = memo(() => { } placement="topLeft" > - <> - - - - + + + + {Object.entries(colors).map(([key, value]) => ( >) { - // const key = getKeys(payload); - // console.log(key); - // state.settings.header[key[0]][key[1]] = payload[key[0]][key[1]]; - // console.log(state); - - // console.log(Object.assign(state.settings.header, payload)); - // console.log(state.settings.header); - // console.log(payload); - Object.assign(state.settings.header, payload); }, setTab(state, { payload }: PayloadAction>) { @@ -116,6 +107,9 @@ export const themeSlice = createSlice({ setFooter(state, { payload }: PayloadAction>) { Object.assign(state.settings.footer, payload); }, + setWatermark(state, { payload }: PayloadAction>){ + Object.assign(state.settings.watermark, payload); + }, setIsOnlyExpandCurrentParentMenu(state, { payload }: PayloadAction) { state.settings.isOnlyExpandCurrentParentMenu = payload; } @@ -140,6 +134,7 @@ export const { setFixedHeaderAndTab, setHeader, setTab, + setWatermark, setSider, setFooter, setIsOnlyExpandCurrentParentMenu diff --git a/src/styles/css/global.css b/src/styles/css/global.css index b6f44a7..ff64071 100644 --- a/src/styles/css/global.css +++ b/src/styles/css/global.css @@ -31,5 +31,3 @@ html.grayscale { .dark::view-transition-new(root) { z-index: 9999; } - - diff --git a/src/types/app.d.ts b/src/types/app.d.ts index 6add66f..11cc1c7 100644 --- a/src/types/app.d.ts +++ b/src/types/app.d.ts @@ -99,13 +99,13 @@ declare namespace App { /** Whether float the footer to the right when the layout is 'horizontal-mix' */ right: boolean; }; - /** Watermark */ - watermark?: { - /** Whether to show the watermark */ - visible: boolean; - /** Watermark text */ - text: string; - }; + /** Watermark */ + watermark: { + /** Whether to show the watermark */ + visible: boolean; + /** Watermark text */ + text: string; + }; } interface OtherColor { @@ -380,6 +380,10 @@ declare namespace App { resetConfig: string; resetSuccessMsg: string; }; + watermark: { + visible: string; + text: string; + }; }; route: Record; page: { @@ -657,8 +661,8 @@ declare namespace App { type GetI18nKey, K extends keyof T = keyof T> = K extends string ? T[K] extends Record - ? `${K}.${GetI18nKey}` - : K + ? `${K}.${GetI18nKey}` + : K : never; type I18nKey = GetI18nKey; diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 458ca65..92b4364 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -9,6 +9,7 @@ declare global { const ACard: typeof import('antd')['Card'] const ACol: typeof import('antd')['Col'] const AConfigProvider: typeof import('antd')['ConfigProvider'] + const AInput: typeof import('antd')['Input'] const ARow: typeof import('antd')['Row'] const ASpace: typeof import('antd')['Space'] const AStatistic: typeof import('antd')['Statistic']