system-copyright-react/src/route/proj/edit/ProjConfigMenuList.tsx

95 lines
2.6 KiB
TypeScript
Raw Normal View History

2024-03-24 12:15:40 +08:00
import './proj-config-list-mod.css';
import {
Alert,
Breadcrumb, Input,
message,
Table, TableProps,
} from "antd";
import {Link, useNavigate, useParams} from "react-router-dom";
import {useEffect, useState} from "react";
import {get, put} from "../../../util/AjaxUtils.ts";
export const MAX_MOD_SIZE = 2;
interface DataType {
projModId: string;
projId: string;
modContext: string;
modName: string;
modUrl: string;
modDesc: string;
modIcon: string;
}
export default function ProjConfigMenuList() {
const nav = useNavigate();
const pathParams = useParams();
const [messageApi, contextHolder] = message.useMessage();
const [dataArray, setDataArray] = useState<DataType[]>();
const height = window.innerHeight - 165;
const renderData = () => {
get<DataType>({
messageApi,
url: '/api/proj-menu/list',
config: {
params: {
projId: pathParams.projId
}
},
onSuccess({data}) {
setDataArray([...data]);
}
})
}
const columns: TableProps<DataType>['columns'] = [
{
title: '菜单标题',
dataIndex: 'modName',
align: 'center',
width: 180
},
{
title: '菜单连接',
dataIndex: 'modDesc',
align: 'center',
},
{
title: '顺序',
dataIndex: 'modIcon',
align: 'center',
width: 80,
render: (text, record) => {
return <Input defaultValue={text}/>
}
},
];
useEffect(() => {
renderData();
}, [])
return (
<>
{contextHolder}
<Breadcrumb
items={[
{title: <Link to={'/'}></Link>},
{title: <Link to={'/proj-create'}></Link>},
{title: <Link to={`/proj-edit/${pathParams.projId}`}></Link>},
{title: '系统菜单顺序'},
]}
/>
<div className="mod-list-container" style={{height: `${height}px`}}>
<Alert message="菜单指的是系统的功能最少10个菜单最多15个菜单" type="info"/>
<div className="mod-list">
<Table columns={columns} dataSource={dataArray} pagination={{pageSize: 20}}
scroll={{y: height - 210}} size="middle" bordered key="dataTable" rowKey="projModId"/>
</div>
</div>
</>
)
}