Skip to content

Commit 6f23867

Browse files
committed
fix(components): 🐛 modifying parameters for measuring area drawing is ineffective
1 parent b805ab3 commit 6f23867

File tree

5 files changed

+33
-45
lines changed

5 files changed

+33
-45
lines changed

packages/components/analyses/src/index.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
/*
22
* @Author: zouyaoji@https://github.com/zouyaoji
33
* @Date: 2022-01-06 10:23:09
4-
* @LastEditTime: 2023-03-13 17:56:05
4+
* @LastEditTime: 2024-03-27 13:55:06
55
* @LastEditors: zouyaoji 370681295@qq.com
66
* @Description:
7-
* @FilePath: \vue-cesium@next\packages\components\analyses\src\index.ts
7+
* @FilePath: \vue-cesium\packages\components\analyses\src\index.ts
88
*/
99

1010
import type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPublicInstance } from '@vue-cesium/utils/types'
1111
import { defineComponent, getCurrentInstance, reactive, ref, computed, VNode } from 'vue'
1212
import { useLocale } from '@vue-cesium/composables'
1313
import { defaultOptions, analysesProps, VcAnalysesProps } from './defaultProps'
1414
import type { AnalysisActionCmpRef, VcDrawingActionInstance, VcDrawingOpts, VcViewshedAnalysisOpts } from '@vue-cesium/utils/drawing-types'
15-
import { camelize, deepMerge } from '@vue-cesium/utils/util'
15+
import { camelize } from '@vue-cesium/utils/util'
1616
import type { VcFabActionRef, VcFabProps, VcFabRef } from '@vue-cesium/components/ui'
1717
import useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'
1818
import VcAnalysisSightline from './sightline'
1919
import VcAnalysisViewshed from './viewshed'
2020
import { drawingEmit } from '@vue-cesium/utils/emits'
21-
import { cloneDeep, isEqual } from 'lodash-es'
21+
import { cloneDeep, isEqual, merge } from 'lodash-es'
2222

2323
const emits = {
2424
...drawingEmit,
@@ -51,14 +51,12 @@ export default defineComponent({
5151
const sightlineActionOpts = reactive<VcActionTooltipProps>(
5252
Object.assign({}, defaultOptions.sightlineActionOpts, mergeActionOpts('sightlineActionOpts'))
5353
)
54-
const sightlineAnalysisOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.sightlineAnalysisOpts), props.sightlineAnalysisOpts))
54+
const sightlineAnalysisOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.sightlineAnalysisOpts), props.sightlineAnalysisOpts))
5555

5656
const viewshedActionOpts = reactive<VcActionTooltipProps>(
5757
Object.assign({}, defaultOptions.viewshedActionOpts, mergeActionOpts('viewshedActionOpts'))
5858
)
59-
const viewshedAnalysisOpts = reactive<VcViewshedAnalysisOpts>(
60-
deepMerge(cloneDeep(defaultOptions.viewshedAnalysisOpts), props.viewshedAnalysisOpts)
61-
)
59+
const viewshedAnalysisOpts = reactive<VcViewshedAnalysisOpts>(merge(cloneDeep(defaultOptions.viewshedAnalysisOpts), props.viewshedAnalysisOpts))
6260

6361
options.sightlineActionOpts = sightlineActionOpts
6462
options.sightlineAnalysisOpts = sightlineAnalysisOpts

packages/components/drawings/src/index.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineComponent, getCurrentInstance, ref, reactive, VNode, computed } from 'vue'
22
import { drawingsProps, defaultOptions } from './defaultProps'
3-
import { camelize, deepMerge } from '@vue-cesium/utils/util'
3+
import { camelize } from '@vue-cesium/utils/util'
44
import type { VcFabActionRef, VcFabProps, VcFabRef } from '@vue-cesium/components/ui'
55
import type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPublicInstance } from '@vue-cesium/utils/types'
66
import VcDrawingPin from './pin'
@@ -14,7 +14,7 @@ import useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'
1414
import { useLocale } from '@vue-cesium/composables'
1515
import { drawingEmit } from '@vue-cesium/utils/emits'
1616
import { VcDrawingsProps } from '..'
17-
import { cloneDeep, isEqual } from 'lodash-es'
17+
import { cloneDeep, isEqual, merge } from 'lodash-es'
1818

