diff --git a/core/core-frontend/config/dev.ts b/core/core-frontend/config/dev.ts
index 4fe7742..6bb8c2c 100644
--- a/core/core-frontend/config/dev.ts
+++ b/core/core-frontend/config/dev.ts
@@ -2,13 +2,13 @@ export default {
server: {
proxy: {
'/api/f': {
- target: 'http://192.168.1.58:8100',
+ target: 'http://192.168.1.20:8100',
changeOrigin: true,
rewrite: path => path.replace(/^\/api\/f/, 'de2api')
},
// 使用 proxy 实例
'/api': {
- target: 'http://192.168.1.58:8100',
+ target: 'http://192.168.1.20:8100',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, 'de2api')
}
diff --git a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue
index 750bb22..26ade8f 100644
--- a/core/core-frontend/src/components/data-visualization/canvas/Shape.vue
+++ b/core/core-frontend/src/components/data-visualization/canvas/Shape.vue
@@ -386,7 +386,8 @@ const boardMoveActive = computed(() => {
'symbolic-map',
'heat-map',
't-heatmap',
- 'circle-packing'
+ 'circle-packing',
+ 'three-map'
]
return element.value.isPlugin || CHARTS.includes(element.value.innerType)
})
diff --git a/core/core-frontend/src/components/three-display/index.vue b/core/core-frontend/src/components/three-display/index.vue
new file mode 100644
index 0000000..8539e24
--- /dev/null
+++ b/core/core-frontend/src/components/three-display/index.vue
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/core-frontend/src/components/visualization/SettingMenu.vue b/core/core-frontend/src/components/visualization/SettingMenu.vue
index 33c51bd..9138e07 100644
--- a/core/core-frontend/src/components/visualization/SettingMenu.vue
+++ b/core/core-frontend/src/components/visualization/SettingMenu.vue
@@ -176,7 +176,8 @@ const state = reactive({
'word-cloud',
'flow-map',
'bidirectional-bar',
- 'symbolic-map'
+ 'symbolic-map',
+ 'three-map'
],
linkageExcludeViewType: [
'richTextView',
@@ -187,7 +188,8 @@ const state = reactive({
'word-cloud',
'flow-map',
'bidirectional-bar',
- 'symbolic-map'
+ 'symbolic-map',
+ 'three-map'
],
copyData: null,
hyperlinksSetVisible: false,
diff --git a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue
index 3a3ac3f..3020ec6 100644
--- a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue
+++ b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue
@@ -422,7 +422,7 @@ const openMessageLoading = cb => {
})
}
// 地图
-const mapChartTypes = ['bubble-map', 'flow-map', 'heat-map', 'map', 'symbolic-map']
+const mapChartTypes = ['bubble-map', 'flow-map', 'heat-map', 'map', 'symbolic-map','three-map']
const htmlToImage = () => {
downLoading.value = mapChartTypes.includes(viewInfo.value.type) ? false : true
useEmitt().emitter.emit('renderChart-' + viewInfo.value.id)
diff --git a/core/core-frontend/src/components/visualization/ViewTrackBar.vue b/core/core-frontend/src/components/visualization/ViewTrackBar.vue
index 3d1d5ce..1f4031c 100644
--- a/core/core-frontend/src/components/visualization/ViewTrackBar.vue
+++ b/core/core-frontend/src/components/visualization/ViewTrackBar.vue
@@ -1,26 +1,12 @@
-
+
-
diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts
index 0ca238f..4139880 100644
--- a/core/core-frontend/src/locales/en.ts
+++ b/core/core-frontend/src/locales/en.ts
@@ -2003,6 +2003,7 @@ export default {
export_raw_details: 'Raw Details',
field_is_empty_export_error: 'No fields available, unable to export',
chart_symbolic_map: 'Symbolic map',
+ three_map: 'Three map',
symbolic: 'Symbolic',
symbolic_shape: 'Symbolic Shape',
symbolic_upload_hint: 'Supports SVG, JPG, JPEG, PNG files within 1MB',
diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts
index 239a5b7..07d8584 100644
--- a/core/core-frontend/src/locales/tw.ts
+++ b/core/core-frontend/src/locales/tw.ts
@@ -1950,6 +1950,7 @@ export default {
export_raw_details: '導出原始明細',
field_is_empty_export_error: '目前無欄位,無法匯出',
chart_symbolic_map: '符號地圖',
+ three_map: '三維地圖',
symbolic: '符號',
symbolic_shape: '符號形狀',
symbolic_upload_hint: '支持 1MB 以內的 SVG, JPG, JPEG, PNG 文件',
diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts
index 86ef5b5..1df455d 100644
--- a/core/core-frontend/src/locales/zh-CN.ts
+++ b/core/core-frontend/src/locales/zh-CN.ts
@@ -1956,6 +1956,7 @@ export default {
field_is_empty_export_error: '当前无字段,无法导出',
chart_symbolic_map: '符号地图',
symbolic: '符号',
+ three_map: '三维地图',
symbolic_shape: '符号形状',
symbolic_upload_hint: '支持 1MB 以内的 SVG, JPG, JPEG, PNG 文件',
symbolic_range: '区间',
diff --git a/core/core-frontend/src/views/chart/components/editor/index.vue b/core/core-frontend/src/views/chart/components/editor/index.vue
index 37aab48..acf937b 100644
--- a/core/core-frontend/src/views/chart/components/editor/index.vue
+++ b/core/core-frontend/src/views/chart/components/editor/index.vue
@@ -9,6 +9,7 @@ import icon_refresh_outlined from '@/assets/svg/icon_refresh_outlined.svg'
import icon_add_outlined from '@/assets/svg/icon_add_outlined.svg'
import icon_searchOutline_outlined from '@/assets/svg/icon_search-outline_outlined.svg'
import icon_copy_outlined from '@/assets/svg/icon_copy_outlined.svg'
+import threeDisplay from '@/components/three-display/index.vue'
import {
PropType,
reactive,
@@ -321,6 +322,8 @@ const chartStyleShow = computed(() => {
})
const chartViewInstance = computed(() => {
+ // console.log(chartViewManager.getChartView(view.value.render, view.value.type))
+ // debugger
return chartViewManager.getChartView(view.value.render, view.value.type)
})
const showAxis = (axis: AxisType) => chartViewInstance.value?.axis?.includes(axis)
@@ -3131,9 +3134,9 @@ const deleteChartFieldItem = id => {
-
+
+
{
:font-family="fontFamily"
:active="active"
v-else-if="
- showChartView(ChartLibraryType.G2_PLOT, ChartLibraryType.L7_PLOT, ChartLibraryType.L7)
+ showChartView(ChartLibraryType.G2_PLOT, ChartLibraryType.L7_PLOT, ChartLibraryType.L7) || view.type == 'three-map'
"
ref="chartComponent"
@onChartClick="chartClick"
diff --git a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue
index 6d00e65..bb9a163 100644
--- a/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue
+++ b/core/core-frontend/src/views/dashboard/DashboardPreviewShow.vue
@@ -124,7 +124,7 @@ const loadCanvasData = (dvId, weight?) => {
)
}
// 地图类图表,需要预先准备图片
-const mapChartTypes = ['bubble-map', 'flow-map', 'heat-map', 'map', 'symbolic-map']
+const mapChartTypes = ['bubble-map', 'flow-map', 'heat-map', 'map', 'symbolic-map','three-map']
const downloadH2 = type => {
downloadStatus.value = true
const mapElementIds =
diff --git a/core/core-frontend/src/views/data-visualization/index.vue b/core/core-frontend/src/views/data-visualization/index.vue
index d5c626b..fc802a6 100644
--- a/core/core-frontend/src/views/data-visualization/index.vue
+++ b/core/core-frontend/src/views/data-visualization/index.vue
@@ -175,10 +175,10 @@ const handleNew = newComponentInfo => {
const { componentName, innerType, staticMap } = newComponentInfo
if (componentName) {
const { width, height, scale } = canvasStyleData.value
- const component = findNewComponent(componentName, innerType, staticMap)
+ const component = findNewComponent(componentName, innerType, staticMap)//动态创建组件实例
component.style.top = ((height - component.style.height) * scale) / 200
component.style.left = ((width - component.style.width) * scale) / 200
- component.id = guid()
+ component.id = guid() //生成唯一的随机id
const popComponents = componentData.value.filter(
ele => ele.category && ele.category === 'hidden'
)
@@ -191,9 +191,9 @@ const handleNew = newComponentInfo => {
component.category = canvasState.value.curPointArea
component.commonBackground.backgroundColor = 'rgba(41, 41, 41, 1)'
}
- changeComponentSizeWithScale(component)
+ changeComponentSizeWithScale(component) //确保组件在不同比例下保持视觉比例协调
dvMainStore.addComponent({ component: component, index: undefined })
- adaptCurThemeCommonStyle(component)
+ adaptCurThemeCommonStyle(component)//用户切换亮/暗色模式时,自动更新所有组件的样式(如文字颜色、背景色)。
snapshotStore.recordSnapshotCache('renderChart', component.id)
if (state.countTime > 10) {
state.sideShow = false
diff --git a/core/core-frontend/src/viewsnew/data-visualization/index.vue b/core/core-frontend/src/viewsnew/data-visualization/index.vue
index 1f617b7..5d7fe00 100644
--- a/core/core-frontend/src/viewsnew/data-visualization/index.vue
+++ b/core/core-frontend/src/viewsnew/data-visualization/index.vue
@@ -169,7 +169,7 @@ const contentStyle = computed(() => {
}
})
-// 通过实时监听的方式直接添加组件
+// 通过实时监听的方式直接添加组件 symbolic-map
const handleNew = newComponentInfo => {
state.countTime++
const { componentName, innerType, staticMap } = newComponentInfo