@ -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 '~perfect-scrollbar/css/perfect-scrollbar.css'; |
||||
@import '~nprogress/nprogress.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 { connect } from 'react-redux'; |
||||
import { Spin, Card, Modal, TreeSelect, message } from 'antd'; |
import { Spin, Card, Modal, TreeSelect, message } from 'antd'; |
||||
import ProForm, { ProFormText, ModalForm, ProFormSwitch, ProFormTreeSelect } from '@ant-design/pro-form'; |
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_1 from './basis/left_1'; |
||||
import Left_2 from './basis/left_2'; |
|
||||
import Right_1 from './basis/right_1'; |
import Right_1 from './basis/right_1'; |
||||
import Right_2 from './basis/right_2'; |
import Right_2 from './basis/right_2'; |
||||
|
import { POWER_STATIONS } from './shuizhan_detail'; |
||||
import './basis.less' |
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 }, |
useEffect(async () => { |
||||
{ name: '雄溪站', level: 3 }, |
if (strucId) { |
||||
{ name: '雄溪站', level: 3 }, |
await dispatch(bigScreen.axyData({ type: 'get', url: `structures/${strucId}/factors` })).then(async r => { |
||||
{ name: '雄溪站', level: 3 }, |
//泵站信息
|
||||
{ name: '雄溪站', level: 3 }, |
let informationId = r.payload.data?.find(v => v.name == '泵站信息')?.id |
||||
{ name: '雄溪站', level: 3 }, |
if (informationId) { |
||||
{ name: '雄溪站', level: 3 }, |
await dispatch(bigScreen.axyData({ |
||||
{ name: '雄溪站', level: 3 }, |
type: 'get', url: `structures/${strucId}/stations`, |
||||
{ name: '雄溪站', level: 3 }, |
params: { query: { factorId: informationId } } |
||||
{ name: '雄溪站', level: 3 }, |
})).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'> |
return <div className='super-screen-body'> |
||||
<div className='super-screen-card left'> |
<div className='super-screen-card left'> |
||||
<Left_1 data={left1Data} /> |
<Left_1 data={left1Data.current} /> |
||||
<Left_2 /> |
<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> |
||||
|
|
||||
|
|
||||
|
</div>)} |
||||
|
</SimpleBar> |
||||
|
|
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
|
||||
|
</div > |
||||
<div className='super-screen-card right'> |
<div className='super-screen-card right'> |
||||
<Right_1 /> |
<Right_1 data={information} /> |
||||
<Right_2 /> |
<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> |
||||
</div > |
</div > |
||||
} |
} |
||||
|
|
||||
function mapStateToProps(state) { |
function mapStateToProps (state) { |
||||
const { auth, global } = state; |
const { auth, global } = state; |
||||
return { |
return { |
||||
user: auth.user, |
user: auth.user, |
||||
clientHeight: global.clientHeight, |
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 } |