1919
const emits = {
2020
...drawingEmit,
@@ -43,27 +43,27 @@ export default defineComponent({
4343
const mainFabOpts = reactive<VcActionTooltipProps & VcFabProps>(Object.assign({}, defaultOptions.mainFabOpts, props.mainFabOpts))
4444
const fabActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.fabActionOpts, props.fabActionOpts))
4545
const pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, mergeActionOpts('pointActionOpts')))
46-
const pointDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.pointDrawingOpts), props.pointDrawingOpts))
46+
const pointDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.pointDrawingOpts), props.pointDrawingOpts))
4747
const polylineActionOpts = reactive<VcActionTooltipProps>(
4848
Object.assign({}, defaultOptions.polylineActionOpts, mergeActionOpts('polylineActionOpts'))
4949
)
50-
const polylineDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.polylineDrawingOpts), props.polylineDrawingOpts))
50+
const polylineDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.polylineDrawingOpts), props.polylineDrawingOpts))
5151
const polygonActionOpts = reactive<VcActionTooltipProps>(
5252
Object.assign({}, defaultOptions.polygonActionOpts, mergeActionOpts('polygonActionOpts'))
5353
)
54-
const polygonDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.polygonDrawingOpts), props.polygonDrawingOpts))
54+
const polygonDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.polygonDrawingOpts), props.polygonDrawingOpts))
5555
const rectangleActionOpts = reactive<VcActionTooltipProps>(
5656
Object.assign({}, defaultOptions.rectangleActionOpts, mergeActionOpts('rectangleActionOpts'))
5757
)
58-
const rectangleDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.rectangleDrawingOpts), props.rectangleDrawingOpts))
58+
const rectangleDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.rectangleDrawingOpts), props.rectangleDrawingOpts))
5959
const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, mergeActionOpts('circleActionOpts')))
60-
const circleDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.circleDrawingOpts), props.circleDrawingOpts))
60+
const circleDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.circleDrawingOpts), props.circleDrawingOpts))
6161
const regularActionOpts = reactive<VcActionTooltipProps>(
6262
Object.assign({}, defaultOptions.regularActionOpts, mergeActionOpts('regularActionOpts'))
6363
)
64-
const regularDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.regularDrawingOpts), props.regularDrawingOpts))
64+
const regularDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.regularDrawingOpts), props.regularDrawingOpts))
6565
const pinActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pinActionOpts, mergeActionOpts('pinActionOpts')))
66-
const pinDrawingOpts = reactive<VcDrawingOpts>(deepMerge(cloneDeep(defaultOptions.pinDrawingOpts), props.pinDrawingOpts))
66+
const pinDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.pinDrawingOpts), props.pinDrawingOpts))
6767

6868
options.pointActionOpts = pointActionOpts
6969
options.pointDrawingOpts = pointDrawingOpts

packages/components/measurements/src/index.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineComponent, getCurrentInstance, ref, reactive, computed, VNode } from 'vue'
22
import { measurementsProps, defaultOptions, VcMeasurementsProps } from './defaultProps'
3-
import { camelize, deepMerge } from '@vue-cesium/utils/util'
3+
import { camelize } from '@vue-cesium/utils/util'
44
import { VcFabActionRef, VcFabProps, VcFabRef } from '@vue-cesium/components/ui'
55
import VcMeasurementDistance from './distance'
66
import VcMeasurementPolyline from './polyline'
@@ -24,7 +24,7 @@ import type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPubl
2424
import { useLocale } from '@vue-cesium/composables'
2525
import useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'
2626
import { drawingEmit } from '@vue-cesium/utils/emits'
27-
import { isEqual, cloneDeep } from 'lodash-es'
27+
import { isEqual, cloneDeep, merge } from 'lodash-es'
2828

