From 14b2faaa4d8b31b326b35269f0681376b199f0d4 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Wed, 4 Jun 2025 18:23:05 +0800 Subject: [PATCH] temp --- src/apps/ai-editor/sidebar.tsx | 9 ++++++++- src/apps/ai-editor/store/menu.ts | 13 +++++++++++-- src/query/query-resources/index.ts | 8 ++++++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/apps/ai-editor/sidebar.tsx b/src/apps/ai-editor/sidebar.tsx index 4fcc92d..a345b3a 100644 --- a/src/apps/ai-editor/sidebar.tsx +++ b/src/apps/ai-editor/sidebar.tsx @@ -91,12 +91,19 @@ const FileItem: React.FC = ({ item, level, prefix }) => { ); }; +export const getFolder = () => { + const url = new URL(window.location.href); + const searchParams = url.searchParams; + const folder = searchParams.get('folder') || ''; + return folder; +}; export const Sidebar: React.FC = () => { const { menu, isLoading } = useMenuStore(); useEffect(() => { // 初始化菜单数据 - init(); + const folder = getFolder(); + init('', folder); }, []); // 获取顶层项(根目录下的文件和文件夹) const rootItems = useMemo(() => { diff --git a/src/apps/ai-editor/store/menu.ts b/src/apps/ai-editor/store/menu.ts index 59f81f6..f56c11f 100644 --- a/src/apps/ai-editor/store/menu.ts +++ b/src/apps/ai-editor/store/menu.ts @@ -2,6 +2,7 @@ import { create } from 'zustand'; import { query } from '@/modules/query'; import { QueryLoginBrowser } from '@/query/query-login/query-login-browser'; import { QueryResources } from '@/query/query-resources/index'; +import { toast } from 'react-toastify'; export const queryLogin = new QueryLoginBrowser({ query }); export const queryResources = new QueryResources({ @@ -46,7 +47,7 @@ class Status { } const status = new Status(); -export const init = async (prefix: string = '') => { +export const init = async (resource: string = '', prefix: string = '') => { const { setMenu, setCurrentPath, setLoading } = useMenuStore.getState(); let me = await queryLogin.checkLocalUser(); const isInitialized = status.isInitialized; @@ -60,7 +61,15 @@ export const init = async (prefix: string = '') => { if (recursive) { data['recursive'] = recursive; } - const res = await queryResources.getList(prefix, data); + if (prefix) { + queryResources.setPrefix(prefix); + } + const res = await queryResources.getList(resource, data); + // @ts-ignore + if (res?.status === 404) { + toast.error('资源不存在,请检查路径是否正确'); + return; + } if (res.code === 200) { const menu = res.data!.map((item: any) => { if (item.prefix) { diff --git a/src/query/query-resources/index.ts b/src/query/query-resources/index.ts index a913183..01648d8 100644 --- a/src/query/query-resources/index.ts +++ b/src/query/query-resources/index.ts @@ -7,7 +7,7 @@ type QueryResourcesOptions = { [key: string]: any; }; export class QueryResources { - prefix: string; // root/resources + prefix: string; // /root/resources storage: Storage; constructor(opts: QueryResourcesOptions) { if (opts.username) { @@ -18,7 +18,11 @@ export class QueryResources { this.storage = opts.storage || localStorage; } setUsername(username: string) { - this.prefix = `/${username}/resources/`; + const prefix = `/${username}/resources/`; + return prefix; + } + setPrefix(prefix: string) { + this.prefix = prefix; } header(headers?: Record, json = true): Record { const token = this.storage.getItem('token');