|
@@ -7,19 +7,20 @@ import Icon from '@/tenants-ui/Icon';
|
|
|
|
|
|
type MapProps = {
|
|
|
type: string;
|
|
|
- searchText: any;
|
|
|
+ // searchText: any;
|
|
|
selFloorId?: string;
|
|
|
render: (item: API.MapInfo, index: number) => React.ReactNode;
|
|
|
mapList: API.MapInfo[];
|
|
|
mapSize: any;
|
|
|
};
|
|
|
|
|
|
-const Map: React.FC<MapProps> = ({ type, searchText, selFloorId, render, mapList, mapSize }) => {
|
|
|
+const Map: React.FC<MapProps> = ({ type, selFloorId, render, mapList, mapSize }) => {
|
|
|
//useModel 注释掉 不用啦 晚会删
|
|
|
// const { mapList, getMapListData } = useModel('map');
|
|
|
// useEffect(() => {
|
|
|
// getMapListData(selFloorId);
|
|
|
// }, [selFloorId]);
|
|
|
+ const { searchText, changeSearchText } = useModel('searchInfo');
|
|
|
|
|
|
const [startPageX, setStartPageX] = useState<number>(0);
|
|
|
const [startPageY, setStartPageY] = useState<number>(0);
|
|
@@ -34,8 +35,6 @@ const Map: React.FC<MapProps> = ({ type, searchText, selFloorId, render, mapList
|
|
|
// mapHeight: number = 1200;
|
|
|
|
|
|
const mouseDownEvent = (event: React.MouseEvent) => {
|
|
|
- // startPageX = event.pageX;
|
|
|
- //startPageY = event.pageY;
|
|
|
setStartPageX(event.pageX);
|
|
|
setStartPageY(event.pageY);
|
|
|
//console.log('mouseDownEvent', startPageX, event.pageY);
|
|
@@ -74,35 +73,44 @@ const Map: React.FC<MapProps> = ({ type, searchText, selFloorId, render, mapList
|
|
|
|
|
|
//实现搜索 搜索时 出现结果
|
|
|
useEffect(() => {
|
|
|
- //console.log('searchText', searchText);
|
|
|
-
|
|
|
//searchText使用对象 防止修改了 不再重新定位
|
|
|
- if (searchText && searchText.text) {
|
|
|
+ debugger;
|
|
|
+ if (searchText && searchText.text && mapList.length > 0) {
|
|
|
let left: any = 0,
|
|
|
top: any = 0;
|
|
|
|
|
|
- // mapList.map((item, index) => {
|
|
|
- // if (item.localName == (searchText && searchText.text)) {
|
|
|
- // left = -(item.left || 0);
|
|
|
- // top = -(item.top || 0);
|
|
|
- // }
|
|
|
- // });
|
|
|
var filterItem = mapList.filter((item) => {
|
|
|
return item.localName == (searchText && searchText.text);
|
|
|
});
|
|
|
-
|
|
|
- // if (filterItem.length == 0) {
|
|
|
- // return;
|
|
|
- // } else {
|
|
|
+ if (filterItem.length == 0) return;
|
|
|
left = -((filterItem[0] || {}).left || 0);
|
|
|
top = -((filterItem[0] || {}).top || 0);
|
|
|
setTranslateX(left);
|
|
|
setTranslateY(top);
|
|
|
- // }
|
|
|
+ changeSearchText({});
|
|
|
+ } else {
|
|
|
+ setTranslateX(0);
|
|
|
+ setTranslateY(0);
|
|
|
}
|
|
|
- }, [searchText, mapList]);
|
|
|
+ }, [mapList]);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ debugger;
|
|
|
+ if (searchText && searchText.text) {
|
|
|
+ let left: any = 0,
|
|
|
+ top: any = 0;
|
|
|
|
|
|
- useEffect(() => {}, [mapList]);
|
|
|
+ var filterItem = mapList.filter((item) => {
|
|
|
+ return item.localName == (searchText && searchText.text);
|
|
|
+ });
|
|
|
+ if (filterItem.length == 0) return;
|
|
|
+ left = -((filterItem[0] || {}).left || 0);
|
|
|
+ top = -((filterItem[0] || {}).top || 0);
|
|
|
+ setTranslateX(left);
|
|
|
+ setTranslateY(top);
|
|
|
+ changeSearchText({});
|
|
|
+ }
|
|
|
+ }, [searchText]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
// todo 要不要用呢
|