2929
const emits = {
3030
...drawingEmit,
@@ -56,65 +56,65 @@ export default defineComponent({
5656
Object.assign({}, defaultOptions.distanceActionOpts, mergeActionOpts('distanceActionOpts'))
5757
)
5858
const distanceMeasurementOpts = reactive<VcMeasurementOpts>(
59-
deepMerge(cloneDeep(defaultOptions.distanceMeasurementOpts), props.distanceMeasurementOpts)
59+
merge(cloneDeep(defaultOptions.distanceMeasurementOpts), props.distanceMeasurementOpts)
6060
)
6161

6262
const componentDistanceActionOpts = reactive<VcActionTooltipProps>(
6363
Object.assign({}, defaultOptions.componentDistanceActionOpts, mergeActionOpts('componentDistanceActionOpts'))
6464
)
6565
const componentDistanceMeasurementOpts = reactive<VcComponentDistanceMeasurementOpts>(
66-
deepMerge(cloneDeep(defaultOptions.componentDistanceMeasurementOpts), props.componentDistanceMeasurementOpts)
66+
merge(cloneDeep(defaultOptions.componentDistanceMeasurementOpts), props.componentDistanceMeasurementOpts)
6767
)
6868

6969
const polylineActionOpts = reactive<VcActionTooltipProps>(
7070
Object.assign({}, defaultOptions.polylineActionOpts, mergeActionOpts('polylineActionOpts'))
7171
)
7272
const polylineMeasurementOpts = reactive<VcPolylineMeasurementOpts>(
73-
deepMerge(cloneDeep(defaultOptions.polylineMeasurementOpts), props.polylineMeasurementOpts)
73+
merge(cloneDeep(defaultOptions.polylineMeasurementOpts), props.polylineMeasurementOpts)
7474
)
7575

7676
const horizontalActionOpts = reactive<VcActionTooltipProps>(
7777
Object.assign({}, defaultOptions.horizontalActionOpts, mergeActionOpts('horizontalActionOpts'))
7878
)
7979
const horizontalMeasurementOpts = reactive<VcHorizontalMeasurementOpts>(
80-
deepMerge(cloneDeep(defaultOptions.horizontalMeasurementOpts), props.horizontalMeasurementOpts)
80+
merge(cloneDeep(defaultOptions.horizontalMeasurementOpts), props.horizontalMeasurementOpts)
8181
)
8282

8383
const verticalActionOpts = reactive<VcActionTooltipProps>(
8484
Object.assign({}, defaultOptions.verticalActionOpts, mergeActionOpts('verticalActionOpts'))
8585
)
8686
const verticalMeasurementOpts = reactive<VcMeasurementOpts>(
87-
deepMerge(cloneDeep(defaultOptions.verticalMeasurementOpts), props.verticalMeasurementOpts)
87+
merge(cloneDeep(defaultOptions.verticalMeasurementOpts), props.verticalMeasurementOpts)
8888
)
8989

9090
const heightActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.heightActionOpts, mergeActionOpts('heightActionOpts')))
91-
const heightMeasurementOpts = reactive<VcMeasurementOpts>(deepMerge(cloneDeep(defaultOptions.heightMeasurementOpts), props.heightMeasurementOpts))
91+
const heightMeasurementOpts = reactive<VcMeasurementOpts>(merge(cloneDeep(defaultOptions.heightMeasurementOpts), props.heightMeasurementOpts))
9292

9393
const areaActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.areaActionOpts, mergeActionOpts('areaActionOpts')))
9494
const areaMeasurementOpts = reactive<VcPolylineMeasurementOpts>(
95-
deepMerge(cloneDeep(defaultOptions.areaMeasurementOpts), props.areaMeasurementOpts)
95+
merge(cloneDeep(defaultOptions.areaMeasurementOpts), props.areaMeasurementOpts)
9696
)
9797

9898
const pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, mergeActionOpts('pointActionOpts')))
99-
const pointMeasurementOpts = reactive<VcMeasurementOpts>(deepMerge(cloneDeep(defaultOptions.pointMeasurementOpts), props.pointMeasurementOpts))
99+
const pointMeasurementOpts = reactive<VcMeasurementOpts>(merge(cloneDeep(defaultOptions.pointMeasurementOpts), props.pointMeasurementOpts))
100100

101101
const rectangleActionOpts = reactive<VcActionTooltipProps>(
102102
Object.assign({}, defaultOptions.rectangleActionOpts, mergeActionOpts('rectangleActionOpts'))
103103
)
104104
const rectangleMeasurementOpts = reactive<VcRegularMeasurementOpts>(
105-
deepMerge(cloneDeep(defaultOptions.rectangleMeasurementOpts), props.rectangleMeasurementOpts)
105+
merge(cloneDeep(defaultOptions.rectangleMeasurementOpts), props.rectangleMeasurementOpts)
106106
)
107107

