import React from 'react' import { useEffect, useState } from 'react'; import { Table, Button } from 'amis'; export default function DestPicker({ isRichtext, fetcher, breadcrumb, setBreadcrumb, bucket, onConfirm, onCancel, }) { const [source, setSource] = useState([]); useEffect(() => { fetchSource(null); }, []); useEffect(() => { reload(); }, [breadcrumb]); async function fetchSource(prefix) { const result = await fetcher({ method: 'post', url: `/storage/v1/object/list/${bucket}`, data: { prefix: prefix ? prefix : '', sortBy: { column: 'name', order: 'asc', }, }, }); let source = result.data .filter((item) => item.name.charAt(0) !== '.') .map((item) => { return { ...item, ...item.metadata, mimetype: item.metadata ? item.metadata.mimetype.split('/')[1] : '文件夹', size: item.metadata ? '' + Math.floor(item.metadata.size / 1024) + 'KB' : null, updated_at: item.updated_at ? item.updated_at.slice(0, 16).replace('T', ' ') : null, }; }); setSource(source); } function getPath(breadcrumb) { return breadcrumb.slice(1).toString().replaceAll(',', '/'); } function reload() { fetchSource(getPath(breadcrumb)); } return ( <>
选取目标目录
{breadcrumb.map((item, index) => { if (index) { if (index === breadcrumb.length - 1) { return /{item}; } return ( / { let temp_breadcrumb = JSON.parse( JSON.stringify(breadcrumb) ); temp_breadcrumb = temp_breadcrumb.slice( 0, index + 1 ); setBreadcrumb(temp_breadcrumb); }} > {item} ); } else { if (index === breadcrumb.length - 1) { return {item}; } return ( { let temp_breadcrumb = JSON.parse( JSON.stringify(breadcrumb) ); temp_breadcrumb = temp_breadcrumb.slice(0, index + 1); setBreadcrumb(temp_breadcrumb); }} > {item} ); } })}
{ return { props: { rowSpan: 1, colSpan: 1 }, children: (
{rowData.id ? ( isRichtext ? ( ) : ( {rowData.name} ) ) : ( )}
), }; }, }, { key: 'mimetype', title: '类型' }, { key: 'size', title: '大小' }, { key: 'updated_at', title: '修改日期' }, ]} rowClassName={(item) => !item.id && 'font-bold text-primary'} />
{!isRichtext && ( )}
); }