ADD
This commit is contained in:
parent
7042f3ef48
commit
4fa3c20664
|
@ -0,0 +1,10 @@
|
||||||
|
const DashboardPage = () => {
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="min-h-screen">
|
||||||
|
<h1>Dashboard</h1>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default DashboardPage;
|
|
@ -1,4 +1,4 @@
|
||||||
import { Button, Modal, Table, Upload } from "antd";
|
import { Button, Checkbox, Modal, Table, Upload } from "antd";
|
||||||
import { ColumnsType } from "antd/es/table";
|
import { ColumnsType } from "antd/es/table";
|
||||||
import { api, useDevice, useStaff } from "@nice/client";
|
import { api, useDevice, useStaff } from "@nice/client";
|
||||||
import { useEffect, useState, useImperativeHandle, forwardRef, useRef } from "react";
|
import { useEffect, useState, useImperativeHandle, forwardRef, useRef } from "react";
|
||||||
|
@ -221,7 +221,7 @@ const DeviceTable = forwardRef(({ onSelectedChange }: DeviceTableProps, ref) =>
|
||||||
|
|
||||||
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
||||||
|
|
||||||
const onSelectChange = (newSelectedRowKeys: React.Key[]) => {
|
const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any[]) => {
|
||||||
setSelectedRowKeys(newSelectedRowKeys);
|
setSelectedRowKeys(newSelectedRowKeys);
|
||||||
};
|
};
|
||||||
//导出函数
|
//导出函数
|
||||||
|
@ -252,7 +252,8 @@ const DeviceTable = forwardRef(({ onSelectedChange }: DeviceTableProps, ref) =>
|
||||||
};
|
};
|
||||||
return statusMap[item.deviceStatus] || "未知";
|
return statusMap[item.deviceStatus] || "未知";
|
||||||
})(),
|
})(),
|
||||||
'时间': item.createdAt ? dayjs(item.createdAt).format('YYYY-MM-DD') : "未知"
|
'时间': item.createdAt ? dayjs(item.createdAt).format('YYYY-MM-DD') : "未知",
|
||||||
|
'描述': item.notes || "无描述"
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// 创建工作簿
|
// 创建工作簿
|
||||||
|
@ -447,7 +448,21 @@ const DeviceTable = forwardRef(({ onSelectedChange }: DeviceTableProps, ref) =>
|
||||||
const rowSelection = {
|
const rowSelection = {
|
||||||
selectedRowKeys,
|
selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
columnWidth: 60,
|
columnWidth: 70,
|
||||||
|
columnTitle: (
|
||||||
|
<div className="flex items-center justify-center">
|
||||||
|
<Checkbox
|
||||||
|
indeterminate={selectedRowKeys?.length > 0 && selectedRowKeys?.length < (devices?.length || 0)}
|
||||||
|
checked={(devices?.length || 0) > 0 && selectedRowKeys?.length === (devices?.length || 0)}
|
||||||
|
onChange={(e) => {
|
||||||
|
const checked = e.target.checked;
|
||||||
|
const newSelectedRowKeys = checked ? (devices || []).map(item => item.id) : [];
|
||||||
|
onSelectChange(newSelectedRowKeys, checked ? devices: []);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<span className="ml-1.5 text-xs whitespace-nowrap">全选</span>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
preserveSelectedRowKeys: true // 这个属性保证翻页时选中状态不丢失
|
preserveSelectedRowKeys: true // 这个属性保证翻页时选中状态不丢失
|
||||||
}
|
}
|
||||||
const TableHeader = () => (
|
const TableHeader = () => (
|
||||||
|
@ -496,6 +511,7 @@ const DeviceTable = forwardRef(({ onSelectedChange }: DeviceTableProps, ref) =>
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
columns={columns}
|
columns={columns}
|
||||||
dataSource={devices}
|
dataSource={devices}
|
||||||
|
size="middle"
|
||||||
tableLayout="fixed"
|
tableLayout="fixed"
|
||||||
rowClassName={(record, index) =>
|
rowClassName={(record, index) =>
|
||||||
index % 2 === 0 ? "bg-white" : "bg-gray-100"
|
index % 2 === 0 ? "bg-white" : "bg-gray-100"
|
||||||
|
|
|
@ -46,9 +46,7 @@ export default function DeviceMessage() {
|
||||||
const [expanded, setExpanded] = useState(false);
|
const [expanded, setExpanded] = useState(false);
|
||||||
// 添加所有筛选条件的状态
|
// 添加所有筛选条件的状态
|
||||||
const [selectedSystem, setSelectedSystem] = useState<string | null>(null);
|
const [selectedSystem, setSelectedSystem] = useState<string | null>(null);
|
||||||
const [selectedDeviceType, setSelectedDeviceType] = useState<string[] | null>(
|
const [selectedDeviceType, setSelectedDeviceType] = useState<string | null>(null);
|
||||||
null
|
|
||||||
);
|
|
||||||
const [selectedDept, setSelectedDept] = useState<string | null>(null)
|
const [selectedDept, setSelectedDept] = useState<string | null>(null)
|
||||||
const [time, setTime] = useState<string>("");
|
const [time, setTime] = useState<string>("");
|
||||||
const [ipAddress, setIpAddress] = useState<string>("");
|
const [ipAddress, setIpAddress] = useState<string>("");
|
||||||
|
|
|
@ -8,6 +8,7 @@ import {
|
||||||
UserOutlined,
|
UserOutlined,
|
||||||
TeamOutlined,
|
TeamOutlined,
|
||||||
KeyOutlined,
|
KeyOutlined,
|
||||||
|
HomeOutlined,
|
||||||
} from "@ant-design/icons";
|
} from "@ant-design/icons";
|
||||||
|
|
||||||
function getItem(
|
function getItem(
|
||||||
|
@ -28,6 +29,7 @@ function getItem(
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const items = [
|
const items = [
|
||||||
|
getItem("首页", "/dashboard", <HomeOutlined />, null, null),
|
||||||
getItem("故障收录检索", "/device", <BookOutlined />, null, null),
|
getItem("故障收录检索", "/device", <BookOutlined />, null, null),
|
||||||
getItem(
|
getItem(
|
||||||
"系统设置",
|
"系统设置",
|
||||||
|
|
|
@ -9,6 +9,8 @@ import { MainLayout } from "../app/main/layout/MainLayout";
|
||||||
import DeviceMessage from "../app/main/devicepage/page";
|
import DeviceMessage from "../app/main/devicepage/page";
|
||||||
import AdminLayout from "../components/layout/admin/AdminLayout";
|
import AdminLayout from "../components/layout/admin/AdminLayout";
|
||||||
import { adminRoute } from "./admin-route";
|
import { adminRoute } from "./admin-route";
|
||||||
|
import WithAuth from "../components/utils/with-auth";
|
||||||
|
import DashboardPage from "../app/main/devicepage/dashboard/page";
|
||||||
interface CustomIndexRouteObject extends IndexRouteObject {
|
interface CustomIndexRouteObject extends IndexRouteObject {
|
||||||
name?: string;
|
name?: string;
|
||||||
breadcrumb?: string;
|
breadcrumb?: string;
|
||||||
|
@ -39,20 +41,24 @@ export const routes: CustomRouteObject[] = [
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
index: true,
|
index: true,
|
||||||
element: <DeviceMessage></DeviceMessage>,
|
element: <WithAuth><DashboardPage></DashboardPage></WithAuth>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/device",
|
path: "/device",
|
||||||
element: <DeviceMessage></DeviceMessage>,
|
element: <WithAuth><DeviceMessage></DeviceMessage></WithAuth>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/admin",
|
path: "/admin",
|
||||||
element: <AdminLayout></AdminLayout>,
|
element: <WithAuth><AdminLayout></AdminLayout></WithAuth>,
|
||||||
children: adminRoute.children,
|
children: adminRoute.children,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
},]
|
},]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/dashboard",
|
||||||
|
element: <WithAuth><DashboardPage/></WithAuth>,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/login",
|
path: "/login",
|
||||||
breadcrumb: "登录",
|
breadcrumb: "登录",
|
||||||
|
|
Loading…
Reference in New Issue