Commit 4eb27685 authored by 单奇雲's avatar 单奇雲

冲突

parents 51236b5c 9c1f38af
...@@ -11,22 +11,22 @@ ...@@ -11,22 +11,22 @@
objModelURI: '/a3dres', objModelURI: '/a3dres',
// 根url // 根url
// baseURI: 'http://172.16.11.30:9008/', // baseURI: 'http://172.16.11.30:9008/',
baseURI: 'http://172.16.3.122:8083/', baseURI: 'http://172.16.3.63:8083/',
// convertorURI: 'http://172.16.3.122:8083/', // convertorURI: 'http://172.16.3.122:8083/',
convertorURI: 'http://172.16.3.122:8083/', convertorURI: 'http://172.16.3.63:8083/',
patrolURI: 'http://172.16.3.122:8082/', patrolURI: 'http://172.16.3.122:8082/',
rulesConfigURI: 'http://172.16.10.91:8080/', rulesConfigURI: 'http://172.16.10.91:8080/',
// plugin URI // plugin URI
pluginURI: 'http://172.16.11.40:8099/', pluginURI: 'http://172.16.11.40:8099/',
studioURI: 'http://172.16.11.40:8099/', studioURI: 'http://172.16.11.40:8099/'
}, },
// websocket 地址 // websocket 地址
wsURI: { wsURI: {
pluginURI: 'ws://172.16.11.40:10600/', pluginURI: 'ws://172.16.11.40:10600/',
studioURI: 'ws://172.16.11.40:10600/', studioURI: 'ws://172.16.11.40:10600/',
convertorView3dURI: 'ws://172.16.10.91:8080/',//换流站websocket
securityBaseURI: 'ws://172.16.10.91:10600/', securityBaseURI: 'ws://172.16.10.91:10600/',
baseURI: 'ws://172.16.10.91:10600/' convertorView3dURI: 'ws://172.16.10.91:10600/',
ruleURI: 'ws://172.16.10.91:8080/'
}, },
// 外部链接地址 // 外部链接地址
outterURI: { outterURI: {
......
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
const Unknown = props => {
const { className } = props;
const cls = classNames('sketch-component-unknown', className);
return (
<div className={cls}>未知控件</div>
);
};
Unknown.propTypes = {
className: PropTypes.string
};
export default Unknown;
import { commonRegister } from 'amos-viz/lib/widgets'; import { IModularHub, INNER_MODULAR_TYPE } from 'amos-viz/lib/widgets';
import { getSketchCompnents } from './../mods'; import Unknown from './Unknown';
import * as mods from './../mods';
// 测试发布
// import * as mods from './../lib/graphmod';
const innerModularType = commonRegister.innerModularType; /**
* hybrid 创建自己独立的 modular
* 注册 所有的 mod
*/
export const hybridModular = new IModularHub();
// 注册未知组件
hybridModular.registerSketchComponent('unknown', Unknown);
Object.keys(mods).forEach(k => {
// 需要排除 default
if (k !== 'default'){
hybridModular.registerSketchComponent(k, mods[k]);
}
});
export function getComponentKeyList(){ export function getComponentKeyList(){
return Object.keys(commonRegister.getModularsByType(innerModularType.sketchComponent)); const sc = hybridModular.getModularsByType(INNER_MODULAR_TYPE.sketchComponent);
// const sc = hybridModular.getObjModularsByType(INNER_MODULAR_TYPE.sketchComponent);
return [...sc.keys()].map(item => item.replace(`${INNER_MODULAR_TYPE.sketchComponen}/`, ''));
} }
export default getSketchCompnents; export default function getSketchCompnents(alias){
return hybridModular.getModularClass(INNER_MODULAR_TYPE.sketchComponent, alias, Unknown);
}
...@@ -18,7 +18,7 @@ export const FscSerUrl = { ...@@ -18,7 +18,7 @@ export const FscSerUrl = {
//******************************************************************************* //*******************************************************************************
// 3D视图 // 3D视图
//******************************************************************************* //*******************************************************************************
view3dInitUrl: completePrefix(view3dURI, 'api/view3d/init3dViewNode?type={type}'), // 初始化三维视图 get view3dInitUrl: completePrefix(view3dURI, 'api/view3d/init3dViewNode?type={type}&riskSourceId={riskSourceId}'), // 初始化三维视图 get
view3dInitLinkUrl: completePrefix(view3dURI, 'view3d/initViewLink'), // 初始化三维视图 获取link get view3dInitLinkUrl: completePrefix(view3dURI, 'view3d/initViewLink'), // 初始化三维视图 获取link get
searchRegionListUrl: completePrefix(patrolURI, 'api/group/queryDept'), //右侧菜单-检索-区域集合 searchRegionListUrl: completePrefix(patrolURI, 'api/group/queryDept'), //右侧菜单-检索-区域集合
searchViewUrl: completePrefix(view3dURI, 'api/view3d/retrieve/all?inputText={inputText}&dataLevel={dataLevel}&orgCode={orgCode}&nodeState={nodeState}&type={type}&current={page}&pageSize={pageSize}&routeName={routeName}&protectObjName={protectObjName}'), // 右侧菜单-检索 searchViewUrl: completePrefix(view3dURI, 'api/view3d/retrieve/all?inputText={inputText}&dataLevel={dataLevel}&orgCode={orgCode}&nodeState={nodeState}&type={type}&current={page}&pageSize={pageSize}&routeName={routeName}&protectObjName={protectObjName}'), // 右侧菜单-检索
......
...@@ -6,10 +6,9 @@ const lsTool = Store.lsTool; ...@@ -6,10 +6,9 @@ const lsTool = Store.lsTool;
const completePrefix = endConf.completePrefix; const completePrefix = endConf.completePrefix;
const AmosConfig = endConf.AmosConfig; const AmosConfig = endConf.AmosConfig;
const ConvertorView3dURI = AmosConfig.wsURI.convertorView3dURI;
const baseURI = AmosConfig.wsURI.baseURI; const convertorView3dURI = AmosConfig.wsURI.convertorView3dURI;
const view3dURI = AmosConfig.wsURI.view3dURI; const ruleURI = AmosConfig.wsURI.ruleURI;
const getToken = () => { const getToken = () => {
return lsTool.read(SysConsts.token); return lsTool.read(SysConsts.token);
...@@ -17,13 +16,8 @@ const getToken = () => { ...@@ -17,13 +16,8 @@ const getToken = () => {
export default { export default {
convertorRulews: completePrefix(ConvertorView3dURI, 'rule.ws?token={token}'), rulews: completePrefix(ruleURI, 'rule.ws?token={token}'),
convertorView3dws: completePrefix(ConvertorView3dURI, 'view3d.ws?token={token}'), convertorView3d: completePrefix(convertorView3dURI, '3dViewMessage')
rulews: completePrefix(view3dURI, 'rule.ws?token={token}'),
view3dws: completePrefix(view3dURI, 'view3d.ws?token={token}'),
viewIndexws: completePrefix(baseURI, '3dViewMessage')
}; };
export const completeToken = (url) => { export const completeToken = (url) => {
...@@ -31,7 +25,3 @@ export const completeToken = (url) => { ...@@ -31,7 +25,3 @@ export const completeToken = (url) => {
const result = formatUrl(url, { token }); const result = formatUrl(url, { token });
return result; return result;
}; };
...@@ -25,8 +25,12 @@ export const getObjFromNet = (url, callback) => { ...@@ -25,8 +25,12 @@ export const getObjFromNet = (url, callback) => {
* 获取各个类型的marker * 获取各个类型的marker
* @param {string} type * @param {string} type
*/ */
export const initView3DAction = (type) => { export const initView3DAction = (type,riskSourceId) => {
const url = formatUrl(FscSerUrl.view3dInitUrl, { type }); if (!riskSourceId) {
riskSourceId="";
}
const url = formatUrl(FscSerUrl.view3dInitUrl, {type,riskSourceId});
return commonGet(url); return commonGet(url);
}; };
...@@ -166,8 +170,8 @@ export const queryContingencyWater = () => { ...@@ -166,8 +170,8 @@ export const queryContingencyWater = () => {
/** /**
* 颗粒/重点设备 模式点查询 * 颗粒/重点设备 模式点查询
* @param {模式} model * @param {模式} model
*/ */
export const pointModelistAction = ( model ) => { export const pointModelistAction = ( model ) => {
return commonGet(formatUrl(FasSerUrl.pointModelistUrl, { model })); return commonGet(formatUrl(FasSerUrl.pointModelistUrl, { model }));
}; };
\ No newline at end of file
.action-pane-data{ .action-pane-data{
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
position: absolute; .action-list {
left: 45% !important;
top: 90% !important;
.action-list{
height: 40px; height: 40px;
padding: 0 1rem; padding: 0 1rem;
border-radius: 6px; border-radius: 6px;
...@@ -49,4 +49,4 @@ ...@@ -49,4 +49,4 @@
background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%); background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%);
} }
} }
} }
\ No newline at end of file
...@@ -20,17 +20,19 @@ ...@@ -20,17 +20,19 @@
.common-footer { .common-footer {
text-align: center; text-align: center;
background: transparent;//$core-color; background: transparent;//$core-color;
border: 1px solid $core-border-color; // border: 1px solid $core-border-color;
border-radius: $core-border-radius; // border-radius: $core-border-radius;
.common-footer-item { .common-footer-item {
display: inline-block; display: inline-block;
width: $dialog-footer-width; //width: $dialog-footer-width;
width: 100px;
height: $dialog-footer-height; height: $dialog-footer-height;
overflow: hidden; overflow: hidden;
cursor: pointer; cursor: pointer;
background: $dialog-footer-item-bg; padding-top: 10px;
border: 1px solid $core-border-color; background: transparent;
//border: 1px solid $core-border-color;
border-top: 0; border-top: 0;
box-sizing: border-box; box-sizing: border-box;
...@@ -84,21 +86,32 @@ ...@@ -84,21 +86,32 @@
.dialog-body-min { .dialog-body-min {
position: relative; position: relative;
width: $dialog-min-width; // width: $dialog-min-width;
height: $dialog-height; // height: $dialog-height;
height:497px;
width: 866px !important;
min-width: $dialog-min-width; min-width: $dialog-min-width;
color: black; //color: black;
background: $content-color; // background: $content-color;
border: 1px solid $core-border-color; // border: 1px solid $core-border-color;
border-radius: $core-border-radius; // border-radius: $core-border-radius;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); // box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
box-sizing: border-box; // box-sizing: border-box;
background-image: url('/mods/components/3dviewConvertor/assets/convertor/3dview/dialogbg.png');
background-color: rgba(25, 86, 147, 0.5);
.body-min-header { .body-min-header {
position: relative; position: relative;
height: 2.5rem; height: 2.5rem;
margin-left: 1rem; margin-left: 1rem;
.dialog-min-title{
position: absolute;
line-height: 2.5rem;
padding-top: 1rem;
left: 9px;
font-size: 18px;
color: #fff;
}
.common-close { .common-close {
position: absolute; position: absolute;
right: 0; right: 0;
...@@ -112,6 +125,7 @@ ...@@ -112,6 +125,7 @@
} }
.body-min-content { .body-min-content {
margin-top: 2.5rem;
height: calc(35% - 50px - 2.5rem); height: calc(35% - 50px - 2.5rem);
margin-right: 1rem; margin-right: 1rem;
margin-left: 1rem; margin-left: 1rem;
...@@ -122,6 +136,7 @@ ...@@ -122,6 +136,7 @@
margin-right: 1rem; margin-right: 1rem;
margin-left: 1rem; margin-left: 1rem;
.ant-table-title { .ant-table-title {
display: none; display: none;
} }
...@@ -129,9 +144,11 @@ ...@@ -129,9 +144,11 @@
.ant-table-thead { .ant-table-thead {
tr { tr {
th { th {
color: $biz-table-font-color; // color: $biz-table-font-color;
background: $biz-table-title-color;//rgba(40, 40, 40, 1); // background: $biz-table-title-color;//rgba(40, 40, 40, 1);
border-color: $core-border-color; // border-color: $core-border-color;
color:#fff;
background-color: transparent;
} }
} }
} }
...@@ -139,18 +156,23 @@ ...@@ -139,18 +156,23 @@
.ant-table-body { .ant-table-body {
tr { tr {
td { td {
color: $biz-table-font-color;//#ffffff; // color: $biz-table-font-color;//#ffffff;
background: $content-color;//rgba(51, 51, 51, 1); // background: $content-color;//rgba(51, 51, 51, 1);
border-color: $core-border-color;//#252525; // border-color: $core-border-color;//#252525;
color:#fff;
background-color: transparent;
} }
} }
max-height: 273px !important; max-height: 273px !important;
overflow-y: scroll; overflow-y: scroll;
} }
.ant-table-placeholder { .ant-table-placeholder {
color: $biz-table-font-color; //color: $biz-table-font-color;
background-color: $content-color;//rgba(40, 40, 40, 1); //background-color: $content-color;//rgba(40, 40, 40, 1);
background-color: transparent;
color: #fff;
} }
.highlight-row { .highlight-row {
......
import './index.scss' import './index.scss';
import './../assets/bizFont/iconfont.js'; import './../assets/bizFont/iconfont.js';
import './view/index.scss'; import './view/index.scss';
\ No newline at end of file
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
.topBox { .topBox {
position: absolute; position: absolute;
top: 34px; top: 34px;
left: 40%; left: 50%;
transform: translateX(-50%);
span { span {
display: inline-block; display: inline-block;
} }
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
text-align: center; text-align: center;
color: #fff; color: #fff;
vertical-align: top; vertical-align: top;
.titleText { .titleText {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -37,7 +38,8 @@ ...@@ -37,7 +38,8 @@
.bottomBox { .bottomBox {
position: absolute; position: absolute;
bottom: 34px; bottom: 34px;
left: 40%; left: 50%;
transform: translateX(-50%);
span { span {
display: inline-block; display: inline-block;
width: 177px; width: 177px;
...@@ -198,10 +200,10 @@ ...@@ -198,10 +200,10 @@
} }
} }
} }
.editButton { .editButton {
position: absolute; position: absolute;
bottom: 100px; bottom: 100px;
left: 50%; left: 50%;
} }
} }
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
width: 216px !important; width: 216px !important;
height: 100% !important; height: 100% !important;
padding: 0px; padding: 0px;
background: url('./../assets/convertor/3dview/prePlan/detail-info.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
position: relative; position: relative;
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
.carImg { .carImg {
width: 35px; width: 35px;
background: url('./../assets/convertor/3dview/plan/car.png') no-repeat top; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
} }
.carHead { .carHead {
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
width: 81px !important; width: 81px !important;
margin-left: 5px !important; margin-left: 5px !important;
font-size: 5px !important; font-size: 5px !important;
background-image: url('./../assets/convertor/3dview/plan/post.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
text-align: center !important; text-align: center !important;
line-height: 27px !important; line-height: 27px !important;
} }
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
margin-left: 0px; margin-left: 0px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/plan/detail-title.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/zhuyibar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/jianyibar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/jinggaobar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -436,7 +436,7 @@ ...@@ -436,7 +436,7 @@
width: 316px !important; width: 316px !important;
height: 100% !important; height: 100% !important;
padding: 0px; padding: 0px;
background: url('./../assets/convertor/3dview/prePlan/detail-info.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
position: relative; position: relative;
...@@ -534,7 +534,7 @@ ...@@ -534,7 +534,7 @@
.carImg { .carImg {
width: 59px; width: 59px;
background: url('./../assets/convertor/3dview/plan/car.png') no-repeat top; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
} }
.carHead { .carHead {
...@@ -557,7 +557,7 @@ ...@@ -557,7 +557,7 @@
width: 81px !important; width: 81px !important;
margin-left: 45px !important; margin-left: 45px !important;
font-size: 13px !important; font-size: 13px !important;
background-image: url('./../assets/convertor/3dview/plan/post.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
text-align: center !important; text-align: center !important;
line-height: 27px !important; line-height: 27px !important;
} }
...@@ -571,7 +571,7 @@ ...@@ -571,7 +571,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/plan/detail-title.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -580,7 +580,7 @@ ...@@ -580,7 +580,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/zhuyibar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -589,7 +589,7 @@ ...@@ -589,7 +589,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/jianyibar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -598,7 +598,7 @@ ...@@ -598,7 +598,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('./../assets/convertor/3dview/prePlan/jinggaobar.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
......
...@@ -110,7 +110,8 @@ ...@@ -110,7 +110,8 @@
display: inline; display: inline;
font-size: 7px; font-size: 7px;
line-height: 40px; line-height: 40px;
color: $biz-table-font-color;//white; //color: $biz-table-font-color;//white;
color:#fff;
.colTitle { .colTitle {
padding-left: 8px; padding-left: 8px;
...@@ -124,21 +125,22 @@ ...@@ -124,21 +125,22 @@
display: flex; display: flex;
border: 1px solid $core-border-color; border: 1px solid $core-border-color;
border-bottom: 0; border-bottom: 0;
border-left: 0;
} }
.point-detail-table-row2 { .point-detail-table-row2 {
display: flex; display: flex;
border: 1px solid $core-border-color; border: 1px solid $core-border-color;
border-left: 0;
} }
.colTitle { .colTitle {
float: left; float: left;
width: 131px;//9.84%; width: 131px;//9.84%;
height: 40px; height: 40px;
background: $biz-table-title-color;//#333; //background: $biz-table-title-color;//#333;
border-left: 1px solid $core-border-color; background: rgba(25, 86, 147, 1);
// border-left: 1px solid $core-border-color;
box-sizing: border-box; box-sizing: border-box;
flex: 1; flex: 1;
} }
...@@ -147,17 +149,21 @@ ...@@ -147,17 +149,21 @@
float: left; float: left;
width: 131px;//9.83%; width: 131px;//9.83%;
height: 40px; height: 40px;
background: $content-color;//rgb(97, 96, 96); //background: $content-color;//rgb(97, 96, 96);
background: transparent;
flex: 1; flex: 1;
border-left: 1px solid $core-border-color; //border-left: 1px solid $core-border-color;
} }
} }
.point-dialog-modal{ .point-dialog-modal{
width: 100%; width: 100%;
height: 100%; height: 100%;
.amos-modal-container{ .amos-modal-container{
// width: 310px !important; background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/toolmodalbg.png');
background-repeat: no-repeat;
height:262px;
width: 452px !important;
background-color: rgba(255,255,255,0);
.amos-modal-close{ .amos-modal-close{
color: white; color: white;
background: linear-gradient(180deg, rgba(255, 0, 102, 1) 0%, rgba(255, 0, 102, 1) 0%, rgba(255, 51, 0, 1) 100%, rgba(255, 51, 0, 1) 100%); background: linear-gradient(180deg, rgba(255, 0, 102, 1) 0%, rgba(255, 0, 102, 1) 0%, rgba(255, 51, 0, 1) 100%, rgba(255, 51, 0, 1) 100%);
...@@ -168,35 +174,43 @@ ...@@ -168,35 +174,43 @@
} }
} }
.amos-modal-header{ .amos-modal-header{
background: $model-header-color-3d; background: rgba(255,255,255,0);
height: 30px; height: 50px;
padding: 0; padding: 0;
border-width: 0em;
.amos-modal-title{ .amos-modal-title{
line-height: 30px; line-height: 50px;
padding-left: 9px; padding-left: 9px;
color: #fff;
font-size: 18px;
} }
} }
.amos-modal-content{ .amos-modal-content{
padding: 0; padding: 0;
.point-dialog-body{ .point-dialog-body{
margin:10px;
max-height: 180px;
color: #fff;
.point-dialog-modal-row { .point-dialog-modal-row {
border: solid 1px rgba(234, 234, 234, 0.3);
display: flex; display: flex;
background: $model-body-color-3d; background: transparent;
.colTitle { .colTitle {
float: left; float: left;
font-weight: bold; font-weight: bold;
height: 40px; height: 40px;
padding-left: 8px; padding-left: 8px;
border-left: 1px solid $core-border-color; line-height: 40px;
box-sizing: border-box; box-sizing: border-box;
flex: 1; flex: 1;
background-color: rgba(25, 86, 147, 0.6);
} }
.colValue { .colValue {
float: left; float: left;
height: 40px; height: 40px;
padding-left: 8px; padding-left: 8px;
flex: 1; line-height: 40px;
border-left: 1px solid $core-border-color; flex: 1.5;
} }
} }
} }
...@@ -206,9 +220,29 @@ ...@@ -206,9 +220,29 @@
} }
.risk-warn-modal{ .risk-warn-modal{
height: 100%; ::-webkit-scrollbar { /* 血槽宽度 */
width: 14px;
height: 8px;
}
::-webkit-scrollbar-thumb { /* 拖动条 */
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollslider.png') ;
background-repeat: no-repeat;
height: 10px;
}
::-webkit-scrollbar-track { /* 背景槽 */
background-color:rgba(17, 44, 88, 0.2);
}
::-webkit-scrollbar-button{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollbutton.png') ;
background-repeat: no-repeat;
}
height:100%;
.amos-modal-container{ .amos-modal-container{
width: 740px !important; background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/modalbg.png');
height:497px;
width: 866px !important;
background-color: rgba(255,255,255,0);
.amos-modal-close{ .amos-modal-close{
color: white; color: white;
background: linear-gradient(180deg, rgba(255, 0, 102, 1) 0%, rgba(255, 0, 102, 1) 0%, rgba(255, 51, 0, 1) 100%, rgba(255, 51, 0, 1) 100%); background: linear-gradient(180deg, rgba(255, 0, 102, 1) 0%, rgba(255, 0, 102, 1) 0%, rgba(255, 51, 0, 1) 100%, rgba(255, 51, 0, 1) 100%);
...@@ -219,37 +253,69 @@ ...@@ -219,37 +253,69 @@
} }
} }
.amos-modal-header{ .amos-modal-header{
background: $model-header-color-3d; background: rgba(255,255,255,0);
height: 30px; height: 50px;
padding: 0; padding: 0;
border-width: 0em;
.amos-modal-title{ .amos-modal-title{
line-height: 30px; line-height: 50px;
padding-left: 9px; padding-left: 9px;
color: #fff;
font-size: 18px;
} }
} }
.amos-modal-content{ .amos-modal-content{
padding: 1rem 2rem 2rem 2rem;
max-height: 45rem;
.risk-warn{ .risk-warn{
.risk-warn-header{ .risk-warn-header{
padding-bottom: 1rem;
padding-top: 0.5rem;
padding-left: 0.5rem;
border: 1px solid $core-border-color;
margin-bottom: 1rem; margin-bottom: 1rem;
color:#fff;
} }
.risk-warn-table{ .risk-warn-table{
background-color: transparent;
.ant-table-title{ .ant-table-title{
display: none; display: none;
} }
span{
font-size: 14px;
}
.ant-table-placeholder {
//color: $biz-table-font-color;
//background-color: $content-color;//rgba(40, 40, 40, 1);
background-color: transparent;
color: #fff;
}
.ant-table-thead {
tr {
th {
color:#fff;
background-color: rgba(25, 86, 147, 1);
}
}
}
.ant-table-body {
tr {
td {
color:#fff;
background-color: transparent;
}
}
}
.ant-table-body{ .ant-table-body{
max-height: 35rem !important; max-height: 35rem !important;
background-color:transparent;
} }
} }
.risk-warn-content{ .risk-warn-content{
padding-bottom: 2rem; padding: 15px;
border: 1px solid $core-border-color; border: 1px solid rgba(255, 255, 255, 0.3);;
margin-top: 1rem; margin-top: 1rem;
margin-bottom: 2em;
span{
color: #fff;
}
} }
} }
} }
......
...@@ -59,22 +59,22 @@ ...@@ -59,22 +59,22 @@
width: 260px; width: 260px;
height: 206px; height: 206px;
padding: 20px; padding: 20px;
background: url('./../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
.step-trace { .step-trace {
height: 144px; height: 144px;
background: url('./../assets/convertor/3dview/prePlan/step-trace.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/step-trace.png') no-repeat;
.next-step { .next-step {
width: 24px; width: 24px;
height: 24px; height: 24px;
background: url('./../assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat;
} }
.previous-step { .previous-step {
width: 24px; width: 24px;
height: 24px; height: 24px;
background: url('./../assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat;
} }
} }
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
width: 840px; width: 840px;
height: 60px; height: 60px;
margin: 0 auto; margin: 0 auto;
background-image: url('./../assets/convertor/3dview/prePlan/dingbu.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/dingbu.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
height: 30px; height: 30px;
margin: 0 auto; margin: 0 auto;
margin-top: 10px; margin-top: 10px;
background-image: url('./../assets/convertor/3dview/prePlan/baojing.png'); background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/baojing.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -179,7 +179,7 @@ ...@@ -179,7 +179,7 @@
height: 60px; height: 60px;
margin-bottom: 7px; margin-bottom: 7px;
text-align: center; text-align: center;
background: url('./../assets/convertor/3dview/prePlan/shujuqu.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu.png');
.text-icon { .text-icon {
width: 36px; width: 36px;
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
.text-icon { .text-icon {
// flex: 1 0 16%; // flex: 1 0 16%;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-shijian.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -214,7 +214,7 @@ ...@@ -214,7 +214,7 @@
.text-icon { .text-icon {
// flex: 1 0 16%; // flex: 1 0 16%;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-shuichi.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
.text-icon { .text-icon {
// flex: 1 0 8%; // flex: 1 0 8%;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -243,7 +243,7 @@ ...@@ -243,7 +243,7 @@
.text-icon { .text-icon {
// flex: 1 0 7%; // flex: 1 0 7%;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-gongshu.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
.text-icon { .text-icon {
// flex: 1 0 7%; // flex: 1 0 7%;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-paomo.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -279,7 +279,7 @@ ...@@ -279,7 +279,7 @@
.amos-modal-confirm-confirm { .amos-modal-confirm-confirm {
.amos-modal-container { .amos-modal-container {
text-align: center; text-align: center;
background: url('./../assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
box-shadow: unset; box-shadow: unset;
...@@ -305,7 +305,7 @@ ...@@ -305,7 +305,7 @@
.amos-btn { .amos-btn {
width: 95px; width: 95px;
height: 44px; height: 44px;
background: url('./../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
border: 0; border: 0;
} }
...@@ -315,7 +315,7 @@ ...@@ -315,7 +315,7 @@
height: 40px; height: 40px;
margin-top: -5px; margin-top: -5px;
color: white; color: white;
background: url('./../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat;
border: 0; border: 0;
} }
} }
...@@ -454,7 +454,7 @@ ...@@ -454,7 +454,7 @@
.precontrol-water-view { .precontrol-water-view {
width: 260px; width: 260px;
text-align: center; text-align: center;
background: url('./../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat; background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
padding-bottom: 10px; padding-bottom: 10px;
padding-top: 10px; padding-top: 10px;
...@@ -493,7 +493,7 @@ ...@@ -493,7 +493,7 @@
height: 20px; height: 20px;
width: 20px; width: 20px;
float: left; float: left;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-size: cover; background-size: cover;
// background-repeat: no-repeat; // background-repeat: no-repeat;
} }
...@@ -502,7 +502,7 @@ ...@@ -502,7 +502,7 @@
height: 17px; height: 17px;
width: 20px; width: 20px;
float: left; float: left;
background: url('./../assets/convertor/3dview/prePlan/shujuqu-shuichi.png'); background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-size: cover; background-size: cover;
} }
} }
......
.search-pane-bg{ .search-pane-bg{
position: absolute; position: absolute;
// right: 20px; right: 20px;
// bottom: 20px; bottom: 20px;
top: 64px;
left: 10px;
width: 460px; width: 460px;
height: 600px; height: 600px;
background: url('./../assets//convertor//3dview//searchpane-background.png'); background: url('./../assets//convertor//3dview//searchpane-background.png');
...@@ -15,10 +13,10 @@ ...@@ -15,10 +13,10 @@
.search-pane{ .search-pane{
position: absolute !important; position: absolute !important;
top: 64px; right: 20px !important;
left: 10px; bottom: 20px !important;
// right: 20px !important; left: unset !important;
// bottom: 20px !important; top: unset !important;
width: 460px; width: 460px;
height: 600px; height: 600px;
color: white; color: white;
...@@ -131,16 +129,14 @@ ...@@ -131,16 +129,14 @@
.ant-table-body { .ant-table-body {
color: white; color: white;
max-height: 465px !important ; max-height: 500px !important ;
min-height: 465px !important ; min-height: 500px !important ;
overflow-y: auto !important; overflow-y: auto !important;
overflow-x: hidden; overflow-x: hidden;
background:transparent!important; background:transparent!important;
margin-top: 20px;
border:1px solid rgba(234,234,234,0.3); border:1px solid rgba(234,234,234,0.3);
table { table {
width: 300px;
border-color: transparent !important; border-color: transparent !important;
td { td {
......
@import './statistical.scss'; @import './statistical.scss';
.sys-view-panoramic{ .sys-view-panoramic {
position: absolute; position: absolute;
top: 40px; top: 40px;
height: calc(100% - 40px); width: 100%;
width: 100%; height: calc(100% - 40px);
//background: black
} }
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
float: left; float: left;
z-index: 1; z-index: 1;
color: white; color: white;
display: flex;
flex-direction: column;
.equipStatusList{ .equipStatusList{
padding-left: 97px; padding-left: 97px;
padding-top: 10px; padding-top: 10px;
height: 33.3%; flex-grow: 1;
.title-child{ .title-child{
width: 100%; width: 100%;
...@@ -31,7 +33,7 @@ ...@@ -31,7 +33,7 @@
} }
.safetyExecuteList{ .safetyExecuteList{
height: 40%; flex: 2;
margin-left: 37px; margin-left: 37px;
.up{ .up{
height: 90px; height: 90px;
...@@ -67,7 +69,7 @@ ...@@ -67,7 +69,7 @@
width: 98%; width: 98%;
height: 245px; height: 245px;
margin-left: 30px; margin-left: 30px;
background-image: url('../../assets/panoramic/main_bg_warning.png'); background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_warning.png');
background-repeat: repeat; background-repeat: repeat;
background-size: 100% 100%; background-size: 100% 100%;
margin-top: 10px; margin-top: 10px;
...@@ -131,10 +133,10 @@ ...@@ -131,10 +133,10 @@
} }
.safetyIndex { .safetyIndex {
height: 33.3%;
display: flex; display: flex;
margin-left: 37px; margin-left: 37px;
padding-top: 65px; padding-top: 65px;
flex: 1;
.safetyIndex-icon { .safetyIndex-icon {
width: 36px; width: 36px;
...@@ -185,7 +187,7 @@ ...@@ -185,7 +187,7 @@
} }
.safetyIndex-content-chart { .safetyIndex-content-chart {
background-image: url('../../assets/panoramic/main_bg_dashboard.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_dashboard.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
margin-top: -25px !important; margin-top: -25px !important;
width: 125px !important; width: 125px !important;
...@@ -208,7 +210,7 @@ ...@@ -208,7 +210,7 @@
.echart-week { .echart-week {
width: 321px !important; width: 321px !important;
height: 248px !important; height: 248px !important;
background-image: url('../../assets/panoramic/main_bg_line_bg.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_line_bg.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
background-position: 31px 47px !important; background-position: 31px 47px !important;
left: 24px; left: 24px;
...@@ -223,8 +225,7 @@ ...@@ -223,8 +225,7 @@
} }
.safetyIndexWeek { .safetyIndexWeek {
height: 33.3%; height: 33.3%;
margin-bottom: -5%;
.content-week-font-style { .content-week-font-style {
width: 146px; width: 146px;
height: 18px; height: 18px;
...@@ -238,7 +239,6 @@ ...@@ -238,7 +239,6 @@
.statisticsCheck { .statisticsCheck {
height: 50%; height: 50%;
margin-bottom: -106px;
.check-content { .check-content {
height: 100%; height: 100%;
.content-xj-top { .content-xj-top {
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
} }
.yellow-div { .yellow-div {
background-image: url('../../assets/panoramic/main_bg_tag_buhege.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_buhege.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -289,7 +289,7 @@ ...@@ -289,7 +289,7 @@
} }
} }
.green-div { .green-div {
background-image: url('../../assets/panoramic/main_bg_tag_hege.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_hege.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -301,7 +301,7 @@ ...@@ -301,7 +301,7 @@
} }
.red-div { .red-div {
background-image: url('../../assets/panoramic/main_bg_tag_louyan.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_louyan.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
} }
} }
.grey-div { .grey-div {
background-image: url('../../assets/panoramic/main_bg_tag_weizhixing.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -326,26 +326,24 @@ ...@@ -326,26 +326,24 @@
} }
.div-echars { .div-echars {
margin-left: 17px;
background-image: url('../../assets/panoramic/circle_bg.png') !important;
background-repeat: no-repeat !important;
height: 200px !important; height: 200px !important;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/circle_bg.png') !important;
background-position: 60px 14px !important; background-position: 60px 14px !important;
background-repeat: no-repeat !important;
} }
} }
.statisticsDuty { .statisticsDuty {
display: flex;
height: 16.7%; height: 16.7%;
flex-direction: column;
.content-duty-font-style { .content-duty-font-style {
width: 146px; width: 146px;
height: 18px;
font-size: 18px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN; font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-size: 18px;
font-weight: 500; font-weight: 500;
color: rgba(112, 238, 255, 1);
line-height: 65px; line-height: 65px;
margin-top: 25%; color: rgba(112, 238, 255, 1);
margin-bottom: 14%;
} }
.content-picture-div { .content-picture-div {
...@@ -358,7 +356,7 @@ ...@@ -358,7 +356,7 @@
display: inline-flex; display: inline-flex;
.content-image { .content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -391,7 +389,7 @@ ...@@ -391,7 +389,7 @@
float: left; float: left;
display: inline-flex; display: inline-flex;
.content-image { .content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -423,7 +421,7 @@ ...@@ -423,7 +421,7 @@
float: left; float: left;
display: inline-flex; display: inline-flex;
.content-image { .content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important; background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -466,7 +464,7 @@ ...@@ -466,7 +464,7 @@
bottom: 250px; bottom: 250px;
left: 250px; left: 250px;
right: 250px; right: 250px;
background-image: url('../../assets/panoramic/main_bg_model.png'); background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_model.png');
background-repeat: repeat; background-repeat: repeat;
background-size: 100% 100%; background-size: 100% 100%;
.close{ .close{
......
...@@ -13,8 +13,8 @@ const defaultPageable = { ...@@ -13,8 +13,8 @@ const defaultPageable = {
}; };
const defaultHeaders = { const defaultHeaders = {
// appKey: 'CONVERTER_STATION', appKey: 'CONVERTER_STATION',
// product: 'CONVERTER_STATION_WEB', product: 'CONVERTER_STATION_WEB',
channelType: '3dpage' channelType: '3dpage'
}; };
...@@ -36,8 +36,8 @@ const getToken = () => { ...@@ -36,8 +36,8 @@ const getToken = () => {
/** /**
* 删除全局变量requests中的地址 * 删除全局变量requests中的地址
* @param {*} url * @param {*} url
* @param {*} method * @param {*} method
*/ */
const delRequest = (url, method) => { const delRequest = (url, method) => {
if (window.requests && window.requests.length > 0) { if (window.requests && window.requests.length > 0) {
...@@ -70,8 +70,8 @@ const convertDatalist = (dataList = [], key = 'content') => { ...@@ -70,8 +70,8 @@ const convertDatalist = (dataList = [], key = 'content') => {
export function commonGet(url) { export function commonGet(url) {
window.setLoading && window.setLoading(true); window.setLoading && window.setLoading(true);
return amosRequest(url, { return amosRequest(url, {
timeout: 10000000 , timeout: 10000000 ,
method: 'GET', method: 'GET',
headers: compleHeaders(), headers: compleHeaders(),
reject(error){ reject(error){
......
...@@ -2,15 +2,11 @@ import React from 'react'; ...@@ -2,15 +2,11 @@ import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Connect, Modal } from 'amos-framework'; import { Connect, Modal } from 'amos-framework';
import Basic from 'amos-designer/lib/pages/sketchs'; import Basic from 'amos-designer/lib/pages/sketchs';
import AmosWebSocket from 'amos-websocket';
import * as endConf from 'amos-processor/lib/config/endconf'; import * as endConf from 'amos-processor/lib/config/endconf';
import PilotController from 'amos-viz/lib/board/PilotController'; import PilotController from 'amos-viz/lib/board/PilotController';
import SysWsURL, { completeToken } from './../consts/wsUrlConsts';
import { eventTopics } from './consts';
import ScreenSaverView from './screenSaver/ScreenSaverView'; import ScreenSaverView from './screenSaver/ScreenSaverView';
import View3D from './View3D'; import View3D from './View3D';
import PanoramicLeft from './../view/panoramic/statistical/indexLeft'; import Statistical from './../view/panoramic/statistical';
import PanoramicRight from './../view/panoramic/statistical/indexRight';
// 引入换流站3dview模块主体样式文件 // 引入换流站3dview模块主体样式文件
import './../styles'; import './../styles';
...@@ -45,9 +41,7 @@ class ConvertorView3DRoot extends Basic { ...@@ -45,9 +41,7 @@ class ConvertorView3DRoot extends Basic {
this.pushTimeOutId = null; this.pushTimeOutId = null;
} }
} }
// componentWillReceiveProps = nextProps => {
// this.setState({ alarmStarted: nextProps.alarmStarted });
// }
editModelChange = (status) => { editModelChange = (status) => {
this.setState({ this.setState({
isEdit: status isEdit: status
...@@ -95,33 +89,24 @@ class ConvertorView3DRoot extends Basic { ...@@ -95,33 +89,24 @@ class ConvertorView3DRoot extends Basic {
} }
} }
/** refshExceptAreaData = ()=>{
* 监控视图消息 (view3d ws) this.view3d.initExceptionAreasData && this.view3d.initExceptionAreasData();
*/ }
handleData = (data = {}) => {
console.log('view3d ws data:', data);
const topic = data.topic || eventTopics.base3d_view;
this.props.trigger(topic, data);
};
render() { render() {
const { isEdit } = this.state; const { isEdit } = this.state;
debugger
const wsURL = completeToken(SysWsURL.convertorView3dws);
return ( return (
<div> <div style={{ height: '100%' }}>
{ { isEdit ? '' : <Statistical refshExceptAreaData={this.refshExceptAreaData} /> }
isEdit ? '' : <PanoramicLeft />
}
<div className="sys-view-3d"> <div className="sys-view-3d">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug /> <View3D
<View3D onLoadCompleted={this.onLoadCompleted} hiddenScreenSaver={this.hiddenScreenSaver} editModelChange={this.editModelChange}/> ref={node => this.view3d = node}
onLoadCompleted={this.onLoadCompleted}
hiddenScreenSaver={this.hiddenScreenSaver}
editModelChange={this.editModelChange}
/>
{this.getScreenSaver()} {this.getScreenSaver()}
</div> </div>
{
isEdit ? '' : <PanoramicRight />
}
</div> </div>
); );
} }
......
...@@ -62,6 +62,7 @@ class MaskContent extends Component { ...@@ -62,6 +62,7 @@ class MaskContent extends Component {
} }
changeSearchPaneVisible = () => { changeSearchPaneVisible = () => {
debugger;
const { searchPaneVisible } = this.state; const { searchPaneVisible } = this.state;
this.setState({ searchPaneVisible: !searchPaneVisible }); this.setState({ searchPaneVisible: !searchPaneVisible });
} }
...@@ -87,9 +88,10 @@ class MaskContent extends Component { ...@@ -87,9 +88,10 @@ class MaskContent extends Component {
planQuit, planQuit,
sideControlShow, sideControlShow,
isShowActionBar, isShowActionBar,
headerName headerName,
errorAreaId
} = this.props; } = this.props;
const wsURL = completeToken(SysWsURL.convertorRulews); const wsURL = completeToken(SysWsURL.rulews);
const controlAnimation = { const controlAnimation = {
animateName: 'zoom-comb-left', animateName: 'zoom-comb-left',
visible: !planStarted, visible: !planStarted,
...@@ -119,13 +121,13 @@ class MaskContent extends Component { ...@@ -119,13 +121,13 @@ class MaskContent extends Component {
return ( return (
<div className="mask-content"> <div className="mask-content">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug /> <AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
{ sideControlShow && <SideControl multiple={multiple} onItemClick={onItemClick} layerConfig={layerConfig} animationProps={controlAnimation} />} { sideControlShow && <SideControl multiple={multiple} errorAreaId={errorAreaId} onItemClick={onItemClick} layerConfig={layerConfig} animationProps={controlAnimation} />}
{ sideControlShow && <DataPane animationProps={datapaneAnim} />} { sideControlShow && <DataPane animationProps={datapaneAnim} />}
<SearchPane visible={searchPaneVisible} changeSearchPaneVisible={() => this.changeSearchPaneVisible}/> <SearchPane visible={searchPaneVisible} changeSearchPaneVisible={() => this.changeSearchPaneVisible}/>
<TopMsg alarmStart={alarmStart} /> <TopMsg alarmStart={alarmStart} />
{!isShowActionBar && <ModelHeader headerName={headerName} handleExceptModel={this.handleExceptModel} />} {!isShowActionBar && <ModelHeader headerName={headerName} handleExceptModel={this.handleExceptModel} />}
{isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation}/> } {isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation}/> }
{/*{alarmStarted && <LayerPool animationProps={layerPoolAnimation} planStart={planStart} planQuit={planQuit} planStarted={planStarted} />}*/} {alarmStarted && <LayerPool animationProps={layerPoolAnimation} planStart={planStart} planQuit={planQuit} planStarted={planStarted} />}
</div> </div>
); );
} }
...@@ -151,7 +153,8 @@ MaskContent.propTypes = { ...@@ -151,7 +153,8 @@ MaskContent.propTypes = {
isShowActionBar: PropTypes.bool, isShowActionBar: PropTypes.bool,
headerName: PropTypes.string, headerName: PropTypes.string,
setHeaderName: PropTypes.string, setHeaderName: PropTypes.string,
handleExceptModel: PropTypes.func handleExceptModel: PropTypes.func,
errorAreaId: PropTypes.number
}; };
MaskContent.defaultProps = { MaskContent.defaultProps = {
......
...@@ -73,7 +73,6 @@ class View3D extends Component { ...@@ -73,7 +73,6 @@ class View3D extends Component {
super(props); super(props);
this.state = { this.state = {
objs: null, objs: null,
totalDelta: 0, // zoom值
asyncModels: null, asyncModels: null,
startAsyncLoad: false, startAsyncLoad: false,
showExplain: false, showExplain: false,
...@@ -85,8 +84,7 @@ class View3D extends Component { ...@@ -85,8 +84,7 @@ class View3D extends Component {
markerList: [], markerList: [],
plFatLineCache: [], plFatLineCache: [],
fireEquipmentPosition: [], fireEquipmentPosition: [],
contingencyPlanId:'', contingencyPlanId: '',
markers: { markers: {
patrol: [], patrol: [],
risk: [], risk: [],
...@@ -114,7 +112,8 @@ class View3D extends Component { ...@@ -114,7 +112,8 @@ class View3D extends Component {
exceptionAreas: [], //异常区域 exceptionAreas: [], //异常区域
startLoadExceptionArea: false, //是否开始加载区域marker startLoadExceptionArea: false, //是否开始加载区域marker
sideControlShow: false, //隐藏耳朵 sideControlShow: false, //隐藏耳朵
isShowActionBar: true //显示工具栏 isShowActionBar: true, //显示工具栏
errorAreaId: '' //异常区域id
}; };
getObjFromNet(view3dFile, (objs, asyncModels) => { getObjFromNet(view3dFile, (objs, asyncModels) => {
...@@ -151,7 +150,7 @@ class View3D extends Component { ...@@ -151,7 +150,7 @@ class View3D extends Component {
this._registerEvents(); this._registerEvents();
this._bindPubSubEvents(); this._bindPubSubEvents();
this._bindRulesPubSubEvents(); this._bindRulesPubSubEvents();
this.getExceptionAreaList(); this.getExceptionAreasList();
} }
genPenId = () => { genPenId = () => {
...@@ -213,10 +212,8 @@ class View3D extends Component { ...@@ -213,10 +212,8 @@ class View3D extends Component {
if (this.timer) { if (this.timer) {
clearTimeout(this.timer); clearTimeout(this.timer);
} }
// this.infoHelper && this.infoHelper.destroy();
} }
// eslint-disable-next-line react/sort-comp
_registerEvents = () => { _registerEvents = () => {
this.r3d.on('dbclick', evt => { this.r3d.on('dbclick', evt => {
if (evt.button !== 0) { if (evt.button !== 0) {
...@@ -240,11 +237,6 @@ class View3D extends Component { ...@@ -240,11 +237,6 @@ class View3D extends Component {
this.lensLevel = LENS_LEVEL.ROOT; this.lensLevel = LENS_LEVEL.ROOT;
} }
}); });
this.r3d.on('camera_zoom', evt => {
console.log('main camera_zoom', evt);
this.onCameraZoomChange(evt.delta);
});
}; };
_bindPubSubEvents = () => { _bindPubSubEvents = () => {
...@@ -273,7 +265,6 @@ class View3D extends Component { ...@@ -273,7 +265,6 @@ class View3D extends Component {
let fireEquipmentPosition = data.contingencyRo.fireEquipmentPosition.split(','); let fireEquipmentPosition = data.contingencyRo.fireEquipmentPosition.split(',');
this.setState({ fireEquipmentPosition }); this.setState({ fireEquipmentPosition });
} }
assembleTroubleView(this, data, this.state.markers); assembleTroubleView(this, data, this.state.markers);
break; break;
case 'base3d.fromws.mapArea_action1-2': //镜头切换(旋转+推进) case 'base3d.fromws.mapArea_action1-2': //镜头切换(旋转+推进)
...@@ -432,22 +423,8 @@ class View3D extends Component { ...@@ -432,22 +423,8 @@ class View3D extends Component {
this.setState({ showFireTruckRoute: false }); //1.关闭路线显示 this.setState({ showFireTruckRoute: false }); //1.关闭路线显示
this.executeOperate({ key: 'fitview' }); this.executeOperate({ key: 'fitview' });
this.setState({ markers: {} }); this.setState({ markers: {} });
};
onCameraZoomChange = delta => {
let { totalDelta, markerType, showMap } = this.state;
totalDelta = totalDelta + delta;
// if (totalDelta < mousewheelCount && showMap) {
if(showMap && markerType != "impEquipmentMode"){
this.asyncLoadMarkerData(markerType);
}
// } else if (totalDelta >= mousewheelCount && !showMap) {
// this.loadMarkTypeStatistics(markerType);
// }
this.setState({ totalDelta });
} }
loadMarkTypeStatistics = markerType => { loadMarkTypeStatistics = markerType => {
const { markers } = this.state; const { markers } = this.state;
this.setState({ showMap: true }); this.setState({ showMap: true });
...@@ -810,7 +787,6 @@ class View3D extends Component { ...@@ -810,7 +787,6 @@ class View3D extends Component {
renderAreas = () => { renderAreas = () => {
this.areas = []; this.areas = [];
this.getAreas(this.state.treeData); this.getAreas(this.state.treeData);
console.log(this.areas)
return this.areas; return this.areas;
} }
onRegionCreated = (polygonRegion,item) => { onRegionCreated = (polygonRegion,item) => {
...@@ -900,66 +876,62 @@ class View3D extends Component { ...@@ -900,66 +876,62 @@ class View3D extends Component {
*/ */
changeAreaPoint = (type) => { changeAreaPoint = (type) => {
let { pointTypeArr } = this.state; let { pointTypeArr } = this.state;
if (type == 'region') { if (type === 'region') {
getAreaTreeAction().then(data => { getAreaTreeAction().then(data => {
this.setState({ this.setState({
treeData:data || [], treeData: data || [],
pageType: 'region', pageType: 'region',
showRightPanel: false showRightPanel: false
}) });
}) });
} else { } else {
getPointTreeAction(pointTypeArr[0].code||'').then(data => { getPointTreeAction(pointTypeArr[0].code || '').then(data => {
console.log(data); console.log(data);
this.setState({ this.setState({
pointType: pointTypeArr[0].code||'', pointType: pointTypeArr[0].code || '',
treeData: data||[], treeData: data || [],
pageType: 'point', pageType: 'point',
showRightPanel: false showRightPanel: false
}) });
}) });
} }
} }
pointTypeChange = (pointType) => { pointTypeChange = (pointType) => {
this.state.pointType = pointType;
getPointTreeAction(pointType).then(data => { getPointTreeAction(pointType).then(data => {
console.log(data); console.log(data);
this.setState({ this.setState({
pointType: pointType, pointType,
treeData: data||[] treeData: data || []
}) });
}) });
} }
dragItemChange = (dragItem) => { dragItemChange = (dragItem) => {
this.state.dragItem = dragItem;
let { treeData } = this.state; let { treeData } = this.state;
if (dragItem.isRegion) { if (dragItem.isRegion) {
//是区域 //是区域
} else { } else {
if(dragItem.isBind) { if (dragItem.isBind) {
//已绑定 //已绑定
} else { } else {
let hasRegion = false; let hasRegion = false;
} }
} }
this.setState({ this.setState({
dragItem dragItem
}) });
} }
drop = (event) => { drop = (event) => {
event.preventDefault(); event.preventDefault();
let { dragItem,markers }=this.state; let { dragItem,markers } = this.state;
console.log(dragItem) console.log(dragItem);
if(dragItem) { if (dragItem) {
if (dragItem.isBind) { if (dragItem.isBind) {
this.tipMsg = '只能放置未绑定的标记点' this.tipMsg = '只能放置未绑定的标记点'
this.setState({ this.setState({
simpleTipVisible: true simpleTipVisible: true
}) });
return false; return false;
} }
...@@ -967,82 +939,75 @@ class View3D extends Component { ...@@ -967,82 +939,75 @@ class View3D extends Component {
const objs = this.a3dRef.pickerCoordinate(event.clientX, event.clientY, null, true); const objs = this.a3dRef.pickerCoordinate(event.clientX, event.clientY, null, true);
let position; let position;
if (objs.length > 0){ if (objs.length > 0){
// get point
position = objs[0].point; position = objs[0].point;
} }
// [0,0,0]
const isInside = this.polygonRegion[dragItem.parentId].pointInPolygon([position.x,position.y,position.z]) const isInside = this.polygonRegion[dragItem.parentId].pointInPolygon([position.x,position.y,position.z])
// console.log(this.polygonRegion) console.log(isInside);
// console.log(position)
console.log(isInside)
if (dragItem) { if (dragItem) {
if (isInside == false) { if (isInside === false) {
this.tipMsg = '只能放置在当前区域' this.tipMsg = '只能放置在当前区域';
this.setState({ this.setState({
simpleTipVisible: true simpleTipVisible: true
}) });
return false; return false;
} }
let uid = UUID.uuidFast() let uid = UUID.uuidFast();
let addPointParam = { let addPointParam = {
type: dragItem.type, type: dragItem.type,
position: position, position,
uid: uid, uid,
id: dragItem.id, id: dragItem.id,
key: `${dragItem.type}-${dragItem.id}`, key: `${dragItem.type}-${dragItem.id}`,
title: dragItem.name, title: dragItem.name,
label: dragItem.name, label: dragItem.name,
level:'1', level: '1',
levelStr: 'level_2', levelStr: 'level_2'
};
} markers.riskSource.push(addPointParam);
markers.riskSource.push(addPointParam) console.log(markers);
console.log(markers)
this.setState({ this.setState({
markers markers
}) });
} }
} }
quitEditMode = () => { quitEditMode = () => {
this.setState({ this.setState({
editFlag: false editFlag: false
}) });
this.props.editModelChange(false) this.props.editModelChange(false);
} }
editButtonClick = () => { editButtonClick = () => {
let { editFlag } = this.state; let { editFlag } = this.state;
if (editFlag == true) { if (editFlag === true) {
return false; return false;
} }
editFlag = true; editFlag = true;
this.setState({ editFlag }) this.setState({ editFlag });
if(editFlag == true) { if (editFlag === true) {
getAreaTreeAction().then(data => { getAreaTreeAction().then(data => {
console.log(data); this.setState({
this.setState({ treeData: data || []
treeData:data || [] });
}) });
}) getPointTypeAction().then(data => {
getPointTypeAction().then(data => { console.log(data);
console.log(data); this.setState({
this.setState({ pointTypeArr: data || [],
pointTypeArr: data||[], pointType: data[0] ? data[0].code : ''
pointType:data[0] ? data[0].code : '' });
}) });
}) this.getPointList();
this.getPointList();
} }
} }
simpleTipOk = () => { simpleTipOk = () => {
this.setState({ this.setState({
simpleTipVisible: false simpleTipVisible: false
}) });
} }
changeMarkerType = (item, isCancel) => { changeMarkerType = (item, isCancel) => {
const { markers, totalDelta } = this.state; const { markers } = this.state;
if (item.isLine) { if (item.isLine) {
this.setState({ this.setState({
toggleRoad: !isCancel toggleRoad: !isCancel
...@@ -1050,25 +1015,22 @@ class View3D extends Component { ...@@ -1050,25 +1015,22 @@ class View3D extends Component {
} else { } else {
if (isCancel) { if (isCancel) {
markers[item.type] = []; markers[item.type] = [];
// delete this.markerList[item.type];
this.setState({ this.setState({
markers markers
}); });
} else { } else {
// if (totalDelta < mousewheelCount) { // if (totalDelta < mousewheelCount) {
this.asyncLoadMarkerData(item.type); this.asyncLoadMarkerData(item.type);
// } else if (totalDelta >= mousewheelCount) {
// this.loadMarkTypeStatistics(item.type);
// }
} }
} }
}; };
asyncLoadMarkerData = markerType => { asyncLoadMarkerData = (markerType, riskSourceId) => {
const { markers } = this.state; const { markers } = this.state;
this.setState({ showMap: false }); this.setState({ showMap: false });
this.clearMarkers(); this.clearMarkers();
initView3DAction(markerType).then(d => { initView3DAction(markerType,riskSourceId).then(d => {
if (markerType === 'fireResource') { if (markerType === 'fireResource') {
markers['hydrant'] = d['hydrant']; markers['hydrant'] = d['hydrant'];
markers['pool'] = d['pool']; markers['pool'] = d['pool'];
...@@ -1138,7 +1100,6 @@ class View3D extends Component { ...@@ -1138,7 +1100,6 @@ class View3D extends Component {
}; };
changeMarkerType = (item, isCancel) => { changeMarkerType = (item, isCancel) => {
const { markers, totalDelta } = this.state;
if (item.isLine) { if (item.isLine) {
this.setState({ this.setState({
toggleRoad: !isCancel toggleRoad: !isCancel
...@@ -1146,11 +1107,7 @@ class View3D extends Component { ...@@ -1146,11 +1107,7 @@ class View3D extends Component {
} else { } else {
this.clearMarkers(); this.clearMarkers();
if (!isCancel) { if (!isCancel) {
// if (totalDelta < mousewheelCount) { this.asyncLoadMarkerData(item.type,item.riskSourceId);
this.asyncLoadMarkerData(item.type);
// } else if (totalDelta >= mousewheelCount) {
// this.loadMarkTypeStatistics(item.type);
// }
} else { } else {
this.setState({ markerType: null }); this.setState({ markerType: null });
} }
...@@ -1160,7 +1117,6 @@ class View3D extends Component { ...@@ -1160,7 +1117,6 @@ class View3D extends Component {
clearMarkers = () => { clearMarkers = () => {
const { markers } = this.state; const { markers } = this.state;
markers['patrol'] = []; markers['patrol'] = [];
markers['risk'] = []; markers['risk'] = [];
markers['data'] = []; markers['data'] = [];
markers['room'] = []; markers['room'] = [];
...@@ -1278,10 +1234,16 @@ class View3D extends Component { ...@@ -1278,10 +1234,16 @@ class View3D extends Component {
} }
} }
getExceptionAreaList = () => { getExceptionAreasList = () => {
// exceptionRegionListAction().then(data=>{ exceptionRegionListAction().then(data=>{
// this.setState({ exceptionAreas: data }); this.setState({ exceptionAreas: data });
// }); });
}
initExceptionAreasData = ()=>{
this.setState({ startLoadExceptionArea: false },()=>{
this.getExceptionAreasList();
});
} }
renderPolygonRegion = (exceptionAreas)=> { renderPolygonRegion = (exceptionAreas)=> {
...@@ -1296,24 +1258,26 @@ class View3D extends Component { ...@@ -1296,24 +1258,26 @@ class View3D extends Component {
}); });
} }
handleExceptModel =(type)=>{ handleExceptModel =(type,areaId)=>{
this.clearMarkers(); this.clearMarkers();
if(type === 'into_except_model'){//进入耳朵模式 if (type === 'into_except_model'){//进入耳朵模式
this.props.editModelChange(true);//隐藏全景统计 this.props.editModelChange(true);//隐藏全景统计
this.setState({ this.setState({
sideControlShow: true, //显示耳朵 sideControlShow: true, //显示耳朵
isShowActionBar: false, //隐藏工具栏 isShowActionBar: false, //隐藏工具栏
startLoadExceptionArea: false,//隐藏marker startLoadExceptionArea: false,//隐藏marker
headerName: '故障点模式' //设置头名称 headerName: '故障点模式', //设置头名称
errorAreaId: areaId
}); });
} else if(type === 'out_except_model'){ } else if (type === 'out_except_model'){
this.props.editModelChange(false);//显示全景统计 this.props.editModelChange(false);//显示全景统计
this.setState({ this.setState({
sideControlShow: false, //隐藏耳朵 sideControlShow: false, //隐藏耳朵
isShowActionBar: true, //显示工具栏 isShowActionBar: true, //显示工具栏
startLoadExceptionArea: true, //显示marker, startLoadExceptionArea: true, //显示marker,
headerName: '', //设置头名称 headerName: '', //设置头名称
editFlag: false //推出编辑模式 editFlag: false, //推出编辑模式
errorAreaId: ''
}); });
} }
} }
...@@ -1338,7 +1302,8 @@ class View3D extends Component { ...@@ -1338,7 +1302,8 @@ class View3D extends Component {
exceptionAreas, exceptionMarkers,startLoadExceptionArea, exceptionAreas, exceptionMarkers,startLoadExceptionArea,
sideControlShow, sideControlShow,
isShowActionBar, isShowActionBar,
headerName headerName,
errorAreaId
} = this.state; } = this.state;
const { dimension, hiddenScreenSaver } = this.props; const { dimension, hiddenScreenSaver } = this.props;
const graphicProps = { const graphicProps = {
...@@ -1370,7 +1335,7 @@ class View3D extends Component { ...@@ -1370,7 +1335,7 @@ class View3D extends Component {
x: fireEquipmentPosition[0], x: fireEquipmentPosition[0],
y: fireEquipmentPosition[1], y: fireEquipmentPosition[1],
z: fireEquipmentPosition[2] z: fireEquipmentPosition[2]
} };
} else { } else {
firePosition = { x: -90.827, y: 30.4577, z: 1.0839 }; firePosition = { x: -90.827, y: 30.4577, z: 1.0839 };
} }
...@@ -1406,6 +1371,7 @@ class View3D extends Component { ...@@ -1406,6 +1371,7 @@ class View3D extends Component {
headerName={headerName} headerName={headerName}
setHeaderName={this.setHeaderName} setHeaderName={this.setHeaderName}
onActionItemClick={this.onActionItemClick} onActionItemClick={this.onActionItemClick}
errorAreaId={errorAreaId}
handleExceptModel={this.handleExceptModel} handleExceptModel={this.handleExceptModel}
/> />
} }
...@@ -1426,7 +1392,6 @@ class View3D extends Component { ...@@ -1426,7 +1392,6 @@ class View3D extends Component {
{startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} />} {startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} />}
</A3DDesigner> </A3DDesigner>
</div> </div>
{/* <div className="editButton" onClick={() => this.editButtonChange()}>编辑模式</div> */}
{ editFlag && { editFlag &&
<div> <div>
{ {
...@@ -1492,7 +1457,8 @@ View3D.propTypes = { ...@@ -1492,7 +1457,8 @@ View3D.propTypes = {
hiddenScreenSaver: PropTypes.func, hiddenScreenSaver: PropTypes.func,
onLoadCompleted: PropTypes.func, onLoadCompleted: PropTypes.func,
alarmStart: PropTypes.func, alarmStart: PropTypes.func,
planStart: PropTypes.func planStart: PropTypes.func,
editModelChange: PropTypes.func
}; };
export default View3D; export default View3D;
...@@ -27,7 +27,7 @@ class ActionBar extends Component { ...@@ -27,7 +27,7 @@ class ActionBar extends Component {
render() { render() {
const { animationProps, activeAction = 'panoramic' } = this.props; const { animationProps, activeAction = 'panoramic' } = this.props;
return ( return (
<SidePane className="action-pane-data" {...animationProps}> <SidePane className="action-pane-data" left={false} top={false} {...animationProps}>
<div className="action-list"> <div className="action-list">
{ {
actionBars.map( a => { actionBars.map( a => {
......
...@@ -13,7 +13,7 @@ const Footer = props => { ...@@ -13,7 +13,7 @@ const Footer = props => {
return ( return (
<div key={f.key} className={cls} onClick={(e) => onItemClick(f.key, e)}> <div key={f.key} className={cls} onClick={(e) => onItemClick(f.key, e)}>
<Icon icon={f.icon} /> <Icon icon={f.icon} />
<p className="footer-item-text">{f.text}</p> <span className="footer-item-text">{f.text}</span>
</div> </div>
); );
}) })
......
...@@ -235,14 +235,13 @@ class AmosGridTable extends Component { ...@@ -235,14 +235,13 @@ class AmosGridTable extends Component {
</div> </div>
)} )}
rowKey={isTreeTable ? 'key' : this.generateRowkey} rowKey={isTreeTable ? 'key' : this.generateRowkey}
loading={loading}
rowSelection={rowSelection} rowSelection={rowSelection}
columns={columns} columns={columns}
dataSource={dataList} dataSource={dataList}
pagination={_pagination} pagination={_pagination}
size={size} size={size}
bordered={bordered} bordered={bordered}
scroll={{ y: maxHeight }}
rowClassName={rowClassName} rowClassName={rowClassName}
onRowDoubleClick={onRowDoubleClick} onRowDoubleClick={onRowDoubleClick}
/> />
......
...@@ -9,6 +9,7 @@ class MinInfo extends Component { ...@@ -9,6 +9,7 @@ class MinInfo extends Component {
return ( return (
<div className="dialog-body-min"> <div className="dialog-body-min">
<div className="body-min-header"> <div className="body-min-header">
<div className='dialog-min-title'>巡检触发预警详情</div>
<Close onClose={onClose} /> <Close onClose={onClose} />
</div> </div>
<div className="body-min-content"> <div className="body-min-content">
......
...@@ -46,8 +46,7 @@ class ExceptionArea extends Component { ...@@ -46,8 +46,7 @@ class ExceptionArea extends Component {
onMarkerClick = (marker) => { onMarkerClick = (marker) => {
const { extData } = marker; const { extData } = marker;
lsTool.write('errorAreaId',extData.id); this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id);
this.props.handleExceptModel && this.props.handleExceptModel('into_except_model');
} }
setTopCardConf = (obj,{ safetyIndex })=>{ setTopCardConf = (obj,{ safetyIndex })=>{
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import Statistical from './statistical' import Statistical from './statistical';
/** /**
* 全景监控 * 全景监控
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types';
import EquipStatusList from './EquipStatusList'; import EquipStatusList from './EquipStatusList';
import SafetyExecuteList from './SafetyExecuteList'; import SafetyExecuteList from './SafetyExecuteList';
import SafetyIndex from './SafetyIndex'; import SafetyIndex from './SafetyIndex';
...@@ -35,6 +35,7 @@ export default class Statistical extends Component { ...@@ -35,6 +35,7 @@ export default class Statistical extends Component {
break; break;
case 'error_status': case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~'); console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
this.props.refshExceptAreaData && this.props.refshExceptAreaData();
break; break;
case 'week_safety_index': case 'week_safety_index':
console.log('一周安全指数趋势刷新~~~~~~~~~~~~~~~~~~~~'); console.log('一周安全指数趋势刷新~~~~~~~~~~~~~~~~~~~~');
...@@ -52,6 +53,7 @@ export default class Statistical extends Component { ...@@ -52,6 +53,7 @@ export default class Statistical extends Component {
console.log('首页刷新~~~~~~~~~~~~~~~~~~~~'); console.log('首页刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex(); this.safetyIndex.getSafetyIndex();
this.safetyExecute.safetyExecuteList(); this.safetyExecute.safetyExecuteList();
this.safetyExecute.onlineDayData();
this.equipStatus.equipStatusList(); this.equipStatus.equipStatusList();
this.safetyIndexWeek.safetyIndexWeekData(); this.safetyIndexWeek.safetyIndexWeekData();
this.statisticsCheck.statisticsCheckData(); this.statisticsCheck.statisticsCheckData();
...@@ -64,7 +66,7 @@ export default class Statistical extends Component { ...@@ -64,7 +66,7 @@ export default class Statistical extends Component {
render() { render() {
const wsURL = completeToken(SysWsURL.viewIndexws); const wsURL = completeToken(SysWsURL.convertorView3d);
return ( return (
<div className="statistical"> <div className="statistical">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug /> <AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
...@@ -82,3 +84,7 @@ export default class Statistical extends Component { ...@@ -82,3 +84,7 @@ export default class Statistical extends Component {
); );
} }
} }
Statistical.propTypes = {
refshExceptAreaData: PropTypes.func
};
import React, { Component } from 'react';
import EquipStatusList from './EquipStatusList';
import SafetyExecuteList from './SafetyExecuteList';
import SafetyIndex from './SafetyIndex';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../../../consts/wsUrlConsts';
/**
* 全景监控统计
*/
export default class StatisticalLeft 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 'today_safety_index':
console.log('今日安全指数刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
break;
case 'fire_safety':
console.log('消防安全执行刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyExecute.safetyExecuteList();
break;
case 'monitor_data':
console.log('设备状态检测数据刷新~~~~~~~~~~~~~~~~~~~~');
this.equipStatus.equipStatusList();
break;
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页左侧刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
this.safetyExecute.safetyExecuteList();
this.equipStatus.equipStatusList();
break;
default:
console.log(refreshType,':类型不支持');
}
}
render() {
const wsURL = completeToken(SysWsURL.viewIndexws);
return (
<div className="statistical-left">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
<SafetyIndex ref={node => this.safetyIndex = node} />
<SafetyExecuteList ref={node => this.safetyExecute = node} />
<EquipStatusList ref={node => this.equipStatus = node} />
</div>
);
}
}
import React, { Component } from 'react';
import SafetyIndexWeek from './SafetyIndexWeek';
import StatisticsCheck from './StatisticsCheck';
import StatisticsDuty from './StatisticsDuty';
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.safetyIndexWeek.safetyIndexWeekData();
break;
case 'today_check_status':
console.log('今日巡检情况刷新~~~~~~~~~~~~~~~~~~~~');
this.statisticsCheck.statisticsCheckData();
break;
case 'today_duty':
this.statisticsDuty.statisticsDutyData();
console.log('今日值班刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页右侧刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndexWeek.safetyIndexWeekData();
this.statisticsCheck.statisticsCheckData();
this.statisticsDuty.statisticsDutyData();
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 />
<SafetyIndexWeek ref={node => this.safetyIndexWeek = node} />
<StatisticsCheck ref={node => this.statisticsCheck = node} />
<StatisticsDuty ref={node => this.statisticsDuty = node} />
</div>
);
}
}
...@@ -47,8 +47,8 @@ class FireEquipmentModal extends Component { ...@@ -47,8 +47,8 @@ class FireEquipmentModal extends Component {
<Col className="colTitle">安装位置:</Col> <Col className="colTitle">安装位置:</Col>
<Col className="colValue">{position}</Col> <Col className="colValue">{position}</Col>
</Row> </Row>
</Row> </Row>
); );
}else { }else {
return ( return (
<Row className="point-dialog-body"> <Row className="point-dialog-body">
......
...@@ -42,7 +42,7 @@ const checkListColumns = (self) => { ...@@ -42,7 +42,7 @@ const checkListColumns = (self) => {
key: 'status', key: 'status',
width: '10%', width: '10%',
render: function( text, record, index) { render: function( text, record, index) {
return <span><a href="javascript:;" onClick={function() { self.onCheckStatusClick(record)} }>{text}</a></span>; return <span ><a href="javascript:;" onClick={function() { self.onCheckStatusClick(record)} } style={{color:'rgba(255, 173, 0, 1)'}}>{text}</a></span>;
} }
} }
]; ];
...@@ -76,19 +76,19 @@ class RiskContentTable extends Component { ...@@ -76,19 +76,19 @@ class RiskContentTable extends Component {
onCheckStatusClick =(record)=>{ onCheckStatusClick =(record)=>{
this.props.onCheckStatusClick(record); this.props.onCheckStatusClick(record);
} }
render() { render() {
const { dataList,fetchData } = this.props; const { dataList,fetchData } = this.props;
return ( return (
<div> <div>
<AmosGridTable <AmosGridTable
columns={checkListColumns(this)} columns={checkListColumns(this)}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {false} isPageable = {false}
isChecked = {false} isChecked = {false}
dataList={dataList} dataList={dataList}
/> />
</div> </div>
); );
} }
......
...@@ -73,7 +73,7 @@ class RiskWarnModal extends Component { ...@@ -73,7 +73,7 @@ class RiskWarnModal extends Component {
</p> </p>
}); });
} }
renderEquipWaring =(alarm)=>{ renderEquipWaring =(alarm)=>{
return alarm.map(item =>{ return alarm.map(item =>{
return <p> return <p>
...@@ -82,11 +82,11 @@ class RiskWarnModal extends Component { ...@@ -82,11 +82,11 @@ class RiskWarnModal extends Component {
</p> </p>
}); });
} }
render() { render() {
const { dataList =[], riskSourceInfo={}, inputitemContent=[], alarm =[]} = this.state; const { dataList =[], riskSourceInfo={}, inputitemContent=[], alarm =[]} = this.state;
const {code, level ,name } = riskSourceInfo; const {code, level ,name } = riskSourceInfo;
return ( return (
<div className = "risk-warn"> <div className = "risk-warn">
<div className = "risk-warn-header"> <div className = "risk-warn-header">
...@@ -102,12 +102,12 @@ class RiskWarnModal extends Component { ...@@ -102,12 +102,12 @@ class RiskWarnModal extends Component {
<div className = "risk-warn-table"> <div className = "risk-warn-table">
<AmosGridTable <AmosGridTable
columns={checkListColumns(this)} columns={checkListColumns(this)}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {false} isPageable = {false}
isChecked = {false} isChecked = {false}
dataList={dataList} dataList={dataList}
/> />
</div> </div>
<div className = "risk-warn-content"> <div className = "risk-warn-content">
<p> <p>
......
...@@ -176,7 +176,7 @@ class SearchPane extends Component { ...@@ -176,7 +176,7 @@ class SearchPane extends Component {
<div> <div>
{ this.props.visible && <div className="search-pane-bg"/> } { this.props.visible && <div className="search-pane-bg"/> }
<SidePane className="search-pane" animateName="zoom-right" visible={ this.props.visible }> <SidePane className="search-pane" animateName="zoom-right" visible={ this.props.visible }>
<div className="search-pane-close" onClick={this.props.changeSearchPaneVisible}> <div className="search-pane-close" onClick={this.props.changeSearchPaneVisible()}>
<Icon icon="close" /> <Icon icon="close" />
</div> </div>
<Tabs <Tabs
......
...@@ -27,12 +27,13 @@ class SideControl extends Component { ...@@ -27,12 +27,13 @@ class SideControl extends Component {
* control 点击,第二次点击则取消 * control 点击,第二次点击则取消
*/ */
onBizItemClick = (item, e) => { onBizItemClick = (item, e) => {
const { errorAreaId: riskSourceId } = this.props;
const alreadyActive = this.isActive(item.key); const alreadyActive = this.isActive(item.key);
const newKeys = this.getActiveControl(item.key, alreadyActive); const newKeys = this.getActiveControl(item.key, alreadyActive);
this.setState({ this.setState({
activeControl: newKeys activeControl: newKeys
}); });
this.props.onItemClick && this.props.onItemClick(item, alreadyActive); this.props.onItemClick && this.props.onItemClick({ ...item, riskSourceId }, alreadyActive);
}; };
getActiveControl = (key, alreadyActive) => { getActiveControl = (key, alreadyActive) => {
...@@ -53,7 +54,7 @@ class SideControl extends Component { ...@@ -53,7 +54,7 @@ class SideControl extends Component {
}; };
render() { render() {
const { layerConfig, animationProps } = this.props; const { layerConfig, animationProps } = this.props;
let _bizControls = bizControls; let _bizControls = bizControls;
if (filterUser.includes(loginUserName)) { if (filterUser.includes(loginUserName)) {
let target = _bizControls.find(item => item.key === 'fireResource-point'); let target = _bizControls.find(item => item.key === 'fireResource-point');
...@@ -80,7 +81,8 @@ SideControl.propTypes = { ...@@ -80,7 +81,8 @@ SideControl.propTypes = {
onItemClick: PropTypes.func, onItemClick: PropTypes.func,
write: PropTypes.func, write: PropTypes.func,
toStr: PropTypes.func, toStr: PropTypes.func,
animationProps: PropTypes.object animationProps: PropTypes.object,
errorAreaId: PropTypes.number
}; };
export default SideControl; export default SideControl;
export default {
panoramicIcon: {
safetyrate: require('./../assets/panoramic/main_icon_safetyrate.png'),
safetyup: require('./../assets/panoramic/main_icon_up.png'),
safetyexecute: require('./../assets/panoramic/main_icon_safetyexecute.png'),
select_warn: require('./../assets/panoramic/main_icon_select_warntitle.png'),
select_fire: require('./../assets/panoramic/main_icon_select_fire.png'),
select_risk: require('./../assets/panoramic/main_icon_select_risk.png'),
select_check: require('./../assets/panoramic/main_icon_select_check.png'),
unselect_warn: require('./../assets/panoramic/main_icon_unselect_warntitle.png'),
unselect_fire: require('./../assets/panoramic/main_icon_unselect_fire.png'),
unselect_risk: require('./../assets/panoramic/main_icon_unselect_risk.png'),
unselect_check: require('./../assets/panoramic/main_icon_unselect_check.png'),
arrow_warn: require('./../assets/panoramic/main_icon_left_arrow.png'),
unfold: require('./../assets/panoramic/main_icon_left_unfold.png'),
model_fire: require('./../assets/panoramic/main_icon_model_fire.png'),
model_risk: require('./../assets/panoramic/main_icon_model_risk.png'),
model_patrol: require('./../assets/panoramic/main_icon_model_patrol.png'),
model_close: require('./../assets/panoramic/main_icon_model_close.png'),
textleft: require('./../assets/panoramic/main_icon_textleft.png'),
check_buhege: require('./../assets/panoramic/main_icon_tag_buhege.png'),
check_hege: require('./../assets/panoramic/main_icon_tag_hege.png'),
check_louyan: require('./../assets/panoramic/main_icon_tag_louyan.png'),
check_weizhixing: require('./../assets/panoramic/main_icon_tag_weizhixing.png')
}
};
import * as endConf from 'amos-processor/lib/config/endconf';
const completePrefix = endConf.completePrefix;
const AmosConfig = endConf.AmosConfig;
const baseURI = AmosConfig.httpURI.baseURI;
export const FscSerUrl = {
//*******************************************************************************
// 全景监控
//*******************************************************************************
safetyIndexUrl: completePrefix(baseURI, 'api/view3d/statistics/safetyIndex'),//今日安全指数
safetyIndexDetailUrl: completePrefix(baseURI, 'api/view3d/safetyIndex/detail/{type}'),//今日安全指数详情
safetyExecuteListUrl: completePrefix(baseURI, 'api/view3d/safetyExecute/list/{type}'),//告警列表最新5条
equipStatusListUrl: completePrefix(baseURI, 'api/view3d/equipStatus/list'),//设备状态消息最新5条
safetyIndexWeekUrl: completePrefix(baseURI, 'api/view3d/safetyIndex/week'),//一周安全指数趋势查询
statisticsCheckUrl: completePrefix(baseURI, 'api/view3d/statistics/check'),//今日巡检统计接口
statisticsDutyUrl: completePrefix(baseURI, 'api/view3d/statistics/duty'), //今日值班统计
onlineDayUrl: completePrefix(baseURI, 'api/view3d/online/date') //消防安全执行天数
};
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;
};
import panoramicLeft from './view/panoramic/statistical/indexLeft';
export default {
key: 'panoramicLeft',
component: panoramicLeft
};
import panoramicRight from './view/panoramic/statistical/indexRight';
export default {
key: 'panoramicRight',
component: panoramicRight
};
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import * as helper from 'base-r3d/lib/utils/helper';
import { FscSerUrl } from './../consts/urlConsts';
import { commonGet, commonPost } from './../utils/request';
/**
* 今日安全指数
*/
export const safetyIndexAction = () => {
return commonGet(FscSerUrl.safetyIndexUrl);
};
/**
* 今日安全指数详情
*/
export const safetyIndexDetailAction = ( type ) => {
return commonGet(formatUrl(FscSerUrl.safetyIndexDetailUrl,{ type }));
};
/**
* 消防安全执行天数
*/
export const onlineDayAction = ( ) => {
return commonGet(formatUrl(FscSerUrl.onlineDayUrl));
};
/**
* 告警列表最新5条
*/
export const safetyExecuteListAction = ( type ) => {
return commonGet(formatUrl(FscSerUrl.safetyExecuteListUrl,{ type }));
};
/**
* 设备状态消息最新5条
*/
export const equipStatusListAction = () => {
return commonGet(FscSerUrl.equipStatusListUrl);
};
/**
* 一周安全指数趋势查询
*/
export const safetyIndexWeekAction = () => {
return commonGet(FscSerUrl.safetyIndexWeekUrl);
};
/**
* 今日巡检统计接口
*/
export const statisticsCheckAction = () => {
return commonGet(FscSerUrl.statisticsCheckUrl);
};
/**
* 今日值班统计
*/
export const statisticsDutyAction = () => {
return commonGet(FscSerUrl.statisticsDutyUrl);
};
@import './statistical.scss';
.sys-view-panoramic{
position: absolute;
top: 40px;
height: calc(100% - 40px);
width: 100%;
//background: black;
}
// .statistical {
// position: absolute;
// height: 100%;
// width: 100%;
.statistical-left {
position: absolute;
height: 100%;
width: 350px;
float: left;
z-index: 1;
color: white;
.equipStatusList{
padding-left: 97px;
padding-top: 10px;
height: 33.3%;
.title-child{
width: 100%;
height: 55px;
//margin-top: 5px;
}
.title-date{
height: 20px;
font-size: 13px;
}
.title-text{
font-size: 15px;
}
}
.safetyExecuteList{
height: 40%;
margin-left: 37px;
.up{
height: 90px;
.left{
float: left;
width:36px;
height:36px;
border:1px solid;
color: #00c3ff;
border-radius: 30px;
padding-top: 4px;
text-align: center;
}
.right{
float: left;
padding-left: 30px;
.date{
font-size: 44px;
color: rgba(1,248,64,1);;
}
.day{
margin-left: 5px;
font-size: 18px;
}
span{
font-size: 18px;
}
}
}
.down{
width: 98%;
height: 245px;
margin-left: 30px;
background-image: url('../../assets/panoramic/main_bg_warning.png');
background-repeat: repeat;
background-size: 100% 100%;
margin-top: 10px;
.title{
text-align: left;
padding-top: 15px;
height: 50px;
.icon{
float: left;
display: inline;
img{
padding-left: 20px;
}
}
.arrow{
float: right;
cursor: pointer;
}
.describe{
position: absolute;
width: 70px;
margin-top: -5px;
margin-left: 60px;
font-size: 16px;
color: rgba(240,223,45,1);
}
.bottom-line{
height: 2px;
width: 100%;
margin-top: 25px;
background: radial-gradient(red 24%, black 100%);
}
}
.content{
padding-left: 30px;
width: 90%;
span{
position: absolute;
margin-top: 3px;
font-size: 14px;
color: rgba(255,255,255,1);
}
.title-child{
height: 35px;
border-bottom: 1px solid rgba(196,86,86,0.3);
}
}
}
}
.common-title{
font-size: 16px;
}
.safetyIndex {
height: 33.3%;
display: flex;
margin-left: 37px;
padding-top: 65px;
.safetyIndex-icon {
width: 36px;
height: 36px;
border: 1px solid;
border-radius: 50%;
border-color: #00c3ff;
padding: 5px 7px;
.safetyIndex-safetyrate {
width: 20px;
height: 25px;
}
}
.safetyIndex-content {
height: 100%;
margin-left: 30px;
margin-right: 20px;
&:hover{
background-color: rgba(199,223,245,0.3);
}
.content-item {
margin: 5px;
}
.safetyIndex-content-row {
display: flex;
align-items: flex-end;
.number-large {
font-size: 44px;
color: #00c3ff;
}
.number-unit {
font-size: 16px;
margin-bottom: 10px;
.row-up {
margin-top: 3px;
width: 15px;
height: 19px;
}
}
}
}
.safetyIndex-content-chart {
background-image: url('../../assets/panoramic/main_bg_dashboard.png') !important;
background-repeat: no-repeat !important;
margin-top: -25px !important;
width: 125px !important;
height: 220px !important;
}
}
}
.statistical-right {
position: absolute;
height: 100%;
width: 355px;
//float: right;
padding-top: 40px;
right: 0;
top: 0;
.echart-week {
width: 321px !important;
height: 248px !important;
background-image: url('../../assets/panoramic/main_bg_line_bg.png') !important;
background-repeat: no-repeat !important;
background-position: 31px 47px !important;
left: 24px;
}
.titleIcon {
display: inline-block;
height: 20px;
width: 20px;
vertical-align: middle;
margin-top: -4px;
}
.safetyIndexWeek {
height: 33.3%;
margin-bottom: -5%;
.content-week-font-style {
width: 146px;
height: 18px;
font-size: 18px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(112, 238, 255, 1);
line-height: 65px;
}
}
.statisticsCheck {
height: 50%;
margin-bottom: -106px;
.check-content {
height: 100%;
.content-xj-top {
height: 10%;
width: 146px;
font-size: 18px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(112, 238, 255, 1);
line-height: 65px;
}
.content-xj-middle {
height: 44%;
margin-top: 4%;
}
.content-xj-bottom {
height: 37%;
margin-top: 12px;
.content-week-font {
font-size: 16px;
font-family: SourceHanSansCN-Regular, SourceHanSansCN;
font-weight: 400;
color: rgba(255, 255, 255, 1);
line-height: 24px;
}
.content-font-number {
font-size: 16px;
font-family: SourceHanSansCN-Regular, SourceHanSansCN;
font-weight: 400;
color: rgba(255, 255, 255, 1);
line-height: 24px;
float: right;
}
.yellow-div {
background-image: url('../../assets/panoramic/main_bg_tag_buhege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
padding-top: 6px;
padding-left: 20px;
.yellow-div-content {
width: 252px;
}
}
.green-div {
background-image: url('../../assets/panoramic/main_bg_tag_hege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
padding-top: 6px;
padding-left: 20px;
.green-div-content {
width: 252px;
}
}
.red-div {
background-image: url('../../assets/panoramic/main_bg_tag_louyan.png') !important;
background-repeat: no-repeat !important;
width: 100%;
padding-top: 6px;
padding-left: 20px;
.red-div-content {
width: 252px;
}
}
.grey-div {
background-image: url('../../assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-repeat: no-repeat !important;
width: 100%;
padding-top: 6px;
padding-left: 20px;
.grey-div-content {
width: 252px;
}
}
}
}
.div-echars {
margin-left: 17px;
background-image: url('../../assets/panoramic/circle_bg.png') !important;
background-repeat: no-repeat !important;
height: 200px !important;
background-position: 60px 14px !important;
}
}
.statisticsDuty {
height: 16.7%;
.content-duty-font-style {
width: 146px;
height: 18px;
font-size: 18px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(112, 238, 255, 1);
line-height: 65px;
margin-top: 25%;
margin-bottom: 14%;
}
.content-picture-div {
height: 100%;
width: 100%;
.content-picture-left {
width: 33.3%;
float: left;
display: inline-flex;
.content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
}
.content-wenzi {
width: 100%;
.wenzi-zhiban {
height: 13px;
font-size: 13px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 20px;
}
.wenzi-number {
width: 15px;
height: 26px;
font-size: 26px;
font-family: SourceHanSansCN-Bold, SourceHanSansCN;
font-weight: bold;
color: rgba(34, 243, 254, 1);
line-height: 39px;
-webkit-background-clip: text;
}
}
}
.content-picture-middle {
width: 33.3%;
float: left;
display: inline-flex;
.content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
}
.content-wenzi {
width: 100%;
.wenzi-zhiban {
height: 13px;
font-size: 13px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 20px;
}
.wenzi-number {
width: 15px;
height: 26px;
font-size: 26px;
font-family: SourceHanSansCN-Bold, SourceHanSansCN;
font-weight: bold;
color: rgba(34, 243, 254, 1);
line-height: 39px;
-webkit-background-clip: text;
}
}
}
.content-picture-right {
width: 33.3%;
float: left;
display: inline-flex;
.content-image {
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
}
.content-wenzi {
width: 100%;
.wenzi-zhiban {
height: 13px;
font-size: 13px;
font-family: SourceHanSansCN-Medium, SourceHanSansCN;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 20px;
}
.wenzi-number {
width: 15px;
height: 26px;
font-size: 26px;
font-family: SourceHanSansCN-Bold, SourceHanSansCN;
font-weight: bold;
color: rgba(34, 243, 254, 1);
line-height: 39px;
-webkit-background-clip: text;
}
}
}
}
}
}
//}
.warnModal {
position: fixed;
// width: 1000px;
// height: 600px;
width: calc(100% - 800px);
height: calc(100% - 300px);
margin:auto;
top: 250px;
bottom: 250px;
left: 250px;
right: 250px;
background-image: url('../../assets/panoramic/main_bg_model.png');
background-repeat: repeat;
background-size: 100% 100%;
.close{
width: 100%;
height: 50px;
text-align: right;
margin-top: 5px;
margin-right: 3px;
float: right;
// margin-top: 5px;
// margin-right: 3px;
img{
cursor: pointer;
}
}
.model-line{
float: left;
display: inline;
width: 32%;
height: 88%;
text-align: center;
padding-left: 35px;
margin-top: 5px;
margin-left: 10px;
overflow: auto;
.model-title{
height: 30px;
font-size:16px;
color:rgba(240,223,45,1);
padding-top: 10px;
}
.model-content{
.content-div{
min-width: 80px;
min-height: 120px;
text-align: left;
padding-top: 20px;
.title{
height: 30px;
font-size: 16px;
color:rgba(240,223,45,1);
}
.next-title{
padding-left: 5px;
}
.rows{
padding-left: 15px;
font-size: 14px;
color:rgba(255,255,255,1);
.row{
display: inline-block;
height: 28px;
}
.date{
padding-left: 25px;
}
}
}
}
}
}
export default function(data, delRequest){
window.setLoading && window.setLoading(false);
return new Promise((resolve, reject) => {
if (data) {
if (data.dataList || data.dataList === null){
if(data.result==='SUCCESS'){
resolve(data.dataList);
}else{
resolve(data.result);
}
} else if (data.result || data.result === null){
resolve(data.result);
}else{
resolve(data);
}
} else {
if (data) {
reject(data.message);
} else {
reject(data);
}
}
});
}
import amosRequest, { singleFetch } from 'amos-processor/lib/fetch/amosRequest';
import { utils, Store } from 'amos-tool';
import { message } from 'amos-framework';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import SysConsts from 'amos-processor/lib/config/consts';
import imgStatic from './../consts/imgStatic';
const panoramicIcon = imgStatic.panoramicIcon;
import payload from './payload';
const lsTool = Store.lsTool;
const defaultPageable = {
page: 0,
size: 10
};
const defaultHeaders = {
appKey: 'CONVERTER_STATION',
product: 'CONVERTER_STATION_WEB',
channelType: '3dpage'
};
const compleHeaders = () => {
return {
...defaultHeaders,
token: getToken(),
};
};
/**
* 获取 token
*/
const getToken = () => {
return lsTool.read(SysConsts.token);
}
/**
* 删除全局变量requests中的地址
* @param {*} url
* @param {*} method
*/
const delRequest = (url, method) => {
if (window.requests && window.requests.length > 0) {
window.requests = window.requests.filter(e => e.url !== url && e.method !== method);
}
};
/**
* 构建分页
*/
const buildPageable = (url, pageable = defaultPageable) => {
let { page, size } = pageable;
return `${url}?page=${page}&size=${size}`;
};
/**
* 转换指定值为 JSON
* @param {array} dataList
* @param {string} key
*/
const convertDatalist = (dataList = [], key = 'content') => {
const newDL = dataList.map(d => {
if (!utils.isNil(d[key]) && utils.isString(d[key])) {
d[key] = JSON.parse(d[key]);
}
return d;
});
return newDL;
};
export function commonGet(url) {
window.setLoading && window.setLoading(true);
return amosRequest(url, {
timeout: 10000000 ,
method: 'GET',
headers: compleHeaders(),
reject(error){
window.setLoading && window.setLoading(false);
delRequest(url, 'GET');
//message.danger(error.message || '请求失败,服务器错误!');
}
}).then(data => payload(data));
}
export function commonPost(url, data, params) {
window.setLoading && window.setLoading(true);
return amosRequest(url, {
timeout: 10000000,
method: 'POST',
headers: compleHeaders(),
body: data,
reject(error){
delRequest(url, 'POST');
window.setLoading && window.setLoading(false);
//message.danger(error.message || '请求失败,服务器错误!');
}
}).then(data => payload(data));
}
export function commonPut(url, data, params) {
window.setLoading && window.setLoading(true);
return amosRequest(url, {
timeout: 10000000,
method: 'PUT',
headers: compleHeaders(),
body: data,
reject(error){
delRequest(url, 'PUT');
window.setLoading && window.setLoading(false);
//message.danger(error.message || '请求失败,服务器错误!');
}
}).then(data => payload(data));
}
export function commonDelete(url, data, params) {
window.setLoading && window.setLoading(true);
return amosRequest(url, {
timeout: 10000000 ,
method: 'DELETE',
headers: compleHeaders(),
body: data,
reject(error){
window.setLoading && window.setLoading(false);
//message.danger(error.message || '请求失败,服务器错误!');
}
}).then(data => payload(data));
}
export const getWithCookie = (url) => {
return commonGet(url, {
hasCookie: true
});
};
export const getIcon = (alarmType) => {
return panoramicIcon[`${alarmType}`];
};
export { amosRequest, singleFetch, convertDatalist, buildPageable, formatUrl };
import React, { Component } from 'react';
import Statistical from './statistical'
/**
* 全景监控
*/
export default class Panoramic extends Component {
render() {
return (
<div className="sys-view-panoramic">
<Statistical/>
</div>
);
}
}
import React, { Component } from 'react';
import { equipStatusListAction } from './../../../services/panoramicService';
/**
* 设备状态消息
*/
export default class EquipStatusList extends Component {
constructor(props) {
super(props);
this.state = {
equipStatusList: []
};
}
componentDidMount(){
this.equipStatusList();
}
equipStatusList = () => {
equipStatusListAction().then(data => {
this.setState({
equipStatusList: data
});
});
}
renderContent = (datas) => {
return (
datas.map((item, index) => {
return (
<div key={item.id} className="title-child">
<div className="title-date" >{item.changeDate}</div>
<div className="title-text" >{item.label}</div>
</div>
);
})
);
}
render() {
let { equipStatusList } = this.state;
return (
<div className="equipStatusList">
{this.renderContent(equipStatusList)}
</div>
);
}
}
import React, { Component } from 'react';
import { safetyIndexDetailAction } from './../../../services/panoramicService';
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.safetyIndexDetail(type);
}
safetyIndexDetail = (type) => {
safetyIndexDetailAction(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 imgStatic from './../../../consts/imgStatic';
import { onlineDayAction, safetyExecuteListAction } from './../../../services/panoramicService';
import { getIcon } from './../../../utils/request';
import { warnTypes } from './conf';
const panoramicIcon = imgStatic.panoramicIcon;
/**
* 告警列表
*/
export default class SafetyExecuteList extends Component {
constructor(props) {
super(props);
this.state = {
year: 0,
day: 0,
alarmData: [],
isVisable: false,
selectKey: 'fire',
selectValue: ''
};
}
componentDidMount(){
this.onlineDayData();
this.safetyExecuteList();
}
onlineDayData = () => {
onlineDayAction().then(data => {
this.setState({
year: data.year,
day: data.day
});
});
}
safetyExecuteList = (type) => {
if (!type){
type = this.state.selectKey;
}
let value;
safetyExecuteListAction(type).then(data => {
warnTypes.some(e => {
if (e.type === type) {
value = e.label;
return true;
}
});
this.setState({
alarmData: data,
selectValue: value
});
});
}
/**
* 展开
*
* @memberof SafetyExecuteList
*/
unfoldOnClick = (flag) =>{
this.setState({
isVisable: flag
});
}
onClickIcon = (e) => {
if (e.type !== 'warn'){
this.setState({
selectKey: e.key
});
this.safetyExecuteList(e.key);
}
}
renderContent = (datas) => {
return (
datas.map((item, index) => {
return (
<div key={item.id} className="title-child">
<span className="title-text" >{item.label}</span>
</div>
);
})
);
}
renderIcon = (datas) => {
let { selectKey } = this.state;
return (
datas.map((item, index) => {
return (
<div key={item.id} className="icon">
{ selectKey === item.key ? <img src={getIcon(item.icon)} onClick={()=>this.onClickIcon(item)} /> : <img src={getIcon(item.unIcon)} onClick={()=>this.onClickIcon(item)} />}
</div>
);
})
);
}
render() {
let { year, day, alarmData, isVisable, selectValue } = this.state;
let dayNum ;
if (year > 0 ){
dayNum = year + ' 年 ' + day;
} else {
dayNum = ' ' + day;
}
return (
isVisable ?
(<div className='safetyExecuteList'>
<img src={panoramicIcon.unfold} onClick={() => this.unfoldOnClick(false)}></img>
</div>) :
(<div className="safetyExecuteList">
<div className='up'>
<div className='left'>
<img src={panoramicIcon.safetyexecute}></img>
</div>
<div className='right'>
<div className='common-title'>
<span>消防安全执行</span>
</div>
<div className='content'>
<span className='date'>{dayNum}</span>
<span className='day'></span>
</div>
</div>
</div>
<div className='down'>
<div className='title'>
{this.renderIcon(warnTypes)}
<span className='describe'>{selectValue}</span>
<img className='arrow' src={panoramicIcon.arrow_warn} onClick={() => this.unfoldOnClick(true)}></img>
<div className='bottom-line'></div>
</div>
<div className='content'>
{this.renderContent(alarmData)}
</div>
</div>
</div>)
);
}
}
import React, { Component } from 'react';
import ReactEcharts from 'amos-viz/lib/echarts';
import { safetyIndexAction } from './../../../services/panoramicService';
import imgStatic from './../../../consts/imgStatic';
import ModelContent from './ModelContent';
import { warnController } from './conf';
import { getIcon } from './../../../utils/request';
const panoramicIcon = imgStatic.panoramicIcon;
/**
* 今日安全指数
*/
export default class SafetyIndex extends Component {
constructor(props) {
super(props);
this.state = {
safetyIndexData: {},
modelVisable: false
};
}
componentDidMount() {
this.getSafetyIndex();
}
getSafetyIndex = () => {
safetyIndexAction().then(safetyIndexData => {
this.setState({ safetyIndexData });
});
}
getOption = () => {
const { safetyIndexData } = this.state;
return {
tooltip: {
show:false
},
toolbox: {
show:false,
feature: {
mark: {show: false},
restore: {show: false},
saveAsImage: {show: false}
}
},
series: [
{
name: '今日安全指数',
type: 'gauge',
center: ['10%', '48%'], // 默认全局居中
radius: '60%',
min: 0,
max: 100,
endAngle: 90,
startAngle:-90,
splitNumber: 3,
axisLine: { // 坐标轴线
show:false,
lineStyle: { // 属性lineStyle控制线条样式
color: [
[0.5, 'red'],
[0.9, 'Orange'],
[0.95, 'Gold'],
[1, '#00C3FF']
],
width: 0,
opacity : 0
}
},
axisLabel: { // 坐标轴小标记
show:false
},
axisTick: { // 坐标轴小标记
show:false
},
splitLine: { // 分隔线
show:false
},
pointer: {
width: 5
},
title: {
show:false
},
detail: {
show:false
},
data: [{value: safetyIndexData.safetyIndex, name: '今日安全指数'}]
}
]
}
}
modelOpen = (flag) =>{
this.setState({
modelVisable: flag
});
}
renderWarnContent = () =>{
return (
<div className='warnModal'>
<div className='close'>
<img src={panoramicIcon.model_close} onClick={() => this.modelOpen(false)}></img>
</div>
{warnController.map(item => {
return (
<div className='model-line'>
<div>
<img src={getIcon(item.icon)}></img>
</div>
<div className='model-title'>{item.label}</div>
<ModelContent type={item.type} />
</div>
);
})}
</div>
);
}
render() {
const { safetyIndexData, modelVisable } = this.state;
return (
<div className="safetyIndex">
<div className="safetyIndex-icon">
<img className="safetyIndex-safetyrate" src={panoramicIcon.safetyrate} alt="safetyrate" />
</div>
<div className='safetyIndex-content' onClick={() => this.modelOpen(true)}>
<div>今日安全指数 </div>
<div className='safetyIndex-content-row'>
<div className='number-large'>{safetyIndexData.safetyIndex}</div>
<span className='number-unit'>&nbsp;&nbsp;
<img src={panoramicIcon.safetyup} className="row-up" alt="up" />
</span>
</div>
{
[{name:'风险值上升',num:safetyIndexData.riskExceptionNum},
{name:'巡检不合格',num:safetyIndexData.checkExceptionNum},
{name:'火灾报警',num:safetyIndexData.fireExceptionNum}].map((item,index)=>
<div className="content-item">{item.name} {item.num}</div>
)
}
</div>
<ReactEcharts className='safetyIndex-content-chart' option={this.getOption()}/>
{ modelVisable && this.renderWarnContent()}
</div>
);
}
}
import React, { Component } from 'react';
import ReactEcharts from 'amos-viz/lib/echarts';
import echarts from 'echarts/lib/echarts';
import { safetyIndexWeekAction } from './../../../services/panoramicService';
import { getIcon } from './../../../utils/request';
/**
* 一周安全指数
*/
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 SafetyIndexWeek extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}
componentDidMount() {
this.safetyIndexWeekData();
}
safetyIndexWeekData = () => {
safetyIndexWeekAction().then(data => {
this.setState({
data
});
});
}
getOptionsx = (map) => {
return {
xAxis: {
type: 'category',
boundaryGap: false,
data: map.get("dates"),
axisLabel: {
interval: 0,//横轴信息全部显示
// rotate:40,
textStyle: {
color: 'rgba(255,255,255,1)',
fontSize: '12',
fontFamiliy: "SourceHanSansCN-Medium,SourceHanSansCN"
},
margin: 15,//刻度标签与轴线之间的距离。
}
},
yAxis: {
type: 'value',
splitLine: { show: false },//去除网格线
axisLine: {
lineStyle: {
color: '#2A5D75',
}
},
// 改变y轴字体颜色和大小
axisLabel: {
textStyle: {
color: 'rgba(255,255,255,1)',
fontSize: '12',
fontFamiliy: "SourceHanSansCN-Medium,SourceHanSansCN"
},
margin: 15,//刻度标签与轴线之间的距离。
},
},
series: [{
data: map.get("values"),
type: 'line',
symbol: 'circle',//折线点设置为实心点
smooth: true, //这个是把线变成
itemStyle: {
normal: {
color: "#E1B623", //折线点的颜色
lineStyle: {
width: 3,//折线宽度
//颜色渐变函数 前四个参数分别表示四个位置依次为左、下、右、上
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,
color: '#FF0000'
}, {
offset: 0.2,
color: '#DDBF28'
}, {
offset: 0.4,
color: '#FF7400'
}, {
offset: 0.5,
color: '#00ADFF'
}, {
offset: 0.6,
color: '#DDBF28'
}])
}
}
},
areaStyle: {
normal: {
//颜色渐变函数 前四个参数分别表示四个位置依次为左、下、右、上#766016 transparent
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#00ADFF'
}, {
offset: 0.1,
color: '#6e6a26'
}, {
offset: 0.2,
color: '#766016'
}, {
offset: 0.5,
color: '#4b2006'
},{
offset: 0.6,
color: '#280d07'
}])
}
}
}]
};
}
handleData = (data) => {
let map = new Map();
let dates = [];
let values = [];
if (data && data.length > 0) {
data.map(item => {
let time2 = item.date.substring(5);
dates.push(time2)
values.push(item.value)
})
}
map.set("dates", dates);
map.set("values", values);
return map;
}
render() {
let { data } = this.state;
let map = this.handleData(data);
return (
<div className="safetyIndexWeek">
<div className="content-week-font-style">
<span className='titleIcon' style={{ background: `url(${getIcon('textleft')}) no-repeat center center/100% 100%` }}></span>一周安全趋势</div>
{/* <img src="/src/assets/panoramic/statistical/main_icon_textleft.png" ></img> */}
<ReactEcharts option={this.getOptionsx(map)} className='echart-week' />
</div>
);
}
}
SafetyIndexWeek.propTypes = {
};
export default SafetyIndexWeek;
import React, { Component } from 'react';
import ReactEcharts from 'amos-viz/lib/echarts';
import { statisticsCheckAction } from './../../../services/panoramicService';
import { getIcon } from './../../../utils/request';
const option = {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data: []
},
//绿色 黄色 灰色 红色
// color: ['#C0C0C0', '#FF0000', '#00FF00', '#FFFF00'],
color: ['#C0C0C0', '#FF0000', '#00FF00', '#FFFF00'],
series: [
{
type: 'pie',
radius: ['80%', '70%'],
center: ['35%', '40%'], // 默认全局居中
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: [
{ value: 335, name: '未执行' },
{ value: 310, name: '漏检' },
{ value: 234, name: '合格' },
{ value: 135, name: '不合格' },
]
}
]
};
/**
* 今日巡检统计
*/
class StatisticsCheck extends Component {
constructor(props) {
super(props);
this.state = {
data: []
};
}
componentDidMount() {
this.statisticsCheckData();
}
statisticsCheckData = () => {
statisticsCheckAction().then(data => {
this.setState({
data
});
});
}
getOptionsx = (data) => {
return {
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
x: 'left',
data: []
},
//绿色 黄色 灰色 红色
// color: ['#C0C0C0', '#FF0000', '#00FF00', '#FFFF00'],
color: ['#C0C0C0', '#00FF00', '#FFFF00', '#FF0000'],
series: [
{
type: 'pie',
radius: ['80%', '70%'],
center: ['35%', '40%'], // 默认全局居中
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
emphasis: {
show: true,
textStyle: {
fontSize: '30',
fontWeight: 'bold'
}
}
},
labelLine: {
normal: {
show: false
}
},
data: data
}
]
};;
}
handleData = (data) => {
let map = new Map();
if (data && data.length > 0) {
data.map(item => {
map.set(item.name, item.value);
})
}
return map;
}
rederStyle = (checkType) => {
const style = {
background: `url(${getIcon(checkType)}) no-repeat center center/100% 100%`
};
return style;
}
render() {
let { data } = this.state;
let map = this.handleData(data);
let weikaishi = map.get("未开始");
let hege = map.get("合格");
let buhege = map.get("不合格");
let loujian = map.get("漏检");
return (
<div className="statisticsCheck">
<div className="check-content">
<div className="content-xj-top">
<span className='titleIcon' style={this.rederStyle('textleft')}></span> 今日巡
</div>
<div className="content-xj-middle">
<ReactEcharts option={this.getOptionsx(data)} eventpool={this.onclick} className="div-echars" />
</div>
<div className="content-xj-bottom" >
<div className="yellow-div">
<div className="yellow-div-content">
<span className='titleIcon' style={this.rederStyle('check_buhege')}></span><span className="content-week-font"> 合
<span className="content-font-number"> {hege}</span>
</span>
</div>
</div>
<div className="green-div">
<div className="green-div-content">
<span className='titleIcon' style={this.rederStyle('check_hege')}></span><span className="content-week-font"> 未开
<span className="content-font-number">{weikaishi}</span>
</span>
</div>
</div>
<div className="red-div">
<div className="red-div-content">
<span className='titleIcon' style={this.rederStyle('check_louyan')}></span><span className="content-week-font"> 漏
<span className="content-font-number"> {loujian}</span>
</span>
</div>
</div>
<div className="grey-div">
<div className="grey-div-content">
<span className='titleIcon' style={this.rederStyle('check_weizhixing')}></span><span className="content-week-font"> 不合
<span className="content-font-number"> {buhege}</span>
</span>
</div>
</div>
</div>
</div>
</div>
);
}
}
StatisticsCheck.propTypes = {
};
export default StatisticsCheck;
import React, { Component } from 'react';
import { statisticsDutyAction } from './../../../services/panoramicService';
import { getIcon } from './../../../utils/request';
/**
* 今日值班统计
*/
class StatisticsDuty extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}
componentDidMount() {
this.statisticsDutyData();
}
statisticsDutyData = () => {
statisticsDutyAction().then(data => {
this.setState({
data
});
});
}
render() {
let { data } = this.state;
return (
<div className="statisticsDuty">
<div className="content-duty-font-style">
<span className='titleIcon' style={{ background: `url(${getIcon('textleft')}) no-repeat center center/100% 100%` }}></span> 今日值
</div>
<div className="content-picture-div">
<div className="content-picture-left">
<div className="content-image"></div>
<div className="content-wenzi">
<div className="wenzi-zhiban">值班</div>
<div className="wenzi-number">{data.dutyPersonNumber}</div>
</div>
</div>
<div className="content-picture-middle">
<div className="content-image"></div>
<div className="content-wenzi">
<div className="wenzi-zhiban">消防</div>
<div className="wenzi-number">{data.firePersonNumber}</div>
</div>
</div>
<div className="content-picture-right">
<div className="content-image"></div>
<div className="content-wenzi">
<div className="wenzi-zhiban">保安</div>
<div className="wenzi-number">{data.securityPersonNumber}</div>
</div>
</div>
</div>
{/* <img src="/src/assets/panoramic/statistical/main_icon_baoan.png" ></img>
<img src="/src/assets/panoramic/statistical/main_icon_baoan.png" ></img> */}
</div>
);
}
}
StatisticsDuty.propTypes = {
};
export default StatisticsDuty;
/**
* 告警控制
*/
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 EquipStatusList from './EquipStatusList';
import SafetyExecuteList from './SafetyExecuteList';
import SafetyIndex from './SafetyIndex';
import SafetyIndexWeek from './SafetyIndexWeek';
import StatisticsCheck from './StatisticsCheck';
import StatisticsDuty from './StatisticsDuty';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../../../consts/wsUrlConsts';
/**
* 全景监控统计
*/
export default class Statistical 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 'today_safety_index':
console.log('今日安全指数刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
break;
case 'fire_safety':
console.log('消防安全执行刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyExecute.safetyExecuteList();
break;
case 'monitor_data':
console.log('设备状态检测数据刷新~~~~~~~~~~~~~~~~~~~~');
this.equipStatus.equipStatusList();
break;
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'week_safety_index':
console.log('一周安全指数趋势刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndexWeek.safetyIndexWeekData();
break;
case 'today_check_status':
console.log('今日巡检情况刷新~~~~~~~~~~~~~~~~~~~~');
this.statisticsCheck.statisticsCheckData();
break;
case 'today_duty':
this.statisticsDuty.statisticsDutyData();
console.log('今日值班刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
this.safetyExecute.safetyExecuteList();
this.equipStatus.equipStatusList();
this.safetyIndexWeek.safetyIndexWeekData();
this.statisticsCheck.statisticsCheckData();
this.statisticsDuty.statisticsDutyData();
break;
default:
console.log(refreshType,':类型不支持');
}
}
render() {
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">
<SafetyIndex ref={node => this.safetyIndex = node} />
<SafetyExecuteList ref={node => this.safetyExecute = node} />
<EquipStatusList ref={node => this.equipStatus = node} />
</div>
<div className="statistical-right">
<SafetyIndexWeek ref={node => this.safetyIndexWeek = node} />
<StatisticsCheck ref={node => this.statisticsCheck = node} />
<StatisticsDuty ref={node => this.statisticsDuty = node} />
</div>
</div>
);
}
}
import React, { Component } from 'react';
import EquipStatusList from './EquipStatusList';
import SafetyExecuteList from './SafetyExecuteList';
import SafetyIndex from './SafetyIndex';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../../../consts/wsUrlConsts';
/**
* 全景监控统计
*/
export default class StatisticalLeft 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 'today_safety_index':
console.log('今日安全指数刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
break;
case 'fire_safety':
console.log('消防安全执行刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyExecute.safetyExecuteList();
break;
case 'monitor_data':
console.log('设备状态检测数据刷新~~~~~~~~~~~~~~~~~~~~');
this.equipStatus.equipStatusList();
break;
case 'error_status':
console.log('异常区域刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页左侧刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndex.getSafetyIndex();
this.safetyExecute.safetyExecuteList();
this.equipStatus.equipStatusList();
break;
default:
console.log(refreshType,':类型不支持');
}
}
render() {
const wsURL = completeToken(SysWsURL.viewIndexws);
return (
<div className="statistical-left">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
<SafetyIndex ref={node => this.safetyIndex = node} />
<SafetyExecuteList ref={node => this.safetyExecute = node} />
<EquipStatusList ref={node => this.equipStatus = node} />
</div>
);
}
}
import React, { Component } from 'react';
import SafetyIndexWeek from './SafetyIndexWeek';
import StatisticsCheck from './StatisticsCheck';
import StatisticsDuty from './StatisticsDuty';
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.safetyIndexWeek.safetyIndexWeekData();
break;
case 'today_check_status':
console.log('今日巡检情况刷新~~~~~~~~~~~~~~~~~~~~');
this.statisticsCheck.statisticsCheckData();
break;
case 'today_duty':
this.statisticsDuty.statisticsDutyData();
console.log('今日值班刷新~~~~~~~~~~~~~~~~~~~~');
break;
case 'all':
console.log('首页右侧刷新~~~~~~~~~~~~~~~~~~~~');
this.safetyIndexWeek.safetyIndexWeekData();
this.statisticsCheck.statisticsCheckData();
this.statisticsDuty.statisticsDutyData();
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 />
<SafetyIndexWeek ref={node => this.safetyIndexWeek = node} />
<StatisticsCheck ref={node => this.statisticsCheck = node} />
<StatisticsDuty ref={node => this.statisticsDuty = node} />
</div>
);
}
}
import parseWidgetsMod from 'amos-viz/lib/widgets/modLoader'; import parseWidgetsMod from 'amos-viz/lib/widgets/modLoader';
import { commonRegister } from 'amos-viz/lib/widgets';
import Unknown from './Unknown';
const innerModularType = commonRegister.innerModularType;
const getMods = (req) => { const getMods = (req) => {
return parseWidgetsMod(req, true); return parseWidgetsMod(req, true);
}; };
// 注册未知组件
commonRegister.registerSketchComponent('unknown', Unknown);
// 注册所有的 SketchComponent // 注册所有的 SketchComponent
const scReq = require.context('./components', true, /^\.\/([^_][\w-]+\/)+index\.(js|jsx)?$/); const scReq = require.context('./components', true, /^\.\/([^_][\w-]+\/)+index\.(js|jsx)?$/);
const sketchComponets = getMods(scReq);
Object.keys(sketchComponets).forEach(k => {
commonRegister.registerSketchComponent(k, sketchComponets[k]);
});
export function getSketchCompnents(alias){ const mods = getMods(scReq);
return commonRegister.getModularClass(innerModularType.sketchComponent, alias, Unknown);
} Object.keys(mods).forEach(mk => {
if (mk !== 'default'){
exports[mk] = mods[mk];
}
});
{
"header": {
"reportVersion": 1,
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20200522.154801.22564.0.001.json",
"dumpEventTime": "2020-05-22T15:48:01Z",
"dumpEventTimeStamp": "1590133681815",
"processId": 22564,
"cwd": "G:\\workSpace\\amos-station-module-view",
"commandLine": [
"node",
"G:\\workSpace\\amos-station-module-view\\node_modules\\.bin\\\\..\\webpack-dev-server\\bin\\webpack-dev-server.js"
],
"nodejsVersion": "v12.16.1",
"wordSize": 64,
"arch": "x64",
"platform": "win32",
"componentVersions": {
"node": "12.16.1",
"v8": "7.8.279.23-node.31",
"uv": "1.34.0",
"zlib": "1.2.11",
"brotli": "1.0.7",
"ares": "1.15.0",
"modules": "72",
"nghttp2": "1.40.0",
"napi": "5",
"llhttp": "2.0.4",
"http_parser": "2.9.3",
"openssl": "1.1.1d",
"cldr": "35.1",
"icu": "64.2",
"tz": "2019c",
"unicode": "12.1"
},
"release": {
"name": "node",
"lts": "Erbium",
"headersUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz",
"sourceUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1.tar.gz",
"libUrl": "https://nodejs.org/download/release/v12.16.1/win-x64/node.lib"
},
"osName": "Windows_NT",
"osRelease": "10.0.18362",
"osVersion": "Windows 10 Pro",
"osMachine": "x86_64",
"cpus": [
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 9004000,
"nice": 0,
"sys": 13363484,
"idle": 177914734,
"irq": 7639265
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 23701859,
"nice": 0,
"sys": 5507062,
"idle": 171072890,
"irq": 224609
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 14529437,
"nice": 0,
"sys": 3487687,
"idle": 182264703,
"irq": 70984
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 12886546,
"nice": 0,
"sys": 3070281,
"idle": 184325000,
"irq": 63265
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 10174453,
"nice": 0,
"sys": 3047859,
"idle": 187059500,
"irq": 44093
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 11842968,
"nice": 0,
"sys": 3207703,
"idle": 185231140,
"irq": 59468
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 9745843,
"nice": 0,
"sys": 3724109,
"idle": 186811859,
"irq": 51250
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 11547765,
"nice": 0,
"sys": 4759390,
"idle": 183974656,
"irq": 69046
}
],
"networkInterfaces": [
{
"name": "以太网",
"internal": false,
"mac": "e4:54:e8:bc:0c:f8",
"address": "fe80::fc0b:6bad:6f5:3715",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 9
},
{
"name": "以太网",
"internal": false,
"mac": "e4:54:e8:bc:0c:f8",
"address": "172.16.3.26",
"netmask": "255.255.0.0",
"family": "IPv4"
},
{
"name": "Loopback Pseudo-Interface 1",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
"family": "IPv6",
"scopeid": 0
},
{
"name": "Loopback Pseudo-Interface 1",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "127.0.0.1",
"netmask": "255.0.0.0",
"family": "IPv4"
}
],
"host": "DESKTOP-KKH52JE"
},
"javascriptStack": {
"message": "No stack.",
"stack": [
"Unavailable."
]
},
"nativeStack": [
{
"pc": "0x00007ff7657119f9",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+10873"
},
{
"pc": "0x00007ff765715e1c",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+28316"
},
{
"pc": "0x00007ff765714dd8",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+24152"
},
{
"pc": "0x00007ff7658134cb",
"symbol": "v8::base::CPU::has_sse+38363"
},
{
"pc": "0x00007ff766029f4e",
"symbol": "v8::Isolate::ReportExternalAllocationLimitReached+94"
},
{
"pc": "0x00007ff766012021",
"symbol": "v8::SharedArrayBuffer::Externalize+833"
},
{
"pc": "0x00007ff765ede57c",
"symbol": "v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436"
},
{
"pc": "0x00007ff765eda289",
"symbol": "v8::internal::Heap::AddRetainedMap+2713"
},
{
"pc": "0x00007ff765efb4ab",
"symbol": "v8::internal::Factory::NewFixedArrayWithFiller+107"
},
{
"pc": "0x00007ff765efb431",
"symbol": "v8::internal::Factory::NewUninitializedFixedArray+65"
},
{
"pc": "0x00007ff765dd857f",
"symbol": "v8::debug::Script::GetIsolate+8527"
},
{
"pc": "0x00007ff765c8824a",
"symbol": "v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+162938"
},
{
"pc": "0x00007ff766474ddd",
"symbol": "v8::internal::SetupIsolateDelegate::SetupHeap+546637"
},
{
"pc": "0x000003603707cc7a",
"symbol": ""
}
],
"javascriptHeap": {
"totalMemory": 2152067072,
"totalCommittedMemory": 2152067072,
"usedMemory": 2138955600,
"availableMemory": 47843136,
"memoryLimit": 2197815296,
"heapSpaces": {
"read_only_space": {
"memorySize": 262144,
"committedMemory": 262144,
"capacity": 32808,
"used": 32808,
"available": 0
},
"new_space": {
"memorySize": 1048576,
"committedMemory": 1048576,
"capacity": 1047456,
"used": 0,
"available": 1047456
},
"old_space": {
"memorySize": 296632320,
"committedMemory": 296632320,
"capacity": 294091968,
"used": 294091968,
"available": 0
},
"code_space": {
"memorySize": 2002944,
"committedMemory": 2002944,
"capacity": 1728800,
"used": 1728800,
"available": 0
},
"map_space": {
"memorySize": 10489856,
"committedMemory": 10489856,
"capacity": 2213360,
"used": 2213360,
"available": 0
},
"large_object_space": {
"memorySize": 1841008640,
"committedMemory": 1841008640,
"capacity": 1840344376,
"used": 1840344376,
"available": 0
},
"code_large_object_space": {
"memorySize": 622592,
"committedMemory": 622592,
"capacity": 544288,
"used": 544288,
"available": 0
},
"new_large_object_space": {
"memorySize": 0,
"committedMemory": 0,
"capacity": 1047456,
"used": 0,
"available": 1047456
}
}
},
"resourceUsage": {
"userCpuSeconds": 331.156,
"kernelCpuSeconds": 42.39,
"cpuConsumptionPercent": 2.04672,
"maxRss": 2209996800,
"pageFaults": {
"IORequired": 23953749,
"IONotRequired": 0
},
"fsActivity": {
"reads": 9081,
"writes": 251
}
},
"libuv": [
],
"environmentVariables": {
"=G:": "G:\\workSpace\\amos-station-module-view",
"ALLUSERSPROFILE": "C:\\ProgramData",
"APPDATA": "C:\\Users\\DELL\\AppData\\Roaming",
"ChocolateyInstall": "C:\\ProgramData\\chocolatey",
"ChocolateyLastPathUpdate": "132289007529906412",
"CLASSPATH": ".;C:\\Program Files\\Java\\jdk1.8.0_201\\lib\\dt.jar;C:\\Program Files\\Java\\jdk1.8.0_201\\lib\\tools.jar;",
"COLORTERM": "truecolor",
"CommonProgramFiles": "C:\\Program Files\\Common Files",
"CommonProgramFiles(x86)": "C:\\Program Files (x86)\\Common Files",
"CommonProgramW6432": "C:\\Program Files\\Common Files",
"COMPUTERNAME": "DESKTOP-KKH52JE",
"ComSpec": "C:\\Windows\\system32\\cmd.exe",
"dp0": "G:\\workSpace\\amos-station-module-view\\node_modules\\.bin\\",
"DriverData": "C:\\Windows\\System32\\Drivers\\DriverData",
"GIT_ASKPASS": "c:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass.sh",
"HOME": "C:\\Users\\DELL",
"HOMEDRIVE": "C:",
"HOMEPATH": "\\Users\\DELL",
"INIT_CWD": "G:\\workSpace\\amos-station-module-view",
"JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_201",
"LANG": "zh_CN.UTF-8",
"LOCALAPPDATA": "C:\\Users\\DELL\\AppData\\Local",
"LOGONSERVER": "\\\\DESKTOP-KKH52JE",
"NODE": "F:\\install\\nodejs\\node.exe",
"NODE_ENV": "development ",
"NODE_EXE": "F:\\install\\nodejs\\\\node.exe",
"NODE_PATH": "F:\\install\\nodejs\\node_modules",
"NPM_CLI_JS": "F:\\install\\nodejs\\\\node_modules\\npm\\bin\\npm-cli.js",
"npm_config_access": "",
"npm_config_allow_same_version": "",
"npm_config_also": "",
"npm_config_always_auth": "",
"npm_config_argv": "{\"remain\":[],\"cooked\":[\"start\"],\"original\":[\"start\"]}",
"npm_config_audit": "true",
"npm_config_audit_level": "low",
"npm_config_auth_type": "legacy",
"npm_config_before": "",
"npm_config_bin_links": "true",
"npm_config_browser": "",
"npm_config_ca": "",
"npm_config_cache": "F:\\install\\nodejs\\node_cache",
"npm_config_cache_lock_retries": "10",
"npm_config_cache_lock_stale": "60000",
"npm_config_cache_lock_wait": "10000",
"npm_config_cache_max": "Infinity",
"npm_config_cache_min": "10",
"npm_config_cafile": "",
"npm_config_cert": "",
"npm_config_cidr": "",
"npm_config_color": "true",
"npm_config_commit_hooks": "true",
"npm_config_depth": "Infinity",
"npm_config_description": "true",
"npm_config_dev": "",
"npm_config_dry_run": "",
"npm_config_editor": "notepad.exe",
"npm_config_engine_strict": "",
"npm_config_fetch_retries": "2",
"npm_config_fetch_retry_factor": "10",
"npm_config_fetch_retry_maxtimeout": "60000",
"npm_config_fetch_retry_mintimeout": "10000",
"npm_config_force": "",
"npm_config_format_package_lock": "true",
"npm_config_fund": "true",
"npm_config_git": "git",
"npm_config_git_tag_version": "true",
"npm_config_global": "",
"npm_config_globalconfig": "F:\\install\\nodejs\\node_global\\etc\\npmrc",
"npm_config_globalignorefile": "F:\\install\\nodejs\\node_global\\etc\\npmignore",
"npm_config_global_style": "",
"npm_config_group": "",
"npm_config_ham_it_up": "",
"npm_config_heading": "npm",
"npm_config_https_proxy": "",
"npm_config_if_present": "",
"npm_config_ignore_prepublish": "",
"npm_config_ignore_scripts": "",
"npm_config_init_author_email": "",
"npm_config_init_author_name": "",
"npm_config_init_author_url": "",
"npm_config_init_license": "ISC",
"npm_config_init_module": "C:\\Users\\DELL\\.npm-init.js",
"npm_config_init_version": "1.0.0",
"npm_config_json": "",
"npm_config_key": "",
"npm_config_legacy_bundling": "",
"npm_config_link": "",
"npm_config_local_address": "",
"npm_config_loglevel": "notice",
"npm_config_logs_max": "10",
"npm_config_long": "",
"npm_config_maxsockets": "50",
"npm_config_message": "%s",
"npm_config_metrics_registry": "http://172.16.11.26:9696/",
"npm_config_node_gyp": "F:\\install\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js",
"npm_config_node_options": "",
"npm_config_node_version": "12.16.1",
"npm_config_noproxy": "",
"npm_config_npm_set_registry_http___registry_npm_taobao_org_": "true",
"npm_config_offline": "",
"npm_config_onload_script": "",
"npm_config_only": "",
"npm_config_optional": "true",
"npm_config_otp": "",
"npm_config_package_lock": "",
"npm_config_package_lock_only": "",
"npm_config_parseable": "",
"npm_config_prefer_offline": "",
"npm_config_prefer_online": "",
"npm_config_prefix": "F:\\install\\nodejs\\node_global",
"npm_config_preid": "",
"npm_config_production": "",
"npm_config_progress": "true",
"npm_config_proxy": "",
"npm_config_read_only": "",
"npm_config_rebuild_bundle": "true",
"npm_config_registry": "http://172.16.11.26:9696/",
"npm_config_rollback": "true",
"npm_config_sass_binary_site": "http://172.16.11.26:8888/node-sass",
"npm_config_save": "",
"npm_config_save_bundle": "",
"npm_config_save_dev": "",
"npm_config_save_exact": "",
"npm_config_save_optional": "",
"npm_config_save_prefix": "^",
"npm_config_save_prod": "",
"npm_config_scope": "",
"npm_config_scripts_prepend_node_path": "warn-only",
"npm_config_script_shell": "",
"npm_config_searchexclude": "",
"npm_config_searchlimit": "20",
"npm_config_searchopts": "",
"npm_config_searchstaleness": "900",
"npm_config_send_metrics": "",
"npm_config_shell": "C:\\Windows\\system32\\cmd.exe",
"npm_config_shrinkwrap": "true",
"npm_config_sign_git_commit": "",
"npm_config_sign_git_tag": "",
"npm_config_sso_poll_frequency": "500",
"npm_config_sso_type": "oauth",
"npm_config_strict_ssl": "true",
"npm_config_tag": "latest",
"npm_config_tag_version_prefix": "v",
"npm_config_timing": "",
"npm_config_tmp": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"npm_config_umask": "0000",
"npm_config_unicode": "",
"npm_config_unsafe_perm": "true",
"npm_config_update_notifier": "true",
"npm_config_usage": "",
"npm_config_user": "",
"npm_config_userconfig": "C:\\Users\\DELL\\.npmrc",
"npm_config_user_agent": "npm/6.13.4 node/v12.16.1 win32 x64",
"npm_config_version": "",
"npm_config_versions": "",
"npm_config_viewer": "browser",
"npm_execpath": "F:\\install\\nodejs\\node_modules\\npm\\bin\\npm-cli.js",
"npm_lifecycle_event": "start",
"npm_lifecycle_script": "set NODE_ENV=development && webpack-dev-server",
"npm_node_execpath": "F:\\install\\nodejs\\node.exe",
"npm_package_author_name": "ilex.h",
"npm_package_dependencies_amos_3d": "^2.x",
"npm_package_dependencies_amos_designer": "^1.x",
"npm_package_dependencies_amos_viz": "^1.x",
"npm_package_dependencies_amos_websocket": "^1.0.3",
"npm_package_dependencies_ray_hotkeys": "^1.0.0",
"npm_package_devDependencies_amos_build": "^3.x",
"npm_package_devDependencies_amos_framework": "^1.x",
"npm_package_devDependencies_amos_iot_3dgraph": "^1.0.3",
"npm_package_devDependencies_amos_iot_webstudio": "^1.x",
"npm_package_devDependencies_amos_processor": "^2.x",
"npm_package_devDependencies_amos_security": "^2.x",
"npm_package_devDependencies_eslint_config_ray": "^1.0.25",
"npm_package_devDependencies_ray_code_split": "^1.0.1",
"npm_package_devDependencies_ray_mediaquery": "^1.0.0",
"npm_package_devDependencies_ray_progress": "^1.0.0",
"npm_package_devDependencies_react": "~16.0.0",
"npm_package_devDependencies_react_dom": "~16.0.0",
"npm_package_devDependencies_stylelint_config_ray": "^2.0.0",
"npm_package_gitHead": "e17d3cefc9ba5bc01fb5f9121e57e6f39ff4be2d",
"npm_package_main": "./lib/index.js",
"npm_package_name": "amos-station-module-view",
"npm_package_publishConfig_registry": "http://172.16.11.26:9696",
"npm_package_readmeFilename": "readme.md",
"npm_package_scripts_build": "ray-build react && ray-build stylescss",
"npm_package_scripts_clean": "rimraf lib dist released",
"npm_package_scripts_lint": "eslint src tests",
"npm_package_scripts_lint_fix": "npm run lint -- --fix",
"npm_package_scripts_pub": "npm run build && amos-run dllreleased",
"npm_package_scripts_start": "set NODE_ENV=development && webpack-dev-server",
"npm_package_scripts_stylelint": "stylelint src",
"npm_package_scripts_watch": "webpack -w",
"npm_package_version": "1.0.0",
"NPM_PREFIX_NPM_CLI_JS": "F:\\install\\nodejs\\node_global\\node_modules\\npm\\bin\\npm-cli.js",
"NUMBER_OF_PROCESSORS": "8",
"NVM_HOME": "C:\\Users\\DELL\\AppData\\Roaming\\nvm",
"NVM_SYMLINK": "C:\\Program Files\\nodejs",
"OneDrive": "C:\\Users\\DELL\\OneDrive",
"OS": "Windows_NT",
"Path": "F:\\install\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;G:\\workSpace\\amos-station-module-view\\node_modules\\.bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;D:\\Program Files\\Git\\cmd;C:\\Program Files\\TortoiseGit\\bin;C:\\Users\\DELL\\AppData\\Roaming\\nvm;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C:\\Program Files\\TortoiseSVN\\bin;C:\\ProgramData\\chocolatey\\bin;F:\\install\\nodejs\\node_global;F:\\install\\Python27;C:\\Program Files\\Java\\jdk1.8.0_201\\bin;F:\\install\\nodejs\\;C:\\Users\\DELL\\AppData\\Local\\Microsoft\\WindowsApps;\"C:\\Program Files\\Java\\jdk1.8.0_201\\bin;C:\\Program Files\\Java\\jdk1.8.0_201\\jre\\bin\";C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\DELL\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs;D:\\develop\\nodejs\\node_global;C:\\Users\\DELL\\AppData\\Roaming\\npm",
"PATHEXT": ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JSE;.WSF;.WSH;.MSC;.CPL",
"PROCESSOR_ARCHITECTURE": "AMD64",
"PROCESSOR_IDENTIFIER": "Intel64 Family 6 Model 158 Stepping 13, GenuineIntel",
"PROCESSOR_LEVEL": "6",
"PROCESSOR_REVISION": "9e0d",
"ProgramData": "C:\\ProgramData",
"ProgramFiles": "C:\\Program Files",
"ProgramFiles(x86)": "C:\\Program Files (x86)",
"ProgramW6432": "C:\\Program Files",
"PROMPT": "$P$G",
"PSModulePath": "C:\\Users\\DELL\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules",
"PUBLIC": "C:\\Users\\Public",
"SESSIONNAME": "Console",
"SystemDrive": "C:",
"SystemRoot": "C:\\Windows",
"TEMP": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"TERM_PROGRAM": "vscode",
"TERM_PROGRAM_VERSION": "1.45.1",
"TMP": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"USERDOMAIN": "DESKTOP-KKH52JE",
"USERDOMAIN_ROAMINGPROFILE": "DESKTOP-KKH52JE",
"USERNAME": "DELL",
"USERPROFILE": "C:\\Users\\DELL",
"VSCODE_GIT_ASKPASS_MAIN": "c:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass-main.js",
"VSCODE_GIT_ASKPASS_NODE": "C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
"VSCODE_GIT_IPC_HANDLE": "\\\\.\\pipe\\vscode-git-11879c72ba-sock",
"windir": "C:\\Windows",
"_prog": "node"
},
"sharedObjects": [
"F:\\install\\nodejs\\node.exe",
"C:\\Windows\\SYSTEM32\\ntdll.dll",
"C:\\Windows\\System32\\KERNEL32.DLL",
"C:\\Windows\\System32\\KERNELBASE.dll",
"C:\\Windows\\System32\\WS2_32.dll",
"C:\\Windows\\System32\\RPCRT4.dll",
"C:\\Windows\\System32\\PSAPI.DLL",
"C:\\Windows\\System32\\ADVAPI32.dll",
"C:\\Windows\\System32\\msvcrt.dll",
"C:\\Windows\\System32\\sechost.dll",
"C:\\Windows\\System32\\USER32.dll",
"C:\\Windows\\SYSTEM32\\dbghelp.dll",
"C:\\Windows\\System32\\win32u.dll",
"C:\\Windows\\System32\\ucrtbase.dll",
"C:\\Windows\\System32\\GDI32.dll",
"C:\\Windows\\System32\\gdi32full.dll",
"C:\\Windows\\System32\\msvcp_win.dll",
"C:\\Windows\\System32\\CRYPT32.dll",
"C:\\Windows\\SYSTEM32\\IPHLPAPI.DLL",
"C:\\Windows\\System32\\MSASN1.dll",
"C:\\Windows\\SYSTEM32\\USERENV.dll",
"C:\\Windows\\System32\\bcrypt.dll",
"C:\\Windows\\System32\\profapi.dll",
"C:\\Windows\\SYSTEM32\\WINMM.dll",
"C:\\Windows\\SYSTEM32\\winmmbase.dll",
"C:\\Windows\\System32\\cfgmgr32.dll",
"C:\\Windows\\System32\\bcryptPrimitives.dll",
"C:\\Windows\\System32\\IMM32.DLL",
"C:\\Windows\\System32\\powrprof.dll",
"C:\\Windows\\System32\\UMPDC.dll",
"C:\\Windows\\SYSTEM32\\CRYPTBASE.DLL",
"C:\\Windows\\system32\\uxtheme.dll",
"C:\\Windows\\System32\\combase.dll",
"C:\\Windows\\system32\\mswsock.dll",
"C:\\Windows\\System32\\kernel.appcore.dll",
"C:\\Windows\\System32\\NSI.dll",
"C:\\Windows\\SYSTEM32\\dhcpcsvc6.DLL",
"C:\\Windows\\SYSTEM32\\dhcpcsvc.DLL",
"C:\\Windows\\SYSTEM32\\DNSAPI.dll",
"\\\\?\\G:\\workSpace\\amos-station-module-view\\node_modules\\node-sass\\vendor\\win32-x64-72\\binding.node",
"C:\\Windows\\system32\\napinsp.dll",
"C:\\Windows\\system32\\pnrpnsp.dll",
"C:\\Windows\\System32\\winrnr.dll",
"C:\\Windows\\system32\\NLAapi.dll",
"C:\\Windows\\system32\\wshbth.dll"
]
}
\ No newline at end of file
{
"header": {
"reportVersion": 1,
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20200525.173623.30460.0.001.json",
"dumpEventTime": "2020-05-25T17:36:23Z",
"dumpEventTimeStamp": "1590399383007",
"processId": 30460,
"cwd": "G:\\workSpace\\amos-station-module-view",
"commandLine": [
"node",
"G:\\workSpace\\amos-station-module-view\\node_modules\\.bin\\\\..\\webpack-dev-server\\bin\\webpack-dev-server.js"
],
"nodejsVersion": "v12.16.1",
"wordSize": 64,
"arch": "x64",
"platform": "win32",
"componentVersions": {
"node": "12.16.1",
"v8": "7.8.279.23-node.31",
"uv": "1.34.0",
"zlib": "1.2.11",
"brotli": "1.0.7",
"ares": "1.15.0",
"modules": "72",
"nghttp2": "1.40.0",
"napi": "5",
"llhttp": "2.0.4",
"http_parser": "2.9.3",
"openssl": "1.1.1d",
"cldr": "35.1",
"icu": "64.2",
"tz": "2019c",
"unicode": "12.1"
},
"release": {
"name": "node",
"lts": "Erbium",
"headersUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1-headers.tar.gz",
"sourceUrl": "https://nodejs.org/download/release/v12.16.1/node-v12.16.1.tar.gz",
"libUrl": "https://nodejs.org/download/release/v12.16.1/win-x64/node.lib"
},
"osName": "Windows_NT",
"osRelease": "10.0.18362",
"osVersion": "Windows 10 Pro",
"osMachine": "x86_64",
"cpus": [
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 12741718,
"nice": 0,
"sys": 17573296,
"idle": 216095140,
"irq": 9704375
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 30868140,
"nice": 0,
"sys": 7279109,
"idle": 208262500,
"irq": 285140
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 19319765,
"nice": 0,
"sys": 4774765,
"idle": 222315234,
"irq": 95312
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 17322406,
"nice": 0,
"sys": 4381281,
"idle": 224706078,
"irq": 88593
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 14277296,
"nice": 0,
"sys": 4409312,
"idle": 227723140,
"irq": 68093
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 15948375,
"nice": 0,
"sys": 4562625,
"idle": 225898750,
"irq": 86937
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 14715078,
"nice": 0,
"sys": 5186140,
"idle": 226508531,
"irq": 73750
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 16828328,
"nice": 0,
"sys": 6694062,
"idle": 222887359,
"irq": 91437
}
],
"networkInterfaces": [
{
"name": "以太网",
"internal": false,
"mac": "e4:54:e8:bc:0c:f8",
"address": "fe80::fc0b:6bad:6f5:3715",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"scopeid": 9
},
{
"name": "以太网",
"internal": false,
"mac": "e4:54:e8:bc:0c:f8",
"address": "172.16.3.26",
"netmask": "255.255.0.0",
"family": "IPv4"
},
{
"name": "Loopback Pseudo-Interface 1",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
"family": "IPv6",
"scopeid": 0
},
{
"name": "Loopback Pseudo-Interface 1",
"internal": true,
"mac": "00:00:00:00:00:00",
"address": "127.0.0.1",
"netmask": "255.0.0.0",
"family": "IPv4"
}
],
"host": "DESKTOP-KKH52JE"
},
"javascriptStack": {
"message": "No stack.",
"stack": [
"Unavailable."
]
},
"nativeStack": [
{
"pc": "0x00007ff7657119f9",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+10873"
},
{
"pc": "0x00007ff765715e1c",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+28316"
},
{
"pc": "0x00007ff765714dd8",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+24152"
},
{
"pc": "0x00007ff7658134cb",
"symbol": "v8::base::CPU::has_sse+38363"
},
{
"pc": "0x00007ff766029f4e",
"symbol": "v8::Isolate::ReportExternalAllocationLimitReached+94"
},
{
"pc": "0x00007ff766012021",
"symbol": "v8::SharedArrayBuffer::Externalize+833"
},
{
"pc": "0x00007ff765ede57c",
"symbol": "v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436"
},
{
"pc": "0x00007ff765ee97d0",
"symbol": "v8::internal::Heap::ProtectUnprotectedMemoryChunks+1312"
},
{
"pc": "0x00007ff765ee62f4",
"symbol": "v8::internal::Heap::PageFlagsAreConsistent+3204"
},
{
"pc": "0x00007ff765edbb13",
"symbol": "v8::internal::Heap::CollectGarbage+1283"
},
{
"pc": "0x00007ff765eda184",
"symbol": "v8::internal::Heap::AddRetainedMap+2452"
},
{
"pc": "0x00007ff765efb36d",
"symbol": "v8::internal::Factory::NewFillerObject+61"
},
{
"pc": "0x00007ff765c60c51",
"symbol": "v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+1665"
},
{
"pc": "0x00007ff766474ddd",
"symbol": "v8::internal::SetupIsolateDelegate::SetupHeap+546637"
},
{
"pc": "0x000003a2ed3e6c19",
"symbol": ""
}
],
"javascriptHeap": {
"totalMemory": 2160001024,
"totalCommittedMemory": 2160001024,
"usedMemory": 2151126320,
"availableMemory": 39909120,
"memoryLimit": 2197815296,
"heapSpaces": {
"read_only_space": {
"memorySize": 262144,
"committedMemory": 262144,
"capacity": 32808,
"used": 32808,
"available": 0
},
"new_space": {
"memorySize": 2097152,
"committedMemory": 2097152,
"capacity": 1047456,
"used": 64,
"available": 1047392
},
"old_space": {
"memorySize": 323371008,
"committedMemory": 323371008,
"capacity": 321678336,
"used": 321678336,
"available": 0
},
"code_space": {
"memorySize": 2265088,
"committedMemory": 2265088,
"capacity": 1876064,
"used": 1876064,
"available": 0
},
"map_space": {
"memorySize": 6033408,
"committedMemory": 6033408,
"capacity": 2216720,
"used": 2216720,
"available": 0
},
"large_object_space": {
"memorySize": 1825349632,
"committedMemory": 1825349632,
"capacity": 1824778040,
"used": 1824778040,
"available": 0
},
"code_large_object_space": {
"memorySize": 622592,
"committedMemory": 622592,
"capacity": 544288,
"used": 544288,
"available": 0
},
"new_large_object_space": {
"memorySize": 0,
"committedMemory": 0,
"capacity": 1047456,
"used": 0,
"available": 1047456
}
}
},
"resourceUsage": {
"userCpuSeconds": 1049.06,
"kernelCpuSeconds": 123.296,
"cpuConsumptionPercent": 5.46452,
"maxRss": 2207715328,
"pageFaults": {
"IORequired": 70078618,
"IONotRequired": 0
},
"fsActivity": {
"reads": 10805,
"writes": 271
}
},
"libuv": [
],
"environmentVariables": {
"=G:": "G:\\workSpace\\amos-station-module-view",
"ALLUSERSPROFILE": "C:\\ProgramData",
"APPDATA": "C:\\Users\\DELL\\AppData\\Roaming",
"ChocolateyInstall": "C:\\ProgramData\\chocolatey",
"ChocolateyLastPathUpdate": "132289007529906412",
"CLASSPATH": ".;C:\\Program Files\\Java\\jdk1.8.0_201\\lib\\dt.jar;C:\\Program Files\\Java\\jdk1.8.0_201\\lib\\tools.jar;",
"COLORTERM": "truecolor",
"CommonProgramFiles": "C:\\Program Files\\Common Files",
"CommonProgramFiles(x86)": "C:\\Program Files (x86)\\Common Files",
"CommonProgramW6432": "C:\\Program Files\\Common Files",
"COMPUTERNAME": "DESKTOP-KKH52JE",
"ComSpec": "C:\\Windows\\system32\\cmd.exe",
"dp0": "G:\\workSpace\\amos-station-module-view\\node_modules\\.bin\\",
"DriverData": "C:\\Windows\\System32\\Drivers\\DriverData",
"GIT_ASKPASS": "c:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass.sh",
"HOME": "C:\\Users\\DELL",
"HOMEDRIVE": "C:",
"HOMEPATH": "\\Users\\DELL",
"INIT_CWD": "G:\\workSpace\\amos-station-module-view",
"JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_201",
"LANG": "zh_CN.UTF-8",
"LOCALAPPDATA": "C:\\Users\\DELL\\AppData\\Local",
"LOGONSERVER": "\\\\DESKTOP-KKH52JE",
"NODE": "F:\\install\\nodejs\\node.exe",
"NODE_ENV": "development ",
"NODE_EXE": "F:\\install\\nodejs\\\\node.exe",
"NODE_PATH": "F:\\install\\nodejs\\node_modules",
"NPM_CLI_JS": "F:\\install\\nodejs\\\\node_modules\\npm\\bin\\npm-cli.js",
"npm_config_access": "",
"npm_config_allow_same_version": "",
"npm_config_also": "",
"npm_config_always_auth": "",
"npm_config_argv": "{\"remain\":[],\"cooked\":[\"start\"],\"original\":[\"start\"]}",
"npm_config_audit": "true",
"npm_config_audit_level": "low",
"npm_config_auth_type": "legacy",
"npm_config_before": "",
"npm_config_bin_links": "true",
"npm_config_browser": "",
"npm_config_ca": "",
"npm_config_cache": "F:\\install\\nodejs\\node_cache",
"npm_config_cache_lock_retries": "10",
"npm_config_cache_lock_stale": "60000",
"npm_config_cache_lock_wait": "10000",
"npm_config_cache_max": "Infinity",
"npm_config_cache_min": "10",
"npm_config_cafile": "",
"npm_config_cert": "",
"npm_config_cidr": "",
"npm_config_color": "true",
"npm_config_commit_hooks": "true",
"npm_config_depth": "Infinity",
"npm_config_description": "true",
"npm_config_dev": "",
"npm_config_dry_run": "",
"npm_config_editor": "notepad.exe",
"npm_config_engine_strict": "",
"npm_config_fetch_retries": "2",
"npm_config_fetch_retry_factor": "10",
"npm_config_fetch_retry_maxtimeout": "60000",
"npm_config_fetch_retry_mintimeout": "10000",
"npm_config_force": "",
"npm_config_format_package_lock": "true",
"npm_config_fund": "true",
"npm_config_git": "git",
"npm_config_git_tag_version": "true",
"npm_config_global": "",
"npm_config_globalconfig": "F:\\install\\nodejs\\node_global\\etc\\npmrc",
"npm_config_globalignorefile": "F:\\install\\nodejs\\node_global\\etc\\npmignore",
"npm_config_global_style": "",
"npm_config_group": "",
"npm_config_ham_it_up": "",
"npm_config_heading": "npm",
"npm_config_https_proxy": "",
"npm_config_if_present": "",
"npm_config_ignore_prepublish": "",
"npm_config_ignore_scripts": "",
"npm_config_init_author_email": "",
"npm_config_init_author_name": "",
"npm_config_init_author_url": "",
"npm_config_init_license": "ISC",
"npm_config_init_module": "C:\\Users\\DELL\\.npm-init.js",
"npm_config_init_version": "1.0.0",
"npm_config_json": "",
"npm_config_key": "",
"npm_config_legacy_bundling": "",
"npm_config_link": "",
"npm_config_local_address": "",
"npm_config_loglevel": "notice",
"npm_config_logs_max": "10",
"npm_config_long": "",
"npm_config_maxsockets": "50",
"npm_config_message": "%s",
"npm_config_metrics_registry": "http://172.16.11.26:9696/",
"npm_config_node_gyp": "F:\\install\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js",
"npm_config_node_options": "",
"npm_config_node_version": "12.16.1",
"npm_config_noproxy": "",
"npm_config_npm_set_registry_http___registry_npm_taobao_org_": "true",
"npm_config_offline": "",
"npm_config_onload_script": "",
"npm_config_only": "",
"npm_config_optional": "true",
"npm_config_otp": "",
"npm_config_package_lock": "",
"npm_config_package_lock_only": "",
"npm_config_parseable": "",
"npm_config_prefer_offline": "",
"npm_config_prefer_online": "",
"npm_config_prefix": "F:\\install\\nodejs\\node_global",
"npm_config_preid": "",
"npm_config_production": "",
"npm_config_progress": "true",
"npm_config_proxy": "",
"npm_config_read_only": "",
"npm_config_rebuild_bundle": "true",
"npm_config_registry": "http://172.16.11.26:9696/",
"npm_config_rollback": "true",
"npm_config_sass_binary_site": "http://172.16.11.26:8888/node-sass",
"npm_config_save": "",
"npm_config_save_bundle": "",
"npm_config_save_dev": "",
"npm_config_save_exact": "",
"npm_config_save_optional": "",
"npm_config_save_prefix": "^",
"npm_config_save_prod": "",
"npm_config_scope": "",
"npm_config_scripts_prepend_node_path": "warn-only",
"npm_config_script_shell": "",
"npm_config_searchexclude": "",
"npm_config_searchlimit": "20",
"npm_config_searchopts": "",
"npm_config_searchstaleness": "900",
"npm_config_send_metrics": "",
"npm_config_shell": "C:\\Windows\\system32\\cmd.exe",
"npm_config_shrinkwrap": "true",
"npm_config_sign_git_commit": "",
"npm_config_sign_git_tag": "",
"npm_config_sso_poll_frequency": "500",
"npm_config_sso_type": "oauth",
"npm_config_strict_ssl": "true",
"npm_config_tag": "latest",
"npm_config_tag_version_prefix": "v",
"npm_config_timing": "",
"npm_config_tmp": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"npm_config_umask": "0000",
"npm_config_unicode": "",
"npm_config_unsafe_perm": "true",
"npm_config_update_notifier": "true",
"npm_config_usage": "",
"npm_config_user": "",
"npm_config_userconfig": "C:\\Users\\DELL\\.npmrc",
"npm_config_user_agent": "npm/6.13.4 node/v12.16.1 win32 x64",
"npm_config_version": "",
"npm_config_versions": "",
"npm_config_viewer": "browser",
"npm_execpath": "F:\\install\\nodejs\\node_modules\\npm\\bin\\npm-cli.js",
"npm_lifecycle_event": "start",
"npm_lifecycle_script": "set NODE_ENV=development && webpack-dev-server",
"npm_node_execpath": "F:\\install\\nodejs\\node.exe",
"npm_package_author_name": "ilex.h",
"npm_package_dependencies_amos_3d": "^2.x",
"npm_package_dependencies_amos_designer": "^1.x",
"npm_package_dependencies_amos_viz": "^1.x",
"npm_package_dependencies_amos_websocket": "^1.0.3",
"npm_package_dependencies_ray_hotkeys": "^1.0.0",
"npm_package_devDependencies_amos_build": "^3.x",
"npm_package_devDependencies_amos_framework": "^1.x",
"npm_package_devDependencies_amos_iot_3dgraph": "^1.0.3",
"npm_package_devDependencies_amos_iot_webstudio": "^1.x",
"npm_package_devDependencies_amos_processor": "^2.x",
"npm_package_devDependencies_amos_security": "^2.x",
"npm_package_devDependencies_eslint_config_ray": "^1.0.25",
"npm_package_devDependencies_ray_code_split": "^1.0.1",
"npm_package_devDependencies_ray_mediaquery": "^1.0.0",
"npm_package_devDependencies_ray_progress": "^1.0.0",
"npm_package_devDependencies_react": "~16.0.0",
"npm_package_devDependencies_react_dom": "~16.0.0",
"npm_package_devDependencies_stylelint_config_ray": "^2.0.0",
"npm_package_gitHead": "e17d3cefc9ba5bc01fb5f9121e57e6f39ff4be2d",
"npm_package_main": "./lib/index.js",
"npm_package_name": "amos-station-module-view",
"npm_package_publishConfig_registry": "http://172.16.11.26:9696",
"npm_package_readmeFilename": "readme.md",
"npm_package_scripts_build": "ray-build react && ray-build stylescss",
"npm_package_scripts_clean": "rimraf lib dist released",
"npm_package_scripts_lint": "eslint src tests",
"npm_package_scripts_lint_fix": "npm run lint -- --fix",
"npm_package_scripts_pub": "npm run build && amos-run dllreleased",
"npm_package_scripts_start": "set NODE_ENV=development && webpack-dev-server",
"npm_package_scripts_stylelint": "stylelint src",
"npm_package_scripts_watch": "webpack -w",
"npm_package_version": "1.0.0",
"NPM_PREFIX_NPM_CLI_JS": "F:\\install\\nodejs\\node_global\\node_modules\\npm\\bin\\npm-cli.js",
"NUMBER_OF_PROCESSORS": "8",
"NVM_HOME": "C:\\Users\\DELL\\AppData\\Roaming\\nvm",
"NVM_SYMLINK": "C:\\Program Files\\nodejs",
"OneDrive": "C:\\Users\\DELL\\OneDrive",
"OS": "Windows_NT",
"Path": "F:\\install\\nodejs\\node_modules\\npm\\node_modules\\npm-lifecycle\\node-gyp-bin;G:\\workSpace\\amos-station-module-view\\node_modules\\.bin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;D:\\Program Files\\Git\\cmd;C:\\Program Files\\TortoiseGit\\bin;C:\\Users\\DELL\\AppData\\Roaming\\nvm;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C:\\Program Files\\TortoiseSVN\\bin;C:\\ProgramData\\chocolatey\\bin;F:\\install\\nodejs\\node_global;F:\\install\\Python27;C:\\Program Files\\Java\\jdk1.8.0_201\\bin;F:\\install\\nodejs\\;C:\\Users\\DELL\\AppData\\Local\\Microsoft\\WindowsApps;\"C:\\Program Files\\Java\\jdk1.8.0_201\\bin;C:\\Program Files\\Java\\jdk1.8.0_201\\jre\\bin\";C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\DELL\\AppData\\Roaming\\nvm;C:\\Program Files\\nodejs;D:\\develop\\nodejs\\node_global;C:\\Users\\DELL\\AppData\\Roaming\\npm",
"PATHEXT": ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JSE;.WSF;.WSH;.MSC;.CPL",
"PROCESSOR_ARCHITECTURE": "AMD64",
"PROCESSOR_IDENTIFIER": "Intel64 Family 6 Model 158 Stepping 13, GenuineIntel",
"PROCESSOR_LEVEL": "6",
"PROCESSOR_REVISION": "9e0d",
"ProgramData": "C:\\ProgramData",
"ProgramFiles": "C:\\Program Files",
"ProgramFiles(x86)": "C:\\Program Files (x86)",
"ProgramW6432": "C:\\Program Files",
"PROMPT": "$P$G",
"PSModulePath": "C:\\Users\\DELL\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules",
"PUBLIC": "C:\\Users\\Public",
"SESSIONNAME": "Console",
"SystemDrive": "C:",
"SystemRoot": "C:\\Windows",
"TEMP": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"TERM_PROGRAM": "vscode",
"TERM_PROGRAM_VERSION": "1.45.1",
"TMP": "C:\\Users\\DELL\\AppData\\Local\\Temp",
"USERDOMAIN": "DESKTOP-KKH52JE",
"USERDOMAIN_ROAMINGPROFILE": "DESKTOP-KKH52JE",
"USERNAME": "DELL",
"USERPROFILE": "C:\\Users\\DELL",
"VSCODE_GIT_ASKPASS_MAIN": "c:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass-main.js",
"VSCODE_GIT_ASKPASS_NODE": "C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
"VSCODE_GIT_IPC_HANDLE": "\\\\.\\pipe\\vscode-git-11879c72ba-sock",
"windir": "C:\\Windows",
"_prog": "node"
},
"sharedObjects": [
"F:\\install\\nodejs\\node.exe",
"C:\\Windows\\SYSTEM32\\ntdll.dll",
"C:\\Windows\\System32\\KERNEL32.DLL",
"C:\\Windows\\System32\\KERNELBASE.dll",
"C:\\Windows\\System32\\WS2_32.dll",
"C:\\Windows\\System32\\RPCRT4.dll",
"C:\\Windows\\System32\\PSAPI.DLL",
"C:\\Windows\\System32\\ADVAPI32.dll",
"C:\\Windows\\System32\\msvcrt.dll",
"C:\\Windows\\System32\\sechost.dll",
"C:\\Windows\\SYSTEM32\\dbghelp.dll",
"C:\\Windows\\System32\\ucrtbase.dll",
"C:\\Windows\\System32\\USER32.dll",
"C:\\Windows\\SYSTEM32\\USERENV.dll",
"C:\\Windows\\System32\\profapi.dll",
"C:\\Windows\\System32\\win32u.dll",
"C:\\Windows\\SYSTEM32\\IPHLPAPI.DLL",
"C:\\Windows\\System32\\GDI32.dll",
"C:\\Windows\\System32\\gdi32full.dll",
"C:\\Windows\\System32\\msvcp_win.dll",
"C:\\Windows\\System32\\CRYPT32.dll",
"C:\\Windows\\System32\\MSASN1.dll",
"C:\\Windows\\System32\\bcrypt.dll",
"C:\\Windows\\SYSTEM32\\WINMM.dll",
"C:\\Windows\\SYSTEM32\\winmmbase.dll",
"C:\\Windows\\System32\\cfgmgr32.dll",
"C:\\Windows\\System32\\bcryptPrimitives.dll",
"C:\\Windows\\System32\\IMM32.DLL",
"C:\\Windows\\System32\\powrprof.dll",
"C:\\Windows\\System32\\UMPDC.dll",
"C:\\Windows\\SYSTEM32\\CRYPTBASE.DLL",
"C:\\Windows\\system32\\uxtheme.dll",
"C:\\Windows\\System32\\combase.dll",
"C:\\Windows\\system32\\mswsock.dll",
"C:\\Windows\\System32\\kernel.appcore.dll",
"C:\\Windows\\System32\\NSI.dll",
"C:\\Windows\\SYSTEM32\\dhcpcsvc6.DLL",
"C:\\Windows\\SYSTEM32\\dhcpcsvc.DLL",
"C:\\Windows\\SYSTEM32\\DNSAPI.dll",
"\\\\?\\G:\\workSpace\\amos-station-module-view\\node_modules\\node-sass\\vendor\\win32-x64-72\\binding.node",
"C:\\Windows\\system32\\napinsp.dll",
"C:\\Windows\\system32\\pnrpnsp.dll",
"C:\\Windows\\System32\\winrnr.dll",
"C:\\Windows\\system32\\NLAapi.dll",
"C:\\Windows\\system32\\wshbth.dll"
]
}
\ No newline at end of file
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