vue-openlayers-plugin 1.0.56 → 1.0.57

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/lib/index.umd.js CHANGED
@@ -479687,7 +479687,22 @@ ${this.attributes_.map(
479687
479687
  fullScreen: false,
479688
479688
  scaleLine: true,
479689
479689
  mousePosition: false,
479690
- overviewMap: false
479690
+ overviewMap: false,
479691
+ layerPanel: {
479692
+ enabled: true,
479693
+ defaultOpen: false,
479694
+ position: "right",
479695
+ title: "图层管理",
479696
+ width: "350px",
479697
+ height: "600px",
479698
+ modal: false,
479699
+ draggable: true,
479700
+ resizable: true,
479701
+ showClose: true,
479702
+ cacheId: "layer-dialog",
479703
+ className: "layer-dialog",
479704
+ collapsible: true
479705
+ }
479691
479706
  },
479692
479707
  baseLayers: [
479693
479708
  {
@@ -480959,8 +480974,18 @@ ${this.attributes_.map(
480959
480974
  const layerTreeManager = new LayerTreeManager();
480960
480975
  const layerConfigManager = new LayerConfigManager();
480961
480976
  const defaultExpandedKeys = vue.computed(() => layerTreeManager.defaultExpandedKeys.value);
480962
- const defaultCheckedKeys = vue.computed(() => layerTreeManager.defaultCheckedKeys.value);
480963
- const treeData = vue.computed(() => layerTreeManager.treeData.value);
480977
+ const defaultCheckedKeys = vue.ref([]);
480978
+ const treeData = vue.ref([]);
480979
+ vue.onMounted(() => {
480980
+ try {
480981
+ defaultCheckedKeys.value = Array.isArray(layerTreeManager.defaultCheckedKeys.value) ? [...layerTreeManager.defaultCheckedKeys.value] : [];
480982
+ const source = layerTreeManager.treeData.value;
480983
+ treeData.value = source ? JSON.parse(JSON.stringify(source)) : [];
480984
+ } catch (e3) {
480985
+ defaultCheckedKeys.value = layerTreeManager.defaultCheckedKeys.value || [];
480986
+ treeData.value = layerTreeManager.treeData.value || [];
480987
+ }
480988
+ });
480964
480989
  const handleLayerDoubleClick = (data2) => {
480965
480990
  layerTreeManager.handleLayerDoubleClick(data2, layerManager.value, map2.value);
480966
480991
  };
@@ -481071,6 +481096,22 @@ ${this.attributes_.map(
481071
481096
  vue.inject("eventBus");
481072
481097
  vue.inject("storage");
481073
481098
  const mapManager = vue.inject("mapManager");
481099
+ const dialogProps = vue.computed(() => {
481100
+ var _a3;
481101
+ const ui2 = ((_a3 = config == null ? void 0 : config.value) == null ? void 0 : _a3.ui) || {};
481102
+ return {
481103
+ title: ui2.title ?? "图层管理",
481104
+ width: ui2.width ?? "350px",
481105
+ height: ui2.height ?? "600px",
481106
+ modal: ui2.modal ?? false,
481107
+ draggable: ui2.draggable ?? true,
481108
+ resizable: ui2.resizable ?? true,
481109
+ showClose: ui2.showClose ?? true,
481110
+ position: ui2.position ?? "right",
481111
+ cacheId: ui2.cacheId ?? "layer-dialog",
481112
+ className: ui2.className ?? "layer-dialog"
481113
+ };
481114
+ });
481074
481115
  vue.watch(config, (newConfig) => {
481075
481116
  var _a3, _b3, _c2;
481076
481117
  console.log("🔍 [LayerPanel] config变化:", newConfig);
@@ -481326,11 +481367,33 @@ ${this.attributes_.map(
481326
481367
  treeRef.value.setCheckedKeys(checkedKeys);
481327
481368
  }
481328
481369
  };
481370
+ const hasTreeSnapshot = vue.ref(false);
481371
+ const expectedLayerCount = vue.computed(() => {
481372
+ var _a3, _b3, _c2;
481373
+ const c2 = (config == null ? void 0 : config.value) || {};
481374
+ const total = (((_a3 = c2.baseLayers) == null ? void 0 : _a3.length) || 0) + (((_b3 = c2.overlayLayers) == null ? void 0 : _b3.length) || 0) + (((_c2 = c2.vectorLayers) == null ? void 0 : _c2.length) || 0);
481375
+ return total;
481376
+ });
481329
481377
  vue.watchEffect(() => {
481330
481378
  if (layerGroups.value.length > 0) {
481331
481379
  layerTreeManager.setLayerGroups(layerGroups.value);
481332
481380
  layerTreeManager.setDefaultExpandedKeys(layerGroups.value.map((group2) => group2.id));
481333
481381
  initializeExpandedKeys();
481382
+ if (!hasTreeSnapshot.value) {
481383
+ const isInitialRegistrationDone = layers.value.length >= expectedLayerCount.value || expectedLayerCount.value === 0;
481384
+ console.log("🔍 [LayerPanel] 快照准备检查: layers.length=", layers.value.length, " expected=", expectedLayerCount.value, " done=", isInitialRegistrationDone);
481385
+ if (isInitialRegistrationDone) {
481386
+ try {
481387
+ defaultCheckedKeys.value = Array.isArray(layerTreeManager.defaultCheckedKeys.value) ? [...layerTreeManager.defaultCheckedKeys.value] : [];
481388
+ const source = layerTreeManager.treeData.value;
481389
+ treeData.value = source ? JSON.parse(JSON.stringify(source)) : [];
481390
+ } catch (e3) {
481391
+ defaultCheckedKeys.value = layerTreeManager.defaultCheckedKeys.value || [];
481392
+ treeData.value = layerTreeManager.treeData.value || [];
481393
+ }
481394
+ hasTreeSnapshot.value = true;
481395
+ }
481396
+ }
481334
481397
  vue.nextTick(() => {
481335
481398
  syncTreeCheckedState();
481336
481399
  });
@@ -481528,20 +481591,41 @@ ${this.attributes_.map(
481528
481591
  return vue.openBlock(), vue.createBlock(CustomDialog, {
481529
481592
  modelValue: visible.value,
481530
481593
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => visible.value = $event),
481531
- title: "图层管理",
481532
- width: "350px",
481533
- height: "600px",
481534
- "show-modal": false,
481535
- draggable: true,
481536
- resizable: true,
481537
- "show-close": true,
481538
- position: "right",
481539
- cacheId: "layer-dialog",
481540
- class: "layer-dialog",
481594
+ title: dialogProps.value.title,
481595
+ width: dialogProps.value.width,
481596
+ height: dialogProps.value.height,
481597
+ "show-modal": dialogProps.value.modal,
481598
+ draggable: dialogProps.value.draggable,
481599
+ resizable: dialogProps.value.resizable,
481600
+ "show-close": dialogProps.value.showClose,
481601
+ position: dialogProps.value.position,
481602
+ cacheId: dialogProps.value.cacheId,
481603
+ class: vue.normalizeClass(dialogProps.value.className),
481541
481604
  onClose: handleClose
481542
481605
  }, {
481543
481606
  default: vue.withCtx(() => [
481544
- vue.createVNode(_component_el_tabs, {
481607
+ _ctx.$slots.default ? vue.renderSlot(_ctx.$slots, "default", {
481608
+ key: 0,
481609
+ layers: layers.value,
481610
+ layerGroups: layerGroups.value,
481611
+ onTreeCheck,
481612
+ handleLayerVisibilityChange,
481613
+ updateLayerOpacity,
481614
+ updateClusterDistance,
481615
+ updateSuperMapConfig,
481616
+ resetLayerStyle,
481617
+ layerManager: layerManager.value,
481618
+ layerTreeManager: vue.unref(layerTreeManager),
481619
+ layerConfigManager: vue.unref(layerConfigManager),
481620
+ treeRef: treeRef.value,
481621
+ treeData: treeData.value,
481622
+ treeProps,
481623
+ defaultExpandedKeys: defaultExpandedKeys.value,
481624
+ defaultCheckedKeys: defaultCheckedKeys.value,
481625
+ syncTreeCheckedState,
481626
+ getAllTreeNodes
481627
+ }, void 0, true) : (vue.openBlock(), vue.createBlock(_component_el_tabs, {
481628
+ key: 1,
481545
481629
  modelValue: activeMainTab.value,
481546
481630
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => activeMainTab.value = $event),
481547
481631
  class: "main-tabs"
@@ -481647,15 +481731,15 @@ ${this.attributes_.map(
481647
481731
  })
481648
481732
  ]),
481649
481733
  _: 1
481650
- }, 8, ["modelValue"])
481734
+ }, 8, ["modelValue"]))
481651
481735
  ]),
481652
- _: 1
481653
- }, 8, ["modelValue"]);
481736
+ _: 3
481737
+ }, 8, ["modelValue", "title", "width", "height", "show-modal", "draggable", "resizable", "show-close", "position", "cacheId", "class"]);
481654
481738
  };
481655
481739
  }
481656
481740
  });
481657
- const LayerPanel_vue_vue_type_style_index_0_scoped_c66f28f2_lang = "";
481658
- const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-c66f28f2"]]);
481741
+ const LayerPanel_vue_vue_type_style_index_0_scoped_d12fef13_lang = "";
481742
+ const LayerPanel = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d12fef13"]]);
481659
481743
  const _hoisted_1$1 = {
481660
481744
  key: 2,
481661
481745
  class: "tooltip-content"
@@ -481906,7 +481990,7 @@ ${this.attributes_.map(
481906
481990
  }
481907
481991
  });
481908
481992
  const _hoisted_1 = {
481909
- key: 10,
481993
+ key: 8,
481910
481994
  class: "absolute top-15 right-2.5 w-62.5 max-h-75 bg-white rounded-md shadow-lg z-1000 overflow-hidden md:w-50 md:top-20 md:right-1.25"
481911
481995
  };
481912
481996
  const _hoisted_2 = { class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 bg-gray-50" };
@@ -481993,6 +482077,12 @@ ${this.attributes_.map(
481993
482077
  const hasMapInfoSlot = vue.computed(() => !!slots.mapInfo || !!slots["map-info"]);
481994
482078
  const hasLayerPanelSlot = vue.computed(() => !!slots.layerPanel || !!slots["layer-panel"]);
481995
482079
  const hasLegendSlot = vue.computed(() => !!slots.legend);
482080
+ const finalEnableLayerPanel = vue.computed(() => {
482081
+ var _a3, _b3;
482082
+ if (hasLayerPanelSlot.value)
482083
+ return true;
482084
+ return props.showLayerPanel !== void 0 ? props.showLayerPanel : ((_b3 = (_a3 = finalMapConfig.value.controls) == null ? void 0 : _a3.layerPanel) == null ? void 0 : _b3.enabled) ?? false;
482085
+ });
481996
482086
  const finalShowToolbar = vue.computed(() => {
481997
482087
  var _a3;
481998
482088
  if (hasToolbarSlot.value)
@@ -482005,12 +482095,6 @@ ${this.attributes_.map(
482005
482095
  return false;
482006
482096
  return props.showMapInfo !== void 0 ? props.showMapInfo : ((_a3 = finalMapConfig.value.ui) == null ? void 0 : _a3.showMapInfo) ?? true;
482007
482097
  });
482008
- const finalShowLayerPanel = vue.computed(() => {
482009
- var _a3;
482010
- if (hasLayerPanelSlot.value)
482011
- return false;
482012
- return props.showLayerPanel !== void 0 ? props.showLayerPanel : ((_a3 = finalMapConfig.value.ui) == null ? void 0 : _a3.showLayerPanel) ?? false;
482013
- });
482014
482098
  const showLegend = vue.computed(() => {
482015
482099
  var _a3;
482016
482100
  if (hasLegendSlot.value)
@@ -482053,18 +482137,22 @@ ${this.attributes_.map(
482053
482137
  });
482054
482138
  const finalShowControls = vue.computed(() => {
482055
482139
  var _a3;
482056
- return props.showControls !== void 0 ? props.showControls : ((_a3 = finalMapConfig.value.controls) == null ? void 0 : _a3.useCustomStyle) ?? false;
482140
+ const controls = finalMapConfig.value.controls || {};
482141
+ const useCustomStyle = controls.useCustomStyle ?? ((_a3 = controls.tools) == null ? void 0 : _a3.useCustomStyle) ?? false;
482142
+ return props.showControls !== void 0 ? props.showControls : useCustomStyle;
482057
482143
  });
482058
482144
  const finalControlsConfig = vue.computed(() => {
482059
- var _a3, _b3, _c2, _d, _e2, _f;
482145
+ const controls = finalMapConfig.value.controls || {};
482146
+ const { tools = {}, ...controlsRest } = controls;
482060
482147
  return {
482061
- ...finalMapConfig.value.controls,
482062
- position: props.controlsPosition || ((_a3 = finalMapConfig.value.controls) == null ? void 0 : _a3.position) || "bottom-left",
482063
- direction: props.controlsDirection || ((_b3 = finalMapConfig.value.controls) == null ? void 0 : _b3.direction) || "vertical",
482064
- leftOffset: props.controlsLeftOffset || ((_c2 = finalMapConfig.value.controls) == null ? void 0 : _c2.leftOffset),
482065
- rightOffset: props.controlsRightOffset || ((_d = finalMapConfig.value.controls) == null ? void 0 : _d.rightOffset),
482066
- topOffset: props.controlsTopOffset || ((_e2 = finalMapConfig.value.controls) == null ? void 0 : _e2.topOffset),
482067
- bottomOffset: props.controlsBottomOffset || ((_f = finalMapConfig.value.controls) == null ? void 0 : _f.bottomOffset),
482148
+ ...tools,
482149
+ ...controlsRest,
482150
+ position: props.controlsPosition || controlsRest.position || tools.position || "bottom-left",
482151
+ direction: props.controlsDirection || controlsRest.direction || tools.direction || "vertical",
482152
+ leftOffset: props.controlsLeftOffset || controlsRest.leftOffset,
482153
+ rightOffset: props.controlsRightOffset || controlsRest.rightOffset,
482154
+ topOffset: props.controlsTopOffset || controlsRest.topOffset,
482155
+ bottomOffset: props.controlsBottomOffset || controlsRest.bottomOffset,
482068
482156
  ...props.controlsConfig
482069
482157
  };
482070
482158
  });
@@ -482115,9 +482203,23 @@ ${this.attributes_.map(
482115
482203
  });
482116
482204
  const measurementResults = vue.ref([]);
482117
482205
  const layerPanelConfig = vue.computed(() => {
482206
+ var _a3, _b3;
482118
482207
  console.log("🔍 [CustomOpenlayer] layerPanelConfig计算中...");
482119
482208
  console.log("🔍 [CustomOpenlayer] loadedConfig.value:", loadedConfig.value);
482120
482209
  console.log("🔍 [CustomOpenlayer] props.mapConfig:", props.mapConfig);
482210
+ const lpControls = ((_b3 = (_a3 = finalMapConfig.value) == null ? void 0 : _a3.controls) == null ? void 0 : _b3.layerPanel) || {};
482211
+ const ui2 = {
482212
+ title: lpControls.title ?? "图层管理",
482213
+ width: lpControls.width ?? "350px",
482214
+ height: lpControls.height ?? "600px",
482215
+ modal: lpControls.modal ?? false,
482216
+ draggable: lpControls.draggable ?? true,
482217
+ resizable: lpControls.resizable ?? true,
482218
+ showClose: lpControls.showClose ?? true,
482219
+ position: lpControls.position ?? "right",
482220
+ cacheId: lpControls.cacheId ?? "layer-dialog",
482221
+ className: lpControls.className ?? "layer-dialog"
482222
+ };
482121
482223
  if (loadedConfig.value) {
482122
482224
  const hasLayers = loadedConfig.value.baseLayers && loadedConfig.value.baseLayers.length > 0 || loadedConfig.value.overlayLayers && loadedConfig.value.overlayLayers.length > 0 || loadedConfig.value.vectorLayers && loadedConfig.value.vectorLayers.length > 0;
482123
482225
  console.log("🔍 [CustomOpenlayer] loadedConfig hasLayers:", hasLayers);
@@ -482125,7 +482227,8 @@ ${this.attributes_.map(
482125
482227
  const config = {
482126
482228
  baseLayers: loadedConfig.value.baseLayers || [],
482127
482229
  overlayLayers: loadedConfig.value.overlayLayers || [],
482128
- vectorLayers: loadedConfig.value.vectorLayers || []
482230
+ vectorLayers: loadedConfig.value.vectorLayers || [],
482231
+ ui: ui2
482129
482232
  };
482130
482233
  console.log("🔍 [CustomOpenlayer] 使用loadedConfig,返回配置:", config);
482131
482234
  return config;
@@ -482135,7 +482238,8 @@ ${this.attributes_.map(
482135
482238
  const config = {
482136
482239
  baseLayers: props.mapConfig.baseLayers || [],
482137
482240
  overlayLayers: props.mapConfig.overlayLayers || [],
482138
- vectorLayers: props.mapConfig.vectorLayers || []
482241
+ vectorLayers: props.mapConfig.vectorLayers || [],
482242
+ ui: ui2
482139
482243
  };
482140
482244
  console.log("🔍 [CustomOpenlayer] 使用props.mapConfig,返回配置:", config);
482141
482245
  console.log("🔍 [CustomOpenlayer] overlayLayers数量:", config.overlayLayers.length);
@@ -482148,7 +482252,8 @@ ${this.attributes_.map(
482148
482252
  return {
482149
482253
  baseLayers: [],
482150
482254
  overlayLayers: [],
482151
- vectorLayers: []
482255
+ vectorLayers: [],
482256
+ ui: ui2
482152
482257
  };
482153
482258
  });
482154
482259
  const measurementTool = vue.ref(null);
@@ -482179,6 +482284,14 @@ ${this.attributes_.map(
482179
482284
  },
482180
482285
  { deep: true }
482181
482286
  );
482287
+ vue.watch(
482288
+ () => props.showLayerPanel,
482289
+ (val) => {
482290
+ if (val !== void 0) {
482291
+ showLayerPanel.value = val;
482292
+ }
482293
+ }
482294
+ );
482182
482295
  vue.watch(
482183
482296
  finalMapConfig,
482184
482297
  (newConfig) => {
@@ -482195,7 +482308,12 @@ ${this.attributes_.map(
482195
482308
  { deep: true }
482196
482309
  );
482197
482310
  vue.onMounted(async () => {
482311
+ var _a3, _b3;
482198
482312
  await loadConfig();
482313
+ const defaultLayerPanelOpen = props.showLayerPanel !== void 0 ? props.showLayerPanel : ((_b3 = (_a3 = finalMapConfig.value.controls) == null ? void 0 : _a3.layerPanel) == null ? void 0 : _b3.defaultOpen) ?? false;
482314
+ if (defaultLayerPanelOpen) {
482315
+ showLayerPanel.value = true;
482316
+ }
482199
482317
  if (props.enableStorage) {
482200
482318
  loadStoredData();
482201
482319
  }
@@ -482431,10 +482549,6 @@ ${this.attributes_.map(
482431
482549
  const onSearchClear = () => {
482432
482550
  emit("search-clear");
482433
482551
  };
482434
- const onLayerChange = (layer2) => {
482435
- emit("layer-change", layer2);
482436
- console.log("Layer changed:", layer2);
482437
- };
482438
482552
  const onShowLayerPanel = () => {
482439
482553
  showLayerPanel.value = true;
482440
482554
  };
@@ -482990,16 +483104,22 @@ ${this.attributes_.map(
482990
483104
  hasToolbarSlot.value ? vue.renderSlot(_ctx.$slots, "toolbar", { key: 2 }, void 0, true) : vue.createCommentVNode("", true),
482991
483105
  hasMapInfoSlot.value ? vue.renderSlot(_ctx.$slots, "mapInfo", { key: 3 }, void 0, true) : vue.createCommentVNode("", true),
482992
483106
  hasMapInfoSlot.value ? vue.renderSlot(_ctx.$slots, "map-info", { key: 4 }, void 0, true) : vue.createCommentVNode("", true),
482993
- finalShowLayerPanel.value ? (vue.openBlock(), vue.createBlock(LayerPanel, {
483107
+ finalEnableLayerPanel.value ? (vue.openBlock(), vue.createBlock(LayerPanel, {
482994
483108
  key: 5,
482995
483109
  modelValue: showLayerPanel.value,
482996
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showLayerPanel.value = $event),
482997
- onLayerChange
482998
- }, null, 8, ["modelValue"])) : vue.createCommentVNode("", true),
482999
- hasLayerPanelSlot.value ? vue.renderSlot(_ctx.$slots, "layerPanel", { key: 6 }, void 0, true) : vue.createCommentVNode("", true),
483000
- hasLayerPanelSlot.value ? vue.renderSlot(_ctx.$slots, "layer-panel", { key: 7 }, void 0, true) : vue.createCommentVNode("", true),
483110
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showLayerPanel.value = $event)
483111
+ }, vue.createSlots({ _: 2 }, [
483112
+ hasLayerPanelSlot.value ? {
483113
+ name: "default",
483114
+ fn: vue.withCtx((panel) => [
483115
+ vue.renderSlot(_ctx.$slots, "layerPanel", vue.normalizeProps(vue.guardReactiveProps(panel)), void 0, true),
483116
+ vue.renderSlot(_ctx.$slots, "layer-panel", vue.normalizeProps(vue.guardReactiveProps(panel)), void 0, true)
483117
+ ]),
483118
+ key: "0"
483119
+ } : void 0
483120
+ ]), 1032, ["modelValue"])) : vue.createCommentVNode("", true),
483001
483121
  showLegend.value ? (vue.openBlock(), vue.createBlock(LegendPanel, {
483002
- key: 8,
483122
+ key: 6,
483003
483123
  position: finalLegendPosition.value,
483004
483124
  width: finalLegendWidth.value,
483005
483125
  collapsible: finalLegendCollapsible.value,
@@ -483010,7 +483130,7 @@ ${this.attributes_.map(
483010
483130
  "top-offset": props.legendTopOffset,
483011
483131
  "bottom-offset": props.legendBottomOffset
483012
483132
  }, null, 8, ["position", "width", "collapsible", "default-collapsed", "show-only-visible", "left-offset", "right-offset", "top-offset", "bottom-offset"])) : vue.createCommentVNode("", true),
483013
- hasLegendSlot.value ? vue.renderSlot(_ctx.$slots, "legend", { key: 9 }, void 0, true) : vue.createCommentVNode("", true),
483133
+ hasLegendSlot.value ? vue.renderSlot(_ctx.$slots, "legend", { key: 7 }, void 0, true) : vue.createCommentVNode("", true),
483014
483134
  measurementResults.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
483015
483135
  vue.createElementVNode("div", _hoisted_2, [
483016
483136
  _cache[6] || (_cache[6] = vue.createElementVNode("h4", { class: "m-0 text-sm font-semibold text-gray-800" }, "测量结果", -1)),
@@ -483057,8 +483177,8 @@ ${this.attributes_.map(
483057
483177
  };
483058
483178
  }
483059
483179
  });
483060
- const index_vue_vue_type_style_index_0_scoped_c8137b4e_lang = "";
483061
- const CustomOpenlayer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c8137b4e"]]);
483180
+ const index_vue_vue_type_style_index_0_scoped_a8800082_lang = "";
483181
+ const CustomOpenlayer = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a8800082"]]);
483062
483182
  const base = "";
483063
483183
  var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;
483064
483184
  var fleb = new u8([
package/lib/style.css CHANGED
@@ -2160,18 +2160,18 @@ label[data-v-21ab8d8c] {
2160
2160
  }
2161
2161
 
2162
2162
  .layer-dialog {
2163
- &[data-v-c66f28f2] {
2163
+ &[data-v-d12fef13] {
2164
2164
  /* 全局样式面板样式 */
2165
2165
 
2166
2166
  /* 主标签页样式 */
2167
2167
  }
2168
2168
  .global-style-panel {
2169
- &[data-v-c66f28f2] {
2169
+ &[data-v-d12fef13] {
2170
2170
  padding: 16px;
2171
2171
  border-bottom: 1px solid #eee;
2172
2172
  background-color: #f8f9fa;
2173
2173
  }
2174
- .panel-title[data-v-c66f28f2] {
2174
+ .panel-title[data-v-d12fef13] {
2175
2175
  margin: 0 0 16px 0;
2176
2176
  font-size: 14px;
2177
2177
  font-weight: 600;
@@ -2180,32 +2180,32 @@ label[data-v-21ab8d8c] {
2180
2180
  padding-bottom: 8px;
2181
2181
  }
2182
2182
  .config-section {
2183
- &[data-v-c66f28f2] {
2183
+ &[data-v-d12fef13] {
2184
2184
  margin-bottom: 16px;
2185
2185
  }
2186
- h5[data-v-c66f28f2] {
2186
+ h5[data-v-d12fef13] {
2187
2187
  margin: 0 0 12px 0;
2188
2188
  font-size: 13px;
2189
2189
  font-weight: 500;
2190
2190
  color: #666;
2191
2191
  }
2192
2192
  .config-item {
2193
- &[data-v-c66f28f2] {
2193
+ &[data-v-d12fef13] {
2194
2194
  display: flex;
2195
2195
  align-items: center;
2196
2196
  margin-bottom: 12px;
2197
2197
  gap: 8px;
2198
2198
  }
2199
- label[data-v-c66f28f2] {
2199
+ label[data-v-d12fef13] {
2200
2200
  flex: 0 0 60px;
2201
2201
  font-size: 12px;
2202
2202
  color: #666;
2203
2203
  }
2204
- .el-slider[data-v-c66f28f2] {
2204
+ .el-slider[data-v-d12fef13] {
2205
2205
  flex: 1;
2206
2206
  margin: 0 8px;
2207
2207
  }
2208
- .value-text[data-v-c66f28f2] {
2208
+ .value-text[data-v-d12fef13] {
2209
2209
  flex: 0 0 45px;
2210
2210
  font-size: 12px;
2211
2211
  color: #999;
@@ -2213,29 +2213,29 @@ label[data-v-c66f28f2] {
2213
2213
  }
2214
2214
  }
2215
2215
  .preset-buttons {
2216
- &[data-v-c66f28f2] {
2216
+ &[data-v-d12fef13] {
2217
2217
  display: flex;
2218
2218
  gap: 6px;
2219
2219
  flex-wrap: wrap;
2220
2220
  }
2221
- .el-button[data-v-c66f28f2] {
2221
+ .el-button[data-v-d12fef13] {
2222
2222
  flex: 1;
2223
2223
  min-width: 60px;
2224
2224
  }
2225
2225
  }
2226
2226
  }
2227
- .panel-actions[data-v-c66f28f2] {
2227
+ .panel-actions[data-v-d12fef13] {
2228
2228
  margin-top: 16px;
2229
2229
  padding-top: 12px;
2230
2230
  border-top: 1px solid #ddd;
2231
2231
  text-align: center;
2232
2232
  }
2233
- .custom-css-input[data-v-c66f28f2] {
2233
+ .custom-css-input[data-v-d12fef13] {
2234
2234
  font-family: 'Courier New', monospace;
2235
2235
  font-size: 12px;
2236
2236
  line-height: 1.4;
2237
2237
  }
2238
- .custom-css-input[data-v-c66f28f2] .el-textarea__inner {
2238
+ .custom-css-input[data-v-d12fef13] .el-textarea__inner {
2239
2239
  font-family: 'Courier New', monospace;
2240
2240
  font-size: 12px;
2241
2241
  line-height: 1.4;
@@ -2243,37 +2243,37 @@ label[data-v-c66f28f2] {
2243
2243
  border: 1px solid #e9ecef;
2244
2244
  }
2245
2245
  .style-tabs {
2246
- [data-v-c66f28f2] .el-tabs__header {
2246
+ [data-v-d12fef13] .el-tabs__header {
2247
2247
  margin: 0 0 16px 0;
2248
2248
  }
2249
- [data-v-c66f28f2] .el-tabs__nav-wrap {
2249
+ [data-v-d12fef13] .el-tabs__nav-wrap {
2250
2250
  padding: 0;
2251
2251
  }
2252
- [data-v-c66f28f2] .el-tabs__item {
2252
+ [data-v-d12fef13] .el-tabs__item {
2253
2253
  font-size: 12px;
2254
2254
  padding: 0 16px;
2255
2255
  height: 32px;
2256
2256
  line-height: 32px;
2257
2257
  }
2258
- [data-v-c66f28f2] .el-tabs__content {
2258
+ [data-v-d12fef13] .el-tabs__content {
2259
2259
  padding: 0;
2260
2260
  }
2261
2261
  }
2262
2262
  .current-style-display {
2263
- &[data-v-c66f28f2] {
2263
+ &[data-v-d12fef13] {
2264
2264
  margin-top: 16px;
2265
2265
  padding: 12px;
2266
2266
  background-color: #f5f5f5;
2267
2267
  border-radius: 4px;
2268
2268
  border: 1px solid #e9ecef;
2269
2269
  }
2270
- h6[data-v-c66f28f2] {
2270
+ h6[data-v-d12fef13] {
2271
2271
  margin: 0 0 8px 0;
2272
2272
  font-size: 12px;
2273
2273
  font-weight: 500;
2274
2274
  color: #666;
2275
2275
  }
2276
- .style-preview[data-v-c66f28f2] {
2276
+ .style-preview[data-v-d12fef13] {
2277
2277
  font-family: 'Courier New', monospace;
2278
2278
  font-size: 11px;
2279
2279
  line-height: 1.4;
@@ -2289,17 +2289,17 @@ h6[data-v-c66f28f2] {
2289
2289
  }
2290
2290
  }
2291
2291
  }
2292
- .main-tabs[data-v-c66f28f2] {
2292
+ .main-tabs[data-v-d12fef13] {
2293
2293
  height: 100%;
2294
2294
  display: flex;
2295
2295
  flex-direction: column;
2296
2296
  }
2297
- .main-tabs .el-tabs__content[data-v-c66f28f2] {
2297
+ .main-tabs .el-tabs__content[data-v-d12fef13] {
2298
2298
  flex: 1;
2299
2299
  overflow: hidden;
2300
2300
  padding: 0;
2301
2301
  }
2302
- .main-tabs .el-tab-pane[data-v-c66f28f2] {
2302
+ .main-tabs .el-tab-pane[data-v-d12fef13] {
2303
2303
  height: 100%;
2304
2304
  overflow: auto;
2305
2305
  display: flex;
@@ -2307,16 +2307,16 @@ h6[data-v-c66f28f2] {
2307
2307
  }
2308
2308
  .layer-tree {
2309
2309
  .tree-node-content {
2310
- &[data-v-c66f28f2] {
2310
+ &[data-v-d12fef13] {
2311
2311
  width: 100%;
2312
2312
  }
2313
- .group-node[data-v-c66f28f2] {
2313
+ .group-node[data-v-d12fef13] {
2314
2314
  display: flex;
2315
2315
  align-items: center;
2316
2316
  padding: 8px 0;
2317
2317
  }
2318
2318
  .layer-item {
2319
- &[data-v-c66f28f2] {
2319
+ &[data-v-d12fef13] {
2320
2320
  display: flex;
2321
2321
  align-items: center;
2322
2322
  justify-content: space-between;
@@ -2324,17 +2324,17 @@ h6[data-v-c66f28f2] {
2324
2324
  padding: 6px 0;
2325
2325
  }
2326
2326
  .layer-info {
2327
- &[data-v-c66f28f2] {
2327
+ &[data-v-d12fef13] {
2328
2328
  display: flex;
2329
2329
  align-items: center;
2330
2330
  flex: 1;
2331
2331
  min-width: 0;
2332
2332
  }
2333
- .layer-icon[data-v-c66f28f2] {
2333
+ .layer-icon[data-v-d12fef13] {
2334
2334
  margin-right: 8px;
2335
2335
  flex-shrink: 0;
2336
2336
  }
2337
- .layer-name[data-v-c66f28f2] {
2337
+ .layer-name[data-v-d12fef13] {
2338
2338
  font-size: 14px;
2339
2339
  color: #333;
2340
2340
  white-space: nowrap;
@@ -2343,23 +2343,23 @@ h6[data-v-c66f28f2] {
2343
2343
  }
2344
2344
  }
2345
2345
  .layer-controls {
2346
- &[data-v-c66f28f2] {
2346
+ &[data-v-d12fef13] {
2347
2347
  display: flex;
2348
2348
  align-items: center;
2349
2349
  gap: 8px;
2350
2350
  }
2351
2351
  .opacity-control {
2352
- &[data-v-c66f28f2] {
2352
+ &[data-v-d12fef13] {
2353
2353
  display: flex;
2354
2354
  align-items: center;
2355
2355
  gap: 8px;
2356
2356
  min-width: 120px;
2357
2357
  }
2358
- .opacity-slider[data-v-c66f28f2] {
2358
+ .opacity-slider[data-v-d12fef13] {
2359
2359
  flex: 1;
2360
2360
  min-width: 80px;
2361
2361
  }
2362
- .opacity-value[data-v-c66f28f2] {
2362
+ .opacity-value[data-v-d12fef13] {
2363
2363
  font-size: 12px;
2364
2364
  color: #666;
2365
2365
  min-width: 35px;
@@ -2367,7 +2367,7 @@ h6[data-v-c66f28f2] {
2367
2367
  white-space: nowrap;
2368
2368
  }
2369
2369
  }
2370
- .style-config-btn[data-v-c66f28f2] {
2370
+ .style-config-btn[data-v-d12fef13] {
2371
2371
  width: 24px;
2372
2372
  height: 24px;
2373
2373
  padding: 0;
@@ -2380,7 +2380,7 @@ h6[data-v-c66f28f2] {
2380
2380
  }
2381
2381
 
2382
2382
  /* 样式配置面板样式 */
2383
- [data-v-c66f28f2] .layer-style-popover {
2383
+ [data-v-d12fef13] .layer-style-popover {
2384
2384
  .style-config-panel {
2385
2385
  & {
2386
2386
  padding: 0;
@@ -2459,7 +2459,7 @@ label {
2459
2459
  }
2460
2460
  }
2461
2461
 
2462
- .context-menu[data-v-c8137b4e] {
2462
+ .context-menu[data-v-a8800082] {
2463
2463
  background: white;
2464
2464
  border: 1px solid #dcdfe6;
2465
2465
  border-radius: 4px;
@@ -2467,7 +2467,7 @@ label {
2467
2467
  padding: 4px 0;
2468
2468
  min-width: 120px;
2469
2469
  }
2470
- .context-menu-item[data-v-c8137b4e] {
2470
+ .context-menu-item[data-v-a8800082] {
2471
2471
  display: flex;
2472
2472
  align-items: center;
2473
2473
  padding: 8px 12px;
@@ -2476,10 +2476,10 @@ label {
2476
2476
  color: #606266;
2477
2477
  transition: background-color 0.3s;
2478
2478
  }
2479
- .context-menu-item[data-v-c8137b4e]:hover {
2479
+ .context-menu-item[data-v-a8800082]:hover {
2480
2480
  background-color: #f5f7fa;
2481
2481
  }
2482
- .context-menu-item .el-icon[data-v-c8137b4e] {
2482
+ .context-menu-item .el-icon[data-v-a8800082] {
2483
2483
  margin-right: 8px;
2484
2484
  font-size: 16px;
2485
2485
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-openlayers-plugin",
3
- "version": "1.0.56",
3
+ "version": "1.0.57",
4
4
  "description": "A Vue 3 plugin for OpenLayers with custom components and utilities",
5
5
  "main": "lib/index.umd.js",
6
6
  "module": "lib/index.esm.js",