generated from template/astro-template
	temp
This commit is contained in:
		@@ -91,12 +91,19 @@ const FileItem: React.FC<FileItemProps> = ({ item, level, prefix }) => {
 | 
				
			|||||||
    </div>
 | 
					    </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 = () => {
 | 
					export const Sidebar: React.FC = () => {
 | 
				
			||||||
  const { menu, isLoading } = useMenuStore();
 | 
					  const { menu, isLoading } = useMenuStore();
 | 
				
			||||||
  useEffect(() => {
 | 
					  useEffect(() => {
 | 
				
			||||||
    // 初始化菜单数据
 | 
					    // 初始化菜单数据
 | 
				
			||||||
    init();
 | 
					    const folder = getFolder();
 | 
				
			||||||
 | 
					    init('', folder);
 | 
				
			||||||
  }, []);
 | 
					  }, []);
 | 
				
			||||||
  // 获取顶层项(根目录下的文件和文件夹)
 | 
					  // 获取顶层项(根目录下的文件和文件夹)
 | 
				
			||||||
  const rootItems = useMemo(() => {
 | 
					  const rootItems = useMemo(() => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@ import { create } from 'zustand';
 | 
				
			|||||||
import { query } from '@/modules/query';
 | 
					import { query } from '@/modules/query';
 | 
				
			||||||
import { QueryLoginBrowser } from '@/query/query-login/query-login-browser';
 | 
					import { QueryLoginBrowser } from '@/query/query-login/query-login-browser';
 | 
				
			||||||
import { QueryResources } from '@/query/query-resources/index';
 | 
					import { QueryResources } from '@/query/query-resources/index';
 | 
				
			||||||
 | 
					import { toast } from 'react-toastify';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const queryLogin = new QueryLoginBrowser({ query });
 | 
					export const queryLogin = new QueryLoginBrowser({ query });
 | 
				
			||||||
export const queryResources = new QueryResources({
 | 
					export const queryResources = new QueryResources({
 | 
				
			||||||
@@ -46,7 +47,7 @@ class Status {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
const status = new 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();
 | 
					  const { setMenu, setCurrentPath, setLoading } = useMenuStore.getState();
 | 
				
			||||||
  let me = await queryLogin.checkLocalUser();
 | 
					  let me = await queryLogin.checkLocalUser();
 | 
				
			||||||
  const isInitialized = status.isInitialized;
 | 
					  const isInitialized = status.isInitialized;
 | 
				
			||||||
@@ -60,7 +61,15 @@ export const init = async (prefix: string = '') => {
 | 
				
			|||||||
  if (recursive) {
 | 
					  if (recursive) {
 | 
				
			||||||
    data['recursive'] = 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) {
 | 
					  if (res.code === 200) {
 | 
				
			||||||
    const menu = res.data!.map((item: any) => {
 | 
					    const menu = res.data!.map((item: any) => {
 | 
				
			||||||
      if (item.prefix) {
 | 
					      if (item.prefix) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,7 @@ type QueryResourcesOptions = {
 | 
				
			|||||||
  [key: string]: any;
 | 
					  [key: string]: any;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
export class QueryResources {
 | 
					export class QueryResources {
 | 
				
			||||||
  prefix: string; // root/resources
 | 
					  prefix: string; // /root/resources
 | 
				
			||||||
  storage: Storage;
 | 
					  storage: Storage;
 | 
				
			||||||
  constructor(opts: QueryResourcesOptions) {
 | 
					  constructor(opts: QueryResourcesOptions) {
 | 
				
			||||||
    if (opts.username) {
 | 
					    if (opts.username) {
 | 
				
			||||||
@@ -18,7 +18,11 @@ export class QueryResources {
 | 
				
			|||||||
    this.storage = opts.storage || localStorage;
 | 
					    this.storage = opts.storage || localStorage;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  setUsername(username: string) {
 | 
					  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> {
 | 
					  header(headers?: Record<string, string>, json = true): Record<string, string> {
 | 
				
			||||||
    const token = this.storage.getItem('token');
 | 
					    const token = this.storage.getItem('token');
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user