master
鲁誉程 1 year ago
parent 6c94cd91db
commit 377f6453c8

@ -1,8 +1,8 @@
import { FC, useEffect, useRef, useState } from 'react';
import styles from './index.less';
import { history, useLocation, useParams } from 'umi';
import { Menu, Tree } from 'antd';
import { unitAddressList } from '@/services/register';
import { Menu, Tree, message } from 'antd';
import { deviceHardPage, managerSystemConfigList, unitAddressList } from '@/services/register';
import eventBus from '@/utils/eventBus';
interface PageProps {
@ -82,8 +82,10 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
useEffect(() => {
eventBus.on('getDeviceRegisterList', getDeviceRegisterList);
eventBus.on('getUnitList', getUnitList);
return () => {
eventBus.off('getDeviceRegisterList', getDeviceRegisterList);
eventBus.off('getUnitList', getUnitList);
};
}, [])
@ -94,6 +96,7 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
{ key: '1', label: '删除' },
{ key: '2', label: '刷新' },
])
getDeviceRegisterList();
} else if (`/registerManage/unitLocation/${urlStr}` == `${location.pathname}${location.search}`) {
setMenuItems([
{ key: '3', label: '修改' },
@ -105,11 +108,55 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
}
}
// 更新设备注册树结构数据
const getDeviceRegisterList = async () => {
let manager: any = [];
let device: any = [];
// 单位列表
await unitAddressList({ pageNum: 1, pageSize: 100, 'unitAddress.delFlag': 0}).then((res) => {
if (res?.result == "success") {
res.data[0].list.forEach((val: any) => {
val.title = val.unitName;
val.key = val.unitName;
val.hideOperation = true;
});
manager = res.data[0].list.filter((val: any) => {return val.delFlag == 0})
} else {
message.error(res?.errorMsg);
}
})
// 设备注册列表
await deviceHardPage({ pageNumber: 1, pageSize: 100 }).then((res) => {
if (res?.result == "success") {
res.data[0].list.forEach((val: any) => { val.title = val.deviceName; val.key = val.id; })
device = res.data[0].list.filter((val: any) => {return val.delFlag == 0})
} else {
message.error(res?.errorMsg);
}
})
if (manager.length > 0) {
manager.forEach((item: any) => {
let children: any = [];
device.forEach((item1: any) => {
if (item1.unitName == item.unitName) {
children.push(item1);
}
})
item.children = children;
})
setTreeData((e) => { e[0].children = manager; return e })
setTreeKey((e: any) => { return e + 1 })
}
}
// 更新单位位置管理树结构数据
const getUnitList = (type?: string) => {
unitAddressList({ pageNum: 1, pageSize: 50}).then((res: any) => {
unitAddressList({ pageNum: 1, pageSize: 100, 'unitAddress.delFlag': 0}).then((res: any) => {
if (res.result == 'success') {
res.data[0].list.forEach((val: any) => { val.title = val.unitName; val.key = val.id; })
// 过滤掉delFlag == 1的数据
res.data[0].list = res.data[0].list.filter((val: any) => {return val.delFlag == 0})
setTreeData1((e) => { e[0].children = res.data[0].list; return e })
setTreeKey((e: any) => { return e + 1 })
if (type == '添加成功') {
@ -122,7 +169,7 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
}
const handleRightClick = (e: any, node: any) => {
if (node?.isFolder) return
if (node?.isFolder || node?.hideOperation) return
e[0] == 'root' ? eventBus.emit('hideFlag', false) : eventBus.emit('hideFlag', true);
e.preventDefault();
setContextMenuPosition({ x: e.clientX, y: e.clientY }); // 记录右键菜单位置

@ -1,11 +1,12 @@
import ButtonComp from '@/components/ButtonComp';
import ContentWarp from '@/components/ContentWarp';
import { managerSystemConfigList, managerSystemEditOrAdd } from '@/services/register';
import { managerSystemConfigList, managerSystemEditOrAdd, unitAddressList } from '@/services/register';
import { rowClassName } from '@/utils';
import { Form, Input, Pagination, Radio, Select, Table, message } from 'antd';
import { useEffect, useState } from 'react';
import styles from './index.less'
import { useLocation, useParams, history } from 'umi';
import eventBus from '@/utils/eventBus';
const { TextArea } = Input;
@ -22,12 +23,13 @@ export default function Page() {
const [content, setContent] = useState('');
const [form] = Form.useForm();
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [unitList, setUnitList] = useState([]);
let sysData = localStorage.getItem(`${urlParams?.fileType}`);
let info = sysData ? JSON.parse(sysData) : null;
const columns: any = [
{ title: '单位名称', dataIndex: 'seatName', key: 'seatName', align: 'center' },
{ title: '单位名称', dataIndex: 'unitName', key: 'unitName', align: 'center' },
{ title: '系统名称', dataIndex: 'sysName', key: 'sysName', align: 'center' },
{ title: '实体标识', dataIndex: 'sysEntityId', key: 'sysEntityId', align: 'center' },
{ title: '310标识', dataIndex: 'sysMarkId', key: 'sysMarkId', align: 'center' },
@ -42,6 +44,7 @@ export default function Page() {
]
useEffect(() => {
getUnitList()
initForm()
}, [])
@ -50,6 +53,14 @@ export default function Page() {
setSelectedRowKeys([])
}, [pageNumber]);
const getUnitList = () => {
unitAddressList({ pageNum: 1, pageSize: 50 }).then((res: any) => {
if (res.result == 'success') {
setUnitList(res.data[0].list)
}
})
}
const getList = () => {
managerSystemConfigList({ pageNumber, pageSize }).then((res) => {
if (res?.result == "success") {
@ -80,16 +91,17 @@ export default function Page() {
content,
...values
}
if (layer == 2) {
params.isolatorIntranetIp = '199.66.33.33'
}
console.log("params", params);
managerSystemEditOrAdd(params).then((res) => {
if (res?.result == "success") {
message.success('添加成功');
initForm();
updateList();
eventBus.emit('getDeviceRegisterList');
} else {
message.error(res?.errorMsg);
}
@ -115,10 +127,10 @@ export default function Page() {
setLayer(e.target.value)
initForm()
}}>
<Radio value={0} style={{ marginRight: 30 }}> </Radio>
<Radio value={0} disabled style={{ marginRight: 30 }}> </Radio>
<Radio value={1} style={{ marginRight: 30 }}> </Radio>
<Radio value={2} style={{ marginRight: 30 }}> </Radio>
<Radio value={3} > </Radio>
<Radio value={3} disabled> </Radio>
</Radio.Group>
<div className='mb10 mt20 flex_aiC'>
@ -144,12 +156,9 @@ export default function Page() {
<Select
placeholder="请选择单位名称"
style={{ width: 200 }}
options={[
{ label: '单位1', value: '单位1' },
{ label: '单位2', value: '单位2' },
{ label: '单位3', value: '单位3' }
]}>
</Select>
options={unitList}
fieldNames={{ label: 'unitName', value: 'unitName' }}
/>
</Form.Item>
<ButtonComp text={'定位'} style={{ margin: '20px 0 0px 20px' }} onClick={() => {
let obj: any = {
@ -206,7 +215,7 @@ export default function Page() {
</div>
<div style={{ width: '50%', minWidth: 400 }}>
<div className='flex_aiC'>
<Form.Item name="telephone" label="电话号码" rules={[{ required: true, message: '请输入电话号码' },]}>
<Form.Item name="telephone" label="电话号码">
<Input placeholder="请输入电话号码" />
</Form.Item>
</div>
@ -218,29 +227,29 @@ export default function Page() {
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="pwdServerIp" label="密钥编制服务器IP" rules={[{ required: true, message: '请输入密钥编制服务器IP' },]}>
<Form.Item name="pwdServerIp" label="密钥编制服务器IP">
<Input placeholder="请输入密钥编制服务器IP" />
</Form.Item>
</div>
</>
}
<div className='flex_aiC'>
<Form.Item name="contactsInfo" label="联系方式" rules={[{ required: true, message: '请输入联系方式' },]}>
<Form.Item name="contactsInfo" label="联系方式" >
<Input placeholder="请输入联系方式" />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="contacts" label="联系人" rules={[{ required: true, message: '请输入联系人' },]}>
<Form.Item name="contacts" label="联系人" >
<Input placeholder="请输入联系人" />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="seatName" label="席位名称" rules={[{ required: true, message: '请输入席位名称' },]}>
<Form.Item name="seatName" label="席位名称">
<Input placeholder="请输入席位名称" />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="sysType" label="系统型号" rules={[{ required: true, message: '请选择系统型号' },]}>
<Form.Item name="sysType" label="系统型号">
<Select
placeholder="请选择系统型号"
style={{ width: 200 }}

@ -0,0 +1,85 @@
import ButtonComp from "@/components/ButtonComp";
import { diskDataImport, secretFormatList } from "@/services/register";
import { rowClassName } from "@/utils";
import { Modal, Table, Upload, UploadProps, message } from "antd";
import { FC, useEffect, useState } from "react";
interface PageProps {
visibility: boolean;
onCancel: () => void;
onOk: (e: any) => void;
}
const SelectDiskDialog: FC<PageProps> = ({ visibility = false, onCancel, onOk}) => {
const [tableData, setTableData] = useState<any>([]);
const [total, setTotal] = useState(0);
const [diskNumber, setdiskNumber] = useState('');
const columns: any = [
{ title: '管理盘号', dataIndex: 'diskNumber', key: 'diskNumber', align: 'center' },
{ title: '文件数量', dataIndex: 'count', key: 'count', align: 'center' },
{ title: '使用状态', dataIndex: 'status', key: 'status', align: 'center' }
]
useEffect(() => {
if (visibility) {
setTableData([])
setTotal(0)
setdiskNumber('')
}
}, [visibility])
const props: UploadProps = {
maxCount: 1,
beforeUpload: (file: any) => {
if (file?.name == 'diskNumber.bat') {
message.success('导入成功');
setTotal(1)
setTableData([{diskNumber: 'C盘', count: 12, status: '已使用'}])
setdiskNumber('C盘')
} else {
message.error('导入失败');
}
}
};
return <Modal
title="选择管理盘"
open={visibility}
centered
width={900}
onCancel={() => onCancel()}
footer={null}>
<div className="flex_aiC_jB">
<div>310</div>
<Upload {...props} showUploadList={false}>
<ButtonComp text={'导入'} />
</Upload>
</div>
<div className="mt30 mb10">{total}</div>
<Table
scroll={tableData.length > 0 ? { y: 41 * 5 } : {}}
pagination={false}
bordered
columns={columns}
dataSource={tableData}
rowKey={(record: any) => record?.diskNumber}
rowClassName={rowClassName}
/>
<div className='flex_jE mt20'>
<ButtonComp style={{ marginRight: 20 }} text={'确定'} onClick={() => {
if (tableData.length > 0) {
onOk(diskNumber)
onCancel()
}else {
message.info('请导入管理盘!')
}
}} />
<ButtonComp type="cancel" text={'取消'} onClick={onCancel} />
</div>
</Modal>
}
export default SelectDiskDialog

@ -1,11 +1,14 @@
import ButtonComp from '@/components/ButtonComp';
import ContentWarp from '@/components/ContentWarp';
import { rowClassName } from '@/utils';
import { Form, Input, Pagination, Select, Table, message } from 'antd';
import { Form, Input, Modal, Pagination, Select, Table, Upload, message } from 'antd';
import { useEffect, useState } from 'react';
import styles from './index.less'
import { deviceHardEditOrAdd, deviceHardPage } from '@/services/register';
import { deviceHardEditOrAdd, deviceHardPage, unitAddressList } from '@/services/register';
import { useParams, history } from 'umi';
import SelectDiskDialog from './Dialog/selectDiskDialog';
import { fileStr, sysType, sysTypeStr } from '@/utils/sysType';
import eventBus from '@/utils/eventBus';
const { TextArea } = Input;
@ -13,7 +16,7 @@ export default function Page() {
const urlParams = useParams();
let sysData = localStorage.getItem(`${urlParams?.fileType}`);
let info = sysData ? JSON.parse(sysData) : null;
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
@ -21,6 +24,8 @@ export default function Page() {
const [form] = Form.useForm();
const [content, setContent] = useState('');
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [unitList, setUnitList] = useState([]);
const [selectDisk, setSelectDisk] = useState(false); // 选择管理盘弹窗
const columns: any = [
{ title: '单位名称', dataIndex: 'unitName', key: 'unitName', align: 'center' },
@ -38,7 +43,8 @@ export default function Page() {
]
useEffect(() => {
initForm()
initForm();
getUnitList()
}, [])
useEffect(() => {
@ -46,6 +52,14 @@ export default function Page() {
setSelectedRowKeys([])
}, [pageNumber]);
const getUnitList = () => {
unitAddressList({ pageNum: 1, pageSize: 50 }).then((res: any) => {
if (res.result == 'success') {
setUnitList(res.data[0].list)
}
})
}
const getList = () => {
deviceHardPage({ pageNumber, pageSize }).then((res) => {
if (res?.result == "success") {
@ -67,7 +81,9 @@ export default function Page() {
}
const onFinish = (values: any) => {
let str: string = sysType[urlParams?.fileType] + fileStr[urlParams?.fileType]
let params = {
sysType: sysTypeStr[str],
level: 1,
photoUrl: "",
content,
@ -80,6 +96,7 @@ export default function Page() {
message.success('添加成功');
initForm();
updateList();
eventBus.emit('getDeviceRegisterList');
} else {
message.error(res?.errorMsg);
}
@ -113,12 +130,9 @@ export default function Page() {
<Select
placeholder="请选择单位名称"
style={{ width: 200 }}
options={[
{ label: '单位1', value: '单位1' },
{ label: '单位2', value: '单位2' },
{ label: '单位3', value: '单位3' }
]}>
</Select>
options={unitList}
fieldNames={{ label: 'unitName', value: 'unitName' }}
/>
</Form.Item>
<ButtonComp text={'定位'} style={{ margin: '20px 0 0px 20px' }} onClick={() => {
let obj: any = {
@ -166,10 +180,10 @@ export default function Page() {
</Form.Item>
</div>
<div className='flex_fw'>
<Form.Item name="diskNumber" label="管理盘号" rules={[{ required: true, message: '请输入管理盘号' }]}>
<Input placeholder="请输入管理盘号" />
<Form.Item name="diskNumber" label="管理盘号" rules={[{ required: true, message: '请选择管理盘号' }]}>
<Input disabled placeholder="请选择管理盘号" />
</Form.Item>
<ButtonComp text={'选择'} style={{ margin: '20px 0 0px 20px' }} onClick={() => { }} />
<ButtonComp text={'选择'} style={{ margin: '20px 0 0px 20px' }} onClick={() => setSelectDisk(true)} />
</div>
</div>
<div style={{ width: '45%', minWidth: 400 }}>
@ -285,6 +299,12 @@ export default function Page() {
onShowSizeChange={onShowSizeChange}
/>
</div>}
{/* 选择管理盘 */}
<SelectDiskDialog
visibility={selectDisk}
onCancel={() => setSelectDisk(false)}
onOk={(e) => {form.setFieldValue('diskNumber', e)}} />
</div>
);
}

@ -23,7 +23,7 @@ export default function Page() {
{/* 底部固定信息 */}
<div className={styles1.mainInfo}>
<div>XXXX</div>
<div> 1 0 </div>
<div> 0 0 </div>
</div>
</div>
);

@ -1,4 +1,4 @@
import { getRequest, postRequest } from "@/utils/request";
import { getRequest, postRequest, uploadFile } from "@/utils/request";
// 批量新增设备
export async function deviceHardAddList(data: any) {
@ -58,4 +58,14 @@ export async function unitAddressEditOrAdd(data: any) {
// 单位名称列表分页查看
export async function unitAddressList(params: any) {
return getRequest(`/xgd/unitAddress/page`, params);
}
}
// 管理系统管理盘数据维护(导入管理系统盘) - 数据导入
export async function diskDataImport(formData: any) {
return uploadFile(`/xgd/secretInstall/dataImport`, formData);
}
// 管理系统管理盘数据维护 - 列表
export async function secretFormatList(params: any) {
return getRequest(`/xgd/secretInstall/secretFormatList`, params);
}

Loading…
Cancel
Save