Commit 8d3a5c84 authored by 张博's avatar 张博

搜索

parent 8b341887
......@@ -112,6 +112,7 @@
line-height: 31px;
padding: 5px;
color: #F0DF2D;
}
.leftSearch {
height: 33px;
......
......@@ -114,6 +114,7 @@ class PointsPool extends Component {
onCreated={(val) => this.onMarkersCreated('riskSource', val)}
isEditMode={this.props.isEditMode}
addMarker={this.addMarker}
stagePilot={this.props.stagePilot}
editFlag={this.props.editFlag}
selectPoints={this.props.selectPoints}
/>
......
......@@ -123,6 +123,7 @@ class View3D extends Component {
positionxyz:'',
rightHeight:1,
isPointSave:true,
treeDataList:[],
};
getObjFromNet(view3dFile, (objs, asyncModels) => {
......@@ -547,7 +548,7 @@ class View3D extends Component {
}
};
getPointList = () => {
let { markers } = this.state
const { markers} = this.state
getPointListAction().then(data => {
for (let i = 0; i < data.length;i++){
markers[data[i].type].push(data[i])
......@@ -763,7 +764,6 @@ class View3D extends Component {
}
//选中点变化
selectPointChange = (selectPoints) => {
if(selectPoints.isRegion){
this.setState({selectArea:selectPoints})
}else{
......@@ -889,6 +889,7 @@ class View3D extends Component {
}
}
savePointListAction(paramsArr).then(data => {
message.success('保存成功!');
getPointTreeAction(pointType).then(data => {
this.setState({
treeData: data || [],
......@@ -973,15 +974,32 @@ class View3D extends Component {
});
}
}
/**
* 处理数据
*/
generateList = data => {
let {treeDataList } =this.state;
for (let i = 0; i < data.length; i++) {
const node = data[i];
const key = node.id;
const title = node.name;
treeDataList.push({ key, title });
if (node.children.length>0) {
this.generateList(node.children);
}
}
this.setState({treeDataList})
}
/**
* 切换区域和点页面
*/
changeAreaPoint = (type) => {
let { pointTypeArr } = this.state;
this.setState({treeDataList:[]})
if (type === 'region') {
getAreaTreeAction().then(data => {
this.generateList(data)
this.setState({
treeData: data || [],
pageType: 'region',
......@@ -990,6 +1008,7 @@ class View3D extends Component {
});
} else {
getPointTreeAction(pointTypeArr[0].code || '').then(data => {
this.generateList(data)
this.setState({
pointType: pointTypeArr[0].code || '',
treeData: data || [],
......@@ -1044,9 +1063,10 @@ class View3D extends Component {
}
drop = (event) => {
const { dragItem,markers} = this.state;
event.preventDefault();
this.setState({isPointSave:false})
let { dragItem,markers } = this.state;
if (dragItem) {
if (dragItem.isBind) {
this.toastWarningInfo('只能放置未绑定的标记点')
......@@ -1101,6 +1121,7 @@ class View3D extends Component {
this.setState({ editFlag });
if (editFlag === true) {
getAreaTreeAction().then(data => {
this.generateList(data)
this.setState({
treeData: data || []
});
......@@ -1451,7 +1472,11 @@ class View3D extends Component {
console.log(paramsArr)
savePointListAction(paramsArr).then(data => {
})
this.setState({positionxyz: position})
this.setState({
positionxyz: position,
showRightPanel:true,
selectPoints:extData
})
}
render() {
const {
......@@ -1473,6 +1498,7 @@ class View3D extends Component {
errorAreaId,
positionxyz,
rightHeight,
treeDataList
} = this.state;
const { dimension, hiddenScreenSaver, editModelChange } = this.props;
const graphicProps = {
......@@ -1558,7 +1584,7 @@ class View3D extends Component {
>
{startAsyncLoad && <WorkerObjContent objs={asyncModels} onWorkerMessage={this.onWorkerLoading} enableLoading afterInit={this.onAfterWorkerInit} />}
{editFlag && pageType === 'region' ? '' :
<PointsPool markers={markers} editFlag={editFlag} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} addMarker={this.addMarker}/>}
<PointsPool markers={markers} editFlag={editFlag} selectPoints={selectPoints} updateMarker={this.updateMarker} planStarted={alarmStarted} stagePilot={this.stagePilot} addMarker={this.addMarker}/>}
{fireTruckRoute && <FatLine {...lineData.fatLineConf} linePath={JSON.parse(fireTruckRoute)} visible={showFireTruckRoute} />}
<FlameFire position={firePosition} width={10} height={20} depth={8} sliceSpacing={1} visible={planStarted} />
{editFlag && this.renderAreas()}
......@@ -1577,6 +1603,7 @@ class View3D extends Component {
selectItemChange={this.selectItemChange}
// stopDrowing={this.stopDrowing}
pageType={pageType}
treeDataList={treeDataList}
pointTypeArr={pointTypeArr}
pointTypeChange={this.pointTypeChange}
dragItemChange={this.dragItemChange}
......@@ -1588,6 +1615,7 @@ class View3D extends Component {
selectPointChange={this.selectPointChange}
// stopDrowing={this.stopDrowing}
pageType={pageType}
treeDataList={treeDataList}
// pointType={pointType}
pointTypeArr={pointTypeArr}
pointTypeChange={this.pointTypeChange}
......
......@@ -7,7 +7,20 @@ import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditS
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.some(item => item.id === key)) {
parentKey = node.id;
} else if (getParentKey(key, node.children)) {
parentKey = getParentKey(key, node.children);
}
}
}
return parentKey;
};
@eventConnect
class AreaLeftTree extends Component {
......@@ -22,18 +35,22 @@ class AreaLeftTree extends Component {
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:''
pointType:'',
treeDataList : [],
searchValue:''
};
}
componentDidMount() {
let {treeData,pointTypeArr} = this.props;
let {treeData,pointTypeArr,treeDataList} = this.props;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
componentWillUnmount() {
......@@ -41,10 +58,11 @@ class AreaLeftTree extends Component {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr} = nextProps;
let {treeData,pointTypeArr,pageType,treeDataList} = nextProps;
this.setState({
treeData,
pointTypeArr,
treeDataList,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
}
......@@ -54,10 +72,23 @@ class AreaLeftTree extends Component {
// this.state.pointType = value;
// this.props.pointTypeChange(value);
// }
onSearchChange = (e, value) => {
console.log(e, value);
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const value = e.target.value;
const expandedKeys = treeDataList
.map(item => {
if (item.title.indexOf(value) > -1) {
return getParentKey(item.key, treeData);
}
return null;
})
.filter((item, i, self) => item && self.indexOf(item) === i);
this.setState({
value
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
......@@ -105,9 +136,23 @@ class AreaLeftTree extends Component {
}
// onClick={(e)=>{e.nativeEvent.stopImmediatePropagation();e.stopPropagation();console.log(123123);}}
renderTreeNodes = (data) => {
let {searchValue} =this.state
// console.log(data);
if (data.length>0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
const afterStr = item.name.substr(index + searchValue.length);
const title =
index > -1 ? (
<span>
{beforeStr}
<span style={{ color: '#f50' }}>{searchValue}</span>
{afterStr}
</span>
) : (
<span>{item.name}</span>
);
if (item.children) {
return (
<TreeNode
......@@ -115,7 +160,7 @@ class AreaLeftTree extends Component {
<div>
{
<span >
{item.name}
{title}
<span className='icon'>
{
item.isBind?'':
......@@ -145,46 +190,12 @@ class AreaLeftTree extends Component {
</TreeNode>
);
}
return <TreeNode
key={item.id}
title={
<div>
{
<span >
{item.name}
<span className='icon'>
{
item.isBind?'':
<img
src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/editBtn.png'
onClick={(e) => {
e.nativeEvent.stopImmediatePropagation();
e.stopPropagation();
this.props.startDrow(item);
}}
/>
}
{
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' />
}
</span>
</span>
}
</div>
}
dataRef={item}
{...item}
/>;
});
}
}
render() {
let { treeData, checkedKeys,pointTypeArr,pointType } = this.state;
let { treeData, checkedKeys,pointTypeArr,pointType} = this.state;
let { pageType } = this.props;
return (
<div className="leftTree">
......@@ -199,7 +210,7 @@ class AreaLeftTree extends Component {
selectable={true}
onExpand={this.onExpand}
expandedKeys={this.state.expandedKeys}
autoExpandParent={this.state.autoExpandParent}
autoExpandParent={true}
// onCheck={this.onCheck}
// checkedKeys={checkedKeys}
onSelect={this.onTreeSelect}
......
......@@ -7,7 +7,20 @@ import { getAreaTreeAction,saveAreaDataAction } from '../../services/moduleEditS
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) {
if (node.children.some(item => item.name === key)) {
parentKey = node.id;
} else if (getParentKey(key, node.children)) {
parentKey = getParentKey(key, node.children);
}
}
}
return parentKey;
};
@eventConnect
class PointLeftTree extends Component {
......@@ -22,15 +35,18 @@ class PointLeftTree extends Component {
selectedKeys: [],
treeData:[],
pointTypeArr:[],
pointType:''
pointType:'',
treeDataList : [],
searchValue:''
};
}
componentDidMount() {
let {treeData,pointTypeArr} = this.props;
let {treeData,pointTypeArr,treeDataList} = this.props;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
......@@ -42,9 +58,10 @@ class PointLeftTree extends Component {
}
componentWillReceiveProps(nextProps) {
console.log(nextProps)
let {treeData,pointTypeArr} = nextProps;
let {treeData,pointTypeArr,treeDataList} = nextProps;
this.setState({
treeData,
treeDataList,
pointTypeArr,
pointType: pointTypeArr[0]?pointTypeArr[0].code:''
})
......@@ -55,10 +72,21 @@ class PointLeftTree extends Component {
this.state.pointType = value;
this.props.pointTypeChange(value);
}
onSearchChange = (e, value) => {
console.log(e, value);
onSearchChange = e => {
const {treeDataList,treeData} = this.state
const value = e.target.value;
const expandedKeys = treeDataList
.map(item => {
if (item.title.indexOf(value) > -1) {
return getParentKey(item.title, treeData);
}
return null;
})
.filter((item, i, self) => item && self.indexOf(item) === i);
this.setState({
value
expandedKeys,
searchValue: value,
autoExpandParent: true
});
}
......@@ -80,9 +108,23 @@ class PointLeftTree extends Component {
}
renderTreeNodes = (data) => {
let {searchValue} =this.state
// console.log(data);
if (data.length>0) {
return data.map((item) => {
const index = item.name.indexOf(searchValue);
const beforeStr = item.name.substr(0, index);
const afterStr = item.name.substr(index + searchValue.length);
const title =
index > -1 ? (
<span>
{beforeStr}
<span style={{ color: '#f50' }}>{searchValue}</span>
{afterStr}
</span>
) : (
<span>{item.name}</span>
);
if (item.children) {
return (
<TreeNode
......@@ -90,7 +132,7 @@ class PointLeftTree extends Component {
<div>
{item.isRegion?
<span>
{item.name}
{title}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
......@@ -107,7 +149,7 @@ class PointLeftTree extends Component {
this.props.dragItemChange(item)
}}
>
{item.name}
{title}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
......@@ -129,46 +171,6 @@ class PointLeftTree extends Component {
</TreeNode>
);
}
return <TreeNode
key={item.id}
title={
<div>
{item.isRegion?
<span>
{item.name}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />:
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
}
</span>
</span>:
<span
draggable={true}
onDragStart={() => {
this.props.dragItemChange(item)
}}
>
{item.name}
<span className='icon'>
{
item.isRegion?item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />:
item.isBind?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/bindedTip.png' />:
item.position3d?<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/noSaveTip.png' />:
<img src='/mods/components/3dviewConvertor/assets/convertor/moduleEdit/nobindTip.png' />
}
</span>
</span>}
</div>
}
dataRef={item}
{...item}
// onClick={() => {console.log('aaa')}}
/>;
});
}
......@@ -181,27 +183,23 @@ class PointLeftTree extends Component {
this.setState({ selectedKeys });
this.props.selectPointChange(selectItem)
}
render() {
let { treeData, checkedPointsKeys,pointTypeArr,pointType } = this.state;
let { pageType } = this.props;
console.log(treeData)
console.log(this.props)
return (
<div className="leftTree">
<div className='leftContainer'>
<div className='topForm'>
{(pointType!='') &&
<Select onChange={this.onSelectChange} defaultValue={pointType} className='leftSelect'>
{
pointTypeArr.map(item => {
return (<Option value={item.code} >{item.name}</Option>)
})
}
</Select>
<Search className='leftSearch' icon="search" value={''} onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</Select>}
<Search className='leftSearch' icon="search" onChange={this.onSearchChange} onIconClick={this.onSearchChange} />
</div>
<div className='treeBox'>
<Tree
......
......@@ -100,22 +100,16 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
}
componentWillReceiveProps = nextProps => {
// if(nextProps.editFlag){
// this.markersCache.eachValue(obj=>{
// if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){
// this.setTwinkleConf(obj);
// }
// });
// }
if(nextProps.editFlag){
this.markersCache.eachValue(obj=>{
this.setTopCardConf(obj, obj.extData);
if(nextProps.selectPoints.type == obj.extData.type && nextProps.selectPoints.id ==obj.extData.id ){
this.setTwinkleConf(obj);
}
});
}
this.setState({ planStarted: nextProps.planStarted });
}
// onEditorChangeDone = (evt) => {
// if (evt && evt.target && evt.target.object){
// const marker = evt.target.object;
// //alert(marker.position.toArray());//(marker.extData
// this.props.addMarker(marker)
// }
// }
componentWillUnmount() {
this.objAnchorHelper && this.objAnchorHelper.destroy();
}
......@@ -165,9 +159,10 @@ export default function marker3DFactory(WrappedComponent = 'div', options){
}
}
markerCreated = ({ markersCache }) => {
let {editFlag,selectKey} =this.props
let {editFlag,selectKey,stagePilot} =this.props
this.markersCache = markersCache;
//this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
this.stagePilot =stagePilot;
this.outlineHelper = this.stagePilot ? this.stagePilot.outlineHelper : undefined;
markersCache.eachValue(obj=>{
this.setTopCardConf(obj, obj.extData);
......
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