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

冲突

parents 1e9a0b7c fb3f65bf
......@@ -25,6 +25,15 @@ export default {
check_louyan: require('../assets/panoramic/main_icon_tag_louyan.png'),
check_weizhixing: require('../assets/panoramic/main_icon_tag_weizhixing.png')
},
moduleEditIcon: {
editBtn: require('../assets/convertor/moduleEdit/editBtn.png'),
bindedTip: require('../assets/convertor/moduleEdit/bindedTip.png'),
noSaveTip: require('../assets/convertor/moduleEdit/noSaveTip.png'),
nobindTip: require('../assets/convertor/moduleEdit/nobindTip.png'),
rightModalTitleIcon: require('../assets/convertor/moduleEdit/rightModalTitleIcon.png'),
rightBaseMsgIcon: require('../assets/convertor/moduleEdit/rightBaseMsgIcon.png'),
right3dIcon: require('../assets/convertor/moduleEdit/right3dIcon.png')
},
contorls: {
riskPoint: require('../assets/convertor/3dview/risk-point.png'),
videoPoint: require('../assets/convertor/3dview/video-point.png'),
......@@ -58,7 +67,7 @@ export default {
search: require('../assets/convertor/3dview/datapanel/search.png'),
smilingFace: require('../assets/convertor/3dview/datapanel/smilingFace.png'),
user: require('../assets/convertor/3dview/datapanel/user.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png'),
searchPane: require('../assets/convertor/3dview/actionbars/chaxun.png')
},
markers: {
riskSource_0: require('../assets/convertor/3dview/markers/risk-0.png'),
......@@ -204,26 +213,26 @@ export const marker3DIoncMapper = {
riskSource_3: require('../assets/convertor/3dview/markers/risk-3.png'),
riskSource_4: require('../assets/convertor/3dview/markers/risk-4.png'),
riskSource_5: require('../assets/convertor/3dview/markers/risk-5.png'),
risk_0: '/mods/components/3dviewConvertor/threeres/markers/risk-0.png',
risk_1: '/mods/components/3dviewConvertor/threeres/markers/risk-1.png',
risk_2: '/mods/components/3dviewConvertor/threeres/markers/risk-2.png',
risk_3: '/mods/components/3dviewConvertor/threeres/markers/risk-3.png',
risk_4: '/mods/components/3dviewConvertor/threeres/markers/risk-4.png',
risk_5: '/mods/components/3dviewConvertor/threeres/markers/risk-5.png',
risk_0: require('../threeres/markers/risk-0.png'),
risk_1: require('../threeres/markers/risk-1.png'),
risk_2: require('../threeres/markers/risk-2.png'),
risk_3: require('../threeres/markers/risk-3.png'),
risk_4: require('../threeres/markers/risk-4.png'),
risk_5: require('../threeres/markers/risk-5.png'),
patrol_1: '/mods/components/3dviewConvertor/threeres/markers/patrol-1.png',
patrol_2: '/mods/components/3dviewConvertor/threeres/markers/patrol-2.png',
patrol_3: '/mods/components/3dviewConvertor/threeres/markers/patrol-3.png',
patrol_4: '/mods/components/3dviewConvertor/threeres/markers/patrol-4.png',
patrol_5: '/mods/components/3dviewConvertor/threeres/markers/patrol-5.png',
patrol_1: require('../threeres/markers/patrol-1.png'),
patrol_2: require('../threeres/markers/patrol-2.png'),
patrol_3: require('../threeres/markers/patrol-3.png'),
patrol_4: require('../threeres/markers/patrol-4.png'),
patrol_5: require('../threeres/markers/patrol-5.png'),
person_0: '/mods/components/3dviewConvertor/threeres/markers/person-0.png',
person_0: require('../threeres/markers/person-0.png'),
data_0: '/mods/components/3dviewConvertor/threeres/markers/data-0.png',
data_1: '/mods/components/3dviewConvertor/threeres/markers/data-1.png',
data_0: require('../threeres/markers/data-0.png'),
data_1: require('../threeres/markers/data-1.png'),
croom_0: '/mods/components/3dviewConvertor/threeres/markers/croom-0.png',
croom_1: '/mods/components/3dviewConvertor/threeres/markers/croom-1.png',
croom_0: require('../threeres/markers/croom-0.png'),
croom_1: require('../threeres/markers/croom-1.png'),
//重点设备模式
impEquipmentMode_monitorEquipment: require('../assets/convertor/3dview/markers/IeqMode-monitorEquipment.png'),
......@@ -231,24 +240,24 @@ export const marker3DIoncMapper = {
impEquipmentMode_hydrant: require('../assets/convertor/3dview/markers/IeqMode-hydrant.png'),
impEquipmentMode_pool: require('../assets/convertor/3dview/markers/IeqMode-pool.png'),//
impEquipmentMode_fireChamber: require('../assets/convertor/3dview/markers/IeqMode-fireChamber.png'),//
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png'),
impEquipmentMode_fireCar: require('../assets/convertor/3dview/markers/IeqMode-fireCar.png')
};
export const safetyIndexIconMapper = {
allEror: '/mods/components/3dviewConvertor/threeres/markers/exception_all.png',
faultEror: '/mods/components/3dviewConvertor/threeres/markers/exception_fault.png',
riskEror: '/mods/components/3dviewConvertor/threeres/markers/exception_risk.png',
allEror: require('../threeres/markers/exception_all.png'),
faultEror: require('../threeres/markers/exception_fault.png'),
riskEror: require('../threeres/markers/exception_risk.png'),
transparent_rpn: require('./../threeres/markers/transparent_rpn.png')
};
export const markerTitleBgMapper = {
base: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/markerTitle.png'
base: require('../assets/convertor/3dview/markers/markerTitle.png')
};
export const equipStatusIconMapper = {
equip_false: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-0.png',
equip_true: '/mods/components/3dviewConvertor/assets/convertor/3dview/markers/pa-1.png'
equip_false: require('../assets/convertor/3dview/markers/pa-0.png'),
equip_true: require('../assets/convertor/3dview/markers/pa-1.png')
};
......@@ -3,6 +3,8 @@ import * as helper from 'base-r3d/lib/utils/helper';
import { FscSerUrl, FasSerUrl } from './../consts/urlConsts';
import { commonGet, commonPost, singleFetch } from './../utils/request';
import { encodeUrl } from 'amos-tool';
//---------------- 加载模型、解析模型json -----------
export const getObjFromNet = (url, callback) => {
return singleFetch(url).then(data => {
......@@ -10,10 +12,15 @@ export const getObjFromNet = (url, callback) => {
// 临时将 asyncModels 也放在主线程
const { basePath, asyncModels = [] } = data;
const _asyncModels = asyncModels.map(m => ({
basePath,
...m
}));
const _asyncModels = asyncModels.map(m => {
const { objName, mtlName, ...rest } = m;
return {
basePath,
...rest,
objName: encodeUrl(objName),
mtlName: encodeUrl(mtlName)
};
});
// const _objs = objs.concat(_asyncModels);
callback(objs, _asyncModels);
......
.action-pane-data{
.action-pane-data {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
.action-list {
height: 40px;
padding: 0 1rem;
border-radius: 6px;
background:rgba(216,216,216,0.24);
border:1px solid rgba(146,149,151,1);
.action-list {
height: 40px;
padding: 0 1rem;
background-color: rgba(216, 216, 216, 0.24);
border: 1px solid rgba(146, 149, 151, 1);
border-radius: 6px;
.action-item{
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer ;
border:1px solid rgba(146,149,151,1);
.action-item {
float: left;
width: 40px;
height: 38px;
text-align: center;
cursor: pointer;
border: 1px solid rgba(146, 149, 151, 1);
.action-item-title{
color: #e0e0e0;
position: absolute;
top: -20px;
white-space: nowrap;
width: 51px;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.80);
text-align: center;
}
.action-item-title {
position: absolute;
top: -20px;
width: 51px;
color: #e0e0e0;
text-align: center;
white-space: nowrap;
-webkit-transform-origin-x: 0;
-webkit-transform: scale(0.8);
}
.action-item-content{
text-align: center;
position: relative;
width: 100%;
height: 100%;
.action-item-content {
position: relative;
width: 100%;
height: 100%;
text-align: center;
.action-item-icon{
margin: 8px;
width: 21px;
height: 21px;
position: relative;
}
}
.action-item-icon {
position: relative;
width: 21px;
height: 21px;
margin: 8px;
}
}
}
.action-active{
background: linear-gradient(180deg,rgba(0,96,154,0.8) 0%,rgba(0,54,105,0.5) 100%);
}
.action-active {
background: linear-gradient(180deg, rgba(0, 96, 154, 0.8) 0%, rgba(0, 54, 105, 0.5) 100%);
}
}
}
......@@ -97,7 +97,7 @@
// border-radius: $core-border-radius;
// box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
// box-sizing: border-box;
background-image: url('/mods/components/3dviewConvertor/assets/convertor/3dview/dialogbg.png');
background-image: url('../assets/convertor/3dview/dialogbg.png');
background-color: rgba(25, 86, 147, 0.5);
.body-min-header {
......
......@@ -3,7 +3,7 @@
width: 216px !important;
height: 100% !important;
padding: 0px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%;
background-repeat: round;
position: relative;
......@@ -108,7 +108,7 @@
.carImg {
width: 35px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
}
.carHead {
......@@ -131,7 +131,7 @@
width: 81px !important;
margin-left: 5px !important;
font-size: 5px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important;
line-height: 27px !important;
}
......@@ -147,7 +147,7 @@
margin-left: 0px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%;
background-repeat: round;
}
......@@ -156,7 +156,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -165,7 +165,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -174,7 +174,7 @@
margin-left: 3px;
height: 25px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -436,7 +436,7 @@
width: 316px !important;
height: 100% !important;
padding: 0px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/detail-info.png') no-repeat;
background-size: 100%;
background-repeat: round;
position: relative;
......@@ -534,7 +534,7 @@
.carImg {
width: 59px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/car.png') no-repeat top;
background: url('../assets/convertor/3dview/plan/car.png') no-repeat top;
}
.carHead {
......@@ -557,7 +557,7 @@
width: 81px !important;
margin-left: 45px !important;
font-size: 13px !important;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/post.png');
background-image: url('../assets/convertor/3dview/plan/post.png');
text-align: center !important;
line-height: 27px !important;
}
......@@ -571,7 +571,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/plan/detail-title.png');
background-image: url('../assets/convertor/3dview/plan/detail-title.png');
background-size: 100%;
background-repeat: round;
}
......@@ -580,7 +580,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/zhuyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/zhuyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -589,7 +589,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jianyibar.png');
background-image: url('../assets/convertor/3dview/prePlan/jianyibar.png');
background-size: 100%;
background-repeat: round;
}
......@@ -598,7 +598,7 @@
margin-left: 5px;
height: 35px;
color: white;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jinggaobar.png');
background-image: url('../assets/convertor/3dview/prePlan/jinggaobar.png');
background-size: 100%;
background-repeat: round;
}
......
......@@ -48,7 +48,7 @@
.carousel-img {
width: 100%;
height: 100%;
padding: 5px
padding: 5px;
}
.carousel-indicators {
......@@ -138,9 +138,7 @@
float: left;
width: 131px;//9.84%;
height: 40px;
//background: $biz-table-title-color;//#333;
background: rgba(25, 86, 147, 1);
// border-left: 1px solid $core-border-color;
box-sizing: border-box;
flex: 1;
}
......@@ -159,7 +157,7 @@
width: 100%;
height: 100%;
.amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/toolmodalbg.png');
background-image: url('../assets/convertor/3dview/toolmodalbg.png');
background-repeat: no-repeat;
height:262px;
width: 452px !important;
......@@ -225,7 +223,7 @@
height: 8px;
}
::-webkit-scrollbar-thumb { /* 拖动条 */
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollslider.png') ;
background-image: url('../assets/convertor/3dview/scrollslider.png') ;
background-repeat: no-repeat;
height: 10px;
}
......@@ -233,13 +231,13 @@
background-color:rgba(17, 44, 88, 0.2);
}
::-webkit-scrollbar-button{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/scrollbutton.png') ;
background-image: url('../assets/convertor/3dview/scrollbutton.png') ;
background-repeat: no-repeat;
}
height:100%;
.amos-modal-container{
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/modalbg.png');
background-image: url('../assets/convertor/3dview/modalbg.png');
height:497px;
width: 866px !important;
background-color: rgba(255,255,255,0);
......
......@@ -59,22 +59,22 @@
width: 260px;
height: 206px;
padding: 20px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
.step-trace {
height: 144px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/step-trace.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/step-trace.png') no-repeat;
.next-step {
width: 24px;
height: 24px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu-xiayibu.png') no-repeat;
}
.previous-step {
width: 24px;
height: 24px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu-dangqianbu.png') no-repeat;
}
}
......@@ -130,7 +130,7 @@
width: 840px;
height: 60px;
margin: 0 auto;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/dingbu.png');
background-image: url('../assets/convertor/3dview/prePlan/dingbu.png');
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -155,7 +155,7 @@
height: 30px;
margin: 0 auto;
margin-top: 10px;
background-image: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/baojing.png');
background-image: url('../assets/convertor/3dview/prePlan/baojing.png');
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -179,7 +179,7 @@
height: 60px;
margin-bottom: 7px;
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu.png');
.text-icon {
width: 36px;
......@@ -200,7 +200,7 @@
.text-icon {
// flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shijian.png');
background-repeat: no-repeat;
}
......@@ -214,7 +214,7 @@
.text-icon {
// flex: 1 0 16%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-repeat: no-repeat;
}
......@@ -228,7 +228,7 @@
.text-icon {
// flex: 1 0 8%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-repeat: no-repeat;
}
......@@ -243,7 +243,7 @@
.text-icon {
// flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-gongshu.png');
background-repeat: no-repeat;
}
......@@ -257,7 +257,7 @@
.text-icon {
// flex: 1 0 7%;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-paomo.png');
background-repeat: no-repeat;
}
......@@ -279,7 +279,7 @@
.amos-modal-confirm-confirm {
.amos-modal-container {
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/tishitanchuang.png') no-repeat;
background-size: 100% 100%;
box-shadow: unset;
......@@ -305,7 +305,7 @@
.amos-btn {
width: 95px;
height: 44px;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-cheng-chang.png') no-repeat;
background-size: 100% 100%;
border: 0;
}
......@@ -315,7 +315,7 @@
height: 40px;
margin-top: -5px;
color: white;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/jiaohuqu-2anniu-lan-chang.png') no-repeat;
border: 0;
}
}
......@@ -455,7 +455,7 @@
.precontrol-water-view {
width: 260px;
text-align: center;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background: url('../assets/convertor/3dview/prePlan/buzhouqu.png') no-repeat;
background-size: 100% 100%;
padding-bottom: 10px;
padding-top: 10px;
......@@ -494,7 +494,7 @@
height: 20px;
width: 20px;
float: left;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuiwei.png');
background-size: cover;
// background-repeat: no-repeat;
}
......@@ -503,7 +503,7 @@
height: 17px;
width: 20px;
float: left;
background: url('/mods/components/3dviewconvertor/assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background: url('../assets/convertor/3dview/prePlan/shujuqu-shuichi.png');
background-size: cover;
}
}
......
......@@ -4,7 +4,7 @@
bottom: 20px;
width: 460px;
height: 600px;
background: url('/mods/components/3dviewConvertor/assets//convertor//3dview//searchpane-background.png');
background: url('../assets/convertor/3dview/searchpane-background.png');
filter:blur(3px);
background-repeat: no-repeat;
background-size: 100% 100%;
......@@ -307,16 +307,16 @@
background-color: #2b8dd4;
}
.ant-calendar-input::-webkit-input-placeholder {
color: white;
color: white;
}
}
.ant-calendar-header{
color: white;
div a{
color: white;
color: white;
}
div span a{
color: white;
color: white;
}
}
.ant-calendar-body{
......@@ -334,6 +334,6 @@
color: white;
}
}
}
}
\ No newline at end of file
}
......@@ -88,7 +88,7 @@
.down{
height: calc(100% - 90px);
margin-left: 20px;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_warning.png');
background-image: url('../../assets/panoramic/main_bg_warning.png');
background-repeat: repeat;
background-size: 100% 100%;
......@@ -213,7 +213,7 @@
}
.safetyIndex-content-chart {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_dashboard.png') !important;
background-image: url('../../assets/panoramic/main_bg_dashboard.png') !important;
background-repeat: no-repeat !important;
margin-top: -25px !important;
width: 125px !important;
......@@ -235,7 +235,7 @@
.echart-week {
width: 321px !important;
height: 248px !important;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_line_bg.png') !important;
background-image: url('../../assets/panoramic/main_bg_line_bg.png') !important;
background-repeat: no-repeat !important;
background-position: 31px 47px !important;
left: 24px;
......@@ -285,13 +285,13 @@
color: rgba(112, 238, 255, 1);
line-height: 65px;
}
.content-xj-middle {
height: 44%;
margin-top: 4%;
margin: 0 37px;
background: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_rightmiddle.png');
background: url('../../assets/panoramic/main_bg_rightmiddle.png');
background-repeat: repeat;
background-size: 100% 100%;
}
......@@ -319,7 +319,7 @@
}
.yellow-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_buhege.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_buhege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -330,7 +330,7 @@
}
}
.green-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_hege.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_hege.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -342,7 +342,7 @@
}
.red-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_louyan.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_louyan.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -353,7 +353,7 @@
}
}
.grey-div {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-image: url('../../assets/panoramic/main_bg_tag_weizhixing.png') !important;
background-repeat: no-repeat !important;
width: 100%;
......@@ -368,7 +368,7 @@
.div-echars {
// height: 200px !important;
background: url('/mods/components/3dviewConvertor/assets/panoramic/circle_bg.png') no-repeat center center !important;
background: url('../../assets/panoramic/circle_bg.png') no-repeat center center !important;
// background-position: 60px 14px !important;
background-repeat: no-repeat !important;
}
......@@ -398,7 +398,7 @@
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -431,7 +431,7 @@
float: left;
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -463,7 +463,7 @@
float: left;
display: inline-flex;
.content-image {
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_icon_baoan.png') !important;
background-image: url('../../assets/panoramic/main_icon_baoan.png') !important;
background-repeat: no-repeat !important;
height: 42px !important;
width: 100%;
......@@ -506,7 +506,7 @@
bottom: 250px;
left: 250px;
right: 250px;
background-image: url('/mods/components/3dviewConvertor/assets/panoramic/main_bg_model.png');
background-image: url('../../assets/panoramic/main_bg_model.png');
background-repeat: repeat;
background-size: 100% 100%;
.close{
......
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# ļ:03.06.2020 11:01:58
newmtl fireChamber
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.5880 0.5880 0.5880
Kd 0.5880 0.5880 0.5880
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka fireChamber.png
map_Kd fireChamber.png
map_d fireChamber.png
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# ļ:03.06.2020 11:01:58
mtllib fireChamber.mtl
#
# object fireChamber
#
v -34.4348 33.0200 0.0000
v -33.6163 33.0200 0.0000
v -33.6163 33.9408 0.0000
v -34.4348 33.9408 0.0000
v -32.7977 33.0200 0.0000
v -32.7977 33.9408 0.0000
v -31.9792 33.0200 0.0000
v -31.9792 33.9408 0.0000
v -31.1607 33.0200 0.0000
v -31.1607 33.9408 0.0000
v -33.6163 34.8617 0.0000
v -34.4348 34.8617 0.0000
v -32.7977 34.8617 0.0000
v -31.9792 34.8617 0.0000
v -31.1607 34.8617 0.0000
v -33.6163 35.7825 0.0000
v -34.4348 35.7825 0.0000
v -32.7977 35.7825 0.0000
v -31.9792 35.7825 0.0000
v -31.1607 35.7825 0.0000
v -33.6163 36.7034 0.0000
v -34.4348 36.7034 0.0000
v -32.7977 36.7034 0.0000
v -31.9792 36.7034 0.0000
v -31.1607 36.7034 0.0000
# 25 vertices
vn 0.0000 -0.0000 1.0000
# 1 vertex normals
vt 0.0000 0.0000 0.0000
vt 0.2500 0.0000 0.0000
vt 0.2500 0.2500 0.0000
vt 0.0000 0.2500 0.0000
vt 0.5000 0.0000 0.0000
vt 0.5000 0.2500 0.0000
vt 0.7500 0.0000 0.0000
vt 0.7500 0.2500 0.0000
vt 1.0000 0.0000 0.0000
vt 1.0000 0.2500 0.0000
vt 0.2500 0.5000 0.0000
vt 0.0000 0.5000 0.0000
vt 0.5000 0.5000 0.0000
vt 0.7500 0.5000 0.0000
vt 1.0000 0.5000 0.0000
vt 0.2500 0.7500 0.0000
vt 0.0000 0.7500 0.0000
vt 0.5000 0.7500 0.0000
vt 0.7500 0.7500 0.0000
vt 1.0000 0.7500 0.0000
vt 0.2500 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.5000 1.0000 0.0000
vt 0.7500 1.0000 0.0000
vt 1.0000 1.0000 0.0000
# 25 texture coords
g fireChamber
usemtl fireChamber
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 2/2/1 5/5/1 6/6/1 3/3/1
f 5/5/1 7/7/1 8/8/1 6/6/1
f 7/7/1 9/9/1 10/10/1 8/8/1
f 4/4/1 3/3/1 11/11/1 12/12/1
f 3/3/1 6/6/1 13/13/1 11/11/1
f 6/6/1 8/8/1 14/14/1 13/13/1
f 8/8/1 10/10/1 15/15/1 14/14/1
f 12/12/1 11/11/1 16/16/1 17/17/1
f 11/11/1 13/13/1 18/18/1 16/16/1
f 13/13/1 14/14/1 19/19/1 18/18/1
f 14/14/1 15/15/1 20/20/1 19/19/1
f 17/17/1 16/16/1 21/21/1 22/22/1
f 16/16/1 18/18/1 23/23/1 21/21/1
f 18/18/1 19/19/1 24/24/1 23/23/1
f 19/19/1 20/20/1 25/25/1 24/24/1
# 16 polygons
export const chunk = (arr,size) => {
let objArr = [];
let index = 0;
let objArrlen = arr.length / size;
for (let i = 0;i < objArrlen;i++){
let arrTemp = [];
for (let j = 0;j < size;j++){
arrTemp[j] = arr[index++];
if (index === arr.length){
break;
}
}
objArr[i] = arrTemp;
}
return objArr;
};
......@@ -4,7 +4,6 @@ import { Connect } from 'amos-framework';
import AmosWebSocket from 'amos-websocket';
import SysWsURL, { completeToken } from './../consts/wsUrlConsts';
import SideControl from './sideControl';
import DataPane from './datapane';
import globalMsg from './pagefactory/msgFactory';
import { eventTopics, rulesDataFactory } from './consts';
import LayerPool from './LayerPool';
......@@ -17,7 +16,6 @@ const eventConnect = Connect.eventConnect;
@eventConnect
class MaskContent extends Component {
constructor(props) {
super(props);
this.state = {
......@@ -72,7 +70,8 @@ class MaskContent extends Component {
}
initViewModel = ()=>{
this.setState({ activeAction: 'panoramic' });
//选中全景监控、隐藏检索查询框
this.setState({ activeAction: 'panoramic', searchPaneVisible: false });
}
render() {
......@@ -101,14 +100,6 @@ class MaskContent extends Component {
transitionAppear: true
}
};
const datapaneAnim = {
animateName: 'zoom-comb-right',
visible: !planStarted && !alarmStarted,
animateProps: {
key: 'animate-datapane', // animate key
transitionAppear: true
}
};
const layerPoolAnimation = {
animateName: 'fade',
visible: alarmStarted,
......@@ -123,7 +114,7 @@ class MaskContent extends Component {
<div className="mask-content">
<AmosWebSocket ref={node => this.aws = node} url={wsURL} onMessage={this.handleData} reconnect debug />
{ !alarmStarted && sideControlShow && <SideControl multiple={multiple} errorAreaId={errorAreaId} onItemClick={onItemClick} layerConfig={layerConfig} animationProps={controlAnimation} activeAction={activeAction}/>}
{ !alarmStarted && <SearchPane visible={searchPaneVisible} focusPosition={focusPosition} changeSearchPaneVisible={() => this.changeSearchPaneVisible} />}
{ !alarmStarted && isShowActionBar && <SearchPane visible={searchPaneVisible} focusPosition={focusPosition} changeSearchPaneVisible={() => this.changeSearchPaneVisible} />}
<TopMsg alarmStart={alarmStart} />
{ !alarmStarted && !isShowActionBar && <ModelHeader animationProps={controlAnimation} headerName={headerName} handleExceptModel={this.handleExceptModel} />}
{ !alarmStarted && isShowActionBar && <ActionBar activeAction={activeAction} onActionItemClick={(e) => this.actionBarClick(e)} animationProps={controlAnimation} /> }
......@@ -154,7 +145,9 @@ MaskContent.propTypes = {
headerName: PropTypes.string,
setHeaderName: PropTypes.string,
handleExceptModel: PropTypes.func,
errorAreaId: PropTypes.number
errorAreaId: PropTypes.number,
editModelChange: PropTypes.func,
focusPosition: PropTypes.func
};
MaskContent.defaultProps = {
......
......@@ -6,17 +6,12 @@ import { connect3D } from 'amos-3d/lib/designer';
import { RiskPoint, PatrolPoint, PersonPoint3D, MonitorPoint, ProbePoint,
FireResourcePoint, EquipmentPoint, FireCar3D, FirePoint, WorkerMen3D, PointStatistics, ImpEquipmentMode } from './points';
import { eventTopics, isPointEvent , isLevelFilter } from './consts';
import { parseMarkers, parseLevelFilter, objRunning } from './dataProcessor';
import { parseMarkers, parseLevelFilter } from './dataProcessor';
const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2'];
const eventConnect = Connect.eventConnect;
const markers3D = [
{ key: '1', position: [153, -10, -20], size: 10, url: '/mods/components/3dviewConvertor/threeres/markers/person.png' },
{ key: '2', position: [-100, 22, 0], size: 10, url: '/mods/components/3dviewConvertor/threeres/markers/video.png', label: '视频点' },
{ key: '4', position: [30, -5, -90], size: 10, keepSize: true, label: '大小不变' }
];
const Shuttle = (props) => props.children;
......@@ -58,6 +53,7 @@ class PointsPool extends Component {
}
onMarkersCreated = (type, { markersCache }) => {
this.markerList[type] = markersCache;
(markersCache || []).forEach(mc => {
const extData = mc.getExtData();
......@@ -98,7 +94,7 @@ class PointsPool extends Component {
}
return (
<Shuttle>
<RiskPoint
<RiskPoint
{...rest}
markers={markers.riskSource}
onCreated={(val) => this.onMarkersCreated('riskSource', val)}
......@@ -117,6 +113,9 @@ class PointsPool extends Component {
markers={markers.patrol}
onCreated={(val) => this.onMarkersCreated('patrol', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<PersonPoint3D
{...rest}
......@@ -129,36 +128,54 @@ class PointsPool extends Component {
markers={markers.impEquipment}
onCreated={(val) => this.onMarkersCreated('impEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.pool}
onCreated={(val) => this.onMarkersCreated('pool', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.hydrant}
onCreated={(val) => this.onMarkersCreated('hydrant', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireEquipment}
onCreated={(val) => this.onMarkersCreated('fireEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireChamber}
onCreated={(val) => this.onMarkersCreated('fireChamber', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<FireResourcePoint
{...rest}
markers={markers.fireFoamRoom}
onCreated={(val) => this.onMarkersCreated('fireFoamRoom', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
{!hideDetector ?
<FireResourcePoint
......@@ -174,6 +191,9 @@ class PointsPool extends Component {
markers={markers.monitorEquipment}
onCreated={(val) => this.onMarkersCreated('monitorEquipment', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<MonitorPoint
{...rest}
......@@ -197,6 +217,9 @@ class PointsPool extends Component {
markers={markers.fireCar}
onCreated={(val) => this.onMarkersCreated('fireCar', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
selectPoints={this.props.selectPoints}
/>
<PointStatistics
{...rest}
......
import React, { Component } from 'react';
import { Modal ,Button} from 'amos-framework';
import { Modal } from 'amos-framework';
class PromptModal extends Component {
constructor(props) {
super(props);
this.state = {
};
this.state = {};
}
cancel = ()=>{
const {isback} =this.props.promptData
this.props.closePromptModal()
if(isback){
this.props.handleOutExceptModel()
cancel = () => {
const { isback } = this.props.promptData;
this.props.closePromptModal();
if (isback) {
this.props.handleOutExceptModel();
}
}
saveData=()=>{
const {isback,type} =this.props.promptData
if(isback){
this.props.handleOutExceptModel()
};
saveData = () => {
const { isback, type,pointType,pointParams } = this.props.promptData;
this.props.closePromptModal();
if (type === 'region') {
this.props.saveAreaData();
} else {
if (isback){
this.props.savePointData();
} else {
this.props.savePointAndRefreshMarker(pointType,pointParams);
}
}
this.props.closePromptModal()
if(type=='region')
{
this.props.saveAreaData()
}else{
this.props.savePointData()
if (isback) {
this.props.handleOutExceptModel();
}
}
};
render() {
const {promptData} =this.props
const { promptData } = this.props;
return (
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={<div className ='prompt-content'>
<div>{promptData.promptContent}</div>
{promptData.btnType =='isOk'?
<div className='prompt-buttons'>
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>:
<div className='prompt-buttons'>
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
<Modal
visible={promptData.promptvisible}
className={'pormpt-modal'}
content={
<div className="prompt-content">
<div>{promptData.promptContent}</div>
{promptData.btnType === 'isOk' ? (
<div className="prompt-buttons">
<span className={'promptOk'} onClick={this.saveData} />
<span className={'promptNo'} onClick={this.cancel} />
</div>
) : (
<div className="prompt-buttons">
<span className={'promptSave'} onClick={this.saveData} />
<span className={'promptCancel'} onClick={this.cancel} />
</div>
)}
</div>
}
noDefaultFooter
noDefaultHeader
destroyContent
onCancel={this.cancel}
closable={false}
/>
);
}
}
......
......@@ -342,8 +342,8 @@ export const desigerConf = {
fov: 45,
near: 1,
far: 5000,
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386],
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572],
// 是否启用拾取器
enablePicker: true,
builtInOrbit: {
......@@ -388,8 +388,8 @@ export const curveConf = {
export const desigerHelperConfig = {
cameraEffect: {
position: [-12.560443473044181, 234.91788662409795, 325.0800512251056],
target: [2.408441971875859, 1.3271790975878637, 3.918674823963386]
position: [-66.72828735496893, 239.00238807176638, 340.1218562325041],
target: [-52.608562486768115, -6.882567219297089, 1.984922473879572]
},
objAnchor: {
position: [0, 5, 0]
......
......@@ -344,4 +344,56 @@ export const objRunning = (markerObj, routePath, delayTime) => {
});
};
/**
* 模型对象缓存
* @param {object} instance
* @param {object} obj
*/
export const cacheObjsSave = (instance,obj,LENS_LEVEL)=>{
const { level, parentKey, key } = obj.userData || {};
if (level && key){
instance._cacheObj[key] = obj;
switch (level) {
case LENS_LEVEL.ROOT:// 父节点
if (!instance.processorLevel[key]){
instance.processorLevel[key] = [];
}
break;
case LENS_LEVEL.SUB:// 子节点
if (!instance.processorLevel[parentKey]){
instance.processorLevel[parentKey] = [];
}
instance.processorLevel[parentKey].push(key);// 在对应关系中,添加其子节点
break;
default:
break;
}
}
};
/**
* 进入选择物体内部
* @param {object} instance
* @param {object} obj
*/
export const flyToSubView = (instance,obj,LENS_LEVEL) =>{
const { level, key: objKey, fitView } = obj.userData || {};
if (level && objKey && level === 'root' && (instance.processorLevel[objKey] || []).length > 0){
Object.keys(instance.processorLevel).forEach(key => {
// 隐藏所有一级
instance._cacheObj[key].visible = false;
// 隐藏非目标二级
if (key !== objKey){
instance.processorLevel[key].forEach(sec => {
instance._cacheObj[sec].visible = false;
});
}
});
// 镜头切换
fitView && instance.cameraFactory.fitView(fitView);//视角调整为最近视角
instance.lensLevel = LENS_LEVEL.SUB;
} else {
instance.focusObject(obj);
}
};
......@@ -44,10 +44,12 @@ class ExceptionArea extends Component {
}
onMarkerClick = (marker) => {
const { extData } = marker;
const { extData, node } = marker;
this.props.handleExceptModel && this.props.handleExceptModel('into_except_model',extData.id);
this.props.focusObject && this.props.focusObject(node);
}
setTopCardConf = (obj,{ safetyIndex })=>{
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
......@@ -71,6 +73,16 @@ class ExceptionArea extends Component {
obj.baseObjHelper.title = safetyIndex;
}
toCameraPosition = (item) => {
if (item && item.x){
return { x: item.x , y: item.y + 200 , z: item.z + 200 };
} else if (item && item[0]){
return { x: item[0] , y: item[1] + 200 , z: item[2] + 200 };
} else {
return;
}
}
markerCreated = ({ markersCache }) => {
this.markersCache = markersCache;
markersCache.eachValue(item=>{
......@@ -97,7 +109,8 @@ class ExceptionArea extends Component {
ExceptionArea.propTypes = {
markers: PropTypes.array,
handleExceptModel: PropTypes.func
handleExceptModel: PropTypes.func,
focusObject: PropTypes.func
};
export default ExceptionArea;
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree,Select,Search,Button } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
import { Connect, Tree, Search, Button } from 'amos-framework';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
const getParentKey = (key, tree) => {
let parentKey;
for (let i = 0; i < tree.length; i++) {
const node = tree[i];
if (node.children && node.children.length >0) {
if (node.children && node.children.length > 0) {
if (node.children.some(item => item.id === key)) {
parentKey = node.id;
} else if (getParentKey(key, node.children)) {
......@@ -26,56 +25,23 @@ const getParentKey = (key, tree) => {
class AreaLeftTree extends Component {
constructor(props) {
super(props);
this.state = {
// showScreenSaver: false //是否打开屏保
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:'',
treeDataList : [],
searchValue:''
expandedKeys: [],
autoExpandParent: true,
checkedKeys: [],
selectedKeys: [],
treeData: [],
pointTypeArr: [],
pointType: '',
treeDataList: [],
searchValue: ''
};
}
componentDidMount() {
let {treeData,pointTypeArr,treeDataList} = this.props;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
componentWillUnmount() {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr,pageType,treeDataList} = nextProps;
this.setState({
treeData,
pointTypeArr,
treeDataList,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
// onSelectChange = (value, item) =>{
// console.log(value, item);
// this.state.pointType = value;
// this.props.pointTypeChange(value);
// }
onSearchChange =(e,value) => {
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const value = e.target.value;
const { treeDataList,treeData } = this.props;
const expandedKeys = treeDataList
.map(item => {
if (item.title.indexOf(value) > -1) {
......@@ -101,44 +67,16 @@ class AreaLeftTree extends Component {
autoExpandParent: false
});
}
// onCheck = (checkedKeys,e) => {
// console.log('onCheck', checkedKeys);
// // console.log('onCheck', e);
// let currentKey = checkedKeys.checked[0]?checkedKeys.checked[checkedKeys.checked.length-1]:'';
// if (checkedKeys.checked.length<2) {
// currentKey = checkedKeys.checked[0]
// } else {
// if (checkedKeys.checked[0] == this.state.checkedKeys[0]) {
// currentKey = checkedKeys.checked[1]
// } else {
// currentKey = checkedKeys.checked[0]
// }
// }
// // checkedKeys[0] = checkedKeys[checkedKeys.length - 1]
// this.setState({ checkedKeys: currentKey?[currentKey]:[] });
// this.props.selectItemChange(currentKey);
// if (currentKey) {
// this.props.startDrow(currentKey);
// }else {
// this.props.stopDrowing()
// }
// }
drowArea = (editItem) => {
}
onTreeSelect = (selectedKeys, info) => {
console.log('onSelect', info);
let selectItem = info.node.props.dataRef;
this.setState({ selectedKeys });
this.props.selectItemChange(selectItem);
}
// onClick={(e)=>{e.nativeEvent.stopImmediatePropagation();e.stopPropagation();console.log(123123);}}
renderTreeNodes = (data) => {
let {searchValue} =this.state
// console.log(data);
if (data.length>0) {
let { searchValue } = this.state;
if (data.length > 0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
......@@ -155,17 +93,17 @@ class AreaLeftTree extends Component {
);
if (item.children) {
return (
<TreeNode
title={
<div>
{
<span >
{title}
<span className='icon'>
{
item.isBind?'':
<TreeNode
title={
<div>
{
<span >
{title}
<span className='icon'>
{
item.isBind ? '' :
<img
src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/editBtn.png'
src={moduleEditIcon.editBtn}
onClick={(e) => {
e.nativeEvent.stopImmediatePropagation();
e.stopPropagation();
......@@ -173,18 +111,18 @@ class AreaLeftTree extends Component {
}}
/>
}
{
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.routePath?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
{
item.isBind ? <img src={moduleEditIcon.bindedTip} alt='' /> :
item.routePath ? <img src={moduleEditIcon.noSaveTip} alt='' /> :
<img src={moduleEditIcon.noSaveTip} alt='' />
}
</span>
</span>
</span>
}
</div>
</div>
}
key={item.id}
dataRef={item}
key={item.id}
dataRef={item}
>
{this.renderTreeNodes(item.children)}
</TreeNode>
......@@ -195,44 +133,45 @@ class AreaLeftTree extends Component {
}
render() {
let { treeData, checkedKeys,pointTypeArr,pointType} = this.state;
let { pageType } = this.props;
return (
let { treeData } = this.props;
return (
<div className="leftTree">
<div className='leftContainer'>
<div className='topForm'>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
<div className='leftContainer'>
<div className='topForm'>
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
// checkable
// checkStrictly
selectable={true}
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={true}
selectable
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent
// onCheck={this.onCheck}
// checkedKeys={checkedKeys}
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.saveAreaData()
}} ></Button>
<Button
className='deleteBtn'
onClick={() => {
this.props.deleteAreaBind()
}} ></Button>
</div>
onSelect={this.onTreeSelect}
selectedKeys={this.state.selectedKeys}
blockNode
>
{this.renderTreeNodes(treeData)}
</Tree>
</div>
<div className='bottomBtns'>
<Button
className='sureBtn'
onClick={() => {
this.props.saveAreaData();
}}
/>
<Button
className='deleteBtn'
onClick={() => {
this.props.deleteAreaBind();
}}
/>
</div>
</div>
</div>
);
......
......@@ -4,7 +4,9 @@ import { Connect, Button, Input, Form, Radio } from 'amos-framework';
import { PubSub } from 'ray-eventpool';
import { getPointTreeDetailAction } from '../../services/moduleEditServices';
import { eventTopics } from './../consts';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const FormItem = Form.Item;
const RadioGroup = Radio.Group;
......@@ -110,31 +112,30 @@ class RightEditPointPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'>
<div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/>
<span className='titleText'>风险点信息</span>
<img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险点信息</span>
</div>
<div className='baseMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/>
<span className='titleText'>基本信息</span>
<div className='moduleTitle'>
<img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span>
</div>
<div className='moduleContent'>
<div className='msgItem'>
<div className='itemLabel'>风险名称</div>
<FormItem field="name" >
<Input value={detailData.name} disabled />
</FormItem>
</div>
<div className='moduleContent'>
<div className='msgItem'>
<div className='itemLabel'>风险名称</div>
<FormItem field="name" >
<Input value={detailData.name} disabled/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>参考编号</div>
<FormItem field="code" >
<Input
onChange={(e) => this.onChange('name', e)}
value={detailData.code}
disabled
/>
</FormItem>
<FormItem field="code" >
<Input
onChange={(e) => this.onChange('name', e)}
value={detailData.code}
disabled
/>
</FormItem>
</div>
<div className='msgItem'>
<div className='itemLabel'>风险等级</div>
......@@ -143,7 +144,7 @@ class RightEditPointPanel extends Component {
</FormItem>
</div>
</div>
</div>
</div>
<div className='3dMsg'>
<div className='moduleTitle'>
......
......@@ -2,8 +2,10 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { Connect, Modal, Tree, Select, Search, Button, Input,InputNumber, Form, Radio } from 'amos-framework';
import * as endConf from 'amos-processor/lib/config/endconf';
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices'
import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditServices';
import imgStatic from '../../consts/imgStatic';
const moduleEditIcon = imgStatic.moduleEditIcon;
const eventConnect = Connect.eventConnect;
const TreeNode = Tree.TreeNode;
const Option = Select.Option;
......@@ -87,7 +89,6 @@ class RightEditRegionPanel extends Component {
this.form.validate((valid, dataValues, errors) => {
console.log('返回内容:', dataValues, valid, errors);
if (valid) {
let routePathData=[ {
riskSourceId: detailData.id,
routePath: JSON.stringify({
......@@ -104,8 +105,10 @@ class RightEditRegionPanel extends Component {
})
}
this.props.changeRoutePath(routePathDataNode);
this.props.closeRightPanel()
} else {
console.log('error submit!!');
this.props.closeRightPanel()
return false;
}
});
......@@ -127,12 +130,12 @@ class RightEditRegionPanel extends Component {
<Form className="basic-demo" ref={component => this.form = component} model={form} rules={rules}>
<div className='topForm'>
<div className='rightTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightModalTitleIcon.png'/>
<img src={moduleEditIcon.rightModalTitleIcon} alt='' />
<span className='titleText'>风险区域信息</span>
</div>
<div className='baseMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/rightBaseMsgIcon.png'/>
<img src={moduleEditIcon.rightBaseMsgIcon} alt='' />
<span className='titleText'>基本信息</span>
</div>
<div className='moduleContent'>
......@@ -164,7 +167,7 @@ class RightEditRegionPanel extends Component {
<Option value="4">四级</Option>
<Option value="5">五级</Option>
</Select> */}
<Input value={detailData.level} disabled/>
<Input value={detailData.level} disabled />
</FormItem>
</div>
......@@ -172,7 +175,7 @@ class RightEditRegionPanel extends Component {
</div>
<div className='3dMsg'>
<div className='moduleTitle'>
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/right3dIcon.png'/>
<img src={moduleEditIcon.right3dIcon} alt='' />
<span className='titleText'>三维信息</span>
</div>
<div className='moduleContent'>
......
......@@ -86,8 +86,8 @@ export const FireResourcePoint = marker3DFactory(BasicPoint,
markerType: 'fireResource',
markerParams: {
useModel: true,
objPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.obj',
mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/fireResource/{type}.mtl'
objPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.obj',
mtlPath: '/mods/components/3dviewConvertor/threeres/marker-models/{url}.mtl'
}
}
);
......
......@@ -2,26 +2,42 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { utils } from 'amos-tool';
import { Markers } from 'amos-3d/lib/designer';
import { BaseObjHelper } from 'base-r3d/lib/factory';
import formatUrl from 'amos-processor/lib/utils/urlFormat';
import { CONSTS } from './../../consts/storageConsts';
import PointDialog from './PointDialog';
import { tirggerPlanTopic } from './../dataProcessor';
import { marker3DIoncMapper, markerTitleBgMapper } from './../../consts/imgStatic';
import MarkerIcon from './MarkerIcon';
import { eventTopics, isPointEvent , isLevelFilter } from './../consts';
import { parseMarkers, parseLevelFilter } from '../dataProcessor';
const getIcon = (markerType, level) => {
// return marker3DIoncMapper[`${markerType}_${level}`];
if (markerType === 'riskSource' || markerType === 'patrol' || markerType === 'impEquipmentMode') {
return marker3DIoncMapper[`${markerType}_${level}`];
}
return marker3DIoncMapper[`${markerType}`]
return marker3DIoncMapper[`${markerType}`];
};
export default function marker3DFactory(WrappedComponent = 'div', options){
// const createMarkerLabel = text => {
// const div = document.createElement('div');
// div.style.position = 'absolute';
// div.style.marginTop = '-3rem';
// div.className = 'three-ui-anchor';
// div.innerText = text;
// return div;
// };
const urlMapper = {
fireCar: { file: 'fire-car', label: '消防车' },
fireEquipment: { file: 'fireEquip', label: '消防设备' },
fireFoamRoom: { file: 'fireFoam', label: '泡沫间' },
fireChamber: { file: 'fireChamber', label: '消防室' },
hydrant: { file: 'hydrant', label: '消防栓' },
pool: { file: 'pool', label: '灭火水池' }
};
export default function marker3DFactory(WrappedComponent = 'div', options) {
const { markerType, markerParams } = options;
class MarkerPoints extends Component {
static propTypes = {
// marker 显隐
visible: PropTypes.bool,
......@@ -31,6 +47,7 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
constructor(props) {
super(props);
this.markerList = {};
this.markerEvents = {
click: this.onMarkerClick,
// dblclick: this.onMarkerDblClick,
......@@ -63,36 +80,50 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
componentWillMount = () => {
this.setState({ planStarted: this.props.planStarted });
};
componentDidMount() {
this.props.subscribe(eventTopics.base3d_view, (topic, data) => {
if (isPointEvent(topic)){
parseMarkers(this, topic, data);
} else if (isLevelFilter(topic)) {
parseLevelFilter(this, topic, data);
}
});
this.props.subscribe('base3d.fromws1.showFireTruckRoute', (topic, data) => {
parseMarkers(this, topic, data);
});
}
componentWillReceiveProps = nextProps => {
if ( nextProps.isEditMode ){
this.markersCache.eachValue(obj=>{
if (nextProps.isEditMode) {
this.markersCache.eachValue(obj => {
// this.setTopCardConf(obj, obj.extData);
if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){
if (nextProps.selectPoints.type === obj.extData.type && nextProps.selectPoints.id === obj.extData.id) {
this.setTwinkleConf(obj);
}
});
}
this.setState({ planStarted: nextProps.planStarted });
}
};
componentWillUnmount() {
this.objAnchorHelper && this.objAnchorHelper.destroy();
}
onMarkerDblClick = (marker, e) => {
console.log('marker3DFactory','onMarkerDblClick')
console.log('marker3DFactory', 'onMarkerDblClick');
if (this.props.isEditMode) {
return false;
}
clearTimeout(this.time);
// tirggerPlanTopic(CONSTS.plan_detail, { type: marker.extData.type, data: marker.extData });
if (marker.extData.markerType === 'fire' && void 0 !== marker.extData.show) {
tirggerTransTopic(CONSTS.forward, { details: { type: 'impEquipment', dialogId: marker.extData.equipmentId, show: marker.extData.show }, dateTime: Date.now() });
tirggerTransTopic(CONSTS.forward, {
details: { type: 'impEquipment', dialogId: marker.extData.equipmentId, show: marker.extData.show },
dateTime: Date.now()
});
return;
}
this.pdRef.tirggerBussines(marker);
}
};
onMarkerClick = (marker, e) => {
const { isClick } = this.state;
......@@ -113,16 +144,16 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
// 设置延迟事件,3秒后将执行
that.setState({ isClick: true }); // 将isClick设置为true
}, 1000);
}
};
markerDragend = (marker, evt) => {
if (marker){
if (marker) {
console.log(marker.position);
console.log(marker.extData);
this.props.addMarker(marker);
}
}
};
markerCreated = ({ markersCache }) => {
let { isEditMode,selectKey } =this.props;
let { isEditMode, selectKey } = this.props;
this.markersCache = markersCache;
this.stagePilot = this.props.stagePilot;
this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
......@@ -144,21 +175,22 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
obj.baseObjHelper.setOutlineHelper(this.outlineHelper);
}
obj.baseObjHelper.style.outlineColor = color;
pulsePeriod && obj.baseObjHelper.outlineHelper.setConfig({
pulsePeriod: pulsePeriod.toFixed(2)
});
}
pulsePeriod &&
obj.baseObjHelper.outlineHelper.setConfig({
pulsePeriod: pulsePeriod.toFixed(2)
});
};
setTopCardConf = (obj, extData )=>{
const { title , name } = extData;
let cardTitle = null;
console.log(extData)
console.log(extData);
obj.baseObjHelper.titleConfig = {
// 顶牌平面参数
planeOptions: {
width: 40,
height: 20,
position: [0,20,0],
position: [0, 20, 0],
doubleSide: true
},
canvasOptions: {
......@@ -178,28 +210,29 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
cardTitle = name ? name : title;
// }
obj.baseObjHelper.title = cardTitle;
}
};
buildMarkerOptions = (markers, markerType, defaultParams = {}) => {
console.log(markers);
const { isEditMode } = this.props;
if (!utils.isEmpty(markers)){
if (!utils.isEmpty(markers)) {
markers.forEach(m => {
const url = getIcon(markerType, m.level);
let position;
if (!utils.isArray(m.position)){
if (!utils.isArray(m.position)) {
position = Object.values(m.position);
}
for (let k of Object.keys(defaultParams)) {
if ((markerType === 'riskSource' || markerType === 'patrol' ) && k !== 'useModel' && !isEditMode){
if ((markerType === 'riskSource' || markerType === 'patrol') && k !== 'useModel' && !isEditMode) {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-${m.level}` });
} else if ((markerType === 'riskSource' || markerType === 'patrol' ) && k !== 'useModel' && isEditMode){
if (markerType === 'riskSource'){
} else if ((markerType === 'riskSource' || markerType === 'patrol') && k !== 'useModel' && isEditMode) {
if (markerType === 'riskSource') {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-4` });
} else {
m[k] = formatUrl(defaultParams[k], { url: `${markerType}-1` });
}
} else if (markerType === 'fireResource' && k !== 'useModel') {
m[k] = formatUrl(defaultParams[k], { type: `${m.type}` });
} else if (markerType === 'fireResource' && k !== 'useModel' && isEditMode && urlMapper[m.type]) {
m[k] = formatUrl(defaultParams[k], { url: `${urlMapper[m.type].file}` });
} else {
m[k] = defaultParams[k];
}
......@@ -217,21 +250,15 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
};
render() {
const { markers,isEditMode, ...rest } = this.props;
const { markers, isEditMode, ...rest } = this.props;
const { planStarted } = this.state;
let dialogStyle = { zIndex: 1000 };
const result = this.buildMarkerOptions(markers, markerType, markerParams);
return (
<WrappedComponent>
<Markers
{...rest}
draggable={isEditMode}
markers={result}
events={this.markerEvents}
onCreated={this.markerCreated}
/>
{ !planStarted && <PointDialog style={dialogStyle} ref={node => this.pdRef = node} />}
<Markers {...rest} draggable={isEditMode} markers={result} events={this.markerEvents} onCreated={this.markerCreated} />
{!planStarted && <PointDialog style={dialogStyle} ref={node => (this.pdRef = node)} />}
</WrappedComponent>
);
}
......
......@@ -4,7 +4,7 @@ import { Button, Input, Select, Group } from 'amos-framework';
import { SingleQueryEnum } from 'amos-processor/lib/config/queryEnum';
import { trim } from 'amos-tool';
import { DatePicker } from 'amos-antd';
import moment from "moment";
import moment from 'moment';
import imgStatic from './../../consts/imgStatic';
import {
getImpEquipmentAction,
......@@ -14,12 +14,11 @@ import { bizControlsTypes, riskSourceLevel } from './../conf';
const Option = Select.Option;
const MsgTypeEnum = [{ id: 'protal', name: '巡检' }, { id: 'equiment', name: '设备' }, { id: 'risk', name: '风险' }];
const MsgTypeEnum = [{ id: 'protal', name: '巡检' }, { id: 'equiment', name: '设备' }, { id: 'riskAlert', name: '风险' }];
const groupStyle = { display: 'unset', width: '100%' };
const selectStyle = { width: '25%', minWidth: '20%', marginRight:'14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight:'14px' };
const enterkey = 13;
const selectStyle = { width: '25%', minWidth: '20%', marginRight: '14px' };
const inputStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
const datePickerStyle = { width: '30%', minWidth: '20%', height: '28px', marginRight: '14px' };
/**
*
* @class paramsHeader
......@@ -45,7 +44,7 @@ class paramsHeader extends Component {
impEquiList: [],
filter: [],
recordFilter: [],
statusList: [],
statusList: []
};
}
......@@ -61,10 +60,10 @@ class paramsHeader extends Component {
msgTextValue: undefined,
recordTextValue: undefined,
filter: [],
recordFilter: [],
})
recordFilter: []
});
}
}
}
onChange = (e) => {
this.setState({ value: e.target.value });
......@@ -74,9 +73,9 @@ class paramsHeader extends Component {
let showRiskLevel = false;
let showImpEquiList = false;
if(value === 'riskSource'){
if (value === 'riskSource'){
showRiskLevel = true;
}else if(value === 'monitorEquipment'){
} else if (value === 'monitorEquipment'){
showImpEquiList = true;
}
this.setState({ showRiskLevel, showImpEquiList });
......@@ -85,8 +84,8 @@ class paramsHeader extends Component {
onPamarmsChange = (name,value) => {
let { filter } = this.state;
if(name === 'time'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
if (name === 'time'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = filter.some(e => {
......@@ -99,19 +98,19 @@ class paramsHeader extends Component {
} else {
filter = filter.filter(e => e.name !== name);
}
if(name === 'inputText'){
if (name === 'inputText'){
this.setState({ textValue: value,filter });
}else if(name === 'title'){
} else if (name === 'title'){
this.setState({ msgTextValue: value,filter });
}else{
} else {
this.setState({ filter }, this.props.paramsOnChange(filter));
}
}
paramsTypeonChange = (name,value,type,key) => {
let {recordFilter} = this.state;
if(name === 'checkTime'){
value = value == null ? '' : moment(value).format("YYYY-MM-DD");
let { recordFilter } = this.state;
if (name === 'checkTime'){
value = value == null ? '' : moment(value).format('YYYY-MM-DD');
}
if (value) {
const flag = recordFilter.some(e => {
......@@ -125,16 +124,15 @@ class paramsHeader extends Component {
} else {
recordFilter = recordFilter.filter(e => e.name !== name);
}
debugger;
if(name === 'contingencyName'){
this.setState({recordTextValue:value,recordFilter})
}else if(name === 'pointName'){
if(key === 'record'){
this.setState({ recordTextValue:value,recordFilter });
}else{
if (name === 'contingencyName'){
this.setState({ recordTextValue: value,recordFilter });
} else if (name === 'pointName'){
if (key === 'record'){
this.setState({ recordTextValue: value,recordFilter });
} else {
this.setState({ trajectoryTextValue: value,recordFilter });
}
}else{//不为input时直接查询
} else {//不为input时直接查询
this.setState({ recordFilter }, this.props.paramsOnChange(recordFilter));
}
}
......@@ -142,8 +140,8 @@ class paramsHeader extends Component {
//检索
getSearchContent = () => {
const { showRiskLevel, showImpEquiList, impEquiList,filter } = this.state;
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight:'14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight:'14px' };
let levelStyle = { width: '20%', minWidth: '15%', height: '28px', marginRight: '14px' };
let implStyle = { width: '35%', minWidth: '20%', height: '28px', marginRight: '14px' };
return (<Group style={groupStyle}>
<Select
key="searchType"
......@@ -160,7 +158,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('inputText',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
{
showRiskLevel &&
......@@ -171,7 +169,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.key} value={item.key}>{item.label}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('dataLevel',v)}
/>
/>
}
{
showImpEquiList &&
......@@ -182,7 +180,7 @@ class paramsHeader extends Component {
renderOption={item => <Option className='modalSelectOption' key={item.name} value={item.name}>{item.name}</Option>}
defaultOption={<Option className='modalSelectOption'>全部</Option>}
onChange={(v) => this.onPamarmsChange('impEquipment',v)}
/>
/>
}
</Group>);
......@@ -207,7 +205,7 @@ class paramsHeader extends Component {
onChange={(e) => this.onPamarmsChange('title',e.target.value)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={() => this.props.paramsOnChange(filter)} />
</div>
<DatePicker
key="time"
......@@ -216,7 +214,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.onPamarmsChange('time',v)}
/>
/>
</Group>);
......@@ -230,7 +228,7 @@ class paramsHeader extends Component {
key="recordImpl"
style={selectStyle}
data={impEquiList}
renderOption={item => <Option key={item.id+item.name} value={item.id}>{item.name}</Option>}
renderOption={item => <Option key={item.id + item.name} value={item.id}>{item.name}</Option>}
defaultOption={<Option>重点设备</Option>}
onChange={(v) => this.paramsTypeonChange('equipmentId', v , SingleQueryEnum.EQUAL)}
/>
......@@ -241,7 +239,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('contingencyName', e.target.value, SingleQueryEnum.LIKE,'record')}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=> this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -250,7 +248,7 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('createTime', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
......@@ -273,7 +271,7 @@ class paramsHeader extends Component {
onChange={(e) => this.paramsTypeonChange('pointName', e.target.value, SingleQueryEnum.LIKE)}
placeholder="输入关键字"
/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)}/>
<img className="params-input-img1" src={imgStatic.datapane.searchPane} alt="" onClick={()=>this.props.paramsOnChange(recordFilter)} />
</div>
<DatePicker
key="createTime"
......@@ -282,19 +280,19 @@ class paramsHeader extends Component {
placeholder="时间"
format="YYYY/MM/DD"
onChange={(v) => this.paramsTypeonChange('beginDate', v, SingleQueryEnum.EQUAL)}
/>
/>
</Group>);
}
getContent = () =>{
const { activeKey } = this.props;
if(activeKey === 'search'){
if (activeKey === 'search'){
return this.getSearchContent();
}else if(activeKey === 'message'){
} else if (activeKey === 'message'){
return this.getMessageContent();
}else if(activeKey === 'record'){
} else if (activeKey === 'record'){
return this.getRecordContent();
}else{
} else {
return this.getTrajectoryContent();
}
}
......
......@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
import { SidePane } from 'amos-framework';
import { Store } from 'amos-tool';
import BizControlPane from './BizControlPane';
import InnateControlPane from './InnateControlPane';
import { viewController, bizControls, pMonitorControls } from './../conf';
import { bizControls, pMonitorControls } from './../conf';
const loginUserName = Store.lsTool.read('userName');
const filterUser = ['tianbo', 'opera1', 'opera2'];
......@@ -54,7 +53,7 @@ class SideControl extends Component {
};
render() {
const { layerConfig, animationProps, activeAction } = this.props;
const { animationProps, activeAction } = this.props;
let _bizControls = activeAction === 'panoramic' ? bizControls : pMonitorControls;
if (filterUser.includes(loginUserName)) {
let target = _bizControls.find(item => item.key === 'fireResource-point');
......
# 说明
## 换流站3d前端打包说明
1.复制amos-station-module-view的mods文件夹到mos-iot-graphmod根目录
2.使用 amos-iot-graphmod 打包, 运行打包命令
```bash
npm run build-mod
```
3.打包完成后,复制根目录下lib文件到使用系统
4.修改使用系统的webpack.config文件
```bash
`defaultConfig.plugins.push(
new HtmlInlineCodePlugin([
{ inject: 'body', begin: true, tag: 'script', attr: { src: '/extra/convertor3d/graphmod.js' } },
{ inject: 'body', begin: false, tag: 'script', attr: { src: '/extra/convertor3d/worker.69f3bd5bcb7ff720afa4.js' } }
])
);`
```
5.修改文件graphmod 将 webpack_require__.p修改为第3步放置的路径
```bash
`// __webpack_public_path__
__webpack_require__.p = "/extra/convertor3d/";`
```
## 注意 src路径为第3步放置的路径 文件名字要与打包后的文件名字一致
This diff is collapsed.
This diff is collapsed.
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