浏览代码

文档管理 合同归档 列表

XuZinan 2 年之前
父节点
当前提交
da0e4b5277
共有 1 个文件被更改,包括 95 次插入15 次删除
  1. 95 15
      src/pages/FileManagement/index.js

+ 95 - 15
src/pages/FileManagement/index.js

@@ -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 />