Commit 0f641961 authored by 单奇雲's avatar 单奇雲

冲突

parents 1e9a0b7c fb3f65bf
......@@ -25,6 +25,15 @@ export default {
check_louyan: require('../assets/panoramic/main_icon_tag_louyan.png'),
check_weizhixing: require('../assets/panoramic/main_icon_tag_weizhixing.png')
},
moduleEditIcon: {
editBtn: require('../assets/convertor/moduleEdit/editBtn.png'),
bindedTip: require('../assets/convertor/moduleEdit/bindedTip.png'),
noSaveTip: require('../assets/convertor/moduleEdit/noSaveTip.png'),
nobindTip: require('../assets/convertor/moduleEdit/nobindTip.png'),
rightModalTitleIcon: require('../assets/convertor/moduleEdit/rightModalTitleIcon.png'),
rightBaseMsgIcon: require('../assets/convertor/moduleEdit/rightBaseMsgIcon.png'),
right3dIcon: require('../assets/convertor/moduleEdit/right3dIcon.png')
},
contorls: {
riskPoint: require('../assets/convertor/3dview/risk-point.png'),
videoPoint: require('../assets/convertor/3dview/video-point.png'),
......@@ -58,7 +67,7 @@ export default {
search: require('../assets/convertor/3dview/datapanel/search.png'),
smilingFace: require('../assets/convertor/3dview/datapanel/smilingFace.png'),
user: require('../assets/convertor/3dview/datapanel/user.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png')
},
markers: {
riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'),
......@@ -204,26 +213,26 @@ export const marker3DIoncMapper = {
riskSource_3: require('../assets/convertor/3dview/markers/risk-3.png'),
riskSource_4: require('../assets/convertor/3dview/markers/risk-4.png'),
riskSource_5: require('../assets/convertor/3dview/markers/risk-5.png'),
risk_0: '/mods/components/3dviewConvertor/threeres/markers/risk-0.png',
risk_1: '/mods/components/3dviewConvertor/threeres/markers/risk-1.png',
risk_2: '/mods/components/3dviewConvertor/threeres/markers/risk-2.png',
risk_3: '/mods/components/3dviewConvertor/threeres/markers/risk-3.png',
risk_4: '/mods/components/3dviewConvertor/threeres/markers/risk-4.png',
risk_5: '/mods/components/3dviewConvertor/threeres/markers/risk-5.png',
risk_0: require('../threeres/markers/risk-0.png'),
risk_1: require('../threeres/markers/risk-1.png'),
risk_2: require('../threeres/markers/risk-2.png'),
risk_3: require('../threeres/markers/risk-3.png'),
risk_4: require('../threeres/markers/risk-4.png'),
risk_5: require('../threeres/markers/risk-5.png'),
patrol_1: '/mods/components/3dviewConvertor/threeres/markers/patrol-1.png',
patrol_2: '/mods/components/3dviewConvertor/threeres/markers/patrol-2.png',
patrol_3: '/mods/components/3dviewConvertor/threeres/markers/patrol-3.png',
patrol_4: '/mods/components/3dviewConvertor/threeres/markers/patrol-4.png',
patrol_5: '/mods/components/3dviewConvertor/threeres/markers/patrol-5.png',
patrol_1: require('../threeres/markers/patrol-1.png'),
patrol_2: require('../threeres/markers/patrol-2.png'),
patrol_3: require('../threeres/markers/patrol-3.png'),
patrol_4: require('../threeres/markers/patrol-4.png'),
patrol_5: require('../threeres/markers/patrol-5.png'),
person_0: '/mods/components/3dviewConvertor/threeres/markers/person-0.png',
person_0: require('../threeres/markers/person-0.png'),
data_0: '/mods/components/3dviewConvertor/threeres/markers/data-0.png',
data_1: '/mods/components/3dviewConvertor/threeres/markers/data-1.png',
data_0: require('../threeres/markers/data-0.png'),
data_1: require('../threeres/markers/data-1.png'),
croom_0: '/mods/components/3dviewConvertor/threeres/markers/croom-0.png',
croom_1: '/mods/components/3dviewConvertor/threeres/markers/croom-1.png',
croom_0: require('../threeres/markers/croom-0.png'),
croom_1: require('../threeres/markers/croom-1.png'),
//重点设备模式
impEquipmentMode_monitorEquipment: require('../assets/convertor/3dview/markers/IeqMode-monitorEquipment.png'),
......@@ -231,24 +240,24 @@ export const marker3DIoncMapper = {
impEquipmentMode_hydrant: require('../assets/convertor/3dview/markers/IeqMode-hydrant.png'),
impEquipmentMode_pool: require('../assets/convertor/3dview/markers/IeqMode-pool.png'),//
impEquipmentMode_fireChamber: require('../assets/convertor/3dview/markers/IeqMode-fireChamber.png'),//
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png'),
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png')
};
export const safetyIndexIconMapper = {
allEror: '/mods/components/3dviewConvertor/threeres/markers/exception_all.png',
faultEror: '/mods/components/3dviewConvertor/threeres/markers/exception_fault.png',
riskEror: '/mods/components/3dviewConvertor/threeres/markers/exception_risk.png',
allEror: require('../threeres/markers/exception_all.png'),
faultEror: require('../threeres/markers/exception_fault.png'),
riskEror: require('../threeres/markers/exception_risk.png'),
transparent_rpn: require('./../threeres/markers/transparent_rpn.png')
};
export const markerTitleBgMapper = {
base: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/markerTitle.png'
base: require('../assets/convertor/3dview/markers/markerTitle.png')
};
export const equipStatusIconMapper = {
equip_false: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-0.png',
equip_true: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-1.png'
equip_false: require('../assets/convertor/3dview/markers/pa-0.png'),
equip_true: require('../assets/convertor/3dview/markers/pa-1.png')
};
......@@ -3,6 +3,8 @@ import * as helper from 'base-r3d/lib/utils/helper';
import { FscSerUrl, FasSerUrl } from './../consts/urlConsts';
import { commonGet, commonPost, singleFetch } from './../utils/request';
import { encodeUrl } from 'amos-tool';
//---------------- 加载模型、解析模型json -----------
export const getObjFromNet = (url, callback) => {
return singleFetch(url).then(data => {
......@@ -10,10 +12,15 @@ export const getObjFromNet = (url, callback) => {
// 临时将 asyncModels 也放在主线程
const { basePath, asyncModels = [] } = data;
const _asyncModels = asyncModels.map(m => ({
basePath,
...m
}));
const _asyncModels = asyncModels.map(m => {
const { objName, mtlName, ...rest } = m;
return {
basePath,
...rest,
objName: encodeUrl(objName),
mtlName: encodeUrl(mtlName)
};
});
// const _objs = objs.concat(_asyncModels);
callback(objs, _asyncModels);
......
.action-pane-data{
.action-pane-data {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
.action-list {
height: 40px;
padding: 0 1rem;
border-radius: 6px;
background:rgba(216,216,216,0.24);
border:1px solid rgba(146,149,151,1);
.action-list {
height: 40px;
padding: 0 1rem;
background-color: rgba(216, 216, 216, 0.24);
border: 1px solid rgba(146, 149, 151, 1);
border-radius: 6px;
.action-item{
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer ;
border:1px solid rgba(146,149,151,1);
.action-item {
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer;
border: 1px solid rgba(146, 149, 151, 1);
.action-item-title{
color: #e0e0e0;
position: absolute;
top: -20px;
white-space: nowrap;
width: 51px;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.80);
text-align: center;
}
.action-item-title {
position: absolute;
top: -20px;
width: 51px;
color: #e0e0e0;
text-align: center;
white-space: nowrap;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.8);
}
.action-item-content{
text-align: center;
position: relative;
width: 100%;
height: 100%;
.action-item-content {
position: relative;
width: 100%;
height: 100%;
text-align: center;
.action-item-icon{
margin: 8px;
width: 21px;
height: 21px;
position: relative;
}
}
.action-item-icon {
position: relative;
width: 21px;
height: 21px;
margin: 8px;
}
}
}
.action-active{
background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%);
}
.action-active {
background: linear-gradient(180deg, rgba(0, 96, 154, 0.8) 0%, rgba(0, 54, 105, 0.5) 100%);
}
}
}
......@@ -97,7 +97,7 @@
// border-radius: $core-border-radius;
// box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
// box-sizing: border-box;
background-image: url('/mods/components/3dviewConvertor/assets/convertor/3dview/dialogbg.png');
background-image: url('../assets/convertor/3dview/dialogbg.png');
background-color: rgba(25, 86, 147, 0.5);
.body-min-header {
......
.ModuleEditPage {
position: relative;
height: 100%;
::-webkit-scrollbar { /* 血槽宽度 */
width:5px;
height: 5px;
background-color: rgba(10, 53, 62, 1);
border-radius: 5px;
}
::-webkit-scrollbar-thumb { /* 拖动条 */
border-radius: 5px;
background-color: rgba(255, 255, 255, 0.4);
}
::-webkit-scrollbar-track { /* 背景槽 */
background-color:rgba(17, 44, 88, 0.2);
}
position: relative;
height: 100%;
::-webkit-scrollbar {
/* 血槽宽度 */
width: 5px;
height: 5px;
background-color: rgba(10, 53, 62, 1);
border-radius: 5px;
}
::-webkit-scrollbar-thumb {
/* 拖动条 */
border-radius: 5px;
background-color: rgba(255, 255, 255, 0.4);
}
::-webkit-scrollbar-track {
/* 背景槽 */
background-color: rgba(17, 44, 88, 0.2);
}
.topBox {
position: absolute;
top: 45px;
left: 50%;
transform: translateX(-50%);
span {
display: inline-block;
}
.editTitle {
width:257px;
height:55px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/title.png') no-repeat 100% 100%;
// opacity:0.4;
font-size: 24px;
text-align: center;
color: #fff;
vertical-align: top;
.topBox {
position: absolute;
top: 45px;
left: 50%;
transform: translateX(-50%);
span {
display: inline-block;
}
.editTitle {
width: 257px;
height: 55px;
background: url('../assets/convertor/moduleEdit/title.png') no-repeat 100% 100%;
// opacity:0.4;
font-size: 24px;
text-align: center;
color: #fff;
vertical-align: top;
.titleText {
width: 100%;
height: 100%;
line-height: 55px;
// border-bottom:2px transparent solid;
// border-image:linear-gradient(90deg,rgba(50,217,239,0) 2%,rgba(50,217,239,0.49) 29%,rgba(50,217,239,0.73) 73%,rgba(50,217,239,0) 100%);
}
}
.titleText {
width: 100%;
height: 100%;
line-height: 55px;
// border-bottom:2px transparent solid;
// border-image:linear-gradient(90deg,rgba(50,217,239,0) 2%,rgba(50,217,239,0.49) 29%,rgba(50,217,239,0.73) 73%,rgba(50,217,239,0) 100%);
}
}
.quipBtn {
width: 169px;
......@@ -48,255 +51,249 @@
margin-top: 10px;
margin-left: 70px;
cursor: pointer;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/quip.png') no-repeat 100% 100%;
background: url('../assets/convertor/moduleEdit/quip.png') no-repeat 100% 100%;
}
}
.bottomBox {
position: absolute;
bottom: 34px;
left: 50%;
transform: translateX(-50%);
span {
display: inline-block;
width: 177px;
height: 42px;
line-height: 42px;
background: rgba(46, 217, 239, 0.2);
// border: 2px solid #2ED9EF;
margin: 0 10px;
text-align: center;
font-size: 16px;
// color: #2ED9EF;
cursor: pointer;
}
.bottomBox {
position: absolute;
bottom: 34px;
left: 50%;
transform: translateX(-50%);
span {
display: inline-block;
width: 177px;
height: 42px;
line-height: 42px;
background: rgba(46,217,239,0.2);
// border: 2px solid #2ED9EF;
margin: 0 10px;
text-align: center;
font-size: 16px;
// color: #2ED9EF;
cursor: pointer;
}
.editAreaBtn {
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/areaBtn.png') no-repeat 100% 100%;
.editAreaBtn {
background: url('../assets/convertor/moduleEdit/areaBtn.png') no-repeat 100% 100%;
}
.editPointBtn {
background: url('../assets/convertor/moduleEdit/pointBtn.png') no-repeat 100% 100%;
}
.editAreaBtn.selected {
background: url('../assets/convertor/moduleEdit/areaBtn_select.png') no-repeat 100% 100%;
}
.editPointBtn.selected {
background: url('../assets/convertor/moduleEdit/poingBtn_select.png') no-repeat 100% 100%;
}
}
// 左侧树
.leftTree {
position: absolute;
top: 0;
left: 15px;
width: 264px;
height: 100%;
padding-top: 55px;
padding-bottom: 15px;
user-select: none;
.leftContainer {
width: 100%;
height: 100%;
background-color: rgba(10, 53, 62, 0.68);
border: 1px solid rgba(46, 217, 239, 0.59);
padding: 12px;
}
.topForm {
.leftSelect {
height: 39px;
width: 100%;
margin-bottom: 10px;
background: url('../assets/convertor/moduleEdit/selectBox.png') no-repeat 100% 100%;
border: none;
line-height: 31px;
padding: 5px;
color: #f0df2d;
}
.leftSearch {
height: 33px;
line-height: 33px;
background: url('../assets/convertor/moduleEdit/searchBg.png') no-repeat 100% 100%;
input {
background-color: transparent;
box-shadow: none;
padding-left: 15px;
color: #fff;
}
.editPointBtn {
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/pointBtn.png') no-repeat 100% 100%;
.amosicon-search {
color: #2ed9ef;
}
.editAreaBtn.selected {
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/areaBtn_select.png') no-repeat 100% 100%;
}
}
.treeBox {
height: calc(100% - 132px);
overflow-y: auto;
.amos-tree {
color: rgba(15, 235, 255, 1);
.amos-tree-node-content-wrapper {
color: #fff;
font-size: 15px;
}
.editPointBtn.selected {
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/poingBtn_select.png') no-repeat 100% 100%;
}
.icon {
margin-left: 5px;
vertical-align: middle;
img {
vertical-align: initial;
margin-left: 10px;
}
}
}
.bottomBtns {
padding-top: 15px;
text-align: center;
.sureBtn {
width: 100px;
height: 33px;
background: url('../assets/convertor/moduleEdit/sureBtn.png') no-repeat 100% 100%;
border: none;
}
.deleteBtn {
width: 100px;
height: 33px;
background: url('../assets/convertor/moduleEdit/deleteBtn.png') no-repeat 100% 100%;
border: none;
}
}
}
// 左侧树
.leftTree {
position: absolute;
top: 0;
left: 15px;
width: 264px;
height: 100%;
padding-top: 55px;
padding-bottom: 15px;
user-select: none;
.leftContainer {
width: 100%;
height: 100%;
background-color: rgba(10, 53, 62, 0.68);
border: 1px solid rgba(46, 217, 239, 0.59);
padding: 12px;
// 右侧面板
.rightEditPanel {
position: absolute;
top: 0;
right: 15px;
width: 264px;
height: 100%;
padding-top: 55px;
padding-bottom: 15px;
.rightContainer {
position: relative;
width: 100%;
height: 100%;
background-color: rgba(10, 53, 62, 0.68);
border: 1px solid rgba(46, 217, 239, 0.59);
padding: 12px;
color: #fff;
.basic-demo {
height: calc(100% - 53px);
overflow-y: auto;
}
.amos-form-item-label {
color: #fff;
}
.topForm {
.rightTitle {
margin-left: -15px;
.titleText {
margin-left: 5px;
}
}
.topForm {
.leftSelect {
height: 39px;
width: 100%;
margin-bottom: 10px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/selectBox.png') no-repeat 100% 100%;
border: none;
line-height: 31px;
padding: 5px;
color: #F0DF2D;
}
.leftSearch {
height: 33px;
line-height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/searchBg.png') no-repeat 100% 100%;
input {
background-color: transparent;
box-shadow: none;
padding-left: 15px;
color: #fff;
}
.amosicon-search {
color: #2ED9EF;
}
}
.amos-input {
background-color: rgba(4, 30, 36, 0.4);
border-radius: 1px;
border: solid 1px rgba(46, 217, 239, 0.59);
font-size: 14px;
color: #fff;
}
.treeBox {
height: calc(100% - 132px);
overflow-y: auto;
.amos-tree {
color: rgba(15, 235, 255, 1);
.amos-tree-node-content-wrapper {
color: #fff;
font-size: 15px;
}
}
.icon {
margin-left: 5px;
vertical-align: middle;
img {
vertical-align: initial;
margin-left: 10px;
}
}
.moduleTitle {
height: 50px;
display: flex;
align-items: center;
.titleText {
margin-left: 5px;
}
}
.bottomBtns {
padding-top: 15px;
text-align: center;
.sureBtn {
width: 100px;
height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/sureBtn.png') no-repeat 100% 100%;
border: none;
}
.deleteBtn {
width: 100px;
height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/deleteBtn.png') no-repeat 100% 100%;
border: none;
}
height: calc(100% - 48px);
padding-left: 20px;
.amos-input {
width: 100%;
}
}
// 右侧面板
.rightEditPanel {
position: absolute;
top: 0;
right: 15px;
width: 264px;
height: 100%;
padding-top: 55px;
padding-bottom: 15px;
.rightContainer {
position: relative;
width: 100%;
height: 100%;
background-color: rgba(10, 53, 62, 0.68);
border: 1px solid rgba(46, 217, 239, 0.59);
padding: 12px;
color: #fff;
.basic-demo{
height: calc(100% - 53px);
overflow-y: auto;
}
.amos-form-item-label {
color: #fff;
}
.topForm {
.rightTitle{
margin-left: -15px;
.titleText{
margin-left: 5px;
}
}
.amos-input{
background-color: rgba(4, 30, 36,0.4);
border-radius: 1px;
border: solid 1px rgba(46, 217, 239, 0.59);
font-size: 14px;
color:#fff;
}
.moduleTitle{
height: 50px;
display: flex;
align-items: center;
.titleText{
margin-left: 5px;
}
}
height: calc(100% - 48px);
padding-left: 20px;
.amos-input {
width: 100%;
}
.amos-select {
width: 100%;
}
.radio-text{
color:#fff
}
}
.amos-select {
width: 100%;
}
.bottomBtns {
position: absolute;
bottom:15px;
padding-top: 15px;
left:50%;
margin-left: -100px;
.sureBtn {
width: 100px;
height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/sureBtn.png') no-repeat 100% 100%;
border: none;
}
.deleteBtn {
width: 100px;
height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/deleteBtn.png') no-repeat 100% 100%;
border: none;
}
.cancelBtn {
width: 100px;
height: 33px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/cancelBtn.png') no-repeat 100% 100%;
border: none;
}
.radio-text {
color: #fff;
}
}
}
.editButton {
position: absolute;
bottom: 100px;
left: 50%;
.bottomBtns {
position: absolute;
bottom: 15px;
padding-top: 15px;
left: 50%;
margin-left: -100px;
.sureBtn {
width: 100px;
height: 33px;
background: url('../assets/convertor/moduleEdit/sureBtn.png') no-repeat 100% 100%;
border: none;
}
.deleteBtn {
width: 100px;
height: 33px;
background: url('../assets/convertor/moduleEdit/deleteBtn.png') no-repeat 100% 100%;
border: none;
}
.cancelBtn {
width: 100px;
height: 33px;
background: url('../assets/convertor/moduleEdit/cancelBtn.png') no-repeat 100% 100%;
border: none;
}
}
}
.editButton {
position: absolute;
bottom: 100px;
left: 50%;
}
}
.amos-select-options{
.selectOption{
color:#fff;
.amos-select-options {
.selectOption {
color: #fff;
background-color: rgba(10, 53, 62, 0.8);
}
.selectOption:hover{
color:#F0DF2D;
background-color: rgba(10, 53, 62, 0.8)
.selectOption:hover {
color: #f0df2d;
background-color: rgba(10, 53, 62, 0.8);
}
}
.pormpt-modal{
height:100%;
.amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/promptModal.png');
.pormpt-modal {
height: 100%;
.amos-modal-container {
background-image: url('../assets/convertor/3dview/promptModal.png');
background-repeat: no-repeat;
background-size: 100% 100%;
height:253px;
height: 253px;
width: 392px !important;
background-color: transparent;
box-shadow: none;
.amos-modal-content{
.amos-modal-content {
width: 100%;
height: 100%;
color: #fff;
font-size: 20px;
font-weight: normal;
.prompt-content{
.prompt-content {
width: 100%;
height: 100%;
padding-top:40px ;
display:flex;
padding-top: 40px;
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
.prompt-buttons{
.prompt-buttons {
span {
display: inline-block;
width: 71px;
......@@ -305,24 +302,22 @@
margin: 0 10px;
text-align: center;
}
.promptOk{
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptOk.png') no-repeat 100% 100%;
.promptOk {
background: url('../assets/convertor/3dview/promptOk.png') no-repeat 100% 100%;
}
.promptNo {
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptNo.png') no-repeat 100% 100%;
background: url('../assets/convertor/3dview/promptNo.png') no-repeat 100% 100%;
}
.promptSave{
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptSave.png') no-repeat 100% 100%;
.promptSave {
background: url('../assets/convertor/3dview/promptSave.png') no-repeat 100% 100%;
}
.promptCancel{
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptCancel.png') no-repeat 100% 100%;
.promptCancel {
background: url('../assets/convertor/3dview/promptCancel.png') no-repeat 100% 100%;
}
}
}
}
}
}
// .rayd-modal{
// background-color: rgba(25, 86, 147, 0.6) !important;
......@@ -333,6 +328,3 @@
// color: #fff !important;
// }
// }
......@@ -3,7 +3,7 @@
width: 216px !important;
height: 100% !important;
padding: 0px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%;
background-repeat: round;
position: relative;
......@@ -108,7 +108,7 @@
.carImg {
width: 35px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
}
.carHead {
......@@ -131,7 +131,7 @@
width: 81px !important;
margin-left: 5px !important;
font-size: 5px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important;
line-height: 27px !important;
}
......@@ -147,7 +147,7 @@
margin-left: 0px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%;
background-repeat: round;
}
......@@ -156,7 +156,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -165,7 +165,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -174,7 +174,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -436,7 +436,7 @@
width: 316px !important;
height: 100% !important;
padding: 0px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%;
background-repeat: round;
position: relative;
......@@ -534,7 +534,7 @@
.carImg {
width: 59px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
}
.carHead {
......@@ -557,7 +557,7 @@
width: 81px !important;
margin-left: 45px !important;
font-size: 13px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important;
line-height: 27px !important;
}
......@@ -571,7 +571,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%;
background-repeat: round;
}
......@@ -580,7 +580,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -589,7 +589,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -598,7 +598,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%;
background-repeat: round;
}
......
......@@ -48,7 +48,7 @@
.carousel-img {
width: 100%;
height: 100%;
padding: 5px
padding: 5px;
}
.carousel-indicators {
......@@ -138,9 +138,7 @@
float: left;
width: 131px;//9.84%;
height: 40px;
//background: $biz-table-title-color;//#333;
background: rgba(25, 86, 147, 1);
// border-left: 1px solid $core-border-color;
box-sizing: border-box;
flex: 1;
}
......@@ -159,7 +157,7 @@
width: 100%;
height: 100%;
.amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/toolmodalbg.png');
background-image: url('../assets/convertor/3dview/toolmodalbg.png');
background-repeat: no-repeat;
height:262px;
width: 452px !important;
......@@ -225,7 +223,7 @@
height: 8px;
}
::-webkit-scrollbar-thumb { /* 拖动条 */
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollslider.png') ;
background-image: url('../assets/convertor/3dview/scrollslider.png') ;
background-repeat: no-repeat;
height: 10px;
}
......@@ -233,13 +231,13 @@
background-color:rgba(17, 44, 88, 0.2);
}
::-webkit-scrollbar-button{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollbutton.png') ;
background-image: url('../assets/convertor/3dview/scrollbutton.png') ;
background-repeat: no-repeat;
}
height:100%;
.amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/modalbg.png');
background-image: url('../assets/convertor/3dview/modalbg.png');
height:497px;
width: 866px !important;
background-color: rgba(255,255,255,0);
......
......@@ -59,22 +59,22 @@
width: 260px;
height: 206px;
padding: 20px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
.step-trace {
height: 144px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/step-trace.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/step-trace.png') no-repeat;
.next-step {
width: 24px;
height: 24px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat;
}
.previous-step {
width: 24px;
height: 24px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat;
}
}
......@@ -130,7 +130,7 @@
width: 840px;
height: 60px;
margin: 0 auto;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/dingbu.png');
background-image: url('../assets/convertor/3dview/prePlan/dingbu.png');
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -155,7 +155,7 @@
height: 30px;
margin: 0 auto;
margin-top: 10px;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/baojing.png');
background-image: url('../assets/convertor/3dview/prePlan/baojing.png');
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -179,7 +179,7 @@
height: 60px;
margin-bottom: 7px;
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu.png');
.text-icon {
width: 36px;
......@@ -200,7 +200,7 @@
.text-icon {
// flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background-repeat: no-repeat;
}
......@@ -214,7 +214,7 @@
.text-icon {
// flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-repeat: no-repeat;
}
......@@ -228,7 +228,7 @@
.text-icon {
// flex: 1 0 8%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-repeat: no-repeat;
}
......@@ -243,7 +243,7 @@
.text-icon {
// flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background-repeat: no-repeat;
}
......@@ -257,7 +257,7 @@
.text-icon {
// flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background-repeat: no-repeat;
}
......@@ -279,7 +279,7 @@
.amos-modal-confirm-confirm {
.amos-modal-container {
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat;
background-size: 100% 100%;
box-shadow: unset;
......@@ -305,7 +305,7 @@
.amos-btn {
width: 95px;
height: 44px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat;
background-size: 100% 100%;
border: 0;
}
......@@ -315,7 +315,7 @@
height: 40px;
margin-top: -5px;
color: white;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat;
border: 0;
}
}
......@@ -455,7 +455,7 @@
.precontrol-water-view {
width: 260px;
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background-size: 100% 100%;
padding-bottom: 10px;
padding-top: 10px;
......@@ -494,7 +494,7 @@
height: 20px;
width: 20px;
float: left;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-size: cover;
// background-repeat: no-repeat;
}
......@@ -503,7 +503,7 @@
height: 17px;
width: 20px;
float: left;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-size: cover;
}
}
......
......@@ -4,7 +4,7 @@
bottom: 20px;
width: 460px;
height: 600px;
background: url('/mods/components/3dviewConvertor/assets//convertor//3dview//searchpane-background.png');
background: url('../assets/convertor/3dview/searchpane-background.png');
filter:blur(3px);
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -307,16 +307,16 @@
background-color: #2b8dd4;
}
.ant-calendar-input::-webkit-input-placeholder {
color: white;
color: white;
}
}
.ant-calendar-header{
color: white;
div a{
color: white;
color: white;
}
div span a{
color: white;
color: white;
}
}
.ant-calendar-body{
......@@ -334,6 +334,6 @@
color: white;
}
}
}
}
\ No newline at end of file
}
......@@ -88,7 +88,7 @@
.down{
height: calc(100% - 90px);
margin-left: 20px;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_warning.png');
background-image: url('../../assets/panoramic/main_bg_warning.png');
background-repeat: repeat;
background-size: 100% 100%;
......@@ -213,7 +213,7 @@
}
.safetyIndex-content-chart {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_dashboard.png') !important;
background-image: url('../../assets/panoramic/main_bg_dashboard.png') !important;
background-repeat: no-repeat !important;
margin-top: -25px !important;
width: 125px !important;
......@@ -235,7 +235,7 @@
.echart-week {
width: 321px !important;
height: 248px !important;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_line_bg.png') !important;
background-image: url('../../assets/panoramic/main_bg_line_bg.png') !important;
background-repeat: no-repeat !important;
background-position: 31px 47px !important;
left: 24px;
......@@ -285,13 +285,13 @@
color: rgba(112, 238, 255, 1);
line-height: 65px;
}
.content-xj-middle {
height: 44%;
margin-top: 4%;
margin: 0 37px;
background: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_rightmiddle.png');
background: url('../../assets/panoramic/main_bg_rightmiddle.png');
background-repeat: repeat;
background-size: 100% 100%;
}
......@@ -319,7 +319,7 @@
}
.yellow-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_buhege.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_buhege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -330,7 +330,7 @@
}
}
.green-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_hege.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_hege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -342,7 +342,7 @@
}
.red-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_louyan.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_louyan.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -353,7 +353,7 @@
}
}
.grey-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -368,7 +368,7 @@
.div-echars {
// height: 200px !important;
background: url('/mods/components/3dviewConvertor/assets/panoramic/circle_bg.png') no-repeat center center !important;
background: url('../../assets/panoramic/circle_bg.png') no-repeat center center !important;
// background-position: 60px 14px !important;
background-repeat: no-repeat !important;
}
......@@ -398,7 +398,7 @@
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -431,7 +431,7 @@
float: left;
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -463,7 +463,7 @@
float: left;
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -506,7 +506,7 @@
bottom: 250px;
left: 250px;
right: 250px;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_model.png');
background-image: url('../../assets/panoramic/main_bg_model.png');
background-repeat: repeat;
background-size: 100% 100%;
.close{
......
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# ļ:03.06.2020 11:01:58
newmtl fireChamber
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.5880 0.5880 0.5880
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka fireChamber.png
map_Kd fireChamber.png
map_d fireChamber.png
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# ļ:03.06.2020 11:01:58
mtllib fireChamber.mtl
#
# object fireChamber
#
v -34.4348 33.0200 0.0000
v -33.6163 33.0200 0.0000
v -33.6163 33.9408 0.0000
v -34.4348 33.9408 0.0000
v -32.7977 33.0200 0.0000
v -32.7977 33.9408 0.0000
v -31.9792 33.0200 0.0000
v -31.9792 33.9408 0.0000
v -31.1607 33.0200 0.0000
v -31.1607 33.9408 0.0000
v -33.6163 34.8617 0.0000
v -34.4348 34.8617 0.0000
v -32.7977 34.8617 0.0000
v -31.9792 34.8617 0.0000
v -31.1607 34.8617 0.0000
v -33.6163 35.7825 0.0000
v -34.4348 35.7825 0.0000
v -32.7977 35.7825 0.0000
v -31.9792 35.7825 0.0000
v -31.1607 35.7825 0.0000
v -33.6163 36.7034 0.0000
v -34.4348 36.7034 0.0000
v -32.7977 36.7034 0.0000
v -31.9792 36.7034 0.0000
v -31.1607 36.7034 0.0000
# 25 vertices
vn 0.0000 -0.0000 1.0000
# 1 vertex normals
vt 0.0000 0.0000 0.0000
vt 0.2500 0.0000 0.0000
vt 0.2500 0.2500 0.0000
vt 0.0000 0.2500 0.0000
vt 0.5000 0.0000 0.0000
vt 0.5000 0.2500 0.0000
vt 0.7500 0.0000 0.0000
vt 0.7500 0.2500 0.0000
vt 1.0000 0.0000 0.0000
vt 1.0000 0.2500 0.0000
vt 0.2500 0.5000 0.0000
vt 0.0000 0.5000 0.0000
vt 0.5000 0.5000 0.0000
vt 0.7500 0.5000 0.0000
vt 1.0000 0.5000 0.0000
vt 0.2500 0.7500 0.0000
vt 0.0000 0.7500 0.0000
vt 0.5000 0.7500 0.0000
vt 0.7500 0.7500 0.0000
vt 1.0000 0.7500 0.0000
vt 0.2500 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.5000 1.0000 0.0000
vt 0.7500 1.0000 0.0000
vt 1.0000 1.0000 0.0000
# 25 texture coords
g fireChamber
usemtl fireChamber
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 2/2/1 5/5/1 6/6/1 3/3/1
f 5/5/1 7/7/1 8/8/1 6/6/1
f 7/7/1 9/9/1 10/10/1 8/8/1
f 4/4/1 3/3/1 11/11/1 12/12/1
f 3/3/1 6/6/1 13/13/1 11/11/1
f 6/6/1 8/8/1 14/14/1 13/13/1
f 8/8/1 10/10/1 15/15/1 14/14/1
f 12/12/1 11/11/1 16/16/1 17/17/1
f 11/11/1 13/13/1 18/18/1 16/16/1
f 13/13/1 14/14/1 19/19/1 18/18/1
f 14/14/1 15/15/1 20/20/1 19/19/1
f 17/17/1 16/16/1 21/21/1 22/22/1
f 16/16/1 18/18/1 23/23/1 21/21/1
f 18/18/1 19/19/1 24/24/1 23/23/1
f 19/19/1 20/20/1 25/25/1 24/24/1
# 16 polygons
......@@ -2,74 +2,96 @@
"sceneName": "station-yinan",
"basePath": "/mods/components/3dviewConvertor/threeres/models/yinan/",
"models": [
{ "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park" },
{ "objName": "helper-text.obj", "mtlName": "helper-text.mtl", "modelLevel": "Stuff" },
{ "objName": "building_01.obj", "mtlName": "building_01.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_01" },
{ "objName": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_02" },
{ "objName": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_03" },
{ "objName": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" },
{ "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" },
{ "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" },
{ "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" }
],
"indoors": [
{ "primaryKey": "valve-hall_01", "children": [
{ "objName": "valve-hall_01#roof.obj", "mtlName": "valve-hall_01#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#wall.obj", "mtlName": "valve-hall_01#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t1.obj", "mtlName": "valve-hall_01#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t2.obj", "mtlName": "valve-hall_01#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t3.obj", "mtlName": "valve-hall_01#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t4.obj", "mtlName": "valve-hall_01#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t5.obj", "mtlName": "valve-hall_01#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t6.obj", "mtlName": "valve-hall_01#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t7.obj", "mtlName": "valve-hall_01#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_01#t8.obj", "mtlName": "valve-hall_01#t8.mtl", "modelLevel": "Stuff" }
]},
{ "primaryKey": "valve-hall_02", "children": [
{ "objName": "valve-hall_02#roof.obj", "mtlName": "valve-hall_02#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#wall.obj", "mtlName": "valve-hall_02#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t1.obj", "mtlName": "valve-hall_02#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t2.obj", "mtlName": "valve-hall_02#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t3.obj", "mtlName": "valve-hall_02#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t4.obj", "mtlName": "valve-hall_02#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t5.obj", "mtlName": "valve-hall_02#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t6.obj", "mtlName": "valve-hall_02#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t7.obj", "mtlName": "valve-hall_02#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t8.obj", "mtlName": "valve-hall_02#t8.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t9.obj", "mtlName": "valve-hall_02#t9.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t10.obj", "mtlName": "valve-hall_02#t10.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t11.obj", "mtlName": "valve-hall_02#t11.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t12.obj", "mtlName": "valve-hall_02#t12.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t13.obj", "mtlName": "valve-hall_02#t13.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t14.obj", "mtlName": "valve-hall_02#t14.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t15.obj", "mtlName": "valve-hall_02#t15.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_02#t16.obj", "mtlName": "valve-hall_02#t16.mtl", "modelLevel": "Stuff" }
]},
{ "primaryKey": "valve-hall_03", "children": [
{ "objName": "valve-hall_03#roof.obj", "mtlName": "valve-hall_03#roof.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#wall.obj", "mtlName": "valve-hall_03#wall.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t1.obj", "mtlName": "valve-hall_03#t1.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t2.obj", "mtlName": "valve-hall_03#t2.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t3.obj", "mtlName": "valve-hall_03#t3.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t4.obj", "mtlName": "valve-hall_03#t4.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t5.obj", "mtlName": "valve-hall_03#t5.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t6.obj", "mtlName": "valve-hall_03#t6.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t7.obj", "mtlName": "valve-hall_03#t7.mtl", "modelLevel": "Stuff" },
{ "objName": "valve-hall_03#t8.obj", "mtlName": "valve-hall_03#t8.mtl", "modelLevel": "Stuff" }
]}
{ "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park","userData": {"key": "ground", "level": "root" } },
{ "objName": "helper-text.obj", "mtlName": "helper-text.mtl", "modelLevel": "Stuff" ,"userData": {"key": "helper-text", "level": "root" }},
{ "objName": "building_01.obj", "mtlName": "building_01.mtl", "modelLevel": "Building",
"userData": {
"key": "building_01",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [-125.24438800571633, 37.31694518022703, 37.45503575603876],
"target": [-82.16651609803264, 0.2787801682213826, 3.8565986056023336]
}
}
},
{ "objName": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building",
"userData": {
"key": "building_02",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [-6.892904397414338, 33.66816388530167, 45.464966257474764],
"target": [-29.492637996950595, -0.029036413078703773, -0.14266102890052573]
}
}
},
{ "objName": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building",
"userData": {
"key": "building_03",
"level": "root" ,
"parentKey": "",
"fitView": {
"position": [71.88616384445248, 37.78356236595482, 6.803086007181708],
"target": [-47.2223570471867, -39.42491207712449, -5.377338476592742]
}
}
},
{ "objName": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" ,"userData": {"key": "building_04", "level": "root" }},
{ "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" ,"userData": {"key": "building_05", "level": "root" }},
{ "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" ,"userData": {"key": "Complex-building", "level": "root" }},
{ "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" ,"userData": {"key": "gatehouse", "level": "root" }}
],
"asyncModels": [
{ "objName": "electric-tower_01.obj", "mtlName": "electric-tower_01.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_02.obj", "mtlName": "electric-tower_02.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_03.obj", "mtlName": "electric-tower_03.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_04.obj", "mtlName": "electric-tower_04.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_05.obj", "mtlName": "electric-tower_05.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_06.obj", "mtlName": "electric-tower_06.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_07.obj", "mtlName": "electric-tower_07.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_08.obj", "mtlName": "electric-tower_08.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_09.obj", "mtlName": "electric-tower_09.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_10.obj", "mtlName": "electric-tower_10.mtl", "modelLevel": "Building" },
{ "objName": "electric-tower_11.obj", "mtlName": "electric-tower_11.mtl", "modelLevel": "Building" }
{ "objName": "electric-tower_01.obj", "mtlName": "electric-tower_01.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_01", "level": "root" }},
{ "objName": "electric-tower_02.obj", "mtlName": "electric-tower_02.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_02", "level": "root" }},
{ "objName": "electric-tower_03.obj", "mtlName": "electric-tower_03.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_03", "level": "root" }},
{ "objName": "electric-tower_04.obj", "mtlName": "electric-tower_04.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_04", "level": "root" }},
{ "objName": "electric-tower_05.obj", "mtlName": "electric-tower_05.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_05", "level": "root" }},
{ "objName": "electric-tower_06.obj", "mtlName": "electric-tower_06.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_06", "level": "root" }},
{ "objName": "electric-tower_07.obj", "mtlName": "electric-tower_07.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_07", "level": "root" }},
{ "objName": "electric-tower_08.obj", "mtlName": "electric-tower_08.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_08", "level": "root" }},
{ "objName": "electric-tower_09.obj", "mtlName": "electric-tower_09.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_09", "level": "root" }},
{ "objName": "electric-tower_10.obj", "mtlName": "electric-tower_10.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_10", "level": "root" }},
{ "objName": "electric-tower_11.obj", "mtlName": "electric-tower_11.mtl", "modelLevel": "Building" ,"userData": {"key": "electric-tower_11", "level": "root" }},
{ "objName": "valve-hall_01#roof.obj", "mtlName": "valve-hall_01#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_roof", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#wall.obj", "mtlName": "valve-hall_01#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_wall", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t1.obj", "mtlName": "valve-hall_01#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t1", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t2.obj", "mtlName": "valve-hall_01#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t2", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t3.obj", "mtlName": "valve-hall_01#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t3", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t4.obj", "mtlName": "valve-hall_01#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t4", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t5.obj", "mtlName": "valve-hall_01#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t5", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t6.obj", "mtlName": "valve-hall_01#t6.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t6", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t7.obj", "mtlName": "valve-hall_01#t7.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t7", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_01#t8.obj", "mtlName": "valve-hall_01#t8.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_01_t8", "level": "sub" ,"parentKey": "building_01"}},
{ "objName": "valve-hall_02#roof.obj", "mtlName": "valve-hall_02#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_roof", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#wall.obj", "mtlName": "valve-hall_02#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_wall", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t1.obj", "mtlName": "valve-hall_02#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t1", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t2.obj", "mtlName": "valve-hall_02#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t2", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t3.obj", "mtlName": "valve-hall_02#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t3", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t4.obj", "mtlName": "valve-hall_02#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t4", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t5.obj", "mtlName": "valve-hall_02#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t5", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t6.obj", "mtlName": "valve-hall_02#t6.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t6", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t7.obj", "mtlName": "valve-hall_02#t7.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t7", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t8.obj", "mtlName": "valve-hall_02#t8.mtl", "modelLevel": "Stuff" , "userData": {"key": "valve-hall_02_t8", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t9.obj", "mtlName": "valve-hall_02#t9.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t9", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t10.obj", "mtlName": "valve-hall_02#t10.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t10", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t11.obj", "mtlName": "valve-hall_02#t11.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t11", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t12.obj", "mtlName": "valve-hall_02#t12.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t12", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t13.obj", "mtlName": "valve-hall_02#t13.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t13", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t14.obj", "mtlName": "valve-hall_02#t14.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t14", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t15.obj", "mtlName": "valve-hall_02#t15.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t15", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_02#t16.obj", "mtlName": "valve-hall_02#t16.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_02_t16", "level": "sub" ,"parentKey": "building_02"}},
{ "objName": "valve-hall_03#roof.obj", "mtlName": "valve-hall_03#roof.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_roof", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#wall.obj", "mtlName": "valve-hall_03#wall.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_wall", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t1.obj", "mtlName": "valve-hall_03#t1.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t1", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t2.obj", "mtlName": "valve-hall_03#t2.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t2", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t3.obj", "mtlName": "valve-hall_03#t3.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t3", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t4.obj", "mtlName": "valve-hall_03#t4.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t4", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t5.obj", "mtlName": "valve-hall_03#t5.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t5", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t6.obj", "mtlName": "valve-hall_03#t6.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t6", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t7.obj", "mtlName": "valve-hall_03#t7.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t7", "level": "sub" ,"parentKey": "building_03"}},
{ "objName": "valve-hall_03#t8.obj", "mtlName": "valve-hall_03#t8.mtl", "modelLevel": "Stuff", "userData": {"key": "valve-hall_03_t8", "level": "sub" ,"parentKey": "building_03"}}
],
"version": "1.0.0"
}
export const chunk = (arr,size) => {
let objArr = [];
let index = 0;
let objArrlen = arr.length / size;
for (let i = 0;i < objArrlen;i++){
let arrTemp = [];
for (let j = 0;j < size;j++){
arrTemp[j] = arr[index++];
if (index === arr.length){
break;
}
}
objArr[i] = arrTemp;
}
return objArr;
};
......@@ -4,7 +4,6 @@ import { Connect } from 'amos-framework';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../consts/wsUrlConsts';
import SideControl from './sideControl';
import DataPane from './datapane';
import globalMsg from './pagefactory/msgFactory';
import { eventTopics, rulesDataFactory } from './consts';
import LayerPool from './LayerPool';
......@@ -17,7 +16,6 @@ const eventConnect = Connect.eventConnect;
@eventConnect
class MaskContent extends Component {
constructor(props) {
super(props);
this.state = {
......@@ -72,7 +70,8 @@ class MaskContent extends Component {
}
initViewModel = ()=>{
this.setState({ activeAction: 'panoramic' });
//选中全景监控、隐藏检索查询框
this.setState({ activeAction: 'panoramic', searchPaneVisible: false });
}
render() {
......@@ -101,14 +100,6 @@ class MaskContent extends Component {
transitionAppear: true
}
};
const datapaneAnim = {
animateName: 'zoom-comb-right',
visible: !planStarted && !alarmStarted,
animateProps: {
key: 'animate-datapane', // animate key
transitionAppear: true
}
};
const layerPoolAnimation = {
animateName: 'fade',
visible: alarmStarted,
......@@ -123,7 +114,7 @@ class MaskContent extends Component {
<div className="mask-content">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
{ !alarmStarted && sideControlShow && <SideControl multiple={multiple} errorAreaId={errorAreaId} onItemClick={onItemClick} layerConfig={layerConfig} animationProps={controlAnimation} activeAction={activeAction}/>}
{ !alarmStarted && <SearchPane visible={searchPaneVisible} focusPosition={focusPosition} changeSearchPaneVisible={() => this.changeSearchPaneVisible} />}
{ !alarmStarted && isShowActionBar && <SearchPane visible={searchPaneVisible} focusPosition={focusPosition} changeSearchPaneVisible={() => this.changeSearchPaneVisible} />}
<TopMsg alarmStart={alarmStart} />
{ !alarmStarted && !isShowActionBar && <ModelHeader animationProps={controlAnimation} headerName={headerName} handleExceptModel={this.handleExceptModel} />}
{ !alarmStarted && isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation} /> }
......@@ -154,7 +145,9 @@ MaskContent.propTypes = {
headerName: PropTypes.string,
setHeaderName: PropTypes.string,
handleExceptModel: PropTypes.func,
errorAreaId: PropTypes.number
errorAreaId: PropTypes.number,
editModelChange: PropTypes.func,
focusPosition: PropTypes.func
};
MaskContent.defaultProps = {
......
......@@ -6,17 +6,12 @@ import { connect3D } from 'amos-3d/lib/designer';
import { RiskPoint, PatrolPoint, PersonPoint3D, MonitorPoint, ProbePoint,
FireResourcePoint, EquipmentPoint, FireCar3D, FirePoint, WorkerMen3D, PointStatistics, ImpEquipmentMode } from './points';
import { eventTopics, isPointEvent , isLevelFilter } from './consts';
import { parseMarkers, parseLevelFilter, objRunning } from './dataProcessor';
import { parseMarkers, parseLevelFilter } from './dataProcessor';
const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2'];
const eventConnect = Connect.eventConnect;
const markers3D = [
{ key: '1', position: [153, -10, -20], size: 10, url: '/mods/components/3dviewConvertor/threeres/markers/person.png' },
{ key: '2', position: [-100, 22, 0], size: 10, url: '/mods/components/3dviewConvertor/threeres/markers/video.png', label: '视频点' },
{ key: '4', position: [30, -5, -90], size: 10, keepSize: true, label: '大小不变' }
];
const Shuttle = (props) => props.children;
......@@ -58,6 +53,7 @@ class PointsPool extends Component {
}
onMarkersCreated = (type, { markersCache }) => {
this.markerList[type] = markersCache;
(markersCache || []).forEach(mc => {
const extData = mc.getExtData();
......@@ -98,7 +94,7 @@ class PointsPool extends Component {
}
return (
<Shuttle>
<RiskPoint
<RiskPoint
{...rest}
markers={markers.riskSource}
onCreated={(val) => this.onMarkersCreated('riskSource', val)}
......@@ -117,6 +113,9 @@ class PointsPool extends Component {
markers={markers.patrol}
onCreated={(val) => this.onMarkersCreated('patrol', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<PersonPoint3D
{...rest}
......@@ -129,36 +128,54 @@ class PointsPool extends Component {
markers={markers.impEquipment}
onCreated={(val) => this.onMarkersCreated('impEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.pool}
onCreated={(val) => this.onMarkersCreated('pool', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.hydrant}
onCreated={(val) => this.onMarkersCreated('hydrant', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireEquipment}
onCreated={(val) => this.onMarkersCreated('fireEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireChamber}
onCreated={(val) => this.onMarkersCreated('fireChamber', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireFoamRoom}
onCreated={(val) => this.onMarkersCreated('fireFoamRoom', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
{!hideDetector ?
<FireResourcePoint
......@@ -174,6 +191,9 @@ class PointsPool extends Component {
markers={markers.monitorEquipment}
onCreated={(val) => this.onMarkersCreated('monitorEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<MonitorPoint
{...rest}
......@@ -197,6 +217,9 @@ class PointsPool extends Component {
markers={markers.fireCar}
onCreated={(val) => this.onMarkersCreated('fireCar', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<PointStatistics
{...rest}
......
import React, { Component } from 'react';
import { Modal ,Button} from 'amos-framework';
import { Modal } from 'amos-framework';
class PromptModal extends Component {
constructor(props) {
super(props);
this.state = {
};
this.state = {};
}
cancel = ()=>{
const {isback} =this.props.promptData
this.props.closePromptModal()
if(isback){
this.props.handleOutExceptModel()
cancel = () => {
const { isback } = this.props.promptData;
this.props.closePromptModal();
if (isback) {
this.props.handleOutExceptModel();
}
}
saveData=()=>{
const {isback,type} =this.props.promptData
if(isback){
this.props.handleOutExceptModel()
};
saveData = () => {
const { isback, type,pointType,pointParams } = this.props.promptData;
this.props.closePromptModal();
if (type === 'region') {
this.props.saveAreaData();
} else {
if (isback){
this.props.savePointData();
} else {
this.props.savePointAndRefreshMarker(pointType,pointParams);
}
}
this.props.closePromptModal()
if(type=='region')
{
this.props.saveAreaData()
}else{
this.props.savePointData()
if (isback) {
this.props.handleOutExceptModel();
}
}
};
render() {
const {promptData} =this.props
const { promptData } = this.props;
return (
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={<div className ='prompt-content'>
<div>{promptData.promptContent}</div>
{promptData.btnType =='isOk'?
<div className='prompt-buttons'>
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>:
<div className='prompt-buttons'>
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={
<div className="prompt-content">
<div>{promptData.promptContent}</div>
{promptData.btnType === 'isOk' ? (
<div className="prompt-buttons">
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>
) : (
<div className="prompt-buttons">
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
)}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
);
}
}
......
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { utils,UUID, deepCopy } from 'amos-tool';
import { UUID, deepCopy } from 'amos-tool';
import { PubSub } from 'ray-eventpool';
import { Connect as UIConnect, message, AmosAlert } from 'amos-framework';
import { Connect as UIConnect, message } from 'amos-framework';
import { FatLine } from 'amos-3d/lib/advanced';
import A3DDesigner, { Connect, FireObject,DESIGNER_CONSTS,PolygonRegion } from 'amos-3d/lib/designer';
import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent';
......@@ -13,8 +13,17 @@ import MaskContent from './MaskContent';
import { getObjFromNet, initView3DAction, query3DStatistics, pointModelistAction } from '../services/3dService';
import { desigerConf, desigerHelperConfig } from './conf';
import PointsPool from './PointsPool';
import PromptModal from './PromptModal';
import { eventTopics, isControllerEvent, isManualOperate } from './consts';
import { executeView3dCMD, parseManual, parseBubbleMarkers, tirggerPlanTopic, tirggerTransTopic } from './dataProcessor';
import {
executeView3dCMD,
parseManual,
parseBubbleMarkers,
tirggerPlanTopic,
tirggerTransTopic,
cacheObjsSave,
flyToSubView
} from './dataProcessor';
import {
dealTroubleMarkers,
assembleTroubleView,
......@@ -31,7 +40,7 @@ import {
flickerTroubleMarkers
} from './ruleActionView';
import { lineData } from './datas';
import { getAreaTreeAction, getPointTypeAction, getPointTreeAction, getPointListAction,saveAreaDataAction,savePointListAction } from '../services/moduleEditServices';
import { getAreaTreeAction, getPointTypeAction, getPointTreeAction,saveAreaDataAction,savePointListAction } from '../services/moduleEditServices';
import AreaLeftTree from './moduleEditComponent/AreaLeftTree';
import PointLeftTree from './moduleEditComponent/PointLeftTree';
import RightEditPointPanel from './moduleEditComponent/RightEditPointPanel';
......@@ -39,6 +48,7 @@ import RightEditRegionPanel from './moduleEditComponent/RightEditRegionPanel';
import { EVENTS_CONSTS } from '../consts/EventConsts';
import ExceptionArea from './exceptionArea/ExceptionArea';
import { exceptionRegionListAction,getPointsByRegionIdAction } from '../services/panoramicService';
import { chunk } from '../utils/MathUtils';
const AmosConfig = endConf.AmosConfig;
......@@ -85,27 +95,28 @@ class View3D extends Component {
fireEquipmentPosition: [],
contingencyPlanId: '',
markers: {
riskSource:[],//风险点 - riskSource;
patrol:[],//巡检点 -
impEquipment:[],//重点设备 -
monitorEquipment:[],//探测器 -
video:[],//摄像头 -
fireEquipment:[],//消防设备 -
person:[],
pool:[],
hydrant:[],
fireChamber:[],
fireCar:[],
fire:[],
fireDetection:[]
riskSource: [],//风险点 - riskSource;
patrol: [],//巡检点 -
impEquipment: [],//重点设备 -
monitorEquipment: [],//探测器 -
video: [],//摄像头 -
fireEquipment: [],//消防设备 -
person: [],
pool: [],
hydrant: [],
fireChamber: [],
fireCar: [],
fire: [],
fireDetection: [],
fireFoamRoom: []
},
markerType: null,
planStarted: false,
alarmStarted: false,
//编辑模式
drawing: false,//画线状态
selectArea: "",//选中区域
selectPoints: "",//选中点
selectArea: '',//选中区域
selectPoints: '',//选中点
treeData: [],//左树
pointTypeArr: [],
routePathData: [], //区域线位置
......@@ -120,10 +131,18 @@ class View3D extends Component {
isShowActionBar: true, //显示工具栏
errorAreaId: '' ,//异常区域id
positionxyz: '',
rightHeight: 1,
isPointSave: true,
rightHeight: 10,
isPointSave: false,
isAreaSave: false,
treeDataList: [],
abnormalStatus: true //点告警状态
abnormalStatus: true, //点告警状态
promptData: {
promptvisible: false,
promptContent: '',
type: 'region',
btnType: 'isOk',
isback: false
}
};
getObjFromNet(view3dFile, (objs, asyncModels) => {
......@@ -147,7 +166,7 @@ class View3D extends Component {
lineColor: '#878787', // 边框颜色
regionOpacity: 0.4
},
select:{
select: {
regionColor: '#FD0400', // 区域颜色
lineColor: '#FD0400', // 边框颜色
regionOpacity: 0.4
......@@ -158,6 +177,8 @@ class View3D extends Component {
onMouseMove: this.onMouseMove
};
this._marker = [];
this._cacheObj = {};//3维模型对象缓存
this.processorLevel = {};//3维模型对应关系缓存
}
componentDidMount() {
......@@ -250,9 +271,8 @@ class View3D extends Component {
this.r3d.on('keydown', evt => {
// 返回上级
if (this.lensLevel === LENS_LEVEL.SUB && evt.code === 'Backspace') {
this.lensJumpFactory.jumpRoot(obj => {
this.lensJumpFactory.fadeIn(obj);
});
this.initModelDisplay();
this.outlineFactory.toggleOutline([]);//清除选中
this.lensLevel = LENS_LEVEL.ROOT;
}
});
......@@ -260,7 +280,7 @@ class View3D extends Component {
_bindPubSubEvents = () => {
this.props.subscribe(eventTopics.base3d_view, (topic, data) => {
console.log('subscribe base3d_view')
console.log('subscribe base3d_view' + data);
if (isControllerEvent(topic)) {
executeView3dCMD(this, topic, data);
} else if (isManualOperate(topic)) {
......@@ -278,8 +298,8 @@ class View3D extends Component {
_bindRulesPubSubEvents = () => {
this.props.subscribe(eventTopics.fromws, (topic, content) => {
let data = content.data;
console.log('消息类型--->' + topic);
console.log('data==' + JSON.stringify(data));
console.log(`消息类型--->${topic}`);
console.log(`data==${JSON.stringify(data)}`);
switch (topic) {
case 'base3d.fromws.mapArea_action1-1': //“极I高端8111换流变A相”所在建筑高亮+报警logo+建筑模型上气泡弹出(极I高端8111换流变A相)
// this.equipmentId = data.equipmentId;
......@@ -317,7 +337,7 @@ class View3D extends Component {
dealTroubleMarkers(this, data); //处理设备报警:切换图层到探测器、显示报警的探测器(闪烁-报警,不闪烁-报警解除)--已完成
break;
case 'base3d.fromws.topArea_CONTINGENCY': //消防报警
data["contingencyPlanId"]=this.state.contingencyPlanId;
data['contingencyPlanId'] = this.state.contingencyPlanId;
this.props.trigger(eventTopics.top_ae_msg, data);
break;
case 'base3d.fromws.recordArea_refresh': //记录区刷新
......@@ -335,7 +355,7 @@ class View3D extends Component {
break;
case 'base3d.fromws.optionArea_': //交互区推数据
this.props.trigger(eventTopics.optionArea_view, data);
this.setState({ contingencyPlanId: data.contingencyPlanId })
this.setState({ contingencyPlanId: data.contingencyPlanId });
break;
case eventTopics.map_bubble:
parseBubbleMarkers(this, content); // 监控屏气泡
......@@ -461,7 +481,7 @@ class View3D extends Component {
});
};
onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot}) => {
onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot }) => {
this.cameraFactory = cameraFactory;
this.sceneFactory = sceneFactory;
this.outlineFactory = outlineFactory;
......@@ -486,7 +506,8 @@ class View3D extends Component {
onAllDone = objGroup => {
this.sceneFactory.level.change(objGroup);
this.stagePilot.rendererFactory.setupUModelSahdow();//接受阴影
// 接受阴影
this.stagePilot.rendererFactory.setupUModelSahdow();
this.setState({
startAsyncLoad: true
});
......@@ -502,15 +523,14 @@ class View3D extends Component {
onComplete = obj => {
const me = this;
cacheObjsSave(me,obj,LENS_LEVEL);//缓存对象及对应关系
if (!obj.isForceParent) {
obj.on('click', evt => {
if (this.state.isEditMode == false) {
console.log('obj click:', evt);
if (this.state.isEditMode === false) {
// this.focusPosition(evt.pickedPosition);
me.outlineFactory.toggleOutline(evt.object);
me.focusObject(evt.object);
flyToSubView(me,obj,LENS_LEVEL);
}
});
}
// 处理跳跃
......@@ -535,14 +555,7 @@ class View3D extends Component {
// 飞行到具体的 obj 之后,执行进入层级操作
onComplete() {
console.log('fly done!', object);
// 进入子层级
if (object.foreignKey) {
me.lensJumpFactory.jumpInByForeignKey(object.foreignKey, excludeObj => {
// 处理非该层级的物体 (fadeOut)
me.lensJumpFactory.fadeOut(excludeObj);
});
me.lensLevel = LENS_LEVEL.SUB;
}
me.lensLevel = LENS_LEVEL.SUB;
}
});
} else if (me.state.alarmStarted) {
......@@ -554,9 +567,9 @@ class View3D extends Component {
getPointLoop = ({ markers }, pointType, treeData) => {
treeData.forEach( t => {
if(t.isRegion && t.children && t.children.length > 0){
this.getPointLoop( { markers }, pointType, t.children)
}else if(t.position3d && !t.isRegion){
if (t.isRegion && t.children && t.children.length > 0){
this.getPointLoop( { markers }, pointType, t.children);
} else if (t.position3d && !t.isRegion){
t.position = t.position3d;
t.key = `${t.type}-${t.id}`;
t.label = t.name;
......@@ -568,31 +581,46 @@ class View3D extends Component {
//编辑模式获取点
getPointList = (pointType,treeData) => {
this.clearMarkers();
if(treeData){
let markers = {};
markers[pointType] = [];
if (treeData){
let markers = {
riskSource: [],//风险点
patrol: [],//巡检点
impEquipment: [],//重点设备
monitorEquipment: [],//探测器
video: [],//摄像头
fireEquipment: [],//消防设备
person: [],
pool: [],
hydrant: [],
fireChamber: [],
fireCar: [],
fire: [],
fireDetection: [],
fireFoamRoom: []
};
this.getPointLoop( { markers }, pointType, treeData);
this.setState({markers})
this.setState({ markers });
}
}
startDrow = (areaItem) => {
// this.a3dRef.addPen(m);
console.log('drow--------')
this.setState({ isAreaSave: true });
console.log('drow--------');
this.setState({
selectArea:areaItem,
rightHeight:10,
selectArea: areaItem,
rightHeight: 10,
showRightPanel: true
});
this.drowItem = areaItem;
this.addPen(areaItem.id)
this.addPen(areaItem.id);
}
addPen(areaKey) {
let params = { "displayName": "进攻线路", "thumb": "/a3dres/images/pathline/line-attack.png", "descr": "", "objParam": null, "type": "pen" }
let params = { 'displayName': '进攻线路', 'thumb': '/a3dres/images/pathline/line-attack.png', 'descr': '', 'objParam': null, 'type': 'pen' };
// console.log(this.state.selectArea)
const penProps = {
key: this.genPenId(),
color: 0x00ff00,
areaKey: areaKey,
areaKey,
...params
};
this.a3dRef.newPen(penProps);
......@@ -626,13 +654,13 @@ class View3D extends Component {
});
me.a3dRef.changeDrawState(PEN_STATE.FINISHED);
this.state.routePathData.push({
riskSourceId: this.drowItem.id,
riskSourceId: this.drowItem.id,
routePath: JSON.stringify({
routePath:penPoints,
regionHeigth:10
}),
routePath: penPoints,
regionHeigth: 10
})
})
});
this.setState({
drawing: false,
routePathData: this.state.routePathData
......@@ -656,8 +684,8 @@ class View3D extends Component {
const me = this;
me.a3dRef.changeDrawState(PEN_STATE.CLEARED);
// 结束绘制
this.setState({
drawing: false
this.setState({
drawing: false
});
}
......@@ -754,7 +782,7 @@ class View3D extends Component {
points: pen.getFmtPoints()
});
console.log(pen);
console.log(pen.getFmtPoints())
console.log(pen.getFmtPoints());
this.enableDrawPath = false;
}
}
......@@ -772,18 +800,19 @@ class View3D extends Component {
selectItemChange = (selectArea) => {
this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径
// 结束绘制
this.setState({
drawing: false
});
this.setState({
drawing: false
});
this.setState({
selectArea,
rightHeight:JSON.parse(selectArea.routePath).regionHeigth,
rightHeight: JSON.parse(selectArea.routePath).regionHeigth,
showRightPanel: true
});
}
//选中点变化
selectPointChange = (selectPoints) => {
const { markers, pointType } = this.state;
this.stagePilot.positionCtl.clearDrag();
if (selectPoints.isRegion){
this.setState({ selectArea: selectPoints, selectPoints });
} else {
......@@ -806,32 +835,32 @@ class View3D extends Component {
if (treeData && treeData.length > 0) {
treeData.map((item) => {
if (item.isRegion && item.isBind) {
if(selectArea && selectArea.id == item.id){
this.areas.push(<PolygonRegion {...this.areaStyles.select} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
if (selectArea && selectArea.id === item.id){
this.areas.push(<PolygonRegion {...this.areaStyles.select} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
this.getAreas(item.children);
}else{
} else {
if (item.children && item.children.length > 0) {
if (dragItem) {
if ( dragItem.parentId && dragItem.parentId == item.id) {
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
if ( dragItem.parentId && dragItem.parentId === item.id) {
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
} else {
this.areas.push(<PolygonRegion {...this.areaStyles.noDrop} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
this.areas.push(<PolygonRegion {...this.areaStyles.noDrop} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
}
{this.getAreas(item.children)}
{this.getAreas(item.children);}
} else {
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
{this.getAreas(item.children)}
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
{this.getAreas(item.children);}
}
} else {
if (dragItem) {
if ( dragItem && dragItem.parentId && dragItem.parentId === item.id) {
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
} else {
this.areas.push(<PolygonRegion {...this.areaStyles.noDrop} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
this.areas.push(<PolygonRegion {...this.areaStyles.noDrop} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
}
} else {
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item)}} />);
this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
}
}
......@@ -847,7 +876,7 @@ class View3D extends Component {
}
renderAreas = () => {
this.areas = [];
console.log(this.state.treeData)
console.log(this.state.treeData);
this.getAreas(this.state.treeData);
return this.areas;
}
......@@ -860,10 +889,10 @@ class View3D extends Component {
message.success('保存成功!');
getAreaTreeAction().then(data => {
//console.log(data);
console.log(JSON.stringify(data))
console.log(JSON.stringify(data));
this.setState({
treeData: data || [],
routePathData:[]
routePathData: []
});
});
}, eer => {
......@@ -877,6 +906,7 @@ class View3D extends Component {
//保存区域绑定
saveAreaData = () => {
let { routePathData } = this.state;
this.setState({ isAreaSave: false });
saveAreaDataAction(routePathData).then(d => {
message.success('保存成功!');
this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径
......@@ -886,10 +916,10 @@ class View3D extends Component {
});
getAreaTreeAction().then(data => {
//console.log(data);
console.log(JSON.stringify(data))
console.log(JSON.stringify(data));
this.setState({
treeData: data || [],
routePathData:[]
routePathData: []
});
});
}, eer => {
......@@ -899,24 +929,47 @@ class View3D extends Component {
//保存点绑定
savePointData = () => {
let { markers, pointType, isPointSave} = this.state;
this.setState({isPointSave: true});
let paramsArr = [];
paramsArr = markers[pointType].filter(e=> e.isEdit).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null
};
});
this.savePointList(pointType,paramsArr);
let { markers, pointType } = this.state;
this.setState({ isPointSave: false });
if (pointType === 'fireEquipment') {
let typeArr = ['fireEquipment','pool','hydrant','fireChamber','fireCar','fireFoamRoom'];
for (let i = 0;i < typeArr.length;i++){
let paramsArr = [];
if (markers[typeArr[i]].length > 0){
paramsArr = markers[typeArr[i]].filter(e=> e.isEdit).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null
};
});
if (i === 0){
this.savePointList(pointType,paramsArr);
} else {
this.savePointList(pointType,paramsArr,true);
}
}
}
} else {
let paramsArr = [];
paramsArr = markers[pointType].filter(e=> e.isEdit).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null
};
});
this.savePointList(pointType,paramsArr);
this.stagePilot.positionCtl.clearDrag();
}
}
savePointList = (pointType,paramsArr) => {
savePointList = (pointType,paramsArr,isfirst = true) => {
savePointListAction(paramsArr).then(
data => {
getPointTreeAction(pointType).then(
data => {
this.getPointList(pointType,data);
this.setState({
treeData: data || [],
pageType: 'point',
......@@ -924,14 +977,16 @@ class View3D extends Component {
});
}
);
message.success('保存成功');
},error => message.error('保存失败')
);
isfirst && message.success('保存成功');
},error =>{
isfirst && message.error('保存失败');
});
}
// 删除点绑定
deletePointBind = () => {
let { selectPoints ,pointTypeArr,pointType,markers} = this.state;
let { selectPoints ,pointType } = this.state;
if (selectPoints && !selectPoints.isRegion) {
let pointParams = [];
......@@ -940,24 +995,36 @@ class View3D extends Component {
pointType: selectPoints.type,
position3d: ``
});
this.savePointAndRefreshMarker(pointType,pointParams);
}else if(selectPoints && selectPoints.isRegion && selectPoints.children){
AmosAlert.confirm('提示', '是否删除该区域下所有点?', {
callback: (flag) => {
if (flag){
let pointParams = [];
pointParams = selectPoints.children.filter(e => e.position3d && e.position3d.length > 0).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: ''
};
});
this.savePointAndRefreshMarker(pointType,pointParams);
} else {
}
}
this.setState({ promptData: {
promptvisible: true,
promptContent: '确定将选中删除?',
type: 'point',
btnType: 'isOk',
isback: false,
pointType,
pointParams
}
});
//this.savePointAndRefreshMarker(pointType,pointParams);
} else if (selectPoints && selectPoints.isRegion && selectPoints.children){
let pointParams = [];
pointParams = selectPoints.children.filter(e => e.position3d && e.position3d.length > 0).map(item=>{
return {
pointId: item.id,
pointType: item.type,
position3d: ''
};
});
//this.savePointAndRefreshMarker(pointType,pointParams);
this.setState({ promptData: {
promptvisible: true,
promptContent: '是否删除该区域下所有点?',
type: 'point',
btnType: 'isOk',
isback: false,
pointType,
pointParams
}
});
}
}
......@@ -977,10 +1044,10 @@ class View3D extends Component {
//删除区域
deleteAreaBind = () => {
let { selectArea,treeData } = this.state;
let { selectArea } = this.state;
if (selectArea) {
getPointsByRegionIdAction(selectArea.id).then(d => {
if (d && d.length == 0){
if (d && d.length === 0){
this.state.routePathData.push({
riskSourceId: selectArea.id,
routePath: ''
......@@ -991,50 +1058,61 @@ class View3D extends Component {
this.getAreas(tree.children);
this.setState({
routePathData: this.state.routePathData,
treeData: tree.children
//treeData: tree.children,
selectArea: ''
});
this.setState({ promptData: {
promptvisible: true,
promptContent: '确定将选中删除?',
type: 'region',
btnType: 'isOk',
isback: false
}
});
} else {
message.danger('请先清除点的绑定再进行删除!');
}
});
} else {
message.danger('请先选择已绑定的区域再进行删除!');
}
}
/**
* 处理数据
*/
generateList = data => {
let {treeDataList } =this.state;
let { treeDataList } = this.state;
for (let i = 0; i < data.length; i++) {
const node = data[i];
const key = node.id;
const title = node.name;
treeDataList.push({ key, title });
if (node.children.length>0) {
if (node.children.length > 0) {
this.generateList(node.children);
}
}
this.setState({treeDataList})
this.setState({ treeDataList });
}
removeTreeDataRoutePathByChildId = ( areaId, obj ) => {
let oldSize = obj.children.length;
let flag = false;
if(oldSize > 0){
if (oldSize > 0){
obj.children && obj.children.some( t => {
if(t.id == areaId){
if (t.id === areaId){
t.routePath = '';
t.isBind = false;
flag = true
flag = true;
}
});
if(flag){//移除
if (flag){//移除
return;
}else{
} else {
obj.children && obj.children.some(t => {
this.removeTreeDataRoutePathByChildId( areaId, t );
});
}
}else{
} else {
return;
}
}
......@@ -1044,7 +1122,12 @@ class View3D extends Component {
*/
changeAreaPoint = (type) => {
let { pointTypeArr } = this.state;
this.setState({ treeDataList: [] });
this.setState( {
treeDataList: [],
dragItem: '',
selectArea: '',
selectPoints: ''
} );
this.stagePilot.positionCtl.clearDrag();//清除已有选中
if (type === 'region') {
getAreaTreeAction().then(data => {
......@@ -1064,7 +1147,8 @@ class View3D extends Component {
pointType: pointTypeArr[0].code || '',
treeData: data || [],
pageType: 'point',
showRightPanel: false
showRightPanel: false ,
selectArea: ''
});
});
this.enableCamera();
......@@ -1075,11 +1159,17 @@ class View3D extends Component {
if (!isPointSave){
this.showConfirm();
}
this.stagePilot.positionCtl.clearDrag();
this.setState({
pointType,
treeData: []
treeData: [],
treeDataList: [],
selectArea: '',
selectPoints: '',
dragItem: ''
});
getPointTreeAction(pointType).then(data => {
this.generateList(data);
this.getPointList(pointType,data);
this.setState({
pointType,
......@@ -1088,26 +1178,26 @@ class View3D extends Component {
});
}
showConfirm = () => {
AmosAlert.confirm('提示', '有未保存数据,是否保存?', {
callback: (flag) => {
if (flag){
this.savePointData();
} else {
this.setState({ isPointSave: true });
}
}
this.setState({ promptData:
{
promptvisible: true,
promptContent: `有未保存数据,是否保存?`,
type: 'point',
btnType: 'isOk',
isback: false
}
});
};
dragItemChange = (dragItem) => {
let { treeData } = this.state;
this.stagePilot.positionCtl.clearDrag();
if (dragItem.isRegion) {
//是区域
} else {
if (dragItem.isBind) {
//已绑定
} else {
let hasRegion = false;
//未绑定
}
}
this.setState({
......@@ -1125,15 +1215,15 @@ class View3D extends Component {
message.danger('只能放置未绑定的标记点');
return false;
}
}
const objs = this.a3dRef.pickerCoordinate(event.clientX, event.clientY, null, true);
let position;
if (objs.length > 0){
position = objs[0].point;
}
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(isInside);
if (dragItem) {
if (isInside === false) {
message.danger('只能放置在当前区域');
......@@ -1156,14 +1246,15 @@ class View3D extends Component {
let selectPoints = {
id: dragItem.id,
type: dragItem.type
type: dragItem.type,
position: position.toArray()
};
markers[`${type}`] = markers[`${type}`].filter(e => e.id != dragItem.id );
markers[`${type}`] = markers[`${type}`] && markers[`${type}`].filter(e => e.id !== dragItem.id );
markers[`${type}`].push(addPointParam);
this.setState({
markers: deepCopy(markers),
selectPoints
// positionxyz: position.toArray()
selectPoints,
showRightPanel: true
});
}
}
......@@ -1183,7 +1274,7 @@ class View3D extends Component {
this.setState({ isEditMode });
if (isEditMode === true) {
getAreaTreeAction().then(treeData => {
this.generateList(treeData)
this.generateList(treeData);
this.setState({
treeData: treeData || []
});
......@@ -1198,28 +1289,6 @@ class View3D extends Component {
});
}
}
changeMarkerType = (item, isCancel) => {
const { markers } = this.state;
if (item.isLine) {
this.setState({
toggleRoad: !isCancel
});
} else {
if (isCancel) {
markers[item.type] = [];
this.setState({
markers
});
} else {
// if (totalDelta < mousewheelCount) {
this.asyncLoadMarkerData(item.type);
}
}
};
asyncLoadMarkerData = (markerType, riskSourceId) => {
const { markers,abnormalStatus } = this.state;
this.setState({ showMap: false });
......@@ -1410,7 +1479,7 @@ class View3D extends Component {
// markers[markerType] = d;
this.setState({
markers,
markerType: "impEquipmentMode"
markerType: 'impEquipmentMode'
});
return;
});
......@@ -1472,7 +1541,25 @@ class View3D extends Component {
return points.length > 0 && <PolygonRegion key={area.id} {...regionConf} points={points} onCreated={e=>this.onRectCreated(e,area,index)} />;
});
}
handleOutExceptModel=()=>{
this.executeOperate({ key: 'fitview' });//恢复正常视角
this.props.editModelChange(false);//显示全景统计
this.enableCamera();//恢复相机
this.setState({
treeData: [],
pageType: 'region',//区域
sideControlShow: false, //隐藏耳朵
isShowActionBar: true, //显示工具栏
startLoadExceptionArea: true, //显示marker,
headerName: '', //设置头名称
isEditMode: false, //推出编辑模式
errorAreaId: '',
dragItem: '',
selectArea: '',
selectPoints: '',
showRightPanel: false
});
}
handleExceptModel =(type,areaId)=>{
let { isPointSave } = this.state;
this.clearMarkers();
......@@ -1487,57 +1574,49 @@ class View3D extends Component {
});
} else if (type === 'out_except_model'){
this.stagePilot.positionCtl.clearDrag();
if (!isPointSave){
AmosAlert.confirm('提示', '有未保存数据,是否保存?', {
callback: (flag) => {
if (flag){
this.savePointData();
this.executeOperate({ key: 'fitview' });//恢复正常视角
this.props.editModelChange(false);//显示全景统计
this.setState({
treeData: [],
pageType: 'region',//区域
sideControlShow: false, //隐藏耳朵
isShowActionBar: true, //显示工具栏
startLoadExceptionArea: true, //显示marker,
headerName: '', //设置头名称
isEditMode: false, //推出编辑模式
errorAreaId: ''
});
} else {
this.props.editModelChange(false);//显示全景统计
this.setState({
isPointSave: true,
treeData: [],
pageType: 'region',//区域
sideControlShow: false, //隐藏耳朵
isShowActionBar: true, //显示工具栏
startLoadExceptionArea: true, //显示marker,
headerName: '', //设置头名称
isEditMode: false, //推出编辑模式
errorAreaId: ''
});
}
}
this.initModelDisplay();
if (isAreaSave){
this.setState({ promptData:
{
promptvisible: true,
promptContent: `要在退出之前保存对风险区域的更改吗?`,
type: 'region',
btnType: 'isSave',
isback: true
}
});
return;
} else {
this.props.editModelChange(false);//显示全景统计
this.enableCamera();//恢复相机
this.setState({
treeData: [],
pageType: 'region',//区域
sideControlShow: false, //隐藏耳朵
isShowActionBar: true, //显示工具栏
startLoadExceptionArea: true, //显示marker,
headerName: '', //设置头名称
isEditMode: false, //推出编辑模式
errorAreaId: ''
});
if (isPointSave){
this.setState({ promptData:
{
promptvisible: true,
promptContent: `要在退出之前保存对风险点的更改吗?`,
type: 'point',
btnType: 'isSave',
isback: true
}
});
} else {
this.handleOutExceptModel();
}
}
}
}
/**
*
*初始化模型显示(显示所有3维模型),清除选中
* @memberof View3D
*/
initModelDisplay =()=>{
this.lensJumpFactory.jumpRoot(obj => {
this.lensJumpFactory.fadeIn(obj);
});
this.outlineFactory.toggleOutline([]);
}
setHeaderName =(name)=>{
this.setState({ headerName: name });
}
......@@ -1552,10 +1631,28 @@ class View3D extends Component {
return object;
}
/**
*多线程加载子模型
*
* @memberof View3D
*/
multLoadWorkerObjContent =(asyncModels)=>{
const sliceArry = chunk(asyncModels, 5);//每5个一组
return sliceArry.map(objs=>{
return <WorkerObjContent
onComplete={this.onComplete}
objs={objs}
onWorkerMessage={this.onWorkerLoading}
enableLoading
afterInit={this.onAfterWorkerInit}
/>;
});
}
addMarker=({ extData, position })=>{
const me = this;
const { markers } = me.state;
const isInside = me.polygonRegion && extData.parentId && me.polygonRegion[extData.parentId].pointInPolygon([position.x,position.y,position.z]);
//const isInside = me.polygonRegion && extData.parentId && me.polygonRegion[extData.parentId].pointInPolygon([position.x,position.y,position.z]);
// if (isInside){
markers[extData.type].forEach(e => {
if (e.id === extData.id){
......@@ -1574,7 +1671,13 @@ class View3D extends Component {
// message.error('不能放置非所在区域');
// }
}
closePromptModal=()=>{
this.setState({
promptData: { promptvisible: false },
isPointSave: false,
isAreaSave: false
});
}
render() {
const {
objs,
......@@ -1593,7 +1696,6 @@ class View3D extends Component {
isShowActionBar,
headerName,
errorAreaId,
positionxyz,
rightHeight,
treeDataList
} = this.state;
......@@ -1635,6 +1737,14 @@ class View3D extends Component {
return (
<div className='ModuleEditPage'>
<PromptModal promptData={promptData}
saveAreaData={this.saveAreaData}
handleOutExceptModel={this.handleOutExceptModel}
savePointAndRefreshMarker={(pointType,pointParams)=>this.savePointAndRefreshMarker(pointType,pointParams)}
savePointData={this.savePointData}
closePromptModal={this.closePromptModal}
/>
<div
className='designerBox'
onDragOver={(e) => {e.preventDefault();}}
......@@ -1679,14 +1789,14 @@ class View3D extends Component {
positionCtlProps={positionCtlProps}
onCreated={this.onGraphCreated}
>
{startAsyncLoad && <WorkerObjContent objs={asyncModels} onWorkerMessage={this.onWorkerLoading} enableLoading afterInit={this.onAfterWorkerInit} />}
{startAsyncLoad && this.multLoadWorkerObjContent(asyncModels)}
{isEditMode && pageType === 'region' ? '' :
<PointsPool markers={markers} isEditMode={isEditMode} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} stagePilot={this.stagePilot} positionCtl={this.positionCtl} addMarker={this.addMarker} ref={node => this.pointsPool = node} />}
{fireTruckRoute && <FatLine {...lineData.fatLineConf} linePath={JSON.parse(fireTruckRoute)} visible={showFireTruckRoute} />}
<FlameFire position={firePosition} width={10} height={20} depth={8} sliceSpacing={1} visible={planStarted} />
{isEditMode && this.renderAreas()}
{this.renderPolygonRegion(exceptionAreas)}
{startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} />}
{startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} focusObject={this.focusObject} />}
</A3DDesigner>
</div>
{ isEditMode &&
......@@ -1714,6 +1824,7 @@ class View3D extends Component {
pageType={pageType}
treeDataList={treeDataList}
// pointType={pointType}
markers={markers}
pointTypeArr={pointTypeArr}
pointTypeChange={this.pointTypeChange}
dragItemChange={this.dragItemChange}
......@@ -1726,10 +1837,10 @@ class View3D extends Component {
</div>
<div className='rightBox'>
{
showRightPanel && pageType === 'region' ? <RightEditRegionPanel detailData={selectArea} rightHeight={rightHeight} closeRightPanel={()=>this.setState({showRightPanel:false})} changeRoutePath={this.changeRoutePath} routePathData={this.state.routePathData}/> : ''
showRightPanel && pageType === 'region' ? <RightEditRegionPanel detailData={selectArea} rightHeight={rightHeight} closeRightPanel={()=>this.setState({ showRightPanel: false })} changeRoutePath={this.changeRoutePath} routePathData={this.state.routePathData} /> : ''
}
{
showRightPanel && pageType === 'point' ? <RightEditPointPanel detailData={selectPoints} showRightPanel={showRightPanel} closeRightPanel={()=>this.setState({showRightPanel:false})} markers={markers} changeMarkersData={this.changeMarkersData}/> : ''
showRightPanel && pageType === 'point' ? <RightEditPointPanel detailData={selectPoints} showRightPanel={showRightPanel} closeRightPanel={()=>this.setState({ showRightPanel: false })} markers={markers} changeMarkersData={this.changeMarkersData} /> : ''
}
</div>
</div>
......
......@@ -342,8 +342,8 @@ export const desigerConf = {
fov: 45,
near: 1,
far: 5000,
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386],
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572],
// 是否启用拾取器
enablePicker: true,
builtInOrbit: {
......@@ -388,8 +388,8 @@ export const curveConf = {
export const desigerHelperConfig = {
cameraEffect: {
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386]
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572]
},
objAnchor: {
position: [0, 5, 0]
......
......@@ -344,4 +344,56 @@ export const objRunning = (markerObj, routePath, delayTime) => {
});
};
/**
* 模型对象缓存
* @param {object} instance
* @param {object} obj
*/
export const cacheObjsSave = (instance,obj,LENS_LEVEL)=>{
const { level, parentKey, key } = obj.userData || {};
if (level && key){
instance._cacheObj[key] = obj;
switch (level) {
case LENS_LEVEL.ROOT:// 父节点
if (!instance.processorLevel[key]){
instance.processorLevel[key] = [];
}
break;
case LENS_LEVEL.SUB:// 子节点
if (!instance.processorLevel[parentKey]){
instance.processorLevel[parentKey] = [];
}
instance.processorLevel[parentKey].push(key);// 在对应关系中,添加其子节点
break;
default:
break;
}
}
};
/**
* 进入选择物体内部
* @param {object} instance
* @param {object} obj
*/
export const flyToSubView = (instance,obj,LENS_LEVEL) =>{
const { level, key: objKey, fitView } = obj.userData || {};
if (level && objKey && level === 'root' && (instance.processorLevel[objKey] || []).length > 0){
Object.keys(instance.processorLevel).forEach(key => {
// 隐藏所有一级
instance._cacheObj[key].visible = false;
// 隐藏非目标二级
if (key !== objKey){
instance.processorLevel[key].forEach(sec => {
instance._cacheObj[sec].visible = false;
});
}
});
// 镜头切换
fitView && instance.cameraFactory.fitView(fitView);//视角调整为最近视角
instance.lensLevel = LENS_LEVEL.SUB;
} else {
instance.focusObject(obj);
}
};
......@@ -44,10 +44,12 @@ class ExceptionArea extends Component {
}
onMarkerClick = (marker) => {
const { extData } = marker;
const { extData, node } = marker;
this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id);
this.props.focusObject && this.props.focusObject(node);
}
setTopCardConf = (obj,{ safetyIndex })=>{
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
......@@ -71,6 +73,16 @@ class ExceptionArea extends Component {
obj.baseObjHelper.title = safetyIndex;
}
toCameraPosition = (item) => {
if (item && item.x){
return { x: item.x , y: item.y + 200 , z: item.z + 200 };
} else if (item && item[0]){
return { x: item[0] , y: item[1] + 200 , z: item[2] + 200 };
} else {
return;
}
}
markerCreated = ({ markersCache }) => {
this.markersCache = markersCache;
markersCache.eachValue(item=>{
......@@ -97,7 +109,8 @@ class ExceptionArea extends Component {
ExceptionArea.propTypes = {
markers: PropTypes.array,
handleExceptModel: PropTypes.func
handleExceptModel: PropTypes.func,
focusObject: PropTypes.func
};
export default ExceptionArea;
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree,Select,Search,Button } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
import { Connect, Tree, Search, Button } from 'amos-framework';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
const getParentKey = (key, tree) => {
let parentKey;
for (let i = 0; i < tree.length; i++) {
const node = tree[i];
if (node.children && node.children.length >0) {
if (node.children && node.children.length > 0) {
if (node.children.some(item => item.id === key)) {
parentKey = node.id;
} else if (getParentKey(key, node.children)) {
......@@ -26,56 +25,23 @@ const getParentKey = (key, tree) => {
class AreaLeftTree extends Component {
constructor(props) {
super(props);
this.state = {
// showScreenSaver: false //是否打开屏保
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:'',
treeDataList : [],
searchValue:''
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData: [],
pointTypeArr: [],
pointType: '',
treeDataList: [],
searchValue: ''
};
}
componentDidMount() {
let {treeData,pointTypeArr,treeDataList} = this.props;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr,pageType,treeDataList} = nextProps;
this.setState({
treeData,
pointTypeArr,
treeDataList,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
// onSelectChange = (value, item) =>{
// console.log(value, item);
// this.state.pointType = value;
// this.props.pointTypeChange(value);
// }
onSearchChange =(e,value) => {
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const value = e.target.value;
const { treeDataList,treeData } = this.props;
const expandedKeys = treeDataList
.map(item => {
if (item.title.indexOf(value) > -1) {
......@@ -101,44 +67,16 @@ class AreaLeftTree extends Component {
autoExpandParent: false
});
}
// onCheck = (checkedKeys,e) => {
// console.log('onCheck', checkedKeys);
// // console.log('onCheck', e);
// let currentKey = checkedKeys.checked[0]?checkedKeys.checked[checkedKeys.checked.length-1]:'';
// if (checkedKeys.checked.length<2) {
// currentKey = checkedKeys.checked[0]
// } else {
// if (checkedKeys.checked[0] == this.state.checkedKeys[0]) {
// currentKey = checkedKeys.checked[1]
// } else {
// currentKey = checkedKeys.checked[0]
// }
// }
// // checkedKeys[0] = checkedKeys[checkedKeys.length - 1]
// this.setState({ checkedKeys: currentKey?[currentKey]:[] });
// this.props.selectItemChange(currentKey);
// if (currentKey) {
// this.props.startDrow(currentKey);
// }else {
// this.props.stopDrowing()
// }
// }
drowArea = (editItem) => {
}
onTreeSelect = (selectedKeys, info) => {
console.log('onSelect', info);
let selectItem = info.node.props.dataRef;
this.setState({ selectedKeys });
this.props.selectItemChange(selectItem);
}
// onClick={(e)=>{e.nativeEvent.stopImmediatePropagation();e.stopPropagation();console.log(123123);}}
renderTreeNodes = (data) => {
let {searchValue} =this.state
// console.log(data);
if (data.length>0) {
let { searchValue } = this.state;
if (data.length > 0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
......@@ -155,17 +93,17 @@ class AreaLeftTree extends Component {
);
if (item.children) {
return (
<TreeNode
title={
<div>
{
<span >
{title}
<span className='icon'>
{
item.isBind?'':
<TreeNode
title={
<div>
{
<span >
{title}
<span className='icon'>
{
item.isBind ? '' :
<img
src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/editBtn.png'
src={moduleEditIcon.editBtn}
onClick={(e) => {
e.nativeEvent.stopImmediatePropagation();
e.stopPropagation();
......@@ -173,18 +111,18 @@ class AreaLeftTree extends Component {
}}
/>
}
{
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.routePath?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
{
item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> :
item.routePath ? <img src={moduleEditIcon.noSaveTip} alt='' /> :
<img src={moduleEditIcon.noSaveTip} alt='' />
}
</span>
</span>
</span>
}
</div>
</div>
}
key={item.id}
dataRef={item}
key={item.id}
dataRef={item}
>
{this.renderTreeNodes(item.children)}
</TreeNode>
......@@ -195,44 +133,45 @@ class AreaLeftTree extends Component {
}
render() {
let { treeData, checkedKeys,pointTypeArr,pointType} = this.state;
let { pageType } = this.props;
return (
let { treeData } = this.props;
return (
<div className="leftTree">
<div className='leftContainer'>
<div className='topForm'>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
<div className='leftContainer'>
<div className='topForm'>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
// checkable
// checkStrictly
selectable={true}
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={true}
selectable
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent
// onCheck={this.onCheck}
// checkedKeys={checkedKeys}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.saveAreaData()
}} ></Button>
<Button
className='deleteBtn'
onClick={() => {
this.props.deleteAreaBind()
}} ></Button>
</div>
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.saveAreaData();
}}
/>
<Button
className='deleteBtn'
onClick={() => {
this.props.deleteAreaBind();
}}
/>
</div>
</div>
</div>
);
......
/* eslint-disable react/prop-types */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree,Select,Search,Button } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
import { Tree, Select, Search, Button } from 'amos-framework';
import imgStatic from '../../consts/imgStatic';
const eventConnect = Connect.eventConnect;
const moduleEditIcon = imgStatic.moduleEditIcon;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
const getParentKey = (key, tree) => {
......@@ -22,59 +22,52 @@ const getParentKey = (key, tree) => {
return parentKey;
};
@eventConnect
class PointLeftTree extends Component {
constructor(props) {
super(props);
this.state = {
// showScreenSaver: false //是否打开屏保
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:'',
treeDataList : [],
searchValue:''
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData: [],
pointTypeArr: [],
pointType: '',
treeDataList: [],
searchValue: ''
};
}
componentDidMount() {
let {treeData,pointTypeArr,treeDataList} = this.props;
componentWillMount() {
const { treeData, pointTypeArr, treeDataList } = this.props;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
// console.log(this.props)
pointType: pointTypeArr[0] ? pointTypeArr[0].code : ''
});
}
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr,treeDataList} = nextProps;
this.setState({
treeData,
treeDataList,
//pointTypeArr,
//pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
console.log(nextProps);
let { treeData,treeDataList } = nextProps;
this.setState({
treeData,
treeDataList
});
}
onSelectChange = (value, item) =>{
console.log(value, item);
this.setState({pointType:value})
this.setState({ pointType: value });
this.props.pointTypeChange(value);
}
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const value = e.target.value;
onSearchChange =(e,value) => {
const { treeDataList,treeData } = this.props;
const expandedKeys = treeDataList
.map(item => {
if (item.title.indexOf(value) > -1) {
......@@ -84,16 +77,13 @@ class PointLeftTree extends Component {
})
.filter((item, i, self) => item && self.indexOf(item) === i);
this.setState({
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
onExpand = (expandedKeys) => {
//console.log('onExpand', arguments);
// if not set autoExpandParent to false, if children expanded, parent can not collapse.
// or, you can remove all expanded children keys.
this.setState({
expandedKeys,
autoExpandParent: false
......@@ -107,10 +97,10 @@ class PointLeftTree extends Component {
}
// eslint-disable-next-line react/sort-comp
renderTreeNodes = (data) => {
let {searchValue} =this.state
// console.log(data);
if (data.length>0) {
const { searchValue, pointType } = this.state;
if (data.length > 0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
......@@ -127,46 +117,39 @@ class PointLeftTree extends Component {
);
if (item.children) {
return (
<TreeNode
title={
<div>
{item.isRegion?
<span>
{title}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />:
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
}
</span>
</span>:
<span
draggable={true}
onDragStart={() => {
this.props.dragItemChange(item)
}}
>
{title}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />:
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
}
</span>
</span>}
</div>
}
key={item.id}
dataRef={item}
onDragStart={() => {
this.props.dragItemChange(item)
}}>
<TreeNode
title={
<div>
{item.isRegion ?
<span>
{title}
<span className='icon'>
{ item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> : <img src={moduleEditIcon.nobindTip} alt='' /> }
</span>
</span> :
<span
draggable
onDragStart={() => {
this.props.dragItemChange(item);
}}
>
{title}
<span className='icon'>
{
this.checkPointIsNoSave(pointType,item) ? <img src={moduleEditIcon.noSaveTip} alt='' /> :
item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> :
<img src={moduleEditIcon.nobindTip} alt='' />
}
</span>
</span>}
</div>
}
key={item.id}
dataRef={item}
onDragStart={() => {
this.props.dragItemChange(item);
}}
>
{this.renderTreeNodes(item.children)}
</TreeNode>
);
......@@ -183,56 +166,66 @@ class PointLeftTree extends Component {
this.setState({ selectedKeys });
this.props.selectPointChange(selectItem);
}
checkPointIsNoSave =(pointType,{ id })=>{
const { markers } = this.props;
const selectPoints = markers[pointType];
const point = selectPoints.find(point=>point.id === id);
if (point && point.isEdit) {
return true;
} else {
return false;
}
}
render() {
let { treeData, checkedPointsKeys,pointTypeArr,pointType } = this.state;
let { pageType } = this.props;
return (
const { treeData,pointTypeArr } = this.props;
const pointType = pointTypeArr[0] ? pointTypeArr[0].code : '';
return (
<div className="leftTree">
<div className='leftContainer'>
<div className='topForm'>
{(pointType!='') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'>
{
pointTypeArr.map(item => {
return (<Option className='selectOption' value={item.code} >{item.name}</Option>)
<div className='leftContainer'>
<div className='topForm'>
{(pointType !== '') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'>
{
pointTypeArr.map((item )=> {
return (<Option key={item} className='selectOption' value={item.code} >{item.name}</Option>);
})
}
</Select>
</Select>
}
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
// checkable
// checkStrictly
selectable={true}
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={this.state.autoExpandParent}
// onCheck={this.onCheck}
// checkedKeys={checkedPointsKeys}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.savePointData()
}} ></Button>
<Button
className='deleteBtn'
onClick={() => {
this.props.deletePointBind()
}} ></Button>
</div>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
selectable
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={this.state.autoExpandParent}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.savePointData();
}}
/>
<Button
className='deleteBtn'
onClick={() => {
this.props.deletePointBind();
}}
/>
</div>
</div>
</div>
);
......@@ -240,8 +233,7 @@ class PointLeftTree extends Component {
}
PointLeftTree.propTypes = {
subscribe: PropTypes.func,
trigger: PropTypes.func
markers: PropTypes.object
};
export default PointLeftTree;
......@@ -4,7 +4,9 @@ import { Connect, Button, Input, Form, Radio } from 'amos-framework';
import { PubSub } from 'ray-eventpool';
import { getPointTreeDetailAction } from '../../services/moduleEditServices';
import { eventTopics } from './../consts';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const FormItem = Form.Item;
const RadioGroup = Radio.Group;
......@@ -110,31 +112,30 @@ class RightEditPointPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'>
<div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/>
<span className='titleText'>风险点信息</span>
<img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险点信息</span>
</div>
<div className='baseMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/>
<span className='titleText'>基本信息</span>
<div className='moduleTitle'>
<img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span>
</div>
<div className='moduleContent'>
<div className='msgItem'>
<div className='itemLabel'>风险名称</div>
<FormItem field="name" >
<Input value={detailData.name} disabled />
</FormItem>
</div>
<div className='moduleContent'>
<div className='msgItem'>
<div className='itemLabel'>风险名称</div>
<FormItem field="name" >
<Input value={detailData.name} disabled/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>参考编号</div>
<FormItem field="code" >
<Input
onChange={(e) => this.onChange('name', e)}
value={detailData.code}
disabled
/>
</FormItem>
<FormItem field="code" >
<Input
onChange={(e) => this.onChange('name', e)}
value={detailData.code}
disabled
/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>风险等级</div>
......@@ -143,7 +144,7 @@ class RightEditPointPanel extends Component {
</FormItem>
</div>
</div>
</div>
</div>
<div className='3dMsg'>
<div className='moduleTitle'>
......
......@@ -2,8 +2,10 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree, Select, Search, Button, Input,InputNumber, Form, Radio } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
......@@ -87,7 +89,6 @@ class RightEditRegionPanel extends Component {
this.form.validate((valid, dataValues, errors) => {
console.log('返回内容:', dataValues, valid, errors);
if (valid) {
let routePathData=[ {
riskSourceId: detailData.id,
routePath: JSON.stringify({
......@@ -104,8 +105,10 @@ class RightEditRegionPanel extends Component {
})
}
this.props.changeRoutePath(routePathDataNode);
this.props.closeRightPanel()
} else {
console.log('error submit!!');
this.props.closeRightPanel()
return false;
}
});
......@@ -127,12 +130,12 @@ class RightEditRegionPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'>
<div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/>
<img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险区域信息</span>
</div>
<div className='baseMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/>
<img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span>
</div>
<div className='moduleContent'>
......@@ -164,7 +167,7 @@ class RightEditRegionPanel extends Component {
<Option value="4">四级</Option>
<Option value="5">五级</Option>
</Select> */}
<Input value={detailData.level} disabled/>
<Input value={detailData.level} disabled />
</FormItem>
</div>
......@@ -172,7 +175,7 @@ class RightEditRegionPanel extends Component {
</div>
<div className='3dMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/right3dIcon.png'/>
<img src={moduleEditIcon.right3dIcon} alt='' />
<span className='titleText'>三维信息</span>
</div>
<div className='moduleContent'>
......
......@@ -86,8 +86,8 @@ export const FireResourcePoint = marker3DFactory(BasicPoint,
markerType: 'fireResource',
markerParams: {
useModel: true,
objPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.obj',
mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.mtl'
objPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.obj',
mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.mtl'
}
}
);
......
......@@ -2,26 +2,42 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { utils } from 'amos-tool';
import { Markers } from 'amos-3d/lib/designer';
import { BaseObjHelper } from 'base-r3d/lib/factory';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { CONSTS } from './../../consts/storageConsts';
import PointDialog from './PointDialog';
import { tirggerPlanTopic } from './../dataProcessor';
import { marker3DIoncMapper, markerTitleBgMapper } from './../../consts/imgStatic';
import MarkerIcon from './MarkerIcon';
import { eventTopics, isPointEvent , isLevelFilter } from './../consts';
import { parseMarkers, parseLevelFilter } from '../dataProcessor';
const getIcon = (markerType, level) => {
// return marker3DIoncMapper[`${markerType}_${level}`];
if (markerType === 'riskSource' || markerType === 'patrol' || markerType === 'impEquipmentMode') {
return marker3DIoncMapper[`${markerType}_${level}`];
}
return marker3DIoncMapper[`${markerType}`]
return marker3DIoncMapper[`${markerType}`];
};
export default function marker3DFactory(WrappedComponent = 'div', options){
// const createMarkerLabel = text => {
// const div = document.createElement('div');
// div.style.position = 'absolute';
// div.style.marginTop = '-3rem';
// div.className = 'three-ui-anchor';
// div.innerText = text;
// return div;
// };
const urlMapper = {
fireCar: { file: 'fire-car', label: '消防车' },
fireEquipment: { file: 'fireEquip', label: '消防设备' },
fireFoamRoom: { file: 'fireFoam', label: '泡沫间' },
fireChamber: { file: 'fireChamber', label: '消防室' },
hydrant: { file: 'hydrant', label: '消防栓' },
pool: { file: 'pool', label: '灭火水池' }
};
export default function marker3DFactory(WrappedComponent = 'div', options) {
const { markerType, markerParams } = options;
class MarkerPoints extends Component {
static propTypes = {
// marker 显隐
visible: PropTypes.bool,
......@@ -31,6 +47,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
constructor(props) {
super(props);
this.markerList = {};
this.markerEvents = {
click: this.onMarkerClick,
// dblclick: this.onMarkerDblClick,
......@@ -63,36 +80,50 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
componentWillMount = () => {
this.setState({ planStarted: this.props.planStarted });
};
componentDidMount() {
this.props.subscribe(eventTopics.base3d_view, (topic, data) => {
if (isPointEvent(topic)){
parseMarkers(this, topic, data);
} else if (isLevelFilter(topic)) {
parseLevelFilter(this, topic, data);
}
});
this.props.subscribe('base3d.fromws1.showFireTruckRoute', (topic, data) => {
parseMarkers(this, topic, data);
});
}
componentWillReceiveProps = nextProps => {
if ( nextProps.isEditMode ){
this.markersCache.eachValue(obj=>{
if (nextProps.isEditMode) {
this.markersCache.eachValue(obj => {
// this.setTopCardConf(obj, obj.extData);
if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){
if (nextProps.selectPoints.type === obj.extData.type && nextProps.selectPoints.id === obj.extData.id) {
this.setTwinkleConf(obj);
}
});
}
this.setState({ planStarted: nextProps.planStarted });
}
};
componentWillUnmount() {
this.objAnchorHelper && this.objAnchorHelper.destroy();
}
onMarkerDblClick = (marker, e) => {
console.log('marker3DFactory','onMarkerDblClick')
console.log('marker3DFactory', 'onMarkerDblClick');
if (this.props.isEditMode) {
return false;
}
clearTimeout(this.time);
// tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
if (marker.extData.markerType === 'fire' && void 0 !== marker.extData.show) {
tirggerTransTopic(CONSTS.forward, { details: { type: 'impEquipment', dialogId: marker.extData.equipmentId, show: marker.extData.show }, dateTime: Date.now() });
tirggerTransTopic(CONSTS.forward, {
details: { type: 'impEquipment', dialogId: marker.extData.equipmentId, show: marker.extData.show },
dateTime: Date.now()
});
return;
}
this.pdRef.tirggerBussines(marker);
}
};
onMarkerClick = (marker, e) => {
const { isClick } = this.state;
......@@ -113,16 +144,16 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
// 设置延迟事件,3秒后将执行
that.setState({ isClick: true }); // 将isClick设置为true
}, 1000);
}
};
markerDragend = (marker, evt) => {
if (marker){
if (marker) {
console.log(marker.position);
console.log(marker.extData);
this.props.addMarker(marker);
}
}
};
markerCreated = ({ markersCache }) => {
let { isEditMode,selectKey } =this.props;
let { isEditMode, selectKey } = this.props;
this.markersCache = markersCache;
this.stagePilot = this.props.stagePilot;
this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
......@@ -144,21 +175,22 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
obj.baseObjHelper.setOutlineHelper(this.outlineHelper);
}
obj.baseObjHelper.style.outlineColor = color;
pulsePeriod && obj.baseObjHelper.outlineHelper.setConfig({
pulsePeriod: pulsePeriod.toFixed(2)
});
}
pulsePeriod &&
obj.baseObjHelper.outlineHelper.setConfig({
pulsePeriod: pulsePeriod.toFixed(2)
});
};
setTopCardConf = (obj, extData )=>{
const { title , name } = extData;
let cardTitle = null;
console.log(extData)
console.log(extData);
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
planeOptions: {
width: 40,
height: 20,
position: [0,20,0],
position: [0, 20, 0],
doubleSide: true
},
canvasOptions: {
......@@ -178,28 +210,29 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
cardTitle = name ? name : title;
// }
obj.baseObjHelper.title = cardTitle;
}
};
buildMarkerOptions = (markers, markerType, defaultParams = {}) => {
console.log(markers);
const { isEditMode } = this.props;
if (!utils.isEmpty(markers)){
if (!utils.isEmpty(markers)) {
markers.forEach(m => {
const url = getIcon(markerType, m.level);
let position;
if (!utils.isArray(m.position)){
if (!utils.isArray(m.position)) {
position = Object.values(m.position);
}
for (let k of Object.keys(defaultParams)) {
if ((markerType === 'riskSource' || markerType === 'patrol' ) && k !== 'useModel' && !isEditMode){
if ((markerType === 'riskSource' || markerType === 'patrol') && k !== 'useModel' && !isEditMode) {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-${m.level}` });
} else if ((markerType === 'riskSource' || markerType === 'patrol' ) && k !== 'useModel' && isEditMode){
if (markerType === 'riskSource'){
} else if ((markerType === 'riskSource' || markerType === 'patrol') && k !== 'useModel' && isEditMode) {
if (markerType === 'riskSource') {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-4` });
} else {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-1` });
}
} else if (markerType === 'fireResource' && k !== 'useModel') {
m[k] = formatUrl(defaultParams[k], { type: `${m.type}` });
} else if (markerType === 'fireResource' && k !== 'useModel' && isEditMode && urlMapper[m.type]) {
m[k] = formatUrl(defaultParams[k], { url: `${urlMapper[m.type].file}` });
} else {
m[k] = defaultParams[k];
}
......@@ -217,21 +250,15 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
};
render() {
const { markers,isEditMode, ...rest } = this.props;
const { markers, isEditMode, ...rest } = this.props;
const { planStarted } = this.state;
let dialogStyle = { zIndex: 1000 };
const result = this.buildMarkerOptions(markers, markerType, markerParams);
return (
<WrappedComponent>
<Markers
{...rest}
draggable={isEditMode}
markers={result}
events={this.markerEvents}
onCreated={this.markerCreated}
/>
{ !planStarted && <PointDialog style={dialogStyle} ref={node => this.pdRef = node} />}
<Markers {...rest} draggable={isEditMode} markers={result} events={this.markerEvents} onCreated={this.markerCreated} />
{!planStarted && <PointDialog style={dialogStyle} ref={node => (this.pdRef = node)} />}
</WrappedComponent>
);
}
......
......@@ -10,83 +10,83 @@ import {
searchAction,
msgAction,
exeRecordAction,
trajectoryAction,
recordAction
} from './../../services/3dService';
const { TabList, Tab, TabPanel } = Tabs;
const MsgType = { protal: '巡检',equiment: '设备', riskAlert: '风险' };
const getColumns = (self,retrieveType) => {
switch (retrieveType) {
case 'riskSource':
return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'},
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'},
{title: '等级',dataIndex: 'levelStr',key: 'level',width: '25%'},
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'}
{ title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{ title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{ title: '等级',dataIndex: 'levelStr',key: 'level',width: '25%' },
{ title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
];
case 'patrol':
return [
{title: '编号',dataIndex: 'code',key: 'code',width: '16.5%'},
{title: '名称',dataIndex: 'label',key: 'label',width: '16.5%'},
{title: '路线',dataIndex: 'routeName',key: 'level',width: '16.5%'},
{title: '状态',dataIndex: 'title',key: 'level',width: '16.5%'},
{title: '责任人',dataIndex: 'person',key: 'level',width: '16.5%'},
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '16.5%'}
{ title: '编号',dataIndex: 'code',key: 'code',width: '16.5%' },
{ title: '名称',dataIndex: 'label',key: 'label',width: '16.5%' },
{ title: '路线',dataIndex: 'routeName',key: 'routeName',width: '16.5%' },
{ title: '状态',dataIndex: 'title',key: 'title',width: '16.5%' },
{ title: '责任人',dataIndex: 'person',key: 'person',width: '16.5%' },
{ title: '类别',dataIndex: 'typeName',key: 'typeName',width: '16.5%' }
];
case 'monitorEquipment':
return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'},
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'},
{title: '监控对象',dataIndex: 'level',key: 'protectObjName',width: '25%'},
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'}
]
{ title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{ title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{ title: '监控对象',dataIndex: 'protectObjName',key: 'protectObjName',width: '25%' },
{ title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
];
case 'video':
return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'},
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'},
{title: '监控对象',dataIndex: 'level',key: 'protectObjName',width: '25%'},
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'}
]
{ title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{ title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{ title: '监控对象',dataIndex: 'protectObjName',key: 'protectObjName',width: '25%' },
{ title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
];
default:
return [
{title: '编号',dataIndex: 'code',key: 'code',width: '33%'},
{title: '名称',dataIndex: 'label',key: 'label',width: '33%'},
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '33%'}
{ title: '编号',dataIndex: 'code',key: 'code',width: '33%' },
{ title: '名称',dataIndex: 'label',key: 'label',width: '33%' },
{ title: '类别',dataIndex: 'typeName',key: 'typeName',width: '33%' }
];
}
};
const getMsgColumns = () => {
return [
{title: '标题',dataIndex: 'title',key: 'title',width: '15%'},
{title: '类型',dataIndex: 'type',key: 'type',width: '15%'},
{title: '时间',dataIndex: 'timeStr',key: 'timeStr',width: '15%'},
{title: '内容',dataIndex: 'content',key: 'content',width: '55%'}
]
}
{ title: '标题',dataIndex: 'title',key: 'title',width: '15%' },
{ title: '类型',dataIndex: 'type',key: 'type',width: '15%',render: text => MsgType[text] },
{ title: '时间',dataIndex: 'timeStr',key: 'timeStr',width: '15%' },
{ title: '内容',dataIndex: 'content',key: 'content',width: '55%' }
];
};
const getRecordColumns = () => {
return [
{title: '名称',dataIndex: 'fire_Equipment_Name',key: 'name',width: '33%'},
{title: '时间',dataIndex: 'create_time',key: 'create_time',width: '33%'},
{title: '重点设备',dataIndex: 'equipment_Name',key: 'equipment_Name',width: '33%'}
]
}
{ title: '名称',dataIndex: 'fire_Equipment_Name',key: 'name',width: '33%' },
{ title: '时间',dataIndex: 'create_time',key: 'create_time',width: '33%' },
{ title: '重点设备',dataIndex: 'equipment_Name',key: 'equipment_Name',width: '33%' }
];
};
const getTrajectoryColumns = () => {
return [
{title: '巡检人',dataIndex: 'userName',key: 'userName',width: '33%'},
{title: '时间',dataIndex: 'checkTime',key: 'checkTime',width: '33%'},
{title: '轨迹',dataIndex: 'pointName',key: 'pointName',width: '33%'}
]
}
{ title: '巡检人',dataIndex: 'userName',key: 'userName',width: '33%' },
{ title: '时间',dataIndex: 'checkTime',key: 'checkTime',width: '33%' },
{ title: '轨迹',dataIndex: 'pointName',key: 'pointName',width: '33%' }
];
};
const tabs = [
{ id: '1', key: 'search', closable: false, title: '检索' },
{ id: '2', key: 'message', closable: false, title: '消息' },
{ id: '3', key: 'record', closable: false, title: '步骤' },
{ id: '4', key: 'trajectory', closable: false, title: '轨迹' },
{ id: '4', key: 'trajectory', closable: false, title: '轨迹' }
];
class SearchPane extends Component {
......@@ -110,69 +110,64 @@ class SearchPane extends Component {
}
componentDidMount() {
const { type } = this.props;
const { activeKey } = this.state;
this.fetchRetrieveData();
}
paramsOnChange = (filter) => {
const {activeKey} = this.state;
if(activeKey === 'search'){
this.setState({filter},this.fetchRetrieveData);
}else if(activeKey === 'message'){
this.setState({filter},this.fetchMsgData);
}else if(activeKey === 'record'){
this.setState({filter},this.fetchRecordData);
}else if(activeKey === 'trajectory'){
this.setState({filter},this.fetchTrajectoryData);
}
}
/**
* 获取表格刷新方法
*/
reload = r => {
this.setState(
{
reload: () => {
r();
this.setState({ selectedRows: [], selectedRowKeys: [] });
}
},
r()
);
};
onTabClick = (value) =>{
this.pageConfig.current = 0;
if(value === 'search'){
if (value === 'search'){
this.fetchRetrieveData();
}else if(value === 'message'){
} else if (value === 'message'){
this.fetchMsgData();
}else if(value === 'record'){
} else if (value === 'record'){
this.fetchRecordData();
}else if(value === 'trajectory'){
this.fetchTrajectoryData()
} else if (value === 'trajectory'){
this.fetchTrajectoryData();
}
this.setState({ activeKey:value ,filter: []});
this.setState({ activeKey: value ,filter: [] });
}
onRetrieveRowDoubleClick = (record) => {
// 更新视图数据
let views = new Array();
if (record.position){
record.id = record.id.replace( `${record.type}-` ,'' );
views.push(record);
let args = {
target: views,
operateType: operateTypes.POINT_SEARCH
};
update3DViewData(args);
this.props.focusPosition(this.toCameraPosition(record.position));
} else {
message.danger('坐标未绑定!!!');
}
}
getPanelHeight = () => {
return 700;
};
setPageConfig = ({ pageSize, current }) => {
if (pageSize !== undefined) {
this.pageConfig.pageSize = pageSize;
}
if (current !== undefined) {
this.pageConfig.current = current - 1;
}
};
//轨迹
fetchTrajectoryData = () => {
const { filter } = this.state;
recordAction(filter, this.pageConfig.current, this.pageConfig.pageSize).then(d => {
this.setState({trajectoryDataList:d.content,totalCount: d.totalElements});
this.setState({ trajectoryDataList: d.content,totalCount: d.totalElements });
});
}
//步骤
fetchRecordData = () => {
const { filter } = this.state;
exeRecordAction(filter, this.pageConfig.current, this.pageConfig.pageSize).then(d => {
this.setState({recordDataList:d.content,totalCount: d.totalElements});
this.setState({ recordDataList: d.content,totalCount: d.totalElements });
});
}
//消息
......@@ -189,7 +184,7 @@ class SearchPane extends Component {
}
});
msgAction(searchParam, this.pageConfig.current, this.pageConfig.pageSize).then(d => {
this.setState({msgDataList:d.content,totalCount: d.totalElements});
this.setState({ msgDataList: d.content,totalCount: d.totalElements });
});
}
//检索
......@@ -205,7 +200,7 @@ class SearchPane extends Component {
( filter || [] ).forEach((item, i) => {
if (item.name === 'type') {
type = item.value;
this.setState({ retrieveType: type })
this.setState({ retrieveType: type });
} else if (item.name === 'dataLevel') {
dataLevel = item.value;
} else if (item.name === 'nodeState') {
......@@ -222,48 +217,61 @@ class SearchPane extends Component {
searchAction(inputText, dataLevel, orgCode, nodeState, protectObjName, routeName, type, this.pageConfig.current, this.pageConfig.pageSize).then(d => {
this.setState({
dataList: d.content ,
totalCount: d.totalElements,
})
totalCount: d.totalElements
});
});
}
setPageConfig = ({ pageSize, current }) => {
if (pageSize !== undefined) {
this.pageConfig.pageSize = pageSize;
}
if (current !== undefined) {
this.pageConfig.current = current - 1;
}
/**
* 获取表格刷新方法
*/
reload = r => {
this.setState(
{
reload: () => {
r();
this.setState({ selectedRows: [], selectedRowKeys: [] });
}
},
r()
);
};
onRetrieveRowDoubleClick = (record) => {
// 更新视图数据
let views = new Array();
if(record.position){
record.id = record.id.replace( record.type + '-' ,'' );
views.push(record);
let args = {
target: views,
operateType: operateTypes.POINT_SEARCH
};
update3DViewData(args);
this.props.focusPosition(this.toCameraPosition(record.position));
}else{
message.danger('坐标未绑定!!!');
paramsOnChange = (filter) => {
const { activeKey } = this.state;
if (activeKey === 'search'){
this.setState({ filter },this.fetchRetrieveData);
} else if (activeKey === 'message'){
this.setState({ filter },this.fetchMsgData);
} else if (activeKey === 'record'){
this.setState({ filter },this.fetchRecordData);
} else if (activeKey === 'trajectory'){
this.setState({ filter },this.fetchTrajectoryData);
}
}
toCameraPosition = (item) => {
return { x: item.x , y: item.y + 200 , z: item.z + 200 }
if (item && item.x){
return { x: item.x , y: item.y + 200 , z: item.z + 200 };
} else if (item && item[0]){
return { x: item[0] , y: item[1] + 200 , z: item[2] + 200 };
} else {
return;
}
}
closeModal(){
this.props.changeSearchPaneVisible();
this.setState({ activeKey: 'search' },()=>this.paramsOnChange([]));
}
render() {
const { dataList,activeKey,retrieveType,totalCount,msgDataList,recordDataList,trajectoryDataList } = this.state;
return (
<div>
{ this.props.visible && <div className="search-pane-bg"/> }
{ this.props.visible && <div className="search-pane-bg" /> }
{ this.props.visible && <SidePane className="search-pane">
<div className="search-pane-close" onClick={this.props.changeSearchPaneVisible()}>
<div className="search-pane-close" onClick={()=>this.closeModal()}>
<Icon icon="close" />
</div>
<Tabs
......@@ -276,23 +284,23 @@ class SearchPane extends Component {
<Tab key={item.key} activeKey={item.key} closable={item.closable}>{item.title}</Tab>)
)}
</TabList>
<ParamsHeader paramsOnChange={this.paramsOnChange} activeKey={activeKey}/>
<ParamsHeader paramsOnChange={this.paramsOnChange} activeKey={activeKey} />
<TabPanel activeKey="search">
{/* <div className="search-pane-table"> */}
<AmosGridTable
rowKey="id"
columns={getColumns(this,retrieveType)}
getTableDataAction={()=>{}}
callBack={this.reload}
isPageable = {true}
setPageConfig={this.setPageConfig}
isChecked = {false}
<AmosGridTable
rowKey="id"
columns={getColumns(this,retrieveType)}
getTableDataAction={()=>{}}
callBack={this.reload}
isPageable
setPageConfig={this.setPageConfig}
isChecked={false}
// getPanelHeight={this.getPanelHeight}
dataList={dataList}
totals={totalCount}
onRowDoubleClick={this.onRetrieveRowDoubleClick}
getTableDataAction={this.fetchRetrieveData}
/>
dataList={dataList}
totals={totalCount}
onRowDoubleClick={this.onRetrieveRowDoubleClick}
getTableDataAction={this.fetchRetrieveData}
/>
{/* </div> */}
</TabPanel>
<TabPanel activeKey="message">
......@@ -300,9 +308,9 @@ class SearchPane extends Component {
columns={getMsgColumns()}
getTableDataAction={()=>{}}
callBack={this.reload}
isPageable = {true}
isPageable
setPageConfig={this.setPageConfig}
isChecked = {false}
isChecked={false}
dataList={msgDataList}
totals={totalCount}
getTableDataAction={this.fetchMsgData}
......@@ -313,9 +321,9 @@ class SearchPane extends Component {
columns={getRecordColumns()}
getTableDataAction={()=>{}}
callBack={this.reload}
isPageable = {true}
isPageable
setPageConfig={this.setPageConfig}
isChecked = {false}
isChecked={false}
dataList={recordDataList}
totals={totalCount}
getTableDataAction={this.fetchRecordData}
......@@ -326,9 +334,9 @@ class SearchPane extends Component {
columns={getTrajectoryColumns()}
getTableDataAction={()=>{}}
callBack={this.reload}
isPageable = {true}
isPageable
setPageConfig={this.setPageConfig}
isChecked = {false}
isChecked={false}
dataList={trajectoryDataList}
totals={totalCount}
getTableDataAction={this.fetchTrajectoryData}
......@@ -342,6 +350,9 @@ class SearchPane extends Component {
}
SearchPane.propTypes = {
focusPosition: PropTypes.func,
visible: PropTypes.bool,
changeSearchPaneVisible: PropTypes.func
};
export default SearchPane;
......@@ -4,7 +4,7 @@ import { Button, Input, Select, Group } from 'amos-framework';
import { SingleQueryEnum } from 'amos-processor/lib/config/queryEnum';
import { trim } from 'amos-tool';
import { DatePicker } from 'amos-antd';
import moment from "moment";
import moment from 'moment';
import imgStatic from './../../consts/imgStatic';
import {
getImpEquipmentAction,
......@@ -14,12 +14,11 @@ import { bizControlsTypes, riskSourceLevel } from './../conf';
const Option = Select.Option;
const MsgTypeEnum = [{ id: 'protal', name: '巡检' }, { id: 'equiment', name: '设备' }, { id: 'risk', name: '风险' }];
const MsgTypeEnum = [{ id: 'protal', name: '巡检' }, { id: 'equiment', name: '设备' }, { id: 'riskAlert', name: '风险' }];
const groupStyle = { display: 'unset', width: '100%' };
const selectStyle = { width: '25%', minWidth: '20%', marginRight:'14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const enterkey = 13;
const selectStyle = { width: '25%', minWidth: '20%', marginRight: '14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
/**
*
* @class paramsHeader
......@@ -45,7 +44,7 @@ class paramsHeader extends Component {
impEquiList: [],
filter: [],
recordFilter: [],
statusList: [],
statusList: []
};
}
......@@ -61,10 +60,10 @@ class paramsHeader extends Component {
msgTextValue: undefined,
recordTextValue: undefined,
filter: [],
recordFilter: [],
})
recordFilter: []
});
}
}
}
onChange = (e) => {
this.setState({ value: e.target.value });
......@@ -74,9 +73,9 @@ class paramsHeader extends Component {
let showRiskLevel = false;
let showImpEquiList = false;
if(value === 'riskSource'){
if (value === 'riskSource'){
showRiskLevel = true;
}else if(value === 'monitorEquipment'){
} else if (value === 'monitorEquipment'){
showImpEquiList = true;
}
this.setState({ showRiskLevel, showImpEquiList });
......@@ -85,8 +84,8 @@ class paramsHeader extends Component {
onPamarmsChange = (name,value) => {
let { filter } = this.state;
if(name === 'time'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
if (name === 'time'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = filter.some(e => {
......@@ -99,19 +98,19 @@ class paramsHeader extends Component {
} else {
filter = filter.filter(e => e.name !== name);
}
if(name === 'inputText'){
if (name === 'inputText'){
this.setState({ textValue: value,filter });
}else if(name === 'title'){
} else if (name === 'title'){
this.setState({ msgTextValue: value,filter });
}else{
} else {
this.setState({ filter }, this.props.paramsOnChange(filter));
}
}
paramsTypeonChange = (name,value,type,key) => {
let {recordFilter} = this.state;
if(name === 'checkTime'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
let { recordFilter } = this.state;
if (name === 'checkTime'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = recordFilter.some(e => {
......@@ -125,16 +124,15 @@ class paramsHeader extends Component {
} else {
recordFilter = recordFilter.filter(e => e.name !== name);
}
debugger;
if(name === 'contingencyName'){
this.setState({recordTextValue:value,recordFilter})
}else if(name === 'pointName'){
if(key === 'record'){
this.setState({ recordTextValue:value,recordFilter });
}else{
if (name === 'contingencyName'){
this.setState({ recordTextValue: value,recordFilter });
} else if (name === 'pointName'){
if (key === 'record'){
this.setState({ recordTextValue: value,recordFilter });
} else {
this.setState({ trajectoryTextValue: value,recordFilter });
}
}else{//不为input时直接查询
} else {//不为input时直接查询
this.setState({ recordFilter }, this.props.paramsOnChange(recordFilter));
}
}
......@@ -142,8 +140,8 @@ class paramsHeader extends Component {
//检索
getSearchContent = () => {
const { showRiskLevel, showImpEquiList, impEquiList,filter } = this.state;
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight:'14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight:'14px' };
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight: '14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight: '14px' };
return (<Group style={groupStyle}>
<Select
key="searchType"
......@@ -160,7 +158,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('inputText',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
{
showRiskLevel &&
......@@ -171,7 +169,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.key} value={item.key}>{item.label}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('dataLevel',v)}
/>
/>
}
{
showImpEquiList &&
......@@ -182,7 +180,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.name} value={item.name}>{item.name}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('impEquipment',v)}
/>
/>
}
</Group>);
......@@ -207,7 +205,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('title',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
<DatePicker
key="time"
......@@ -216,7 +214,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.onPamarmsChange('time',v)}
/>
/>
</Group>);
......@@ -230,7 +228,7 @@ class paramsHeader extends Component {
key="recordImpl"
style={selectStyle}
data={impEquiList}
renderOption={item => <Option key={item.id+item.name} value={item.id}>{item.name}</Option>}
renderOption={item => <Option key={item.id + item.name} value={item.id}>{item.name}</Option>}
defaultOption={<Option>重点设备</Option>}
onChange={(v) => this.paramsTypeonChange('equipmentId', v , SingleQueryEnum.EQUAL)}
/>
......@@ -241,7 +239,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('contingencyName', e.target.value, SingleQueryEnum.LIKE,'record')}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -250,7 +248,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('createTime', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
......@@ -273,7 +271,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('pointName', e.target.value, SingleQueryEnum.LIKE)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -282,19 +280,19 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('beginDate', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
getContent = () =>{
const { activeKey } = this.props;
if(activeKey === 'search'){
if (activeKey === 'search'){
return this.getSearchContent();
}else if(activeKey === 'message'){
} else if (activeKey === 'message'){
return this.getMessageContent();
}else if(activeKey === 'record'){
} else if (activeKey === 'record'){
return this.getRecordContent();
}else{
} else {
return this.getTrajectoryContent();
}
}
......
......@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
import { SidePane } from 'amos-framework';
import { Store } from 'amos-tool';
import BizControlPane from './BizControlPane';
import InnateControlPane from './InnateControlPane';
import { viewController, bizControls, pMonitorControls } from './../conf';
import { bizControls, pMonitorControls } from './../conf';
const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2'];
......@@ -54,7 +53,7 @@ class SideControl extends Component {
};
render() {
const { layerConfig, animationProps, activeAction } = this.props;
const { animationProps, activeAction } = this.props;
let _bizControls = activeAction === 'panoramic' ? bizControls : pMonitorControls;
if (filterUser.includes(loginUserName)) {
let target = _bizControls.find(item => item.key === 'fireResource-point');
......
# 说明
## 换流站3d前端打包说明
1.复制amos-station-module-view的mods文件夹到mos-iot-graphmod根目录
2.使用 amos-iot-graphmod 打包, 运行打包命令
```bash
npm run build-mod
```
3.打包完成后,复制根目录下lib文件到使用系统
4.修改使用系统的webpack.config文件
```bash
`defaultConfig.plugins.push(
new HtmlInlineCodePlugin([
{ inject: 'body', begin: true, tag: 'script', attr: { src: '/extra/convertor3d/graphmod.js' } },
{ inject: 'body', begin: false, tag: 'script', attr: { src: '/extra/convertor3d/worker.69f3bd5bcb7ff720afa4.js' } }
])
);`
```
5.修改文件graphmod 将 webpack_require__.p修改为第3步放置的路径
```bash
`// __webpack_public_path__
__webpack_require__.p = "/extra/convertor3d/";`
```
## 注意 src路径为第3步放置的路径 文件名字要与打包后的文件名字一致
{
"header": {
"reportVersion": 1,
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20200611.115048.13464.0.001.json",
"dumpEventTime": "2020-06-11T11:50:48Z",
"dumpEventTimeStamp": "1591847448141",
"processId": 13464,
"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": 4348171,
"nice": 0,
"sys": 5717187,
"idle": 146422328,
"irq": 2878546
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 10937234,
"nice": 0,
"sys": 1787265,
"idle": 143762765,
"irq": 124000
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 4567187,
"nice": 0,
"sys": 2226265,
"idle": 149693812,
"irq": 58281
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 3582906,
"nice": 0,
"sys": 1049906,
"idle": 151854453,
"irq": 58265
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 5019109,
"nice": 0,
"sys": 2117875,
"idle": 149350281,
"irq": 30125
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 2903437,
"nice": 0,
"sys": 1721328,
"idle": 151862484,
"irq": 41375
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 2199515,
"nice": 0,
"sys": 1110796,
"idle": 153176937,
"irq": 47828
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 3478796,
"nice": 0,
"sys": 1591406,
"idle": 151417046,
"irq": 44812
}
],
"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": "0x00007ff7709c19f9",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+10873"
},
{
"pc": "0x00007ff7709c5e1c",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+28316"
},
{
"pc": "0x00007ff7709c4dd8",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+24152"
},
{
"pc": "0x00007ff770ac34cb",
"symbol": "v8::base::CPU::has_sse+38363"
},
{
"pc": "0x00007ff7712d9f4e",
"symbol": "v8::Isolate::ReportExternalAllocationLimitReached+94"
},
{
"pc": "0x00007ff7712c2021",
"symbol": "v8::SharedArrayBuffer::Externalize+833"
},
{
"pc": "0x00007ff77118e57c",
"symbol": "v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436"
},
{
"pc": "0x00007ff77118a289",
"symbol": "v8::internal::Heap::AddRetainedMap+2713"
},
{
"pc": "0x00007ff7711ab4ab",
"symbol": "v8::internal::Factory::NewFixedArrayWithFiller+107"
},
{
"pc": "0x00007ff7711ab431",
"symbol": "v8::internal::Factory::NewUninitializedFixedArray+65"
},
{
"pc": "0x00007ff77108857f",
"symbol": "v8::debug::Script::GetIsolate+8527"
},
{
"pc": "0x00007ff770f3824a",
"symbol": "v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+162938"
},
{
"pc": "0x00007ff771724ddd",
"symbol": "v8::internal::SetupIsolateDelegate::SetupHeap+546637"
},
{
"pc": "0x000003445df0ac1a",
"symbol": ""
}
],
"javascriptHeap": {
"totalMemory": 2150227968,
"totalCommittedMemory": 2150227968,
"usedMemory": 2140053840,
"availableMemory": 49682240,
"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": 332546048,
"committedMemory": 332546048,
"capacity": 331005264,
"used": 331005264,
"available": 0
},
"code_space": {
"memorySize": 2265088,
"committedMemory": 2265088,
"capacity": 1895008,
"used": 1895008,
"available": 0
},
"map_space": {
"memorySize": 8916992,
"committedMemory": 8916992,
"capacity": 2551280,
"used": 2551280,
"available": 0
},
"large_object_space": {
"memorySize": 1804566528,
"committedMemory": 1804566528,
"capacity": 1804025192,
"used": 1804025192,
"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": 335.234,
"kernelCpuSeconds": 41.031,
"cpuConsumptionPercent": 0.552307,
"maxRss": 2070032384,
"pageFaults": {
"IORequired": 25193644,
"IONotRequired": 0
},
"fsActivity": {
"reads": 9847,
"writes": 260
}
},
"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",
"FPS_BROWSER_APP_PROFILE_STRING": "Internet Explorer",
"FPS_BROWSER_USER_PROFILE_STRING": "Default",
"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_description": "1.复制amos-station-module-view的mods文件夹到mos-iot-graphmod根目录",
"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": "ef93eb7e0a228ff7f481e7be71c04081c2914335",
"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\\Roaming\\nvm;C:\\Program Files\\nodejs;D:\\develop\\nodejs\\node_global;C:\\Users\\DELL\\AppData\\Roaming\\npm;C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\bin",
"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\\USER32.dll",
"C:\\Windows\\System32\\ucrtbase.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\\USERENV.dll",
"C:\\Windows\\System32\\MSASN1.dll",
"C:\\Windows\\System32\\profapi.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
{
"header": {
"reportVersion": 1,
"event": "Allocation failed - JavaScript heap out of memory",
"trigger": "FatalError",
"filename": "report.20200611.161631.6028.0.001.json",
"dumpEventTime": "2020-06-11T16:16:31Z",
"dumpEventTimeStamp": "1591863391568",
"processId": 6028,
"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": 5651625,
"nice": 0,
"sys": 7262218,
"idle": 159517265,
"irq": 3830968
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 12598078,
"nice": 0,
"sys": 2166031,
"idle": 157666578,
"irq": 150062
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 5765640,
"nice": 0,
"sys": 2483625,
"idle": 164181421,
"irq": 68453
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 4662250,
"nice": 0,
"sys": 1333109,
"idle": 166435328,
"irq": 67078
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 7293765,
"nice": 0,
"sys": 2409812,
"idle": 162727109,
"irq": 40828
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 3919312,
"nice": 0,
"sys": 2036484,
"idle": 166474875,
"irq": 53109
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 3161515,
"nice": 0,
"sys": 1337468,
"idle": 167931687,
"irq": 54406
},
{
"model": "Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz",
"speed": 3000,
"user": 4709109,
"nice": 0,
"sys": 1960062,
"idle": 165761500,
"irq": 55093
}
],
"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": "0x00007ff7709c19f9",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+10873"
},
{
"pc": "0x00007ff7709c5e1c",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+28316"
},
{
"pc": "0x00007ff7709c4dd8",
"symbol": "std::basic_ostream<char,std::char_traits<char> >::operator<<+24152"
},
{
"pc": "0x00007ff770ac34cb",
"symbol": "v8::base::CPU::has_sse+38363"
},
{
"pc": "0x00007ff7712d9f4e",
"symbol": "v8::Isolate::ReportExternalAllocationLimitReached+94"
},
{
"pc": "0x00007ff7712c2021",
"symbol": "v8::SharedArrayBuffer::Externalize+833"
},
{
"pc": "0x00007ff77118e57c",
"symbol": "v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436"
},
{
"pc": "0x00007ff77118a289",
"symbol": "v8::internal::Heap::AddRetainedMap+2713"
},
{
"pc": "0x00007ff7711ab4ab",
"symbol": "v8::internal::Factory::NewFixedArrayWithFiller+107"
},
{
"pc": "0x00007ff7711ab431",
"symbol": "v8::internal::Factory::NewUninitializedFixedArray+65"
},
{
"pc": "0x00007ff77108857f",
"symbol": "v8::debug::Script::GetIsolate+8527"
},
{
"pc": "0x00007ff770f3824a",
"symbol": "v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+162938"
},
{
"pc": "0x00007ff771724ddd",
"symbol": "v8::internal::SetupIsolateDelegate::SetupHeap+546637"
},
{
"pc": "0x000003022d02e71a",
"symbol": ""
}
],
"javascriptHeap": {
"totalMemory": 2150883328,
"totalCommittedMemory": 2150883328,
"usedMemory": 2142667088,
"availableMemory": 49026880,
"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": 310525952,
"committedMemory": 310525952,
"capacity": 308885984,
"used": 308885984,
"available": 0
},
"code_space": {
"memorySize": 2265088,
"committedMemory": 2265088,
"capacity": 1994080,
"used": 1994080,
"available": 0
},
"map_space": {
"memorySize": 6819840,
"committedMemory": 6819840,
"capacity": 2553040,
"used": 2553040,
"available": 0
},
"large_object_space": {
"memorySize": 1829339136,
"committedMemory": 1829339136,
"capacity": 1828656888,
"used": 1828656888,
"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": 231.937,
"kernelCpuSeconds": 27.515,
"cpuConsumptionPercent": 1.62901,
"maxRss": 1953173504,
"pageFaults": {
"IORequired": 15739792,
"IONotRequired": 0
},
"fsActivity": {
"reads": 9304,
"writes": 235
}
},
"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",
"FPS_BROWSER_APP_PROFILE_STRING": "Internet Explorer",
"FPS_BROWSER_USER_PROFILE_STRING": "Default",
"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_description": "1.复制amos-station-module-view的mods文件夹到mos-iot-graphmod根目录",
"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": "ef93eb7e0a228ff7f481e7be71c04081c2914335",
"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\\Roaming\\nvm;C:\\Program Files\\nodejs;D:\\develop\\nodejs\\node_global;C:\\Users\\DELL\\AppData\\Roaming\\npm;C:\\Users\\DELL\\AppData\\Local\\Programs\\Microsoft VS Code\\bin",
"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\\USER32.dll",
"C:\\Windows\\System32\\ucrtbase.dll",
"C:\\Windows\\System32\\win32u.dll",
"C:\\Windows\\System32\\GDI32.dll",
"C:\\Windows\\System32\\gdi32full.dll",
"C:\\Windows\\SYSTEM32\\IPHLPAPI.DLL",
"C:\\Windows\\System32\\msvcp_win.dll",
"C:\\Windows\\SYSTEM32\\USERENV.dll",
"C:\\Windows\\System32\\profapi.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