@ -1,56 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const Department = sequelize.define("department", { |
|||
id: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "id", |
|||
autoIncrement: true, |
|||
unique: "department_id_uindex" |
|||
}, |
|||
name: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "name", |
|||
autoIncrement: false |
|||
}, |
|||
dependence: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: "上级部门/从属", |
|||
primaryKey: false, |
|||
field: "dependence", |
|||
autoIncrement: false |
|||
}, |
|||
type: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: "", |
|||
primaryKey: false, |
|||
field: "type", |
|||
autoIncrement: false |
|||
} |
|||
}, { |
|||
tableName: "department", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
|
|||
dc.models.Department = Department; |
|||
|
|||
|
|||
|
|||
return Department; |
|||
}; |
@ -1,105 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const PatrolPlan = sequelize.define("PatrolPlan", { |
|||
id: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "id", |
|||
autoIncrement: true, |
|||
unique: "patrol_plan_id_uindex" |
|||
}, |
|||
name: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "name", |
|||
autoIncrement: false |
|||
}, |
|||
way: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "way", |
|||
autoIncrement: false |
|||
}, |
|||
structureId: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "structure_id", |
|||
autoIncrement: false |
|||
}, |
|||
startTime: { |
|||
type: DataTypes.DATE, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "start_time", |
|||
autoIncrement: false |
|||
}, |
|||
endTime: { |
|||
type: DataTypes.DATE, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "end_time", |
|||
autoIncrement: false |
|||
}, |
|||
frequency: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "frequency", |
|||
autoIncrement: false |
|||
}, |
|||
points: { |
|||
type: DataTypes.JSONB, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "points", |
|||
autoIncrement: false |
|||
}, |
|||
userId: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: true, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "user_id", |
|||
autoIncrement: false, |
|||
}, |
|||
patrolCount: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: 0, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "patrol_count", |
|||
autoIncrement: false |
|||
}, |
|||
}, { |
|||
tableName: "patrol_plan", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
dc.models.PatrolPlan = PatrolPlan; |
|||
return PatrolPlan; |
|||
}; |
@ -1,55 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const PatrolRecord = sequelize.define("PatrolRecord", { |
|||
id: { |
|||
field: "id", |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
primaryKey: true, |
|||
autoIncrement: true, |
|||
}, |
|||
patrolPlanId: { |
|||
field: "patrol_plan_id", |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
primaryKey: false, |
|||
autoIncrement: false |
|||
}, |
|||
lastInspectionTime: { |
|||
field: "last_inspection_time", |
|||
type: DataTypes.DATE, |
|||
allowNull: true, |
|||
}, |
|||
inspectionTime: { |
|||
field: "inspection_time", |
|||
type: DataTypes.DATE, |
|||
allowNull: true, |
|||
}, |
|||
points: { |
|||
field: "points", |
|||
type: DataTypes.JSONB, |
|||
allowNull: true, |
|||
}, |
|||
alarm: { |
|||
field: "alarm", |
|||
type: DataTypes.BOOLEAN, |
|||
allowNull: false, |
|||
defaultValue: false, |
|||
}, |
|||
pointId: { |
|||
field: "point_id", |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
}, |
|||
}, { |
|||
tableName: "patrol_record", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
dc.models.PatrolRecord = PatrolRecord; |
|||
return PatrolRecord; |
|||
}; |
@ -1,79 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const Point = sequelize.define("point", { |
|||
id: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "id", |
|||
autoIncrement: true, |
|||
unique: "point_id_uindex" |
|||
}, |
|||
projectId: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "project_id", |
|||
autoIncrement: false |
|||
}, |
|||
name: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "name", |
|||
autoIncrement: false |
|||
}, |
|||
longitude: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "longitude", |
|||
autoIncrement: false |
|||
}, |
|||
latitude: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "latitude", |
|||
autoIncrement: false |
|||
}, |
|||
describe: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "describe", |
|||
autoIncrement: false |
|||
}, |
|||
qrCode: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "qr_code", |
|||
autoIncrement: false |
|||
}, |
|||
}, { |
|||
tableName: "point", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
dc.models.Point = Point; |
|||
return Point; |
|||
}; |
@ -1,97 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const Project = sequelize.define("project", { |
|||
id: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "id", |
|||
autoIncrement: true, |
|||
unique: "project_id_uindex" |
|||
}, |
|||
img: { |
|||
type: DataTypes.ARRAY(DataTypes.STRING), |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "img", |
|||
autoIncrement: false |
|||
}, |
|||
userId: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "user_id", |
|||
autoIncrement: false |
|||
}, |
|||
name: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "name", |
|||
autoIncrement: false |
|||
}, |
|||
type: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "type", |
|||
autoIncrement: false |
|||
}, |
|||
longitude: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "longitude", |
|||
autoIncrement: false |
|||
}, |
|||
latitude: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "latitude", |
|||
autoIncrement: false |
|||
}, |
|||
describe: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "describe", |
|||
autoIncrement: false |
|||
}, |
|||
qrCode: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "qr_code", |
|||
autoIncrement: false |
|||
}, |
|||
}, { |
|||
tableName: "project", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
dc.models.Project = Project; |
|||
return Project; |
|||
}; |
@ -1,44 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const Resource = sequelize.define("resource", { |
|||
code: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "code", |
|||
autoIncrement: false, |
|||
unique: "resource_code_uindex" |
|||
}, |
|||
name: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "name", |
|||
autoIncrement: false, |
|||
unique: "resource_name_uindex" |
|||
}, |
|||
parentResource: { |
|||
type: DataTypes.STRING, |
|||
allowNull: true, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "parent_resource", |
|||
autoIncrement: false |
|||
} |
|||
}, { |
|||
tableName: "resource", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
dc.models.Resource = Resource; |
|||
return Resource; |
|||
}; |
@ -1,52 +0,0 @@ |
|||
/* eslint-disable*/ |
|||
'use strict'; |
|||
|
|||
module.exports = dc => { |
|||
const DataTypes = dc.ORM; |
|||
const sequelize = dc.orm; |
|||
const UserResource = sequelize.define("userResource", { |
|||
id: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: true, |
|||
field: "id", |
|||
autoIncrement: true, |
|||
unique: "post_resource_id_uindex" |
|||
}, |
|||
userId: { |
|||
type: DataTypes.INTEGER, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "user_id", |
|||
autoIncrement: false, |
|||
references: { |
|||
key: "id", |
|||
model: "post" |
|||
} |
|||
}, |
|||
resourceId: { |
|||
type: DataTypes.STRING, |
|||
allowNull: false, |
|||
defaultValue: null, |
|||
comment: null, |
|||
primaryKey: false, |
|||
field: "resource", |
|||
autoIncrement: false, |
|||
references: { |
|||
key: "code", |
|||
model: "resource" |
|||
} |
|||
} |
|||
}, { |
|||
tableName: "user_resource", |
|||
comment: "", |
|||
indexes: [] |
|||
}); |
|||
|
|||
dc.models.UserResource = UserResource; |
|||
return UserResource; |
|||
}; |
@ -0,0 +1,26 @@ |
|||
create table t_user |
|||
( |
|||
id serial not null |
|||
constraint t_user_pk |
|||
primary key, |
|||
name varchar(255), |
|||
username varchar(255) not null, |
|||
password varchar(255) not null |
|||
); |
|||
|
|||
comment on table t_user is '用户表'; |
|||
|
|||
comment on column t_user.id is '唯一标识'; |
|||
|
|||
comment on column t_user.name is '姓名'; |
|||
|
|||
comment on column t_user.username is '用户名'; |
|||
|
|||
comment on column t_user.password is '密码'; |
|||
|
|||
|
|||
create unique index t_user_id_uindex |
|||
on t_user (id); |
|||
|
|||
|
|||
INSERT INTO public.t_user (id, name, username, password) VALUES (DEFAULT, '超级管理员', 'SuperAdmin', 'e10adc3949ba59abbe56e057f20f883e') |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 3.4 KiB |
@ -1,2 +1,3 @@ |
|||
@import '~perfect-scrollbar/css/perfect-scrollbar.css'; |
|||
@import '~nprogress/nprogress.css'; |
|||
@import '~simplebar-react/dist/simplebar.min.css'; |
@ -1,47 +1,232 @@ |
|||
import React, { useEffect, useState } from 'react'; |
|||
import React, { useEffect, useState, useRef } from 'react'; |
|||
import { connect } from 'react-redux'; |
|||
import { Spin, Card, Modal, TreeSelect, message } from 'antd'; |
|||
import ProForm, { ProFormText, ModalForm, ProFormSwitch, ProFormTreeSelect } from '@ant-design/pro-form'; |
|||
import moment from 'moment' |
|||
import CardTitle from './public/cardTitle' |
|||
import SimpleBar from 'simplebar-react'; |
|||
import Left_1 from './basis/left_1'; |
|||
import Left_2 from './basis/left_2'; |
|||
import Right_1 from './basis/right_1'; |
|||
import Right_2 from './basis/right_2'; |
|||
import { POWER_STATIONS } from './shuizhan_detail'; |
|||
import './basis.less' |
|||
|
|||
const Basis = ({ user, module, setModule }) => { |
|||
const Basis = ({ actions, dispatch, user, setshowData }) => { |
|||
|
|||
useEffect(() => { |
|||
const { bigScreen } = actions |
|||
const [siteList, setSiteList] = useState([]) //站点列表
|
|||
const [strucId, setStrucId] = useState() //站点ID
|
|||
const [pageRefresh1, setPageRefresh1] = useState(false) |
|||
const [pageRefresh2, setPageRefresh2] = useState(false) |
|||
const [pageRefresh3, setPageRefresh3] = useState(false) |
|||
const [left2List, setleft2List] = useState([]) |
|||
const [depthWater, setDepthWater] = useState([]) |
|||
const [information, setInformation] = useState({}) |
|||
|
|||
const left1Data = useRef([]) |
|||
const left2Data = useRef([]) |
|||
const pumpNumber = useRef(0) |
|||
|
|||
useEffect(async () => { |
|||
await dispatch(bigScreen.axyData({ type: 'get', url: `organizations/{orgId}/structures` })).then(async res => { |
|||
if (res.success) { |
|||
setSiteList(res.payload.data?.map(v => ({ value: v.id, label: v.name, latitude: v.latitude, longitude: v.longitude })) || []) |
|||
setshowData(res.payload.data?.map(v => ({ name: v.name, lat: v.latitude, lng: v.longitude })) || []) |
|||
setStrucId(res.payload.data[0]?.id) |
|||
for (let key in POWER_STATIONS) { |
|||
if (POWER_STATIONS[key]?.name == res.payload.data[0]?.name) { |
|||
setInformation(POWER_STATIONS[key]) |
|||
} |
|||
} |
|||
//获取所有泵站的集水池液位
|
|||
res.payload.data?.map(async v => { |
|||
await dispatch(bigScreen.axyData({ type: 'get', url: `structures/${v.id}/factors` })).then(async r => { |
|||
//泵站信息
|
|||
let informationId = r.payload.data?.find(v => v.name == '泵站信息')?.id |
|||
if (informationId) { |
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `structures/${v.id}/stations`, |
|||
params: { query: { factorId: informationId } } |
|||
})).then(async p => { |
|||
if (p.success) { |
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `stations/theme/data`, params: { |
|||
query: { |
|||
stations: p.payload.data[0]?.groups[0]?.stations[0]?.id, |
|||
startTime: moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|||
endTime: moment().endOf('day').format('YYYY-MM-DD HH:mm:ss'), |
|||
limit: 1 |
|||
} |
|||
} |
|||
})).then(async d => { |
|||
if (d.success) { |
|||
left1Data.current?.push({ name: v.name, level: d.payload.data?.stations[0]?.data[0]?.sLiquid_level || 0 }) |
|||
setPageRefresh1(!pageRefresh1) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
}) |
|||
} |
|||
|
|||
//水泵信息
|
|||
let waterId = r.payload.data?.find(v => v.name == '泵站水泵')?.id |
|||
if (waterId) { |
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `structures/${v.id}/stations`, |
|||
params: { query: { factorId: waterId } } |
|||
})).then(async p => { |
|||
if (p.success) { |
|||
pumpNumber.current += p.payload.data[0]?.groups[0]?.stations.length || 0 |
|||
setPageRefresh3(!pageRefresh3) |
|||
let dataId = [] |
|||
p.payload.data?.map(v => { |
|||
v.groups?.map(s => { |
|||
s.stations?.map(f => { |
|||
dataId.push(f.id) |
|||
}) |
|||
}) |
|||
}) |
|||
if (dataId.length) { |
|||
// 当前时间
|
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `stations/theme/data`, params: { |
|||
query: { |
|||
stations: dataId.join(), |
|||
startTime: moment().startOf('day').format('YYYY:MM:DD HH:mm:ss'), |
|||
endTime: moment().endOf('day').format('YYYY:MM:DD HH:mm:ss'), |
|||
limit: 1 |
|||
} |
|||
} |
|||
})).then(d => { |
|||
if (d.success) { |
|||
left2Data.current?.push({ name: v.name, data: d.payload.data?.stations }) |
|||
setPageRefresh2(!pageRefresh2) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
}) |
|||
} |
|||
}) |
|||
|
|||
}, []) |
|||
const left1Data = [ |
|||
{ name: '雄溪站站站站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
{ name: '雄溪站', level: 3 }, |
|||
] |
|||
|
|||
useEffect(async () => { |
|||
if (strucId) { |
|||
await dispatch(bigScreen.axyData({ type: 'get', url: `structures/${strucId}/factors` })).then(async r => { |
|||
//泵站信息
|
|||
let informationId = r.payload.data?.find(v => v.name == '泵站信息')?.id |
|||
if (informationId) { |
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `structures/${strucId}/stations`, |
|||
params: { query: { factorId: informationId } } |
|||
})).then(async p => { |
|||
if (p.success) { |
|||
await dispatch(bigScreen.axyData({ |
|||
type: 'get', url: `stations/theme/data`, params: { |
|||
query: { |
|||
stations: p.payload.data[0]?.groups[0]?.stations[0]?.id, |
|||
startTime: moment().add(-24, 'hours').format('YYYY-MM-DD HH:mm:ss'), |
|||
endTime: moment().format('YYYY-MM-DD HH:mm:ss'), |
|||
limit: 1440 |
|||
} |
|||
} |
|||
})).then(async d => { |
|||
if (d.success) { |
|||
setDepthWater(d.payload.data?.stations[0]?.data) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
|
|||
}, [strucId]) |
|||
|
|||
|
|||
return <div className='super-screen-body'> |
|||
<div className='super-screen-card left'> |
|||
<Left_1 data={left1Data} /> |
|||
<Left_2 /> |
|||
<Left_1 data={left1Data.current} /> |
|||
<div className='card-item' style={{ height: '55%', minWidth: 350 }}> |
|||
<CardTitle title='水泵状态' /> |
|||
<div className='card-content'> |
|||
<div style={{ |
|||
width: '100%', height: 40, |
|||
backgroundImage: 'url(/assets/images/monitor/end.png)', backgroundSize: '100% 100%', backgroundPosition: 'center', backgroundRepeat: 'no-repeat', |
|||
display: 'flex', alignItems: 'flex-end', |
|||
}}> |
|||
<div style={{ width: 80 }}>地点</div> |
|||
<div>编号</div> |
|||
</div> |
|||
<SimpleBar |
|||
style={{ |
|||
// 容器高度
|
|||
maxHeight: 'calc(100% - 50px)', |
|||
}} |
|||
// 允许的滚动方向
|
|||
forceVisible="y" |
|||
> |
|||
{left2Data.current.map(v => <div style={{ |
|||
display: 'flex', alignItems: 'center', marginTop: 6, width: '100%', height: 36, |
|||
backgroundImage: 'linear-gradient(180deg, #000e28e6 1%, #021f48cc 100%)' |
|||
}}> |
|||
<div style={{ width: 76, overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis', }}>{v.name}</div> |
|||
<div > |
|||
{v.data?.map((s, i) => <img style={{ width: 20, height: 20, marginLeft: 3 }} src={`/assets/images/number/${[2, 4, 6].includes(s.data[0]?.sMotor_State) ? 'good' : 'problem'}${i + 1}.png`} />) |
|||
|
|||
} |
|||
|
|||
</div> |
|||
|
|||
|
|||
</div>)} |
|||
</SimpleBar> |
|||
|
|||
|
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
</div > |
|||
<div className='super-screen-card right'> |
|||
<Right_1 /> |
|||
<Right_2 /> |
|||
<Right_1 data={information} /> |
|||
<Right_2 depthWater={depthWater} /> |
|||
</div> |
|||
<div style={{ width: '40%', height: 30, display: 'flex', justifyContent: 'space-around', position: 'absolute', left: 'calc(30%)', bottom: 30, zIndex: 7 }}> |
|||
<div style={{ |
|||
width: 170, height: 30, position: 'relative', textIndent: 50, lineHeight: '30px', color: 'white', |
|||
backgroundImage: 'url(/assets/images/monitor/lower-left.png)', |
|||
backgroundSize: '100% 100%', backgroundPosition: 'center', backgroundRepeat: 'no-repeat', |
|||
}}> |
|||
<img style={{ width: 40, height: 40, position: 'absolute', left: 12, top: -18, }} src='/assets/images/monitor/pumpPO.png' /> |
|||
泵站数量:{siteList?.length || 0} |
|||
</div> |
|||
<div style={{ |
|||
width: 170, height: 30, position: 'relative', textIndent: 50, lineHeight: '30px', color: 'white', |
|||
backgroundImage: 'url(/assets/images/monitor/lower-right.png)', |
|||
backgroundSize: '100% 100%', backgroundPosition: 'center', backgroundRepeat: 'no-repeat', |
|||
}}> |
|||
<img style={{ width: 40, height: 40, position: 'absolute', left: 12, top: -18, }} src='/assets/images/monitor/pumpPP.png' /> |
|||
提升泵数量:{pumpNumber.current} |
|||
</div> |
|||
</div> |
|||
</div > |
|||
} |
|||
|
|||
function mapStateToProps(state) { |
|||
function mapStateToProps (state) { |
|||
const { auth, global } = state; |
|||
return { |
|||
user: auth.user, |
|||
clientHeight: global.clientHeight, |
|||
actions: global.actions, |
|||
}; |
|||
} |
|||
|
|||
|
@ -1,13 +0,0 @@ |
|||
import React from 'react'; |
|||
import CardTitle from '../public/cardTitle'; |
|||
import '../basis.less'; |
|||
|
|||
export default function Left_2(props) { |
|||
return ( |
|||
<div className='card-item' style={{ height: '55%' }}> |
|||
<CardTitle title='水泵状态' /> |
|||
<div className='card-content'></div> |
|||
|
|||
</div> |
|||
) |
|||
} |
@ -0,0 +1,28 @@ |
|||
const POWER_STATIONS = { |
|||
'象湖站': { area: '象湖站', name: '象湖电排站', func: '排涝', power: 1050, num: 5, elc_type: 'JsL10—12(210KW)', water_type: '1200ZLB—160轴流泵', by_type: 's9—M500KVA、s9—M800KVA', year: ' 2008年, 空', rightTo: '县城管局', managerUnit: '南昌县象湖联圩管理站', managers: '胡铁根、陈江、陈亮', costFrom: '南昌县象湖联圩管理站', remark: '空' }, |
|||
'沥山站': { area: '象湖站', name: '沥山电排站', func: '排涝', power: 1680, num: 8, elc_type: 'JsL10—12(210KW)', water_type: '1200ZLB—160轴流泵', by_type: 's9—M1000KVA/2', year: ' 2004年, 空', rightTo: '县城管局', managerUnit: '南昌县象湖联圩管理站', managers: '宗磊、李文章、熊大方', costFrom: '南昌县象湖联圩管理站', remark: '空' }, |
|||
'雄溪站': { area: '象湖站', name: '雄溪电排站', func: '排涝', power: 630, num: 3, elc_type: 'JsL10—12(210KW)', water_type: '1200ZLB—160轴流泵', by_type: 's9—M315KVA、s9—M500KVA', year: ' 2004年, 空', rightTo: '县城管局', managerUnit: '南昌县象湖联圩管理站', managers: '涂三毛、刘文红彭伟红、童珊玲、李跃兰(县聘泵站值守人员)', costFrom: '南昌县象湖联圩管理站', remark: '空' }, |
|||
'张坊站': { area: '象湖站', name: '张坊电排站', func: '排涝', power: 2500, num: 5, elc_type: 'YL630-16/1430(500KW)', water_type: '1400ZLB-5立式半调节轴流泵', by_type: 'SCB11-160/10/0.4', year: ' 2020年, 空', rightTo: '县城管局', managerUnit: '还未明确管理单位,由水利局代管', managers: '康玉明、赵先福、殷长和、肖玉平', costFrom: '水利局垫付', remark: '工资发放至2021年12月止' }, |
|||
'万寿湖站': { area: '象湖站', name: '万寿湖电排站', func: '排涝', power: 660, num: 3, elc_type: 'JsL14—12(220KW)', water_type: '1000ZLB-5立式半调节轴流泵', by_type: 'SCB11-1000/10/0.4、SCB11-80/10/0.4', year: ' 2020年, 空', rightTo: '县城管局', managerUnit: '还未明确管理单位,由水利局代管', managers: '夏小生、王刚', costFrom: '水利局垫付', remark: '工资发放至2021年12月止' }, |
|||
'八月湖站': { area: '东新乡', name: '八月湖一站', func: '排灌结合', power: 840, num: 4, elc_type: 'JSL12—14', water_type: '1000ZLB—4轴流泵', by_type: 'S91000KVA', year: ' 1974年, 2009年', rightTo: '县城管局', managerUnit: '东新乡', managers: '邓重志、熊春华、邓仁凯、邓小玉、邓必华', costFrom: '由排灌站直接在乡财务办理缴费', remark: '空' }, |
|||
'新八月湖站': { area: '东新乡', name: '八月湖二站', func: '纯排', power: 1050, num: 5, elc_type: 'JSL12—14', water_type: '1000ZLB—4轴流泵', by_type: 'S9800KVA2', year: ' 1985.4年, 2009年', rightTo: '县城管局', managerUnit: '东新乡', managers: '邓重志、熊春华、邓仁凯、邓小玉、邓必华', costFrom: '由排灌站直接在乡财务办理缴费', remark: '空' }, |
|||
'河下站': { area: '东新乡', name: '河下电排站', func: '排灌结合', power: 320, num: 4, elc_type: 'Y—200T—4', water_type: 'ZLB28—70轴流泵', by_type: 'S9315KVA', year: ' 1972年, 1987年', rightTo: '县城管局', managerUnit: '河下村', managers: '万增福', costFrom: '由河下村排灌站直接缴费', remark: '空' }, |
|||
'石岐站': { area: '东新乡', name: '石岐电排站', func: '排灌结合', power: 340, num: 3, elc_type: 'Y—200T—4', water_type: 'ZLB28—70轴流泵', by_type: 'S9315KVA', year: ' 1974年, 1988年', rightTo: '县城管局', managerUnit: '石岐村', managers: '万象保', costFrom: '由石岐村排灌站直接缴费', remark: '空' }, |
|||
'东新乡': { area: '东新乡', name: '利用姚家塘电排站', func: '排灌结合', power: 240, num: 3, elc_type: 'Y—200T—4', water_type: 'ZLB28—70轴流泵', by_type: 'S9315KVA', year: ' 1974年, 1992年', rightTo: '县城管局', managerUnit: '利用村', managers: '蒋淑仁', costFrom: '由利用村排灌站直接缴费', remark: '空' }, |
|||
'东新乡': { area: '东新乡', name: '汇仁大道排水泵站', func: '纯排', power: 260, num: 2, elc_type: 'Y67—130kw', water_type: '20ZLB—70轴流泵', by_type: '315KVA箱式变压器', year: ' 2014年, 空', rightTo: '县城管局', managerUnit: '东新乡', managers: '蒋国冬', costFrom: '由乡水管站直接垂管缴费', remark: '空' }, |
|||
'东新乡': { area: '东新乡', name: '小洲杨家湾电排站', func: '纯排', power: 60, num: 2, elc_type: 'Y—200T—4', water_type: 'ZLB28—70轴流泵', by_type: '80KVA箱式变压器', year: ' 2013年, 空', rightTo: '县城管局', managerUnit: '东新乡', managers: '胡又莲', costFrom: '由乡水管站直接垂管缴费', remark: '空' }, |
|||
'东新乡': { area: '东新乡', name: '石岐补水站', func: '灌溉', power: 260, num: 2, elc_type: 'Y67—130kw', water_type: '20ZLB—70轴流泵', by_type: 'S9_315KVA变压器', year: ' 2014年, 空', rightTo: '县城管局', managerUnit: '东新乡', managers: '万和全', costFrom: '由乡水管站直接垂管缴费', remark: '空' }, |
|||
'象湖一号闸': { area: '东新乡', name: '象湖南电排站', func: '纯排', power: 60, num: 2, elc_type: 'Y—200T—4', water_type: 'ZLB28—70轴流泵', by_type: '80KVA箱式变压器', year: ' 2013年, 空', rightTo: '县城管局', managerUnit: '东新乡', managers: '陶小弟', costFrom: '由乡水管站直接垂管缴费', remark: '空' }, |
|||
'东新乡': { area: '东新乡', name: '东莲路节制闸', func: '排涝', power: '空', num: '空', elc_type: '空', water_type: '空', by_type: '空', year: ' 2009年, 空', rightTo: '县城管局', managerUnit: '东新乡', managers: '蒋永新', costFrom: '由乡水管站直接垂管缴费', remark: '调节东莲路景观明渠水位' }, |
|||
'三山站': { area: '富山乡', name: '三山电排站', func: '排涝', power: 390, num: 3, elc_type: '空', water_type: '空', by_type: '空', year: ' 1973年, 2008年', rightTo: '县城管局', managerUnit: '三山村村委会', managers: '空', costFrom: '富山乡', remark: '空' }, |
|||
'河外泵站': { area: '富山乡', name: '河外电排站站', func: '排涝', power: 90, num: 2, elc_type: '空', water_type: '空', by_type: '空', year: ' 1984年, 2021年', rightTo: '县城管局', managerUnit: '三山村村委会', managers: '空', costFrom: '富山乡', remark: '空' }, |
|||
'东山站': { area: '富山乡', name: '东山电排站', func: '排涝', power: 2010, num: 12, elc_type: '6台180、6台155', water_type: '空', by_type: '1250、1650', year: ' 1983年, 2008年', rightTo: '富山乡', managerUnit: '富山乡', managers: '空', costFrom: '富山乡', remark: '排涝能力偏小' }, |
|||
'河口电排站': { area: '县城投', name: '河口电排站', func: '排涝', power: 6250, num: 5, elc_type: 'TL1250-30/2600(12500KW)', water_type: '2050ZLQ轴流泵', by_type: 'SCB11-630/10/0.4(2台)', year: ' 2021年, 空', rightTo: '县城管局', managerUnit: '县城投公司', managers: '空', costFrom: '县城投公司', remark: '空' }, |
|||
'县城投': { area: '县城投', name: '芳湖路提升泵站', func: '排涝', power: 225, num: 3, elc_type: 'Y2-315M-8(75KW)', water_type: 'ZLDB-立式单基础轴流泵', by_type: 'ZGS13-200KVA、ZGS13-400KVA', year: ' 2019年, 空', rightTo: '县城管局', managerUnit: '还未明确管理单位,由工人代管', managers: '廖良斌', costFrom: '县城投公司', remark: '空' }, |
|||
'县城投': { area: '县城投', name: '三干渠富山大道闸', func: '控制闸', power: '空', num: 2, elc_type: '空', water_type: '空', by_type: '空', year: ' 2018年, 空', rightTo: '县城管局', managerUnit: '县城投公司(水投公司)', managers: '葛江波', costFrom: '县城投公司(水投公司)', remark: '空' }, |
|||
'县城投': { area: '县城投', name: '三干渠银湖二路明渠闸', func: '控制闸', power: '空', num: 2, elc_type: '空', water_type: '空', by_type: '空', year: ' 2018年, 空', rightTo: '县城管局', managerUnit: '县城投公司(水投公司)', managers: '葛江波', costFrom: '县城投公司(水投公司)', remark: '空' }, |
|||
'县城投': { area: '县城投', name: '三干渠汇仁大道明渠闸', func: '控制闸', power: '空', num: 2, elc_type: '空', water_type: '空', by_type: '空', year: ' 2018年, 空', rightTo: '县城管局', managerUnit: '县城投公司(水投公司)', managers: '葛江波', costFrom: '县城投公司(水投公司)', remark: '空' }, |
|||
} |
|||
|
|||
|
|||
export { POWER_STATIONS } |