remove device_num

This commit is contained in:
wang_yp 2025-06-07 13:51:31 +08:00
parent 5d1689ae2a
commit 8497bdf72d
3 changed files with 54 additions and 16 deletions

View File

@ -3,13 +3,30 @@ import "./layout.less";
import { inject, observer } from "mobx-react";
import { Store } from "antd/es/form/interface";
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 Sider from "antd/es/layout/Sider";
import { items, headItems } from "./layout_config";
import { Dropdown } from "antd/lib";
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 { usrStore } = props;
const [collapsed, setCollapsed] = useState(false);
@ -35,24 +52,44 @@ const LayOut = (props: Store) => {
{ title: "数据集管理" },
{ title: "数据管理" },
];
const [stateOpenKeys, setStateOpenKeys] = useState(['2', '23']);
useEffect(() => {
// if (usrStore.isNeedLogin) {
// nav("/login");
// }
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [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 (
<Layout>
<Header style={headStyle}>
<div style={logoStyle}></div>
<Dropdown menu={{ items: headItems,selectable: true, onClick: (e) => {
console.log(e.key==="loginout")
if (e.key==="loginout"){
window.localStorage.removeItem("token")
nav("/login")
<Dropdown menu={{
items: headItems, selectable: true, onClick: (e) => {
console.log(e.key === "loginout")
if (e.key === "loginout") {
window.localStorage.removeItem("token")
nav("/login")
}
}
} }}>
}}>
<Avatar icon={<UserOutlined />} />
</Dropdown>
</Header>
@ -68,11 +105,11 @@ const LayOut = (props: Store) => {
mode="inline"
theme="dark"
defaultSelectedKeys={["1"]}
defaultOpenKeys={["sub1"]}
openKeys={stateOpenKeys}
style={{ height: "100%", borderRight: 0 }}
onOpenChange={onOpenChange}
items={items}
onClick={(e) => {
console.log(e);
nav(e.key);
}}
/>

View File

@ -9,7 +9,7 @@ const Role = (props: Store) => {
return (
<div className="contentBox">
<BTable
btnText="添加角色"
btnText="添加职位"
store={roleStore}
scroll={{ x: "max-content" }}
columns={columns}

View File

@ -1,21 +1,22 @@
import { FormType } from "@/components/form/interface";
import { UserDataType } from "@/model/userModel";
import { ColumnsType } from "antd/lib/table";
export const defaultConfig = [
{
type: FormType.input,
label: "角色名称",
label: "职位名称",
name: "name",
value: "",
rules: [{ required: true, message: "请输入用户名称!" }],
rules: [{ required: true, message: "请输入职位名称!" }],
},
{
type: FormType.inputNumber,
label: "角色描述",
label: "职位描述",
name: "desc",
value: "",
rules: [{ required: true, message: "请输入角色描述" }],
rules: [{ required: true, message: "请输入职位描述" }],
},
{
type: FormType.input,
@ -35,12 +36,12 @@ export const defaultConfig = [
export const columns: ColumnsType<UserDataType> = [
{
title: "角色名称",
title: "职位名称",
dataIndex: "name",
fixed: "left",
},
{
title: "角色描述",
title: "职位描述",
dataIndex: "desc",
},