Commit 0f641961 authored by shanqiyun's avatar shanqiyun

冲突

parents 1e9a0b7c fb3f65bf
...@@ -25,6 +25,15 @@ export default { ...@@ -25,6 +25,15 @@ export default {
check_louyan: require('../assets/panoramic/main_icon_tag_louyan.png'), check_louyan: require('../assets/panoramic/main_icon_tag_louyan.png'),
check_weizhixing: require('../assets/panoramic/main_icon_tag_weizhixing.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: { contorls: {
riskPoint: require('../assets/convertor/3dview/risk-point.png'), riskPoint: require('../assets/convertor/3dview/risk-point.png'),
videoPoint: require('../assets/convertor/3dview/video-point.png'), videoPoint: require('../assets/convertor/3dview/video-point.png'),
...@@ -58,7 +67,7 @@ export default { ...@@ -58,7 +67,7 @@ export default {
search: require('../assets/convertor/3dview/datapanel/search.png'), search: require('../assets/convertor/3dview/datapanel/search.png'),
smilingFace: require('../assets/convertor/3dview/datapanel/smilingFace.png'), smilingFace: require('../assets/convertor/3dview/datapanel/smilingFace.png'),
user: require('../assets/convertor/3dview/datapanel/user.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: { markers: {
riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'), riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'),
...@@ -204,26 +213,26 @@ export const marker3DIoncMapper = { ...@@ -204,26 +213,26 @@ export const marker3DIoncMapper = {
riskSource_3: require('../assets/convertor/3dview/markers/risk-3.png'), riskSource_3: require('../assets/convertor/3dview/markers/risk-3.png'),
riskSource_4: require('../assets/convertor/3dview/markers/risk-4.png'), riskSource_4: require('../assets/convertor/3dview/markers/risk-4.png'),
riskSource_5: require('../assets/convertor/3dview/markers/risk-5.png'), riskSource_5: require('../assets/convertor/3dview/markers/risk-5.png'),
risk_0: '/mods/components/3dviewConvertor/threeres/markers/risk-0.png', risk_0: require('../threeres/markers/risk-0.png'),
risk_1: '/mods/components/3dviewConvertor/threeres/markers/risk-1.png', risk_1: require('../threeres/markers/risk-1.png'),
risk_2: '/mods/components/3dviewConvertor/threeres/markers/risk-2.png', risk_2: require('../threeres/markers/risk-2.png'),
risk_3: '/mods/components/3dviewConvertor/threeres/markers/risk-3.png', risk_3: require('../threeres/markers/risk-3.png'),
risk_4: '/mods/components/3dviewConvertor/threeres/markers/risk-4.png', risk_4: require('../threeres/markers/risk-4.png'),
risk_5: '/mods/components/3dviewConvertor/threeres/markers/risk-5.png', risk_5: require('../threeres/markers/risk-5.png'),
patrol_1: '/mods/components/3dviewConvertor/threeres/markers/patrol-1.png', patrol_1: require('../threeres/markers/patrol-1.png'),
patrol_2: '/mods/components/3dviewConvertor/threeres/markers/patrol-2.png', patrol_2: require('../threeres/markers/patrol-2.png'),
patrol_3: '/mods/components/3dviewConvertor/threeres/markers/patrol-3.png', patrol_3: require('../threeres/markers/patrol-3.png'),
patrol_4: '/mods/components/3dviewConvertor/threeres/markers/patrol-4.png', patrol_4: require('../threeres/markers/patrol-4.png'),
patrol_5: '/mods/components/3dviewConvertor/threeres/markers/patrol-5.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_0: require('../threeres/markers/data-0.png'),
data_1: '/mods/components/3dviewConvertor/threeres/markers/data-1.png', data_1: require('../threeres/markers/data-1.png'),
croom_0: '/mods/components/3dviewConvertor/threeres/markers/croom-0.png', croom_0: require('../threeres/markers/croom-0.png'),
croom_1: '/mods/components/3dviewConvertor/threeres/markers/croom-1.png', croom_1: require('../threeres/markers/croom-1.png'),
//重点设备模式 //重点设备模式
impEquipmentMode_monitorEquipment: require('../assets/convertor/3dview/markers/IeqMode-monitorEquipment.png'), impEquipmentMode_monitorEquipment: require('../assets/convertor/3dview/markers/IeqMode-monitorEquipment.png'),
...@@ -231,24 +240,24 @@ export const marker3DIoncMapper = { ...@@ -231,24 +240,24 @@ export const marker3DIoncMapper = {
impEquipmentMode_hydrant: require('../assets/convertor/3dview/markers/IeqMode-hydrant.png'), impEquipmentMode_hydrant: require('../assets/convertor/3dview/markers/IeqMode-hydrant.png'),
impEquipmentMode_pool: require('../assets/convertor/3dview/markers/IeqMode-pool.png'),// impEquipmentMode_pool: require('../assets/convertor/3dview/markers/IeqMode-pool.png'),//
impEquipmentMode_fireChamber: require('../assets/convertor/3dview/markers/IeqMode-fireChamber.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 = { export const safetyIndexIconMapper = {
allEror: '/mods/components/3dviewConvertor/threeres/markers/exception_all.png', allEror: require('../threeres/markers/exception_all.png'),
faultEror: '/mods/components/3dviewConvertor/threeres/markers/exception_fault.png', faultEror: require('../threeres/markers/exception_fault.png'),
riskEror: '/mods/components/3dviewConvertor/threeres/markers/exception_risk.png', riskEror: require('../threeres/markers/exception_risk.png'),
transparent_rpn: require('./../threeres/markers/transparent_rpn.png') transparent_rpn: require('./../threeres/markers/transparent_rpn.png')
}; };
export const markerTitleBgMapper = { export const markerTitleBgMapper = {
base: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/markerTitle.png' base: require('../assets/convertor/3dview/markers/markerTitle.png')
}; };
export const equipStatusIconMapper = { export const equipStatusIconMapper = {
equip_false: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-0.png', equip_false: require('../assets/convertor/3dview/markers/pa-0.png'),
equip_true: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-1.png' equip_true: require('../assets/convertor/3dview/markers/pa-1.png')
}; };
...@@ -3,6 +3,8 @@ import * as helper from 'base-r3d/lib/utils/helper'; ...@@ -3,6 +3,8 @@ import * as helper from 'base-r3d/lib/utils/helper';
import { FscSerUrl, FasSerUrl } from './../consts/urlConsts'; import { FscSerUrl, FasSerUrl } from './../consts/urlConsts';
import { commonGet, commonPost, singleFetch } from './../utils/request'; import { commonGet, commonPost, singleFetch } from './../utils/request';
import { encodeUrl } from 'amos-tool';
//---------------- 加载模型、解析模型json ----------- //---------------- 加载模型、解析模型json -----------
export const getObjFromNet = (url, callback) => { export const getObjFromNet = (url, callback) => {
return singleFetch(url).then(data => { return singleFetch(url).then(data => {
...@@ -10,10 +12,15 @@ export const getObjFromNet = (url, callback) => { ...@@ -10,10 +12,15 @@ export const getObjFromNet = (url, callback) => {
// 临时将 asyncModels 也放在主线程 // 临时将 asyncModels 也放在主线程
const { basePath, asyncModels = [] } = data; const { basePath, asyncModels = [] } = data;
const _asyncModels = asyncModels.map(m => ({ const _asyncModels = asyncModels.map(m => {
basePath, const { objName, mtlName, ...rest } = m;
...m return {
})); basePath,
...rest,
objName: encodeUrl(objName),
mtlName: encodeUrl(mtlName)
};
});
// const _objs = objs.concat(_asyncModels); // const _objs = objs.concat(_asyncModels);
callback(objs, _asyncModels); callback(objs, _asyncModels);
......
.action-pane-data{ .action-pane-data {
position: absolute; position: absolute;
bottom: 5%; bottom: 5%;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
.action-list { .action-list {
height: 40px; height: 40px;
padding: 0 1rem; padding: 0 1rem;
border-radius: 6px; background-color: rgba(216, 216, 216, 0.24);
background:rgba(216,216,216,0.24); border: 1px solid rgba(146, 149, 151, 1);
border:1px solid rgba(146,149,151,1); border-radius: 6px;
.action-item{ .action-item {
float: left; float: left;
width: 40px; width: 40px;
height: 38px; height: 38px;
text-align: center; text-align: center;
cursor: pointer ; cursor: pointer;
border:1px solid rgba(146,149,151,1); border: 1px solid rgba(146, 149, 151, 1);
.action-item-title{ .action-item-title {
color: #e0e0e0; position: absolute;
position: absolute; top: -20px;
top: -20px; width: 51px;
white-space: nowrap; color: #e0e0e0;
width: 51px; text-align: center;
-webkit-transform-origin-x: 0; white-space: nowrap;
-webkit-transform: scale(0.80); -webkit-transform-origin-x: 0;
text-align: center; -webkit-transform: scale(0.8);
} }
.action-item-content{ .action-item-content {
text-align: center; position: relative;
position: relative; width: 100%;
width: 100%; height: 100%;
height: 100%; text-align: center;
.action-item-icon{ .action-item-icon {
margin: 8px; position: relative;
width: 21px; width: 21px;
height: 21px; height: 21px;
position: relative; margin: 8px;
}
}
} }
}
}
.action-active{ .action-active {
background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%); background: linear-gradient(180deg, rgba(0, 96, 154, 0.8) 0%, rgba(0, 54, 105, 0.5) 100%);
}
} }
}
} }
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
// border-radius: $core-border-radius; // border-radius: $core-border-radius;
// box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); // box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
// box-sizing: border-box; // box-sizing: border-box;
background-image: url('/mods/components/3dviewConvertor/assets/convertor/3dview/dialogbg.png'); background-image: url('../assets/convertor/3dview/dialogbg.png');
background-color: rgba(25, 86, 147, 0.5); background-color: rgba(25, 86, 147, 0.5);
.body-min-header { .body-min-header {
......
.ModuleEditPage { .ModuleEditPage {
position: relative; position: relative;
height: 100%; height: 100%;
::-webkit-scrollbar { /* 血槽宽度 */ ::-webkit-scrollbar {
width:5px; /* 血槽宽度 */
height: 5px; width: 5px;
background-color: rgba(10, 53, 62, 1); height: 5px;
border-radius: 5px; background-color: rgba(10, 53, 62, 1);
} border-radius: 5px;
::-webkit-scrollbar-thumb { /* 拖动条 */ }
border-radius: 5px; ::-webkit-scrollbar-thumb {
background-color: rgba(255, 255, 255, 0.4); /* 拖动条 */
} border-radius: 5px;
::-webkit-scrollbar-track { /* 背景槽 */ background-color: rgba(255, 255, 255, 0.4);
background-color:rgba(17, 44, 88, 0.2); }
} ::-webkit-scrollbar-track {
/* 背景槽 */
background-color: rgba(17, 44, 88, 0.2);
}
.topBox { .topBox {
position: absolute; position: absolute;
top: 45px; top: 45px;
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
span { span {
display: inline-block; display: inline-block;
} }
.editTitle { .editTitle {
width:257px; width: 257px;
height:55px; height: 55px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/title.png') no-repeat 100% 100%; background: url('../assets/convertor/moduleEdit/title.png') no-repeat 100% 100%;
// opacity:0.4; // opacity:0.4;
font-size: 24px; font-size: 24px;
text-align: center; text-align: center;
color: #fff; color: #fff;
vertical-align: top; vertical-align: top;
.titleText { .titleText {
width: 100%; width: 100%;
height: 100%; height: 100%;
line-height: 55px; line-height: 55px;
// border-bottom:2px transparent solid; // 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%); // 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 { .quipBtn {
width: 169px; width: 169px;
...@@ -48,255 +51,249 @@ ...@@ -48,255 +51,249 @@
margin-top: 10px; margin-top: 10px;
margin-left: 70px; margin-left: 70px;
cursor: pointer; 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 { .editAreaBtn {
position: absolute; background: url('../assets/convertor/moduleEdit/areaBtn.png') no-repeat 100% 100%;
bottom: 34px; }
left: 50%; .editPointBtn {
transform: translateX(-50%); background: url('../assets/convertor/moduleEdit/pointBtn.png') no-repeat 100% 100%;
span { }
display: inline-block; .editAreaBtn.selected {
width: 177px; background: url('../assets/convertor/moduleEdit/areaBtn_select.png') no-repeat 100% 100%;
height: 42px; }
line-height: 42px; .editPointBtn.selected {
background: rgba(46,217,239,0.2); background: url('../assets/convertor/moduleEdit/poingBtn_select.png') no-repeat 100% 100%;
// border: 2px solid #2ED9EF; }
margin: 0 10px; }
text-align: center;
font-size: 16px; // 左侧树
// color: #2ED9EF; .leftTree {
cursor: pointer; position: absolute;
} top: 0;
.editAreaBtn { left: 15px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/areaBtn.png') no-repeat 100% 100%; 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 { .amosicon-search {
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/pointBtn.png') no-repeat 100% 100%; 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 { .rightEditPanel {
position: absolute; position: absolute;
top: 0; top: 0;
left: 15px; right: 15px;
width: 264px; width: 264px;
height: 100%; height: 100%;
padding-top: 55px; padding-top: 55px;
padding-bottom: 15px; padding-bottom: 15px;
user-select: none; .rightContainer {
.leftContainer { position: relative;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: rgba(10, 53, 62, 0.68); background-color: rgba(10, 53, 62, 0.68);
border: 1px solid rgba(46, 217, 239, 0.59); border: 1px solid rgba(46, 217, 239, 0.59);
padding: 12px; 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 { .amos-input {
.leftSelect { background-color: rgba(4, 30, 36, 0.4);
height: 39px; border-radius: 1px;
width: 100%; border: solid 1px rgba(46, 217, 239, 0.59);
margin-bottom: 10px; font-size: 14px;
background: url('/mods/components/3dviewConvertor/assets/convertor/moduleEdit/selectBox.png') no-repeat 100% 100%; color: #fff;
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;
}
}
} }
.treeBox { .moduleTitle {
height: calc(100% - 132px); height: 50px;
overflow-y: auto; display: flex;
.amos-tree { align-items: center;
color: rgba(15, 235, 255, 1); .titleText {
.amos-tree-node-content-wrapper { margin-left: 5px;
color: #fff; }
font-size: 15px;
}
}
.icon {
margin-left: 5px;
vertical-align: middle;
img {
vertical-align: initial;
margin-left: 10px;
}
}
} }
.bottomBtns { height: calc(100% - 48px);
padding-top: 15px; padding-left: 20px;
text-align: center; .amos-input {
.sureBtn { width: 100%;
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;
}
} }
} .amos-select {
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
}
}
} }
.bottomBtns { .radio-text {
position: absolute; color: #fff;
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;
}
} }
}
} }
.bottomBtns {
.editButton { position: absolute;
position: absolute; bottom: 15px;
bottom: 100px; padding-top: 15px;
left: 50%; 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{ .amos-select-options {
.selectOption{ .selectOption {
color:#fff; color: #fff;
background-color: rgba(10, 53, 62, 0.8); background-color: rgba(10, 53, 62, 0.8);
} }
.selectOption:hover{ .selectOption:hover {
color:#F0DF2D; color: #f0df2d;
background-color: rgba(10, 53, 62, 0.8) background-color: rgba(10, 53, 62, 0.8);
} }
} }
.pormpt-modal{ .pormpt-modal {
height:100%; height: 100%;
.amos-modal-container{ .amos-modal-container {
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/promptModal.png'); background-image: url('../assets/convertor/3dview/promptModal.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
height:253px; height: 253px;
width: 392px !important; width: 392px !important;
background-color: transparent; background-color: transparent;
box-shadow: none; box-shadow: none;
.amos-modal-content{ .amos-modal-content {
width: 100%; width: 100%;
height: 100%; height: 100%;
color: #fff; color: #fff;
font-size: 20px; font-size: 20px;
font-weight: normal; font-weight: normal;
.prompt-content{ .prompt-content {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding-top:40px ; padding-top: 40px;
display:flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
align-items: center; align-items: center;
.prompt-buttons{ .prompt-buttons {
span { span {
display: inline-block; display: inline-block;
width: 71px; width: 71px;
...@@ -305,24 +302,22 @@ ...@@ -305,24 +302,22 @@
margin: 0 10px; margin: 0 10px;
text-align: center; text-align: center;
} }
.promptOk{ .promptOk {
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptOk.png') no-repeat 100% 100%; background: url('../assets/convertor/3dview/promptOk.png') no-repeat 100% 100%;
} }
.promptNo { .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{ .promptSave {
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptSave.png') no-repeat 100% 100%; background: url('../assets/convertor/3dview/promptSave.png') no-repeat 100% 100%;
} }
.promptCancel{ .promptCancel {
background: url('/mods/components/3dviewConvertor/assets/convertor/3dview/promptCancel.png') no-repeat 100% 100%; background: url('../assets/convertor/3dview/promptCancel.png') no-repeat 100% 100%;
} }
} }
} }
} }
} }
} }
// .rayd-modal{ // .rayd-modal{
// background-color: rgba(25, 86, 147, 0.6) !important; // background-color: rgba(25, 86, 147, 0.6) !important;
...@@ -333,6 +328,3 @@ ...@@ -333,6 +328,3 @@
// color: #fff !important; // color: #fff !important;
// } // }
// } // }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
width: 216px !important; width: 216px !important;
height: 100% !important; height: 100% !important;
padding: 0px; padding: 0px;
background: url('/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-size: 100%;
background-repeat: round; background-repeat: round;
position: relative; position: relative;
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
.carImg { .carImg {
width: 35px; width: 35px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top; background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
} }
.carHead { .carHead {
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
width: 81px !important; width: 81px !important;
margin-left: 5px !important; margin-left: 5px !important;
font-size: 5px !important; font-size: 5px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png'); background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important; text-align: center !important;
line-height: 27px !important; line-height: 27px !important;
} }
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
margin-left: 0px; margin-left: 0px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png'); background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -156,7 +156,7 @@ ...@@ -156,7 +156,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png'); background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png'); background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -174,7 +174,7 @@ ...@@ -174,7 +174,7 @@
margin-left: 3px; margin-left: 3px;
height: 25px; height: 25px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png'); background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -436,7 +436,7 @@ ...@@ -436,7 +436,7 @@
width: 316px !important; width: 316px !important;
height: 100% !important; height: 100% !important;
padding: 0px; padding: 0px;
background: url('/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-size: 100%;
background-repeat: round; background-repeat: round;
position: relative; position: relative;
...@@ -534,7 +534,7 @@ ...@@ -534,7 +534,7 @@
.carImg { .carImg {
width: 59px; width: 59px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top; background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
} }
.carHead { .carHead {
...@@ -557,7 +557,7 @@ ...@@ -557,7 +557,7 @@
width: 81px !important; width: 81px !important;
margin-left: 45px !important; margin-left: 45px !important;
font-size: 13px !important; font-size: 13px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png'); background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important; text-align: center !important;
line-height: 27px !important; line-height: 27px !important;
} }
...@@ -571,7 +571,7 @@ ...@@ -571,7 +571,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png'); background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -580,7 +580,7 @@ ...@@ -580,7 +580,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png'); background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -589,7 +589,7 @@ ...@@ -589,7 +589,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png'); background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
...@@ -598,7 +598,7 @@ ...@@ -598,7 +598,7 @@
margin-left: 5px; margin-left: 5px;
height: 35px; height: 35px;
color: white; color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png'); background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%; background-size: 100%;
background-repeat: round; background-repeat: round;
} }
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
.carousel-img { .carousel-img {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 5px padding: 5px;
} }
.carousel-indicators { .carousel-indicators {
...@@ -138,9 +138,7 @@ ...@@ -138,9 +138,7 @@
float: left; float: left;
width: 131px;//9.84%; width: 131px;//9.84%;
height: 40px; height: 40px;
//background: $biz-table-title-color;//#333;
background: rgba(25, 86, 147, 1); background: rgba(25, 86, 147, 1);
// border-left: 1px solid $core-border-color;
box-sizing: border-box; box-sizing: border-box;
flex: 1; flex: 1;
} }
...@@ -159,7 +157,7 @@ ...@@ -159,7 +157,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
.amos-modal-container{ .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; background-repeat: no-repeat;
height:262px; height:262px;
width: 452px !important; width: 452px !important;
...@@ -225,7 +223,7 @@ ...@@ -225,7 +223,7 @@
height: 8px; height: 8px;
} }
::-webkit-scrollbar-thumb { /* 拖动条 */ ::-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; background-repeat: no-repeat;
height: 10px; height: 10px;
} }
...@@ -233,13 +231,13 @@ ...@@ -233,13 +231,13 @@
background-color:rgba(17, 44, 88, 0.2); background-color:rgba(17, 44, 88, 0.2);
} }
::-webkit-scrollbar-button{ ::-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; background-repeat: no-repeat;
} }
height:100%; height:100%;
.amos-modal-container{ .amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/modalbg.png'); background-image: url('../assets/convertor/3dview/modalbg.png');
height:497px; height:497px;
width: 866px !important; width: 866px !important;
background-color: rgba(255,255,255,0); background-color: rgba(255,255,255,0);
......
...@@ -59,22 +59,22 @@ ...@@ -59,22 +59,22 @@
width: 260px; width: 260px;
height: 206px; height: 206px;
padding: 20px; 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 { .step-trace {
height: 144px; 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 { .next-step {
width: 24px; width: 24px;
height: 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 { .previous-step {
width: 24px; width: 24px;
height: 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 @@ ...@@ -130,7 +130,7 @@
width: 840px; width: 840px;
height: 60px; height: 60px;
margin: 0 auto; 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-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
height: 30px; height: 30px;
margin: 0 auto; margin: 0 auto;
margin-top: 10px; margin-top: 10px;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/baojing.png'); background-image: url('../assets/convertor/3dview/prePlan/baojing.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -179,7 +179,7 @@ ...@@ -179,7 +179,7 @@
height: 60px; height: 60px;
margin-bottom: 7px; margin-bottom: 7px;
text-align: center; text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu.png');
.text-icon { .text-icon {
width: 36px; width: 36px;
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
.text-icon { .text-icon {
// flex: 1 0 16%; // flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shijian.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -214,7 +214,7 @@ ...@@ -214,7 +214,7 @@
.text-icon { .text-icon {
// flex: 1 0 16%; // flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -228,7 +228,7 @@ ...@@ -228,7 +228,7 @@
.text-icon { .text-icon {
// flex: 1 0 8%; // flex: 1 0 8%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -243,7 +243,7 @@ ...@@ -243,7 +243,7 @@
.text-icon { .text-icon {
// flex: 1 0 7%; // flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-gongshu.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
.text-icon { .text-icon {
// flex: 1 0 7%; // flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-paomo.png'); background: url('../assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background-repeat: no-repeat; background-repeat: no-repeat;
} }
...@@ -279,7 +279,7 @@ ...@@ -279,7 +279,7 @@
.amos-modal-confirm-confirm { .amos-modal-confirm-confirm {
.amos-modal-container { .amos-modal-container {
text-align: center; text-align: center;
background: url('/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%; background-size: 100% 100%;
box-shadow: unset; box-shadow: unset;
...@@ -305,7 +305,7 @@ ...@@ -305,7 +305,7 @@
.amos-btn { .amos-btn {
width: 95px; width: 95px;
height: 44px; height: 44px;
background: url('/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%; background-size: 100% 100%;
border: 0; border: 0;
} }
...@@ -315,7 +315,7 @@ ...@@ -315,7 +315,7 @@
height: 40px; height: 40px;
margin-top: -5px; margin-top: -5px;
color: white; color: white;
background: url('/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; border: 0;
} }
} }
...@@ -455,7 +455,7 @@ ...@@ -455,7 +455,7 @@
.precontrol-water-view { .precontrol-water-view {
width: 260px; width: 260px;
text-align: center; 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%; background-size: 100% 100%;
padding-bottom: 10px; padding-bottom: 10px;
padding-top: 10px; padding-top: 10px;
...@@ -494,7 +494,7 @@ ...@@ -494,7 +494,7 @@
height: 20px; height: 20px;
width: 20px; width: 20px;
float: left; 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-size: cover;
// background-repeat: no-repeat; // background-repeat: no-repeat;
} }
...@@ -503,7 +503,7 @@ ...@@ -503,7 +503,7 @@
height: 17px; height: 17px;
width: 20px; width: 20px;
float: left; 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; background-size: cover;
} }
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
bottom: 20px; bottom: 20px;
width: 460px; width: 460px;
height: 600px; height: 600px;
background: url('/mods/components/3dviewConvertor/assets//convertor//3dview//searchpane-background.png'); background: url('../assets/convertor/3dview/searchpane-background.png');
filter:blur(3px); filter:blur(3px);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -307,16 +307,16 @@ ...@@ -307,16 +307,16 @@
background-color: #2b8dd4; background-color: #2b8dd4;
} }
.ant-calendar-input::-webkit-input-placeholder { .ant-calendar-input::-webkit-input-placeholder {
color: white; color: white;
} }
} }
.ant-calendar-header{ .ant-calendar-header{
color: white; color: white;
div a{ div a{
color: white; color: white;
} }
div span a{ div span a{
color: white; color: white;
} }
} }
.ant-calendar-body{ .ant-calendar-body{
...@@ -334,6 +334,6 @@ ...@@ -334,6 +334,6 @@
color: white; color: white;
} }
} }
} }
} }
\ No newline at end of file
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
.down{ .down{
height: calc(100% - 90px); height: calc(100% - 90px);
margin-left: 20px; 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-repeat: repeat;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
} }
.safetyIndex-content-chart { .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; background-repeat: no-repeat !important;
margin-top: -25px !important; margin-top: -25px !important;
width: 125px !important; width: 125px !important;
...@@ -235,7 +235,7 @@ ...@@ -235,7 +235,7 @@
.echart-week { .echart-week {
width: 321px !important; width: 321px !important;
height: 248px !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-repeat: no-repeat !important;
background-position: 31px 47px !important; background-position: 31px 47px !important;
left: 24px; left: 24px;
...@@ -285,13 +285,13 @@ ...@@ -285,13 +285,13 @@
color: rgba(112, 238, 255, 1); color: rgba(112, 238, 255, 1);
line-height: 65px; line-height: 65px;
} }
.content-xj-middle { .content-xj-middle {
height: 44%; height: 44%;
margin-top: 4%; margin-top: 4%;
margin: 0 37px; 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-repeat: repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
...@@ -319,7 +319,7 @@ ...@@ -319,7 +319,7 @@
} }
.yellow-div { .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; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -330,7 +330,7 @@ ...@@ -330,7 +330,7 @@
} }
} }
.green-div { .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; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -342,7 +342,7 @@ ...@@ -342,7 +342,7 @@
} }
.red-div { .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; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -353,7 +353,7 @@ ...@@ -353,7 +353,7 @@
} }
} }
.grey-div { .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; background-repeat: no-repeat !important;
width: 100%; width: 100%;
...@@ -368,7 +368,7 @@ ...@@ -368,7 +368,7 @@
.div-echars { .div-echars {
// height: 200px !important; // 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-position: 60px 14px !important;
background-repeat: no-repeat !important; background-repeat: no-repeat !important;
} }
...@@ -398,7 +398,7 @@ ...@@ -398,7 +398,7 @@
display: inline-flex; display: inline-flex;
.content-image { .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; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -431,7 +431,7 @@ ...@@ -431,7 +431,7 @@
float: left; float: left;
display: inline-flex; display: inline-flex;
.content-image { .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; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -463,7 +463,7 @@ ...@@ -463,7 +463,7 @@
float: left; float: left;
display: inline-flex; display: inline-flex;
.content-image { .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; background-repeat: no-repeat !important;
height: 42px !important; height: 42px !important;
width: 100%; width: 100%;
...@@ -506,7 +506,7 @@ ...@@ -506,7 +506,7 @@
bottom: 250px; bottom: 250px;
left: 250px; left: 250px;
right: 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-repeat: repeat;
background-size: 100% 100%; background-size: 100% 100%;
.close{ .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 @@ ...@@ -2,74 +2,96 @@
"sceneName": "station-yinan", "sceneName": "station-yinan",
"basePath": "/mods/components/3dviewConvertor/threeres/models/yinan/", "basePath": "/mods/components/3dviewConvertor/threeres/models/yinan/",
"models": [ "models": [
{ "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park" }, { "objName": "ground.obj", "mtlName": "ground.mtl", "modelLevel": "Park","userData": {"key": "ground", "level": "root" } },
{ "objName": "helper-text.obj", "mtlName": "helper-text.mtl", "modelLevel": "Stuff" }, { "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", "foreignKey": "valve-hall_01" }, { "objName": "building_01.obj", "mtlName": "building_01.mtl", "modelLevel": "Building",
{ "objName": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_02" }, "userData": {
{ "objName": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building", "foreignKey": "valve-hall_03" }, "key": "building_01",
{ "objName": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" }, "level": "root" ,
{ "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" }, "parentKey": "",
{ "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" }, "fitView": {
{ "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" } "position": [-125.24438800571633, 37.31694518022703, 37.45503575603876],
], "target": [-82.16651609803264, 0.2787801682213826, 3.8565986056023336]
"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": "building_02.obj", "mtlName": "building_02.mtl", "modelLevel": "Building",
{ "objName": "valve-hall_01#t1.obj", "mtlName": "valve-hall_01#t1.mtl", "modelLevel": "Stuff" }, "userData": {
{ "objName": "valve-hall_01#t2.obj", "mtlName": "valve-hall_01#t2.mtl", "modelLevel": "Stuff" }, "key": "building_02",
{ "objName": "valve-hall_01#t3.obj", "mtlName": "valve-hall_01#t3.mtl", "modelLevel": "Stuff" }, "level": "root" ,
{ "objName": "valve-hall_01#t4.obj", "mtlName": "valve-hall_01#t4.mtl", "modelLevel": "Stuff" }, "parentKey": "",
{ "objName": "valve-hall_01#t5.obj", "mtlName": "valve-hall_01#t5.mtl", "modelLevel": "Stuff" }, "fitView": {
{ "objName": "valve-hall_01#t6.obj", "mtlName": "valve-hall_01#t6.mtl", "modelLevel": "Stuff" }, "position": [-6.892904397414338, 33.66816388530167, 45.464966257474764],
{ "objName": "valve-hall_01#t7.obj", "mtlName": "valve-hall_01#t7.mtl", "modelLevel": "Stuff" }, "target": [-29.492637996950595, -0.029036413078703773, -0.14266102890052573]
{ "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": "building_03.obj", "mtlName": "building_03.mtl", "modelLevel": "Building",
{ "objName": "valve-hall_02#wall.obj", "mtlName": "valve-hall_02#wall.mtl", "modelLevel": "Stuff" }, "userData": {
{ "objName": "valve-hall_02#t1.obj", "mtlName": "valve-hall_02#t1.mtl", "modelLevel": "Stuff" }, "key": "building_03",
{ "objName": "valve-hall_02#t2.obj", "mtlName": "valve-hall_02#t2.mtl", "modelLevel": "Stuff" }, "level": "root" ,
{ "objName": "valve-hall_02#t3.obj", "mtlName": "valve-hall_02#t3.mtl", "modelLevel": "Stuff" }, "parentKey": "",
{ "objName": "valve-hall_02#t4.obj", "mtlName": "valve-hall_02#t4.mtl", "modelLevel": "Stuff" }, "fitView": {
{ "objName": "valve-hall_02#t5.obj", "mtlName": "valve-hall_02#t5.mtl", "modelLevel": "Stuff" }, "position": [71.88616384445248, 37.78356236595482, 6.803086007181708],
{ "objName": "valve-hall_02#t6.obj", "mtlName": "valve-hall_02#t6.mtl", "modelLevel": "Stuff" }, "target": [-47.2223570471867, -39.42491207712449, -5.377338476592742]
{ "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": "building_04.obj", "mtlName": "building_04.mtl", "modelLevel": "Building" ,"userData": {"key": "building_04", "level": "root" }},
{ "objName": "valve-hall_02#t11.obj", "mtlName": "valve-hall_02#t11.mtl", "modelLevel": "Stuff" }, { "objName": "building_05.obj", "mtlName": "building_05.mtl", "modelLevel": "Building" ,"userData": {"key": "building_05", "level": "root" }},
{ "objName": "valve-hall_02#t12.obj", "mtlName": "valve-hall_02#t12.mtl", "modelLevel": "Stuff" }, { "objName": "Complex-building.obj", "mtlName": "Complex-building.mtl", "modelLevel": "Building" ,"userData": {"key": "Complex-building", "level": "root" }},
{ "objName": "valve-hall_02#t13.obj", "mtlName": "valve-hall_02#t13.mtl", "modelLevel": "Stuff" }, { "objName": "gatehouse.obj", "mtlName": "gatehouse.mtl", "modelLevel": "Building" ,"userData": {"key": "gatehouse", "level": "root" }}
{ "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" }
]}
], ],
"asyncModels": [ "asyncModels": [
{ "objName": "electric-tower_01.obj", "mtlName": "electric-tower_01.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" }, { "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" }, { "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" }, { "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" }, { "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" }, { "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" }, { "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" }, { "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" }, { "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" }, { "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" } { "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" "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'; ...@@ -4,7 +4,6 @@ import { Connect } from 'amos-framework';
import AmosWebSocket from 'amos-websocket'; import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../consts/wsUrlConsts'; import SysWsURL, { completeToken } from './../consts/wsUrlConsts';
import SideControl from './sideControl'; import SideControl from './sideControl';
import DataPane from './datapane';
import globalMsg from './pagefactory/msgFactory'; import globalMsg from './pagefactory/msgFactory';
import { eventTopics, rulesDataFactory } from './consts'; import { eventTopics, rulesDataFactory } from './consts';
import LayerPool from './LayerPool'; import LayerPool from './LayerPool';
...@@ -17,7 +16,6 @@ const eventConnect = Connect.eventConnect; ...@@ -17,7 +16,6 @@ const eventConnect = Connect.eventConnect;
@eventConnect @eventConnect
class MaskContent extends Component { class MaskContent extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
...@@ -72,7 +70,8 @@ class MaskContent extends Component { ...@@ -72,7 +70,8 @@ class MaskContent extends Component {
} }
initViewModel = ()=>{ initViewModel = ()=>{
this.setState({ activeAction: 'panoramic' }); //选中全景监控、隐藏检索查询框
this.setState({ activeAction: 'panoramic', searchPaneVisible: false });
} }
render() { render() {
...@@ -101,14 +100,6 @@ class MaskContent extends Component { ...@@ -101,14 +100,6 @@ class MaskContent extends Component {
transitionAppear: true transitionAppear: true
} }
}; };
const datapaneAnim = {
animateName: 'zoom-comb-right',
visible: !planStarted && !alarmStarted,
animateProps: {
key: 'animate-datapane', // animate key
transitionAppear: true
}
};
const layerPoolAnimation = { const layerPoolAnimation = {
animateName: 'fade', animateName: 'fade',
visible: alarmStarted, visible: alarmStarted,
...@@ -123,7 +114,7 @@ class MaskContent extends Component { ...@@ -123,7 +114,7 @@ class MaskContent extends Component {
<div className="mask-content"> <div className="mask-content">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug /> <AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
{ !alarmStarted && sideControlShow && <SideControl multiple={multiple} errorAreaId={errorAreaId} onItemClick={onItemClick} layerConfig={layerConfig} animationProps={controlAnimation} activeAction={activeAction}/>} { !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} /> <TopMsg alarmStart={alarmStart} />
{ !alarmStarted && !isShowActionBar && <ModelHeader animationProps={controlAnimation} headerName={headerName} handleExceptModel={this.handleExceptModel} />} { !alarmStarted && !isShowActionBar && <ModelHeader animationProps={controlAnimation} headerName={headerName} handleExceptModel={this.handleExceptModel} />}
{ !alarmStarted && isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation} /> } { !alarmStarted && isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation} /> }
...@@ -154,7 +145,9 @@ MaskContent.propTypes = { ...@@ -154,7 +145,9 @@ MaskContent.propTypes = {
headerName: PropTypes.string, headerName: PropTypes.string,
setHeaderName: PropTypes.string, setHeaderName: PropTypes.string,
handleExceptModel: PropTypes.func, handleExceptModel: PropTypes.func,
errorAreaId: PropTypes.number errorAreaId: PropTypes.number,
editModelChange: PropTypes.func,
focusPosition: PropTypes.func
}; };
MaskContent.defaultProps = { MaskContent.defaultProps = {
......
...@@ -6,17 +6,12 @@ import { connect3D } from 'amos-3d/lib/designer'; ...@@ -6,17 +6,12 @@ import { connect3D } from 'amos-3d/lib/designer';
import { RiskPoint, PatrolPoint, PersonPoint3D, MonitorPoint, ProbePoint, import { RiskPoint, PatrolPoint, PersonPoint3D, MonitorPoint, ProbePoint,
FireResourcePoint, EquipmentPoint, FireCar3D, FirePoint, WorkerMen3D, PointStatistics, ImpEquipmentMode } from './points'; FireResourcePoint, EquipmentPoint, FireCar3D, FirePoint, WorkerMen3D, PointStatistics, ImpEquipmentMode } from './points';
import { eventTopics, isPointEvent , isLevelFilter } from './consts'; import { eventTopics, isPointEvent , isLevelFilter } from './consts';
import { parseMarkers, parseLevelFilter, objRunning } from './dataProcessor'; import { parseMarkers, parseLevelFilter } from './dataProcessor';
const loginUserName = Store.lsTool.read('userName'); const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2']; const filterUser = ['tianbo', 'opera1', 'opera2'];
const eventConnect = Connect.eventConnect; 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; const Shuttle = (props) => props.children;
...@@ -58,6 +53,7 @@ class PointsPool extends Component { ...@@ -58,6 +53,7 @@ class PointsPool extends Component {
} }
onMarkersCreated = (type, { markersCache }) => { onMarkersCreated = (type, { markersCache }) => {
this.markerList[type] = markersCache; this.markerList[type] = markersCache;
(markersCache || []).forEach(mc => { (markersCache || []).forEach(mc => {
const extData = mc.getExtData(); const extData = mc.getExtData();
...@@ -98,7 +94,7 @@ class PointsPool extends Component { ...@@ -98,7 +94,7 @@ class PointsPool extends Component {
} }
return ( return (
<Shuttle> <Shuttle>
<RiskPoint <RiskPoint
{...rest} {...rest}
markers={markers.riskSource} markers={markers.riskSource}
onCreated={(val) => this.onMarkersCreated('riskSource', val)} onCreated={(val) => this.onMarkersCreated('riskSource', val)}
...@@ -117,6 +113,9 @@ class PointsPool extends Component { ...@@ -117,6 +113,9 @@ class PointsPool extends Component {
markers={markers.patrol} markers={markers.patrol}
onCreated={(val) => this.onMarkersCreated('patrol', val)} onCreated={(val) => this.onMarkersCreated('patrol', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<PersonPoint3D <PersonPoint3D
{...rest} {...rest}
...@@ -129,36 +128,54 @@ class PointsPool extends Component { ...@@ -129,36 +128,54 @@ class PointsPool extends Component {
markers={markers.impEquipment} markers={markers.impEquipment}
onCreated={(val) => this.onMarkersCreated('impEquipment', val)} onCreated={(val) => this.onMarkersCreated('impEquipment', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<FireResourcePoint <FireResourcePoint
{...rest} {...rest}
markers={markers.pool} markers={markers.pool}
onCreated={(val) => this.onMarkersCreated('pool', val)} onCreated={(val) => this.onMarkersCreated('pool', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<FireResourcePoint <FireResourcePoint
{...rest} {...rest}
markers={markers.hydrant} markers={markers.hydrant}
onCreated={(val) => this.onMarkersCreated('hydrant', val)} onCreated={(val) => this.onMarkersCreated('hydrant', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<FireResourcePoint <FireResourcePoint
{...rest} {...rest}
markers={markers.fireEquipment} markers={markers.fireEquipment}
onCreated={(val) => this.onMarkersCreated('fireEquipment', val)} onCreated={(val) => this.onMarkersCreated('fireEquipment', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<FireResourcePoint <FireResourcePoint
{...rest} {...rest}
markers={markers.fireChamber} markers={markers.fireChamber}
onCreated={(val) => this.onMarkersCreated('fireChamber', val)} onCreated={(val) => this.onMarkersCreated('fireChamber', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<FireResourcePoint <FireResourcePoint
{...rest} {...rest}
markers={markers.fireFoamRoom} markers={markers.fireFoamRoom}
onCreated={(val) => this.onMarkersCreated('fireFoamRoom', val)} onCreated={(val) => this.onMarkersCreated('fireFoamRoom', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
{!hideDetector ? {!hideDetector ?
<FireResourcePoint <FireResourcePoint
...@@ -174,6 +191,9 @@ class PointsPool extends Component { ...@@ -174,6 +191,9 @@ class PointsPool extends Component {
markers={markers.monitorEquipment} markers={markers.monitorEquipment}
onCreated={(val) => this.onMarkersCreated('monitorEquipment', val)} onCreated={(val) => this.onMarkersCreated('monitorEquipment', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<MonitorPoint <MonitorPoint
{...rest} {...rest}
...@@ -197,6 +217,9 @@ class PointsPool extends Component { ...@@ -197,6 +217,9 @@ class PointsPool extends Component {
markers={markers.fireCar} markers={markers.fireCar}
onCreated={(val) => this.onMarkersCreated('fireCar', val)} onCreated={(val) => this.onMarkersCreated('fireCar', val)}
isEditMode={this.props.isEditMode} isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/> />
<PointStatistics <PointStatistics
{...rest} {...rest}
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Modal ,Button} from 'amos-framework'; import { Modal } from 'amos-framework';
class PromptModal extends Component { class PromptModal extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {};
};
} }
cancel = ()=>{ cancel = () => {
const {isback} =this.props.promptData const { isback } = this.props.promptData;
this.props.closePromptModal() this.props.closePromptModal();
if(isback){ if (isback) {
this.props.handleOutExceptModel() this.props.handleOutExceptModel();
} }
} };
saveData=()=>{ saveData = () => {
const {isback,type} =this.props.promptData const { isback, type,pointType,pointParams } = this.props.promptData;
if(isback){
this.props.handleOutExceptModel() 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 (isback) {
if(type=='region') this.props.handleOutExceptModel();
{
this.props.saveAreaData()
}else{
this.props.savePointData()
} }
};
}
render() { render() {
const {promptData} =this.props const { promptData } = this.props;
return ( return (
<Modal <Modal
visible={promptData.promptvisible} visible={promptData.promptvisible}
className={'pormpt-modal'} className={'pormpt-modal'}
content={<div className ='prompt-content'> content={
<div>{promptData.promptContent}</div> <div className="prompt-content">
{promptData.btnType =='isOk'? <div>{promptData.promptContent}</div>
<div className='prompt-buttons'> {promptData.btnType === 'isOk' ? (
<span className={'promptOk'} onClick={this.saveData} /> <div className="prompt-buttons">
<span className={'promptNo'} onClick={this.cancel} /> <span className={'promptOk'} onClick={this.saveData} />
</div>: <span className={'promptNo'} onClick={this.cancel} />
<div className='prompt-buttons'> </div>
<span className={'promptSave'} onClick={this.saveData} /> ) : (
<span className={'promptCancel'} onClick={this.cancel} /> <div className="prompt-buttons">
</div> <span className={'promptSave'} onClick={this.saveData} />
} <span className={'promptCancel'} onClick={this.cancel} />
</div> </div>
} )}
noDefaultFooter </div>
noDefaultHeader }
destroyContent noDefaultFooter
onCancel={this.cancel} noDefaultHeader
closable={false} destroyContent
/> onCancel={this.cancel}
closable={false}
/>
); );
} }
} }
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { utils,UUID, deepCopy } from 'amos-tool'; import { UUID, deepCopy } from 'amos-tool';
import { PubSub } from 'ray-eventpool'; 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 { FatLine } from 'amos-3d/lib/advanced';
import A3DDesigner, { Connect, FireObject,DESIGNER_CONSTS,PolygonRegion } from 'amos-3d/lib/designer'; import A3DDesigner, { Connect, FireObject,DESIGNER_CONSTS,PolygonRegion } from 'amos-3d/lib/designer';
import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent'; import WorkerObjContent from 'amos-3d/lib/worker/WorkerObjContent';
...@@ -13,8 +13,17 @@ import MaskContent from './MaskContent'; ...@@ -13,8 +13,17 @@ import MaskContent from './MaskContent';
import { getObjFromNet, initView3DAction, query3DStatistics, pointModelistAction } from '../services/3dService'; import { getObjFromNet, initView3DAction, query3DStatistics, pointModelistAction } from '../services/3dService';
import { desigerConf, desigerHelperConfig } from './conf'; import { desigerConf, desigerHelperConfig } from './conf';
import PointsPool from './PointsPool'; import PointsPool from './PointsPool';
import PromptModal from './PromptModal';
import { eventTopics, isControllerEvent, isManualOperate } from './consts'; 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 { import {
dealTroubleMarkers, dealTroubleMarkers,
assembleTroubleView, assembleTroubleView,
...@@ -31,7 +40,7 @@ import { ...@@ -31,7 +40,7 @@ import {
flickerTroubleMarkers flickerTroubleMarkers
} from './ruleActionView'; } from './ruleActionView';
import { lineData } from './datas'; 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 AreaLeftTree from './moduleEditComponent/AreaLeftTree';
import PointLeftTree from './moduleEditComponent/PointLeftTree'; import PointLeftTree from './moduleEditComponent/PointLeftTree';
import RightEditPointPanel from './moduleEditComponent/RightEditPointPanel'; import RightEditPointPanel from './moduleEditComponent/RightEditPointPanel';
...@@ -39,6 +48,7 @@ import RightEditRegionPanel from './moduleEditComponent/RightEditRegionPanel'; ...@@ -39,6 +48,7 @@ import RightEditRegionPanel from './moduleEditComponent/RightEditRegionPanel';
import { EVENTS_CONSTS } from '../consts/EventConsts'; import { EVENTS_CONSTS } from '../consts/EventConsts';
import ExceptionArea from './exceptionArea/ExceptionArea'; import ExceptionArea from './exceptionArea/ExceptionArea';
import { exceptionRegionListAction,getPointsByRegionIdAction } from '../services/panoramicService'; import { exceptionRegionListAction,getPointsByRegionIdAction } from '../services/panoramicService';
import { chunk } from '../utils/MathUtils';
const AmosConfig = endConf.AmosConfig; const AmosConfig = endConf.AmosConfig;
...@@ -85,27 +95,28 @@ class View3D extends Component { ...@@ -85,27 +95,28 @@ class View3D extends Component {
fireEquipmentPosition: [], fireEquipmentPosition: [],
contingencyPlanId: '', contingencyPlanId: '',
markers: { markers: {
riskSource:[],//风险点 - riskSource; riskSource: [],//风险点 - riskSource;
patrol:[],//巡检点 - patrol: [],//巡检点 -
impEquipment:[],//重点设备 - impEquipment: [],//重点设备 -
monitorEquipment:[],//探测器 - monitorEquipment: [],//探测器 -
video:[],//摄像头 - video: [],//摄像头 -
fireEquipment:[],//消防设备 - fireEquipment: [],//消防设备 -
person:[], person: [],
pool:[], pool: [],
hydrant:[], hydrant: [],
fireChamber:[], fireChamber: [],
fireCar:[], fireCar: [],
fire:[], fire: [],
fireDetection:[] fireDetection: [],
fireFoamRoom: []
}, },
markerType: null, markerType: null,
planStarted: false, planStarted: false,
alarmStarted: false, alarmStarted: false,
//编辑模式 //编辑模式
drawing: false,//画线状态 drawing: false,//画线状态
selectArea: "",//选中区域 selectArea: '',//选中区域
selectPoints: "",//选中点 selectPoints: '',//选中点
treeData: [],//左树 treeData: [],//左树
pointTypeArr: [], pointTypeArr: [],
routePathData: [], //区域线位置 routePathData: [], //区域线位置
...@@ -120,10 +131,18 @@ class View3D extends Component { ...@@ -120,10 +131,18 @@ class View3D extends Component {
isShowActionBar: true, //显示工具栏 isShowActionBar: true, //显示工具栏
errorAreaId: '' ,//异常区域id errorAreaId: '' ,//异常区域id
positionxyz: '', positionxyz: '',
rightHeight: 1, rightHeight: 10,
isPointSave: true, isPointSave: false,
isAreaSave: false,
treeDataList: [], treeDataList: [],
abnormalStatus: true //点告警状态 abnormalStatus: true, //点告警状态
promptData: {
promptvisible: false,
promptContent: '',
type: 'region',
btnType: 'isOk',
isback: false
}
}; };
getObjFromNet(view3dFile, (objs, asyncModels) => { getObjFromNet(view3dFile, (objs, asyncModels) => {
...@@ -147,7 +166,7 @@ class View3D extends Component { ...@@ -147,7 +166,7 @@ class View3D extends Component {
lineColor: '#878787', // 边框颜色 lineColor: '#878787', // 边框颜色
regionOpacity: 0.4 regionOpacity: 0.4
}, },
select:{ select: {
regionColor: '#FD0400', // 区域颜色 regionColor: '#FD0400', // 区域颜色
lineColor: '#FD0400', // 边框颜色 lineColor: '#FD0400', // 边框颜色
regionOpacity: 0.4 regionOpacity: 0.4
...@@ -158,6 +177,8 @@ class View3D extends Component { ...@@ -158,6 +177,8 @@ class View3D extends Component {
onMouseMove: this.onMouseMove onMouseMove: this.onMouseMove
}; };
this._marker = []; this._marker = [];
this._cacheObj = {};//3维模型对象缓存
this.processorLevel = {};//3维模型对应关系缓存
} }
componentDidMount() { componentDidMount() {
...@@ -250,9 +271,8 @@ class View3D extends Component { ...@@ -250,9 +271,8 @@ class View3D extends Component {
this.r3d.on('keydown', evt => { this.r3d.on('keydown', evt => {
// 返回上级 // 返回上级
if (this.lensLevel === LENS_LEVEL.SUB && evt.code === 'Backspace') { if (this.lensLevel === LENS_LEVEL.SUB && evt.code === 'Backspace') {
this.lensJumpFactory.jumpRoot(obj => { this.initModelDisplay();
this.lensJumpFactory.fadeIn(obj); this.outlineFactory.toggleOutline([]);//清除选中
});
this.lensLevel = LENS_LEVEL.ROOT; this.lensLevel = LENS_LEVEL.ROOT;
} }
}); });
...@@ -260,7 +280,7 @@ class View3D extends Component { ...@@ -260,7 +280,7 @@ class View3D extends Component {
_bindPubSubEvents = () => { _bindPubSubEvents = () => {
this.props.subscribe(eventTopics.base3d_view, (topic, data) => { this.props.subscribe(eventTopics.base3d_view, (topic, data) => {
console.log('subscribe base3d_view') console.log('subscribe base3d_view' + data);
if (isControllerEvent(topic)) { if (isControllerEvent(topic)) {
executeView3dCMD(this, topic, data); executeView3dCMD(this, topic, data);
} else if (isManualOperate(topic)) { } else if (isManualOperate(topic)) {
...@@ -278,8 +298,8 @@ class View3D extends Component { ...@@ -278,8 +298,8 @@ class View3D extends Component {
_bindRulesPubSubEvents = () => { _bindRulesPubSubEvents = () => {
this.props.subscribe(eventTopics.fromws, (topic, content) => { this.props.subscribe(eventTopics.fromws, (topic, content) => {
let data = content.data; let data = content.data;
console.log('消息类型--->' + topic); console.log(`消息类型--->${topic}`);
console.log('data==' + JSON.stringify(data)); console.log(`data==${JSON.stringify(data)}`);
switch (topic) { switch (topic) {
case 'base3d.fromws.mapArea_action1-1': //“极I高端8111换流变A相”所在建筑高亮+报警logo+建筑模型上气泡弹出(极I高端8111换流变A相) case 'base3d.fromws.mapArea_action1-1': //“极I高端8111换流变A相”所在建筑高亮+报警logo+建筑模型上气泡弹出(极I高端8111换流变A相)
// this.equipmentId = data.equipmentId; // this.equipmentId = data.equipmentId;
...@@ -317,7 +337,7 @@ class View3D extends Component { ...@@ -317,7 +337,7 @@ class View3D extends Component {
dealTroubleMarkers(this, data); //处理设备报警:切换图层到探测器、显示报警的探测器(闪烁-报警,不闪烁-报警解除)--已完成 dealTroubleMarkers(this, data); //处理设备报警:切换图层到探测器、显示报警的探测器(闪烁-报警,不闪烁-报警解除)--已完成
break; break;
case 'base3d.fromws.topArea_CONTINGENCY': //消防报警 case 'base3d.fromws.topArea_CONTINGENCY': //消防报警
data["contingencyPlanId"]=this.state.contingencyPlanId; data['contingencyPlanId'] = this.state.contingencyPlanId;
this.props.trigger(eventTopics.top_ae_msg, data); this.props.trigger(eventTopics.top_ae_msg, data);
break; break;
case 'base3d.fromws.recordArea_refresh': //记录区刷新 case 'base3d.fromws.recordArea_refresh': //记录区刷新
...@@ -335,7 +355,7 @@ class View3D extends Component { ...@@ -335,7 +355,7 @@ class View3D extends Component {
break; break;
case 'base3d.fromws.optionArea_': //交互区推数据 case 'base3d.fromws.optionArea_': //交互区推数据
this.props.trigger(eventTopics.optionArea_view, data); this.props.trigger(eventTopics.optionArea_view, data);
this.setState({ contingencyPlanId: data.contingencyPlanId }) this.setState({ contingencyPlanId: data.contingencyPlanId });
break; break;
case eventTopics.map_bubble: case eventTopics.map_bubble:
parseBubbleMarkers(this, content); // 监控屏气泡 parseBubbleMarkers(this, content); // 监控屏气泡
...@@ -461,7 +481,7 @@ class View3D extends Component { ...@@ -461,7 +481,7 @@ class View3D extends Component {
}); });
}; };
onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot}) => { onGraphCreated = ({ cameraFactory, sceneFactory, outlineFactory, r3d, stagePilot }) => {
this.cameraFactory = cameraFactory; this.cameraFactory = cameraFactory;
this.sceneFactory = sceneFactory; this.sceneFactory = sceneFactory;
this.outlineFactory = outlineFactory; this.outlineFactory = outlineFactory;
...@@ -486,7 +506,8 @@ class View3D extends Component { ...@@ -486,7 +506,8 @@ class View3D extends Component {
onAllDone = objGroup => { onAllDone = objGroup => {
this.sceneFactory.level.change(objGroup); this.sceneFactory.level.change(objGroup);
this.stagePilot.rendererFactory.setupUModelSahdow();//接受阴影 // 接受阴影
this.stagePilot.rendererFactory.setupUModelSahdow();
this.setState({ this.setState({
startAsyncLoad: true startAsyncLoad: true
}); });
...@@ -502,15 +523,14 @@ class View3D extends Component { ...@@ -502,15 +523,14 @@ class View3D extends Component {
onComplete = obj => { onComplete = obj => {
const me = this; const me = this;
cacheObjsSave(me,obj,LENS_LEVEL);//缓存对象及对应关系
if (!obj.isForceParent) { if (!obj.isForceParent) {
obj.on('click', evt => { obj.on('click', evt => {
if (this.state.isEditMode == false) { if (this.state.isEditMode === false) {
console.log('obj click:', evt);
// this.focusPosition(evt.pickedPosition); // this.focusPosition(evt.pickedPosition);
me.outlineFactory.toggleOutline(evt.object); me.outlineFactory.toggleOutline(evt.object);
me.focusObject(evt.object); flyToSubView(me,obj,LENS_LEVEL);
} }
}); });
} }
// 处理跳跃 // 处理跳跃
...@@ -535,14 +555,7 @@ class View3D extends Component { ...@@ -535,14 +555,7 @@ class View3D extends Component {
// 飞行到具体的 obj 之后,执行进入层级操作 // 飞行到具体的 obj 之后,执行进入层级操作
onComplete() { onComplete() {
console.log('fly done!', object); console.log('fly done!', object);
// 进入子层级 me.lensLevel = LENS_LEVEL.SUB;
if (object.foreignKey) {
me.lensJumpFactory.jumpInByForeignKey(object.foreignKey, excludeObj => {
// 处理非该层级的物体 (fadeOut)
me.lensJumpFactory.fadeOut(excludeObj);
});
me.lensLevel = LENS_LEVEL.SUB;
}
} }
}); });
} else if (me.state.alarmStarted) { } else if (me.state.alarmStarted) {
...@@ -554,9 +567,9 @@ class View3D extends Component { ...@@ -554,9 +567,9 @@ class View3D extends Component {
getPointLoop = ({ markers }, pointType, treeData) => { getPointLoop = ({ markers }, pointType, treeData) => {
treeData.forEach( t => { treeData.forEach( t => {
if(t.isRegion && t.children && t.children.length > 0){ if (t.isRegion && t.children && t.children.length > 0){
this.getPointLoop( { markers }, pointType, t.children) this.getPointLoop( { markers }, pointType, t.children);
}else if(t.position3d && !t.isRegion){ } else if (t.position3d && !t.isRegion){
t.position = t.position3d; t.position = t.position3d;
t.key = `${t.type}-${t.id}`; t.key = `${t.type}-${t.id}`;
t.label = t.name; t.label = t.name;
...@@ -568,31 +581,46 @@ class View3D extends Component { ...@@ -568,31 +581,46 @@ class View3D extends Component {
//编辑模式获取点 //编辑模式获取点
getPointList = (pointType,treeData) => { getPointList = (pointType,treeData) => {
this.clearMarkers(); this.clearMarkers();
if(treeData){ if (treeData){
let markers = {}; let markers = {
markers[pointType] = []; riskSource: [],//风险点
patrol: [],//巡检点
impEquipment: [],//重点设备
monitorEquipment: [],//探测器
video: [],//摄像头
fireEquipment: [],//消防设备
person: [],
pool: [],
hydrant: [],
fireChamber: [],
fireCar: [],
fire: [],
fireDetection: [],
fireFoamRoom: []
};
this.getPointLoop( { markers }, pointType, treeData); this.getPointLoop( { markers }, pointType, treeData);
this.setState({markers}) this.setState({ markers });
} }
} }
startDrow = (areaItem) => { startDrow = (areaItem) => {
// this.a3dRef.addPen(m); // this.a3dRef.addPen(m);
console.log('drow--------') this.setState({ isAreaSave: true });
console.log('drow--------');
this.setState({ this.setState({
selectArea:areaItem, selectArea: areaItem,
rightHeight:10, rightHeight: 10,
showRightPanel: true showRightPanel: true
}); });
this.drowItem = areaItem; this.drowItem = areaItem;
this.addPen(areaItem.id) this.addPen(areaItem.id);
} }
addPen(areaKey) { 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) // console.log(this.state.selectArea)
const penProps = { const penProps = {
key: this.genPenId(), key: this.genPenId(),
color: 0x00ff00, color: 0x00ff00,
areaKey: areaKey, areaKey,
...params ...params
}; };
this.a3dRef.newPen(penProps); this.a3dRef.newPen(penProps);
...@@ -626,13 +654,13 @@ class View3D extends Component { ...@@ -626,13 +654,13 @@ class View3D extends Component {
}); });
me.a3dRef.changeDrawState(PEN_STATE.FINISHED); me.a3dRef.changeDrawState(PEN_STATE.FINISHED);
this.state.routePathData.push({ this.state.routePathData.push({
riskSourceId: this.drowItem.id, riskSourceId: this.drowItem.id,
routePath: JSON.stringify({ routePath: JSON.stringify({
routePath:penPoints, routePath: penPoints,
regionHeigth:10 regionHeigth: 10
}), })
}) });
this.setState({ this.setState({
drawing: false, drawing: false,
routePathData: this.state.routePathData routePathData: this.state.routePathData
...@@ -656,8 +684,8 @@ class View3D extends Component { ...@@ -656,8 +684,8 @@ class View3D extends Component {
const me = this; const me = this;
me.a3dRef.changeDrawState(PEN_STATE.CLEARED); me.a3dRef.changeDrawState(PEN_STATE.CLEARED);
// 结束绘制 // 结束绘制
this.setState({ this.setState({
drawing: false drawing: false
}); });
} }
...@@ -754,7 +782,7 @@ class View3D extends Component { ...@@ -754,7 +782,7 @@ class View3D extends Component {
points: pen.getFmtPoints() points: pen.getFmtPoints()
}); });
console.log(pen); console.log(pen);
console.log(pen.getFmtPoints()) console.log(pen.getFmtPoints());
this.enableDrawPath = false; this.enableDrawPath = false;
} }
} }
...@@ -772,18 +800,19 @@ class View3D extends Component { ...@@ -772,18 +800,19 @@ class View3D extends Component {
selectItemChange = (selectArea) => { selectItemChange = (selectArea) => {
this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径 this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径
// 结束绘制 // 结束绘制
this.setState({ this.setState({
drawing: false drawing: false
}); });
this.setState({ this.setState({
selectArea, selectArea,
rightHeight:JSON.parse(selectArea.routePath).regionHeigth, rightHeight: JSON.parse(selectArea.routePath).regionHeigth,
showRightPanel: true showRightPanel: true
}); });
} }
//选中点变化 //选中点变化
selectPointChange = (selectPoints) => { selectPointChange = (selectPoints) => {
const { markers, pointType } = this.state; const { markers, pointType } = this.state;
this.stagePilot.positionCtl.clearDrag();
if (selectPoints.isRegion){ if (selectPoints.isRegion){
this.setState({ selectArea: selectPoints, selectPoints }); this.setState({ selectArea: selectPoints, selectPoints });
} else { } else {
...@@ -806,32 +835,32 @@ class View3D extends Component { ...@@ -806,32 +835,32 @@ class View3D extends Component {
if (treeData && treeData.length > 0) { if (treeData && treeData.length > 0) {
treeData.map((item) => { treeData.map((item) => {
if (item.isRegion && item.isBind) { if (item.isRegion && item.isBind) {
if(selectArea && selectArea.id == item.id){ 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.areas.push(<PolygonRegion {...this.areaStyles.select} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
this.getAreas(item.children); this.getAreas(item.children);
}else{ } else {
if (item.children && item.children.length > 0) { if (item.children && item.children.length > 0) {
if (dragItem) { if (dragItem) {
if ( dragItem.parentId && dragItem.parentId == item.id) { 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)}} />); this.areas.push(<PolygonRegion {...this.areaStyles.normal} points={item.routePath ? JSON.parse(item.routePath).routePath : ''} onCreated={(e) => {this.onRegionCreated(e,item);}} />);
} else { } 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 { } 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);}} />);
{this.getAreas(item.children)} {this.getAreas(item.children);}
} }
} else { } else {
if (dragItem) { if (dragItem) {
if ( dragItem && dragItem.parentId && dragItem.parentId === item.id) { 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 { } 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 { } 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 { ...@@ -847,7 +876,7 @@ class View3D extends Component {
} }
renderAreas = () => { renderAreas = () => {
this.areas = []; this.areas = [];
console.log(this.state.treeData) console.log(this.state.treeData);
this.getAreas(this.state.treeData); this.getAreas(this.state.treeData);
return this.areas; return this.areas;
} }
...@@ -860,10 +889,10 @@ class View3D extends Component { ...@@ -860,10 +889,10 @@ class View3D extends Component {
message.success('保存成功!'); message.success('保存成功!');
getAreaTreeAction().then(data => { getAreaTreeAction().then(data => {
//console.log(data); //console.log(data);
console.log(JSON.stringify(data)) console.log(JSON.stringify(data));
this.setState({ this.setState({
treeData: data || [], treeData: data || [],
routePathData:[] routePathData: []
}); });
}); });
}, eer => { }, eer => {
...@@ -877,6 +906,7 @@ class View3D extends Component { ...@@ -877,6 +906,7 @@ class View3D extends Component {
//保存区域绑定 //保存区域绑定
saveAreaData = () => { saveAreaData = () => {
let { routePathData } = this.state; let { routePathData } = this.state;
this.setState({ isAreaSave: false });
saveAreaDataAction(routePathData).then(d => { saveAreaDataAction(routePathData).then(d => {
message.success('保存成功!'); message.success('保存成功!');
this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径 this.a3dRef.changeDrawState(PEN_STATE.CLEARED);//清除当前路径
...@@ -886,10 +916,10 @@ class View3D extends Component { ...@@ -886,10 +916,10 @@ class View3D extends Component {
}); });
getAreaTreeAction().then(data => { getAreaTreeAction().then(data => {
//console.log(data); //console.log(data);
console.log(JSON.stringify(data)) console.log(JSON.stringify(data));
this.setState({ this.setState({
treeData: data || [], treeData: data || [],
routePathData:[] routePathData: []
}); });
}); });
}, eer => { }, eer => {
...@@ -899,24 +929,47 @@ class View3D extends Component { ...@@ -899,24 +929,47 @@ class View3D extends Component {
//保存点绑定 //保存点绑定
savePointData = () => { savePointData = () => {
let { markers, pointType, isPointSave} = this.state; let { markers, pointType } = this.state;
this.setState({isPointSave: true}); this.setState({ isPointSave: false });
let paramsArr = []; if (pointType === 'fireEquipment') {
paramsArr = markers[pointType].filter(e=> e.isEdit).map(item=>{ let typeArr = ['fireEquipment','pool','hydrant','fireChamber','fireCar','fireFoamRoom'];
return { for (let i = 0;i < typeArr.length;i++){
pointId: item.id, let paramsArr = [];
pointType: item.type, if (markers[typeArr[i]].length > 0){
position3d: item.position.length > 1 ? `${item.position[0]},${item.position[1]},${item.position[2]}` : null paramsArr = markers[typeArr[i]].filter(e=> e.isEdit).map(item=>{
}; return {
}); pointId: item.id,
this.savePointList(pointType,paramsArr); 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( savePointListAction(paramsArr).then(
data => { data => {
getPointTreeAction(pointType).then( getPointTreeAction(pointType).then(
data => { data => {
this.getPointList(pointType,data);
this.setState({ this.setState({
treeData: data || [], treeData: data || [],
pageType: 'point', pageType: 'point',
...@@ -924,14 +977,16 @@ class View3D extends Component { ...@@ -924,14 +977,16 @@ class View3D extends Component {
}); });
} }
); );
message.success('保存成功'); isfirst && message.success('保存成功');
},error => message.error('保存失败')
); },error =>{
isfirst && message.error('保存失败');
});
} }
// 删除点绑定 // 删除点绑定
deletePointBind = () => { deletePointBind = () => {
let { selectPoints ,pointTypeArr,pointType,markers} = this.state; let { selectPoints ,pointType } = this.state;
if (selectPoints && !selectPoints.isRegion) { if (selectPoints && !selectPoints.isRegion) {
let pointParams = []; let pointParams = [];
...@@ -940,24 +995,36 @@ class View3D extends Component { ...@@ -940,24 +995,36 @@ class View3D extends Component {
pointType: selectPoints.type, pointType: selectPoints.type,
position3d: `` position3d: ``
}); });
this.savePointAndRefreshMarker(pointType,pointParams); this.setState({ promptData: {
}else if(selectPoints && selectPoints.isRegion && selectPoints.children){ promptvisible: true,
AmosAlert.confirm('提示', '是否删除该区域下所有点?', { promptContent: '确定将选中删除?',
callback: (flag) => { type: 'point',
if (flag){ btnType: 'isOk',
let pointParams = []; isback: false,
pointParams = selectPoints.children.filter(e => e.position3d && e.position3d.length > 0).map(item=>{ pointType,
return { pointParams
pointId: item.id, }
pointType: item.type, });
position3d: '' //this.savePointAndRefreshMarker(pointType,pointParams);
}; } else if (selectPoints && selectPoints.isRegion && selectPoints.children){
}); let pointParams = [];
this.savePointAndRefreshMarker(pointType,pointParams); pointParams = selectPoints.children.filter(e => e.position3d && e.position3d.length > 0).map(item=>{
} else { 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 { ...@@ -977,10 +1044,10 @@ class View3D extends Component {
//删除区域 //删除区域
deleteAreaBind = () => { deleteAreaBind = () => {
let { selectArea,treeData } = this.state; let { selectArea } = this.state;
if (selectArea) { if (selectArea) {
getPointsByRegionIdAction(selectArea.id).then(d => { getPointsByRegionIdAction(selectArea.id).then(d => {
if (d && d.length == 0){ if (d && d.length === 0){
this.state.routePathData.push({ this.state.routePathData.push({
riskSourceId: selectArea.id, riskSourceId: selectArea.id,
routePath: '' routePath: ''
...@@ -991,50 +1058,61 @@ class View3D extends Component { ...@@ -991,50 +1058,61 @@ class View3D extends Component {
this.getAreas(tree.children); this.getAreas(tree.children);
this.setState({ this.setState({
routePathData: this.state.routePathData, routePathData: this.state.routePathData,
treeData: tree.children //treeData: tree.children,
selectArea: ''
});
this.setState({ promptData: {
promptvisible: true,
promptContent: '确定将选中删除?',
type: 'region',
btnType: 'isOk',
isback: false
}
}); });
} else { } else {
message.danger('请先清除点的绑定再进行删除!'); message.danger('请先清除点的绑定再进行删除!');
} }
}); });
} else {
message.danger('请先选择已绑定的区域再进行删除!');
} }
} }
/** /**
* 处理数据 * 处理数据
*/ */
generateList = data => { generateList = data => {
let {treeDataList } =this.state; let { treeDataList } = this.state;
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
const node = data[i]; const node = data[i];
const key = node.id; const key = node.id;
const title = node.name; const title = node.name;
treeDataList.push({ key, title }); treeDataList.push({ key, title });
if (node.children.length>0) { if (node.children.length > 0) {
this.generateList(node.children); this.generateList(node.children);
} }
} }
this.setState({treeDataList}) this.setState({ treeDataList });
} }
removeTreeDataRoutePathByChildId = ( areaId, obj ) => { removeTreeDataRoutePathByChildId = ( areaId, obj ) => {
let oldSize = obj.children.length; let oldSize = obj.children.length;
let flag = false; let flag = false;
if(oldSize > 0){ if (oldSize > 0){
obj.children && obj.children.some( t => { obj.children && obj.children.some( t => {
if(t.id == areaId){ if (t.id === areaId){
t.routePath = ''; t.routePath = '';
t.isBind = false; t.isBind = false;
flag = true flag = true;
} }
}); });
if(flag){//移除 if (flag){//移除
return; return;
}else{ } else {
obj.children && obj.children.some(t => { obj.children && obj.children.some(t => {
this.removeTreeDataRoutePathByChildId( areaId, t ); this.removeTreeDataRoutePathByChildId( areaId, t );
}); });
} }
}else{ } else {
return; return;
} }
} }
...@@ -1044,7 +1122,12 @@ class View3D extends Component { ...@@ -1044,7 +1122,12 @@ class View3D extends Component {
*/ */
changeAreaPoint = (type) => { changeAreaPoint = (type) => {
let { pointTypeArr } = this.state; let { pointTypeArr } = this.state;
this.setState({ treeDataList: [] }); this.setState( {
treeDataList: [],
dragItem: '',
selectArea: '',
selectPoints: ''
} );
this.stagePilot.positionCtl.clearDrag();//清除已有选中 this.stagePilot.positionCtl.clearDrag();//清除已有选中
if (type === 'region') { if (type === 'region') {
getAreaTreeAction().then(data => { getAreaTreeAction().then(data => {
...@@ -1064,7 +1147,8 @@ class View3D extends Component { ...@@ -1064,7 +1147,8 @@ class View3D extends Component {
pointType: pointTypeArr[0].code || '', pointType: pointTypeArr[0].code || '',
treeData: data || [], treeData: data || [],
pageType: 'point', pageType: 'point',
showRightPanel: false showRightPanel: false ,
selectArea: ''
}); });
}); });
this.enableCamera(); this.enableCamera();
...@@ -1075,11 +1159,17 @@ class View3D extends Component { ...@@ -1075,11 +1159,17 @@ class View3D extends Component {
if (!isPointSave){ if (!isPointSave){
this.showConfirm(); this.showConfirm();
} }
this.stagePilot.positionCtl.clearDrag();
this.setState({ this.setState({
pointType, pointType,
treeData: [] treeData: [],
treeDataList: [],
selectArea: '',
selectPoints: '',
dragItem: ''
}); });
getPointTreeAction(pointType).then(data => { getPointTreeAction(pointType).then(data => {
this.generateList(data);
this.getPointList(pointType,data); this.getPointList(pointType,data);
this.setState({ this.setState({
pointType, pointType,
...@@ -1088,26 +1178,26 @@ class View3D extends Component { ...@@ -1088,26 +1178,26 @@ class View3D extends Component {
}); });
} }
showConfirm = () => { showConfirm = () => {
AmosAlert.confirm('提示', '有未保存数据,是否保存?', { this.setState({ promptData:
callback: (flag) => { {
if (flag){ promptvisible: true,
this.savePointData(); promptContent: `有未保存数据,是否保存?`,
} else { type: 'point',
this.setState({ isPointSave: true }); btnType: 'isOk',
} isback: false
} }
}); });
}; };
dragItemChange = (dragItem) => { dragItemChange = (dragItem) => {
let { treeData } = this.state; this.stagePilot.positionCtl.clearDrag();
if (dragItem.isRegion) { if (dragItem.isRegion) {
//是区域 //是区域
} else { } else {
if (dragItem.isBind) { if (dragItem.isBind) {
//已绑定 //已绑定
} else { } else {
let hasRegion = false; //未绑定
} }
} }
this.setState({ this.setState({
...@@ -1125,15 +1215,15 @@ class View3D extends Component { ...@@ -1125,15 +1215,15 @@ class View3D extends Component {
message.danger('只能放置未绑定的标记点'); message.danger('只能放置未绑定的标记点');
return false; return false;
} }
} }
const objs = this.a3dRef.pickerCoordinate(event.clientX, event.clientY, null, true); const objs = this.a3dRef.pickerCoordinate(event.clientX, event.clientY, null, true);
let position; let position;
if (objs.length > 0){ if (objs.length > 0){
position = objs[0].point; 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); console.log(isInside);
if (dragItem) { if (dragItem) {
if (isInside === false) { if (isInside === false) {
message.danger('只能放置在当前区域'); message.danger('只能放置在当前区域');
...@@ -1156,14 +1246,15 @@ class View3D extends Component { ...@@ -1156,14 +1246,15 @@ class View3D extends Component {
let selectPoints = { let selectPoints = {
id: dragItem.id, 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); markers[`${type}`].push(addPointParam);
this.setState({ this.setState({
markers: deepCopy(markers), markers: deepCopy(markers),
selectPoints selectPoints,
// positionxyz: position.toArray() showRightPanel: true
}); });
} }
} }
...@@ -1183,7 +1274,7 @@ class View3D extends Component { ...@@ -1183,7 +1274,7 @@ class View3D extends Component {
this.setState({ isEditMode }); this.setState({ isEditMode });
if (isEditMode === true) { if (isEditMode === true) {
getAreaTreeAction().then(treeData => { getAreaTreeAction().then(treeData => {
this.generateList(treeData) this.generateList(treeData);
this.setState({ this.setState({
treeData: treeData || [] treeData: treeData || []
}); });
...@@ -1198,28 +1289,6 @@ class View3D extends Component { ...@@ -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) => { asyncLoadMarkerData = (markerType, riskSourceId) => {
const { markers,abnormalStatus } = this.state; const { markers,abnormalStatus } = this.state;
this.setState({ showMap: false }); this.setState({ showMap: false });
...@@ -1410,7 +1479,7 @@ class View3D extends Component { ...@@ -1410,7 +1479,7 @@ class View3D extends Component {
// markers[markerType] = d; // markers[markerType] = d;
this.setState({ this.setState({
markers, markers,
markerType: "impEquipmentMode" markerType: 'impEquipmentMode'
}); });
return; return;
}); });
...@@ -1472,7 +1541,25 @@ class View3D extends Component { ...@@ -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)} />; 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)=>{ handleExceptModel =(type,areaId)=>{
let { isPointSave } = this.state; let { isPointSave } = this.state;
this.clearMarkers(); this.clearMarkers();
...@@ -1487,57 +1574,49 @@ class View3D extends Component { ...@@ -1487,57 +1574,49 @@ class View3D extends Component {
}); });
} else if (type === 'out_except_model'){ } else if (type === 'out_except_model'){
this.stagePilot.positionCtl.clearDrag(); this.stagePilot.positionCtl.clearDrag();
if (!isPointSave){ this.initModelDisplay();
AmosAlert.confirm('提示', '有未保存数据,是否保存?', { if (isAreaSave){
callback: (flag) => { this.setState({ promptData:
if (flag){ {
this.savePointData(); promptvisible: true,
this.executeOperate({ key: 'fitview' });//恢复正常视角 promptContent: `要在退出之前保存对风险区域的更改吗?`,
this.props.editModelChange(false);//显示全景统计 type: 'region',
this.setState({ btnType: 'isSave',
treeData: [], isback: true
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: ''
});
}
}
}); });
return;
} else { } else {
this.props.editModelChange(false);//显示全景统计 if (isPointSave){
this.enableCamera();//恢复相机 this.setState({ promptData:
this.setState({ {
treeData: [], promptvisible: true,
pageType: 'region',//区域 promptContent: `要在退出之前保存对风险点的更改吗?`,
sideControlShow: false, //隐藏耳朵 type: 'point',
isShowActionBar: true, //显示工具栏 btnType: 'isSave',
startLoadExceptionArea: true, //显示marker, isback: true
headerName: '', //设置头名称 }
isEditMode: false, //推出编辑模式 });
errorAreaId: '' } else {
}); this.handleOutExceptModel();
}
} }
} }
} }
/**
*
*初始化模型显示(显示所有3维模型),清除选中
* @memberof View3D
*/
initModelDisplay =()=>{
this.lensJumpFactory.jumpRoot(obj => {
this.lensJumpFactory.fadeIn(obj);
});
this.outlineFactory.toggleOutline([]);
}
setHeaderName =(name)=>{ setHeaderName =(name)=>{
this.setState({ headerName: name }); this.setState({ headerName: name });
} }
...@@ -1552,10 +1631,28 @@ class View3D extends Component { ...@@ -1552,10 +1631,28 @@ class View3D extends Component {
return object; 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 })=>{ addMarker=({ extData, position })=>{
const me = this; const me = this;
const { markers } = me.state; 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){ // if (isInside){
markers[extData.type].forEach(e => { markers[extData.type].forEach(e => {
if (e.id === extData.id){ if (e.id === extData.id){
...@@ -1574,7 +1671,13 @@ class View3D extends Component { ...@@ -1574,7 +1671,13 @@ class View3D extends Component {
// message.error('不能放置非所在区域'); // message.error('不能放置非所在区域');
// } // }
} }
closePromptModal=()=>{
this.setState({
promptData: { promptvisible: false },
isPointSave: false,
isAreaSave: false
});
}
render() { render() {
const { const {
objs, objs,
...@@ -1593,7 +1696,6 @@ class View3D extends Component { ...@@ -1593,7 +1696,6 @@ class View3D extends Component {
isShowActionBar, isShowActionBar,
headerName, headerName,
errorAreaId, errorAreaId,
positionxyz,
rightHeight, rightHeight,
treeDataList treeDataList
} = this.state; } = this.state;
...@@ -1635,6 +1737,14 @@ class View3D extends Component { ...@@ -1635,6 +1737,14 @@ class View3D extends Component {
return ( return (
<div className='ModuleEditPage'> <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 <div
className='designerBox' className='designerBox'
onDragOver={(e) => {e.preventDefault();}} onDragOver={(e) => {e.preventDefault();}}
...@@ -1679,14 +1789,14 @@ class View3D extends Component { ...@@ -1679,14 +1789,14 @@ class View3D extends Component {
positionCtlProps={positionCtlProps} positionCtlProps={positionCtlProps}
onCreated={this.onGraphCreated} onCreated={this.onGraphCreated}
> >
{startAsyncLoad && <WorkerObjContent objs={asyncModels} onWorkerMessage={this.onWorkerLoading} enableLoading afterInit={this.onAfterWorkerInit} />} {startAsyncLoad && this.multLoadWorkerObjContent(asyncModels)}
{isEditMode && pageType === 'region' ? '' : {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} />} <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} />} {fireTruckRoute && <FatLine {...lineData.fatLineConf} linePath={JSON.parse(fireTruckRoute)} visible={showFireTruckRoute} />}
<FlameFire position={firePosition} width={10} height={20} depth={8} sliceSpacing={1} visible={planStarted} /> <FlameFire position={firePosition} width={10} height={20} depth={8} sliceSpacing={1} visible={planStarted} />
{isEditMode && this.renderAreas()} {isEditMode && this.renderAreas()}
{this.renderPolygonRegion(exceptionAreas)} {this.renderPolygonRegion(exceptionAreas)}
{startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} />} {startLoadExceptionArea && <ExceptionArea markers={exceptionMarkers} handleExceptModel={this.handleExceptModel} focusObject={this.focusObject} />}
</A3DDesigner> </A3DDesigner>
</div> </div>
{ isEditMode && { isEditMode &&
...@@ -1714,6 +1824,7 @@ class View3D extends Component { ...@@ -1714,6 +1824,7 @@ class View3D extends Component {
pageType={pageType} pageType={pageType}
treeDataList={treeDataList} treeDataList={treeDataList}
// pointType={pointType} // pointType={pointType}
markers={markers}
pointTypeArr={pointTypeArr} pointTypeArr={pointTypeArr}
pointTypeChange={this.pointTypeChange} pointTypeChange={this.pointTypeChange}
dragItemChange={this.dragItemChange} dragItemChange={this.dragItemChange}
...@@ -1726,10 +1837,10 @@ class View3D extends Component { ...@@ -1726,10 +1837,10 @@ class View3D extends Component {
</div> </div>
<div className='rightBox'> <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>
</div> </div>
......
...@@ -342,8 +342,8 @@ export const desigerConf = { ...@@ -342,8 +342,8 @@ export const desigerConf = {
fov: 45, fov: 45,
near: 1, near: 1,
far: 5000, far: 5000,
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056], position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386], target: [-52.608562486768115, -6.882567219297089, 1.984922473879572],
// 是否启用拾取器 // 是否启用拾取器
enablePicker: true, enablePicker: true,
builtInOrbit: { builtInOrbit: {
...@@ -388,8 +388,8 @@ export const curveConf = { ...@@ -388,8 +388,8 @@ export const curveConf = {
export const desigerHelperConfig = { export const desigerHelperConfig = {
cameraEffect: { cameraEffect: {
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056], position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386] target: [-52.608562486768115, -6.882567219297089, 1.984922473879572]
}, },
objAnchor: { objAnchor: {
position: [0, 5, 0] position: [0, 5, 0]
......
...@@ -344,4 +344,56 @@ export const objRunning = (markerObj, routePath, delayTime) => { ...@@ -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 { ...@@ -44,10 +44,12 @@ class ExceptionArea extends Component {
} }
onMarkerClick = (marker) => { onMarkerClick = (marker) => {
const { extData } = marker; const { extData, node } = marker;
this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id); this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id);
this.props.focusObject && this.props.focusObject(node);
} }
setTopCardConf = (obj,{ safetyIndex })=>{ setTopCardConf = (obj,{ safetyIndex })=>{
obj.baseObjHelper.titleConfig = { obj.baseObjHelper.titleConfig = {
// 顶牌平面参数 // 顶牌平面参数
...@@ -71,6 +73,16 @@ class ExceptionArea extends Component { ...@@ -71,6 +73,16 @@ class ExceptionArea extends Component {
obj.baseObjHelper.title = safetyIndex; 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 }) => { markerCreated = ({ markersCache }) => {
this.markersCache = markersCache; this.markersCache = markersCache;
markersCache.eachValue(item=>{ markersCache.eachValue(item=>{
...@@ -97,7 +109,8 @@ class ExceptionArea extends Component { ...@@ -97,7 +109,8 @@ class ExceptionArea extends Component {
ExceptionArea.propTypes = { ExceptionArea.propTypes = {
markers: PropTypes.array, markers: PropTypes.array,
handleExceptModel: PropTypes.func handleExceptModel: PropTypes.func,
focusObject: PropTypes.func
}; };
export default ExceptionArea; export default ExceptionArea;
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Connect, Modal, Tree,Select,Search,Button } from 'amos-framework'; import { Connect, Tree, Search, Button } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf'; import imgStatic from '../../consts/imgStatic';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect; const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode; const TreeNode = Tree.TreeNode;
const Option = Select.Option;
const getParentKey = (key, tree) => { const getParentKey = (key, tree) => {
let parentKey; let parentKey;
for (let i = 0; i < tree.length; i++) { for (let i = 0; i < tree.length; i++) {
const node = tree[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)) { if (node.children.some(item => item.id === key)) {
parentKey = node.id; parentKey = node.id;
} else if (getParentKey(key, node.children)) { } else if (getParentKey(key, node.children)) {
...@@ -26,56 +25,23 @@ const getParentKey = (key, tree) => { ...@@ -26,56 +25,23 @@ const getParentKey = (key, tree) => {
class AreaLeftTree extends Component { class AreaLeftTree extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
// showScreenSaver: false //是否打开屏保 expandedKeys: [],
expandedKeys: [], autoExpandParent: true,
autoExpandParent: true, checkedKeys: [],
checkedKeys: [], selectedKeys: [],
selectedKeys: [], treeData: [],
treeData:[], pointTypeArr: [],
pointTypeArr:[], pointType: '',
pointType:'', treeDataList: [],
treeDataList : [], searchValue: ''
searchValue:''
}; };
} }
componentDidMount() { onSearchChange =(e,value) => {
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 => { const { treeDataList,treeData } = this.props;
const {treeDataList,treeData} = this.state
const value = e.target.value;
const expandedKeys = treeDataList const expandedKeys = treeDataList
.map(item => { .map(item => {
if (item.title.indexOf(value) > -1) { if (item.title.indexOf(value) > -1) {
...@@ -101,44 +67,16 @@ class AreaLeftTree extends Component { ...@@ -101,44 +67,16 @@ class AreaLeftTree extends Component {
autoExpandParent: false 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) => { onTreeSelect = (selectedKeys, info) => {
console.log('onSelect', info); console.log('onSelect', info);
let selectItem = info.node.props.dataRef; let selectItem = info.node.props.dataRef;
this.setState({ selectedKeys }); this.setState({ selectedKeys });
this.props.selectItemChange(selectItem); this.props.selectItemChange(selectItem);
} }
// onClick={(e)=>{e.nativeEvent.stopImmediatePropagation();e.stopPropagation();console.log(123123);}}
renderTreeNodes = (data) => { renderTreeNodes = (data) => {
let {searchValue} =this.state let { searchValue } = this.state;
// console.log(data); if (data.length > 0) {
if (data.length>0) {
return data.map((item) => { return data.map((item) => {
const index = item.name.indexOf(searchValue); const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index); const beforeStr = item.name.substr(0, index);
...@@ -155,17 +93,17 @@ class AreaLeftTree extends Component { ...@@ -155,17 +93,17 @@ class AreaLeftTree extends Component {
); );
if (item.children) { if (item.children) {
return ( return (
<TreeNode <TreeNode
title={ title={
<div> <div>
{ {
<span > <span >
{title} {title}
<span className='icon'> <span className='icon'>
{ {
item.isBind?'': item.isBind ? '' :
<img <img
src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/editBtn.png' src={moduleEditIcon.editBtn}
onClick={(e) => { onClick={(e) => {
e.nativeEvent.stopImmediatePropagation(); e.nativeEvent.stopImmediatePropagation();
e.stopPropagation(); e.stopPropagation();
...@@ -173,18 +111,18 @@ class AreaLeftTree extends Component { ...@@ -173,18 +111,18 @@ class AreaLeftTree extends Component {
}} }}
/> />
} }
{ {
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />: item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> :
item.routePath?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />: item.routePath ? <img src={moduleEditIcon.noSaveTip} alt='' /> :
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' /> <img src={moduleEditIcon.noSaveTip} alt='' />
} }
</span>
</span> </span>
</span>
} }
</div> </div>
} }
key={item.id} key={item.id}
dataRef={item} dataRef={item}
> >
{this.renderTreeNodes(item.children)} {this.renderTreeNodes(item.children)}
</TreeNode> </TreeNode>
...@@ -195,44 +133,45 @@ class AreaLeftTree extends Component { ...@@ -195,44 +133,45 @@ class AreaLeftTree extends Component {
} }
render() { render() {
let { treeData, checkedKeys,pointTypeArr,pointType} = this.state; let { treeData } = this.props;
let { pageType } = this.props; return (
return (
<div className="leftTree"> <div className="leftTree">
<div className='leftContainer'> <div className='leftContainer'>
<div className='topForm'> <div className='topForm'>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} /> <Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div> </div>
<div className='treeBox'> <div className='treeBox'>
<Tree <Tree
// checkable // checkable
// checkStrictly // checkStrictly
selectable={true} selectable
onExpand={this.onExpand} onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys} expandedKeys={this.state.expandedKeys}
autoExpandParent={true} autoExpandParent
// onCheck={this.onCheck} // onCheck={this.onCheck}
// checkedKeys={checkedKeys} // checkedKeys={checkedKeys}
onSelect={this.onTreeSelect} onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys} selectedKeys={this.state.selectedKeys}
blockNode blockNode
> >
{this.renderTreeNodes(treeData)} {this.renderTreeNodes(treeData)}
</Tree> </Tree>
</div> </div>
<div className='bottomBtns'> <div className='bottomBtns'>
<Button <Button
className='sureBtn' className='sureBtn'
onClick={() => { onClick={() => {
this.props.saveAreaData() this.props.saveAreaData();
}} ></Button> }}
<Button />
className='deleteBtn' <Button
onClick={() => { className='deleteBtn'
this.props.deleteAreaBind() onClick={() => {
}} ></Button> this.props.deleteAreaBind();
</div> }}
/>
</div> </div>
</div>
</div> </div>
); );
......
/* eslint-disable react/prop-types */
import React, { Component } from 'react'; import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Connect, Modal, Tree,Select,Search,Button } from 'amos-framework'; import { Tree, Select, Search, Button } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf'; import imgStatic from '../../consts/imgStatic';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
const eventConnect = Connect.eventConnect; const moduleEditIcon = imgStatic.moduleEditIcon;
const TreeNode = Tree.TreeNode; const TreeNode = Tree.TreeNode;
const Option = Select.Option; const Option = Select.Option;
const getParentKey = (key, tree) => { const getParentKey = (key, tree) => {
...@@ -22,59 +22,52 @@ const getParentKey = (key, tree) => { ...@@ -22,59 +22,52 @@ const getParentKey = (key, tree) => {
return parentKey; return parentKey;
}; };
@eventConnect
class PointLeftTree extends Component { class PointLeftTree extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
// showScreenSaver: false //是否打开屏保 // showScreenSaver: false //是否打开屏保
expandedKeys: [], expandedKeys: [],
autoExpandParent: true, autoExpandParent: true,
checkedKeys: [], checkedKeys: [],
selectedKeys: [], selectedKeys: [],
treeData:[], treeData: [],
pointTypeArr:[], pointTypeArr: [],
pointType:'', pointType: '',
treeDataList : [], treeDataList: [],
searchValue:'' searchValue: ''
}; };
} }
componentDidMount() { componentWillMount() {
let {treeData,pointTypeArr,treeDataList} = this.props; const { treeData, pointTypeArr, treeDataList } = this.props;
this.setState({ this.setState({
treeData, treeData,
treeDataList, treeDataList,
pointTypeArr, pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:'' pointType: pointTypeArr[0] ? pointTypeArr[0].code : ''
}) });
// console.log(this.props)
} }
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
console.log(nextProps) console.log(nextProps);
let {treeData,pointTypeArr,treeDataList} = nextProps; let { treeData,treeDataList } = nextProps;
this.setState({ this.setState({
treeData, treeData,
treeDataList, treeDataList
//pointTypeArr, });
//pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
} }
onSelectChange = (value, item) =>{ onSelectChange = (value, item) =>{
console.log(value, item); console.log(value, item);
this.setState({pointType:value}) this.setState({ pointType: value });
this.props.pointTypeChange(value); this.props.pointTypeChange(value);
} }
onSearchChange = e => { onSearchChange =(e,value) => {
const {treeDataList,treeData} = this.state const { treeDataList,treeData } = this.props;
const value = e.target.value;
const expandedKeys = treeDataList const expandedKeys = treeDataList
.map(item => { .map(item => {
if (item.title.indexOf(value) > -1) { if (item.title.indexOf(value) > -1) {
...@@ -84,16 +77,13 @@ class PointLeftTree extends Component { ...@@ -84,16 +77,13 @@ class PointLeftTree extends Component {
}) })
.filter((item, i, self) => item && self.indexOf(item) === i); .filter((item, i, self) => item && self.indexOf(item) === i);
this.setState({ this.setState({
expandedKeys, expandedKeys,
searchValue: value, searchValue: value,
autoExpandParent: true autoExpandParent: true
}); });
} }
onExpand = (expandedKeys) => { 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({ this.setState({
expandedKeys, expandedKeys,
autoExpandParent: false autoExpandParent: false
...@@ -107,10 +97,10 @@ class PointLeftTree extends Component { ...@@ -107,10 +97,10 @@ class PointLeftTree extends Component {
} }
// eslint-disable-next-line react/sort-comp
renderTreeNodes = (data) => { renderTreeNodes = (data) => {
let {searchValue} =this.state const { searchValue, pointType } = this.state;
// console.log(data); if (data.length > 0) {
if (data.length>0) {
return data.map((item) => { return data.map((item) => {
const index = item.name.indexOf(searchValue); const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index); const beforeStr = item.name.substr(0, index);
...@@ -127,46 +117,39 @@ class PointLeftTree extends Component { ...@@ -127,46 +117,39 @@ class PointLeftTree extends Component {
); );
if (item.children) { if (item.children) {
return ( return (
<TreeNode <TreeNode
title={ title={
<div> <div>
{item.isRegion? {item.isRegion ?
<span> <span>
{title} {title}
<span className='icon'> <span className='icon'>
{ { item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> : <img src={moduleEditIcon.nobindTip} alt='' /> }
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />: </span>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />: </span> :
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />: <span
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />: draggable
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' /> onDragStart={() => {
} this.props.dragItemChange(item);
</span> }}
</span>: >
<span {title}
draggable={true} <span className='icon'>
onDragStart={() => { {
this.props.dragItemChange(item) this.checkPointIsNoSave(pointType,item) ? <img src={moduleEditIcon.noSaveTip} alt='' /> :
}} item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> :
> <img src={moduleEditIcon.nobindTip} alt='' />
{title} }
<span className='icon'> </span>
{ </span>}
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />: </div>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />: }
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />: key={item.id}
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />: dataRef={item}
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' /> onDragStart={() => {
} this.props.dragItemChange(item);
</span> }}
</span>} >
</div>
}
key={item.id}
dataRef={item}
onDragStart={() => {
this.props.dragItemChange(item)
}}>
{this.renderTreeNodes(item.children)} {this.renderTreeNodes(item.children)}
</TreeNode> </TreeNode>
); );
...@@ -183,56 +166,66 @@ class PointLeftTree extends Component { ...@@ -183,56 +166,66 @@ class PointLeftTree extends Component {
this.setState({ selectedKeys }); this.setState({ selectedKeys });
this.props.selectPointChange(selectItem); 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() { render() {
let { treeData, checkedPointsKeys,pointTypeArr,pointType } = this.state; const { treeData,pointTypeArr } = this.props;
let { pageType } = this.props; const pointType = pointTypeArr[0] ? pointTypeArr[0].code : '';
return ( return (
<div className="leftTree"> <div className="leftTree">
<div className='leftContainer'> <div className='leftContainer'>
<div className='topForm'> <div className='topForm'>
{(pointType!='') && {(pointType !== '') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'> <Select onChange={this.onSelectChange} defaultValue={pointType} value={pointType} className='leftSelect'>
{ {
pointTypeArr.map(item => { pointTypeArr.map((item )=> {
return (<Option className='selectOption' value={item.code} >{item.name}</Option>) 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} /> <Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div> </div>
<div className='treeBox'> <div className='treeBox'>
<Tree <Tree
// checkable selectable
// checkStrictly onExpand={this.onExpand}
selectable={true} expandedKeys={this.state.expandedKeys}
onExpand={this.onExpand} autoExpandParent={this.state.autoExpandParent}
expandedKeys={this.state.expandedKeys} onSelect={this.onTreeSelect}
autoExpandParent={this.state.autoExpandParent} selectedKeys={this.state.selectedKeys}
// onCheck={this.onCheck} blockNode
// checkedKeys={checkedPointsKeys} >
onSelect={this.onTreeSelect} {this.renderTreeNodes(treeData)}
selectedKeys={this.state.selectedKeys} </Tree>
blockNode </div>
> <div className='bottomBtns'>
{this.renderTreeNodes(treeData)} <Button
</Tree> className='sureBtn'
</div> onClick={() => {
<div className='bottomBtns'> this.props.savePointData();
<Button }}
className='sureBtn' />
onClick={() => { <Button
this.props.savePointData() className='deleteBtn'
}} ></Button> onClick={() => {
<Button this.props.deletePointBind();
className='deleteBtn' }}
onClick={() => { />
this.props.deletePointBind()
}} ></Button>
</div>
</div> </div>
</div>
</div> </div>
); );
...@@ -240,8 +233,7 @@ class PointLeftTree extends Component { ...@@ -240,8 +233,7 @@ class PointLeftTree extends Component {
} }
PointLeftTree.propTypes = { PointLeftTree.propTypes = {
subscribe: PropTypes.func, markers: PropTypes.object
trigger: PropTypes.func
}; };
export default PointLeftTree; export default PointLeftTree;
...@@ -4,7 +4,9 @@ import { Connect, Button, Input, Form, Radio } from 'amos-framework'; ...@@ -4,7 +4,9 @@ import { Connect, Button, Input, Form, Radio } from 'amos-framework';
import { PubSub } from 'ray-eventpool'; import { PubSub } from 'ray-eventpool';
import { getPointTreeDetailAction } from '../../services/moduleEditServices'; import { getPointTreeDetailAction } from '../../services/moduleEditServices';
import { eventTopics } from './../consts'; import { eventTopics } from './../consts';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect; const eventConnect = Connect.eventConnect;
const FormItem = Form.Item; const FormItem = Form.Item;
const RadioGroup = Radio.Group; const RadioGroup = Radio.Group;
...@@ -110,31 +112,30 @@ class RightEditPointPanel extends Component { ...@@ -110,31 +112,30 @@ class RightEditPointPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}> <Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'> <div className='topForm'>
<div className='rightTitle'> <div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/> <img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险点信息</span> <span className='titleText'>风险点信息</span>
</div> </div>
<div className='baseMsg'> <div className='baseMsg'>
<div className='moduleTitle'> <div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/> <img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span> <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>
<div className='moduleContent'>
<div className='msgItem'> <div className='msgItem'>
<div className='itemLabel'>风险名称</div>
<FormItem field="name" >
<Input value={detailData.name} disabled/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>参考编号</div> <div className='itemLabel'>参考编号</div>
<FormItem field="code" > <FormItem field="code" >
<Input <Input
onChange={(e) => this.onChange('name', e)} onChange={(e) => this.onChange('name', e)}
value={detailData.code} value={detailData.code}
disabled disabled
/> />
</FormItem> </FormItem>
</div> </div>
<div className='msgItem'> <div className='msgItem'>
<div className='itemLabel'>风险等级</div> <div className='itemLabel'>风险等级</div>
...@@ -143,7 +144,7 @@ class RightEditPointPanel extends Component { ...@@ -143,7 +144,7 @@ class RightEditPointPanel extends Component {
</FormItem> </FormItem>
</div> </div>
</div> </div>
</div> </div>
<div className='3dMsg'> <div className='3dMsg'>
<div className='moduleTitle'> <div className='moduleTitle'>
......
...@@ -2,8 +2,10 @@ import React, { Component } from 'react'; ...@@ -2,8 +2,10 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { Connect, Modal, Tree, Select, Search, Button, Input,InputNumber, Form, Radio } from 'amos-framework'; import { Connect, Modal, Tree, Select, Search, Button, Input,InputNumber, Form, Radio } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf'; 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 eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode; const TreeNode = Tree.TreeNode;
const Option = Select.Option; const Option = Select.Option;
...@@ -87,7 +89,6 @@ class RightEditRegionPanel extends Component { ...@@ -87,7 +89,6 @@ class RightEditRegionPanel extends Component {
this.form.validate((valid, dataValues, errors) => { this.form.validate((valid, dataValues, errors) => {
console.log('返回内容:', dataValues, valid, errors); console.log('返回内容:', dataValues, valid, errors);
if (valid) { if (valid) {
let routePathData=[ { let routePathData=[ {
riskSourceId: detailData.id, riskSourceId: detailData.id,
routePath: JSON.stringify({ routePath: JSON.stringify({
...@@ -104,8 +105,10 @@ class RightEditRegionPanel extends Component { ...@@ -104,8 +105,10 @@ class RightEditRegionPanel extends Component {
}) })
} }
this.props.changeRoutePath(routePathDataNode); this.props.changeRoutePath(routePathDataNode);
this.props.closeRightPanel()
} else { } else {
console.log('error submit!!'); console.log('error submit!!');
this.props.closeRightPanel()
return false; return false;
} }
}); });
...@@ -127,12 +130,12 @@ class RightEditRegionPanel extends Component { ...@@ -127,12 +130,12 @@ class RightEditRegionPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}> <Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'> <div className='topForm'>
<div className='rightTitle'> <div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/> <img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险区域信息</span> <span className='titleText'>风险区域信息</span>
</div> </div>
<div className='baseMsg'> <div className='baseMsg'>
<div className='moduleTitle'> <div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/> <img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span> <span className='titleText'>基本信息</span>
</div> </div>
<div className='moduleContent'> <div className='moduleContent'>
...@@ -164,7 +167,7 @@ class RightEditRegionPanel extends Component { ...@@ -164,7 +167,7 @@ class RightEditRegionPanel extends Component {
<Option value="4">四级</Option> <Option value="4">四级</Option>
<Option value="5">五级</Option> <Option value="5">五级</Option>
</Select> */} </Select> */}
<Input value={detailData.level} disabled/> <Input value={detailData.level} disabled />
</FormItem> </FormItem>
</div> </div>
...@@ -172,7 +175,7 @@ class RightEditRegionPanel extends Component { ...@@ -172,7 +175,7 @@ class RightEditRegionPanel extends Component {
</div> </div>
<div className='3dMsg'> <div className='3dMsg'>
<div className='moduleTitle'> <div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/right3dIcon.png'/> <img src={moduleEditIcon.right3dIcon} alt='' />
<span className='titleText'>三维信息</span> <span className='titleText'>三维信息</span>
</div> </div>
<div className='moduleContent'> <div className='moduleContent'>
......
...@@ -86,8 +86,8 @@ export const FireResourcePoint = marker3DFactory(BasicPoint, ...@@ -86,8 +86,8 @@ export const FireResourcePoint = marker3DFactory(BasicPoint,
markerType: 'fireResource', markerType: 'fireResource',
markerParams: { markerParams: {
useModel: true, useModel: true,
objPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.obj', objPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.obj',
mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.mtl' mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.mtl'
} }
} }
); );
......
...@@ -2,26 +2,42 @@ import React, { Component } from 'react'; ...@@ -2,26 +2,42 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { utils } from 'amos-tool'; import { utils } from 'amos-tool';
import { Markers } from 'amos-3d/lib/designer'; import { Markers } from 'amos-3d/lib/designer';
import { BaseObjHelper } from 'base-r3d/lib/factory';
import formatUrl from 'amos-processor/lib/utils/urlFormat'; import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { CONSTS } from './../../consts/storageConsts'; import { CONSTS } from './../../consts/storageConsts';
import PointDialog from './PointDialog'; import PointDialog from './PointDialog';
import { tirggerPlanTopic } from './../dataProcessor'; import { tirggerPlanTopic } from './../dataProcessor';
import { marker3DIoncMapper, markerTitleBgMapper } from './../../consts/imgStatic'; 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) => { const getIcon = (markerType, level) => {
// return marker3DIoncMapper[`${markerType}_${level}`]; // return marker3DIoncMapper[`${markerType}_${level}`];
if (markerType === 'riskSource' || markerType === 'patrol' || markerType === 'impEquipmentMode') { if (markerType === 'riskSource' || markerType === 'patrol' || markerType === 'impEquipmentMode') {
return marker3DIoncMapper[`${markerType}_${level}`]; 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; const { markerType, markerParams } = options;
class MarkerPoints extends Component { class MarkerPoints extends Component {
static propTypes = { static propTypes = {
// marker 显隐 // marker 显隐
visible: PropTypes.bool, visible: PropTypes.bool,
...@@ -31,6 +47,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -31,6 +47,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
constructor(props) { constructor(props) {
super(props); super(props);
this.markerList = {};
this.markerEvents = { this.markerEvents = {
click: this.onMarkerClick, click: this.onMarkerClick,
// dblclick: this.onMarkerDblClick, // dblclick: this.onMarkerDblClick,
...@@ -63,36 +80,50 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -63,36 +80,50 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
componentWillMount = () => { componentWillMount = () => {
this.setState({ planStarted: this.props.planStarted }); 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 => { componentWillReceiveProps = nextProps => {
if ( nextProps.isEditMode ){ if (nextProps.isEditMode) {
this.markersCache.eachValue(obj=>{ this.markersCache.eachValue(obj => {
// this.setTopCardConf(obj, obj.extData); // 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.setTwinkleConf(obj);
} }
}); });
} }
this.setState({ planStarted: nextProps.planStarted }); this.setState({ planStarted: nextProps.planStarted });
} };
componentWillUnmount() { componentWillUnmount() {
this.objAnchorHelper && this.objAnchorHelper.destroy(); this.objAnchorHelper && this.objAnchorHelper.destroy();
} }
onMarkerDblClick = (marker, e) => { onMarkerDblClick = (marker, e) => {
console.log('marker3DFactory','onMarkerDblClick') console.log('marker3DFactory', 'onMarkerDblClick');
if (this.props.isEditMode) { if (this.props.isEditMode) {
return false; return false;
} }
clearTimeout(this.time); clearTimeout(this.time);
// tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData }); // tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
if (marker.extData.markerType === 'fire' && void 0 !== marker.extData.show) { 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; return;
} }
this.pdRef.tirggerBussines(marker); this.pdRef.tirggerBussines(marker);
} };
onMarkerClick = (marker, e) => { onMarkerClick = (marker, e) => {
const { isClick } = this.state; const { isClick } = this.state;
...@@ -113,16 +144,16 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -113,16 +144,16 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
// 设置延迟事件,3秒后将执行 // 设置延迟事件,3秒后将执行
that.setState({ isClick: true }); // 将isClick设置为true that.setState({ isClick: true }); // 将isClick设置为true
}, 1000); }, 1000);
} };
markerDragend = (marker, evt) => { markerDragend = (marker, evt) => {
if (marker){ if (marker) {
console.log(marker.position); console.log(marker.position);
console.log(marker.extData); console.log(marker.extData);
this.props.addMarker(marker); this.props.addMarker(marker);
} }
} };
markerCreated = ({ markersCache }) => { markerCreated = ({ markersCache }) => {
let { isEditMode,selectKey } =this.props; let { isEditMode, selectKey } = this.props;
this.markersCache = markersCache; this.markersCache = markersCache;
this.stagePilot = this.props.stagePilot; this.stagePilot = this.props.stagePilot;
this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined; this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
...@@ -144,21 +175,22 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -144,21 +175,22 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
obj.baseObjHelper.setOutlineHelper(this.outlineHelper); obj.baseObjHelper.setOutlineHelper(this.outlineHelper);
} }
obj.baseObjHelper.style.outlineColor = color; obj.baseObjHelper.style.outlineColor = color;
pulsePeriod && obj.baseObjHelper.outlineHelper.setConfig({ pulsePeriod &&
pulsePeriod: pulsePeriod.toFixed(2) obj.baseObjHelper.outlineHelper.setConfig({
}); pulsePeriod: pulsePeriod.toFixed(2)
} });
};
setTopCardConf = (obj, extData )=>{ setTopCardConf = (obj, extData )=>{
const { title , name } = extData; const { title , name } = extData;
let cardTitle = null; let cardTitle = null;
console.log(extData) console.log(extData);
obj.baseObjHelper.titleConfig = { obj.baseObjHelper.titleConfig = {
// 顶牌平面参数 // 顶牌平面参数
planeOptions: { planeOptions: {
width: 40, width: 40,
height: 20, height: 20,
position: [0,20,0], position: [0, 20, 0],
doubleSide: true doubleSide: true
}, },
canvasOptions: { canvasOptions: {
...@@ -178,28 +210,29 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -178,28 +210,29 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
cardTitle = name ? name : title; cardTitle = name ? name : title;
// } // }
obj.baseObjHelper.title = cardTitle; obj.baseObjHelper.title = cardTitle;
} };
buildMarkerOptions = (markers, markerType, defaultParams = {}) => { buildMarkerOptions = (markers, markerType, defaultParams = {}) => {
console.log(markers);
const { isEditMode } = this.props; const { isEditMode } = this.props;
if (!utils.isEmpty(markers)){ if (!utils.isEmpty(markers)) {
markers.forEach(m => { markers.forEach(m => {
const url = getIcon(markerType, m.level); const url = getIcon(markerType, m.level);
let position; let position;
if (!utils.isArray(m.position)){ if (!utils.isArray(m.position)) {
position = Object.values(m.position); position = Object.values(m.position);
} }
for (let k of Object.keys(defaultParams)) { 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}` }); m[k] = formatUrl(defaultParams[k], { url: `${markerType}-${m.level}` });
} else if ((markerType === 'riskSource' || markerType === 'patrol' ) && k !== 'useModel' && isEditMode){ } else if ((markerType === 'riskSource' || markerType === 'patrol') && k !== 'useModel' && isEditMode) {
if (markerType === 'riskSource'){ if (markerType === 'riskSource') {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-4` }); m[k] = formatUrl(defaultParams[k], { url: `${markerType}-4` });
} else { } else {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-1` }); m[k] = formatUrl(defaultParams[k], { url: `${markerType}-1` });
} }
} else if (markerType === 'fireResource' && k !== 'useModel') { } else if (markerType === 'fireResource' && k !== 'useModel' && isEditMode && urlMapper[m.type]) {
m[k] = formatUrl(defaultParams[k], { type: `${m.type}` }); m[k] = formatUrl(defaultParams[k], { url: `${urlMapper[m.type].file}` });
} else { } else {
m[k] = defaultParams[k]; m[k] = defaultParams[k];
} }
...@@ -217,21 +250,15 @@ export default function marker3DFactory(WrappedComponent = 'div', options){ ...@@ -217,21 +250,15 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
}; };
render() { render() {
const { markers,isEditMode, ...rest } = this.props; const { markers, isEditMode, ...rest } = this.props;
const { planStarted } = this.state; const { planStarted } = this.state;
let dialogStyle = { zIndex: 1000 }; let dialogStyle = { zIndex: 1000 };
const result = this.buildMarkerOptions(markers, markerType, markerParams); const result = this.buildMarkerOptions(markers, markerType, markerParams);
return ( return (
<WrappedComponent> <WrappedComponent>
<Markers <Markers {...rest} draggable={isEditMode} markers={result} events={this.markerEvents} onCreated={this.markerCreated} />
{...rest} {!planStarted && <PointDialog style={dialogStyle} ref={node => (this.pdRef = node)} />}
draggable={isEditMode}
markers={result}
events={this.markerEvents}
onCreated={this.markerCreated}
/>
{ !planStarted && <PointDialog style={dialogStyle} ref={node => this.pdRef = node} />}
</WrappedComponent> </WrappedComponent>
); );
} }
......
...@@ -10,83 +10,83 @@ import { ...@@ -10,83 +10,83 @@ import {
searchAction, searchAction,
msgAction, msgAction,
exeRecordAction, exeRecordAction,
trajectoryAction,
recordAction recordAction
} from './../../services/3dService'; } from './../../services/3dService';
const { TabList, Tab, TabPanel } = Tabs; const { TabList, Tab, TabPanel } = Tabs;
const MsgType = { protal: '巡检',equiment: '设备', riskAlert: '风险' };
const getColumns = (self,retrieveType) => { const getColumns = (self,retrieveType) => {
switch (retrieveType) { switch (retrieveType) {
case 'riskSource': case 'riskSource':
return [ return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'}, { title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'}, { title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{title: '等级',dataIndex: 'levelStr',key: 'level',width: '25%'}, { title: '等级',dataIndex: 'levelStr',key: 'level',width: '25%' },
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'} { title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
]; ];
case 'patrol': case 'patrol':
return [ return [
{title: '编号',dataIndex: 'code',key: 'code',width: '16.5%'}, { title: '编号',dataIndex: 'code',key: 'code',width: '16.5%' },
{title: '名称',dataIndex: 'label',key: 'label',width: '16.5%'}, { title: '名称',dataIndex: 'label',key: 'label',width: '16.5%' },
{title: '路线',dataIndex: 'routeName',key: 'level',width: '16.5%'}, { title: '路线',dataIndex: 'routeName',key: 'routeName',width: '16.5%' },
{title: '状态',dataIndex: 'title',key: 'level',width: '16.5%'}, { title: '状态',dataIndex: 'title',key: 'title',width: '16.5%' },
{title: '责任人',dataIndex: 'person',key: 'level',width: '16.5%'}, { title: '责任人',dataIndex: 'person',key: 'person',width: '16.5%' },
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '16.5%'} { title: '类别',dataIndex: 'typeName',key: 'typeName',width: '16.5%' }
]; ];
case 'monitorEquipment': case 'monitorEquipment':
return [ return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'}, { title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'}, { title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{title: '监控对象',dataIndex: 'level',key: 'protectObjName',width: '25%'}, { title: '监控对象',dataIndex: 'protectObjName',key: 'protectObjName',width: '25%' },
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'} { title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
] ];
case 'video': case 'video':
return [ return [
{title: '编号',dataIndex: 'code',key: 'code',width: '25%'}, { title: '编号',dataIndex: 'code',key: 'code',width: '25%' },
{title: '名称',dataIndex: 'label',key: 'label',width: '25%'}, { title: '名称',dataIndex: 'label',key: 'label',width: '25%' },
{title: '监控对象',dataIndex: 'level',key: 'protectObjName',width: '25%'}, { title: '监控对象',dataIndex: 'protectObjName',key: 'protectObjName',width: '25%' },
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%'} { title: '类别',dataIndex: 'typeName',key: 'typeName',width: '25%' }
] ];
default: default:
return [ return [
{title: '编号',dataIndex: 'code',key: 'code',width: '33%'}, { title: '编号',dataIndex: 'code',key: 'code',width: '33%' },
{title: '名称',dataIndex: 'label',key: 'label',width: '33%'}, { title: '名称',dataIndex: 'label',key: 'label',width: '33%' },
{title: '类别',dataIndex: 'typeName',key: 'typeName',width: '33%'} { title: '类别',dataIndex: 'typeName',key: 'typeName',width: '33%' }
]; ];
} }
}; };
const getMsgColumns = () => { const getMsgColumns = () => {
return [ return [
{title: '标题',dataIndex: 'title',key: 'title',width: '15%'}, { title: '标题',dataIndex: 'title',key: 'title',width: '15%' },
{title: '类型',dataIndex: 'type',key: 'type',width: '15%'}, { title: '类型',dataIndex: 'type',key: 'type',width: '15%',render: text => MsgType[text] },
{title: '时间',dataIndex: 'timeStr',key: 'timeStr',width: '15%'}, { title: '时间',dataIndex: 'timeStr',key: 'timeStr',width: '15%' },
{title: '内容',dataIndex: 'content',key: 'content',width: '55%'} { title: '内容',dataIndex: 'content',key: 'content',width: '55%' }
] ];
} };
const getRecordColumns = () => { const getRecordColumns = () => {
return [ return [
{title: '名称',dataIndex: 'fire_Equipment_Name',key: 'name',width: '33%'}, { title: '名称',dataIndex: 'fire_Equipment_Name',key: 'name',width: '33%' },
{title: '时间',dataIndex: 'create_time',key: 'create_time',width: '33%'}, { title: '时间',dataIndex: 'create_time',key: 'create_time',width: '33%' },
{title: '重点设备',dataIndex: 'equipment_Name',key: 'equipment_Name',width: '33%'} { title: '重点设备',dataIndex: 'equipment_Name',key: 'equipment_Name',width: '33%' }
] ];
} };
const getTrajectoryColumns = () => { const getTrajectoryColumns = () => {
return [ return [
{title: '巡检人',dataIndex: 'userName',key: 'userName',width: '33%'}, { title: '巡检人',dataIndex: 'userName',key: 'userName',width: '33%' },
{title: '时间',dataIndex: 'checkTime',key: 'checkTime',width: '33%'}, { title: '时间',dataIndex: 'checkTime',key: 'checkTime',width: '33%' },
{title: '轨迹',dataIndex: 'pointName',key: 'pointName',width: '33%'} { title: '轨迹',dataIndex: 'pointName',key: 'pointName',width: '33%' }
] ];
} };
const tabs = [ const tabs = [
{ id: '1', key: 'search', closable: false, title: '检索' }, { id: '1', key: 'search', closable: false, title: '检索' },
{ id: '2', key: 'message', closable: false, title: '消息' }, { id: '2', key: 'message', closable: false, title: '消息' },
{ id: '3', key: 'record', 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 { class SearchPane extends Component {
...@@ -110,69 +110,64 @@ class SearchPane extends Component { ...@@ -110,69 +110,64 @@ class SearchPane extends Component {
} }
componentDidMount() { componentDidMount() {
const { type } = this.props;
const { activeKey } = this.state;
this.fetchRetrieveData(); 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) =>{ onTabClick = (value) =>{
this.pageConfig.current = 0; this.pageConfig.current = 0;
if(value === 'search'){ if (value === 'search'){
this.fetchRetrieveData(); this.fetchRetrieveData();
}else if(value === 'message'){ } else if (value === 'message'){
this.fetchMsgData(); this.fetchMsgData();
}else if(value === 'record'){ } else if (value === 'record'){
this.fetchRecordData(); this.fetchRecordData();
}else if(value === 'trajectory'){ } else if (value === 'trajectory'){
this.fetchTrajectoryData() 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 = () => { getPanelHeight = () => {
return 700; return 700;
}; };
setPageConfig = ({ pageSize, current }) => {
if (pageSize !== undefined) {
this.pageConfig.pageSize = pageSize;
}
if (current !== undefined) {
this.pageConfig.current = current - 1;
}
};
//轨迹 //轨迹
fetchTrajectoryData = () => { fetchTrajectoryData = () => {
const { filter } = this.state; const { filter } = this.state;
recordAction(filter, this.pageConfig.current, this.pageConfig.pageSize).then(d => { 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 = () => { fetchRecordData = () => {
const { filter } = this.state; const { filter } = this.state;
exeRecordAction(filter, this.pageConfig.current, this.pageConfig.pageSize).then(d => { 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 { ...@@ -189,7 +184,7 @@ class SearchPane extends Component {
} }
}); });
msgAction(searchParam, this.pageConfig.current, this.pageConfig.pageSize).then(d => { 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 { ...@@ -205,7 +200,7 @@ class SearchPane extends Component {
( filter || [] ).forEach((item, i) => { ( filter || [] ).forEach((item, i) => {
if (item.name === 'type') { if (item.name === 'type') {
type = item.value; type = item.value;
this.setState({ retrieveType: type }) this.setState({ retrieveType: type });
} else if (item.name === 'dataLevel') { } else if (item.name === 'dataLevel') {
dataLevel = item.value; dataLevel = item.value;
} else if (item.name === 'nodeState') { } else if (item.name === 'nodeState') {
...@@ -222,48 +217,61 @@ class SearchPane extends Component { ...@@ -222,48 +217,61 @@ class SearchPane extends Component {
searchAction(inputText, dataLevel, orgCode, nodeState, protectObjName, routeName, type, this.pageConfig.current, this.pageConfig.pageSize).then(d => { searchAction(inputText, dataLevel, orgCode, nodeState, protectObjName, routeName, type, this.pageConfig.current, this.pageConfig.pageSize).then(d => {
this.setState({ this.setState({
dataList: d.content , dataList: d.content ,
totalCount: d.totalElements, totalCount: d.totalElements
}) });
}); });
} }
setPageConfig = ({ pageSize, current }) => { /**
if (pageSize !== undefined) { * 获取表格刷新方法
this.pageConfig.pageSize = pageSize; */
} reload = r => {
if (current !== undefined) { this.setState(
this.pageConfig.current = current - 1; {
} reload: () => {
r();
this.setState({ selectedRows: [], selectedRowKeys: [] });
}
},
r()
);
}; };
onRetrieveRowDoubleClick = (record) => { paramsOnChange = (filter) => {
// 更新视图数据 const { activeKey } = this.state;
let views = new Array(); if (activeKey === 'search'){
if(record.position){ this.setState({ filter },this.fetchRetrieveData);
record.id = record.id.replace( record.type + '-' ,'' ); } else if (activeKey === 'message'){
views.push(record); this.setState({ filter },this.fetchMsgData);
let args = { } else if (activeKey === 'record'){
target: views, this.setState({ filter },this.fetchRecordData);
operateType: operateTypes.POINT_SEARCH } else if (activeKey === 'trajectory'){
}; this.setState({ filter },this.fetchTrajectoryData);
update3DViewData(args);
this.props.focusPosition(this.toCameraPosition(record.position));
}else{
message.danger('坐标未绑定!!!');
} }
} }
toCameraPosition = (item) => { 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() { render() {
const { dataList,activeKey,retrieveType,totalCount,msgDataList,recordDataList,trajectoryDataList } = this.state; const { dataList,activeKey,retrieveType,totalCount,msgDataList,recordDataList,trajectoryDataList } = this.state;
return ( return (
<div> <div>
{ this.props.visible && <div className="search-pane-bg"/> } { this.props.visible && <div className="search-pane-bg" /> }
{ this.props.visible && <SidePane className="search-pane"> { 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" /> <Icon icon="close" />
</div> </div>
<Tabs <Tabs
...@@ -276,23 +284,23 @@ class SearchPane extends Component { ...@@ -276,23 +284,23 @@ class SearchPane extends Component {
<Tab key={item.key} activeKey={item.key} closable={item.closable}>{item.title}</Tab>) <Tab key={item.key} activeKey={item.key} closable={item.closable}>{item.title}</Tab>)
)} )}
</TabList> </TabList>
<ParamsHeader paramsOnChange={this.paramsOnChange} activeKey={activeKey}/> <ParamsHeader paramsOnChange={this.paramsOnChange} activeKey={activeKey} />
<TabPanel activeKey="search"> <TabPanel activeKey="search">
{/* <div className="search-pane-table"> */} {/* <div className="search-pane-table"> */}
<AmosGridTable <AmosGridTable
rowKey="id" rowKey="id"
columns={getColumns(this,retrieveType)} columns={getColumns(this,retrieveType)}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {true} isPageable
setPageConfig={this.setPageConfig} setPageConfig={this.setPageConfig}
isChecked = {false} isChecked={false}
// getPanelHeight={this.getPanelHeight} // getPanelHeight={this.getPanelHeight}
dataList={dataList} dataList={dataList}
totals={totalCount} totals={totalCount}
onRowDoubleClick={this.onRetrieveRowDoubleClick} onRowDoubleClick={this.onRetrieveRowDoubleClick}
getTableDataAction={this.fetchRetrieveData} getTableDataAction={this.fetchRetrieveData}
/> />
{/* </div> */} {/* </div> */}
</TabPanel> </TabPanel>
<TabPanel activeKey="message"> <TabPanel activeKey="message">
...@@ -300,9 +308,9 @@ class SearchPane extends Component { ...@@ -300,9 +308,9 @@ class SearchPane extends Component {
columns={getMsgColumns()} columns={getMsgColumns()}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {true} isPageable
setPageConfig={this.setPageConfig} setPageConfig={this.setPageConfig}
isChecked = {false} isChecked={false}
dataList={msgDataList} dataList={msgDataList}
totals={totalCount} totals={totalCount}
getTableDataAction={this.fetchMsgData} getTableDataAction={this.fetchMsgData}
...@@ -313,9 +321,9 @@ class SearchPane extends Component { ...@@ -313,9 +321,9 @@ class SearchPane extends Component {
columns={getRecordColumns()} columns={getRecordColumns()}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {true} isPageable
setPageConfig={this.setPageConfig} setPageConfig={this.setPageConfig}
isChecked = {false} isChecked={false}
dataList={recordDataList} dataList={recordDataList}
totals={totalCount} totals={totalCount}
getTableDataAction={this.fetchRecordData} getTableDataAction={this.fetchRecordData}
...@@ -326,9 +334,9 @@ class SearchPane extends Component { ...@@ -326,9 +334,9 @@ class SearchPane extends Component {
columns={getTrajectoryColumns()} columns={getTrajectoryColumns()}
getTableDataAction={()=>{}} getTableDataAction={()=>{}}
callBack={this.reload} callBack={this.reload}
isPageable = {true} isPageable
setPageConfig={this.setPageConfig} setPageConfig={this.setPageConfig}
isChecked = {false} isChecked={false}
dataList={trajectoryDataList} dataList={trajectoryDataList}
totals={totalCount} totals={totalCount}
getTableDataAction={this.fetchTrajectoryData} getTableDataAction={this.fetchTrajectoryData}
...@@ -342,6 +350,9 @@ class SearchPane extends Component { ...@@ -342,6 +350,9 @@ class SearchPane extends Component {
} }
SearchPane.propTypes = { SearchPane.propTypes = {
focusPosition: PropTypes.func,
visible: PropTypes.bool,
changeSearchPaneVisible: PropTypes.func
}; };
export default SearchPane; export default SearchPane;
...@@ -4,7 +4,7 @@ import { Button, Input, Select, Group } from 'amos-framework'; ...@@ -4,7 +4,7 @@ import { Button, Input, Select, Group } from 'amos-framework';
import { SingleQueryEnum } from 'amos-processor/lib/config/queryEnum'; import { SingleQueryEnum } from 'amos-processor/lib/config/queryEnum';
import { trim } from 'amos-tool'; import { trim } from 'amos-tool';
import { DatePicker } from 'amos-antd'; import { DatePicker } from 'amos-antd';
import moment from "moment"; import moment from 'moment';
import imgStatic from './../../consts/imgStatic'; import imgStatic from './../../consts/imgStatic';
import { import {
getImpEquipmentAction, getImpEquipmentAction,
...@@ -14,12 +14,11 @@ import { bizControlsTypes, riskSourceLevel } from './../conf'; ...@@ -14,12 +14,11 @@ import { bizControlsTypes, riskSourceLevel } from './../conf';
const Option = Select.Option; 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 groupStyle = { display: 'unset', width: '100%' };
const selectStyle = { width: '25%', minWidth: '20%', marginRight:'14px' }; const selectStyle = { width: '25%', minWidth: '20%', marginRight: '14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' }; const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' }; const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const enterkey = 13;
/** /**
* *
* @class paramsHeader * @class paramsHeader
...@@ -45,7 +44,7 @@ class paramsHeader extends Component { ...@@ -45,7 +44,7 @@ class paramsHeader extends Component {
impEquiList: [], impEquiList: [],
filter: [], filter: [],
recordFilter: [], recordFilter: [],
statusList: [], statusList: []
}; };
} }
...@@ -61,10 +60,10 @@ class paramsHeader extends Component { ...@@ -61,10 +60,10 @@ class paramsHeader extends Component {
msgTextValue: undefined, msgTextValue: undefined,
recordTextValue: undefined, recordTextValue: undefined,
filter: [], filter: [],
recordFilter: [], recordFilter: []
}) });
} }
} }
onChange = (e) => { onChange = (e) => {
this.setState({ value: e.target.value }); this.setState({ value: e.target.value });
...@@ -74,9 +73,9 @@ class paramsHeader extends Component { ...@@ -74,9 +73,9 @@ class paramsHeader extends Component {
let showRiskLevel = false; let showRiskLevel = false;
let showImpEquiList = false; let showImpEquiList = false;
if(value === 'riskSource'){ if (value === 'riskSource'){
showRiskLevel = true; showRiskLevel = true;
}else if(value === 'monitorEquipment'){ } else if (value === 'monitorEquipment'){
showImpEquiList = true; showImpEquiList = true;
} }
this.setState({ showRiskLevel, showImpEquiList }); this.setState({ showRiskLevel, showImpEquiList });
...@@ -85,8 +84,8 @@ class paramsHeader extends Component { ...@@ -85,8 +84,8 @@ class paramsHeader extends Component {
onPamarmsChange = (name,value) => { onPamarmsChange = (name,value) => {
let { filter } = this.state; let { filter } = this.state;
if(name === 'time'){ if (name === 'time'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD"); value = value == null ? '' : moment(value).format('YYYY-MM-DD');
} }
if (value) { if (value) {
const flag = filter.some(e => { const flag = filter.some(e => {
...@@ -99,19 +98,19 @@ class paramsHeader extends Component { ...@@ -99,19 +98,19 @@ class paramsHeader extends Component {
} else { } else {
filter = filter.filter(e => e.name !== name); filter = filter.filter(e => e.name !== name);
} }
if(name === 'inputText'){ if (name === 'inputText'){
this.setState({ textValue: value,filter }); this.setState({ textValue: value,filter });
}else if(name === 'title'){ } else if (name === 'title'){
this.setState({ msgTextValue: value,filter }); this.setState({ msgTextValue: value,filter });
}else{ } else {
this.setState({ filter }, this.props.paramsOnChange(filter)); this.setState({ filter }, this.props.paramsOnChange(filter));
} }
} }
paramsTypeonChange = (name,value,type,key) => { paramsTypeonChange = (name,value,type,key) => {
let {recordFilter} = this.state; let { recordFilter } = this.state;
if(name === 'checkTime'){ if (name === 'checkTime'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD"); value = value == null ? '' : moment(value).format('YYYY-MM-DD');
} }
if (value) { if (value) {
const flag = recordFilter.some(e => { const flag = recordFilter.some(e => {
...@@ -125,16 +124,15 @@ class paramsHeader extends Component { ...@@ -125,16 +124,15 @@ class paramsHeader extends Component {
} else { } else {
recordFilter = recordFilter.filter(e => e.name !== name); recordFilter = recordFilter.filter(e => e.name !== name);
} }
debugger; if (name === 'contingencyName'){
if(name === 'contingencyName'){ this.setState({ recordTextValue: value,recordFilter });
this.setState({recordTextValue:value,recordFilter}) } else if (name === 'pointName'){
}else if(name === 'pointName'){ if (key === 'record'){
if(key === 'record'){ this.setState({ recordTextValue: value,recordFilter });
this.setState({ recordTextValue:value,recordFilter }); } else {
}else{
this.setState({ trajectoryTextValue: value,recordFilter }); this.setState({ trajectoryTextValue: value,recordFilter });
} }
}else{//不为input时直接查询 } else {//不为input时直接查询
this.setState({ recordFilter }, this.props.paramsOnChange(recordFilter)); this.setState({ recordFilter }, this.props.paramsOnChange(recordFilter));
} }
} }
...@@ -142,8 +140,8 @@ class paramsHeader extends Component { ...@@ -142,8 +140,8 @@ class paramsHeader extends Component {
//检索 //检索
getSearchContent = () => { getSearchContent = () => {
const { showRiskLevel, showImpEquiList, impEquiList,filter } = this.state; const { showRiskLevel, showImpEquiList, impEquiList,filter } = this.state;
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight:'14px' }; let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight: '14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight:'14px' }; let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight: '14px' };
return (<Group style={groupStyle}> return (<Group style={groupStyle}>
<Select <Select
key="searchType" key="searchType"
...@@ -160,7 +158,7 @@ class paramsHeader extends Component { ...@@ -160,7 +158,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('inputText',e.target.value)} onChange={(e) => this.onPamarmsChange('inputText',e.target.value)}
placeholder="输入关键字" 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> </div>
{ {
showRiskLevel && showRiskLevel &&
...@@ -171,7 +169,7 @@ class paramsHeader extends Component { ...@@ -171,7 +169,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.key} value={item.key}>{item.label}</Option>} renderOption={item => <Option className='modalSelectOption' key={item.key} value={item.key}>{item.label}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>} defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('dataLevel',v)} onChange={(v) => this.onPamarmsChange('dataLevel',v)}
/> />
} }
{ {
showImpEquiList && showImpEquiList &&
...@@ -182,7 +180,7 @@ class paramsHeader extends Component { ...@@ -182,7 +180,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.name} value={item.name}>{item.name}</Option>} renderOption={item => <Option className='modalSelectOption' key={item.name} value={item.name}>{item.name}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>} defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('impEquipment',v)} onChange={(v) => this.onPamarmsChange('impEquipment',v)}
/> />
} }
</Group>); </Group>);
...@@ -207,7 +205,7 @@ class paramsHeader extends Component { ...@@ -207,7 +205,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('title',e.target.value)} onChange={(e) => this.onPamarmsChange('title',e.target.value)}
placeholder="输入关键字" 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> </div>
<DatePicker <DatePicker
key="time" key="time"
...@@ -216,7 +214,7 @@ class paramsHeader extends Component { ...@@ -216,7 +214,7 @@ class paramsHeader extends Component {
placeholder="时间" placeholder="时间"
format="YYYY/MM/DD" format="YYYY/MM/DD"
onChange={(v) => this.onPamarmsChange('time',v)} onChange={(v) => this.onPamarmsChange('time',v)}
/> />
</Group>); </Group>);
...@@ -230,7 +228,7 @@ class paramsHeader extends Component { ...@@ -230,7 +228,7 @@ class paramsHeader extends Component {
key="recordImpl" key="recordImpl"
style={selectStyle} style={selectStyle}
data={impEquiList} 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>} defaultOption={<Option>重点设备</Option>}
onChange={(v) => this.paramsTypeonChange('equipmentId', v , SingleQueryEnum.EQUAL)} onChange={(v) => this.paramsTypeonChange('equipmentId', v , SingleQueryEnum.EQUAL)}
/> />
...@@ -241,7 +239,7 @@ class paramsHeader extends Component { ...@@ -241,7 +239,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('contingencyName', e.target.value, SingleQueryEnum.LIKE,'record')} onChange={(e) => this.paramsTypeonChange('contingencyName', e.target.value, SingleQueryEnum.LIKE,'record')}
placeholder="输入关键字" 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> </div>
<DatePicker <DatePicker
key="createTime" key="createTime"
...@@ -250,7 +248,7 @@ class paramsHeader extends Component { ...@@ -250,7 +248,7 @@ class paramsHeader extends Component {
placeholder="时间" placeholder="时间"
format="YYYY/MM/DD" format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('createTime', v, SingleQueryEnum.EQUAL)} onChange={(v) => this.paramsTypeonChange('createTime', v, SingleQueryEnum.EQUAL)}
/> />
</Group>); </Group>);
} }
...@@ -273,7 +271,7 @@ class paramsHeader extends Component { ...@@ -273,7 +271,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('pointName', e.target.value, SingleQueryEnum.LIKE)} onChange={(e) => this.paramsTypeonChange('pointName', e.target.value, SingleQueryEnum.LIKE)}
placeholder="输入关键字" 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> </div>
<DatePicker <DatePicker
key="createTime" key="createTime"
...@@ -282,19 +280,19 @@ class paramsHeader extends Component { ...@@ -282,19 +280,19 @@ class paramsHeader extends Component {
placeholder="时间" placeholder="时间"
format="YYYY/MM/DD" format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('beginDate', v, SingleQueryEnum.EQUAL)} onChange={(v) => this.paramsTypeonChange('beginDate', v, SingleQueryEnum.EQUAL)}
/> />
</Group>); </Group>);
} }
getContent = () =>{ getContent = () =>{
const { activeKey } = this.props; const { activeKey } = this.props;
if(activeKey === 'search'){ if (activeKey === 'search'){
return this.getSearchContent(); return this.getSearchContent();
}else if(activeKey === 'message'){ } else if (activeKey === 'message'){
return this.getMessageContent(); return this.getMessageContent();
}else if(activeKey === 'record'){ } else if (activeKey === 'record'){
return this.getRecordContent(); return this.getRecordContent();
}else{ } else {
return this.getTrajectoryContent(); return this.getTrajectoryContent();
} }
} }
......
...@@ -3,8 +3,7 @@ import PropTypes from 'prop-types'; ...@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
import { SidePane } from 'amos-framework'; import { SidePane } from 'amos-framework';
import { Store } from 'amos-tool'; import { Store } from 'amos-tool';
import BizControlPane from './BizControlPane'; import BizControlPane from './BizControlPane';
import InnateControlPane from './InnateControlPane'; import { bizControls, pMonitorControls } from './../conf';
import { viewController, bizControls, pMonitorControls } from './../conf';
const loginUserName = Store.lsTool.read('userName'); const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2']; const filterUser = ['tianbo', 'opera1', 'opera2'];
...@@ -54,7 +53,7 @@ class SideControl extends Component { ...@@ -54,7 +53,7 @@ class SideControl extends Component {
}; };
render() { render() {
const { layerConfig, animationProps, activeAction } = this.props; const { animationProps, activeAction } = this.props;
let _bizControls = activeAction === 'panoramic' ? bizControls : pMonitorControls; let _bizControls = activeAction === 'panoramic' ? bizControls : pMonitorControls;
if (filterUser.includes(loginUserName)) { if (filterUser.includes(loginUserName)) {
let target = _bizControls.find(item => item.key === 'fireResource-point'); let target = _bizControls.find(item => item.key === 'fireResource-point');
......
# 说明
## 换流站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