master_basic
鲁誉程 1 year ago
parent ababb504f6
commit f4359683b6

@ -21,7 +21,7 @@ const LeftMenuCom: FC<PageProps> = ({ data }) => {
const route = useLocation();
const urlParams = useParams();
const [selectedKeys, setSelectedKeys] = useState([]);
const [selectedKeys, setSelectedKeys] = useState<any>([]);
const [contextMenuPosition, setContextMenuPosition] = useState({ x: 0, y: 0 });
const [showContextMenu, setShowContextMenu] = useState(false);
const treeRef = useRef(null);
@ -78,28 +78,28 @@ const LeftMenuCom: FC<PageProps> = ({ 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 = [

@ -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 (
<div className={`${styles.params_warp}`}>
<TabsComp
@ -25,7 +95,7 @@ export default function Page() {
<div className='flex_jB'>
<div style={{ width: 'calc(50% - 20px)' }}>
<ButtonComp type={'special'} text={'设备型号列表共0条'} onClick={() => { }} />
<ButtonComp type={'special'} text={`设备型号列表(共${total}条)`} onClick={() => { }} />
<Table
scroll={tableData.length > 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 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
</div>
<div style={{ width: '50%' }}>
<div className={styles1.info}>64KB128×128</div>
<div className={styles1.picture}>
<ButtonComp style={{ position: 'absolute', left: '-1px', top: '-8px' }} type={'special'} text={'照片'} />
<img src={require('../../../../assets/images/photo.jpg')} alt="" />
<img src={imageUrl || ''}/>
</div>
<div className='flex_jE mt20 mb20'>
{/* <Upload {...props}> */}
<ButtonComp type='cancel' style={{ marginRight: 20 }} text={'选择'} onClick={() => { }} />
{/* </Upload> */}
<Upload {...props} showUploadList={false}>
<ButtonComp type='cancel' style={{ marginRight: 20 }} text={'选择'} onClick={() => { }} />
</Upload>
<ButtonComp text={'保存'} onClick={() => { }} />
</div>
</div>

@ -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;
}
}

@ -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 (
<div>
<div className='flex_jB'>
<ContentWarp text={'注册信息'} style={{ width: 'calc(72% - 25px)' }}>
<div className='pd20'>
<Radio.Group value={layer} onChange={(e) => { setLayer(e.target.value) }}>
<Radio value={1} style={{ marginRight: 70 }}> </Radio>
<Radio value={2} style={{ marginRight: 70 }}> </Radio>
<Radio value={3} style={{ marginRight: 70 }}> </Radio>
<Radio value={4} > </Radio>
<Radio.Group value={layer} onChange={(e) => {
setLayer(e.target.value)
initForm()
}}>
<Radio value={0} style={{ marginRight: 30 }}> </Radio>
<Radio value={1} style={{ marginRight: 30 }}> </Radio>
<Radio value={2} style={{ marginRight: 30 }}> </Radio>
<Radio value={3} > </Radio>
</Radio.Group>
<div className='mb10 mt20 flex_aiC'>
<div style={{ marginRight: 80 }}>1</div>
<div style={{ marginRight: 40 }}>{layer}</div>
<div className='mr16'></div>
<Radio.Group>
<Radio value="1" style={{ marginRight: 30 }}> </Radio>
<Radio value="2" > </Radio>
<Radio.Group value={managerSysType} onChange={(e) => { setManagerSysType(e.target.value) }}>
<Radio value={1} style={{ marginRight: 20 }}> </Radio>
<Radio value={2} > </Radio>
</Radio.Group>
</div>
<div className='flex_jB' style={{ flexWrap: 'nowrap' }}>
<div style={{ width: '50%', minWidth: 450 }}>
<div className='flex_aiC mt20 pl60'>
<Input style={inputSty} />
<ButtonComp text={'定位'} onClick={() => { }} />
</div>
{layer == 2 && <div className='flex_aiC mt20 pl60'><Input style={inputSty} /></div>}
<div className='flex_aiC mt20 pl60'><Input style={inputSty} /></div>
<div className='flex_aiC mt20 pl60'><Input style={inputSty} /></div>
<div className='flex_aiC mt20 pl60'>310<Input style={inputSty} /></div>
<div className='flex_aiC mt20'>IP <Input style={inputSty1} /></div>
<div className='flex_aiC mt20 pl60'><Input style={inputSty} /></div>
{ layer == 3 && <div className='flex_aiC mt20 pl60'><Input style={inputSty} /></div>}
</div>
<div style={{ width: '50%', minWidth: 400 }}>
<div className='flex_aiC mt20 pl55'><Input style={inputSty} /></div>
{layer == 2 && <>
<div className='flex_aiC mt20'>IP<Input style={inputSty} /></div>
<div className='flex_aiC mt20'>IP<Input style={inputSty} /></div>
</>}
<div className='flex_aiC mt20 pl55'><Input style={inputSty} /></div>
<div className='flex_aiC mt20 pl70'><Input style={inputSty} /></div>
<div className='flex_aiC mt20 pl55'> <Input style={inputSty1} /></div>
<div className='flex_aiC mt20 pl55'><Input style={inputSty} /></div>
</div>
</div>
{
(layer == 1 || layer == 2) ?
<Form
form={form}
onFinish={onFinish}
className={styles.formSty}
>
{/* <div className='flex_aiC'>
<div style={{ margin: '20px 0px 0px 0' }}>{layer}</div>
<Form.Item name="managerSysType" label="管理系统类型">
<Radio.Group >
<Radio value={1} style={{ margin: "0 20px 0 20px" }}> </Radio>
<Radio value={2} > </Radio>
</Radio.Group>
</Form.Item>
</div> */}
<div className='flex_jB' style={{ flexWrap: 'nowrap' }}>
<div style={{ width: '50%', minWidth: 450 }}>
<div className='flex_fw'>
<Form.Item name="unitName" label="单位名称" rules={[{ required: true, message: '请输入单位名称' },]}>
<Input />
</Form.Item>
<ButtonComp text={'定位'} style={{ margin: '20px 0 0px 20px' }} onClick={() => { }} />
</div>
<div className='flex_aiC'>
<Form.Item name="sysName" label="系统名称" rules={[{ required: true, message: '请输入系统名称' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="deviceEntityId" label="实体标识" rules={[{ required: true, message: '请输入实体标识' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="deviceMarkId" label="310标识" rules={[{ required: true, message: '请输入310标识' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="isolatorExternalIp" label="型隔离器外网IP" rules={[{ required: true, message: '请输入型隔离器外网IP' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="managerArea" label="管理区域" rules={[{ required: true, message: '请输入管理区域' },]}>
<Input />
</Form.Item>
</div>
{
layer == 2 &&
<div className='flex_aiC'>
<Form.Item name="diskNumber" label="管理盘号" rules={[{ required: true, message: '请输入管理盘号' },]}>
<Input />
</Form.Item>
<ButtonComp text={'选择'} style={{ margin: '20px 0 0px 20px' }} onClick={() => { }} />
</div>
}
</div>
<div style={{ width: '50%', minWidth: 400 }}>
<div className='flex_aiC'>
<Form.Item name="telephone" label="电话号码" rules={[{ required: true, message: '请输入电话号码' },]}>
<Input />
</Form.Item>
</div>
{
layer == 1 && <>
<div className='flex_aiC'>
<Form.Item name="isolatorIntranetIp" label="型隔离器内网IP" rules={[{ required: true, message: '请输入型隔离器内网IP' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="pwdServerIp" label="密钥编制服务器IP" rules={[{ required: true, message: '请输入密钥编制服务器IP' },]}>
<Input />
</Form.Item>
</div>
</>
}
<div className='flex_aiC'>
<Form.Item name="contactsInfo" label="联系方式" rules={[{ required: true, message: '请输入联系方式' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="contacts" label="联系人" rules={[{ required: true, message: '请输入联系人' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="seatName" label="席位名称" rules={[{ required: true, message: '请输入席位名称' },]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="sysType" label="系统型号" rules={[{ required: true, message: '请输入系统型号' },]}>
<Input />
</Form.Item>
</div>
</div>
</div>
</Form> :
<div></div>
}
</div>
</ContentWarp>
<div className='ml20' style={{ height: 455, width: '27%', marginTop: 8 }}>
<div className='ml20' style={{ height: 'auto', width: '27%', marginTop: 8 }}>
<div className='mb10'></div>
<div style={{ height: [2,3].includes(layer) ? 217 : 193, border: '1px solid #d8d8d8', background: '#fff' }}></div>
<div style={{ height: "calc(50% - 27px)", border: '1px solid #d8d8d8', background: '#fff' }}></div>
<div className='mb10 mt20'></div>
{/* <div style={{ height: [2,3].includes(layer) ? 217 : 193, border: '1px solid #d8d8d8', background: '#fff' }}>
<TextArea rows={4} placeholder="请输入备注" maxLength={6} />
</div> */}
<TextArea
style={{ height: [2,3].includes(layer) ? 217 : 193, resize: 'none' }}
style={{ height: "calc(50% - 44px)", resize: 'none' }}
value={content}
onChange={(e) => { setContent(e.target.value) }}
placeholder="请输入备注" />
</div>
</div>
<div className='flex_jE mt30 mb30'>
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'修改'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'添加'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'添加'} onClick={() => form.submit()} />
<ButtonComp type={'cancel'} text={'删除'} onClick={() => { }} />
</div>
@ -103,7 +252,25 @@ export default function Page() {
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
rowSelection={{
selectedRowKeys,
onChange: (selectedKeys: any) => {
setSelectedRowKeys(selectedKeys);
}
}}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
</div>
);
}

@ -0,0 +1,15 @@
.formSty {
[class~= 'ant-form-item-label'] > label {
justify-content: flex-end;
width: 80px;
}
[class~= 'ant-input'] {
width: 200px;
}
[class~= 'ant-form-item'] {
margin-bottom: 0;
margin-top: 20px;
}
}

@ -1,76 +1,225 @@
import ButtonComp from '@/components/ButtonComp';
import ContentWarp from '@/components/ContentWarp';
import { rowClassName } from '@/utils';
import { Input, Select, Table } from 'antd';
import { useState } from 'react';
import { Form, Input, Pagination, Select, Table, message } from 'antd';
import { useEffect, useState } from 'react';
import styles from './index.less'
import { deviceHardEditOrAdd, deviceHardPage } from '@/services/register';
const { TextArea } = Input;
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [form] = Form.useForm();
const [content, setContent] = useState('');
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: '310标识', 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: 'IP地址', 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: '席位名称', dataIndex: 'name', key: 'name', align: 'center' }
{ title: '单位名称', dataIndex: 'unitName', key: 'unitName', align: 'center' },
{ title: '设备名称', dataIndex: 'deviceName', key: 'deviceName', align: 'center' },
{ title: '实体标识', dataIndex: 'deviceEntityId', key: 'deviceEntityId', align: 'center' },
{ title: '310标识', dataIndex: 'deviceMarkId', key: 'deviceMarkId', align: 'center' },
{ title: '设备型号', dataIndex: 'deviceType', key: 'deviceType', align: 'center' },
{ title: '管理盘号', dataIndex: 'diskNumber', key: 'diskNumber', align: 'center' },
{ title: '所属网络', dataIndex: 'homeNetwork', key: 'homeNetwork', align: 'center' },
{ title: 'IP地址', dataIndex: 'ip', key: 'ip', align: 'center' },
{ title: '电话号码', dataIndex: 'telephone', key: 'telephone', align: 'center' },
{ title: '联系人', dataIndex: 'contacts', key: 'contacts', align: 'center' },
{ title: '联系方式', dataIndex: 'contactsInfo', key: 'contactsInfo', align: 'center' },
{ title: '席位名称', dataIndex: 'seatName', key: 'seatName', align: 'center' }
]
let inputSty = { width: 230, marginLeft: 16, marginRight: 10 };
let inputSty1= { width: 230, marginLeft: 18, marginRight: 10 };
useEffect(() => {
initForm()
}, [])
useEffect(() => {
getList();
}, [pageNumber]);
const getList = () => {
deviceHardPage({ 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()
form.setFieldsValue({
connFlag: 1,
homeNetwork: '指挥专网',
})
setContent('')
}
const updateList = () => {
pageNumber == 1 ? getList() : setPageNumber(1);
}
const onFinish = (values: any) => {
let params = {
level: 1,
photoUrl: "",
content,
...values
}
console.log("params", params);
deviceHardEditOrAdd(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 (
<div>
<div className='flex_jB'>
<ContentWarp text={'注册信息'} style={{ width: 'calc(70% - 25px)' }}>
<div className='pd20'>
<div className='mb10'>1</div>
<div className='flex_aiC_jB' style={{flexWrap: 'nowrap'}}>
<div style={{ width: '50%', minWidth: 450 }}>
<div className='flex_aiC mt20'>
<Input style={inputSty} />
<ButtonComp text={'定位'} onClick={() => { }} />
</div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'>
<Input style={inputSty} />
<Select style={{width: 64, marginLeft: 12}} />
<div >1</div>
<Form
form={form}
onFinish={onFinish}
className={styles.formSty}
>
<div className='flex_aiC_jB' style={{ flexWrap: 'nowrap' }}>
<div style={{ width: '50%', minWidth: 450 }}>
<div className='flex_fw'>
<Form.Item name="unitName" label="单位名称" rules={[{ required: true, message: '请输入单位名称' }]}>
<Input />
</Form.Item>
<ButtonComp text={'定位'} style={{ margin: '20px 0 0px 20px' }} onClick={() => { }} />
</div>
<div className='flex_aiC'>
<Form.Item name="deviceName" label="设备名称" rules={[{ required: true, message: '请输入设备名称' }]}>
<Input placeholder='请输入设备名称'/>
</Form.Item>
</div>
<div className='flex_fw'>
<Form.Item name="deviceType" label="设备型号" rules={[{ required: true, message: '请选择设备型号' }]}>
<Select
placeholder="请选择设备型号"
style={{ width: 200 }}
options={[
{label:'设备型号1', value: '设备型号1'},
{label:'设备型号2', value: '设备型号2'},
{label:'设备型号3', value: '设备型号3'},
{label:'设备型号4', value: '设备型号4'},
]}/>
</Form.Item>
<Form.Item style={{ width: 60 }} name="version" label="版本">
<Select style={{ width: 80 }} />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="deviceNumber" label="设备编号" rules={[{ required: true, message: '请输入设备编号' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="deviceEntityId" label="实体标识" rules={[{ required: true, message: '请输入实体标识' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="deviceMarkId" label="310标识" rules={[{ required: true, message: '请输入310标识' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_fw'>
<Form.Item name="diskNumber" label="管理盘号" rules={[{ required: true, message: '请输入管理盘号' }]}>
<Input />
</Form.Item>
<ButtonComp text={'选择'} style={{ margin: '20px 0 0px 20px' }} onClick={() => { }} />
</div>
</div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'>310 <Input style={inputSty1}/></div>
<div className='flex_aiC mt20'>
<Input style={inputSty} />
<ButtonComp text={'选择'} onClick={() => { }} />
<div style={{ width: '50%', minWidth: 400 }}>
<div className='flex_aiC'>
<Form.Item name="homeNetwork" label="所属网络" rules={[{ required: true, message: '请输入所属网络' }]}>
<Select
style={{ width: 200 }}
options={[
{ label: '指挥专网', value: '指挥专网' },
{ label: '军事综合信息网', value: '军事综合信息网' },
{ label: '资源管理网', value: '资源管理网' }
]}>
</Select>
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="contacts" label="联系人" rules={[{ required: true, message: '请输入联系人' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="contactsInfo" label="联系方式" rules={[{ required: true, message: '请输入联系方式' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="ip" label="IP地址" rules={[{ required: true, message: '请输入IP地址' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="telephone" label="电话号码" rules={[{ required: true, message: '请输入电话号码' }]}>
<Input />
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="connFlag" label="接入标志" rules={[{ required: true, message: '请输入接入标志' }]}>
<Select
style={{ width: 200 }}
options={[
{ label: '接入', value: 1 },
{ label: '未接入', value: 2 }
]}>
</Select>
</Form.Item>
</div>
<div className='flex_aiC'>
<Form.Item name="seatName" label="席位名称" rules={[{ required: true, message: '请输入席位名称' }]}>
<Input />
</Form.Item>
</div>
</div>
</div>
<div style={{ width: '50%', minWidth: 400 }}>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
<div className='flex_aiC mt20'>310 <Input style={inputSty1}/></div>
<div className='flex_aiC mt20'><Input style={inputSty} /></div>
</div>
</div>
</Form>
</div>
</ContentWarp>
<div className='ml20' style={{ height: 455, width: '30%', marginTop: 8}}>
<div className='ml20' style={{ height: 'auto', width: '30%', marginTop: 8 }}>
<div className='mb10'></div>
<div style={{ height: 193, border: '1px solid #d8d8d8', background: '#fff' }}></div>
<div style={{ height: 'calc(50% - 27px)', border: '1px solid #d8d8d8', background: '#fff' }}>
<img src="" style={{width: '100%', height: '100%'}} />
</div>
<div className='mb10 mt20'></div>
<TextArea
style={{ height: 193, resize: 'none' }}
style={{ height: "calc(50% - 44px)", resize: 'none' }}
value={content}
onChange={(e) => { setContent(e.target.value) }}
placeholder="请输入备注" />
</div>
</div>
@ -83,10 +232,10 @@ export default function Page() {
</div>
<div className='flex_aiC'>
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'修改'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'添加'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'添加'} onClick={() => form.submit()} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'注销'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'恢复'} onClick={() => { }} />
<ButtonComp type={'cancel'} text={'恢复'} onClick={() => { }} />
<ButtonComp type={'cancel'} text={'删除'} onClick={() => { }} />
</div>
</div>
@ -98,7 +247,25 @@ export default function Page() {
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
rowSelection={{
selectedRowKeys,
onChange: (selectedKeys: any) => {
setSelectedRowKeys(selectedKeys);
}
}}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
</div>
);
}

@ -29,7 +29,7 @@ export default function Page() {
return (
<div className={`${styles.params_warp}`}>
<TabsComp
dataSource={[{ id: 1, name: '管理盘维护' }]}
dataSource={[{ id: 1, name: '设备查找' }]}
activeTab={activeTab}
onChange={(e) => setActiveTab(e)} />

@ -1,13 +1,37 @@
import ContentWarp from '@/components/ContentWarp';
import styles from '../../../GLQ/index.less';
import ButtonComp from '@/components/ButtonComp';
import { ConfigProvider, Select, Table } from 'antd';
import { ConfigProvider, Pagination, Select, Table, message } from 'antd';
import { rowClassName } from '@/utils';
import { useState } from 'react';
import { useEffect, useState } from 'react';
import { algorithmArgsConfigList, upholdArgsInfoList } from '@/services/sf';
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [tableData1, setTableData1] = useState([]);
const [pageNumber1, setPageNumber1] = useState(1);
const [pageSize1, setpageSize1] = useState(10);
const [total1, setTotal1] = useState(0);
const [selectedRowKeys1, setSelectedRowKeys1] = useState([]);
const [tableData2, setTableData2] = useState([]);
const [pageNumber2, setPageNumber2] = useState(1);
const [pageSize2, setpageSize2] = useState(10);
const [total2, setTotal2] = useState(0);
const [paramsList, setParamsList] = useState<any>([{label: '全部', value: ''}]);
const [paramsId, setParamsId] = useState('');
useEffect(() => { getList(); }, [pageNumber]);
useEffect(() => { getList1(); }, [pageNumber1]);
useEffect(() => { getList2(); }, [pageNumber2]);
let serial = {
title: '序号', key: 'index', align: 'center', width: 80,
@ -16,11 +40,16 @@ export default function Page() {
},
}
const columns: any = [
serial,
{ 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: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{(pageNumber - 1) * pageSize + c + 1}</span>;
},
},
{ title: '参数中文名称', dataIndex: 'argsCnName', key: 'argsCnName', align: 'center' },
{ title: '对应算法标识', dataIndex: 'algorithmId', key: 'algorithmId', align: 'center' },
{ title: '参数简称', dataIndex: 'argsShortName', key: 'argsShortName', align: 'center' },
{ title: '算法模式简称', dataIndex: 'modelShortName', key: 'modelShortName', align: 'center' },
]
const columns1: any = [
@ -43,6 +72,20 @@ export default function Page() {
{ title: '协同管理标志', dataIndex: 'name', key: 'name', align: 'center' }
]
const getList = () => {
upholdArgsInfoList({ pageNumber, pageSize}).then((res) => {
if (res?.result == "success") {
setTotal(res.data[0].total);
setTableData(res.data[0].list);
} else {
message.error(res?.errorMsg);
}
})
}
const getList1 = () => { }
const getList2 = () => { }
return (
<div className={styles.params_warp}>
<div className='flex_jB'>
@ -51,7 +94,9 @@ export default function Page() {
<div className='mb20'></div>
<div className='mb20 mt20 flex_aiC'>
<div className='mr16'></div>
<Select style={{ width: 260 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
<Select style={{ width: 260 }} value={paramsId} onChange={(e) => {
setParamsId(e)
}} options={paramsList} />
</div>
<Table
@ -62,7 +107,29 @@ export default function Page() {
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
rowSelection={{
selectedRowKeys,
onChange: (selectedKeys: any) => {
setSelectedRowKeys(selectedKeys);
}
}}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={(val) => {
setPageNumber(val);
}}
onShowSizeChange={(val) => {
setpageSize(val);
getList();
}}
/>
</div>}
</ContentWarp>
</div>
@ -73,28 +140,57 @@ export default function Page() {
</div>
<Table
scroll={tableData.length > 0 ? { y: 41 * 4 } : {}}
scroll={tableData1.length > 0 ? { y: 41 * 4 } : {}}
pagination={false}
bordered
columns={columns1}
dataSource={tableData}
dataSource={tableData1}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total1 > 0 && <div className='flex_aiC_jB mt20'>
<div> {total1} </div>
<Pagination
current={pageNumber1}
pageSize={pageSize1}
total={total1}
showQuickJumper
onChange={() => {
}}
onShowSizeChange={() => {
}}
/>
</div>}
</ContentWarp>
<ContentWarp text={'安装配置成功记录'} style={{ padding: '48px 20px 20px 20px', marginTop: 28, minHeight: '240px' }}>
<Table
scroll={tableData.length > 0 ? { y: 41 * 4 } : {}}
scroll={tableData2.length > 0 ? { y: 41 * 4 } : {}}
pagination={false}
bordered
columns={columns2}
dataSource={tableData}
dataSource={tableData2}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total2 > 0 && <div className='flex_aiC_jB mt20'>
<div> {total2} </div>
<Pagination
current={pageNumber2}
pageSize={pageSize2}
total={total2}
showQuickJumper
onChange={() => {
}}
onShowSizeChange={() => {
}}
/>
</div>}
</ContentWarp>
</div>
</div>

@ -1,28 +1,52 @@
import ContentWarp from '@/components/ContentWarp';
import styles from '../../../GLQ/index.less';
import ButtonComp from '@/components/ButtonComp';
import { ConfigProvider, Table } from 'antd';
import { ConfigProvider, Pagination, Table, message } from 'antd';
import { rowClassName } from '@/utils';
import { useState } from 'react';
import { useEffect, useState } from 'react';
import { upholdAlgorithmInfoList } from '@/services/sf';
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [tableData1, setTableData1] = useState([]);
const [pageNumber1, setPageNumber1] = useState(1);
const [pageSize1, setpageSize1] = useState(10);
const [total1, setTotal1] = useState(0);
const [selectedRowKeys1, setSelectedRowKeys1] = useState([]);
const [tableData2, setTableData2] = useState([]);
const [pageNumber2, setPageNumber2] = useState(1);
const [pageSize2, setpageSize2] = useState(10);
const [total2, setTotal2] = useState(0);
useEffect(() => { getList(); }, [pageNumber]);
useEffect(() => { getList1(); }, [pageNumber1]);
useEffect(() => { getList2(); }, [pageNumber2]);
let serial = {
title: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{c + 1}</span>;
},
}
const columns: any = [
serial,
{ title: '密码算法名称', dataIndex: 'name', key: 'name', align: 'center' },
{ title: '算法标识', dataIndex: 'name', key: 'name', align: 'center' }
{
title: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{(pageNumber - 1) * pageSize + c + 1}</span>;
},
},
{ title: '密码算法名称', dataIndex: 'algorithmModelShortName', key: 'algorithmModelShortName', align: 'center' },
{ title: '算法标识', dataIndex: 'algorithmName', key: 'algorithmName', align: 'center' }
]
const columns1: any = [
serial,
{
title: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{(pageNumber1 - 1) * pageSize1 + c + 1}</span>;
},
},
{ title: '设备名称', dataIndex: 'name', key: 'name', align: 'center' },
{ title: '管理实体标识', dataIndex: 'name', key: 'name', align: 'center' },
{ title: '设备型号', dataIndex: 'name', key: 'name', align: 'center' },
@ -30,7 +54,12 @@ export default function Page() {
]
const columns2: any = [
serial,
{
title: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{(pageNumber2 - 1) * pageSize2 + c + 1}</span>;
},
},
{ title: '算法名称', dataIndex: 'name', key: 'name', align: 'center' },
{ title: '算法标识', dataIndex: 'name', key: 'name', align: 'center' },
{ title: '设备名称', dataIndex: 'name', key: 'name', align: 'center' },
@ -39,6 +68,20 @@ export default function Page() {
{ title: '协同管理标识', dataIndex: 'name', key: 'name', align: 'center' }
]
const getList = () => {
upholdAlgorithmInfoList({ pageNumber, pageSize}).then((res) => {
if (res?.result == "success") {
setTotal(res.data[0].total);
setTableData(res.data[0].list);
} else {
message.error(res?.errorMsg);
}
})
}
const getList1 = () => {}
const getList2 = () => {}
return (
<div className={styles.params_warp}>
<div className='flex_jB'>
@ -53,7 +96,29 @@ export default function Page() {
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
rowSelection={{
selectedRowKeys,
onChange: (selectedKeys: any) => {
setSelectedRowKeys(selectedKeys);
}
}}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={(val) => {
setPageNumber(val);
}}
onShowSizeChange={(val) => {
setpageSize(val);
getList();
}}
/>
</div>}
</ContentWarp>
</div>
<div style={{ width: '60%' }}>
@ -63,26 +128,57 @@ export default function Page() {
</div>
<Table
scroll={tableData.length > 0 ? { y: 41 * 4 } : {}}
scroll={tableData1.length > 0 ? { y: 41 * 4 } : {}}
pagination={false}
bordered
columns={columns1}
dataSource={tableData}
dataSource={tableData1}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total1 > 0 && <div className='flex_aiC_jB mt20'>
<div> {total1} </div>
<Pagination
current={pageNumber1}
pageSize={pageSize1}
total={total1}
showQuickJumper
onChange={() => {
}}
onShowSizeChange={() => {
}}
/>
</div>}
</ContentWarp>
<ContentWarp text={'安装配置成功记录'} style={{ padding: '48px 20px 20px 20px', marginTop: 28, minHeight: '230px' }}>
<Table
scroll={tableData.length > 0 ? { y: 41 * 4 } : {}}
scroll={tableData2.length > 0 ? { y: 41 * 4 } : {}}
pagination={false}
bordered
columns={columns2}
dataSource={tableData}
dataSource={tableData2}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total2 > 0 && <div className='flex_aiC_jB mt20'>
<div> {total2} </div>
<Pagination
current={pageNumber2}
pageSize={pageSize2}
total={total2}
showQuickJumper
onChange={() => {
}}
onShowSizeChange={() => {
}}
/>
</div>}
</ContentWarp>
</div>
</div>

@ -1,12 +1,18 @@
import styles from '../../../GLQ/index.less';
import { useState } from 'react';
import { ConfigProvider, Select, Table } from 'antd';
import { useEffect, useState } from 'react';
import { ConfigProvider, Form, Pagination, Select, Table, message } from 'antd';
import { rowClassName } from '@/utils';
import ButtonComp from '@/components/ButtonComp';
import { algorithmDistributeList } from '@/services/sf';
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
const columns: any = [
{
@ -26,6 +32,36 @@ export default function Page() {
{ title: '配发结果', dataIndex: 'name', key: 'name', align: 'center' }
]
useEffect(() => {
getList();
}, [pageNumber]);
const updataList = () => {
pageNumber == 1 ? getList() : setPageNumber(1);
}
const getList = () => {
let params = form.getFieldsValue()
algorithmDistributeList({ pageNumber, pageSize, ...params }).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();
}
return (
<div className={`${styles.params_warp}`}>
<ButtonComp type={'special'} text={'算法配发'} onClick={() => { }} />
@ -33,22 +69,36 @@ export default function Page() {
<div className='flex_aiC mt30 mb30'>
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200, marginRight: 20 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200, marginRight: 20 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
</div>
<Table
scroll={tableData.length > 0 ? { y: 41 * 10 } : {}}
pagination={false}
bordered
columns={columns}
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
<Table
scroll={tableData.length > 0 ? { y: 41 * 10 } : {}}
pagination={false}
bordered
columns={columns}
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
<div className='flex_aiC_jB mt30'>
<ButtonComp text={'查看记录'} onClick={() => { }} />
<ButtonComp text={'配发'} onClick={() => { }} />

@ -4,7 +4,7 @@ import { ConfigProvider, Pagination, Table, Upload, UploadProps, message } from
import { rowClassName } from '@/utils';
import ButtonComp from '@/components/ButtonComp';
import { upholdAlgorithmInfoEditOrAdd, upholdAlgorithmInfoList } from '@/services/sf';
import { upholdAlgorithmInfoDelOrRestore, upholdAlgorithmInfoEditOrAdd, upholdAlgorithmInfoList } from '@/services/sf';
import { testData } from './testData';
export default function Page() {
@ -25,7 +25,7 @@ export default function Page() {
return <span>{(pageNumber - 1) * pageSize + c + 1}</span>;
},
},
{ title: '密码算法简称', dataIndex: '', key: '', align: 'center' },
{ title: '密码算法简称', dataIndex: 'algorithmShortName', key: 'algorithmShortName', align: 'center' },
{ title: '算法标识', dataIndex: 'algorithmName', key: 'algorithmName', align: 'center' },
{ title: '密码类型', dataIndex: 'pwdType', key: 'pwdType', align: 'center' },
{ title: '算法用途', dataIndex: 'algorithmUsage', key: 'algorithmUsage', align: 'center' },
@ -35,15 +35,20 @@ export default function Page() {
{ title: '信息长度', dataIndex: 'infoSize', key: 'infoSize', align: 'center' },
{ title: '工作模式', dataIndex: 'workModel', key: 'workModel', align: 'center' },
{ title: '秘钥长度', dataIndex: 'pwdSize', key: 'pwdSize', align: 'center' },
{ title: '使用状态', dataIndex: 'useFlag', key: 'useFlag', align: 'center' },
{ title: '删除状态', dataIndex: 'delFlag', key: 'delFlag', align: 'center' }
{
title: '使用状态', dataIndex: 'useFlag', key: 'useFlag', align: 'center',
render: (val: any) => { return <span>{val == 1 ? '已使用' : '未使用'}</span>}
},
{
title: '删除状态', dataIndex: 'delFlag', key: 'delFlag', align: 'center',
render: (val: any) => { return <span>{val == 1 ? '已删除' : '未删除'}</span>}
}
]
const updataList = () => {
pageNumber == 1 ? getList() : setPageNumber(1);
}
// 获取密钥体列表
const getList = () => {
upholdAlgorithmInfoList({ pageNumber, pageSize }).then((res) => {
if (res?.result == "success") {
@ -92,6 +97,23 @@ export default function Page() {
getList();
}
const sending = (delStatus: number) => {
if (selectedRowKeys.length == 0) {
message.info('请勾选数据');
return
}
upholdAlgorithmInfoDelOrRestore({ ids: selectedRowKeys, delStatus }).then((res) => {
if (res?.result === "success") {
message.success((delStatus == 1 ? '删除' : '还原') + '成功');
pageNumber == 1 ? getList() : setPageNumber(1);
setSelectedRowKeys([]);
} else {
message.error(res?.errorMsg);
}
});
}
return (
<div className={`${styles.params_warp}`}>
<ButtonComp style={{ marginBottom: 30 }} type={'special'} text={'算法信息维护'} onClick={() => { }} />
@ -129,8 +151,8 @@ export default function Page() {
</Upload>
<div className='flex_aiC_jB'>
<ButtonComp style={{ marginRight: 20 }} text={'查询'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'delete'} text={'删除'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'恢复'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'delete'} text={'删除'} onClick={() => sending(1)} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'恢复'} onClick={() => sending(0)} />
<ButtonComp type={'cancel'} text={'清理'} onClick={() => { }} />
</div>
</div>

@ -1,5 +1,5 @@
export const testData = [{
"ss": "密码算法简称11",
"algorithmShortName:": "密码算法简称11",
"algorithmName": "算法标识",
"algorithmNumber": "算法编号",
"algorithmShortName": "算法简称",
@ -14,7 +14,7 @@ export const testData = [{
"useFlag": 0,
"workModel": "工作模式"
}, {
"ss": "密码算法简称22",
"algorithmShortName:": "密码算法简称22",
"algorithmName": "算法标识",
"algorithmNumber": "算法编号",
"algorithmShortName": "算法简称",
@ -29,7 +29,7 @@ export const testData = [{
"useFlag": 0,
"workModel": "工作模式"
}, {
"ss": "密码算法简称33",
"algorithmShortName:": "密码算法简称33",
"algorithmName": "算法标识",
"algorithmNumber": "算法编号",
"algorithmShortName": "算法简称",

@ -1,12 +1,18 @@
import styles from '../../../GLQ/index.less';
import { useState } from 'react';
import { ConfigProvider, Select, Table } from 'antd';
import { useEffect, useState } from 'react';
import { ConfigProvider, Form, Pagination, Select, Table, message } from 'antd';
import { rowClassName } from '@/utils';
import ButtonComp from '@/components/ButtonComp';
import { algorithmArgsDistributeList } from '@/services/sf';
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
const columns: any = [
{
@ -26,9 +32,38 @@ export default function Page() {
{ title: '配发结果', dataIndex: 'name', key: 'name', align: 'center' }
]
useEffect(() => {
getList();
}, [pageNumber]);
const updataList = () => {
pageNumber == 1 ? getList() : setPageNumber(1);
}
const getList = () => {
let params = form.getFieldsValue()
algorithmArgsDistributeList({ pageNumber, pageSize, ...params }).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();
}
return (
<div className={`${styles.params_warp}`}>
<ButtonComp type={'special'} text={'算法配发'} onClick={() => { }} />
<ButtonComp type={'special'} text={'算法参数配发'} onClick={() => { }} />
<div className='flex_aiC mt30 mb30'>
<div style={{ marginRight: 12 }}></div>
@ -62,6 +97,19 @@ export default function Page() {
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
<div className='flex_aiC_jB mt30'>
<ButtonComp text={'查看记录'} onClick={() => { }} />
<ButtonComp text={'配发'} onClick={() => { }} />

@ -1,43 +1,161 @@
import styles from '../../../GLQ/index.less';
import { useState } from 'react';
import { ConfigProvider, Select, Table } from 'antd';
import { useEffect, useState } from 'react';
import { ConfigProvider, Form, Input, Modal, Pagination, Radio, Select, Table, Upload, UploadProps, message } from 'antd';
import { rowClassName } from '@/utils';
import ButtonComp from '@/components/ButtonComp';
import { testData } from './testData';
import { upholdArgsInfoDelOrRestore, upholdArgsInfoEditOrAdd, upholdArgsInfoList } from '@/services/sf';
export default function Page() {
const [tableData, setTableData] = useState([]);
const [pageNumber, setPageNumber] = useState(1);
const [pageSize, setpageSize] = useState(10);
const [total, setTotal] = useState(0);
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const [form] = Form.useForm();
const [visibility, setVisibility] = useState<boolean>(false);
const [form1] = Form.useForm();
const [visibility1, setVisibility1] = useState<boolean>(false);
const formItemSty = { width: 'auto', marginBottom: 20, marginRight: 30 };
useEffect(() => {
initForm();
initForm1();
}, [])
useEffect(() => {
getList();
}, [pageNumber]);
const columns: any = [
{
title: '序号', key: 'index', align: 'center', width: 80,
render: (a: any, b: any, c: any) => {
return <span>{c + 1}</span>;
return <span>{(pageNumber - 1) * pageSize + c + 1}</span>;
},
},
{ 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: '删除状态', dataIndex: 'name', key: 'name', align: 'center' }
{ title: '参数中文名称', dataIndex: 'argsCnName', key: 'argsCnName', align: 'center' },
{ title: '对应算法标识', dataIndex: 'algorithmId', key: 'algorithmId', align: 'center' },
{ title: '参数简称', dataIndex: 'argsShortName', key: 'argsShortName', align: 'center' },
{ title: '模式简称', dataIndex: 'modelShortName', key: 'modelShortName', align: 'center' },
{
title: '删除状态', dataIndex: 'delFlag', key: 'delFlag', align: 'center',
render: (val: any) => { return <span>{val == 1 ? '已删除' : '未删除'}</span> }
}
]
return (
<div className={`${styles.params_warp}`}>
<ButtonComp type={'special'} text={'算法参数信息维护'} onClick={() => { }} />
const initForm = () => [
form.setFieldsValue({
deviceType: '',
argsName: '',
argsStyle: '',
argsType: '',
})
]
const initForm1 = () => [
form1.setFieldsValue({
argsStyle: '一体化格式参数',
argsType: '初始参数导入'
})
]
const updataList = () => {
pageNumber == 1 ? getList() : setPageNumber(1);
}
const getList = () => {
let params = form.getFieldsValue()
upholdArgsInfoList({ pageNumber, pageSize, ...params }).then((res) => {
if (res?.result == "success") {
setTotal(res.data[0].total);
setTableData(res.data[0].list);
} else {
message.error(res?.errorMsg);
}
})
}
const sending = (delStatus: number) => {
if (selectedRowKeys.length == 0) {
message.info('请勾选数据');
return
}
<div className='flex_aiC mt30 mb30'>
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200, marginRight: 20 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
upholdArgsInfoDelOrRestore({ ids: selectedRowKeys, delStatus }).then((res) => {
if (res?.result === "success") {
message.success((delStatus == 1 ? '删除' : '还原') + '成功');
pageNumber == 1 ? getList() : setPageNumber(1);
setSelectedRowKeys([]);
} else {
message.error(res?.errorMsg);
}
});
}
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200, marginRight: 20 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
const pageOnChange = (pageNumber: number) => {
setPageNumber(pageNumber);
}
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200, marginRight: 20 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
const onShowSizeChange = (current: any, pageSize: any) => {
setpageSize(pageSize);
getList();
}
<div style={{ marginRight: 12 }}></div>
<Select style={{ width: 200 }} onChange={(e) => { }} options={[{ label: '选项1', value: 1 }]} />
const onFinish = (info: any) => {
let promises = testData.map(async item => {
item.argsStyle = info.argsStyle;
item.argsType = info.argsType;
const res = await upholdArgsInfoEditOrAdd(item);
if (res?.result === "success") {
return 1;
} else {
message.error(res?.errorMsg);
return 0;
}
});
Promise.all(promises).then(results => {
let recordCount = results.reduce((acc: any, val: any) => acc + val, 0);
if (recordCount === testData.length) {
setVisibility(false)
setVisibility1(true)
} else {
message.error('导入失败')
}
});
}
return (
<div className={`${styles.params_warp}`}>
<ButtonComp type={'special'} text={'算法参数信息维护'} />
<div className='flex_aiC mt30 mb10'>
<Form form={form} layout={'inline'} onFinish={updataList}>
<Form.Item name="deviceType" label="设备型号" style={formItemSty}>
<Input style={{ width: 200 }} />
</Form.Item>
<Form.Item name="argsName" label="参数名称" style={formItemSty}>
<Input style={{ width: 200 }} />
</Form.Item>
<Form.Item name="argsStyle" label="参数格式" style={formItemSty}>
<Select style={{ width: 200 }} onChange={(e) => { }} options={[
{ label: '全部', value: '' },
{ label: '一体化格式参数', value: '一体化格式参数' },
{ label: '统型完善格式参数', value: '统型完善格式参数' },
{ label: '体制统一格式参数', value: '体制统一格式参数' }
]} />
</Form.Item>
<Form.Item name="argsType" label="参数类型" style={formItemSty}>
<Select style={{ width: 200 }} onChange={(e) => { }} options={[
{ label: '全部', value: '' },
{ label: '初始参数导入', value: '初始参数导入' },
{ label: '非初始参数导入', value: '非初始参数导入' }
]} />
</Form.Item>
</Form>
</div>
<Table
@ -48,17 +166,88 @@ export default function Page() {
dataSource={tableData}
rowKey={(record: any) => record?.id}
rowClassName={rowClassName}
rowSelection={{
selectedRowKeys,
onChange: (selectedKeys: any) => {
setSelectedRowKeys(selectedKeys);
}
}}
/>
{total > 0 && <div className='flex_aiC_jB mt20'>
<div> {total} </div>
<Pagination
current={pageNumber}
pageSize={pageSize}
total={total}
showQuickJumper
onChange={pageOnChange}
onShowSizeChange={onShowSizeChange}
/>
</div>}
<div className='flex_aiC_jB mt30'>
<ButtonComp text={'导入参数'} onClick={() => { }} />
<ButtonComp text={'导入参数'} onClick={() => setVisibility(true)} />
<div className='flex_aiC_jB'>
<ButtonComp style={{ marginRight: 20 }} text={'查询'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'delete'} text={'删除'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'恢复'} onClick={() => { }} />
<ButtonComp style={{ marginRight: 20 }} text={'查询'} onClick={() => form.submit()} />
<ButtonComp style={{ marginRight: 20 }} type={'delete'} text={'删除'} onClick={() => sending(1)} />
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'恢复'} onClick={() => sending(0)} />
<ButtonComp type={'cancel'} text={'清理'} onClick={() => { }} />
</div>
</div>
<Modal
title="请选择导入参数类型"
open={visibility}
centered
width={600}
onCancel={() => setVisibility(false)}
footer={null}
maskClosable={false}
>
<Form form={form1} layout={'vertical'} onFinish={(e) => { onFinish(e) }}>
<Form.Item name="argsStyle" label="参数格式类型选择" style={{ width: '100%', marginBottom: 20 }}>
<Radio.Group>
<Radio value={'一体化格式参数'}> </Radio>
<Radio value={'统型完善格式参数'}> </Radio>
<Radio value={'体制统一格式参数'}> </Radio>
</Radio.Group>
</Form.Item>
<Form.Item name="argsType" label="参数类型选择" style={{ width: '100%', marginBottom: 20 }}>
<Radio.Group>
<Radio value={'初始参数导入'}> </Radio>
<Radio value={'非初始参数导入'}> </Radio>
</Radio.Group>
</Form.Item>
</Form>
<div className='flex_jE mt20'>
<ButtonComp style={{ marginRight: 20 }} text={'确定'} onClick={() => form1.submit()} />
<ButtonComp type="cancel" text={'取消'} onClick={() => {
initForm1();
setVisibility(false)
}} />
</div>
</Modal>
<Modal
title="二级单位一体化对称密码管理系统"
open={visibility1}
centered
width={550}
onCancel={() => setVisibility1(false)}
footer={null}
maskClosable={false}
>
<div>线</div>
<div className='flex_jE mt20'>
<ButtonComp style={{ marginRight: 20 }} text={'确定'} onClick={() => {
setVisibility1(false);
updataList()
}} />
</div>
</Modal>
</div>
);
}

@ -0,0 +1,31 @@
export const testData = [{
"deviceType" : "设备类型",
"argsName" : "参数名称",
"argsCnName": "参数中文名称1",
"argsStyle" : "参数格式",
"argsType" : "参数类型",
"algorithmId": 1,
"argsShortName": "参数简称",
"modelShortName": "模式简称",
"delFlag": 0
}, {
"deviceType" : "设备类型",
"argsName" : "参数名称",
"argsCnName": "参数中文名称2",
"argsStyle" : "参数格式",
"argsType" : "参数类型",
"algorithmId": 2,
"argsShortName": "参数简称",
"modelShortName": "模式简称",
"delFlag": 0
}, {
"deviceType" : "设备类型",
"argsName" : "参数名称",
"argsCnName": "参数中文名称3",
"argsStyle" : "参数格式",
"argsType" : "参数类型",
"algorithmId": 3,
"argsShortName": "参数简称",
"modelShortName": "模式简称",
"delFlag": 0,
}]

@ -0,0 +1,51 @@
import { getRequest, postRequest } from "@/utils/request";
// 批量新增设备
export async function deviceHardAddList(data: any) {
return postRequest(`/xgd/deviceHard/addList`, data);
}
// 查找设备
export async function deviceHardDeviceHardSelect(params: any) {
return getRequest(`/xgd/deviceHard/deviceHardSelect`, params);
}
// 设备注册OR修改数据
export async function deviceHardEditOrAdd(data: any) {
return postRequest(`/xgd/deviceHard/editOrAdd`, data);
}
// 查看设备
export async function deviceHardGetById(params: any) {
return getRequest(`/xgd/deviceHard/getById/${params?.id}`, {});
}
// 分页查看设备
export async function deviceHardPage(params: any) {
return getRequest(`/xgd/deviceHard/page`, params);
}
// 管理系统注册修改或者删除
export async function managerSystemEditOrAdd(data: any) {
return postRequest(`/xgd/managerSystem/editOrAdd`, data);
}
// 查看系统
export async function managerSystemConfigId(params: any) {
return getRequest(`/xgd/managerSystem/getById/${params.id}`, {});
}
// 分页查看系统
export async function managerSystemConfigList(params: any) {
return getRequest(`/xgd/managerSystem/page`, params);
}
// 照片注册或修改
export async function devicePhotoEditOrAdd(data: any) {
return postRequest(`/xgd/devicePhoto/editOrAdd`, data);
}
// 分页查看设备照片
export async function devicePhotoList(params: any) {
return getRequest(`/xgd/devicePhoto/page`, params);
}

@ -18,4 +18,84 @@ export async function upholdAlgorithmInfoDelOrRestore(data: any) {
// 新增或修改算法信息维护
export async function upholdAlgorithmInfoEditOrAdd(data: any) {
return postRequest(`/xgd/upholdAlgorithmInfo/editOrAdd`, data);
}
// 批量删除或恢复参数信息维护
export async function upholdArgsInfoDelOrRestore(data: any) {
return postRequest(`/xgd/upholdArgsInfo/delOrRestore`, data);
}
// 新增或修改参数信息维护
export async function upholdArgsInfoEditOrAdd(data: any) {
return postRequest(`/xgd/upholdArgsInfo/editOrAdd`, data);
}
// 查看参数信息维护
export async function upholdArgsInfoId(params: any) {
return getRequest(`/xgd/upholdArgsInfo/getById/${params.id}`, {});
}
// 列表查询参数信息维护
export async function upholdArgsInfoList(params: any) {
return getRequest(`/xgd/upholdArgsInfo/list`, params);
}
// 删除算法配发
export async function algorithmDistributeDelOrRestore(data: any) {
return postRequest(`/xgd/algorithmDistributeDelOrRestore/delete/${data?.id}`, {});
}
// 新增或修改算法配发
export async function algorithmDistributeEditOrAdd(data: any) {
return postRequest(`/xgd/algorithmDistribute/editOrAdd`, data);
}
// 查看算法配发
export async function algorithmDistributeId(params: any) {
return getRequest(`/xgd/algorithmDistribute/getById/${params.id}`, {});
}
// 列表查询算法配发
export async function algorithmDistributeList(params: any) {
return getRequest(`/xgd/algorithmDistribute/list`, params);
}
// 删除算法参数配发
export async function algorithmArgsDistributeDelOrRestore(data: any) {
return postRequest(`/xgd/algorithmArgsDistribute/delete/${data?.id}`, {});
}
// 新增或修改算法参数配发
export async function algorithmArgsDistributeEditOrAdd(data: any) {
return postRequest(`/xgd/algorithmArgsDistribute/editOrAdd`, data);
}
// 查看算法参数配发
export async function algorithmArgsDistributeId(params: any) {
return getRequest(`/xgd/algorithmArgsDistribute/getById/${params.id}`, {});
}
// 列表查询算法参数配发
export async function algorithmArgsDistributeList(params: any) {
return getRequest(`/xgd/algorithmArgsDistribute/list`, params);
}
// 删除算法参数配置
export async function algorithmArgsConfigDelOrRestore(data: any) {
return postRequest(`/xgd/algorithmArgsConfig/delete/${data?.id}`, {});
}
// 新增或修改算法参数配置
export async function algorithmArgsConfigEditOrAdd(data: any) {
return postRequest(`/xgd/algorithmArgsConfig/editOrAdd`, data);
}
// 查看算法参数配置
export async function algorithmArgsConfigId(params: any) {
return getRequest(`/xgd/algorithmArgsConfig/getById/${params.id}`, {});
}
// 列表查询算法参数配置
export async function algorithmArgsConfigList(params: any) {
return getRequest(`/xgd/algorithmArgsConfig/list`, params);
}

@ -105,6 +105,11 @@
background-color: #F3F5F7;
}
.flex_fw {
display: flex;
flex-wrap: wrap;
}
.flex_aiC {
display: flex;
align-items: center;

Loading…
Cancel
Save