|
@@ -10,7 +10,7 @@ import {
|
|
|
Modal,
|
|
|
Checkbox,
|
|
|
TreeSelect,
|
|
|
- Select,
|
|
|
+ Upload,
|
|
|
Space,
|
|
|
message,
|
|
|
} from 'antd';
|
|
@@ -23,6 +23,8 @@ import {
|
|
|
queryFileList,
|
|
|
queryOAFile,
|
|
|
} from '../../services/file';
|
|
|
+import { queryGetContractList } from '../../services/contract';
|
|
|
+import { downloadFile, getToken } from '@/utils/utils';
|
|
|
import { PlusOutlined } from '@ant-design/icons';
|
|
|
import AddFileModal from './components/model';
|
|
|
|
|
@@ -60,7 +62,7 @@ function FileManagement(props) {
|
|
|
const [visible, setVisible] = useState(false);
|
|
|
const [id, setId] = useState();
|
|
|
|
|
|
- const [isOA, setOA] = useState(false);
|
|
|
+ const [fileType, setType] = useState(null);
|
|
|
|
|
|
const {} = useRequest((data) => queryDirList(data), {
|
|
|
onSuccess: (data) => {
|
|
@@ -83,6 +85,14 @@ function FileManagement(props) {
|
|
|
run: runOA,
|
|
|
} = useRequest((data) => queryOAFile(data), { manual: true });
|
|
|
|
|
|
+ const {
|
|
|
+ data: contractData,
|
|
|
+ loading: contractLoading,
|
|
|
+ run: runContract,
|
|
|
+ } = useRequest((data) => queryGetContractList({ ...data, status: 3 }), {
|
|
|
+ manual: true,
|
|
|
+ });
|
|
|
+
|
|
|
const { loading: createLoading, run: RunCreate } = useRequest(
|
|
|
(data) => queryDirCreate(data),
|
|
|
{
|
|
@@ -105,12 +115,16 @@ function FileManagement(props) {
|
|
|
const columns = [
|
|
|
{ title: '文档名称', dataIndex: 'file_name' },
|
|
|
{ title: '上传人员', dataIndex: 'user_name' },
|
|
|
- { title: '上传时间', dataIndex: 'create_time' },
|
|
|
+ {
|
|
|
+ title: '上传时间',
|
|
|
+ dataIndex: 'create_time',
|
|
|
+ render: (text) => dayjs(text).format('YYYY-MM-DD'),
|
|
|
+ },
|
|
|
{
|
|
|
title: '操作',
|
|
|
render: (_, record) => (
|
|
|
<>
|
|
|
- <a>下载</a>
|
|
|
+ <a onClick={() => onDownload(record)}>下载</a>
|
|
|
<Divider type="vertical" />
|
|
|
<a>删除</a>
|
|
|
</>
|
|
@@ -124,11 +138,27 @@ function FileManagement(props) {
|
|
|
{
|
|
|
title: '上传时间',
|
|
|
dataIndex: 'c_time',
|
|
|
- render: (text) => dayjs(text).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+ render: (text) => dayjs(text).format('YYYY-MM-DD'),
|
|
|
},
|
|
|
{
|
|
|
title: '操作',
|
|
|
- render: (_, record) => <a>下载</a>,
|
|
|
+ render: (_, record) => <a onClick={() => onDownloadOA(record)}>下载</a>,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+
|
|
|
+ const contractColumns = [
|
|
|
+ { title: '文档名称', dataIndex: 'name' },
|
|
|
+ { title: '上传人员', dataIndex: 'created_name' },
|
|
|
+ { title: '上传时间', dataIndex: 'created_on' },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ render: (_, record) => (
|
|
|
+ <>
|
|
|
+ <a>下载</a>
|
|
|
+ <Divider type="vertical" />
|
|
|
+ <a>删除</a>
|
|
|
+ </>
|
|
|
+ ),
|
|
|
},
|
|
|
];
|
|
|
|
|
@@ -209,14 +239,70 @@ function FileManagement(props) {
|
|
|
const handleSelect = (SelectKeys, e) => {
|
|
|
const node = e.node;
|
|
|
if (node?.classify_id == 42 || node?.classify_id == 43) {
|
|
|
- setOA(true);
|
|
|
+ setType('OA');
|
|
|
runOA({ classify_id: node.classify_id });
|
|
|
+ } else if (node.id == 6) {
|
|
|
+ setType('contract');
|
|
|
+ runContract({});
|
|
|
} else {
|
|
|
- setOA(false);
|
|
|
+ setType(null);
|
|
|
run({ dir_id: SelectKeys[0] });
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ const renderFileTable = () => {
|
|
|
+ let tableColumns = [];
|
|
|
+ let tableData = [];
|
|
|
+ let tableLoading = false;
|
|
|
+
|
|
|
+ switch (fileType) {
|
|
|
+ case 'OA':
|
|
|
+ tableColumns = OAcolumns;
|
|
|
+ tableData = OAdata?.list;
|
|
|
+ tableLoading = OAloading;
|
|
|
+ break;
|
|
|
+ case 'contract':
|
|
|
+ tableColumns = contractColumns;
|
|
|
+ tableData = contractData?.list;
|
|
|
+ tableLoading = contractLoading;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ tableColumns = columns;
|
|
|
+ tableData = data?.list;
|
|
|
+ tableLoading = loading;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return (
|
|
|
+ <Table
|
|
|
+ columns={tableColumns}
|
|
|
+ dataSource={tableData}
|
|
|
+ loading={tableLoading}
|
|
|
+ style={{ overflowY: 'auto' }}
|
|
|
+ pagination={false}
|
|
|
+ />
|
|
|
+ );
|
|
|
+ };
|
|
|
+
|
|
|
+ const onDownload = (record) => {
|
|
|
+ const token = getToken();
|
|
|
+ // downloadFile(
|
|
|
+ // `/api/archive/v1/file/download?file_id=${record.id}&JWT-TOKEN=${token}`,
|
|
|
+ // record.file_name,
|
|
|
+ // false,
|
|
|
+ // );
|
|
|
+ downloadFile(
|
|
|
+ `http://47.96.12.136:8888/api/archive/v1/file/download?file_id=${record.id}&JWT-TOKEN=${token}`,
|
|
|
+ record.file_name,
|
|
|
+ false,
|
|
|
+ );
|
|
|
+ };
|
|
|
+
|
|
|
+ const onDownloadOA = (record) => {
|
|
|
+ const token = getToken();
|
|
|
+ downloadFile(record.url, record.name);
|
|
|
+ };
|
|
|
+
|
|
|
return (
|
|
|
<PageContainer>
|
|
|
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
|
|
@@ -271,13 +357,7 @@ function FileManagement(props) {
|
|
|
</Form.Item>
|
|
|
</Form>
|
|
|
<div>
|
|
|
- <Table
|
|
|
- columns={isOA ? OAcolumns : columns}
|
|
|
- dataSource={isOA ? OAdata?.list : data?.list}
|
|
|
- loading={isOA ? OAloading : loading}
|
|
|
- style={{ overflowY: 'auto' }}
|
|
|
- pagination={false}
|
|
|
- />
|
|
|
+ {renderFileTable()}
|
|
|
{/*
|
|
|
<Button type="primary" onClick={() => setAddOpen(true)}>
|
|
|
<PlusOutlined />
|