@vtx/ol-map 1.0.160 → 1.0.162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/lib/buffer-draw/BufferDraw.js +4 -3
  2. package/lib/buffer-draw/BufferDraw.js.map +1 -1
  3. package/lib/buffer-draw/index.js +3 -1
  4. package/lib/buffer-draw/index.js.map +1 -1
  5. package/lib/feature-draw/FeatureDraw.js +4 -3
  6. package/lib/feature-draw/FeatureDraw.js.map +1 -1
  7. package/lib/feature-draw/index.js +3 -1
  8. package/lib/feature-draw/index.js.map +1 -1
  9. package/lib/heatmap-layer/index.js +12 -3
  10. package/lib/heatmap-layer/index.js.map +1 -1
  11. package/lib/high-layer/HighLayer.js +2 -1
  12. package/lib/high-layer/HighLayer.js.map +1 -1
  13. package/lib/high-layer/index.js +4 -2
  14. package/lib/high-layer/index.js.map +1 -1
  15. package/lib/legend/index.js +3 -2
  16. package/lib/legend/index.js.map +1 -1
  17. package/lib/map/Popup.js +16 -11
  18. package/lib/map/Popup.js.map +1 -1
  19. package/lib/map/defaultTextEnum.js +165 -0
  20. package/lib/map/defaultTextEnum.js.map +1 -0
  21. package/lib/map/index.js +20 -15
  22. package/lib/map/index.js.map +1 -1
  23. package/lib/path-play-back/index.js.map +1 -1
  24. package/lib/poi-search/PoiList.js +9 -6
  25. package/lib/poi-search/PoiList.js.map +1 -1
  26. package/lib/search-map/index.js +14 -9
  27. package/lib/search-map/index.js.map +1 -1
  28. package/lib/tools/Search/index.js +21 -20
  29. package/lib/tools/Search/index.js.map +1 -1
  30. package/lib/tools/Toolbox/BoxSelect/index.js +4 -1
  31. package/lib/tools/Toolbox/BoxSelect/index.js.map +1 -1
  32. package/lib/tools/Toolbox/CircleSelect/index.js +4 -1
  33. package/lib/tools/Toolbox/CircleSelect/index.js.map +1 -1
  34. package/lib/tools/Toolbox/EagleEye/index.js +3 -2
  35. package/lib/tools/Toolbox/EagleEye/index.js.map +1 -1
  36. package/lib/tools/Toolbox/MapBookmark/index.js +40 -39
  37. package/lib/tools/Toolbox/MapBookmark/index.js.map +1 -1
  38. package/lib/tools/Toolbox/MapPrint/index.js +18 -16
  39. package/lib/tools/Toolbox/MapPrint/index.js.map +1 -1
  40. package/lib/tools/Toolbox/Measure/Measure.js +4 -3
  41. package/lib/tools/Toolbox/Measure/Measure.js.map +1 -1
  42. package/lib/tools/Toolbox/Measure/index.js +7 -5
  43. package/lib/tools/Toolbox/Measure/index.js.map +1 -1
  44. package/lib/tools/Toolbox/ScaleLine/index.js +3 -2
  45. package/lib/tools/Toolbox/ScaleLine/index.js.map +1 -1
  46. package/lib/tools/Toolbox/SelectTools/index.js +77 -65
  47. package/lib/tools/Toolbox/SelectTools/index.js.map +1 -1
  48. package/lib/tools/Toolbox/SpaceQuery/index.js +56 -51
  49. package/lib/tools/Toolbox/SpaceQuery/index.js.map +1 -1
  50. package/lib/tools/Toolbox/ZoomInput/index.js +4 -1
  51. package/lib/tools/Toolbox/ZoomInput/index.js.map +1 -1
  52. package/lib/tools/Toolbox/draftingPrint/index.css +2 -2
  53. package/lib/tools/Toolbox/draftingPrint/index.js +14 -12
  54. package/lib/tools/Toolbox/draftingPrint/index.js.map +1 -1
  55. package/lib/tools/Toolbox/draftingPrint/index.less +2 -2
  56. package/lib/tools/Toolbox/index.js +27 -27
  57. package/lib/tools/Toolbox/index.js.map +1 -1
  58. package/lib/tools/Utils/HighLayer.js +2 -1
  59. package/lib/tools/Utils/HighLayer.js.map +1 -1
  60. package/lib/tools/View/index.js +13 -12
  61. package/lib/tools/View/index.js.map +1 -1
  62. package/lib/tools/base-map-switch/index.js +39 -39
  63. package/lib/tools/base-map-switch/index.js.map +1 -1
  64. package/lib/tools/components/Chart/index.js +5 -1
  65. package/lib/tools/components/Chart/index.js.map +1 -1
  66. package/lib/tools/components/Table/index.js +5 -2
  67. package/lib/tools/components/Table/index.js.map +1 -1
  68. package/lib/tools/layer-control/index.js +3 -2
  69. package/lib/tools/layer-control/index.js.map +1 -1
  70. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_icons","_Table","_interopRequireDefault","_Modal","_layer","_layer2","_Polygon","_Draw","_useProps3","_classnames2","_ahooks","_ImageLayer","_WmsLayer","_turf","_Info","_Chart","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","toString","slice","constructor","name","test","l","u","next","done","classPrefix","getFeatureIntersects","polygon","feature","_feature$getGeometry","_feature$getGeometry2","_feature$getGeometry3","_lngLat$","lngLat","getGeometry","getCoordinates","poly","TurfPolygon","pt","B","getType","map","v","TurfPoint","intersects","TurfBooleanPointInPolygon","_lngLat$2","item","LayerSelect","props","_list","_props$options","options","onChange","currentKey","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","active","setActive","time","useRef","useUpdateEffect","createElement","Fragment","showOpen","list","onClick","current","clearTimeout","setTimeout","className","classnames","concat","Space","size","wrap","index","key","label","Divider","style","margin","Button","icon","VerticalAlignTopOutlined","VerticalAlignBottomOutlined","type","TableView","dataSource","otherColumns","columns","info","_useProps","useProps","_useState5","_useState6","title","dataIndex","width","render","text","record","_map$getViewport","doc","document","getElementsByClassName","rect","getBoundingClientRect","parentRect","getViewport","left","showTemplate","fitViewOptions","padding","minHeight","rowKey","CaretUpOutlined","CaretDownOutlined","TYPE","TableOutlined","BarChartOutlined","LineChartOutlined","PieChartOutlined","ChartView","data","height","yAxis","show","legend","xAxis","field","unit","series","radius","center","position","formatter","PipeDataView","_TYPE$","_useState7","_useState8","setType","chartData","useMemo","ds","d","totalLength","reduce","prev","cur","Segmented","toFixed","DEVICE_STATUS_NAME","color","DeviceInfo","val","deviceValues","device","factorValues","factor","monitorItemName","formatValue","collectFrequency","dataVal","maxValue","Math","max","minValue","min","avgValue","DeviceDataView","_useState9","_useState0","setFilter","_DEVICE_STATUS_NAME$t","tableData","status","getTotal","_default","exports","onClose","drawType","renderTableActive","statistic","_useProps2","_useState1","_useState10","currentLayerKey","setCurrentLayerKey","_useState11","_useState12","setDataSource","_useState13","_useState14","loading","setLoading","_useState15","_useState16","layersOpts","setLayersOpts","_useState17","_useState18","setFeature","draw","useDeepCompareEffect","useEffect","layersChange","getOptions","layers","on","un","Draw","zIndex","destroy","hideTemplate","_opts$","opts","getAllLayers","viewOnly","layerControl","_key","layer","getLayerByKey","_feature$getGeometry4","geometry","Image","WmsLayer","getWmsData","Vector","getWfsData","message","extent","getExtent","source","getSource","features","getFeatureInfo","listKeys","getKeys","labelField","NAME","forEachFeatureIntersectingExtent","featureList","addTableData","polygonGeometry","fromCircle","featureIntersects","setHighlightFeature","_layer$getSource","_layer$group","_filter","params_","cql_filter","group","getFilter","coorStr","coordinates","getWFSFeatureInfoByLayer","then","line_length","lineLength","isDeviceLayer","_layer$params","_layer$url","deviceTypeId","params","url","indexOf","Boolean","isPipeLineLayer","toUpperCase","Spin","spinning"],"sources":["tools/Toolbox/SelectTools/index.js"],"sourcesContent":["/*\r\n * @Description:框选、圈选、多边形选择\r\n */\r\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\r\nimport { message, Space, Divider, Button, Spin, Segmented } from 'antd';\r\nimport {\r\n CaretUpOutlined,\r\n CaretDownOutlined,\r\n TableOutlined,\r\n PieChartOutlined,\r\n BarChartOutlined,\r\n LineChartOutlined,\r\n} from '@ant-design/icons';\r\nimport Table from '../../components/Table';\r\nimport Modal from '../../components/Modal';\r\nimport { getWFSFeatureInfoByLayer } from '../../../_util/layer';\r\nimport { Image, Vector } from 'ol/layer';\r\nimport { fromCircle } from 'ol/geom/Polygon';\r\nimport Draw from '../../Utils/Draw';\r\nimport './index.less';\r\nimport useProps from '../../../use-props';\r\nimport classnames from 'classnames';\r\nimport { useUpdateEffect, useDeepCompareEffect } from 'ahooks';\r\nimport { VerticalAlignBottomOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';\r\nimport { getFilter } from '../../../image-layer/ImageLayer';\r\nimport WmsLayer from '../../../wms-layer/WmsLayer';\r\nimport {\r\n booleanPointInPolygon as TurfBooleanPointInPolygon,\r\n point as TurfPoint,\r\n polygon as TurfPolygon,\r\n} from '@turf/turf';\r\nimport Info from '../../components/Info';\r\nimport Chart from '../../components/Chart';\r\n\r\nconst classPrefix = 'selectTools';\r\n\r\nconst getFeatureIntersects = (polygon, feature) => {\r\n let lngLat = feature?.getGeometry()?.getCoordinates();\r\n const poly = TurfPolygon(polygon.getCoordinates());\r\n\r\n let pt;\r\n let B = false;\r\n\r\n if (feature?.getGeometry()?.getType() === 'Point') {\r\n lngLat.map(v => Number(v));\r\n pt = TurfPoint(lngLat);\r\n // 判断在点在多边形内\r\n if (poly && pt) {\r\n const intersects = TurfBooleanPointInPolygon(pt, poly);\r\n if (intersects) {\r\n B = true;\r\n }\r\n }\r\n }\r\n\r\n if (feature?.getGeometry()?.getType() === 'Polygon' && lngLat?.[0]?.length) {\r\n lngLat?.[0].map(v => Number(v));\r\n lngLat?.[0]?.map(item => {\r\n pt = TurfPoint(item);\r\n if (poly && pt) {\r\n const intersects = TurfBooleanPointInPolygon(pt, poly);\r\n if (intersects) {\r\n B = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return B;\r\n};\r\n\r\nconst LayerSelect = props => {\r\n const { options = [], value, onChange, currentKey } = props;\r\n const [open, setOpen] = useState(false);\r\n const [active, setActive] = useState(value);\r\n const time = useRef();\r\n\r\n useUpdateEffect(() => {\r\n setActive(value);\r\n }, [value]);\r\n\r\n if (!options?.length) {\r\n return <></>;\r\n }\r\n const showOpen = options?.length > 9;\r\n\r\n let list = options;\r\n if (options?.length) {\r\n if (!open) {\r\n if (options.length > 9) {\r\n list = options.slice(0, 9);\r\n }\r\n } else {\r\n list = options;\r\n }\r\n }\r\n\r\n const onClick = value => {\r\n setActive(value);\r\n currentKey.current = value;\r\n\r\n if (time.current) {\r\n clearTimeout(time.current);\r\n }\r\n\r\n time.current = setTimeout(() => {\r\n onChange?.(value);\r\n }, 500);\r\n };\r\n\r\n return (\r\n <div\r\n className={classnames(`${classPrefix}-layer-select`, {\r\n 'selectTools-layer-select-scroll': open,\r\n })}\r\n >\r\n <Space size={[8, 8]} wrap>\r\n {list?.length > 0 &&\r\n list.map((item, index) => (\r\n <div\r\n key={index}\r\n className={classnames(`${classPrefix}-layer-select-item`, {\r\n [`${classPrefix}-layer-select-item-active`]: active === item.value,\r\n })}\r\n onClick={() => onClick(item.value)}\r\n >\r\n {item.label}\r\n </div>\r\n ))}\r\n </Space>\r\n\r\n {showOpen && (\r\n <Divider style={{ margin: 0 }}>\r\n <Button\r\n icon={open ? <VerticalAlignTopOutlined /> : <VerticalAlignBottomOutlined />}\r\n onClick={() => setOpen(!open)}\r\n type=\"link\"\r\n >\r\n {open ? '收起' : '展开'}\r\n </Button>\r\n </Divider>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst TableView = props => {\r\n const { dataSource, columns: otherColumns, info } = props;\r\n const { map } = useProps();\r\n const [open, setOpen] = useState(true);\r\n\r\n const columns = [\r\n {\r\n title: '编码/名称',\r\n dataIndex: 'NAME',\r\n width: 180,\r\n render: (text, record) => {\r\n return (\r\n <a\r\n onClick={() => {\r\n let doc = document.getElementsByClassName('ol-map-tools')[0];\r\n let rect = doc?.getBoundingClientRect();\r\n let parentRect = map.getViewport()?.getBoundingClientRect();\r\n let left = 400;\r\n if (rect && parentRect) {\r\n left = rect?.left - parentRect?.left + 12 + 350 + 150;\r\n }\r\n map.showTemplate(record.feature, {\r\n fitViewOptions: { padding: [100, 400, 100, left] },\r\n });\r\n }}\r\n >\r\n {text}\r\n </a>\r\n );\r\n },\r\n },\r\n ...(otherColumns || []),\r\n ];\r\n\r\n return (\r\n <>\r\n <div style={{ minHeight: 20 }}>\r\n {open && (\r\n <>\r\n {info}\r\n <Table\r\n rowKey=\"code\"\r\n dataSource={dataSource}\r\n columns={columns}\r\n size=\"small\"\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n {dataSource?.length > 0 && (\r\n <div className=\"ol-map-search-result-button\" onClick={() => setOpen(!open)}>\r\n {open ? '收起' : '展开'}\r\n {open ? <CaretUpOutlined /> : <CaretDownOutlined />}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst TYPE = [\r\n { label: '表格', value: 'table', icon: <TableOutlined /> },\r\n { label: '柱状图', value: 'bar', icon: <BarChartOutlined /> },\r\n { label: '折线图', value: 'line', icon: <LineChartOutlined /> },\r\n { label: '饼图', value: 'pie', icon: <PieChartOutlined /> },\r\n];\r\n\r\nconst ChartView = props => {\r\n const { type, data } = props;\r\n return (\r\n <Chart\r\n style={{ height: 300 }}\r\n yAxis={{\r\n show: type !== 'pie',\r\n name: '条',\r\n }}\r\n legend={{ show: false }}\r\n xAxis={{\r\n show: type !== 'pie',\r\n field: 'name',\r\n }}\r\n unit=\"条\"\r\n series={[\r\n {\r\n type,\r\n name: '管线',\r\n radius: ['30%', '50%'],\r\n center: ['50%', '50%'],\r\n // data: data['供水量'] || [1000, 1200],\r\n ...(type === 'pie'\r\n ? {\r\n data,\r\n label: {\r\n show: true,\r\n position: 'outside',\r\n formatter: '{b}\\n{c}条',\r\n },\r\n }\r\n : {\r\n field: 'value',\r\n label: {\r\n show: true,\r\n position: 'top',\r\n formatter: '{c}条',\r\n },\r\n }),\r\n },\r\n ]}\r\n data={data}\r\n />\r\n );\r\n};\r\nconst PipeDataView = props => {\r\n const { dataSource } = props;\r\n const [type, setType] = useState(TYPE[0]?.value);\r\n\r\n const chartData = useMemo(() => {\r\n const data = [\r\n { name: '50mm以下', value: 0, filter: item => item.ds < 50 },\r\n { name: '50-100mm', value: 0, filter: item => item.ds >= 50 && item.ds < 100 },\r\n { name: '100-300mm', value: 0, filter: item => item.ds >= 100 && item.ds < 300 },\r\n { name: '300-600mm', value: 0, filter: item => item.ds >= 300 && item.ds < 600 },\r\n { name: '600-1000mm', value: 0, filter: item => item.ds >= 600 && item.ds < 1000 },\r\n { name: '1000mm以上', value: 0, filter: item => item.ds >= 1000 },\r\n ];\r\n dataSource.map(item => {\r\n item.ds = item.ds ? Number(item.ds) : 0;\r\n data.map(d => {\r\n if (d.filter(item)) {\r\n d.value += 1;\r\n }\r\n });\r\n });\r\n\r\n return data.filter(v => v.value > 0);\r\n }, [dataSource]);\r\n\r\n const columns = [\r\n {\r\n title: '长度(m)',\r\n dataIndex: 'lineLength',\r\n width: 100,\r\n },\r\n ];\r\n\r\n let totalLength = 0;\r\n if (dataSource?.length) {\r\n totalLength =\r\n dataSource.reduce((prev, cur) => {\r\n return prev + (cur['lineLength'] || 0);\r\n }, 0) / 1000;\r\n }\r\n return (\r\n <>\r\n <Segmented options={TYPE} value={type} onChange={setType} />\r\n\r\n {type === 'table' ? (\r\n <TableView\r\n columns={columns}\r\n dataSource={dataSource}\r\n info={\r\n <Info\r\n list={[\r\n { label: '管线总数', value: dataSource?.length || 0, unit: '条' },\r\n {\r\n label: '管线总长',\r\n value: totalLength\r\n ? Number(totalLength).toFixed(2)\r\n : totalLength,\r\n unit: 'km',\r\n },\r\n ]}\r\n />\r\n }\r\n />\r\n ) : (\r\n <ChartView data={chartData} type={type} />\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst DEVICE_STATUS_NAME = {\r\n 1: { label: '在线', color: '#119FFB' }, // 正常/在线\r\n 2: { label: '报警', color: '#CE3739' }, // 报警/异常\r\n 3: { label: '离线', color: '#AAAAAD' }, // 离线\r\n 4: { label: '故障', color: '#CE3739' }, // 故障/堵塞\r\n};\r\nconst DeviceInfo = props => {\r\n const { data } = props;\r\n\r\n const list = useMemo(() => {\r\n const val = {};\r\n data.map(item => {\r\n const { deviceValues } = item;\r\n if (deviceValues?.length) {\r\n deviceValues.map(device => {\r\n const { factorValues } = device;\r\n if (factorValues?.length) {\r\n factorValues.map(factor => {\r\n const { monitorItemName, formatValue, unit, collectFrequency } = factor;\r\n if (collectFrequency === 'realtime' && formatValue) {\r\n val[monitorItemName] = val[monitorItemName] || {\r\n name: monitorItemName,\r\n unit: unit,\r\n data: [],\r\n };\r\n val[monitorItemName].data.push(Number(formatValue));\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n const dataVal = [];\r\n for (let i in val) {\r\n const { data } = val[i];\r\n const maxValue = Math.max(...data);\r\n const minValue = Math.min(...data);\r\n const avgValue =\r\n data.reduce((prev, cur) => {\r\n return prev + cur;\r\n }, 0) / data.length;\r\n\r\n dataVal.push({\r\n ...val[i],\r\n maxValue,\r\n minValue,\r\n avgValue: avgValue ? Number(avgValue).toFixed(2) : avgValue,\r\n });\r\n }\r\n\r\n return dataVal;\r\n }, [data?.length]);\r\n\r\n if (!list?.length) {\r\n return <></>;\r\n }\r\n\r\n return (\r\n <div className={classnames(`${classPrefix}-device`)}>\r\n <div className={classnames(`${classPrefix}-device-top`)}>\r\n <div>监测项</div>\r\n <div>最大值</div>\r\n <div>最小值</div>\r\n <div>平均值</div>\r\n </div>\r\n <div className={classnames(`${classPrefix}-device-content`)}>\r\n {list?.length > 0 &&\r\n list.map((item, index) => (\r\n <div\r\n key={index}\r\n className={classnames(`${classPrefix}-device-content-item`)}\r\n >\r\n <div>{item.name}</div>\r\n <div>\r\n {item.maxValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n <div>\r\n {item.minValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n <div>\r\n {item.avgValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst DeviceDataView = props => {\r\n const { dataSource } = props;\r\n const [filter, setFilter] = useState(null);\r\n\r\n const columns = [\r\n {\r\n title: '状态',\r\n dataIndex: 'status',\r\n width: 100,\r\n render: text => {\r\n if (DEVICE_STATUS_NAME[text]) {\r\n const { color, label } = DEVICE_STATUS_NAME[text];\r\n return <span style={{ color }}>{label}</span>;\r\n }\r\n return '-';\r\n },\r\n },\r\n ];\r\n\r\n const tableData = useMemo(() => {\r\n return filter ? dataSource.filter(item => Number(item.status) === filter) : dataSource;\r\n }, [filter, dataSource?.length]);\r\n\r\n const getTotal = value => {\r\n return dataSource.filter(item => Number(item.status) === value).length;\r\n };\r\n return (\r\n <TableView\r\n columns={columns}\r\n dataSource={tableData}\r\n info={\r\n <div>\r\n <Info\r\n list={[\r\n {\r\n label: '总数',\r\n value: dataSource?.length || 0,\r\n unit: '个',\r\n onClick: () => setFilter(null),\r\n },\r\n {\r\n label: '在线',\r\n value: getTotal(1),\r\n unit: '个',\r\n onClick: () => setFilter(1),\r\n },\r\n {\r\n label: '报警',\r\n value: getTotal(2),\r\n unit: '个',\r\n onClick: () => setFilter(2),\r\n },\r\n {\r\n label: '离线',\r\n value: getTotal(3),\r\n unit: '个',\r\n onClick: () => setFilter(3),\r\n },\r\n ]}\r\n />\r\n <DeviceInfo data={dataSource} />\r\n </div>\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default props => {\r\n const { onClose, drawType, title, renderTableActive, statistic } = props;\r\n const { map } = useProps();\r\n const [currentLayerKey, setCurrentLayerKey] = useState('');\r\n const [dataSource, setDataSource] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [layersOpts, setLayersOpts] = useState([]);\r\n const [feature, setFeature] = useState({});\r\n\r\n const draw = useRef();\r\n const currentKey = useRef();\r\n\r\n useDeepCompareEffect(() => {\r\n onClick();\r\n }, [currentLayerKey, feature, layersOpts]);\r\n\r\n useEffect(() => {\r\n const layersChange = () => {\r\n getOptions();\r\n };\r\n\r\n layersChange();\r\n\r\n // 添加图层变化监听事件\r\n map.layers.on('change', layersChange);\r\n\r\n return () => {\r\n // 移除图层变化监听事件\r\n map.layers.un('change', layersChange);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n draw.current = new Draw({ map, zIndex: 80 });\r\n draw.current.draw(drawType, feature => {\r\n setFeature(feature);\r\n });\r\n return () => {\r\n draw.current.destroy();\r\n map.hideTemplate();\r\n currentKey.current = null;\r\n };\r\n }, []);\r\n\r\n const getOptions = () => {\r\n if (map) {\r\n let opts = [];\r\n let layers = map.getAllLayers().filter(v => {\r\n return (\r\n !v.viewOnly &&\r\n v.key &&\r\n v.name &&\r\n v.layerControl &&\r\n v.show &&\r\n v.key !== 'Highlight'\r\n );\r\n });\r\n layers.map(v => {\r\n opts.push({\r\n ...v,\r\n value: v.key,\r\n label: v.name,\r\n });\r\n });\r\n\r\n // 当前key对应的图层还显示的话取当前的key否者取第一个layersOpts的key\r\n let _key = opts?.[0]?.value;\r\n if (currentKey.current) {\r\n let layer = map.layers.getLayerByKey(currentKey.current);\r\n if (layer && layer?.show) {\r\n _key = currentKey.current;\r\n }\r\n }\r\n currentKey.current = _key;\r\n setCurrentLayerKey(_key);\r\n setLayersOpts(opts);\r\n }\r\n };\r\n\r\n const onClick = () => {\r\n setDataSource([]);\r\n if (!feature) return;\r\n let geometry = feature?.getGeometry?.();\r\n if (!geometry) return;\r\n setLoading(true);\r\n\r\n let layer = map.layers.getLayerByKey(currentLayerKey);\r\n if (geometry && currentLayerKey && layer) {\r\n let tableData = [];\r\n // wms图层\r\n if (layer instanceof Image || layer instanceof WmsLayer) {\r\n getWmsData(geometry, layer, tableData);\r\n } else if (layer instanceof Vector) {\r\n getWfsData(geometry, layer, tableData);\r\n }\r\n } else {\r\n setLoading(false);\r\n if (!geometry) {\r\n message.destroy();\r\n message.info('请先框选图层', 2);\r\n }\r\n if (!currentLayerKey) {\r\n message.destroy();\r\n message.info('请先选择图层', 2);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * @description: wfs图层时获取框选数据\r\n * @param {*} geometry\r\n * @param {*} layer\r\n * @param {*} tableData\r\n * @return {*}\r\n */\r\n const getWfsData = (geometry, layer, tableData) => {\r\n let extent = geometry.getExtent();\r\n let source = layer.getSource();\r\n let features = [];\r\n const getFeatureInfo = feature => {\r\n let listKeys = feature.getKeys();\r\n let data = {};\r\n listKeys.forEach(item => {\r\n if (feature.get(item)) {\r\n data[item] = feature.get(item);\r\n\r\n if (layer.labelField) {\r\n data.NAME = feature.get(layer.labelField);\r\n }\r\n\r\n data.feature = feature;\r\n }\r\n });\r\n return data;\r\n };\r\n if (source.forEachFeatureIntersectingExtent && extent) {\r\n source.forEachFeatureIntersectingExtent(extent, feature => {\r\n let featureList = feature.get('features');\r\n\r\n const addTableData = f => {\r\n let data = getFeatureInfo(f);\r\n tableData.push(data);\r\n features.push(f);\r\n };\r\n if (featureList?.length > 1) {\r\n featureList.forEach(f => {\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n const polygonGeometry = new fromCircle(geometry);\r\n const featureIntersects = getFeatureIntersects(polygonGeometry, f);\r\n if (!featureIntersects) {\r\n return;\r\n }\r\n }\r\n\r\n addTableData(f);\r\n });\r\n } else {\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n const polygonGeometry = new fromCircle(geometry);\r\n const featureIntersects = getFeatureIntersects(polygonGeometry, feature);\r\n if (!featureIntersects) {\r\n return;\r\n }\r\n }\r\n\r\n addTableData(feature);\r\n }\r\n });\r\n setLoading(false);\r\n map.setHighlightFeature(features);\r\n setDataSource(tableData);\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n /**\r\n * @description: wms图层时获取框选数据\r\n * @return {*}\r\n */\r\n const getWmsData = (geometry, layer, tableData) => {\r\n let _filter = layer?.getSource()?.params_?.cql_filter || '';\r\n\r\n if (layer?.group?.length) {\r\n _filter = getFilter(layer.group);\r\n }\r\n\r\n let coorStr = '';\r\n let coordinates = geometry.getCoordinates();\r\n\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n let polygonGeometry = new fromCircle(geometry);\r\n coordinates = polygonGeometry.getCoordinates();\r\n }\r\n\r\n coordinates[0].forEach((v, i) => {\r\n if (i == 0) {\r\n coorStr += `${v[0]} ${v[1]}`;\r\n } else {\r\n coorStr += `, ${v[0]} ${v[1]}`;\r\n }\r\n });\r\n // 增加图层的其他过滤\r\n const filter = _filter ? `(${_filter}) and ` : '';\r\n\r\n getWFSFeatureInfoByLayer(\r\n layer,\r\n `${filter}INTERSECTS(geo_location, POLYGON((${coorStr})))`,\r\n ).then(features => {\r\n setLoading(false);\r\n map.setHighlightFeature(features);\r\n if (features?.length) {\r\n features.forEach(item => {\r\n let listKeys = item.getKeys();\r\n let data = {};\r\n listKeys.forEach(key => {\r\n if (item.get(key)) {\r\n data[key] = item.get(key);\r\n data.feature = item;\r\n }\r\n });\r\n if (layer.labelField) {\r\n data.NAME = item.get(layer.labelField) || '';\r\n }\r\n\r\n // 处理管线长度字段\r\n if (data.line_length) {\r\n data.lineLength = data.lineLength || data.line_length;\r\n }\r\n\r\n tableData.push(data);\r\n });\r\n setDataSource(tableData);\r\n } else {\r\n message.destroy();\r\n message.info('暂无数据', 2);\r\n }\r\n });\r\n };\r\n\r\n // 判断是否是设备图层\r\n const isDeviceLayer = useMemo(() => {\r\n const layer = map?.getLayerByKey(currentLayerKey);\r\n const deviceTypeId = layer?.params?.deviceTypeId;\r\n const url = layer?.url?.indexOf('/cloud/device/deviceMap/list') !== -1;\r\n return Boolean(deviceTypeId && url);\r\n }, [currentLayerKey]);\r\n\r\n // 判断是否是管线图层\r\n const isPipeLineLayer = currentLayerKey && currentLayerKey.toUpperCase().indexOf('LINE') !== -1;\r\n\r\n return (\r\n <Modal title={title || ''} onClose={onClose} width={300}>\r\n <Spin spinning={loading}>\r\n <LayerSelect\r\n options={layersOpts}\r\n value={currentLayerKey}\r\n onChange={setCurrentLayerKey}\r\n currentKey={currentKey}\r\n />\r\n\r\n {renderTableActive && renderTableActive(dataSource, currentLayerKey, onClick)}\r\n\r\n {statistic ? (\r\n isPipeLineLayer ? (\r\n <PipeDataView dataSource={dataSource} />\r\n ) : isDeviceLayer ? (\r\n <DeviceDataView dataSource={dataSource} />\r\n ) : (\r\n <TableView dataSource={dataSource} />\r\n )\r\n ) : (\r\n <TableView dataSource={dataSource} />\r\n )}\r\n </Spin>\r\n </Modal>\r\n );\r\n};\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_antd","_icons","_Table","_interopRequireDefault","_Modal","_layer","_layer2","_Polygon","_Draw","_useProps6","_classnames2","_ahooks","_ImageLayer","_WmsLayer","_turf","_Info","_Chart","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","toString","slice","constructor","name","test","l","u","next","done","classPrefix","getFeatureIntersects","polygon","feature","_feature$getGeometry","_feature$getGeometry2","_feature$getGeometry3","_lngLat$","lngLat","getGeometry","getCoordinates","poly","TurfPolygon","pt","B","getType","map","v","TurfPoint","intersects","TurfBooleanPointInPolygon","_lngLat$2","item","LayerSelect","props","_list","_props$options","options","onChange","currentKey","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","active","setActive","time","useRef","useUpdateEffect","createElement","Fragment","showOpen","list","onClick","current","clearTimeout","setTimeout","className","classnames","concat","Space","size","wrap","index","key","label","Divider","style","margin","Button","icon","VerticalAlignTopOutlined","VerticalAlignBottomOutlined","type","TableView","dataSource","otherColumns","columns","info","_useProps","useProps","TextEnum","_useState5","_useState6","title","codeName","dataIndex","width","render","text","record","_map$getViewport","doc","document","getElementsByClassName","rect","getBoundingClientRect","parentRect","getViewport","left","showTemplate","fitViewOptions","padding","minHeight","rowKey","locale","emptyText","noData","collapse","expand","CaretUpOutlined","CaretDownOutlined","TYPE","table","TableOutlined","barChart","BarChartOutlined","lineChart","LineChartOutlined","pieChart","PieChartOutlined","ChartView","_useProps2","data","height","yAxis","show","unitItemText","legend","xAxis","field","unit","series","radius","center","position","formatter","PipeDataView","_TYPE$","_useProps3","_useState7","_useState8","setType","chartData","useMemo","under50mm","ds","over1000mm","d","lengthM","totalLength","reduce","prev","cur","Segmented","pipeTotalCount","pipeTotalLength","toFixed","DeviceInfo","val","deviceValues","device","factorValues","factor","monitorItemName","formatValue","collectFrequency","dataVal","maxValue","Math","max","minValue","min","avgValue","DeviceDataView","_useState9","_useState0","setFilter","_useProps4","DEVICE_STATUS_NAME","online","color","alarm","offline","fault","status","_DEVICE_STATUS_NAME$t","tableData","getTotal","total","unitGeText","_default","exports","onClose","drawType","renderTableActive","statistic","_useProps5","_useState1","_useState10","currentLayerKey","setCurrentLayerKey","_useState11","_useState12","setDataSource","_useState13","_useState14","loading","setLoading","_useState15","_useState16","layersOpts","setLayersOpts","_useState17","_useState18","setFeature","draw","useDeepCompareEffect","useEffect","layersChange","getOptions","layers","on","un","Draw","zIndex","destroy","hideTemplate","_opts$","opts","getAllLayers","viewOnly","layerControl","_key","layer","getLayerByKey","_feature$getGeometry4","geometry","Image","WmsLayer","getWmsData","Vector","getWfsData","message","extent","getExtent","source","getSource","features","getFeatureInfo","listKeys","getKeys","labelField","NAME","forEachFeatureIntersectingExtent","featureList","addTableData","polygonGeometry","fromCircle","featureIntersects","setHighlightFeature","_layer$getSource","_layer$group","_filter","params_","cql_filter","group","getFilter","coorStr","coordinates","getWFSFeatureInfoByLayer","then","line_length","lineLength","isDeviceLayer","_layer$params","_layer$url","deviceTypeId","params","url","indexOf","Boolean","isPipeLineLayer","toUpperCase","Spin","spinning"],"sources":["tools/Toolbox/SelectTools/index.js"],"sourcesContent":["/*\r\n * @Description:框选、圈选、多边形选择\r\n */\r\nimport React, { useEffect, useRef, useState, useMemo, use } from 'react';\r\nimport { message, Space, Divider, Button, Spin, Segmented } from 'antd';\r\nimport {\r\n CaretUpOutlined,\r\n CaretDownOutlined,\r\n TableOutlined,\r\n PieChartOutlined,\r\n BarChartOutlined,\r\n LineChartOutlined,\r\n} from '@ant-design/icons';\r\nimport Table from '../../components/Table';\r\nimport Modal from '../../components/Modal';\r\nimport { getWFSFeatureInfoByLayer } from '../../../_util/layer';\r\nimport { Image, Vector } from 'ol/layer';\r\nimport { fromCircle } from 'ol/geom/Polygon';\r\nimport Draw from '../../Utils/Draw';\r\nimport './index.less';\r\nimport useProps from '../../../use-props';\r\nimport classnames from 'classnames';\r\nimport { useUpdateEffect, useDeepCompareEffect } from 'ahooks';\r\nimport { VerticalAlignBottomOutlined, VerticalAlignTopOutlined } from '@ant-design/icons';\r\nimport { getFilter } from '../../../image-layer/ImageLayer';\r\nimport WmsLayer from '../../../wms-layer/WmsLayer';\r\nimport {\r\n booleanPointInPolygon as TurfBooleanPointInPolygon,\r\n point as TurfPoint,\r\n polygon as TurfPolygon,\r\n} from '@turf/turf';\r\nimport Info from '../../components/Info';\r\nimport Chart from '../../components/Chart';\r\n\r\nconst classPrefix = 'selectTools';\r\n\r\nconst getFeatureIntersects = (polygon, feature) => {\r\n let lngLat = feature?.getGeometry()?.getCoordinates();\r\n const poly = TurfPolygon(polygon.getCoordinates());\r\n\r\n let pt;\r\n let B = false;\r\n\r\n if (feature?.getGeometry()?.getType() === 'Point') {\r\n lngLat.map(v => Number(v));\r\n pt = TurfPoint(lngLat);\r\n // 判断在点在多边形内\r\n if (poly && pt) {\r\n const intersects = TurfBooleanPointInPolygon(pt, poly);\r\n if (intersects) {\r\n B = true;\r\n }\r\n }\r\n }\r\n\r\n if (feature?.getGeometry()?.getType() === 'Polygon' && lngLat?.[0]?.length) {\r\n lngLat?.[0].map(v => Number(v));\r\n lngLat?.[0]?.map(item => {\r\n pt = TurfPoint(item);\r\n if (poly && pt) {\r\n const intersects = TurfBooleanPointInPolygon(pt, poly);\r\n if (intersects) {\r\n B = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return B;\r\n};\r\n\r\nconst LayerSelect = props => {\r\n const { options = [], value, onChange, currentKey } = props;\r\n const [open, setOpen] = useState(false);\r\n const [active, setActive] = useState(value);\r\n const time = useRef();\r\n\r\n useUpdateEffect(() => {\r\n setActive(value);\r\n }, [value]);\r\n\r\n if (!options?.length) {\r\n return <></>;\r\n }\r\n const showOpen = options?.length > 9;\r\n\r\n let list = options;\r\n if (options?.length) {\r\n if (!open) {\r\n if (options.length > 9) {\r\n list = options.slice(0, 9);\r\n }\r\n } else {\r\n list = options;\r\n }\r\n }\r\n\r\n const onClick = value => {\r\n setActive(value);\r\n currentKey.current = value;\r\n\r\n if (time.current) {\r\n clearTimeout(time.current);\r\n }\r\n\r\n time.current = setTimeout(() => {\r\n onChange?.(value);\r\n }, 500);\r\n };\r\n\r\n return (\r\n <div\r\n className={classnames(`${classPrefix}-layer-select`, {\r\n 'selectTools-layer-select-scroll': open,\r\n })}\r\n >\r\n <Space size={[8, 8]} wrap>\r\n {list?.length > 0 &&\r\n list.map((item, index) => (\r\n <div\r\n key={index}\r\n className={classnames(`${classPrefix}-layer-select-item`, {\r\n [`${classPrefix}-layer-select-item-active`]: active === item.value,\r\n })}\r\n onClick={() => onClick(item.value)}\r\n >\r\n {item.label}\r\n </div>\r\n ))}\r\n </Space>\r\n\r\n {showOpen && (\r\n <Divider style={{ margin: 0 }}>\r\n <Button\r\n icon={open ? <VerticalAlignTopOutlined /> : <VerticalAlignBottomOutlined />}\r\n onClick={() => setOpen(!open)}\r\n type=\"link\"\r\n >\r\n {open ? '收起' : '展开'}\r\n </Button>\r\n </Divider>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst TableView = props => {\r\n const { dataSource, columns: otherColumns, info } = props;\r\n const { map, TextEnum } = useProps();\r\n const [open, setOpen] = useState(true);\r\n\r\n const columns = [\r\n {\r\n title: TextEnum.codeName,\r\n dataIndex: 'NAME',\r\n width: 180,\r\n render: (text, record) => {\r\n return (\r\n <a\r\n onClick={() => {\r\n let doc = document.getElementsByClassName('ol-map-tools')[0];\r\n let rect = doc?.getBoundingClientRect();\r\n let parentRect = map.getViewport()?.getBoundingClientRect();\r\n let left = 400;\r\n if (rect && parentRect) {\r\n left = rect?.left - parentRect?.left + 12 + 350 + 150;\r\n }\r\n map.showTemplate(record.feature, {\r\n fitViewOptions: { padding: [100, 400, 100, left] },\r\n });\r\n }}\r\n >\r\n {text}\r\n </a>\r\n );\r\n },\r\n },\r\n ...(otherColumns || []),\r\n ];\r\n\r\n return (\r\n <>\r\n <div style={{ minHeight: 20 }}>\r\n {open && (\r\n <>\r\n {info}\r\n <Table\r\n rowKey=\"code\"\r\n dataSource={dataSource}\r\n columns={columns}\r\n size=\"small\"\r\n locale={{\r\n emptyText: TextEnum.noData,\r\n\r\n }}\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n {dataSource?.length > 0 && (\r\n <div className=\"ol-map-search-result-button\" onClick={() => setOpen(!open)}>\r\n {open ? TextEnum.collapse : TextEnum.expand}\r\n {open ? <CaretUpOutlined /> : <CaretDownOutlined />}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nconst TYPE = (TextEnum) => {\r\n\r\n return [\r\n { label: TextEnum.table, value: 'table', icon: <TableOutlined /> },\r\n { label: TextEnum.barChart, value: 'bar', icon: <BarChartOutlined /> },\r\n { label: TextEnum.lineChart, value: 'line', icon: <LineChartOutlined /> },\r\n { label: TextEnum.pieChart, value: 'pie', icon: <PieChartOutlined /> },\r\n ]\r\n};\r\n\r\nconst ChartView = props => {\r\n const { TextEnum } = useProps();\r\n const { type, data } = props;\r\n return (\r\n <Chart\r\n style={{ height: 300 }}\r\n yAxis={{\r\n show: type !== 'pie',\r\n name: TextEnum.unitItemText,\r\n }}\r\n legend={{ show: false }}\r\n xAxis={{\r\n show: type !== 'pie',\r\n field: 'name',\r\n }}\r\n unit={TextEnum.unitItemText}\r\n series={[\r\n {\r\n type,\r\n name: '管线',\r\n radius: ['30%', '50%'],\r\n center: ['50%', '50%'],\r\n // data: data['供水量'] || [1000, 1200],\r\n ...(type === 'pie'\r\n ? {\r\n data,\r\n label: {\r\n show: true,\r\n position: 'outside',\r\n formatter: '{b}\\n{c}条',\r\n },\r\n }\r\n : {\r\n field: 'value',\r\n label: {\r\n show: true,\r\n position: 'top',\r\n formatter: '{c}条',\r\n },\r\n }),\r\n },\r\n ]}\r\n data={data}\r\n />\r\n );\r\n};\r\nconst PipeDataView = props => {\r\n const { dataSource } = props;\r\n const { TextEnum } = useProps();\r\n const [type, setType] = useState(TYPE(TextEnum)[0]?.value);\r\n\r\n const chartData = useMemo(() => {\r\n const data = [\r\n { name: TextEnum.under50mm, value: 0, filter: item => item.ds < 50 },\r\n { name: '50-100mm', value: 0, filter: item => item.ds >= 50 && item.ds < 100 },\r\n { name: '100-300mm', value: 0, filter: item => item.ds >= 100 && item.ds < 300 },\r\n { name: '300-600mm', value: 0, filter: item => item.ds >= 300 && item.ds < 600 },\r\n { name: '600-1000mm', value: 0, filter: item => item.ds >= 600 && item.ds < 1000 },\r\n { name: TextEnum.over1000mm, value: 0, filter: item => item.ds >= 1000 },\r\n ];\r\n dataSource.map(item => {\r\n item.ds = item.ds ? Number(item.ds) : 0;\r\n data.map(d => {\r\n if (d.filter(item)) {\r\n d.value += 1;\r\n }\r\n });\r\n });\r\n\r\n return data.filter(v => v.value > 0);\r\n }, [dataSource]);\r\n\r\n const columns = [\r\n {\r\n title: TextEnum.lengthM,\r\n dataIndex: 'lineLength',\r\n width: 100,\r\n },\r\n ];\r\n\r\n let totalLength = 0;\r\n if (dataSource?.length) {\r\n totalLength =\r\n dataSource.reduce((prev, cur) => {\r\n return prev + (cur['lineLength'] || 0);\r\n }, 0) / 1000;\r\n }\r\n return (\r\n <>\r\n <Segmented options={TYPE(TextEnum)} value={type} onChange={setType} />\r\n\r\n {type === 'table' ? (\r\n <TableView\r\n columns={columns}\r\n dataSource={dataSource}\r\n info={\r\n <Info\r\n list={[\r\n { label: TextEnum.pipeTotalCount, value: dataSource?.length || 0, unit: TextEnum.unitItemText },\r\n {\r\n label: TextEnum.pipeTotalLength,\r\n value: totalLength\r\n ? Number(totalLength).toFixed(2)\r\n : totalLength,\r\n unit: 'km',\r\n },\r\n ]}\r\n />\r\n }\r\n />\r\n ) : (\r\n <ChartView data={chartData} type={type} />\r\n )}\r\n </>\r\n );\r\n};\r\n\r\n\r\nconst DeviceInfo = props => {\r\n const { data } = props;\r\n\r\n const list = useMemo(() => {\r\n const val = {};\r\n data.map(item => {\r\n const { deviceValues } = item;\r\n if (deviceValues?.length) {\r\n deviceValues.map(device => {\r\n const { factorValues } = device;\r\n if (factorValues?.length) {\r\n factorValues.map(factor => {\r\n const { monitorItemName, formatValue, unit, collectFrequency } = factor;\r\n if (collectFrequency === 'realtime' && formatValue) {\r\n val[monitorItemName] = val[monitorItemName] || {\r\n name: monitorItemName,\r\n unit: unit,\r\n data: [],\r\n };\r\n val[monitorItemName].data.push(Number(formatValue));\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n const dataVal = [];\r\n for (let i in val) {\r\n const { data } = val[i];\r\n const maxValue = Math.max(...data);\r\n const minValue = Math.min(...data);\r\n const avgValue =\r\n data.reduce((prev, cur) => {\r\n return prev + cur;\r\n }, 0) / data.length;\r\n\r\n dataVal.push({\r\n ...val[i],\r\n maxValue,\r\n minValue,\r\n avgValue: avgValue ? Number(avgValue).toFixed(2) : avgValue,\r\n });\r\n }\r\n\r\n return dataVal;\r\n }, [data?.length]);\r\n\r\n if (!list?.length) {\r\n return <></>;\r\n }\r\n\r\n return (\r\n <div className={classnames(`${classPrefix}-device`)}>\r\n <div className={classnames(`${classPrefix}-device-top`)}>\r\n <div>监测项</div>\r\n <div>最大值</div>\r\n <div>最小值</div>\r\n <div>平均值</div>\r\n </div>\r\n <div className={classnames(`${classPrefix}-device-content`)}>\r\n {list?.length > 0 &&\r\n list.map((item, index) => (\r\n <div\r\n key={index}\r\n className={classnames(`${classPrefix}-device-content-item`)}\r\n >\r\n <div>{item.name}</div>\r\n <div>\r\n {item.maxValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n <div>\r\n {item.minValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n <div>\r\n {item.avgValue}\r\n <span>{item.unit}</span>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\nconst DeviceDataView = props => {\r\n const { dataSource } = props;\r\n const [filter, setFilter] = useState(null);\r\n const { TextEnum } = useProps();\r\n const DEVICE_STATUS_NAME = {\r\n 1: { label: TextEnum.online, color: '#119FFB' }, // 正常/在线\r\n 2: { label: TextEnum.alarm, color: '#CE3739' }, // 报警/异常\r\n 3: { label: TextEnum.offline, color: '#AAAAAD' }, // 离线\r\n 4: { label: TextEnum.fault, color: '#CE3739' }, // 故障/堵塞\r\n };\r\n const columns = [\r\n {\r\n title: TextEnum.status,\r\n dataIndex: 'status',\r\n width: 100,\r\n render: text => {\r\n if (DEVICE_STATUS_NAME[text]) {\r\n const { color, label } = DEVICE_STATUS_NAME[text];\r\n return <span style={{ color }}>{label}</span>;\r\n }\r\n return '-';\r\n },\r\n },\r\n ];\r\n\r\n const tableData = useMemo(() => {\r\n return filter ? dataSource.filter(item => Number(item.status) === filter) : dataSource;\r\n }, [filter, dataSource?.length]);\r\n\r\n const getTotal = value => {\r\n return dataSource.filter(item => Number(item.status) === value).length;\r\n };\r\n return (\r\n <TableView\r\n columns={columns}\r\n dataSource={tableData}\r\n info={\r\n <div>\r\n <Info\r\n list={[\r\n {\r\n label: TextEnum.total,\r\n value: dataSource?.length || 0,\r\n unit: TextEnum.unitGeText,\r\n onClick: () => setFilter(null),\r\n },\r\n {\r\n label: TextEnum.online,\r\n value: getTotal(1),\r\n unit: TextEnum.unitGeText,\r\n onClick: () => setFilter(1),\r\n },\r\n {\r\n label: TextEnum.alarm,\r\n value: getTotal(2),\r\n unit: TextEnum.unitGeText,\r\n onClick: () => setFilter(2),\r\n },\r\n {\r\n label: TextEnum.offline,\r\n value: getTotal(3),\r\n unit: TextEnum.unitGeText,\r\n onClick: () => setFilter(3),\r\n },\r\n ]}\r\n />\r\n <DeviceInfo data={dataSource} />\r\n </div>\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default props => {\r\n const { onClose, drawType, title, renderTableActive, statistic } = props;\r\n const { map } = useProps();\r\n const [currentLayerKey, setCurrentLayerKey] = useState('');\r\n const [dataSource, setDataSource] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const [layersOpts, setLayersOpts] = useState([]);\r\n const [feature, setFeature] = useState({});\r\n\r\n const draw = useRef();\r\n const currentKey = useRef();\r\n\r\n useDeepCompareEffect(() => {\r\n onClick();\r\n }, [currentLayerKey, feature, layersOpts]);\r\n\r\n useEffect(() => {\r\n const layersChange = () => {\r\n getOptions();\r\n };\r\n\r\n layersChange();\r\n\r\n // 添加图层变化监听事件\r\n map.layers.on('change', layersChange);\r\n\r\n return () => {\r\n // 移除图层变化监听事件\r\n map.layers.un('change', layersChange);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n draw.current = new Draw({ map, zIndex: 80 });\r\n draw.current.draw(drawType, feature => {\r\n setFeature(feature);\r\n });\r\n return () => {\r\n draw.current.destroy();\r\n map.hideTemplate();\r\n currentKey.current = null;\r\n };\r\n }, []);\r\n\r\n const getOptions = () => {\r\n if (map) {\r\n let opts = [];\r\n let layers = map.getAllLayers().filter(v => {\r\n return (\r\n !v.viewOnly &&\r\n v.key &&\r\n v.name &&\r\n v.layerControl &&\r\n v.show &&\r\n v.key !== 'Highlight'\r\n );\r\n });\r\n layers.map(v => {\r\n opts.push({\r\n ...v,\r\n value: v.key,\r\n label: v.name,\r\n });\r\n });\r\n\r\n // 当前key对应的图层还显示的话取当前的key否者取第一个layersOpts的key\r\n let _key = opts?.[0]?.value;\r\n if (currentKey.current) {\r\n let layer = map.layers.getLayerByKey(currentKey.current);\r\n if (layer && layer?.show) {\r\n _key = currentKey.current;\r\n }\r\n }\r\n currentKey.current = _key;\r\n setCurrentLayerKey(_key);\r\n setLayersOpts(opts);\r\n }\r\n };\r\n\r\n const onClick = () => {\r\n setDataSource([]);\r\n if (!feature) return;\r\n let geometry = feature?.getGeometry?.();\r\n if (!geometry) return;\r\n setLoading(true);\r\n\r\n let layer = map.layers.getLayerByKey(currentLayerKey);\r\n if (geometry && currentLayerKey && layer) {\r\n let tableData = [];\r\n // wms图层\r\n if (layer instanceof Image || layer instanceof WmsLayer) {\r\n getWmsData(geometry, layer, tableData);\r\n } else if (layer instanceof Vector) {\r\n getWfsData(geometry, layer, tableData);\r\n }\r\n } else {\r\n setLoading(false);\r\n if (!geometry) {\r\n message.destroy();\r\n message.info('请先框选图层', 2);\r\n }\r\n if (!currentLayerKey) {\r\n message.destroy();\r\n message.info('请先选择图层', 2);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * @description: wfs图层时获取框选数据\r\n * @param {*} geometry\r\n * @param {*} layer\r\n * @param {*} tableData\r\n * @return {*}\r\n */\r\n const getWfsData = (geometry, layer, tableData) => {\r\n let extent = geometry.getExtent();\r\n let source = layer.getSource();\r\n let features = [];\r\n const getFeatureInfo = feature => {\r\n let listKeys = feature.getKeys();\r\n let data = {};\r\n listKeys.forEach(item => {\r\n if (feature.get(item)) {\r\n data[item] = feature.get(item);\r\n\r\n if (layer.labelField) {\r\n data.NAME = feature.get(layer.labelField);\r\n }\r\n\r\n data.feature = feature;\r\n }\r\n });\r\n return data;\r\n };\r\n if (source.forEachFeatureIntersectingExtent && extent) {\r\n source.forEachFeatureIntersectingExtent(extent, feature => {\r\n let featureList = feature.get('features');\r\n\r\n const addTableData = f => {\r\n let data = getFeatureInfo(f);\r\n tableData.push(data);\r\n features.push(f);\r\n };\r\n if (featureList?.length > 1) {\r\n featureList.forEach(f => {\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n const polygonGeometry = new fromCircle(geometry);\r\n const featureIntersects = getFeatureIntersects(polygonGeometry, f);\r\n if (!featureIntersects) {\r\n return;\r\n }\r\n }\r\n\r\n addTableData(f);\r\n });\r\n } else {\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n const polygonGeometry = new fromCircle(geometry);\r\n const featureIntersects = getFeatureIntersects(polygonGeometry, feature);\r\n if (!featureIntersects) {\r\n return;\r\n }\r\n }\r\n\r\n addTableData(feature);\r\n }\r\n });\r\n setLoading(false);\r\n map.setHighlightFeature(features);\r\n setDataSource(tableData);\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n /**\r\n * @description: wms图层时获取框选数据\r\n * @return {*}\r\n */\r\n const getWmsData = (geometry, layer, tableData) => {\r\n let _filter = layer?.getSource()?.params_?.cql_filter || '';\r\n\r\n if (layer?.group?.length) {\r\n _filter = getFilter(layer.group);\r\n }\r\n\r\n let coorStr = '';\r\n let coordinates = geometry.getCoordinates();\r\n\r\n // 圈选处理\r\n if (drawType === 'Circle') {\r\n let polygonGeometry = new fromCircle(geometry);\r\n coordinates = polygonGeometry.getCoordinates();\r\n }\r\n\r\n coordinates[0].forEach((v, i) => {\r\n if (i == 0) {\r\n coorStr += `${v[0]} ${v[1]}`;\r\n } else {\r\n coorStr += `, ${v[0]} ${v[1]}`;\r\n }\r\n });\r\n // 增加图层的其他过滤\r\n const filter = _filter ? `(${_filter}) and ` : '';\r\n\r\n getWFSFeatureInfoByLayer(\r\n layer,\r\n `${filter}INTERSECTS(geo_location, POLYGON((${coorStr})))`,\r\n ).then(features => {\r\n setLoading(false);\r\n map.setHighlightFeature(features);\r\n if (features?.length) {\r\n features.forEach(item => {\r\n let listKeys = item.getKeys();\r\n let data = {};\r\n listKeys.forEach(key => {\r\n if (item.get(key)) {\r\n data[key] = item.get(key);\r\n data.feature = item;\r\n }\r\n });\r\n if (layer.labelField) {\r\n data.NAME = item.get(layer.labelField) || '';\r\n }\r\n\r\n // 处理管线长度字段\r\n if (data.line_length) {\r\n data.lineLength = data.lineLength || data.line_length;\r\n }\r\n\r\n tableData.push(data);\r\n });\r\n setDataSource(tableData);\r\n } else {\r\n message.destroy();\r\n message.info('暂无数据', 2);\r\n }\r\n });\r\n };\r\n\r\n // 判断是否是设备图层\r\n const isDeviceLayer = useMemo(() => {\r\n const layer = map?.getLayerByKey(currentLayerKey);\r\n const deviceTypeId = layer?.params?.deviceTypeId;\r\n const url = layer?.url?.indexOf('/cloud/device/deviceMap/list') !== -1;\r\n return Boolean(deviceTypeId && url);\r\n }, [currentLayerKey]);\r\n\r\n // 判断是否是管线图层\r\n const isPipeLineLayer = currentLayerKey && currentLayerKey.toUpperCase().indexOf('LINE') !== -1;\r\n\r\n return (\r\n <Modal title={title || ''} onClose={onClose} width={300}>\r\n <Spin spinning={loading}>\r\n <LayerSelect\r\n options={layersOpts}\r\n value={currentLayerKey}\r\n onChange={setCurrentLayerKey}\r\n currentKey={currentKey}\r\n />\r\n\r\n {renderTableActive && renderTableActive(dataSource, currentLayerKey, onClick)}\r\n\r\n {statistic ? (\r\n isPipeLineLayer ? (\r\n <PipeDataView dataSource={dataSource} />\r\n ) : isDeviceLayer ? (\r\n <DeviceDataView dataSource={dataSource} />\r\n ) : (\r\n <TableView dataSource={dataSource} />\r\n )\r\n ) : (\r\n <TableView dataSource={dataSource} />\r\n )}\r\n </Spin>\r\n </Modal>\r\n );\r\n};\r\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ var _Draw = _interopRequireDefault(require("../../Utils/Draw"));
18
18
  var _Polygon = require("ol/geom/Polygon");
19
19
  require("./index.less");
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
- var _useProps2 = _interopRequireDefault(require("../../../use-props"));
21
+ var _useProps4 = _interopRequireDefault(require("../../../use-props"));
22
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
23
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
24
24
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
@@ -31,24 +31,6 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
31
31
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
32
32
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
33
33
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
34
- var CONFIG = {
35
- '1': {
36
- name: '数值',
37
- operator: ['=', '>', '<', '>=', '<=']
38
- },
39
- '2': {
40
- name: '字符串',
41
- operator: ['=', '包含']
42
- },
43
- '3': {
44
- name: '枚举',
45
- operator: ['=', '包含']
46
- },
47
- '4': {
48
- name: '布尔',
49
- operator: ['=']
50
- }
51
- };
52
34
  var LAYER = {
53
35
  GSGW: {
54
36
  label: '供水管线',
@@ -76,7 +58,7 @@ var LAYER = {
76
58
  }
77
59
  };
78
60
  // 数据转条件
79
- var dataToCQLFilter = function dataToCQLFilter(data, whereValue) {
61
+ var dataToCQLFilter = function dataToCQLFilter(data, whereValue, TextEnum) {
80
62
  var cql_filter = '';
81
63
  if (data !== null && data !== void 0 && data.length) {
82
64
  data.map(function (v) {
@@ -84,7 +66,7 @@ var dataToCQLFilter = function dataToCQLFilter(data, whereValue) {
84
66
  field = v.field,
85
67
  operator = v.operator,
86
68
  value = v.value;
87
- if (operator === '包含') {
69
+ if (operator === TextEnum.contains) {
88
70
  if (String(type) === '3') {
89
71
  operator = 'in';
90
72
  value = "(".concat(value.join(','), ")");
@@ -142,11 +124,13 @@ var Value = function Value(props) {
142
124
  value = props.value,
143
125
  status = props.status,
144
126
  _onChange = props.onChange;
127
+ var _useProps = (0, _useProps4["default"])(),
128
+ TextEnum = _useProps.TextEnum;
145
129
  if (type === '3') {
146
130
  return /*#__PURE__*/_react["default"].createElement(_antd.Select, {
147
131
  status: status,
148
132
  value: value,
149
- mode: operator === '包含' ? 'multiple' : null,
133
+ mode: operator === TextEnum.contains ? 'multiple' : null,
150
134
  style: {
151
135
  width: '100%'
152
136
  },
@@ -163,10 +147,10 @@ var Value = function Value(props) {
163
147
  },
164
148
  onChange: _onChange,
165
149
  options: [{
166
- label: '否',
150
+ label: TextEnum.no,
167
151
  value: 0
168
152
  }, {
169
- label: '是',
153
+ label: TextEnum.yes,
170
154
  value: 1
171
155
  }]
172
156
  });
@@ -196,6 +180,26 @@ var Table = function Table(props) {
196
180
  _useState6 = _slicedToArray(_useState5, 2),
197
181
  whereValue = _useState6[0],
198
182
  setWhereValue = _useState6[1];
183
+ var _useProps2 = (0, _useProps4["default"])(),
184
+ TextEnum = _useProps2.TextEnum;
185
+ var CONFIG = {
186
+ '1': {
187
+ name: TextEnum.number,
188
+ operator: ['=', '>', '<', '>=', '<=']
189
+ },
190
+ '2': {
191
+ name: TextEnum.string,
192
+ operator: ['=', TextEnum.contains]
193
+ },
194
+ '3': {
195
+ name: TextEnum["enum"],
196
+ operator: ['=', TextEnum.contains]
197
+ },
198
+ '4': {
199
+ name: TextEnum.contains,
200
+ operator: ['=']
201
+ }
202
+ };
199
203
  (0, _react.useEffect)(function () {
200
204
  setDataSource([{
201
205
  key: new Date().getTime()
@@ -273,7 +277,7 @@ var Table = function Table(props) {
273
277
  var _dataSource = _toConsumableArray(dataSource);
274
278
  _dataSource[index].operator = value;
275
279
  _dataSource[index].operator_status = '';
276
- _dataSource[index].value = value === '包含' ? [] : '';
280
+ _dataSource[index].value = value === TextEnum.contains ? [] : '';
277
281
  setDataSource(_dataSource);
278
282
  };
279
283
  var onValueChange = function onValueChange(value, index) {
@@ -299,16 +303,16 @@ var Table = function Table(props) {
299
303
  var onFinish = function onFinish() {
300
304
  var error = verifyData();
301
305
  if (!error) {
302
- var cql_filter = dataToCQLFilter(dataSource, whereValue);
306
+ var cql_filter = dataToCQLFilter(dataSource, whereValue, TextEnum);
303
307
  onAnalysis(cql_filter);
304
308
  } else {
305
- _antd.message.info('查询条件存在空项');
309
+ _antd.message.info(TextEnum.queryCondHasEmpty);
306
310
  }
307
311
  };
308
312
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
309
313
  className: (0, _classnames["default"])('space-query-row')
310
314
  }, /*#__PURE__*/_react["default"].createElement(_RequiredLabel["default"], {
311
- label: "\u6761\u4EF6\u5173\u7CFB"
315
+ label: TextEnum.conditionRelation
312
316
  }, /*#__PURE__*/_react["default"].createElement(_antd.Radio.Group, {
313
317
  style: {
314
318
  paddingLeft: 6
@@ -319,16 +323,16 @@ var Table = function Table(props) {
319
323
  value: whereValue
320
324
  }, /*#__PURE__*/_react["default"].createElement(_antd.Radio, {
321
325
  value: "and"
322
- }, "\u5E76\u4E14"), /*#__PURE__*/_react["default"].createElement(_antd.Radio, {
326
+ }, TextEnum.and), /*#__PURE__*/_react["default"].createElement(_antd.Radio, {
323
327
  value: "or"
324
- }, "\u6216\u8005"))), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
328
+ }, TextEnum.or))), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
325
329
  type: "primary",
326
330
  onClick: onFinish
327
- }, "\u67E5\u8BE2")), /*#__PURE__*/_react["default"].createElement(_antd.Table, {
331
+ }, TextEnum.search)), /*#__PURE__*/_react["default"].createElement(_antd.Table, {
328
332
  className: (0, _classnames["default"])('space-query-table'),
329
333
  size: "middle",
330
334
  columns: [{
331
- title: '序号',
335
+ title: TextEnum.serialNumber,
332
336
  dataIndex: 'num',
333
337
  width: 50,
334
338
  align: 'center',
@@ -337,7 +341,7 @@ var Table = function Table(props) {
337
341
  }
338
342
  }, {
339
343
  title: /*#__PURE__*/_react["default"].createElement(_RequiredLabel["default"], {
340
- label: "\u5B57\u6BB5"
344
+ label: TextEnum.field
341
345
  }),
342
346
  dataIndex: 'field',
343
347
  width: 120,
@@ -354,7 +358,7 @@ var Table = function Table(props) {
354
358
  }
355
359
  }, {
356
360
  title: /*#__PURE__*/_react["default"].createElement(_RequiredLabel["default"], {
357
- label: "\u64CD\u4F5C\u7B26"
361
+ label: TextEnum.operator
358
362
  }),
359
363
  dataIndex: 'operator',
360
364
  width: 100,
@@ -371,7 +375,7 @@ var Table = function Table(props) {
371
375
  }
372
376
  }, {
373
377
  title: /*#__PURE__*/_react["default"].createElement(_RequiredLabel["default"], {
374
- label: "\u503C"
378
+ label: TextEnum.value
375
379
  }),
376
380
  dataIndex: 'value',
377
381
  width: 120,
@@ -390,7 +394,7 @@ var Table = function Table(props) {
390
394
  });
391
395
  }
392
396
  }, {
393
- title: '操作',
397
+ title: TextEnum.operationText,
394
398
  dataIndex: 'c',
395
399
  width: 50,
396
400
  align: 'left',
@@ -406,7 +410,7 @@ var Table = function Table(props) {
406
410
  _dataSource.splice(index, 1);
407
411
  setDataSource(_dataSource);
408
412
  }
409
- }, "\u5220\u9664");
413
+ }, TextEnum.remove);
410
414
  }
411
415
  }],
412
416
  dataSource: dataSource,
@@ -424,14 +428,15 @@ var Table = function Table(props) {
424
428
  });
425
429
  setDataSource(newTableData);
426
430
  }
427
- }, "+\u6DFB\u52A0");
431
+ }, "+ ", TextEnum.add);
428
432
  }
429
433
  }));
