remove device_num
This commit is contained in:
parent
5d1689ae2a
commit
8497bdf72d
|
@ -3,13 +3,30 @@ import "./layout.less";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import { Store } from "antd/es/form/interface";
|
import { Store } from "antd/es/form/interface";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Avatar, Breadcrumb, Layout, Menu, theme } from "antd";
|
import { Avatar, Breadcrumb, Layout, Menu, MenuProps, theme } from "antd";
|
||||||
import { UserOutlined } from "@ant-design/icons";
|
import { UserOutlined } from "@ant-design/icons";
|
||||||
import Sider from "antd/es/layout/Sider";
|
import Sider from "antd/es/layout/Sider";
|
||||||
import { items, headItems } from "./layout_config";
|
import { items, headItems } from "./layout_config";
|
||||||
import { Dropdown } from "antd/lib";
|
import { Dropdown } from "antd/lib";
|
||||||
import { Outlet, useNavigate } from "react-router";
|
import { Outlet, useNavigate } from "react-router";
|
||||||
|
|
||||||
|
const getLevelKeys = (items1) => {
|
||||||
|
const key: Record<string, number> = {};
|
||||||
|
const func = (items2: [], level = 1) => {
|
||||||
|
items2.forEach((item: any) => {
|
||||||
|
if (item.key) {
|
||||||
|
key[item.key] = level;
|
||||||
|
}
|
||||||
|
if (item.children) {
|
||||||
|
func(item.children, level + 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
func(items1);
|
||||||
|
return key;
|
||||||
|
};
|
||||||
|
const levelKeys = getLevelKeys(items);
|
||||||
|
|
||||||
const LayOut = (props: Store) => {
|
const LayOut = (props: Store) => {
|
||||||
const { usrStore } = props;
|
const { usrStore } = props;
|
||||||
const [collapsed, setCollapsed] = useState(false);
|
const [collapsed, setCollapsed] = useState(false);
|
||||||
|
@ -35,24 +52,44 @@ const LayOut = (props: Store) => {
|
||||||
{ title: "数据集管理" },
|
{ title: "数据集管理" },
|
||||||
{ title: "数据管理" },
|
{ title: "数据管理" },
|
||||||
];
|
];
|
||||||
|
const [stateOpenKeys, setStateOpenKeys] = useState(['2', '23']);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// if (usrStore.isNeedLogin) {
|
// if (usrStore.isNeedLogin) {
|
||||||
// nav("/login");
|
// nav("/login");
|
||||||
// }
|
// }
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [usrStore.isNeedLogin]);
|
}, [usrStore.isNeedLogin]);
|
||||||
|
const onOpenChange: MenuProps['onOpenChange'] = (openKeys) => {
|
||||||
|
const currentOpenKey = openKeys.find((key) => stateOpenKeys.indexOf(key) === -1);
|
||||||
|
// open
|
||||||
|
if (currentOpenKey !== undefined) {
|
||||||
|
const repeatIndex = openKeys
|
||||||
|
.filter((key) => key !== currentOpenKey)
|
||||||
|
.findIndex((key) => levelKeys[key] === levelKeys[currentOpenKey]);
|
||||||
|
|
||||||
|
setStateOpenKeys(
|
||||||
|
openKeys
|
||||||
|
.filter((_, index) => index !== repeatIndex)
|
||||||
|
.filter((key) => levelKeys[key] <= levelKeys[currentOpenKey]),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// close
|
||||||
|
setStateOpenKeys(openKeys);
|
||||||
|
}
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout>
|
||||||
<Header style={headStyle}>
|
<Header style={headStyle}>
|
||||||
<div style={logoStyle}>黄甲数据</div>
|
<div style={logoStyle}>黄甲数据</div>
|
||||||
<Dropdown menu={{ items: headItems,selectable: true, onClick: (e) => {
|
<Dropdown menu={{
|
||||||
console.log(e.key==="loginout")
|
items: headItems, selectable: true, onClick: (e) => {
|
||||||
if (e.key==="loginout"){
|
console.log(e.key === "loginout")
|
||||||
window.localStorage.removeItem("token")
|
if (e.key === "loginout") {
|
||||||
nav("/login")
|
window.localStorage.removeItem("token")
|
||||||
|
nav("/login")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} }}>
|
}}>
|
||||||
<Avatar icon={<UserOutlined />} />
|
<Avatar icon={<UserOutlined />} />
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
</Header>
|
</Header>
|
||||||
|
@ -68,11 +105,11 @@ const LayOut = (props: Store) => {
|
||||||
mode="inline"
|
mode="inline"
|
||||||
theme="dark"
|
theme="dark"
|
||||||
defaultSelectedKeys={["1"]}
|
defaultSelectedKeys={["1"]}
|
||||||
defaultOpenKeys={["sub1"]}
|
openKeys={stateOpenKeys}
|
||||||
style={{ height: "100%", borderRight: 0 }}
|
style={{ height: "100%", borderRight: 0 }}
|
||||||
|
onOpenChange={onOpenChange}
|
||||||
items={items}
|
items={items}
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
console.log(e);
|
|
||||||
nav(e.key);
|
nav(e.key);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -9,7 +9,7 @@ const Role = (props: Store) => {
|
||||||
return (
|
return (
|
||||||
<div className="contentBox">
|
<div className="contentBox">
|
||||||
<BTable
|
<BTable
|
||||||
btnText="添加角色"
|
btnText="添加职位"
|
||||||
store={roleStore}
|
store={roleStore}
|
||||||
scroll={{ x: "max-content" }}
|
scroll={{ x: "max-content" }}
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|
|
@ -1,21 +1,22 @@
|
||||||
import { FormType } from "@/components/form/interface";
|
import { FormType } from "@/components/form/interface";
|
||||||
import { UserDataType } from "@/model/userModel";
|
import { UserDataType } from "@/model/userModel";
|
||||||
import { ColumnsType } from "antd/lib/table";
|
import { ColumnsType } from "antd/lib/table";
|
||||||
|
|
||||||
export const defaultConfig = [
|
export const defaultConfig = [
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
label: "角色名称",
|
label: "职位名称",
|
||||||
name: "name",
|
name: "name",
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请输入用户名称!" }],
|
rules: [{ required: true, message: "请输入职位名称!" }],
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
type: FormType.inputNumber,
|
type: FormType.inputNumber,
|
||||||
label: "角色描述",
|
label: "职位描述",
|
||||||
name: "desc",
|
name: "desc",
|
||||||
value: "",
|
value: "",
|
||||||
rules: [{ required: true, message: "请输入角色描述" }],
|
rules: [{ required: true, message: "请输入职位描述" }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
|
@ -35,12 +36,12 @@ export const defaultConfig = [
|
||||||
|
|
||||||
export const columns: ColumnsType<UserDataType> = [
|
export const columns: ColumnsType<UserDataType> = [
|
||||||
{
|
{
|
||||||
title: "角色名称",
|
title: "职位名称",
|
||||||
dataIndex: "name",
|
dataIndex: "name",
|
||||||
fixed: "left",
|
fixed: "left",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "角色描述",
|
title: "职位描述",
|
||||||
dataIndex: "desc",
|
dataIndex: "desc",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue