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;
+}