108108
const regularActionOpts = reactive<VcActionTooltipProps>(
109109
Object.assign({}, defaultOptions.regularActionOpts, mergeActionOpts('regularActionOpts'))
110110
)
111111
const regularMeasurementOpts = reactive<VcRegularMeasurementOpts>(
112-
deepMerge(cloneDeep(defaultOptions.regularMeasurementOpts), props.regularMeasurementOpts)
112+
merge(cloneDeep(defaultOptions.regularMeasurementOpts), props.regularMeasurementOpts)
113113
)
114114

115115
const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, mergeActionOpts('circleActionOpts')))
116116
const circleMeasurementOpts = reactive<VcRegularMeasurementOpts>(
117-
deepMerge(cloneDeep(defaultOptions.circleMeasurementOpts), props.circleMeasurementOpts)
117+
merge(cloneDeep(defaultOptions.circleMeasurementOpts), props.circleMeasurementOpts)
118118
)
119119

120120
const options: any = {}

packages/components/overlays/typhoon/index.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,13 @@ import {
2525
VcPointProps,
2626
VcPolygon
2727
} from '@vue-cesium/components/primitive-collections'
28-
import { cloneDeep, uniqWith } from 'lodash-es'
28+
import { cloneDeep, merge, uniqWith } from 'lodash-es'
2929
import useLog from '@vue-cesium/composables/private/use-log'
3030
import { VcPrimitive, VcPrimitiveProps } from '@vue-cesium/components/primitives'
3131
import { VcGeometryInstance } from '@vue-cesium/components/geometry-instance'
3232
import { VcGeometryPolyline, VcGeometryPolylineProps } from '@vue-cesium/components/geometries'
3333
import VcOverlayHtml from '@vue-cesium/components/overlays/html'
3434
import circle from '@turf/circle'
35-
import { deepMerge } from '@vue-cesium/utils/util'
3635
import { useCommon } from '@vue-cesium/composables'
3736

3837
const defaultPointProps = {
@@ -148,7 +147,7 @@ export default defineComponent({
148147
const position = [point.lng, point.lat]
149148
datasource.positions.push(position)
150149

151-
const pointProps = typeof props.pointProps === 'function' ? deepMerge(cloneDeep(defaultPointProps), props.pointProps(point)) : props.pointProps
150+
const pointProps = typeof props.pointProps === 'function' ? merge(cloneDeep(defaultPointProps), props.pointProps(point)) : props.pointProps
152151
datasource.points.push({
153152
id: point.id || Cesium.createGuid(),
154153
position,
@@ -431,12 +430,12 @@ export default defineComponent({
431430
if (typhoonDatasource.positions.length > 1) {
432431
const linePrimitiveProps: any =
433432
typeof props.linePrimitiveProps === 'function'
434-
? deepMerge(cloneDeep(defaultLinePrimitiveProps), props.linePrimitiveProps(typhoonDatasource))
433+
? merge(cloneDeep(defaultLinePrimitiveProps), props.linePrimitiveProps(typhoonDatasource))
435434
: props.linePrimitiveProps
436435

437436
const lineGeometryProps =
438437
typeof props.lineGeometryProps === 'function'
439-
? deepMerge(cloneDeep(defaultLineGeometryProps), props.lineGeometryProps(typhoonDatasource))
438+
? merge(cloneDeep(defaultLineGeometryProps), props.lineGeometryProps(typhoonDatasource))
440439
: props.lineGeometryProps
441440

442441
children.push(
@@ -522,7 +521,7 @@ export default defineComponent({
522521
// polygon 台风风圈
523522
if (typhoonDatasource.type === 'live') {
524523
const labelProps =
525-
typeof props.labelProps === 'function' ? deepMerge(cloneDeep(defaultLabelProps), props.labelProps(typhoonDatasource)) : props.labelProps
524+
typeof props.labelProps === 'function' ? merge(cloneDeep(defaultLabelProps), props.labelProps(typhoonDatasource)) : props.labelProps
526525

527526
//text 台风名字
528527
children.push(

packages/utils/util.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -197,15 +197,6 @@ export function isArrayLike(obj) {
197197
return typeof length === 'number' && length >= 0
198198
}
199199

200-
// 深度合并
201-
export function deepMerge<T = any>(src: any = {}, target: any = {}): T {
202-
let key: string
203-
for (key in target) {
204-
src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key])
205-
}
206-
return src
207-
}
208-
209200
export function isNumber(v) {
210201
return typeof v === 'number' && isFinite(v)
211202
}

0 commit comments

Comments
 (0)