|
@@ -33,18 +33,26 @@ import { downloadFile, getToken } from '@/utils/utils';
|
|
import {
|
|
import {
|
|
ExclamationCircleOutlined,
|
|
ExclamationCircleOutlined,
|
|
PlusCircleOutlined,
|
|
PlusCircleOutlined,
|
|
|
|
+ PlusOutlined,
|
|
} from '@ant-design/icons';
|
|
} from '@ant-design/icons';
|
|
import AddFileModal from './components/model';
|
|
import AddFileModal from './components/model';
|
|
import PerModal from './components/PreModal';
|
|
import PerModal from './components/PreModal';
|
|
import { queryAuditList, createAduit } from '@/services/boom';
|
|
import { queryAuditList, createAduit } from '@/services/boom';
|
|
import { stringify } from 'qs';
|
|
import { stringify } from 'qs';
|
|
import FileViewerModal from '@/components/FileViewerNew';
|
|
import FileViewerModal from '@/components/FileViewerNew';
|
|
|
|
+import AddModal from './components/AddModal';
|
|
|
|
+import { useMemo } from 'react';
|
|
|
|
|
|
const tempData = [
|
|
const tempData = [
|
|
{ name: '文件1', upload_user: '管理员', upload_time: '2023-04-08 11:00:00' },
|
|
{ name: '文件1', upload_user: '管理员', upload_time: '2023-04-08 11:00:00' },
|
|
{ name: '文件2', upload_user: '管理员', upload_time: '2023-04-10 11:00:00' },
|
|
{ name: '文件2', upload_user: '管理员', upload_time: '2023-04-10 11:00:00' },
|
|
];
|
|
];
|
|
|
|
|
|
|
|
+const tempPer = [
|
|
|
|
+ { name: '管理员', list: 1, read: 1, download: 1, delete: 1, permission: 1 },
|
|
|
|
+ { name: '徐俊杰', list: 1, read: 1, download: 0, delete: 0, permission: 0 },
|
|
|
|
+];
|
|
|
|
+
|
|
const { DirectoryTree } = Tree;
|
|
const { DirectoryTree } = Tree;
|
|
const { Search } = Input;
|
|
const { Search } = Input;
|
|
const { RangePicker } = DatePicker;
|
|
const { RangePicker } = DatePicker;
|
|
@@ -60,6 +68,11 @@ function FileManagement(props) {
|
|
const [fileViewerVisible, setFileViewerVisible] = useState(false);
|
|
const [fileViewerVisible, setFileViewerVisible] = useState(false);
|
|
const [fileViewerData, setFileViewerData] = useState();
|
|
const [fileViewerData, setFileViewerData] = useState();
|
|
|
|
|
|
|
|
+ const isSuper = useMemo(() => {
|
|
|
|
+ if (user?.Permission['menu-001-audit']) return true;
|
|
|
|
+ return false;
|
|
|
|
+ }, [user]);
|
|
|
|
+
|
|
const {
|
|
const {
|
|
data: treeData,
|
|
data: treeData,
|
|
loading: treeLoading,
|
|
loading: treeLoading,
|
|
@@ -82,7 +95,7 @@ function FileManagement(props) {
|
|
...item,
|
|
...item,
|
|
dir_name: item.file_name,
|
|
dir_name: item.file_name,
|
|
create_time: item.created_on,
|
|
create_time: item.created_on,
|
|
- key: idx,
|
|
|
|
|
|
+ key: item.id,
|
|
};
|
|
};
|
|
}) || [];
|
|
}) || [];
|
|
setTableData(result);
|
|
setTableData(result);
|
|
@@ -111,7 +124,7 @@ function FileManagement(props) {
|
|
...item,
|
|
...item,
|
|
dir_name: name,
|
|
dir_name: name,
|
|
create_time: dayjs(item.c_time).format('YYYY-MM-DD'),
|
|
create_time: dayjs(item.c_time).format('YYYY-MM-DD'),
|
|
- key: idx,
|
|
|
|
|
|
+ key: item.id,
|
|
};
|
|
};
|
|
}) || [];
|
|
}) || [];
|
|
setTableData(result);
|
|
setTableData(result);
|
|
@@ -131,7 +144,7 @@ function FileManagement(props) {
|
|
...item,
|
|
...item,
|
|
dir_name: item.name,
|
|
dir_name: item.name,
|
|
create_time: item.created_on,
|
|
create_time: item.created_on,
|
|
- key: idx,
|
|
|
|
|
|
+ key: item.id,
|
|
};
|
|
};
|
|
}) || [];
|
|
}) || [];
|
|
setTableData(result);
|
|
setTableData(result);
|
|
@@ -154,16 +167,17 @@ function FileManagement(props) {
|
|
},
|
|
},
|
|
},
|
|
},
|
|
);
|
|
);
|
|
- //申请权限
|
|
|
|
|
|
+ //文件授权
|
|
const { loading: perLoading, run: runPer } = useRequest(
|
|
const { loading: perLoading, run: runPer } = useRequest(
|
|
(data) => querySetPermit(data),
|
|
(data) => querySetPermit(data),
|
|
{
|
|
{
|
|
manual: true,
|
|
manual: true,
|
|
onSuccess: (data) => {
|
|
onSuccess: (data) => {
|
|
- message.success('申请成功');
|
|
|
|
|
|
+ setAddOpen(false);
|
|
|
|
+ message.success('授权成功');
|
|
},
|
|
},
|
|
onError: () => {
|
|
onError: () => {
|
|
- message.error('申请失败');
|
|
|
|
|
|
+ message.error('授权失败');
|
|
},
|
|
},
|
|
},
|
|
},
|
|
);
|
|
);
|
|
@@ -271,6 +285,36 @@ function FileManagement(props) {
|
|
},
|
|
},
|
|
];
|
|
];
|
|
|
|
|
|
|
|
+ const editPer = true;
|
|
|
|
+ const columnsPer = [
|
|
|
|
+ { title: '用户', dataIndex: 'name' },
|
|
|
|
+ {
|
|
|
|
+ title: '查看列表',
|
|
|
|
+ dataIndex: 'list',
|
|
|
|
+ render: (value, _) => <Checkbox checked={value} disabled />,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '只读',
|
|
|
|
+ dataIndex: 'read',
|
|
|
|
+ render: (value, _) => <Checkbox checked={value} disabled />,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '下载',
|
|
|
|
+ dataIndex: 'download',
|
|
|
|
+ render: (value, _) => <Checkbox checked={value} disabled={!editPer} />,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '删除',
|
|
|
|
+ dataIndex: 'delete',
|
|
|
|
+ render: (value, _) => <Checkbox checked={value} disabled={!editPer} />,
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '授权',
|
|
|
|
+ dataIndex: 'permission',
|
|
|
|
+ render: (value, _) => <Checkbox checked={value} disabled={!editPer} />,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
//获取列表的权限
|
|
//获取列表的权限
|
|
if (!tableData || tableData.length <= 0) return;
|
|
if (!tableData || tableData.length <= 0) return;
|
|
@@ -494,6 +538,18 @@ function FileManagement(props) {
|
|
申请权限
|
|
申请权限
|
|
</Button>
|
|
</Button>
|
|
</Form.Item>
|
|
</Form.Item>
|
|
|
|
+ {isSuper && (
|
|
|
|
+ <Form.Item>
|
|
|
|
+ <Button
|
|
|
|
+ type="primary"
|
|
|
|
+ onClick={() => setAddOpen(true)}
|
|
|
|
+ disabled={selectedRowKeys?.length > 0 ? false : true}
|
|
|
|
+ >
|
|
|
|
+ <PlusOutlined />
|
|
|
|
+ 新增权限
|
|
|
|
+ </Button>
|
|
|
|
+ </Form.Item>
|
|
|
|
+ )}
|
|
</Form>
|
|
</Form>
|
|
<div>
|
|
<div>
|
|
<Table
|
|
<Table
|
|
@@ -513,35 +569,29 @@ function FileManagement(props) {
|
|
childrenColumnName="none"
|
|
childrenColumnName="none"
|
|
pagination={false}
|
|
pagination={false}
|
|
/>
|
|
/>
|
|
- {/*
|
|
|
|
- <Button type="primary" onClick={() => setAddOpen(true)}>
|
|
|
|
- <PlusOutlined />
|
|
|
|
- 新增权限
|
|
|
|
- </Button>
|
|
|
|
- {!editPer && (
|
|
|
|
- <Button
|
|
|
|
- type="primary"
|
|
|
|
- onClick={() => setEditPer(true)}
|
|
|
|
- style={{ marginLeft: 20 }}
|
|
|
|
- >
|
|
|
|
- 编辑权限
|
|
|
|
- </Button>
|
|
|
|
- )}
|
|
|
|
- {editPer && (
|
|
|
|
- <Button
|
|
|
|
- type="primary"
|
|
|
|
- onClick={() => setEditPer(false)}
|
|
|
|
- style={{ marginLeft: 20 }}
|
|
|
|
- >
|
|
|
|
- 确定
|
|
|
|
- </Button>
|
|
|
|
|
|
+ {isSuper && selectedRowKeys?.length > 0 && (
|
|
|
|
+ <>
|
|
|
|
+ <div
|
|
|
|
+ style={{
|
|
|
|
+ marginTop: '30px',
|
|
|
|
+ fontWeight: 'bold',
|
|
|
|
+ fontSize: '20px',
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
|
|
+ 《
|
|
|
|
+ {
|
|
|
|
+ tableData?.find((item) => item.key == selectedRowKeys[0])
|
|
|
|
+ ?.dir_name
|
|
|
|
+ }
|
|
|
|
+ 》权限列表
|
|
|
|
+ </div>
|
|
|
|
+ <Table
|
|
|
|
+ columns={columnsPer}
|
|
|
|
+ dataSource={tempPer}
|
|
|
|
+ style={{ overflowY: 'auto' }}
|
|
|
|
+ />
|
|
|
|
+ </>
|
|
)}
|
|
)}
|
|
- <Table
|
|
|
|
- columns={columnsPer}
|
|
|
|
- dataSource={tempPer}
|
|
|
|
- style={{ overflowY: 'auto' }}
|
|
|
|
- />
|
|
|
|
- */}
|
|
|
|
</div>
|
|
</div>
|
|
</ProCard>
|
|
</ProCard>
|
|
<Input
|
|
<Input
|
|
@@ -553,9 +603,16 @@ function FileManagement(props) {
|
|
/>
|
|
/>
|
|
{contextHolder}
|
|
{contextHolder}
|
|
</div>
|
|
</div>
|
|
- {/* <PerModal /> */}
|
|
|
|
- <AddModal />
|
|
|
|
-
|
|
|
|
|
|
+ <AddModal
|
|
|
|
+ node={node}
|
|
|
|
+ havePreList={preListData?.list?.filter(
|
|
|
|
+ (item) => item.file_id == selectedRowKeys[0],
|
|
|
|
+ )}
|
|
|
|
+ fileNode={tableData?.find((item) => item.key == selectedRowKeys[0])}
|
|
|
|
+ addOpen={addOpen}
|
|
|
|
+ onCancel={() => setAddOpen(false)}
|
|
|
|
+ onOk={(data) => runPer(data)}
|
|
|
|
+ />
|
|
<AddFileModal
|
|
<AddFileModal
|
|
id={node?.id}
|
|
id={node?.id}
|
|
visible={visible}
|
|
visible={visible}
|
|
@@ -584,51 +641,6 @@ function FileManagement(props) {
|
|
/>
|
|
/>
|
|
</PageContainer>
|
|
</PageContainer>
|
|
);
|
|
);
|
|
- function AddModal(props) {
|
|
|
|
- const perList = [
|
|
|
|
- { label: '查看列表', value: 'a', disabled: true },
|
|
|
|
- { label: '只读', value: 'b', disabled: true },
|
|
|
|
- { label: '下载', value: 'c' },
|
|
|
|
- { label: '删除', value: 'd' },
|
|
|
|
- { label: '授权', value: 'e' },
|
|
|
|
- ];
|
|
|
|
-
|
|
|
|
- const rowSelection = {
|
|
|
|
- onChange: (selectedRowKeys, selectedRows) => {
|
|
|
|
- console.log(
|
|
|
|
- `selectedRowKeys: ${selectedRowKeys}`,
|
|
|
|
- 'selectedRows: ',
|
|
|
|
- selectedRows,
|
|
|
|
- );
|
|
|
|
- },
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- return (
|
|
|
|
- <Modal
|
|
|
|
- title="新增权限"
|
|
|
|
- open={addOpen}
|
|
|
|
- onCancel={() => setAddOpen(false)}
|
|
|
|
- width={800}
|
|
|
|
- >
|
|
|
|
- <Table
|
|
|
|
- title={() => '文档列表'}
|
|
|
|
- columns={columns.slice(0, -1)}
|
|
|
|
- dataSource={tempData}
|
|
|
|
- pagination={false}
|
|
|
|
- rowSelection={rowSelection}
|
|
|
|
- destroyOnClose
|
|
|
|
- />
|
|
|
|
- <div style={{ margin: '20px 0px' }}>
|
|
|
|
- <span style={{ marginRight: 20 }}>选择用户:</span>
|
|
|
|
- <TreeSelect multiple={true} style={{ width: 200 }}></TreeSelect>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <span style={{ marginRight: 20 }}>选择权限:</span>
|
|
|
|
- <Checkbox.Group options={perList} defaultValue={['a', 'b']} />
|
|
|
|
- </div>
|
|
|
|
- </Modal>
|
|
|
|
- );
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
export default FileManagement;
|
|
export default FileManagement;
|