From 75a55c009a5516ce989eff4509e7cb2056ca8044 Mon Sep 17 00:00:00 2001 From: suyiiyii Date: Sun, 22 Sep 2024 14:33:56 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=B7=BB=E5=8A=A0=20CookieTarget?= =?UTF-8?q?=20=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin-frontend/src/App.tsx | 7 +++- .../{cookieManager.tsx => CookieManager.tsx} | 37 +++++++++++++------ .../cookieManager/cookieConfigSlice.ts | 35 +++++++++++++++++- .../CookieTargetManager.tsx | 7 ++++ admin-frontend/src/pages/Home.tsx | 13 +++++-- admin-frontend/src/utils/type.ts | 13 +++++++ 6 files changed, 96 insertions(+), 16 deletions(-) rename admin-frontend/src/features/cookieManager/{cookieManager.tsx => CookieManager.tsx} (78%) create mode 100644 admin-frontend/src/features/cookieTargetManager/CookieTargetManager.tsx diff --git a/admin-frontend/src/App.tsx b/admin-frontend/src/App.tsx index 36f0a29..65f9823 100644 --- a/admin-frontend/src/App.tsx +++ b/admin-frontend/src/App.tsx @@ -9,7 +9,8 @@ import SubscribeManager from './features/subsribeConfigManager/SubscribeManager' import WeightConfig from './features/weightConfig/WeightManager'; import Home from './pages/Home'; import Unauthed from './pages/Unauthed'; -import CookieManager from './features/cookieManager/cookieManager'; +import CookieManager from './features/cookieManager/CookieManager'; +import CookieTargetManager from './features/cookieTargetManager/CookieTargetManager'; function App() { const dispatch = useAppDispatch(); @@ -51,6 +52,10 @@ function App() { path: 'cookie', element: , }, + { + path: 'cookie/:cookieId', + element: , + }, ], }, ], { basename: '/bison' }); diff --git a/admin-frontend/src/features/cookieManager/cookieManager.tsx b/admin-frontend/src/features/cookieManager/CookieManager.tsx similarity index 78% rename from admin-frontend/src/features/cookieManager/cookieManager.tsx rename to admin-frontend/src/features/cookieManager/CookieManager.tsx index 2ceb413..83014b9 100644 --- a/admin-frontend/src/features/cookieManager/cookieManager.tsx +++ b/admin-frontend/src/features/cookieManager/CookieManager.tsx @@ -3,6 +3,7 @@ import { Button, Card, Descriptions, Grid, List, Popconfirm, Popover, Typography, } from '@arco-design/web-react'; +import { Link } from 'react-router-dom'; import { selectSiteConf } from '../globalConf/globalConfSlice'; import { useAppSelector } from '../../app/hooks'; import { Cookie, SiteConfig } from '../../utils/type'; @@ -10,8 +11,8 @@ import { useGetCookiesQuery, useDeleteCookieMutation } from './cookieConfigSlice import CookieModal from './CookieModal'; interface CookieSite { - site: SiteConfig; - cookies: Cookie[]; + site: SiteConfig; + cookies: Cookie[]; } export default function CookieManager() { @@ -54,7 +55,7 @@ export default function CookieManager() { > 添加 - )} + )} > {cookies.map((cookie) => ( @@ -75,17 +76,31 @@ export default function CookieManager() { value: typeof (entry[1]) === 'object' ? JSON.stringify(entry[1]) : entry[1].toString(), }))} /> - )} + )} > {cookie.friendly_name} - - - - + + +
+ + + + + + + + +
+ diff --git a/admin-frontend/src/features/cookieManager/cookieConfigSlice.ts b/admin-frontend/src/features/cookieManager/cookieConfigSlice.ts index 0b76164..f7a9949 100644 --- a/admin-frontend/src/features/cookieManager/cookieConfigSlice.ts +++ b/admin-frontend/src/features/cookieManager/cookieConfigSlice.ts @@ -1,6 +1,7 @@ import { createApi } from '@reduxjs/toolkit/query/react'; import { - StatusResp, Cookie, NewCookieParam, DelCookieParam, + StatusResp, Cookie, NewCookieParam, + DelCookieParam, CookieTarget, NewCookieTargetParam, DelCookieTargetParam, } from '../../utils/type'; import { baseQueryWithAuth } from '../auth/authQuery'; @@ -33,3 +34,35 @@ export const cookieApi = createApi({ export const { useGetCookiesQuery, useNewCookieMutation, useDeleteCookieMutation, } = cookieApi; + +export const cookieTargetApi = createApi({ + reducerPath: 'cookieTarget', + baseQuery: baseQueryWithAuth, + tagTypes: ['CookieTarget'], + endpoints: (builder) => ({ + getCookieTargets: builder.query({ + query: () => '/cookie_target?site_name=site_name&cookie_id=cookie_id', + providesTags: ['CookieTarget'], + }), + newCookieTarget: builder.mutation({ + query: ({ platformName, target, cookieId }) => ({ + method: 'POST', + url: '/cookie_target', + body: { platform_name: platformName, target, cookie_id: cookieId }, + }), + invalidatesTags: ['CookieTarget'], + }), + deleteCookieTarget: builder.mutation({ + query: ({ platformName, target, cookieId }) => ({ + method: 'DELETE', + url: '/cookie_target', + body: { platform_name: platformName, target, cookie_id: cookieId }, + }), + invalidatesTags: ['CookieTarget'], + }), + }), +}); + +export const { + useGetCookieTargetsQuery, useNewCookieTargetMutation, useDeleteCookieTargetMutation, +} = cookieTargetApi; diff --git a/admin-frontend/src/features/cookieTargetManager/CookieTargetManager.tsx b/admin-frontend/src/features/cookieTargetManager/CookieTargetManager.tsx new file mode 100644 index 0000000..7e81792 --- /dev/null +++ b/admin-frontend/src/features/cookieTargetManager/CookieTargetManager.tsx @@ -0,0 +1,7 @@ +import React from 'react'; + +export default function () { + return ( +

再等等

+ ); +} diff --git a/admin-frontend/src/pages/Home.tsx b/admin-frontend/src/pages/Home.tsx index ec7f2e1..5424ae4 100644 --- a/admin-frontend/src/pages/Home.tsx +++ b/admin-frontend/src/pages/Home.tsx @@ -26,6 +26,9 @@ export default function Home() { if (path === '/home/cookie') { navigate('/home/cookie'); } + if (path.startsWith('/home/cookie/')) { + navigate(path); + } }, [path]); let currentKey = ''; @@ -33,6 +36,8 @@ export default function Home() { currentKey = 'groups'; } else if (path.startsWith('/home/groups/')) { currentKey = 'subs'; + } else if (path.startsWith('/home/cookie/')) { + currentKey = 'cookie'; } const [selectedTab, changeSelectTab] = useState(currentKey); @@ -85,12 +90,14 @@ export default function Home() { ); - } else if (path === '/home/cookie') { + } else if (path.startsWith('/home/cookie')) { breadcrumbContent = ( - - Cookie 管理 + + + Cookie 管理 + ); diff --git a/admin-frontend/src/utils/type.ts b/admin-frontend/src/utils/type.ts index e67e781..54cb57b 100644 --- a/admin-frontend/src/utils/type.ts +++ b/admin-frontend/src/utils/type.ts @@ -4,6 +4,7 @@ export interface TokenResp { id: number; name: string; } + export interface GlobalConf { platformConf: AllPlatformConf; siteConf: AllSiteConf; @@ -111,3 +112,15 @@ export interface NewCookieParam { export interface DelCookieParam { cookieId: string } + +export interface NewCookieTargetParam { + platformName: string; + target: string; + cookieId: number; +} + +export interface DelCookieTargetParam { + platformName: string; + target: string; + cookieId: number; +}