430
434
  };
431
435
  function _default(props) {
432
436
  var onClose = props.onClose;
433
- var _useProps = (0, _useProps2["default"])(),
434
- map = _useProps.map;
437
+ var _useProps3 = (0, _useProps4["default"])(),
438
+ map = _useProps3.map,
439
+ TextEnum = _useProps3.TextEnum;
435
440
  var _useState7 = (0, _react.useState)(''),
436
441
  _useState8 = _slicedToArray(_useState7, 2),
437
442
  layerKey = _useState8[0],
@@ -489,11 +494,11 @@ function _default(props) {
489
494
  };
490
495
  var onAnalysis = function onAnalysis(cql_filter) {
491
496
  if (!layerKey) {
492
- return _antd.message.info('请选择查询图层');
497
+ return _antd.message.info(TextEnum.selectQueryLayer);
493
498
  }
494
499
  var features = drawRef.current.source.getFeatures();
495
500
  if (!(features !== null && features !== void 0 && features.length)) {
496
- return _antd.message.info('请绘制查询范围');
501
+ return _antd.message.info(TextEnum.drawQueryArea);
497
502
  }
498
503
  var geometry = features[0].getGeometry();
499
504
  var coorStr = '';
@@ -528,38 +533,38 @@ function _default(props) {
528
533
  });
529
534
  };
