Commit 773bcdde authored by tangwei's avatar tangwei

首页左右集成

parent bfaed420
import * as endConf from 'amos-processor/lib/config/endconf';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { Store } from 'amos-tool';
import SysConsts from 'amos-processor/lib/config/consts';
const lsTool = Store.lsTool;
const completePrefix = endConf.completePrefix;
const AmosConfig = endConf.AmosConfig;
const baseURI = AmosConfig.wsURI.baseURI;
const view3dURI = AmosConfig.wsURI.view3dURI;
const getToken = () => {
return lsTool.read(SysConsts.token);
};
export default {
rulews: completePrefix(view3dURI, 'rule.ws?token={token}'),
view3dws: completePrefix(view3dURI, 'view3d.ws?token={token}'),
viewIndexws: completePrefix(baseURI, '3dViewMessage')
};
export const completeToken = (url) => {
const token = getToken();
const result = formatUrl(url, { token });
return result;
};
......@@ -741,90 +741,90 @@ a {
box-sizing: inherit;
}
.amos-modal-container {
// width: 50% !important;
position: relative;
left: 0 !important;
margin: 0 auto;
background: rgba(12, 73, 126, 1);
box-shadow: none;
.ant-select-selection--single {
height: 36px;
}
.ant-input {
height: 36px;
}
}
.amos-modal-close {
color: #ec0000 !important;
}
.amos-modal-close-x {
width: 0.56rem;
height: 0.56rem;
font-size: 0.24rem !important;
line-height: 0.56rem;
}
.amos-modal-content {
max-height: 4.2rem;
padding: 0.2rem;
color: #fff;
font-size: 0.16rem;
}
.amos-modal-header {
padding: 0.12rem 0.24rem;
color: #fff;
border: none;
height: 0.56rem;
background: linear-gradient(180deg,rgba(154,203,251,0.24) 0%,rgba(225,238,255,0.36) 54%,rgba(157,183,223,0.1) 54%,rgba(63,117,209,0) 100%);
box-shadow: inset 0px 0px 18px 0px rgba(111,194,226,0.67);
border-radius: 4px 4px 0px 0px;
.amos-modal-title {
color: #307fdd;
text-align: center;
}
}
.amos-modal-footer {
padding: 0 0.12rem;
color: #307fdd;
// background: rgba(7, 17, 35, 0.9) !important;
// border: 1px solid #1274cf;
font-size: 0.16rem;
border: none;
.detail-footer {
padding: 0.12rem 0;
border-top: 1px solid #6FC2E2;
}
.amos-btn {
height: 0.336rem;
padding: 0 0.216rem;
margin-left: 0.096rem;
i[class*='icon'] {
margin-right: 0.036rem;
}
}
}
.ant-calendar-picker-input {
color: #5cc1e3;
background: #061f3b;
border: 0px;
}
.amos-modal-wrap {
.select-scroll-wrapper {
display: inline-flex !important;
// width: 130px !important;
// margin-left: 10px;
}
}
// .amos-modal-container {
// // width: 50% !important;
// position: relative;
// left: 0 !important;
// margin: 0 auto;
// background: rgba(12, 73, 126, 1);
// box-shadow: none;
// .ant-select-selection--single {
// height: 36px;
// }
// .ant-input {
// height: 36px;
// }
// }
// .amos-modal-close {
// color: #ec0000 !important;
// }
// .amos-modal-close-x {
// width: 0.56rem;
// height: 0.56rem;
// font-size: 0.24rem !important;
// line-height: 0.56rem;
// }
// .amos-modal-content {
// max-height: 4.2rem;
// padding: 0.2rem;
// color: #fff;
// font-size: 0.16rem;
// }
// .amos-modal-header {
// padding: 0.12rem 0.24rem;
// color: #fff;
// border: none;
// height: 0.56rem;
// background: linear-gradient(180deg,rgba(154,203,251,0.24) 0%,rgba(225,238,255,0.36) 54%,rgba(157,183,223,0.1) 54%,rgba(63,117,209,0) 100%);
// box-shadow: inset 0px 0px 18px 0px rgba(111,194,226,0.67);
// border-radius: 4px 4px 0px 0px;
// .amos-modal-title {
// color: #307fdd;
// text-align: center;
// }
// }
// .amos-modal-footer {
// padding: 0 0.12rem;
// color: #307fdd;
// // background: rgba(7, 17, 35, 0.9) !important;
// // border: 1px solid #1274cf;
// font-size: 0.16rem;
// border: none;
// .detail-footer {
// padding: 0.12rem 0;
// border-top: 1px solid #6FC2E2;
// }
// .amos-btn {
// height: 0.336rem;
// padding: 0 0.216rem;
// margin-left: 0.096rem;
// i[class*='icon'] {
// margin-right: 0.036rem;
// }
// }
// }
// .ant-calendar-picker-input {
// color: #5cc1e3;
// background: #061f3b;
// border: 0px;
// }
// .amos-modal-wrap {
// .select-scroll-wrapper {
// display: inline-flex !important;
// // width: 130px !important;
// // margin-left: 10px;
// }
// }
.ant-table {
width: 100%;
......
......@@ -3,3 +3,10 @@
//@import './panelframe.scss';
@import './monitor/index.scss';
@import './biz/index.scss';
// 导入amos-antd
@import '~amos-antd/dist/amosantd.css';
// 导入amos-framework
@import '~amos-framework/dist/amosframework.css';
// 导入amos-pro
@import '~amos-pro/dist/amospro.css';
@import '~ray-progress/assets/progress.css';
\ No newline at end of file
// .statistical {
// position: absolute;
// height: 100%;
// width: 100%;
.yi{
color:#48E0FF;
}
.er{
color:#F1F10C;
}
.san{
color:#FF8000;
}
.si{
color:#FC2F1E;
}
.ant-calendar {
width: 180px !important;
background-color:#0E7FB4 !important;
}
.souh{
height: 100%;
width: 100%;
// .ant-pagination.mini .ant-pagination-options {
// margin-left: 8px;
// display: none;
// }
.ant-table-pagination {
float:none;
text-align: center !important;
}
.ant-table-thead > tr.ant-table-row-hover > td, .ant-table-tbody > tr.ant-table-row-hover > td, .ant-table-thead > tr:hover > td, .ant-table-tbody > tr:hover > td {
background: rgb(176, 204, 240);
}
.inputxqtable{
height: 90%;
width: 100%;
border:1px solid rgba(23,186,252,1);
.ant-pagination-prev, .ant-pagination-next {
background-color: rgba(23,186,252,1);
}
.ant-table-middle .ant-table-thead > tr > th:not(.ant-table-selection-column), .ant-table-middle .ant-table-tbody > tr:nth-child(even){
background-color: #0E7FB4;
}
::-webkit-scrollbar{
width:4px;
background-color: #0e487c;
}
::-webkit-scrollbar-thumb{
background-color: #4facfa;
}
.ant-table-header{
margin-bottom: -1% !important;
}
.ant-table-content{
max-height: 100% !important;
}
.ant-table-body{
max-height: 340px !important;
overflow-y: auto !important;
}
.ant-table-tbody > tr > td {
border: 0px solid #e9e9e9;
}
.table, td, tr, th {
font-size: 15px;
}
.ant-table-fixed-header > .ant-table-content > .ant-table-scroll > .ant-table-body {
font-size:15px !important;;
font-family:Microsoft YaHei UI !important;;
font-weight:400 !important;;
line-height:14px !important;;
color:rgba(255,255,255,1) !important;;
background: #265673!important;
}
.ant-table table {
text-align: center !important;
}
.ant-table-pagination {
font-size:12px;
font-family:Microsoft YaHei UI;
font-weight:400;
line-height:14px;
color:rgba(255,255,255,1);
}
.ant-select-sm .ant-select-selection__rendered {
font-size: 12px;
font-family: Microsoft YaHei UI;
color: rgba(255,255,255,1);
}
.ant-select-selection {
background-color: rgba(23,186,252,1);
}
.ant-table-thead > tr > th{
text-align: center;
background:#265673;
border: 0px solid #265673;
font-size:15px;
font-family:Microsoft YaHei;
color:rgba(255,255,255,1);
}
.ant-table-fixed-header .ant-table-scroll .ant-table-header {
overflow: hidden;
}
.ant-table-bordered .ant-table-header > table, .ant-table-bordered .ant-table-body > table, .ant-table-bordered .ant-table-fixed-left table, .ant-table-bordered .ant-table-fixed-right table {
border: 0px solid #e9e9e9;
}
// .ant-table-middle .ant-table-thead > tr > th:not(.ant-table-selection-column), .ant-table-middle .ant-table-tbody > tr > td {
// padding: 16px 8px;
// }
.ant-table-placeholder {
background: #265673;
}
.ant-table-wrapper{
height: 100%
}
.ant-spin-nested-loading{
height: 100%
}
.ant-spin-container{
height: 100%
}
.ant-.ant-spin-container {
height: 100%
}
.ant-table{
height: 87%
}
}
.sou{
height: 10%;
}
}
.amos-popover-content {
background: rgba(3, 111, 199, 0.842)!important;
border:1px solid rgba(240,242,243,1)!important;
}
.inputxq{
float: left;
width: 24%;
.amos-std-form.amos-std-form-right .amos-std-form-label {
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 26px;
color: rgba(240,242,243,1);
}
.ant-input {
color: rgba(240,242,243,1);
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 26px;
}
.amos-select-title {
color: rgba(240,242,243,1);
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 32px;
}
.amos-select-dropdown {
background-color:rgba(0,185,255,0.3);
opacity:1;
border-radius: 17px;
border: 0 solid #e8e8e8;
line-height: 32px;
}
.amos-std-form-content{
width: 100%;
}
.ant-calendar-picker{
width: 100% !important;
}
.amos-std-form-label {
width: 4em;
}
.ant-input{
background-color:rgba(0,185,255,0.3);
opacity:1;
border-radius: 17px;
border: 0 solid #e8e8e8;
}
}
.inputxq3{
margin-left: 15%;
float: left;
width: 24%;
.amos-std-form-content{
width: 100%;
}
.amos-search{
width: 80%;
}
.amos-search-inner{
background-color:rgba(0,185,255,0.3);
opacity:1;
border-radius: 17px;
height: 34px;
}
.amos-search-inner{
color: rgba(240,242,243,1);
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 26px;
}
}
.inputxq1{
margin-left: 2%;
float: left;
width: 24%;
.amos-std-form-content{
width: 100%;
}
.amos-search{
width: 80%;
}
.amos-search-inner{
background-color:rgba(0,185,255,0.3);
opacity:1;
border-radius: 17px;
height: 34px;
}
.amos-search-inner{
color: rgba(240,242,243,1);
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 26px;
}
}
.risk-model-model99{
.amos-modal-container{
background: rgba(14, 127, 180, 0.29);
height: 70%;
}
.amos-modal-content{
padding: 0.5em;
height: 100%;
}
.amos-modal-header{
background: rgba(14, 127, 180, 0.29);
padding: 0.3em 0.3em;
border-bottom: 0px solid #e5e5e5;
.amos-modal-title{
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
margin-left: 10px;
height: 100%;
line-height:20px;
color:rgba(255,255,255,1);
-webkit-text-stroke:1 rgba(0,0,0,0.00);
opacity:1;
}
}
.amos-modal-close-x{
width: 100%;
height: 100%;
font-size: 20px;
font-style: normal;
line-height: 24px;
margin-right: 13px;
margin-top: 4px;
background-color:rgba(252, 47, 30, 1) ;
}
}
.statistical-left {
position: absolute;
height: 86.2%;
width: 18.7%;
float: left;
margin-left: 1.9%;
z-index: 1;
top: 8.51%;
.AlarmControl{
margin-top: 10%;
height: 29.9%;
width: 100%;
background-image: url('/src/assets/homePage/3120.png');
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.AlarmControl_1{
height: 10%;
width: 100%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl_1_1{
width:50%;
margin-left: 9.4%;
height:100px;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
}
}
.AlarmControl_2{
height: 90%;
width: 100%;
.AlarmControl_2_1{
width:9%;
float: right;
height:14%;
//border:1px solid rgba(23,186,252,1);
}
.AlarmControl_2_2{
width:100%;
float: right;
height:87%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl_2_2_1{
width:50%;
float: right;
height:100%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl8{
margin-top:32% ;
}
.AlarmControl2{
width:100%;
float: right;
height:20%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl2_2{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(243,12,12,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_3{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(219,121,23,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_4{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(209,209,52,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_1{
height: 100%;
width: 90%;
float: right;
// border:1px solid rgba(23,186,252,1);
.AlarmControl2_12{
float: left;
margin-left: 2%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_13{
float: left;
margin-left: 2%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_12{
float: left;
margin-left: 2%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_13{
float: left;
margin-left: 2%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
}
}
}
.AlarmControl_2_2_2{
width:50%;
float: right;
height:100%;
//borderborder:1px solid rgba(23,186,252,1);
}
}
}
}
.DangerControl{
margin-top: 10%;
height: 29.9%;
width: 100%;
background-image: url('/src/assets/homePage/3120.png');
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.DangerControl_1{
height: 10%;
width: 100%;
// border:1px solid rgba(23,186,252,1);
.DangerControl_1_1{
width:50%;
margin-left: 9.4%;
height:100px;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
}
}
.DangerControl_2{
height: 90%;
width: 100%;
.DangerControl_2_1{
width:9%;
float: right;
height:14%;
// border:1px solid rgba(23,186,252,1);
}
.DangerControl_2_2{
width:100%;
float: right;
height:87%;
//border:1px solid rgba(23,186,252,1);
.DangerControl_2_2_1{
width:50%;
float: right;
height:100%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl8{
margin-top:20% ;
}
.AlarmControl2{
width:100%;
float: right;
height:20%;
// border:1px solid rgba(23,186,252,1);
.AlarmControl2_2{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(243,12,12,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_3{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(255,214,0,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_4{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(0,255,238,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_5{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(0,255,238,1);
border-radius:50%;
opacity:1;
}
.AlarmControl2_1{
height: 100%;
width: 90%;
float: right;
// border:1px solid rgba(23,186,252,1);
.AlarmControl2_12{
float: left;
margin-left: 1%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_13{
float: left;
margin-left: 1%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_12{
float: left;
margin-left: 1%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
.AlarmControl2_13{
float: left;
margin-left: 1%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
}
}
}
.DangerControl_2_2_2{
width:50%;
float: right;
height:100%;
//border:1px solid rgba(23,186,252,1);
}
}
}
}
.RiskControl {
height: 32.6%;
width: 100%;
background-image: url('/src/assets/homePage/3119.png');
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.RiskControl_1{
height: 10%;
width: 100%;
// border:1px solid rgba(23,186,252,1);
.RiskControl_1_1{
width:50%;
margin-left: 9.4%;
height:100px;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
}
}
.RiskControl_2{
height: 64%;
width: 100%;
.RiskControl_2_1{
width:9%;
float: right;
height:18%;
//border:1px solid rgba(23,186,252,1);
}
.RiskControl_2_2{
width:100%;
float: right;
height:82%;
// border:1px solid rgba(23,186,252,1);
.RiskControl_2_2_1{
width:50%;
float: right;
height:100%;
// border:1px solid rgba(23,186,252,1);
.RiskControl_2_2_19{
margin-left: 30%;
margin-top: 2%;
height:40%;
.shi{
color:rgba(243,12,12,1);
font-size:22px;
}
.shi1{
color:rgba(243,12,12,1);
}
.shou{
color:rgba(0,255,238,1);
font-size:22px;
}
.shou1{
color:rgba(0,255,238,1);
}
}
}
.RiskControl_2_2_2{
width:50%;
float: right;
height:100%;
// border:1px solid rgba(23,186,252,1);
}
}
// border:1px solid rgba(23,186,252,1);
}
.RiskControl_3{
height: 26%;
width: 100%;
// border:1px solid rgba(23,186,252,1);
.RiskControl_3_1{
height: 40%;
width: 50%;
float: right;
//border:1px solid rgba(23,186,252,1);
.RiskControl_3_1_1{
height: 100%;
width: 90%;
float: right;
// border:1px solid rgba(23,186,252,1);
.RiskControl_3_1_8{
float: left;
margin-left: 8%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
}
.RiskControl_3_1_17{
height: 100%;
width: 60%;
float: right;
// border:1px solid rgba(23,186,252,1);
.RiskControl_3_1_8{
float: left;
margin-left: 8%;
font-size:10px;
font-family:Microsoft YaHei;
font-weight:bold;
line-height:20px;
color:rgba(255,255,255,1);
opacity:1;
}
}
.RiskControl_3_1_2{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(219,121,23,1);
border-radius:50%;
opacity:1;
}
.RiskControl_3_1_3{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(243,12,12,1);
border-radius:50%;
opacity:1;
}
.RiskControl_3_1_4{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(12,3,185,1);
border-radius:50%;
opacity:1;
}
.RiskControl_3_1_5{
float: right;
margin-top:5% ;
width:10px;
height:10px;
background:rgba(209,209,52,1);
border-radius:50%;
opacity:1;
}
}
}
}
}
.statistical-right {
position: absolute;
height: 86.2%;
width: 18.7%;
float: right;
margin-right: 1.9%;
z-index: 1;
top: 8.51%;
right: 0;
.AllSafety {
height: 25.9%;
width: 100%;
.all-safety-font {
height: 11%;
width: 100%;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
padding-left: 17px;
}
.all-safety-content {
background-image: url('/src/assets/homePage/ztxf.png');
background-repeat: no-repeat !important;
height: 100%;
width: 100%;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.div-echars{
margin-left: 17px;
height: 200px !important;
width: 82%!important;
background-position:60px 14px!important
}
.jiantou {
color:rgb(255,255,0)
}
.content-detail {
height: 100%;
width: 100%;
display: flex;
.all-safety-left{
height: 89%;
width: 53%;
}
.all-safety-right{
height: 89%;
width: 47%;
text-align: center;
.all-safety-right-one {
height: 13%;
width: 100%;
text-align: center;
margin-top: 17%;
line-height: 20px;
position: relative;
.right-one-font {
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
color:rgba(247,13,14,1);
line-height:26px;
}
}
.all-safety-right-two {
height: 13%;
width: 45%;
background:linear-gradient(90deg,rgba(82,237,242,0.1) 0%,rgba(28,98,100,0.31) 100%);
box-shadow:0px 3px 6px rgba(0,0,0,0.16);
opacity:1;
border-radius: 6px;
position: relative;
left: 31%;
top: 7%;
.right-two-font {
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height: 23px;
color:rgba(255,255,255,1);
opacity:1;
}
}
.all-safety-right-three {
height: 20%;
width: 100%;
text-align: center;
margin-top: 12%;
.right-three-font {
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
color:rgba(4,252,253,1);
line-height:26px;
}
}
.all-safety-right-four {
height: 13%;
width: 45%;
background:linear-gradient(90deg,rgba(82,237,242,0.1) 0%,rgba(28,98,100,0.31) 100%);
box-shadow:0px 3px 6px rgba(0,0,0,0.16);
opacity:1;
border-radius: 6px;
position: relative;
left: 31%;
.right-four-font {
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:23px;
color:rgba(255,255,255,1);
opacity:1;
}
}
}
}
}
}
.FireSafety {
margin-top: 10%;
height: 34%;
width: 100%;
.fire-safety-content {
background-image: url('/src/assets/homePage/xfsl.png');
background-repeat: no-repeat !important;
height: 100%;
width: 100%;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.fire-safety-font {
height: 11%;
width: 100%;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
padding-left: 17px;
}
//应急预案
.titleIcon-yjya {
background: url('/src/assets/homePage/txl.png') center center / 100% 100% no-repeat;
display: inline-block;
height: 20px;
width: 20px;
vertical-align: middle;
margin-top: -4px;
}
//安全培训
.titleIcon-aqpx {
background: url('/src/assets/homePage/aqpx.png') center center / 100% 100% no-repeat;
display: inline-block;
height: 16px;
width: 19px;
vertical-align: middle;
margin-top: -4px;
}
//安全巡检
.titleIcon-aqxj {
background: url('/src/assets/homePage/aqxj.png') center center / 100% 100% no-repeat;
display: inline-block;
height: 19.5px;
width: 17.5px;
vertical-align: middle;
margin-top: -4px;
margin-left: 3px;
}
//日常训练
.titleIcon-rcxl {
background: url('/src/assets/homePage/rcxl.png') center center / 100% 100% no-repeat;
display: inline-block;
height: 18.67px;
width: 19px;
vertical-align: middle;
margin-top: -4px;
}
//器材保养
.titleIcon-qcby {
background: url('/src/assets/homePage/qcby.png') center center / 100% 100% no-repeat;
display: inline-block;
height: 17.32px;
width: 15px;
vertical-align: middle;
margin-top: -4px;
margin-left: 4px;
}
.fire-safety-wenzi {
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:26px;
color:rgba(255,255,255,1);
opacity:1;
display: inline-block;
margin-left: 6px;
}
}
.fire-safety-tongji {
width: 84%;
height: 12.3%;
background:linear-gradient(90deg,rgba(82,237,242,0.1) 0%,rgba(28,98,100,0.31) 100%);
box-shadow:0px 3px 6px rgba(0,0,0,0.16);
opacity:1;
margin-left: 7%;
margin-top: 3%;
padding-left: 6px;
.content-tongji {
width: 100%;
.left-div {
display: inline-block;
}
.right-font {
display: inline-block;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:26px;
color:rgba(255,255,255,1);
opacity:1;
float: right;
margin-right: 10px;
}
}
}
}
.FireStrength {
margin-top: 10%;
height: 34%;
width: 100%;
.strength-safety-font {
height: 11%;
width: 100%;
font-size:15px;
font-family:Microsoft YaHei;
font-weight:400;
line-height:24px;
color:rgba(255,255,255,1);
text-shadow:0px 0px 4px rgba(9,35,61,1);
opacity:1;
padding-left: 17px;
}
.strength-safety-content {
background-image: url('/src/assets/homePage/xfsl.png');
background-repeat: no-repeat !important;
height: 100%;
width: 100%;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
.strength-safety-content-box
{
display: flex;
height: 89%;
width: 100%;
.item{
margin-top: 2%;
padding: 7px;
font-size: 15px;
color: white;
width:260px;
height:35px;
background:linear-gradient(90deg,rgba(82,237,242,0.1) 0%,rgba(28,98,100,0.31) 100%);
box-shadow:0px 3px 6px rgba(0,0,0,0.16);
opacity:1;
.item-img-div
{
width: 20px;
float: left;
margin-right: 5%;
}
.item-value
{
float: right;
margin-right: 5%;
}
}
}
}
}
}
//}
@import './duty.scss';
@import './map.scss';
@import './homePage.scss';
.view-root {
height: 100%;
background: url('/src/assets/bg/bg.png') no-repeat;
......
import React, { Component } from 'react';
import { Tabs } from 'amos-antd';
const { TabPane} = Tabs;
/**
* 消防实力统计详情
*/
class FireStrengthDetail extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}
componentDidMount() {
}
render() {
return (
<div className="fire-strength-detail">
<Tabs defaultactivekey="1" type="card">
<TabPane tab="Tab 1" key="1">
Content of Tab Pane 1
</TabPane>
<TabPane tab="Tab 2" key="2">
Content of Tab Pane 2
</TabPane>
<TabPane tab="Tab 3" key="3">
Content of Tab Pane 3
</TabPane>
</Tabs>
</div>
);
}
}
FireStrengthDetail.propTypes = {
};
export default FireStrengthDetail;
......@@ -5,6 +5,14 @@ import { Store } from 'amos-tool';
import Header from './../main/header';
import loadScripts from 'dt2react/lib/utils/loadScripts';
import { outMap } from './../../consts/urlConsts';
import { Modal, Select } from 'amos-framework';
import RiskControlTable from './../monitor/statistical/RiskControlTable';
import DangerControlTable from './../monitor/statistical/DangerControlTable';
import AlarmControlTable from './../monitor/statistical/AlarmControlTable';
import CenterLevelLeft from './../monitor/statistical/indexLeft';
import CenterLevelRight from './../monitor/statistical/indexRight';
const lsTool = Store.lsTool;
......@@ -21,7 +29,11 @@ class RootView extends Component {
submenu: [],
extendSystem: [],
loadAmap: false,
BasicMap: null
BasicMap: null,
visible1: false,
visible2: false,
visible3: false,
flag:false,
};
}
......@@ -72,7 +84,63 @@ class RootView extends Component {
componentWillUnmount() {
}
cancel = () => {
this.setState({
visible1: false,
visible2: false,
visible3: false,
flag:true,
});
}
getContext = (type) => {
const { flag } = this.state;
if(type==='1'){
return <RiskControlTable refresh={flag}/>;
}else if(type==='2'){
return <DangerControlTable refresh={flag} />;
}else if(type==='3'){
return <AlarmControlTable refresh={flag} />;
}
};
ondetails = (type) => {
if(type==='1'){
this.setState({
visible1: true
});
}else if(type==='2'){
this.setState({
visible2: true
});
}else{
this.setState({
visible3: true
});
}
};
render() {
const { visible1,visible2,visible3,flag } = this.state;
let type1="1";
let type2="2";
let type3="3";
const { children } = this.props;
let BasicMap = this.state.BasicMap;
return (
......@@ -84,6 +152,49 @@ class RootView extends Component {
{children}
{ this.state.loadAmap && <BasicMap />}
</div>
<CenterLevelLeft ondetails={ this.ondetails } />
<CenterLevelRight />
<Modal
header="风险管控情况"
visible={visible1}
className="risk-model-model99"
width={'50%'}
noDefaultFooter
content={ this.getContext(type1)}
onCancel={ this.cancel}
destroyOnClose={true}
/>
<Modal
header="隐患管控情况"
visible={visible2}
className="risk-model-model99"
width={'50%'}
noDefaultFooter
content={ this.getContext(type2)}
onCancel={ this.cancel }
destroyOnClose={true}
/>
<Modal
header="告警管控情况"
visible={visible3}
className="risk-model-model99"
width={'50%'}
noDefaultFooter
content={this.getContext(type3)}
onCancel={ this.cancel}
destroyOnClose={true}
/>
</div>
);
}
......
import React, { Component } from 'react';
import ReactEcharts from 'amos-viz/lib/echarts';
/**
* 告警管控
*/
export default class AlarmControl extends Component {
constructor(props) {
super(props);
this.state = {
seriesData:[],
hj:0,
gz:0,
xj:0
};
}
componentDidMount(){
let dates=[
{value:3, name:'火警告警'},
{value:31, name:'故障告警'},
{value:10, name:'巡检告警'},
];
if(dates){
this.setState({ seriesData: dates,hj:dates[0].value,gz:dates[1].value,xj:dates[2].value});
}
}
ondetails = (type) => {
this.props.ondetails("3");
};
//获取告警管控数据
getOptionsx = () => {
const { seriesData } = this.state;
return {
color:['rgba(243, 12, 12, 1)','rgba(219, 121, 23, 1)','rgba(209, 209, 52, 1)'],
series: [
{
name: "",
type: "pie",
radius: ["0%", "55%"],
center: ["50%", "50%"],
label: {
show: false
},
itemStyle: {
normal: {
color: 'rgba(24,219,159,0.1)'
},
},
hoverAnimation: false,
data: [100]
},
{
name:'检查点',
type:'pie',
radius: ['60%', '72%'],
center: ['50%', '50%'],
avoidLabelOverlap: false,
label: {
normal: {
show: true,
position: 'center',
formatter: function(param) {
let total = 0;
seriesData.forEach(e => {
total += e.value;
})
var view = '{val|' +total + '}\n{name|' + '告警总数' + '}';
return view;
},
textStyle: {
rich: {
name: {
fontSize: 12,
fontFamily:'Microsoft YaHei',
color:'rgba(255,255,255,1)',
},
val: {
fontSize: 20,
fontWeight: 'bold',
fontFamily:'Microsoft YaHei',
color: 'rgba(255,255,255,1)',
}
}
}
},
},
labelLine: {
normal: {
show: false
}
},
data:seriesData
}
]
};
}
render() {
const { hj,gz,xj } = this.state;
return (
<div className="AlarmControl">
<div className="AlarmControl_1">
<div className="AlarmControl_1_1"><span>告警管控情况</span></div>
</div>
<div className="AlarmControl_2">
<div className="AlarmControl_2_1" onClick={this.ondetails}> </div>
<div className="AlarmControl_2_2">
<div className="AlarmControl_2_2_1">
<div className="AlarmControl8">
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12"> 火警告警:</div>
<div className="AlarmControl2_13">{hj}</div>
</div>
<div className="AlarmControl2_2"></div>
</div>
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12">故障告警:</div>
<div className="AlarmControl2_13">{gz}</div>
</div>
<div className="AlarmControl2_3"></div>
</div>
<div className="AlarmControl2">
<div className="AlarmControl2_1" >
<div className="AlarmControl2_12">巡检告警:</div>
<div className="AlarmControl2_13">{xj}</div>
</div>
<div className="AlarmControl2_4"></div>
</div>
</div>
</div>
<div className="AlarmControl_2_2_2">
<ReactEcharts option = { this.getOptionsx() } />
</div>
</div>
</div>
</div>
);
}
}
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Form, Input, Select, Radio,StdForm ,Search,Icon,AmosAlert} from 'amos-framework';
import { TreeSelect, DatePicker } from 'amos-antd';
import moment from 'moment';
import InputTable from './InputTable';
import { SingleTable } from 'amos-pro';
const FormItem = Form.Item;
const tableList1 = [
{ name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' }
];
const tableList2 = [
{ name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
];
const data = [
{ id: 0, name: '失控' },
{ id: 1, name: '受控' }
];
const checkInputColumns = (_this) => {
return [
{
title: '换流站',
dataIndex: 'name',
key: 'name',
width: '10%',
query: true,
},
{
title: '火警告警',
dataIndex: 'sex',
key: 'sex',
width: '9%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="yi">{text}</p> ;
// }
},
{
title: '故障报警',
dataIndex: 'age',
key: 'age',
width: '10%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="er">{text}</p> ;
// }
},
{
title: '巡检告警',
dataIndex: 'address',
key: 'address',
width: '10%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="san">{text}</p> ;
// }
},
// {
// title: '四级',
// dataIndex: 'id',
// key: 'id',
// query: true,
// required: true, //是否是默认显示的
// width: '10%',
// render: (text,record) => {
// return <p className="si">{text}</p> ;
// }
// },
{
title: '小计',
dataIndex: 'age1',
key: 'age1',
query: true,
st: 'text', //搜索的类型
width: '10%'
}
];
};
/**
* 风险管控详情
*/
class AlarmControlTable extends Component {
constructor(props) {
super(props);
this.state = {
dataList: [], //表格数据集合
size: 'small', //表格大小
current: props.defaultPageConfig ? props.defaultPageConfig.current : 1, //当前页初始索引0
pageSize: props.defaultPageConfig ? props.defaultPageConfig.pageSize : 2, //当前页数据量
totals: 0, //所有数据总和
reload() {},
maxHeight: 650,
name:"",
startTime: moment().format('YYYY-MM-DD'),
endTime: moment().add(1, "years").format('YYYY-MM-DD'),
};
}
componentWillMount = () => {
this.setState({ dataList:tableList1});
this.setState({ totals:13});
};
componentDidMount = () => {
};
componentWillReceiveProps = (nextProps) => {
}
/**
* 获取表格刷新方法
*/
reload = r => {
this.setState(
{
reload: () => {
r();
}
},
r()
);
};
//搜索
onIconClick1 = () => {
this.setState({ dataList:tableList2});
this.setState({ totals:5});
}
componentWillReceiveProps = (nextProps) => {
debugger
if (nextProps.refresh){
this.setState({ name:"" });
this.setState({ startTime: moment().format('YYYY-MM-DD')});
this.setState({ endTime:moment().add(1, "years").format('YYYY-MM-DD') });
}
}
fillCheckInputTable = param => {
};
onChange1 = (e, value) => {
this.setState({ name:value });
}
onChange = (key, value) => {
debugger
if(key==='name'){
this.setState({ name:value });
}else if(key==='startTime'){
this.setState({ startTime: moment(value).format('YYYY-MM-DD')});
}else{
this.setState({ endTime: moment(value).format('YYYY-MM-DD') });
}
}
render() {
const { dataList,totals ,name,endTime,startTime} = this.state;
return (
<div className="souh" >
<div className="sou">
<div className="inputxq3">
<StdForm >
<Search value={name} className="input_item_select" icon={<Icon icon='search' onClick={ this.onIconClick1} />} onChange={ this.onChange1} />
</StdForm>
</div>
<div className="inputxq">
<StdForm label="日期">
<DatePicker
format="YYYY-MM-DD"
value={moment(startTime)}
className="input_item_select"
onChange={(value2) => { this.onChange('startTime', value2); }}
allowClear={false}
/>
</StdForm>
</div>
<div className="inputxq">
<StdForm label="至">
<DatePicker
format="YYYY-MM-DD"
value={moment(endTime)}
className="input_item_select"
onChange={(value3) => { this.onChange('endTime', value3); }}
allowClear={false}
/>
</StdForm>
</div>
</div>
<div className="inputxqtable">
<InputTable
columns={checkInputColumns(this)}
callBack={this.reload}
dataSource={dataList}
totals={totals}
getTableDataAction={this.fillCheckInputTable}
/>
</div>
</div>
);
}
}
export default AlarmControlTable;
import React, { Component } from 'react';
import echarts from 'echarts/lib/echarts';
/**
* 总体消防安全情况
*/
const option = {
xAxis: {
type: 'category',
boundaryGap: false,
data: ['03-15', '03-16', '03-17', '03-18', '03-19', '03-20'],
axisLabel: {
textStyle: {
color: 'rgba(255,255,255,1)',
fontSize: '14',
fontFamiliy: "SourceHanSansCN-Medium,SourceHanSansCN"
},
}
},
yAxis: {
type: 'value',
splitLine: { show: false },//去除网格线
axisLine: {
lineStyle: {
color: '#2A5D75',
}
},
// 改变y轴字体颜色和大小
axisLabel: {
textStyle: {
color: 'rgba(255,255,255,1)',
fontSize: '14',
fontFamiliy: "SourceHanSansCN-Medium,SourceHanSansCN"
},
},
},
series: [{
data: [0, 40, 80, 100, 85, 70, 85, 80],
type: 'line',
smooth: true, //这个是把线变成
itemStyle: {
normal: {
color: "#FF7400", //折线点的颜色
lineStyle: {
width: 3,//折线宽度
color: "#DDBF28"//折线颜色
}
}
},
areaStyle: {
normal: {
//颜色渐变函数 前四个参数分别表示四个位置依次为左、下、右、上
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#00ADFF'
}, {
offset: 0.5,
color: '#DDBF28'
}, {
offset: 1,
color: '#FF7400'
}])
}
}
}]
};
class AllSafety extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}
componentDidMount() {
}
render() {
return (
<div className="AllSafety">
<div className="all-safety-content">
<div className="all-safety-font">总体消防安全情况</div>
</div>
{/* <ReactEcharts option={this.getOptionsx(map)} className='echart-week' /> */}
</div>
);
}
}
AllSafety.propTypes = {
};
export default AllSafety;
import React, { Component } from 'react';
import imgStatic from './../../../consts/imgStatic';
import ReactEcharts from 'amos-viz/lib/echarts';
const centerLevelIcon = imgStatic.centerLevelIcon;
/**
* 隐患管控
*/
export default class DangerControl extends Component {
constructor(props) {
super(props);
this.state = {
seriesData: [],
yq:0,
sw:0,
zl:0,
jd:'0%'
};
}
componentDidMount(){
let dates={jd:'20%',
seriesData: [
{value:35, name:'逾期未治理'},
{value:10, name:'尚未治理'},
{value:4, name:'治理验收'},
]};
if(dates){
this.setState({ seriesData: dates.seriesData,jd:dates.jd,yq:dates.seriesData[0].value,sw:dates.seriesData[1].value,zl:dates.seriesData[2].value});
}
}
ondetails = (type) => {
this.props.ondetails("2");
};
getOptionsx = () => {
const { seriesData} = this.state;
return {
color:['rgba(254, 0, 0, 1)','rgba(255, 214, 0, 1)','rgba(0, 255, 238, 1)'],
series: [
{
name: "",
type: "pie",
radius: ["0%", "55%"],
center: ["50%", "50%"],
label: {
show: false
},
itemStyle: {
normal: {
color: 'rgba(24,219,159,0.1)'
},
},
hoverAnimation: false,
data: [100]
},
{
name:'检查点',
type:'pie',
radius: ['60%', '72%'],
center: ['50%', '50%'],
avoidLabelOverlap: false,
label: {
normal: {
show: true,
position: 'center',
formatter: function(param) {
let total = 0;
seriesData.forEach(e => {
total += e.value;
})
var view = '{val|' +total + '}\n{name|' + '隐患总数' + '}';
return view;
},
textStyle: {
rich: {
name: {
fontSize: 12,
fontFamily:'Microsoft YaHei',
color:'rgba(255,255,255,1)',
},
val: {
fontSize: 20,
fontWeight: 'bold',
fontFamily:'Microsoft YaHei',
color: 'rgba(255,255,255,1)',
}
}
}
},
},
labelLine: {
normal: {
show: false
}
},
data:seriesData
}
]
};
}
render() {
const { yq,sw,zl,jd} = this.state;
return (
<div className='DangerControl'>
<div className="DangerControl_1">
<div className="DangerControl_1_1"><span>隐患管控情况</span></div>
</div>
<div className="DangerControl_2">
<div className="DangerControl_2_1" onClick={this.ondetails}></div>
<div className="DangerControl_2_2">
<div className="DangerControl_2_2_1">
<div className="AlarmControl8">
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12"> 逾期未治理:</div>
<div className="AlarmControl2_13">{yq}</div>
</div>
<div className="AlarmControl2_2"></div>
</div>
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12">尚未治理:</div>
<div className="AlarmControl2_13">{sw}</div>
</div>
<div className="AlarmControl2_3"></div>
</div>
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12">治理验收:</div>
<div className="AlarmControl2_13">{zl}</div>
</div>
<div className="AlarmControl2_4"></div>
</div>
<div className="AlarmControl2">
<div className="AlarmControl2_1">
<div className="AlarmControl2_12">治理进度:</div>
<div className="AlarmControl2_13">{jd}</div>
</div>
<div className="AlarmControl2_6"></div>
</div>
</div>
</div>
<div className="DangerControl_2_2_2">
<ReactEcharts option = { this.getOptionsx() } />
</div>
</div>
</div>
</div>
);
}
}
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Form, Input, Select, Radio,StdForm ,Search,Icon,AmosAlert} from 'amos-framework';
import { TreeSelect, DatePicker } from 'amos-antd';
import moment from 'moment';
import InputTable from './InputTable';
import { SingleTable } from 'amos-pro';
const FormItem = Form.Item;
const Option = Select.Option;
const tableList1 = [
{ id: '1', name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' }
];
const tableList2 = [
{ id: '1', name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
];
const data = [
{ id: 1, name: '严重' },
{ id: 2, name: '一般' }
];
const checkInputColumns = (_this) => {
return [
{
title: '换流站',
dataIndex: 'name',
key: 'name',
width: '10%',
query: true,
},
{
title: '已治理',
dataIndex: 'sex',
key: 'sex',
width: '9%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="yi">{text}</p> ;
// }
},
{
title: '未治理',
dataIndex: 'age',
key: 'age',
width: '10%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="er">{text}</p> ;
// }
},
{
title: '逾期未治理',
dataIndex: 'address',
key: 'address',
width: '10%',
query: true,
required: true, //是否是默认显示的
// render: (text,record) => {
// return <p className="san">{text}</p> ;
// }
},
{
title: '治理验收',
dataIndex: 'id',
key: 'id',
query: true,
required: true, //是否是默认显示的
width: '10%',
// render: (text,record) => {
// return <p className="si">{text}</p> ;
// }
},
{
title: '小计',
dataIndex: 'age1',
key: 'age1',
query: true,
st: 'text', //搜索的类型
width: '10%'
}
];
};
/**
* 风险管控详情
*/
class DangerControlTable extends Component {
constructor(props) {
super(props);
this.state = {
dataList: [], //表格数据集合
size: 'small', //表格大小
current: props.defaultPageConfig ? props.defaultPageConfig.current : 1, //当前页初始索引0
pageSize: props.defaultPageConfig ? props.defaultPageConfig.pageSize : 2, //当前页数据量
totals: 0, //所有数据总和
reload() {},
maxHeight: 650,
name:"",
startTime: moment().format('YYYY-MM-DD'),
endTime: moment().add(1, "years").format('YYYY-MM-DD'),
grade:""
};
}
componentWillMount = () => {
this.setState({ dataList:tableList1});
this.setState({ totals:13});
};
componentDidMount = () => {
};
componentWillReceiveProps = (nextProps) => {
}
/**
* 获取表格刷新方法
*/
reload = r => {
this.setState(
{
reload: () => {
r();
}
},
r()
);
};
//搜索
onIconClick1 = () => {
this.setState({ dataList:tableList2});
this.setState({ totals:5});
}
componentWillReceiveProps = (nextProps) => {
debugger
if (nextProps.refresh){
this.setState({ name:"" });
this.setState({ startTime: moment().format('YYYY-MM-DD')});
this.setState({ endTime:moment().add(1, "years").format('YYYY-MM-DD') });
this.setState({ grade: "" });
}
}
fillCheckInputTable = param => {
};
onChange1 = (e, value) => {
this.setState({ name:value });
}
onChange = (key, value) => {
if(key==='name'){
this.setState({ name:value });
}else if(key==='startTime'){
this.setState({ startTime: moment(value).format('YYYY-MM-DD')});
}else if(key==='endTime'){
this.setState({ endTime: moment(value).format('YYYY-MM-DD') });
}else{
this.setState({ grade: value });
}
}
render() {
const { dataList,totals ,name,grade,endTime,startTime} = this.state;
return (
<div className="souh" >
<div className="sou">
<div className="inputxq1">
<StdForm >
<Search value={name} className="input_item_select" icon={<Icon icon='search' onClick={ this.onIconClick1} />} onChange={ this.onChange1} />
</StdForm>
</div>
<div className="inputxq">
<StdForm >
<Select
data={data}
value={grade}
renderOption={item => <Option value={item.id}>{item.name}</Option>}
onChange={(value4) => { this.onChange('grade', value4); }}
/>
</StdForm>
</div>
<div className="inputxq">
<StdForm label="日期">
<DatePicker
format="YYYY-MM-DD"
value={moment(startTime)}
className="input_item_select"
onChange={(value2) => { this.onChange('startTime', value2); }}
allowClear={false}
/>
</StdForm>
</div>
<div className="inputxq">
<StdForm label="至">
<DatePicker
value={moment(endTime)}
format="YYYY-MM-DD"
className="input_item_select"
onChange={(value3) => { this.onChange('endTime', value3); }}
allowClear={false}
/>
</StdForm>
</div>
</div>
<div className="inputxqtable">
<InputTable
columns={checkInputColumns(this)}
callBack={this.reload}
dataSource={dataList}
totals={totals}
getTableDataAction={this.fillCheckInputTable}
/>
</div>
</div>
);
}
}
export default DangerControlTable;
import React, { Component } from 'react';
/**
* 消防安全管理
*/
class FireSafety extends Component {
constructor(props) {
super(props);
this.state = {
data: []
};
}
componentDidMount() {
}
// handleData = (data) => {
// let map = new Map();
// if (data && data.length > 0) {
// data.map(item => {
// map.set(item.name, item.value);
// })
// }
// return map;
// }
render() {
return (
<div className="FireSafety">
<div className="fire-safety-content">
<div className="fire-safety-font">消防安全管理(累计)</div>
<div className="fire-safety-tongji">
<div className="content-tongji">
<div className="left-div">
<span className='titleIcon-yjya'></span>
</div>
<span className='fire-safety-wenzi'>应急预案</span>
<span className="right-font">100</span>
</div>
</div>
<div className="fire-safety-tongji">
<div className="content-tongji">
<div className="left-div">
<span className='titleIcon-aqpx' ></span>
</div>
<span className='fire-safety-wenzi'>安全培训</span>
<span className="right-font">123</span>
</div>
</div>
<div className="fire-safety-tongji">
<div className="content-tongji">
<div className="left-div">
<span className='titleIcon-rcxl' ></span>
</div>
<span className='fire-safety-wenzi'>日常训练</span>
<span className="right-font">100</span>
</div>
</div>
<div className="fire-safety-tongji">
<div className="content-tongji">
<div className="left-div">
<span className='titleIcon-qcby'></span>
</div>
<span className='fire-safety-wenzi'>器材保养</span>
<span className="right-font">14445</span>
</div>
</div>
<div className="fire-safety-tongji">
<div className="content-tongji">
<div className="left-div">
<span className='titleIcon-aqxj' ></span>
</div>
<span className='fire-safety-wenzi'>安全巡检</span>
<span className="right-font">800</span>
</div>
</div>
{/**分割线 */}
</div>
</div>
);
}
}
FireSafety.propTypes = {
};
export default FireSafety;
import React, { Component } from 'react';
import { Modal } from 'amos-framework';
import FireStrengthDetail from'./../firestrength/FireStrengthDetail';
/**
* 消防实力统计
*/
class FireStrength extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}
componentDidMount() {
}
onClick=()=>
{
alert(123);
}
render() {
return (
<div className="FireStrength">
<FireStrengthDetail />
<div className="strength-safety-content">
<div className="strength-safety-font">消防实力情况(累计) </div>
<div className="strength-safety-content-box">
<div style={{margin:'auto'}}>
<div className="item" style={{marginTop:"0%"}} onClick={this.onClick} >
<div className="item-content"> <div className="item-img-div"><img className="item-img"src='mods/components/centerLevel/assets/centerLevel/xfsl/zzxfd.png'/></div><span>驻站消防队:</span><span className="item-value">18</span> </div>
</div>
<div className="item">
<div className="item-content"> <div className="item-img-div"><img className="item-img"src='mods/components/centerLevel/assets/centerLevel/xfsl/zzxfy.png'/></div><span>驻站消防员:</span><span className="item-value">300</span> </div>
</div>
<div className="item">
<div className="item-content"> <div className="item-img-div"><img className="item-img"src='mods/components/centerLevel/assets/centerLevel/xfsl/znzs.png'/></div><span>站内值守:</span><span className="item-value">200</span> </div>
</div>
<div className="item">
<div className="item-content"> <div className="item-img-div"><img className="item-img"src='mods/components/centerLevel/assets/centerLevel/xfsl/xfc.png'/></div><span>消防车:</span><span className="item-value">50</span> </div>
</div>
<div className="item">
<div className="item-content"> <div className="item-img-div"> <img className="item-img"src='mods/components/centerLevel/assets/centerLevel/xfsl/xfqc.png'/></div><span>消防器材:</span><span className="item-value">20000</span> </div>
</div>
</div>
</div>
</div>
<Modal
width={1000}
height={1000}
content={<FireStrengthDetail/>}
visible={false}
></Modal>
</div>
);
}
}
FireStrength.propTypes = {
};
export default FireStrength;
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Table } from 'amos-antd';
/**
* 巡检记录详情
*/
class InputTable extends Component {
constructor(props) {
super(props);
this.pageConfig = {
current: props.outterPageConfig ? props.outterPageConfig.current : 1,
pageSize: props.outterPageConfig ? props.outterPageConfig.pageSize : 10
};
this.state = {
loading: false,//页面是否加载中,默认false
dataList: [],//表格数据集合
size: 'middle',//表格大小
current: props.defaultPageConfig ? props.defaultPageConfig.current : 1,//当前页初始索引0
pageSize: props.defaultPageConfig ? props.defaultPageConfig.pageSize : 10,//当前页数据量
totals: 1,//所有数据总和
maxHeight: 250
};
}
/**
* 初始获取表格数据
*/
componentDidMount() {
this.props.callBack(this.reload);
this.getHeightOffset();
window.addEventListener('resize', this.onWindowResize);
}
componentWillUnmount() {
window.removeEventListener('resize', this.onWindowResize);
}
onWindowResize = (e) => {
this.getHeightOffset();
}
/**
* 设置页面数据大小事件
*/
onSizeChange = (current, pageSize) => {
let { setPageConfig } = this.props;
setPageConfig && setPageConfig({ current, pageSize });
this.setState({ current, pageSize },this.reload);
}
/**
* 设置当前页事件
*/
onPaginationChange = (current) => {
let { setPageConfig } = this.props;
setPageConfig && setPageConfig({ current });
this.setState({ current },this.reload);
}
setPageConfig = ({ pageSize,current }) => {
if (pageSize !== undefined) {
this.pageConfig.pageSize = pageSize;
}
if (current !== undefined) {
this.pageConfig.current = current;
}
}
/**
* 获取表格数据(刷新)
*/
reload = () => {
let { current,pageSize } = this.state;
// this.props.getTableDataAction({ current: current - 1, pageSize });
// this.getHeightOffset();
}
showTotal = (total) => {
return `共 ${total} 条`;
}
generateRowkey = (record, index) => {
return record.id ? record.id : index + (this.state.current - 1) * this.state.pageSize;
}
getHeightOffset = () => {
let { getPanelHeight } = this.props;
let height = getPanelHeight === undefined ? '850' : getPanelHeight();
height && this.setState({ maxHeight: height });
}
render() {
let { size, loading, maxHeight } = this.state;
let { columns, dataSource, totals, pagination } = this.props;
let defaultPageConfig = this.pageConfig;
let rowKey = this.generateRowkey;
let _tempPagination = pagination === false ? false : pagination || {
size: 'small',
total: totals,
current: this.state.current,
pageSize: this.state.pageSize,
onShowSizeChange: this.onSizeChange,
onChange: this.onPaginationChange,
showSizeChanger: true,
showTotal: this.showTotal
};
let bordered = true;
// 当为true 或 undefined时则分页
let _pagination = _tempPagination;
return (
<Table
setPageConfig={this.setPageConfig}
loading={loading}
rowKey={rowKey}
columns={columns}
dataSource={dataSource}
bordered={bordered}
pagination={_pagination}
scroll={{ y: maxHeight }}
size={size}
defaultPageConfig={defaultPageConfig}
/>
);
}
}
InputTable.propTypes = {
columns: PropTypes.array,
dataSource: PropTypes.array,
bordered: PropTypes.bool,
pagination: PropTypes.bool,
rowKey: PropTypes.number,
totals: PropTypes.number,
setPageConfig: PropTypes.func, //把分页参数给父类
getTableDataAction: PropTypes.func,
getPanelHeight: PropTypes.func,
callBack: PropTypes.fuc
};
export default InputTable;
import React, { Component } from 'react';
import { RiskControlDetailAction } from './../../../services/centerLevelService';
import moment from 'moment';
const format = 'YYYY-MM-dd';
export default class ModelContent extends Component {
constructor(props) {
super(props);
this.state = {
alarmData: []
};
}
componentDidMount(){
let { type } = this.props;
this.RiskControlDetail(type);
}
RiskControlDetail = (type) => {
RiskControlDetailAction(type).then(data => {
this.setState({
alarmData: data
});
});
}
/**
* 获取标题
*
* @memberof ModelContent
*/
getTitle = (v) => {
const titleParams = {
1: '一级风险点', //一级风险点
2: '二级风险点', //二级风险点
3: '三级风险点', //三级风险点
4: '四级风险点' //四级风险点
};
return titleParams[v];
}
formatData = (str) => {
let date = str.split(' ')[0];
return date;
}
renderContent = (content) =>{
return (
<div className='rows'>
{(content || []).map(itemA => {
return (
<div className='row'>
<span>{itemA.name}</span>
<span className='date'>{this.formatData(itemA.changeDate)}</span>
</div>
);
})}
</div>
);
}
render() {
let { alarmData } = this.state;
let { type } = this.props;
return (
<div className='model-content'>
{(alarmData || []).map(item => {
return (
<div className='content-div'>
<div className='title'>
<span>|</span>
<span className='next-title'>{ type === 'risk' ? this.getTitle(item.typeCode) : item.typeName }</span>
</div>
{this.renderContent(item.content)}
</div>
);
})}
</div>
);
}
}
import React, { Component } from 'react';
import ReactEcharts from 'amos-viz/lib/echarts';
/**
* 风险管控
*/
export default class RiskControl extends Component {
constructor(props) {
super(props);
this.state = {
seriesData:[],
shikong:0,
shoukongx:'0%',
shikongx:'0%',
shoukong:0,
yiji:0,
erji:0,
sanji:0,
siji:0
};
}
componentDidMount() {
let dates={
seriesData:[
{value:3, name:'受控'},
{value:7, name:'失控'},
],
yiji:10,
erji:20,
sanji:30,
siji:40,
shoukongx:'30%',
shikongx:'70%'
};
if(dates){
this.setState({ seriesData: dates.seriesData,
yiji:dates.yiji,
erji:dates.erji,
sanji:dates.sanji,
siji:dates.siji,
shoukongx:dates.shoukongx,
shikongx:dates.shikongx,
shoukong:dates.seriesData[0].value,shikong:dates.seriesData[1].value});
}
}
ondetails = (type) => {
this.props.ondetails("1");
};
getOptionsx = () => {
const { seriesData } = this.state;
return {
color:['rgba(0, 202, 206, 1)','rgba(254, 0, 0, 1)'],
series: [
{
name: "",
type: "pie",
radius: ["0%", "65%"],
center: ["50%", "50%"],
label: {
show: false
},
itemStyle: {
normal: {
color: 'rgba(24,219,159,0.1)'
},
},
hoverAnimation: false,
data: [100]
},
{
name:'检查点',
type:'pie',
radius: ['70%', '85%'],
center: ['50%', '50%'],
avoidLabelOverlap: false,
label: {
normal: {
show: true,
position: 'center',
formatter: function(param) {
let total = 0;
seriesData.forEach(e => {
total += e.value;
})
var view = '{val|' +total + '}\n{name|' + '风险总数' + '}';
return view;
},
textStyle: {
rich: {
name: {
fontSize: 12,
fontFamily:'Microsoft YaHei',
color:'rgba(255,255,255,1)',
},
val: {
fontSize: 20,
fontWeight: 'bold',
fontFamily:'Microsoft YaHei',
color: 'rgba(0,255,238,1)',
}
}
}
},
},
labelLine: {
normal: {
show: false
}
},
data:seriesData
}
]
};
}
render() {
const { shikong,shoukong,shikongx,shoukongx,yiji,erji,sanji,siji} = this.state;
return (
<div className="RiskControl">
<div className="RiskControl_1">
<div className="RiskControl_1_1"><span>风险管控情况</span></div>
</div>
<div className="RiskControl_2">
<div className="RiskControl_2_1" onClick={this.ondetails}></div>
<div className="RiskControl_2_2">
<div className="RiskControl_2_2_1">
<div className="RiskControl_2_2_19">
<div className="RiskControl_2_2_191 shi">{shikongx}</div>
<div className="RiskControl_2_2_192 shi1">失控:{shikong}</div>
</div>
<div className="RiskControl_2_2_19">
<div className="RiskControl_2_2_191 shou">{shoukongx}</div>
<div className="RiskControl_2_2_192 shou1">受控:{shoukong}</div>
</div>
</div>
<div className="RiskControl_2_2_2">
<ReactEcharts option = { this.getOptionsx() } />
</div>
</div>
</div>
<div className="RiskControl_3">
<div className="RiskControl_3_1">
<div className="RiskControl_3_1_1">
<div className="RiskControl_3_1_8">二级:</div>
<div className="RiskControl_3_1_8">{erji}</div>
</div>
<div className="RiskControl_3_1_2"></div>
</div>
<div className="RiskControl_3_1">
<div className="RiskControl_3_1_17">
<div className="RiskControl_3_1_8"> 一级:</div>
<div className="RiskControl_3_1_8">{yiji}</div>
</div>
<div className="RiskControl_3_1_3"></div>
</div>
<div className="RiskControl_3_1">
<div className="RiskControl_3_1_1">
<div className="RiskControl_3_1_8">四级:</div>
<div className="RiskControl_3_1_8">{siji}</div>
</div>
<div className="RiskControl_3_1_4"></div>
</div>
<div className="RiskControl_3_1">
<div className="RiskControl_3_1_17">
<div className="RiskControl_3_1_8">三级:</div>
<div className="RiskControl_3_1_8">{sanji}</div>
</div>
<div className="RiskControl_3_1_5"></div>
</div>
</div>
</div>
);
}
}
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Form, Input, Select, Radio,StdForm ,Search,Icon,AmosAlert} from 'amos-framework';
import { TreeSelect, DatePicker } from 'amos-antd';
import moment from 'moment';
import InputTable from './InputTable';
import { SingleTable } from 'amos-pro';
const FormItem = Form.Item;
const Option = Select.Option;
const tableList1 = [
{ id: '1', name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站', sex: '10', age: 10,age1: 30, address: '10' }
];
const tableList2 = [
{ id: '1', name: '复龙换流站1', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站2', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站3', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站4', sex: '10', age: 10,age1: 30, address: '10' } ,
{ id: '1', name: '复龙换流站5', sex: '10', age: 10,age1: 30, address: '10' } ,
];
const data = [
{ id: "1", name: '失控' },
{ id: "2", name: '受控' }
];
const checkInputColumns = (_this) => {
return [
{
title: '换流站',
dataIndex: 'name',
key: 'name',
width: '10%',
query: true,
},
{
title: '一级',
dataIndex: 'sex',
key: 'sex',
width: '9%',
query: true,
required: true, //是否是默认显示的
render: (text,record) => {
return <p className="yi">{text}</p> ;
}
},
{
title: '二级',
dataIndex: 'age',
key: 'age',
width: '10%',
query: true,
required: true, //是否是默认显示的
render: (text,record) => {
return <p className="er">{text}</p> ;
}
},
{
title: '三级',
dataIndex: 'address',
key: 'address',
width: '10%',
query: true,
required: true, //是否是默认显示的
render: (text,record) => {
return <p className="san">{text}</p> ;
}
},
{
title: '四级',
dataIndex: 'id',
key: 'id',
query: true,
required: true, //是否是默认显示的
width: '10%',
render: (text,record) => {
return <p className="si">{text}</p> ;
}
},
{
title: '小计',
dataIndex: 'age1',
key: 'age1',
query: true,
st: 'text', //搜索的类型
width: '10%'
}
];
};
/**
* 风险管控详情
*/
class RiskControlTable extends Component {
constructor(props) {
super(props);
this.state = {
dataList: [], //表格数据集合
size: 'small', //表格大小
current: props.defaultPageConfig ? props.defaultPageConfig.current : 1, //当前页初始索引0
pageSize: props.defaultPageConfig ? props.defaultPageConfig.pageSize : 2, //当前页数据量
totals: 0, //所有数据总和
reload() {},
maxHeight: 650,
name:"",
startTime: moment().format('YYYY-MM-DD'),
endTime: moment().add(1, "years").format('YYYY-MM-DD'),
grade:""
};
}
componentWillMount = () => {
this.setState({ dataList:tableList1});
this.setState({ totals:13});
};
componentDidMount = () => {
};
componentWillReceiveProps = (nextProps) => {
debugger
if (nextProps.refresh){
this.setState({ name:"" });
this.setState({ startTime: moment().format('YYYY-MM-DD')});
this.setState({ endTime:moment().add(1, "years").format('YYYY-MM-DD') });
this.setState({ grade: "" });
}
}
/**
* 获取表格刷新方法
*/
reload = r => {
this.setState(
{
reload: () => {
r();
}
},
r()
);
};
//搜索
onIconClick1 = () => {
this.setState({ dataList:tableList2});
this.setState({ totals:5});
}
fillCheckInputTable = param => {
};
onChange1 = (e, value) => {
debugger
this.setState({ name:value });
}
onChange = (key, value) => {
debugger
if(key==='startTime'){
this.setState({ startTime: moment(value).format('YYYY-MM-DD')});
}else if(key==='endTime'){
this.setState({ endTime: moment(value).format('YYYY-MM-DD') });
}else{
this.setState({ grade: value });
}
}
// renderEndTime(type) {
// debugger
// const { endTime,startTime} = this.state;
// if(type==="1"&&startTime===""){
// return <DatePicker
// format="YYYY-MM-DD"
// className="input_item_select"
// onChange={ e => this.onChange('startTime', e) }
// /> ;
// }else if(type==="1"&&startTime!=""){
// return <DatePicker
// format="YYYY-MM-DD"
// value={moment(startTime)}
// className="input_item_select"
// onChange={ e => this.onChange('startTime', e) }
// /> ;
// }
// if(type==="2"&&endTime===""){
// return <DatePicker
// format="YYYY-MM-DD"
// className="input_item_select"
// onChange={ e => this.onChange('endTime', e) }
// /> ;
// }else if(type==="2"&&endTime!=""){
// return ;
// }
// }
render() {
const { dataList,totals ,name,grade,endTime,startTime} = this.state;
debugger
return (
<div className="souh" >
<div className="sou">
<div className="inputxq1">
<StdForm >
<Search value={name} className="input_item_select" icon={<Icon icon='search' onClick={ this.onIconClick1} />} onChange={ this.onChange1} />
</StdForm>
</div>
<div className="inputxq">
<StdForm >
<Select
data={data}
value={grade}
renderOption={item => <Option value={item.id}>{item.name}</Option>}
onChange={(value4) => { this.onChange('grade', value4); }}
/>
</StdForm>
</div>
<div className="inputxq">
<StdForm label="日期">
<DatePicker
format="YYYY-MM-DD"
className="input_item_select"
value={moment(startTime)}
onChange={ e => this.onChange('startTime', e) }
allowClear={false}
/>
</StdForm>
</div>
<div className="inputxq">
<StdForm label="至">
<DatePicker
value={moment(endTime)}
format="YYYY-MM-DD"
className="input_item_select"
onChange={ e => this.onChange('endTime', e)}
allowClear={false}
/>
</StdForm>
</div>
</div>
<div className="inputxqtable">
<InputTable
columns={checkInputColumns(this)}
callBack={this.reload}
dataSource={dataList}
totals={totals}
getTableDataAction={this.fillCheckInputTable}
/>
</div>
</div>
);
}
}
export default RiskControlTable;
/**
* 告警控制
*/
export const warnController = [
{ key: 'fire', icon: 'model_fire', type: 'fire', label: '火灾告警' },
{ key: 'risk', icon: 'model_risk', type: 'risk', label: '风险异常' },
{ key: 'check', icon: 'model_patrol', type: 'check', label: '巡检异常' }
];
/**
* 安全执行控制
*/
export const warnTypes = [
{ key: 'warn', icon: 'select_warn', unIcon: 'unselect_warn', type: 'warn', label: '巡检异常' },
{ key: 'fire', icon: 'select_fire', unIcon: 'unselect_fire', type: 'fire', label: '火灾告警' },
{ key: 'risk', icon: 'select_risk', unIcon: 'unselect_risk', type: 'risk', label: '风险异常' },
{ key: 'check', icon: 'select_check', unIcon: 'unselect_check', type: 'check', label: '巡检异常' }
];
import React, { Component } from 'react';
import AlarmControl from './AlarmControl';
import DangerControl from './DangerControl';
import RiskControl from './RiskControl';
import AllSafety from './AllSafety';
import FireSafety from './FireSafety';
import FireStrength from './FireStrength';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../../../consts/wsUrlConsts';
import { Modal, Select } from 'amos-framework';
/**
* 中心级2侧模块
*/
export default class Statistical extends Component {
constructor(props) {
super(props);
this.state = {
visible: true
};
}
handleData = (data = {}) => {
console.log('ws data:', data);
data = JSON.parse(JSON.stringify(data));
console.log(data);
let refreshType = data.refreshType;
let content = data.content;
switch (refreshType){
case 'today_safety_index':
console.log('今日安全指数刷新~~~~~~~~~~~~~~~~~~~~');
this.RiskControl.getRiskControl();
break;
case 'fire_safety':
console.log('消防安全执行刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyExecute.DangerControl();
break;
case 'monitor_data':
console.log('设备状态检测数据刷新~~~~~~~~~~~~~~~~~~~~');
this.equipStatus.AlarmControl();
break;
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'week_safety_index':
console.log('一周安全指数趋势刷新~~~~~~~~~~~~~~~~~~~~');
this.AllSafety.AllSafetyData();
break;
case 'today_check_status':
console.log('今日巡检情况刷新~~~~~~~~~~~~~~~~~~~~');
this.FireSafety.FireSafetyData();
break;
case 'today_duty':
this.FireStrength.FireStrengthData();
console.log('今日值班刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页刷新~~~~~~~~~~~~~~~~~~~~');
this.RiskControl.getRiskControl();
this.safetyExecute.DangerControl();
this.equipStatus.AlarmControl();
this.AllSafety.AllSafetyData();
this.FireSafety.FireSafetyData();
this.FireStrength.FireStrengthData();
break;
default:
console.log(refreshType,':类型不支持');
}
}
cancel = () => {
this.setState({
visible: false
});
}
render() {
const { visible } = this.state;
const wsURL = completeToken(SysWsURL.viewIndexws);
return (
<div className="statistical">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
<div className="statistical-left">
<RiskControl ref={node => this.RiskControl = node} />
<DangerControl ref={node => this.safetyExecute = node} />
<AlarmControl ref={node => this.equipStatus = node} />
</div>
<div className="statistical-right">
<AllSafety ref={node => this.AllSafety = node} />
<FireSafety ref={node => this.FireSafety = node} />
<FireStrength ref={node => this.FireStrength = node} />
</div>
</div>
);
}
}
import React, { Component } from 'react';
import AlarmControl from './AlarmControl';
import DangerControl from './DangerControl';
import RiskControl from './RiskControl';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../../../consts/wsUrlConsts';
/**
* 全景监控统计
*/
export default class StatisticalLeft extends Component {
constructor(props) {
super(props);
this.state = {
};
}
ondetails = (type) => {
this.props.ondetails(type);
};
componentWillMount = () => {
};
componentWillReceiveProps = (nextProps) => {
}
handleData = (data = {}) => {
console.log('ws data:', data);
data = JSON.parse(JSON.stringify(data));
console.log(data);
let refreshType = data.refreshType;
let content = data.content;
switch (refreshType){
case 'today_safety_index':
console.log('今日安全指数刷新~~~~~~~~~~~~~~~~~~~~');
this.RiskControl.getRiskControl();
break;
case 'fire_safety':
console.log('消防安全执行刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyExecute.DangerControl();
break;
case 'monitor_data':
console.log('设备状态检测数据刷新~~~~~~~~~~~~~~~~~~~~');
this.equipStatus.AlarmControl();
break;
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页左侧刷新~~~~~~~~~~~~~~~~~~~~');
this.RiskControl.getRiskControl();
this.safetyExecute.DangerControl();
this.equipStatus.AlarmControl();
break;
default:
console.log(refreshType,':类型不支持');
}
}
render() {
const wsURL = completeToken(SysWsURL.viewIndexws);
const { flag } = this.state;
return (
<div className="statistical-left">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
<RiskControl ondetails={this.ondetails} />
<DangerControl ondetails={this.ondetails} />
<AlarmControl ondetails={this.ondetails} />
</div>
);
}
}
import React, { Component } from 'react';
import AllSafety from './AllSafety';
import FireSafety from './FireSafety';
import FireStrength from './FireStrength';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from '../../../consts/wsUrlConsts';
/**
* 全景监控统计
*/
export default class StatisticalRight extends Component {
handleData = (data = {}) => {
console.log('ws data:', data);
data = JSON.parse(JSON.stringify(data));
console.log(data);
let refreshType = data.refreshType;
let content = data.content;
switch (refreshType){
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'week_safety_index':
console.log('一周安全指数趋势刷新~~~~~~~~~~~~~~~~~~~~');
this.AllSafety.AllSafetyData();
break;
case 'today_check_status':
console.log('今日巡检情况刷新~~~~~~~~~~~~~~~~~~~~');
this.FireSafety.FireSafetyData();
break;
case 'today_duty':
this.FireStrength.FireStrengthData();
console.log('今日值班刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页右侧刷新~~~~~~~~~~~~~~~~~~~~');
this.AllSafety.AllSafetyData();
this.FireSafety.FireSafetyData();
this.FireStrength.FireStrengthData();
break;
default:
console.log(refreshType,':类型不支持');
}
}
render() {
const wsURL = completeToken(SysWsURL.viewIndexws);
return (
<div className="statistical-right">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
<AllSafety ref={node => this.AllSafety = node} />
<FireSafety ref={node => this.FireSafety = node} />
<FireStrength ref={node => this.FireStrength = node} />
</div>
);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment