qy-vue-plugins 0.1.7 → 0.1.8
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.
- package/README.md +56 -1
- package/package/mapbox/EventKeys.js +41 -0
- package/package/mapbox/EventKeys.ts +55 -0
- package/package/mapbox/ProvideKeys.js +14 -0
- package/package/mapbox/ProvideKeys.ts +23 -0
- package/package/mapbox/components/MapLegend.vue.js +185 -0
- package/package/mapbox/components/MapTools.vue.js +614 -0
- package/package/mapbox/components/index.js +9 -0
- package/package/mapbox/components/index.ts +9 -0
- package/package/mapbox/components/mapCompass.vue.js +233 -0
- package/package/mapbox/components/mapLayer.vue.js +110 -0
- package/package/mapbox/components/mapLevel.vue.js +217 -0
- package/package/mapbox/components/mapPitch.vue.js +81 -0
- package/package/mapbox/components/mapPos.vue.js +88 -0
- package/package/mapbox/components/mapTopic.vue.js +862 -0
- package/package/mapbox/constant.js +406 -0
- package/package/mapbox/constant.ts +417 -0
- package/package/mapbox/utils.js +572 -0
- package/package/mapbox/utils.ts +591 -0
- package/package/mapbox/widgets/CustomShapeDialog.vue.js +359 -0
- package/package/mapbox/widgets/IconPicker.vue.js +302 -0
- package/package/mapbox/widgets/LayerAttributeDialog.vue.js +431 -0
- package/package/mapbox/widgets/LayerDialog.vue.js +457 -0
- package/package/mapbox/widgets/LegendDialogLine.vue.js +471 -0
- package/package/mapbox/widgets/LegendDialogPoint.vue.js +404 -0
- package/package/mapbox/widgets/LegendLine.vue.js +63 -0
- package/package/mapbox/widgets/LegendPoint.vue.js +66 -0
- package/package/mapbox/widgets/LegendPopLine.vue.js +395 -0
- package/package/mapbox/widgets/LegendPopPoint.vue.js +385 -0
- package/package/mapbox/widgets/LegendShape.vue.js +45 -0
- package/package/mapbox/widgets/LegendSymbol.vue.js +69 -0
- package/package/mapbox/widgets/Point.vue.js +41 -0
- package/package/mapbox/widgets/ShapeDialog.vue.js +1536 -0
- package/package/mapbox/widgets/TopicItemPop.vue.js +297 -0
- package/package/mapbox/widgets/TopicPop.vue.js +350 -0
- package/package/mapbox/widgets/index.js +13 -0
- package/package/mapbox/widgets/index.ts +13 -0
- package/package.json +68 -11
- package/qy-vue-plugins.d.ts +136 -0
package/README.md
CHANGED
|
@@ -17,7 +17,62 @@
|
|
|
17
17
|
|
|
18
18
|
## 安装与使用
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
```bash
|
|
21
|
+
npm install qy-vue-plugins
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 导入组件
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
// 导入单个组件
|
|
28
|
+
import MapView from "qy-vue-plugins/mapbox/MapView";
|
|
29
|
+
import mapLayer from "qy-vue-plugins/mapbox/components/mapLayer";
|
|
30
|
+
|
|
31
|
+
// 或者导入整个模块
|
|
32
|
+
import * as MapComponents from "qy-vue-plugins/mapbox/components";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### TypeScript 配置
|
|
36
|
+
|
|
37
|
+
如果在 TypeScript 项目中使用时遇到模块解析问题(例如"找不到模块或其相应的类型声明"错误),请尝试以下解决方案:
|
|
38
|
+
|
|
39
|
+
1. **更新 tsconfig.json 中的模块解析策略**
|
|
40
|
+
|
|
41
|
+
确保使用 "node16"、"nodenext" 或 "bundler" 作为 `moduleResolution` 选项:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"compilerOptions": {
|
|
46
|
+
"moduleResolution": "node16" // 或者 "nodenext" 或 "bundler"
|
|
47
|
+
// 其他配置...
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
2. **添加路径映射**
|
|
53
|
+
|
|
54
|
+
或者,将以下路径映射添加到你的 `tsconfig.json` 配置中:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"compilerOptions": {
|
|
59
|
+
"paths": {
|
|
60
|
+
"qy-vue-plugins/*": ["./node_modules/qy-vue-plugins/dist/types/*"]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. **直接从 dist 目录导入类型**
|
|
67
|
+
|
|
68
|
+
作为临时解决方案,也可以直接从 dist 目录导入类型:
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
// 导入组件
|
|
72
|
+
import MapView from "qy-vue-plugins/mapbox/MapView";
|
|
73
|
+
// 显式导入类型
|
|
74
|
+
import type { MapViewProps } from "qy-vue-plugins/dist/types/mapbox/MapView.vue";
|
|
75
|
+
```
|
|
21
76
|
|
|
22
77
|
## 功能详情
|
|
23
78
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useEventBus } from "@vueuse/core";
|
|
2
|
+
// 删除专题
|
|
3
|
+
const deleteTopicKey = Symbol("delete-topic");
|
|
4
|
+
// 删除专题实例
|
|
5
|
+
export const deleteTopicBus = useEventBus(deleteTopicKey);
|
|
6
|
+
// 新建专题
|
|
7
|
+
const createTopicKey = Symbol("create-topic");
|
|
8
|
+
// 新建专题实例
|
|
9
|
+
export const createTopicBus = useEventBus(createTopicKey);
|
|
10
|
+
// 修改专题
|
|
11
|
+
const updateTopicKey = Symbol("update-topic");
|
|
12
|
+
// 修改专题实例
|
|
13
|
+
export const updateTopicBus = useEventBus(updateTopicKey);
|
|
14
|
+
//专题面板点击事件
|
|
15
|
+
const topicPanelClickKey = Symbol("topic-panel-click");
|
|
16
|
+
export const topicPanelClickBus = useEventBus(topicPanelClickKey);
|
|
17
|
+
// 渲染地理数据
|
|
18
|
+
export const renderGeographicDataKey = Symbol("render-geographic-data");
|
|
19
|
+
// 渲染地理数据实例
|
|
20
|
+
export const renderGeographicDataKeyBus = useEventBus(renderGeographicDataKey);
|
|
21
|
+
// 显示或隐藏专题图层
|
|
22
|
+
export const toggleGeographicLayerKey = Symbol("toggle-geographic-layer");
|
|
23
|
+
// 显示或隐藏专题图层实例
|
|
24
|
+
export const toggleGeographicLayerKeyBus = useEventBus(toggleGeographicLayerKey);
|
|
25
|
+
// 显示图层编辑事件
|
|
26
|
+
const showLayerEditKey = Symbol("show-layer-edit");
|
|
27
|
+
// 显示图层编辑实例
|
|
28
|
+
export const showLayerEditKeyBus = useEventBus(showLayerEditKey);
|
|
29
|
+
// 定位到图层中心的事件
|
|
30
|
+
const locateToLayerCenterKey = Symbol("locate-to-layer-center");
|
|
31
|
+
// 定位到图层中心的实例
|
|
32
|
+
export const locateToLayerCenterKeyBus = useEventBus(locateToLayerCenterKey);
|
|
33
|
+
// 图层管理弹窗事件
|
|
34
|
+
const showLayerDialogKey = Symbol("show-layer-dialog");
|
|
35
|
+
export const showLayerDialogKeyBus = useEventBus(showLayerDialogKey);
|
|
36
|
+
// 地图加载完成事件
|
|
37
|
+
const mapLoadedKey = Symbol("map-loaded");
|
|
38
|
+
export const mapLoadedBus = useEventBus(mapLoadedKey);
|
|
39
|
+
// 地图样式切换事件
|
|
40
|
+
const mapStyleChangedKey = Symbol("map-style-changed");
|
|
41
|
+
export const mapStyleChangedBus = useEventBus(mapStyleChangedKey);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useEventBus, type EventBusKey } from "@vueuse/core";
|
|
2
|
+
import type { GeographicLayerEntity, GeographicLayerFormEntity } from "../types/map";
|
|
3
|
+
|
|
4
|
+
// 删除专题
|
|
5
|
+
const deleteTopicKey: EventBusKey<GeographicLayerEntity> = Symbol("delete-topic");
|
|
6
|
+
// 删除专题实例
|
|
7
|
+
export const deleteTopicBus = useEventBus(deleteTopicKey);
|
|
8
|
+
|
|
9
|
+
// 新建专题
|
|
10
|
+
const createTopicKey: EventBusKey<GeographicLayerFormEntity> = Symbol("create-topic");
|
|
11
|
+
// 新建专题实例
|
|
12
|
+
export const createTopicBus = useEventBus(createTopicKey);
|
|
13
|
+
|
|
14
|
+
// 修改专题
|
|
15
|
+
const updateTopicKey: EventBusKey<GeographicLayerFormEntity> = Symbol("update-topic");
|
|
16
|
+
// 修改专题实例
|
|
17
|
+
export const updateTopicBus = useEventBus(updateTopicKey);
|
|
18
|
+
|
|
19
|
+
//专题面板点击事件
|
|
20
|
+
const topicPanelClickKey = Symbol("topic-panel-click");
|
|
21
|
+
export const topicPanelClickBus = useEventBus(topicPanelClickKey);
|
|
22
|
+
|
|
23
|
+
// 渲染地理数据
|
|
24
|
+
export const renderGeographicDataKey: EventBusKey<{ mapRootId: string; layer: GeographicLayerEntity }> = Symbol("render-geographic-data");
|
|
25
|
+
|
|
26
|
+
// 渲染地理数据实例
|
|
27
|
+
export const renderGeographicDataKeyBus = useEventBus(renderGeographicDataKey);
|
|
28
|
+
|
|
29
|
+
// 显示或隐藏专题图层
|
|
30
|
+
export const toggleGeographicLayerKey: EventBusKey<{ mapRootId: string; topic: GeographicLayerEntity; visible: boolean; delLayer?: boolean }> =
|
|
31
|
+
Symbol("toggle-geographic-layer");
|
|
32
|
+
// 显示或隐藏专题图层实例
|
|
33
|
+
export const toggleGeographicLayerKeyBus = useEventBus(toggleGeographicLayerKey);
|
|
34
|
+
|
|
35
|
+
// 显示图层编辑事件
|
|
36
|
+
const showLayerEditKey: EventBusKey<{ e: MouseEvent; mapRootId: string; layer: GeographicLayerEntity }> = Symbol("show-layer-edit");
|
|
37
|
+
// 显示图层编辑实例
|
|
38
|
+
export const showLayerEditKeyBus = useEventBus(showLayerEditKey);
|
|
39
|
+
|
|
40
|
+
// 定位到图层中心的事件
|
|
41
|
+
const locateToLayerCenterKey: EventBusKey<{ mapRootId: string; layer: GeographicLayerEntity }> = Symbol("locate-to-layer-center");
|
|
42
|
+
// 定位到图层中心的实例
|
|
43
|
+
export const locateToLayerCenterKeyBus = useEventBus(locateToLayerCenterKey);
|
|
44
|
+
|
|
45
|
+
// 图层管理弹窗事件
|
|
46
|
+
const showLayerDialogKey: EventBusKey<{ action: "add" | "edit"; pid: number | string; layer?: GeographicLayerEntity }> = Symbol("show-layer-dialog");
|
|
47
|
+
export const showLayerDialogKeyBus = useEventBus(showLayerDialogKey);
|
|
48
|
+
|
|
49
|
+
// 地图加载完成事件
|
|
50
|
+
const mapLoadedKey: EventBusKey<{ mapRootId: string }> = Symbol("map-loaded");
|
|
51
|
+
export const mapLoadedBus = useEventBus(mapLoadedKey);
|
|
52
|
+
|
|
53
|
+
// 地图样式切换事件
|
|
54
|
+
const mapStyleChangedKey: EventBusKey<{ mapRootId: string }> = Symbol("map-style-changed");
|
|
55
|
+
export const mapStyleChangedBus = useEventBus(mapStyleChangedKey);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// 主题选择的键
|
|
2
|
+
export const selectTopicsKey = Symbol("selectTopics");
|
|
3
|
+
// 取属性表的接口key
|
|
4
|
+
export const dbfDataRequestKey = Symbol("dbfDataRequest");
|
|
5
|
+
//调查数据查询接口
|
|
6
|
+
export const researchDataRequestKey = Symbol("researchDataRequest");
|
|
7
|
+
// 专题列表数据
|
|
8
|
+
export const geographicLayerListKey = Symbol("geographicLayerList");
|
|
9
|
+
// 地图实例
|
|
10
|
+
export const mapInstanceKey = Symbol("mapInstance");
|
|
11
|
+
// 已加载的图层
|
|
12
|
+
export const thirdPartyLayersKey = Symbol("thirdPartyLayers");
|
|
13
|
+
// 权限检查
|
|
14
|
+
export const permissionCheckKey = Symbol("permissionCheck");
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GeographicLayerEntity, MapTopicAction } from "@/types/map";
|
|
2
|
+
import type { InjectionKey, Ref } from "vue";
|
|
3
|
+
|
|
4
|
+
// 主题选择的键
|
|
5
|
+
export const selectTopicsKey: InjectionKey<Readonly<Ref<(number | string)[]>>> = Symbol("selectTopics");
|
|
6
|
+
|
|
7
|
+
// 取属性表的接口key
|
|
8
|
+
export const dbfDataRequestKey: InjectionKey<(sourceId: number | string, page: number, pageSize: number) => Promise<any>> = Symbol("dbfDataRequest");
|
|
9
|
+
|
|
10
|
+
//调查数据查询接口
|
|
11
|
+
export const researchDataRequestKey: InjectionKey<(topic: GeographicLayerEntity) => Promise<{ lineInfo: any[]; pointInfo: any }>> = Symbol("researchDataRequest");
|
|
12
|
+
|
|
13
|
+
// 专题列表数据
|
|
14
|
+
export const geographicLayerListKey: InjectionKey<Readonly<Ref<GeographicLayerEntity[]>>> = Symbol("geographicLayerList");
|
|
15
|
+
|
|
16
|
+
// 地图实例
|
|
17
|
+
export const mapInstanceKey: InjectionKey<Ref<mapboxgl.Map | undefined>> = Symbol("mapInstance");
|
|
18
|
+
|
|
19
|
+
// 已加载的图层
|
|
20
|
+
export const thirdPartyLayersKey: InjectionKey<Ref<GeographicLayerEntity[]>> = Symbol("thirdPartyLayers");
|
|
21
|
+
|
|
22
|
+
// 权限检查
|
|
23
|
+
export const permissionCheckKey: InjectionKey<(action: MapTopicAction, topic: GeographicLayerEntity) => boolean> = Symbol("permissionCheck");
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { inject, ref, computed, onMounted } from "vue";
|
|
2
|
+
import { thirdPartyLayersKey } from "../ProvideKeys";
|
|
3
|
+
import LegendPoint from "../widgets/LegendPoint.vue";
|
|
4
|
+
import LegendLine from "../widgets/LegendLine.vue";
|
|
5
|
+
import LegendSymbol from "../widgets/LegendSymbol.vue";
|
|
6
|
+
import { parseLayerPaintConfig } from "../utils";
|
|
7
|
+
import { outlineConfigList } from "../constant";
|
|
8
|
+
const thirdPartyLayers = inject(thirdPartyLayersKey, ref([]));
|
|
9
|
+
const legendVisible = ref(false);
|
|
10
|
+
// 根据图层类型对图层进行分组
|
|
11
|
+
const legendItems = computed(() => {
|
|
12
|
+
if (!thirdPartyLayers.value)
|
|
13
|
+
return [];
|
|
14
|
+
// 这里只展示可见的图层
|
|
15
|
+
return thirdPartyLayers.value.filter((layer) => {
|
|
16
|
+
// 可以根据实际需求添加筛选条件,例如只显示特定类型或有名称的图层
|
|
17
|
+
return layer.layerName && (layer.layerType === "species-group" || layer.layerType === "symbol" || layer.layerType === "line" || layer.layerType === "shape");
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
const fillColorList = (topic) => {
|
|
21
|
+
return parseLayerPaintConfig(topic.layerPaintConfig, topic.layerType).fillColorList || outlineConfigList;
|
|
22
|
+
};
|
|
23
|
+
// 切换图例显示/隐藏
|
|
24
|
+
const toggleLegend = () => {
|
|
25
|
+
legendVisible.value = !legendVisible.value;
|
|
26
|
+
};
|
|
27
|
+
onMounted(() => {
|
|
28
|
+
// 组件挂载时可以进行一些初始化操作
|
|
29
|
+
console.log("Legend component mounted");
|
|
30
|
+
});
|
|
31
|
+
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
|
32
|
+
const __VLS_ctx = {};
|
|
33
|
+
let __VLS_components;
|
|
34
|
+
let __VLS_directives;
|
|
35
|
+
/** @type {__VLS_StyleScopedClasses['legend-content']} */ ;
|
|
36
|
+
/** @type {__VLS_StyleScopedClasses['legend-content']} */ ;
|
|
37
|
+
// CSS variable injection
|
|
38
|
+
// CSS variable injection end
|
|
39
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
40
|
+
...{ class: "map-legend qy-flex-col" },
|
|
41
|
+
});
|
|
42
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
43
|
+
...{ onClick: (__VLS_ctx.toggleLegend) },
|
|
44
|
+
...{ class: "legend-header qy-flex-row qy-flex-between" },
|
|
45
|
+
});
|
|
46
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
|
47
|
+
...{ class: "qyuan icon-tuli" },
|
|
48
|
+
});
|
|
49
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
|
50
|
+
...{ class: "close-icon" },
|
|
51
|
+
});
|
|
52
|
+
if (__VLS_ctx.legendVisible) {
|
|
53
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
|
54
|
+
...{ class: "qyuan icon-xiangxia" },
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
|
59
|
+
...{ class: "qyuan icon-xiangshang" },
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
63
|
+
...{ class: "legend-content" },
|
|
64
|
+
...{ style: ({ height: __VLS_ctx.legendVisible ? '300px' : '0px', padding: __VLS_ctx.legendVisible ? '8px 12px' : '0px' }) },
|
|
65
|
+
});
|
|
66
|
+
if (__VLS_ctx.legendItems.length > 0) {
|
|
67
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
68
|
+
...{ class: "legend-section" },
|
|
69
|
+
});
|
|
70
|
+
for (const [item, index] of __VLS_getVForSourceType((__VLS_ctx.legendItems))) {
|
|
71
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
72
|
+
key: (index),
|
|
73
|
+
...{ class: "legend-item qy-flex-col" },
|
|
74
|
+
});
|
|
75
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
76
|
+
...{ class: "legend-label" },
|
|
77
|
+
});
|
|
78
|
+
(item.layerName);
|
|
79
|
+
if (item.layerType === 'species-group' || (item.layerType === 'symbol' && (item.layerDataType === 'research' || item.geoJSON))) {
|
|
80
|
+
/** @type {[typeof LegendPoint, ]} */ ;
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
const __VLS_0 = __VLS_asFunctionalComponent(LegendPoint, new LegendPoint({
|
|
83
|
+
layerPaintConfig: (item.layerPaintConfig || item.customLayerConfig),
|
|
84
|
+
layerType: (item.layerType),
|
|
85
|
+
}));
|
|
86
|
+
const __VLS_1 = __VLS_0({
|
|
87
|
+
layerPaintConfig: (item.layerPaintConfig || item.customLayerConfig),
|
|
88
|
+
layerType: (item.layerType),
|
|
89
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_0));
|
|
90
|
+
}
|
|
91
|
+
else if (item.layerType === 'symbol' && !item.layerDataType) {
|
|
92
|
+
/** @type {[typeof LegendSymbol, ]} */ ;
|
|
93
|
+
// @ts-ignore
|
|
94
|
+
const __VLS_3 = __VLS_asFunctionalComponent(LegendSymbol, new LegendSymbol({
|
|
95
|
+
topic: (item),
|
|
96
|
+
}));
|
|
97
|
+
const __VLS_4 = __VLS_3({
|
|
98
|
+
topic: (item),
|
|
99
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_3));
|
|
100
|
+
}
|
|
101
|
+
else if (item.layerType === 'line') {
|
|
102
|
+
/** @type {[typeof LegendLine, ]} */ ;
|
|
103
|
+
// @ts-ignore
|
|
104
|
+
const __VLS_6 = __VLS_asFunctionalComponent(LegendLine, new LegendLine({
|
|
105
|
+
topic: (item),
|
|
106
|
+
}));
|
|
107
|
+
const __VLS_7 = __VLS_6({
|
|
108
|
+
topic: (item),
|
|
109
|
+
}, ...__VLS_functionalComponentArgsRest(__VLS_6));
|
|
110
|
+
}
|
|
111
|
+
else if (item.layerType === 'shape') {
|
|
112
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
113
|
+
...{ style: {} },
|
|
114
|
+
});
|
|
115
|
+
for (const [color, index] of __VLS_getVForSourceType((__VLS_ctx.fillColorList(item)))) {
|
|
116
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
117
|
+
key: (index),
|
|
118
|
+
...{ class: "qy-flex-row qy-flex-align legend-item" },
|
|
119
|
+
});
|
|
120
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
121
|
+
...{ class: "legend-block" },
|
|
122
|
+
...{ style: ({ backgroundColor: color.color }) },
|
|
123
|
+
});
|
|
124
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
125
|
+
...{ class: "legend-block-label" },
|
|
126
|
+
});
|
|
127
|
+
(color.value || "默认");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!__VLS_ctx.legendItems.length) {
|
|
133
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
|
134
|
+
...{ class: "qy-flex-center empty-state" },
|
|
135
|
+
});
|
|
136
|
+
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
|
137
|
+
...{ class: "qyuan icon-empty" },
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
/** @type {__VLS_StyleScopedClasses['map-legend']} */ ;
|
|
141
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-col']} */ ;
|
|
142
|
+
/** @type {__VLS_StyleScopedClasses['legend-header']} */ ;
|
|
143
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-row']} */ ;
|
|
144
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-between']} */ ;
|
|
145
|
+
/** @type {__VLS_StyleScopedClasses['qyuan']} */ ;
|
|
146
|
+
/** @type {__VLS_StyleScopedClasses['icon-tuli']} */ ;
|
|
147
|
+
/** @type {__VLS_StyleScopedClasses['close-icon']} */ ;
|
|
148
|
+
/** @type {__VLS_StyleScopedClasses['qyuan']} */ ;
|
|
149
|
+
/** @type {__VLS_StyleScopedClasses['icon-xiangxia']} */ ;
|
|
150
|
+
/** @type {__VLS_StyleScopedClasses['qyuan']} */ ;
|
|
151
|
+
/** @type {__VLS_StyleScopedClasses['icon-xiangshang']} */ ;
|
|
152
|
+
/** @type {__VLS_StyleScopedClasses['legend-content']} */ ;
|
|
153
|
+
/** @type {__VLS_StyleScopedClasses['legend-section']} */ ;
|
|
154
|
+
/** @type {__VLS_StyleScopedClasses['legend-item']} */ ;
|
|
155
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-col']} */ ;
|
|
156
|
+
/** @type {__VLS_StyleScopedClasses['legend-label']} */ ;
|
|
157
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-row']} */ ;
|
|
158
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-align']} */ ;
|
|
159
|
+
/** @type {__VLS_StyleScopedClasses['legend-item']} */ ;
|
|
160
|
+
/** @type {__VLS_StyleScopedClasses['legend-block']} */ ;
|
|
161
|
+
/** @type {__VLS_StyleScopedClasses['legend-block-label']} */ ;
|
|
162
|
+
/** @type {__VLS_StyleScopedClasses['qy-flex-center']} */ ;
|
|
163
|
+
/** @type {__VLS_StyleScopedClasses['empty-state']} */ ;
|
|
164
|
+
/** @type {__VLS_StyleScopedClasses['qyuan']} */ ;
|
|
165
|
+
/** @type {__VLS_StyleScopedClasses['icon-empty']} */ ;
|
|
166
|
+
var __VLS_dollars;
|
|
167
|
+
const __VLS_self = (await import('vue')).defineComponent({
|
|
168
|
+
setup() {
|
|
169
|
+
return {
|
|
170
|
+
LegendPoint: LegendPoint,
|
|
171
|
+
LegendLine: LegendLine,
|
|
172
|
+
LegendSymbol: LegendSymbol,
|
|
173
|
+
legendVisible: legendVisible,
|
|
174
|
+
legendItems: legendItems,
|
|
175
|
+
fillColorList: fillColorList,
|
|
176
|
+
toggleLegend: toggleLegend,
|
|
177
|
+
};
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
export default (await import('vue')).defineComponent({
|
|
181
|
+
setup() {
|
|
182
|
+
return {};
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
; /* PartiallyEnd: #4569/main.vue */
|