From f4359683b65171f8c0c5d974901e06d306bec4be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E8=AA=89=E7=A8=8B?= <2659568239@qq.com> Date: Thu, 28 Dec 2023 11:20:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layouts/LeftMenuOne/index.tsx | 42 +-- .../DevicePhotoMainten/index.tsx | 103 ++++++- .../DeviceRegister/AdminsTab/index.less | 15 + .../DeviceRegister/AdminsTab/index.tsx | 263 ++++++++++++++---- .../DeviceRegister/DeviceTab/index.less | 15 + .../DeviceRegister/DeviceTab/index.tsx | 263 ++++++++++++++---- .../RegisterManage/DeviceSearch/index.tsx | 2 +- .../ParamSingleInstallConfig/index.tsx | 122 +++++++- .../SFSingleInstallConfig/index.tsx | 130 +++++++-- .../ResourceManage/AlgorithmDistr/index.tsx | 72 ++++- .../AlgorithmMaintenance/index.tsx | 36 ++- .../AlgorithmMaintenance/testData.ts | 6 +- .../ResourceManage/AlgorithmParam/index.tsx | 54 +++- .../ResourceManage/ParamMaintenance/index.tsx | 237 ++++++++++++++-- .../ParamMaintenance/testData.ts | 31 +++ src/services/register.ts | 51 ++++ src/services/sf.ts | 80 ++++++ src/styles/minix.less | 5 + 18 files changed, 1324 insertions(+), 203 deletions(-) create mode 100644 src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.less create mode 100644 src/pages/Register/RegisterManage/DeviceRegister/DeviceTab/index.less create mode 100644 src/pages/SF/ResourceManage/ParamMaintenance/testData.ts create mode 100644 src/services/register.ts diff --git a/src/layouts/LeftMenuOne/index.tsx b/src/layouts/LeftMenuOne/index.tsx index 96d38cc..30af6d8 100644 --- a/src/layouts/LeftMenuOne/index.tsx +++ b/src/layouts/LeftMenuOne/index.tsx @@ -21,7 +21,7 @@ const LeftMenuCom: FC = ({ data }) => { const route = useLocation(); const urlParams = useParams(); - const [selectedKeys, setSelectedKeys] = useState([]); + const [selectedKeys, setSelectedKeys] = useState([]); const [contextMenuPosition, setContextMenuPosition] = useState({ x: 0, y: 0 }); const [showContextMenu, setShowContextMenu] = useState(false); const treeRef = useRef(null); @@ -78,28 +78,28 @@ const LeftMenuCom: FC = ({ data }) => { title: 'Child 1', key: '0-1-1', }, - { - title: 'Child 2', - key: '0-1-2', - }, - ], - }, - { - title: 'Parent 2', - key: '0-2', - selectable: false, - isFolder: true, - children: [ - { - title: 'Child 3', - key: '0-2-1', - }, - { - title: 'Child 4', - key: '0-2-2', - }, + // { + // title: 'Child 2', + // key: '0-1-2', + // }, ], }, + // { + // title: 'Parent 2', + // key: '0-2', + // selectable: false, + // isFolder: true, + // children: [ + // { + // title: 'Child 3', + // key: '0-2-1', + // }, + // { + // title: 'Child 4', + // key: '0-2-2', + // }, + // ], + // }, ]; const menuItems = [ diff --git a/src/pages/Register/RegisterManage/DevicePhotoMainten/index.tsx b/src/pages/Register/RegisterManage/DevicePhotoMainten/index.tsx index f8454b4..25648f3 100644 --- a/src/pages/Register/RegisterManage/DevicePhotoMainten/index.tsx +++ b/src/pages/Register/RegisterManage/DevicePhotoMainten/index.tsx @@ -1,21 +1,91 @@ import TabsComp from '@/components/TabsComp'; import styles from '../../../GLQ/index.less'; import styles1 from './index.less'; -import { useState } from 'react'; -import { ConfigProvider, Table, Upload } from 'antd'; +import { useEffect, useState } from 'react'; +import { ConfigProvider, Pagination, Table, Upload, UploadProps, message } from 'antd'; import { rowClassName } from '@/utils'; import ButtonComp from '@/components/ButtonComp'; +import { devicePhotoList } from '@/services/register'; export default function Page() { const [activeTab, setActiveTab] = useState(1) const [tableData, setTableData] = useState([]); + const [pageNumber, setPageNumber] = useState(1); + const [pageSize, setpageSize] = useState(10); + const [total, setTotal] = useState(0); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); + const [imageUrl, setImageUrl] = useState(null); const columns: any = [ { title: '设备型号', dataIndex: 'name', key: 'name', align: 'center' }, { title: '', align: 'center' }, ] + useEffect(() => { + getList(); + }, [pageNumber]); + + const getList = () => { + devicePhotoList({ pageNumber, pageSize }).then((res) => { + if (res?.result == "success") { + setTotal(res.data[0].total) + setTableData(res.data[0].list) + } else { + message.error(res?.errorMsg); + } + }) + } + + const pageOnChange = (pageNumber: number) => { + setPageNumber(pageNumber); + } + + const onShowSizeChange = (current: any, pageSize: any) => { + setpageSize(pageSize); + getList(); + } + + const props: UploadProps = { + maxCount: 1, + beforeUpload: (file: any) => { + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; + const isLt64K = file.size / 1024 <= 64; + if (!isJpgOrPng) { + message.error('只能上传 JPG/PNG 图片文件!'); + return + } + if (!isLt64K) { + message.error('图片大小不能超过 64KB!'); + return + } + return isJpgOrPng && isLt64K; + }, + onChange: (info: any) => { + if (info.file.status === 'done') { + // 上传完成后,从响应数据中获取图片 URL + const imageUrl = info.file.response.url; + setImageUrl(imageUrl); + + // const formData = new FormData(); + // formData.append('file', file); + // secretInit_loadData(formData).then((res) => { + // if (res?.result == "success" && res?.data.length > 0) { + // message.success('加载数据成功'); + // form.setFieldsValue({ ...res?.data[0] }) + // localStorage.setItem('MMJInit', JSON.stringify(res?.data[0])); + // setDataLoading(true); + // } else { + // message.error(res?.errorMsg); + // } + // }) + } + if (info.file.status === 'error') { + message.error('上传失败!'); + } + } + }; + return (
- { }} /> + { }} /> 0 ? { y: 41 * 14 } : {}} pagination={false} @@ -34,18 +104,37 @@ export default function Page() { dataSource={tableData} rowKey={(record: any) => record?.id} rowClassName={rowClassName} + rowSelection={{ + type: 'radio', + selectedRowKeys, + onChange: (selectedKeys: any) => { + setSelectedRowKeys(selectedKeys); + } + }} /> + + {total > 0 &&
+
共 {total} 条
+ +
}
提示:请选择设备型号,然后选择该型号的照片,照片大小不要超过64KB,建议尺寸为128×128像素。
- +
- {/* */} - { }} /> - {/* */} + + { }} /> + { }} />
diff --git a/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.less b/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.less new file mode 100644 index 0000000..2d9c8a3 --- /dev/null +++ b/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.less @@ -0,0 +1,15 @@ +.formSty { + [class~= 'ant-form-item-label'] > label { + justify-content: flex-end; + width: 135px; + } + + [class~= 'ant-input'] { + width: 200px; + } + + [class~= 'ant-form-item'] { + margin-bottom: 0; + margin-top: 20px; + } +} \ No newline at end of file diff --git a/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.tsx b/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.tsx index 0036ebd..82d6708 100644 --- a/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.tsx +++ b/src/pages/Register/RegisterManage/DeviceRegister/AdminsTab/index.tsx @@ -1,18 +1,27 @@ import ButtonComp from '@/components/ButtonComp'; import ContentWarp from '@/components/ContentWarp'; +import { managerSystemConfigList, managerSystemEditOrAdd } from '@/services/register'; import { rowClassName } from '@/utils'; -import { Input, Radio, Select, Table } from 'antd'; -import { useState } from 'react'; +import { Form, Input, Pagination, Radio, Select, Table, message } from 'antd'; +import { useEffect, useState } from 'react'; +import styles from './index.less' const { TextArea } = Input; export default function Page() { const [tableData, setTableData] = useState([]); - const [layer, setLayer] = useState(2); + const [pageNumber, setPageNumber] = useState(1); + const [pageSize, setpageSize] = useState(10); + const [total, setTotal] = useState(0); + const [layer, setLayer] = useState(1); + const [managerSysType, setManagerSysType] = useState(1); + const [content, setContent] = useState(''); + const [form] = Form.useForm(); + const [selectedRowKeys, setSelectedRowKeys] = useState([]); const columns: any = [ { title: '单位名称', dataIndex: 'name', key: 'name', align: 'center' }, - { title: '设备名称', dataIndex: 'name', key: 'name', align: 'center' }, + { title: '系统名称', dataIndex: 'name', key: 'name', align: 'center' }, { title: '实体标识', dataIndex: 'name', key: 'name', align: 'center' }, { title: '310标识', dataIndex: 'name', key: 'name', align: 'center' }, { title: '系统信号', dataIndex: 'name', key: 'name', align: 'center' }, @@ -25,73 +34,213 @@ export default function Page() { { title: '席位名称', dataIndex: 'name', key: 'name', align: 'center' } ] - let inputSty = { width: 200, marginLeft: 16, marginRight: 10 }; - let inputSty1 = { width: 200, marginLeft: 18, marginRight: 10 }; + useEffect(() => { + initForm() + }, []) + + useEffect(() => { + getList(); + }, [pageNumber]); + + const getList = () => { + managerSystemConfigList({ pageNumber, pageSize }).then((res) => { + if (res?.result == "success") { + setTotal(res.data[0].total) + setTableData(res.data[0].list) + } else { + message.error(res?.errorMsg); + } + }) + } + + const initForm = () => { + form.resetFields() + setManagerSysType(1) + } + + const updateList = () => { + pageNumber == 1 ? getList() : setPageNumber(1); + } + + + const onFinish = (values: any) => { + let params = { + level: layer, + photoUrl: "", + managerSysType, + content, + ...values + } + console.log("params", params); + + managerSystemEditOrAdd(params).then((res) => { + if (res?.result == "success") { + message.success('添加成功'); + initForm(); + updateList(); + } else { + message.error(res?.errorMsg); + } + }) + }; + + const pageOnChange = (pageNumber: number) => { + setPageNumber(pageNumber); + } + + const onShowSizeChange = (current: any, pageSize: any) => { + setpageSize(pageSize); + getList(); + } + return (
- { setLayer(e.target.value) }}> - 上级 - 本级 - 下级 - 专用 + { + setLayer(e.target.value) + initForm() + }}> + 上级 + 本级 + 下级 + 专用 +
-
级别:1
+
级别:{layer}
管理系统类型:
- - 密钥分发平台 - 核心区安全隔离器 + { setManagerSysType(e.target.value) }}> + 密钥分发平台 + 核心区安全隔离器
-
-
-
- 单位名称 - { }} /> -
- {layer == 2 &&
设备名称
} -
系统名称
-
实体标识
-
310标识
-
Ⅰ型隔离器外网IP
-
管理区域
- { layer == 3 &&
管理盘号
} -
-
-
电话号码
- {layer == 2 && <> -
Ⅰ型隔离器内网IP
-
密钥编制服务器IP
- } -
联系方式
-
联系人
-
席位名称
-
系统型号
-
-
+ + { + (layer == 1 || layer == 2) ? +
+ {/*
+
级别:{layer}
+ + + 密钥分发平台 + 核心区安全隔离器 + + +
*/} + +
+
+
+ + + + { }} /> +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ { + layer == 2 && +
+ + + + { }} /> +
+ } +
+
+
+ + + +
+ { + layer == 1 && <> +
+ + + +
+
+ + + +
+ + } +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+ : +
+ }
-
+
设备照片
-
+
备注
- {/*
-