530
535
  return /*#__PURE__*/_react["default"].createElement(_Modal["default"], {
531
- title: "\u7A7A\u95F4\u5B9A\u4F4D\u67E5\u8BE2",
536
+ title: TextEnum.spatialQuery,
532
537
  onClose: onClose,
533
538
  width: 500
534
539
  }, /*#__PURE__*/_react["default"].createElement("div", {
535
540
  className: (0, _classnames["default"])('space-query-row')
536
541
  }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
537
542
  options: layerList,
538
- title: "\u56FE\u5C42\u9009\u62E9",
543
+ title: TextEnum.layerSelect,
539
544
  value: layerKey,
540
545
  onChange: onLayerChange
541
546
  }), /*#__PURE__*/_react["default"].createElement(_ToolsSelect["default"], {
542
- title: "\u5730\u56FE\u9009\u62E9",
547
+ title: TextEnum.mapSelect,
543
548
  value: toolsKey,
544
549
  onChange: onToolsChange,
545
550
  options: [{
546
- label: '框选',
551
+ label: TextEnum.boxSelect,
547
552
  key: 'DragBox',
548
553
  isActive: false,
549
554
  icon: 'icon-kuangxuan'
550
555
  }, {
551
- label: '圈选',
556
+ label: TextEnum.circleSelect,
552
557
  key: 'Circle',
553
558
  isActive: false,
554
559
  icon: 'icon-quanxuan'
555
560
  }, {
556
- label: '多边形选择',
561
+ label: TextEnum.polygonSelect,
557
562
  key: 'Polygon',
558
563
  isActive: false,
559
564
  icon: 'icon-duobianxingxuanze'
560
565
  }]
561
566
  })), /*#__PURE__*/_react["default"].createElement(_antd.Tabs, null, /*#__PURE__*/_react["default"].createElement(_antd.Tabs.TabPane, {
562
- tab: "\u67E5\u8BE2\u6761\u4EF6",
567
+ tab: TextEnum.queryCondition,
563
568
  key: "1"
564
569
  }, /*#__PURE__*/_react["default"].createElement(Table, {
565
570
  map: map,
@@ -567,11 +572,11 @@ function _default(props) {
567
572
  layerList: layerList,
568
573
  onAnalysis: onAnalysis
569
574
  })), /*#__PURE__*/_react["default"].createElement(_antd.Tabs.TabPane, {
570
- tab: "\u67E5\u8BE2\u7ED3\u679C",
575
+ tab: TextEnum.queryResult,
571
576
  key: "2"
572
577
  }, /*#__PURE__*/_react["default"].createElement(_Table["default"], {
573
578
  columns: [{
574
- title: '编码',
579
+ title: TextEnum.code,
575
580
  dataIndex: ['values_', 'code'],
576
581
  width: 100,
577
582
  render: function render(text) {