|
|
|
@ -1,43 +1,291 @@
|
|
|
|
|
import { FC, useEffect, useState } from 'react';
|
|
|
|
|
import { history, useLocation, useParams } from 'umi';
|
|
|
|
|
import ButtonComp from '@/components/ButtonComp';
|
|
|
|
|
import ClearInfoDialog from '@/components/ClearInfoDialog';
|
|
|
|
|
import { getPlugCordResult } from '@/services/api';
|
|
|
|
|
import { validateNumber } from '@/utils/validate';
|
|
|
|
|
import theme from '@/styles/antd.theme';
|
|
|
|
|
import { Select,Form } from 'antd';
|
|
|
|
|
import { Table } from 'antd';
|
|
|
|
|
import styles from './index.less';
|
|
|
|
|
|
|
|
|
|
import CheckSelect from '@/components/CheckSelect';
|
|
|
|
|
import CheckInput from '@/components/CheckInput';
|
|
|
|
|
import AddModal from './components/AddModal';
|
|
|
|
|
interface PageProps {
|
|
|
|
|
data: Array<{
|
|
|
|
|
// 菜单名称
|
|
|
|
|
name: string;
|
|
|
|
|
// 是否展开
|
|
|
|
|
check: boolean;
|
|
|
|
|
// 内容是否有目录结构
|
|
|
|
|
isTree?: boolean;
|
|
|
|
|
// 菜单列表 : name: 名称; url: 路由; img: 图标;
|
|
|
|
|
data: Array<{ name: string; url: string; img: any; }>
|
|
|
|
|
}>;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const MachineRegister: FC<PageProps> = ({ }) => {
|
|
|
|
|
|
|
|
|
|
const [params, setParams] = useState({
|
|
|
|
|
page: 1,
|
|
|
|
|
limit: 10,
|
|
|
|
|
mdepart:null, //设备使用单位
|
|
|
|
|
mposition:null,//设备部署地点
|
|
|
|
|
mstate:null,//设备使用状态
|
|
|
|
|
midentifer:null,// 密码实体标识
|
|
|
|
|
mnumber:null,//上级设备编号
|
|
|
|
|
});
|
|
|
|
|
const [clearAll, setclearAll] = useState(false) // 点击复位按钮时所有的chebox都变为false
|
|
|
|
|
const [result, setResult] = useState({})
|
|
|
|
|
const [addModalVisible,setAddModalVisible] = useState<boolean>(false) //控制新增弹窗显隐
|
|
|
|
|
|
|
|
|
|
const columns = [{
|
|
|
|
|
title: '序号',
|
|
|
|
|
dataIndex: 'name',
|
|
|
|
|
key: 'name',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
fixed: 'left',
|
|
|
|
|
width: 60,
|
|
|
|
|
render: (text: any, record: any, index: any) => {
|
|
|
|
|
return (
|
|
|
|
|
<span style={{ color: "#333" }}>{params.limit * (params.page - 1) + index + 1}</span>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
title: '密码设备编号',
|
|
|
|
|
dataIndex: 'school_info',
|
|
|
|
|
key: 'school_info',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span style={{ color: "#333" }}>{text.name}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '设备类型名称',
|
|
|
|
|
dataIndex: 'department_info',
|
|
|
|
|
key: 'department_info',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span style={{ color: "#333" }}>{text.name}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '密码实体标识',
|
|
|
|
|
dataIndex: 'teacher_count',
|
|
|
|
|
key: 'teacher_count',
|
|
|
|
|
width: 90,
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any) => <span style={{ color: '#165DFF', cursor: 'pointer' }} onClick={() => { history.push(`/colleges/${record?.school_info?.id}/statistics`) }}>{text}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '所属密码系统',
|
|
|
|
|
dataIndex: 'student_count',
|
|
|
|
|
key: 'student_count',
|
|
|
|
|
width: 90,
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any) => <span style={{ color: '#165DFF', cursor: 'pointer' }} onClick={() => { history.push(`/colleges/${record?.school_info?.id}/statistics`) }}>{text}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '上级设备编号',
|
|
|
|
|
dataIndex: 'type_cn',
|
|
|
|
|
key: 'type_cn',
|
|
|
|
|
width: 100,
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any) => <span style={{ color: "#333" }}>{text}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '设备出厂编号',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备使用单位',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
}, {
|
|
|
|
|
title: '设备部署地点',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备管理单位',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备生产厂商',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备地址类型',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备通信地址',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备注册日期',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '设备别名',
|
|
|
|
|
dataIndex: 'service_end_time',
|
|
|
|
|
key: 'service_end_time',
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
render: (text: any, record: any, index: any) => <span title={(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}
|
|
|
|
|
style={{ color: "#000" }}> {(record?.service_start_time && record?.service_end_time) ? `${moment(record?.service_start_time).format('YYYY-MM-DD HH:mm')} - ${moment(record?.service_end_time).format('YYYY-MM-DD HH:mm')}` : '--'}</span>
|
|
|
|
|
},{
|
|
|
|
|
title: '备注信息',
|
|
|
|
|
dataIndex: 'status_cn',
|
|
|
|
|
key: 'status_cn',
|
|
|
|
|
align: "right",
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
width: 70,
|
|
|
|
|
render: (text: any) => <span>
|
|
|
|
|
{text == '服务中' && <span style={{ color: '#00B187' }}>{text}</span>}
|
|
|
|
|
{text == '未开始' && <span style={{ color: '#849BB6' }}>{text}</span>}
|
|
|
|
|
{text == '已过期' && <span style={{ color: '#E30000' }}>{text}</span>}
|
|
|
|
|
</span>
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
// 查找
|
|
|
|
|
const handleSearch = () => {
|
|
|
|
|
console.log("params-", params)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 复位
|
|
|
|
|
const handleClear = () => {
|
|
|
|
|
params.mdepart=null;
|
|
|
|
|
params.mposition=null;
|
|
|
|
|
params.mstate=null;
|
|
|
|
|
params.midentifer=null;
|
|
|
|
|
params.mnumber=null;
|
|
|
|
|
setParams({...params})
|
|
|
|
|
setclearAll(true)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const getList = () => {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 查询条件改变时设置参数
|
|
|
|
|
const handleChange = (value:any,param:string) =>{
|
|
|
|
|
params[`${param}`]=value;
|
|
|
|
|
setParams({...params})
|
|
|
|
|
setclearAll(false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<section>
|
|
|
|
|
<section style={{ margin: '20px' }}>
|
|
|
|
|
<div className={styles.nav}>
|
|
|
|
|
<ButtonComp type={'special'} text={'密钥管理'} onClick={() => { }} style={{marginRight:'20px'}} />
|
|
|
|
|
<ButtonComp type={'special'} text={'密钥管理'} onClick={() => { }} style={{ marginRight: '20px' }} />
|
|
|
|
|
<ButtonComp type={'special'} text={'邮箱管理'} onClick={() => { }} />
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<Form>
|
|
|
|
|
|
|
|
|
|
</Form>
|
|
|
|
|
|
|
|
|
|
<div style={{ marginTop: '20px' }}>
|
|
|
|
|
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>
|
|
|
|
|
<div>
|
|
|
|
|
<CheckSelect
|
|
|
|
|
value={params.mdepart}
|
|
|
|
|
label='设备使用单位'
|
|
|
|
|
onChange={(value)=>{handleChange(value,'mdepart')}}
|
|
|
|
|
clearAll={clearAll}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div style={{ marginLeft: '50px', marginRight: '50px' }}>
|
|
|
|
|
<CheckSelect
|
|
|
|
|
value={params.mposition}
|
|
|
|
|
label='设备部署地点'
|
|
|
|
|
onChange={(value)=>{handleChange(value,'mposition')}}
|
|
|
|
|
clearAll={clearAll}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<CheckSelect
|
|
|
|
|
value={params.mstate}
|
|
|
|
|
label='设备使用状态'
|
|
|
|
|
onChange={(value)=>{handleChange(value,'mstate')}}
|
|
|
|
|
clearAll={clearAll}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style={{ marginTop: '20px', display: 'flex', alignItems: 'center', justifyContent: 'flex-start' }}>
|
|
|
|
|
<div>
|
|
|
|
|
<CheckInput
|
|
|
|
|
value={params.midentifer}
|
|
|
|
|
label='密码实体标识'
|
|
|
|
|
onChange={(value)=>{handleChange(value,'midentifer')}}
|
|
|
|
|
clearAll={clearAll}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div style={{ marginLeft: '50px', marginRight: '50px' }}>
|
|
|
|
|
<CheckInput
|
|
|
|
|
value={params.mnumber}
|
|
|
|
|
label='上级设备编号'
|
|
|
|
|
onChange={(value)=>{handleChange(value,'mnumber')}}
|
|
|
|
|
clearAll={clearAll}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<div style={{ display: 'flex' }}>
|
|
|
|
|
<ButtonComp text={'查找'} style={{ marginRight: 20 }} onClick={() => { handleSearch() }} />
|
|
|
|
|
<ButtonComp text={'复位'} onClick={() => { handleClear() }} />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div style={{ marginTop: '20px' }}>
|
|
|
|
|
<Table
|
|
|
|
|
columns={columns}
|
|
|
|
|
// loading={tableLoading}
|
|
|
|
|
dataSource={result?.list}
|
|
|
|
|
pagination={{
|
|
|
|
|
size: 'default',
|
|
|
|
|
showQuickJumper: true,
|
|
|
|
|
showSizeChanger: true,
|
|
|
|
|
pageSizeOptions: ['10', '15', '50', '100', '200'],
|
|
|
|
|
hideOnSinglePage: true,
|
|
|
|
|
pageSize: params.limit,
|
|
|
|
|
current: params.page,
|
|
|
|
|
position: ["bottomRight"],
|
|
|
|
|
onChange: (page, pagesize) => {
|
|
|
|
|
params.page = page;
|
|
|
|
|
params.limit = pagesize;
|
|
|
|
|
setParams({ ...params });
|
|
|
|
|
getList();
|
|
|
|
|
},
|
|
|
|
|
total: result?.count,
|
|
|
|
|
showTotal: (total, range) => <span>共<span style={{ color: '#165DFF' }}> {total} </span>条数据</span>
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className='flex_aiC_jB mt30 mb30'>
|
|
|
|
|
<div className='flex_aiC'>
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} text={'第一页'} onClick={() => { }} />
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} text={'上一页'} onClick={() => { }} />
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} text={'下一页'} onClick={() => { }} />
|
|
|
|
|
<ButtonComp text={'最后一页'} onClick={() => { }} />
|
|
|
|
|
</div>
|
|
|
|
|
<div className='flex_aiC'>
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'新增'} onClick={() => {setAddModalVisible(true) }} />
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'修改'} onClick={() => { }} />
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'删除'} onClick={() => { }} />
|
|
|
|
|
<ButtonComp style={{ marginRight: 20 }} type={'cancel'} text={'退出'} onClick={() => { }} />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* 添加按钮对应的弹窗 */}
|
|
|
|
|
<AddModal
|
|
|
|
|
title='密码设备信息--新增'
|
|
|
|
|
visibility={addModalVisible}
|
|
|
|
|
onCancel={()=>(setAddModalVisible(false))}
|
|
|
|
|
/>
|
|
|
|
|
</section>
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default MachineRegister
|