This commit is contained in:
熊潇 2025-06-04 18:23:05 +08:00
parent 56e3d08869
commit 14b2faaa4d
3 changed files with 25 additions and 5 deletions

View File

@ -91,12 +91,19 @@ const FileItem: React.FC<FileItemProps> = ({ item, level, prefix }) => {
</div>
);
};
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(() => {

View File

@ -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) {

View File

@ -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<string, string>, json = true): Record<string, string> {
const token = this.storage.getItem('token');