ball_admin/src/pages/archives/file_list.tsx

43 lines
1.2 KiB
TypeScript

import { Button, UploadFile } from "antd";
import { useEffect, useState } from "react";
import { inject, observer } from "mobx-react";
import AliUpload from "@/components/ali_upload";
interface ArchiveUploadFile extends UploadFile {
file_type: string | undefined;
file_url: string | undefined;
}
const FileListPage = (props: any) => {
const { folderStore, archivesStore, id } = props;
const [fileList, setFileList] = useState<ArchiveUploadFile[]>([]);
useEffect(() => {
folderStore.getAlist(id).then((res) => {
setFileList(folderStore.alist);
});
}, [folderStore, id]);
const saveHandler = () => {
fileList.forEach((item) => {
item.file_url = item.url;
item.file_type = item.type;
});
archivesStore.save(id, fileList);
};
return (
<div style={{ margin: "10px" }}>
<div style={{ margin: "10px" }}></div>
<div style={{ margin: "10px" }}>
<Button type="primary" onClick={saveHandler}>
</Button>
</div>
<AliUpload
imgList={fileList ?? []}
onChnage={(v) => {
setFileList(v);
}}
maxCount={100}
/>
</div>
);
};
export default inject("archivesStore", "folderStore")(observer(FileListPage));