xt-element-ui 1.2.8 → 1.3.1

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 (47) hide show
  1. package/docs/components/base/xt-map.md +331 -0
  2. package/docs/components/base/xt-step-price.md +103 -217
  3. package/lib/index.common.js +2218 -87
  4. package/lib/index.css +1 -1
  5. package/lib/index.umd.js +2218 -87
  6. package/lib/index.umd.min.js +5 -5
  7. package/package.json +4 -3
  8. package/src/components/ex-button/index.js +8 -2
  9. package/src/components/ex-chart/index.js +6 -0
  10. package/src/components/ex-date-picker/index.js +8 -2
  11. package/src/components/ex-icon/index.js +6 -0
  12. package/src/components/ex-page/index.js +8 -2
  13. package/src/components/ex-select-tree/index.js +8 -2
  14. package/src/components/ex-table/index.js +6 -0
  15. package/src/components/ex-upload/index.js +6 -0
  16. package/src/components/xt-button/index.js +8 -2
  17. package/src/components/xt-button/index.vue +53 -10
  18. package/src/components/xt-button/style/index.scss +147 -43
  19. package/src/components/xt-card/index.js +8 -2
  20. package/src/components/xt-card-item/index.js +8 -2
  21. package/src/components/xt-config-provider/index.js +6 -0
  22. package/src/components/xt-flex-box/index.js +8 -2
  23. package/src/components/xt-flex-box/style/index.scss +0 -9
  24. package/src/components/xt-grid-box/index.js +8 -2
  25. package/src/components/xt-grid-item/index.js +7 -1
  26. package/src/components/xt-input/index.js +8 -2
  27. package/src/components/xt-input/index.vue +66 -37
  28. package/src/components/xt-input/style/index.scss +70 -13
  29. package/src/components/xt-map/adapters/amap.js +235 -0
  30. package/src/components/xt-map/adapters/baidu.js +254 -0
  31. package/src/components/xt-map/adapters/base.js +267 -0
  32. package/src/components/xt-map/adapters/index.js +29 -0
  33. package/src/components/xt-map/adapters/tianditu.js +242 -0
  34. package/src/components/xt-map/config/xt-map-config.js +197 -0
  35. package/src/components/xt-map/index.js +22 -0
  36. package/src/components/xt-map/index.vue +351 -0
  37. package/src/components/xt-map/loaders/script-loader.js +114 -0
  38. package/src/components/xt-map/provider.vue +200 -0
  39. package/src/components/xt-map/style/index.scss +77 -0
  40. package/src/components/xt-step-price/index.js +9 -0
  41. package/src/components/xt-step-price/index.vue +12 -10
  42. package/src/components/xt-step-price/style/index.scss +32 -24
  43. package/src/components/xt-step-price-item/index.js +6 -0
  44. package/src/components/xt-step-price-item/index.vue +13 -9
  45. package/src/components/xt-text/index.js +8 -2
  46. package/src/components/xt-time/index.js +6 -0
  47. package/src/index.js +6 -0
@@ -115,6 +115,13 @@ function isThisHour (dirtyDate) {
115
115
  module.exports = isThisHour
116
116
 
117
117
 
118
+ /***/ }),
119
+
120
+ /***/ "033d":
121
+ /***/ (function(module, exports, __webpack_require__) {
122
+
123
+ // extracted by mini-css-extract-plugin
124
+
118
125
  /***/ }),
119
126
 
120
127
  /***/ "0918":
@@ -121233,6 +121240,17 @@ function startOfToday () {
121233
121240
  module.exports = startOfToday
121234
121241
 
121235
121242
 
121243
+ /***/ }),
121244
+
121245
+ /***/ "3cef":
121246
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
121247
+
121248
+ "use strict";
121249
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_provider_vue_vue_type_style_index_0_id_16f243b0_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("033d");
121250
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_provider_vue_vue_type_style_index_0_id_16f243b0_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_provider_vue_vue_type_style_index_0_id_16f243b0_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
121251
+ /* unused harmony reexport * */
121252
+
121253
+
121236
121254
  /***/ }),
121237
121255
 
121238
121256
  /***/ "3eee":
@@ -126155,6 +126173,13 @@ function isSameSecond (dirtyDateLeft, dirtyDateRight) {
126155
126173
  module.exports = isSameSecond
126156
126174
 
126157
126175
 
126176
+ /***/ }),
126177
+
126178
+ /***/ "c759":
126179
+ /***/ (function(module, exports, __webpack_require__) {
126180
+
126181
+ // extracted by mini-css-extract-plugin
126182
+
126158
126183
  /***/ }),
126159
126184
 
126160
126185
  /***/ "c7ce":
@@ -128922,21 +128947,26 @@ const onConfigChange = function(listener) {
128922
128947
  onConfigChange
128923
128948
  });
128924
128949
 
128925
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-button/index.vue?vue&type=template&id=02fecd1e
128950
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-button/index.vue?vue&type=template&id=daf19d9c
128926
128951
  var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:"xt-button",class:[
128927
- _vm.type ?'xt-button--' + _vm.type: '',
128952
+ _vm.type ? 'xt-button--' + _vm.type : '',
128928
128953
  _vm.size ? 'xt-button--' + _vm.size : '',
128929
128954
  {
128930
- 'is-plain': _vm.plain,
128955
+ 'is-plain': _vm.plain,
128931
128956
  'is-disabled': _vm.disabled,
128932
- 'is-round': _vm.round
128957
+ 'is-round': _vm.round,
128958
+ 'is-circle': _vm.circle,
128959
+ 'is-dashed': _vm.dashed,
128960
+ 'is-text': _vm.text,
128961
+ 'is-link': _vm.link,
128962
+ 'is-loading': _vm.loading
128933
128963
  }
128934
- ],attrs:{"disabled":_vm.disabled},on:{"click":_vm.handleClick}},[_vm._t("default")],2)
128964
+ ],attrs:{"disabled":_vm.disabled || _vm.loading},on:{"click":_vm.handleClick}},[(_vm.loading)?_c('i',{staticClass:"el-icon-loading"}):(_vm.icon)?_c('i',{class:_vm.iconClass}):_vm._e(),(_vm.$slots.default)?_c('span',{staticClass:"xt-button__inner"},[_vm._t("default")],2):_vm._e()])
128935
128965
  }
128936
128966
  var staticRenderFns = []
128937
128967
 
128938
128968
 
128939
- // CONCATENATED MODULE: ./src/components/xt-button/index.vue?vue&type=template&id=02fecd1e
128969
+ // CONCATENATED MODULE: ./src/components/xt-button/index.vue?vue&type=template&id=daf19d9c
128940
128970
 
128941
128971
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-button/index.vue?vue&type=script&lang=js
128942
128972
 
@@ -128946,7 +128976,7 @@ var staticRenderFns = []
128946
128976
  type: {
128947
128977
  type: String,
128948
128978
  default: '',
128949
- validator: (val) => ['', 'primary', 'success', 'warning', 'danger'].includes(val)
128979
+ validator: (val) => ['', 'primary', 'success', 'warning', 'danger', 'info'].includes(val)
128950
128980
  },
128951
128981
  size: {
128952
128982
  type: String,
@@ -128964,11 +128994,44 @@ var staticRenderFns = []
128964
128994
  round: {
128965
128995
  type: Boolean,
128966
128996
  default: false
128997
+ },
128998
+ circle: {
128999
+ type: Boolean,
129000
+ default: false
129001
+ },
129002
+ dashed: {
129003
+ type: Boolean,
129004
+ default: false
129005
+ },
129006
+ text: {
129007
+ type: Boolean,
129008
+ default: false
129009
+ },
129010
+ link: {
129011
+ type: Boolean,
129012
+ default: false
129013
+ },
129014
+ icon: {
129015
+ type: String,
129016
+ default: ''
129017
+ },
129018
+ loading: {
129019
+ type: Boolean,
129020
+ default: false
129021
+ }
129022
+ },
129023
+ computed: {
129024
+ iconClass() {
129025
+ if (!this.icon) return ''
129026
+ if (this.icon.indexOf('el-icon') === 0) {
129027
+ return this.icon
129028
+ }
129029
+ return 'el-icon-' + this.icon
128967
129030
  }
128968
129031
  },
128969
129032
  methods: {
128970
129033
  handleClick() {
128971
- if (!this.disabled) {
129034
+ if (!this.disabled && !this.loading) {
128972
129035
  this.$emit('click')
128973
129036
  }
128974
129037
  }
@@ -129096,42 +129159,68 @@ var component = normalizeComponent(
129096
129159
 
129097
129160
  /* harmony default export */ var xt_button = (component.exports);
129098
129161
  // CONCATENATED MODULE: ./src/components/xt-button/index.js
129099
-
129162
+
129163
+
129164
+ xt_button.install = function (Vue) {
129165
+ Vue.component(xt_button.name, xt_button)
129166
+ }
129167
+
129100
129168
  /* harmony default export */ var components_xt_button = (xt_button);
129101
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-input/index.vue?vue&type=template&id=f11783a2
129102
- var xt_inputvue_type_template_id_f11783a2_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-input"},[_c('el-input',{style:(_vm.inputStyle),attrs:{"value":_vm.value,"placeholder":_vm.placeholder},on:{"input":function($event){return _vm.$emit('input', $event)}}})],1)
129169
+
129170
+
129171
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-input/index.vue?vue&type=template&id=69bd5491
129172
+ var xt_inputvue_type_template_id_69bd5491_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-input",class:[
129173
+ _vm.size ? 'xt-input--' + _vm.size : '',
129174
+ { 'is-disabled': _vm.disabled }
129175
+ ]},[_c('el-input',{style:(_vm.inputStyle),attrs:{"value":_vm.value,"placeholder":_vm.placeholder,"type":_vm.type,"size":_vm.size,"disabled":_vm.disabled,"readonly":_vm.readonly},on:{"input":function($event){return _vm.$emit('input', $event)},"change":function($event){return _vm.$emit('change', $event)},"focus":function($event){return _vm.$emit('focus', $event)},"blur":function($event){return _vm.$emit('blur', $event)}}})],1)
129103
129176
  }
129104
- var xt_inputvue_type_template_id_f11783a2_staticRenderFns = []
129177
+ var xt_inputvue_type_template_id_69bd5491_staticRenderFns = []
129105
129178
 
129106
129179
 
129107
- // CONCATENATED MODULE: ./src/components/xt-input/index.vue?vue&type=template&id=f11783a2
129180
+ // CONCATENATED MODULE: ./src/components/xt-input/index.vue?vue&type=template&id=69bd5491
129108
129181
 
129109
129182
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-input/index.vue?vue&type=script&lang=js
129110
-
129111
- /* harmony default export */ var xt_inputvue_type_script_lang_js = ({
129112
- name: 'XtInput',
129113
- props: {
129114
- value: [String, Number],
129115
- placeholder: {
129116
- type: String,
129117
- default: '请输入内容'
129118
- },
129119
- color: {
129120
- type: String,
129121
- default: ''
129122
- }
129123
- },
129124
- computed: {
129125
- inputStyle() {
129126
- if (this.color) {
129127
- return {
129128
- '--xt-input-focus-color': this.color
129129
- }
129130
- }
129131
- return {}
129132
- }
129133
- }
129134
- });
129183
+
129184
+ /* harmony default export */ var xt_inputvue_type_script_lang_js = ({
129185
+ name: 'XtInput',
129186
+ props: {
129187
+ value: [String, Number],
129188
+ placeholder: {
129189
+ type: String,
129190
+ default: '请输入内容'
129191
+ },
129192
+ type: {
129193
+ type: String,
129194
+ default: 'text'
129195
+ },
129196
+ size: {
129197
+ type: String,
129198
+ default: ''
129199
+ },
129200
+ disabled: {
129201
+ type: Boolean,
129202
+ default: false
129203
+ },
129204
+ readonly: {
129205
+ type: Boolean,
129206
+ default: false
129207
+ },
129208
+ color: {
129209
+ type: String,
129210
+ default: ''
129211
+ }
129212
+ },
129213
+ computed: {
129214
+ inputStyle() {
129215
+ if (this.color) {
129216
+ return {
129217
+ '--xt-input-focus-color': this.color
129218
+ }
129219
+ }
129220
+ return {}
129221
+ }
129222
+ }
129223
+ });
129135
129224
 
129136
129225
  // CONCATENATED MODULE: ./src/components/xt-input/index.vue?vue&type=script&lang=js
129137
129226
  /* harmony default export */ var components_xt_inputvue_type_script_lang_js = (xt_inputvue_type_script_lang_js);
@@ -129145,8 +129234,8 @@ var xt_inputvue_type_template_id_f11783a2_staticRenderFns = []
129145
129234
 
129146
129235
  var xt_input_component = normalizeComponent(
129147
129236
  components_xt_inputvue_type_script_lang_js,
129148
- xt_inputvue_type_template_id_f11783a2_render,
129149
- xt_inputvue_type_template_id_f11783a2_staticRenderFns,
129237
+ xt_inputvue_type_template_id_69bd5491_render,
129238
+ xt_inputvue_type_template_id_69bd5491_staticRenderFns,
129150
129239
  false,
129151
129240
  null,
129152
129241
  null,
@@ -129156,9 +129245,16 @@ var xt_input_component = normalizeComponent(
129156
129245
 
129157
129246
  /* harmony default export */ var xt_input = (xt_input_component.exports);
129158
129247
  // CONCATENATED MODULE: ./src/components/xt-input/index.js
129159
-
129248
+
129249
+
129250
+ xt_input.install = function (Vue) {
129251
+ Vue.component(xt_input.name, xt_input)
129252
+ }
129253
+
129160
129254
  /* harmony default export */ var components_xt_input = (xt_input);
129161
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-flex-box/index.vue?vue&type=template&id=21429280
129255
+
129256
+
129257
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-flex-box/index.vue?vue&type=template&id=21429280
129162
129258
  var xt_flex_boxvue_type_template_id_21429280_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-flex-box",class:_vm.classAttrs,style:(_vm.flexStyle)},[_vm._t("default")],2)
129163
129259
  }
129164
129260
  var xt_flex_boxvue_type_template_id_21429280_staticRenderFns = []
@@ -129218,9 +129314,16 @@ var xt_flex_box_component = normalizeComponent(
129218
129314
 
129219
129315
  /* harmony default export */ var xt_flex_box = (xt_flex_box_component.exports);
129220
129316
  // CONCATENATED MODULE: ./src/components/xt-flex-box/index.js
129221
-
129317
+
129318
+
129319
+ xt_flex_box.install = function (Vue) {
129320
+ Vue.component(xt_flex_box.name, xt_flex_box)
129321
+ }
129322
+
129222
129323
  /* harmony default export */ var components_xt_flex_box = (xt_flex_box);
129223
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card/index.vue?vue&type=template&id=bc9ed1fa
129324
+
129325
+
129326
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card/index.vue?vue&type=template&id=bc9ed1fa
129224
129327
  var xt_cardvue_type_template_id_bc9ed1fa_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-card",class:{'no-padding': _vm.noPadding }},[(_vm.title)?_c('div',{staticClass:"card__header"},[_vm._t("icon",function(){return [_vm._v(_vm._s(_vm.icon))]}),_vm._t("title",function(){return [_vm._v(_vm._s(_vm.title))]})],2):_vm._e(),_c('div',{staticClass:"card__body"},[_vm._t("default",function(){return [_c('span',{staticClass:"value"},[_vm._t("value",function(){return [_vm._v(_vm._s(_vm.value))]})],2),_c('span',{staticClass:"unit"},[_vm._v(_vm._s(_vm.unit))])]})],2)])
129225
129328
  }
129226
129329
  var xt_cardvue_type_template_id_bc9ed1fa_staticRenderFns = []
@@ -129266,9 +129369,16 @@ var xt_card_component = normalizeComponent(
129266
129369
 
129267
129370
  /* harmony default export */ var xt_card = (xt_card_component.exports);
129268
129371
  // CONCATENATED MODULE: ./src/components/xt-card/index.js
129269
-
129372
+
129373
+
129374
+ xt_card.install = function (Vue) {
129375
+ Vue.component(xt_card.name, xt_card)
129376
+ }
129377
+
129270
129378
  /* harmony default export */ var components_xt_card = (xt_card);
129271
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=template&id=1e46df45
129379
+
129380
+
129381
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=template&id=1e46df45
129272
129382
  var xt_card_itemvue_type_template_id_1e46df45_render = function render(){var _vm=this,_c=_vm._self._c;return _c('ex-card',{staticClass:"xt-card-item",class:{ [`is-${_vm.type}`]: _vm.type ? true : false},attrs:{"bordered":false}},[_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]),_c('xt-flex-box',[_c('div',{staticStyle:{"width":"50%","margin-bottom":"5px"}},[_c('xt-text',{attrs:{"bold":"","size":"large","format":"thousand","type":_vm.type,"decimals":0},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:"value"}}),_c('div',{staticStyle:{"margin":"5px 0"}},[_c('xt-text',{attrs:{"size":"small"}},[_vm._v("较昨日")]),_c('xt-text',{attrs:{"format":"normal","type":_vm.diff > 0 ? 'success' : 'danger',"suffix":_vm.diff > 0 ? '↑' : '↓'},model:{value:(_vm.change),callback:function ($$v) {_vm.change=$$v},expression:"change"}})],1)],1),_c('div',{staticStyle:{"flex":"1","height":"100%"}},[_vm._t("icon",function(){return [_c('xt-text',{attrs:{"size":"extra-large","type":_vm.type}},[_c('i',{staticClass:"el-icon-user"})])]})],2)])],1)
129273
129383
  }
129274
129384
  var xt_card_itemvue_type_template_id_1e46df45_staticRenderFns = []
@@ -129316,8 +129426,15 @@ var xt_card_item_component = normalizeComponent(
129316
129426
 
129317
129427
  /* harmony default export */ var xt_card_item = (xt_card_item_component.exports);
129318
129428
  // CONCATENATED MODULE: ./src/components/xt-card-item/index.js
129319
-
129429
+
129430
+
129431
+ xt_card_item.install = function (Vue) {
129432
+ Vue.component(xt_card_item.name, xt_card_item)
129433
+ }
129434
+
129320
129435
  /* harmony default export */ var components_xt_card_item = (xt_card_item);
129436
+
129437
+
129321
129438
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-config-provider/index.vue?vue&type=script&lang=js
129322
129439
 
129323
129440
 
@@ -129701,9 +129818,15 @@ var xt_config_provider_component = normalizeComponent(
129701
129818
  /* harmony default export */ var xt_config_provider = (xt_config_provider_component.exports);
129702
129819
  // CONCATENATED MODULE: ./src/components/xt-config-provider/index.js
129703
129820
 
129821
+
129822
+ xt_config_provider.install = function (Vue) {
129823
+ Vue.component(xt_config_provider.name, xt_config_provider)
129824
+ }
129825
+
129704
129826
  /* harmony default export */ var components_xt_config_provider = (xt_config_provider);
129827
+
129705
129828
 
129706
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-text/index.vue?vue&type=template&id=7df75bea
129829
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-text/index.vue?vue&type=template&id=7df75bea
129707
129830
  var xt_textvue_type_template_id_7df75bea_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-text",class:[
129708
129831
  _vm.type ? 'xt-text--' + _vm.type : '',
129709
129832
  'xt-text--' + _vm.size,
@@ -129875,9 +129998,16 @@ var xt_text_component = normalizeComponent(
129875
129998
 
129876
129999
  /* harmony default export */ var xt_text = (xt_text_component.exports);
129877
130000
  // CONCATENATED MODULE: ./src/components/xt-text/index.js
129878
-
130001
+
130002
+
130003
+ xt_text.install = function (Vue) {
130004
+ Vue.component(xt_text.name, xt_text)
130005
+ }
130006
+
129879
130007
  /* harmony default export */ var components_xt_text = (xt_text);
129880
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
130008
+
130009
+
130010
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
129881
130011
  var xt_timevue_type_template_id_d29acf2c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-time",class:[
129882
130012
  _vm.typeColor ? 'xt-time--' + _vm.typeColor : '',
129883
130013
  'xt-time--' + _vm.size,
@@ -130190,23 +130320,29 @@ var xt_time_component = normalizeComponent(
130190
130320
  /* harmony default export */ var xt_time = (xt_time_component.exports);
130191
130321
  // CONCATENATED MODULE: ./src/components/xt-time/index.js
130192
130322
 
130323
+
130324
+ xt_time.install = function (Vue) {
130325
+ Vue.component(xt_time.name, xt_time)
130326
+ }
130327
+
130193
130328
  /* harmony default export */ var components_xt_time = (xt_time);
130329
+
130194
130330
 
130195
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price/index.vue?vue&type=template&id=263a6004
130196
- var xt_step_pricevue_type_template_id_263a6004_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price",class:{ 'is-disabled': _vm.disabled }},[(_vm.title || _vm.$slots.header)?_c('div',{staticClass:"xt-step-price__header"},[(_vm.title)?_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_vm._t("header"),(!_vm.disabled && !_vm.isLimitReached)?_c('el-button',{attrs:{"type":"primary","size":"small","icon":"el-icon-plus","plain":""},on:{"click":_vm.onAdd}},[_vm._v("新增阶梯")]):_vm._e(),(_vm.isLimitReached)?_c('xt-text',{attrs:{"size":"small","type-color":"info"}},[_vm._v("已达上限("+_vm._s(_vm.localItems.length)+"/"+_vm._s(_vm.limit)+")")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:"xt-step-price__list"},_vm._l((_vm.localItems),function(item,idx){return _c('XtStepPriceItem',{key:idx,attrs:{"value":item,"index":idx,"is-first":idx === 0,"is-last":idx === _vm.localItems.length - 1,"items-length":_vm.localItems.length,"removable":idx !== 0,"min-locked":idx !== 0 ? true : false,"unit":_vm.unit,"precision":_vm.precision,"left-bracket":_vm.leftBracket,"right-bracket":_vm.rightBracket,"field-keys":_vm.fieldKeys,"disabled":_vm.disabled},on:{"input":(val) => _vm.onItemInput(val, idx),"max-change":_vm.onMaxChange,"min-change":_vm.onMinChange,"delete":_vm.onDelete}})}),1),(_vm.localItems.length === 0)?_c('div',{staticClass:"xt-step-price__empty"},[_c('span',[_vm._v("暂无数据,点击右上角「新增阶梯」开始配置")])]):_vm._e(),(_vm.tip || _vm.$slots.tip)?_c('div',{staticClass:"xt-step-price__tip"},[_vm._t("tip",function(){return [_c('xt-text',{attrs:{"size":"small","type-color":"warning"}},[_vm._v(_vm._s(_vm.tip))])]})],2):_vm._e()])
130331
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price/index.vue?vue&type=template&id=1fb68540
130332
+ var xt_step_pricevue_type_template_id_1fb68540_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price",class:{ 'is-disabled': _vm.disabled }},[(_vm.title || _vm.$slots.header)?_c('div',{staticClass:"xt-step-price__header"},[(_vm.title)?_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_vm._t("header"),(!_vm.disabled && !_vm.isLimitReached)?_c('xt-button',{attrs:{"type":"primary","size":"small","icon":"el-icon-plus","plain":""},on:{"click":_vm.onAdd}},[_vm._v("新增档位")]):_vm._e(),(_vm.isLimitReached)?_c('xt-text',{attrs:{"size":"small","type-color":"info"}},[_vm._v("已达上限("+_vm._s(_vm.localItems.length)+"/"+_vm._s(_vm.limit)+")")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:"xt-step-price__list"},_vm._l((_vm.localItems),function(item,idx){return _c('XtStepPriceItem',{key:idx,attrs:{"value":item,"index":idx,"is-first":idx === 0,"is-last":idx === _vm.localItems.length - 1,"items-length":_vm.localItems.length,"removable":idx !== 0,"min-locked":idx !== 0 ? true : false,"unit":_vm.unit,"precision":_vm.precision,"step":_vm.step,"left-bracket":_vm.leftBracket,"right-bracket":_vm.rightBracket,"field-keys":_vm.fieldKeys,"disabled":_vm.disabled},on:{"input":(val) => _vm.onItemInput(val, idx),"max-change":_vm.onMaxChange,"min-change":_vm.onMinChange,"delete":_vm.onDelete}})}),1),(_vm.localItems.length === 0)?_c('div',{staticClass:"xt-step-price__empty"},[_c('span',[_vm._v("暂无数据,点击右上角「新增档位」开始配置")])]):_vm._e(),(_vm.tip || _vm.$slots.tip)?_c('div',{staticClass:"xt-step-price__tip"},[_vm._t("tip",function(){return [_c('xt-text',{attrs:{"size":"small","type-color":"warning"}},[_vm._v(_vm._s(_vm.tip))])]})],2):_vm._e()])
130197
130333
  }
130198
- var xt_step_pricevue_type_template_id_263a6004_staticRenderFns = []
130334
+ var xt_step_pricevue_type_template_id_1fb68540_staticRenderFns = []
130199
130335
 
130200
130336
 
130201
- // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=263a6004
130337
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=1fb68540
130202
130338
 
130203
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=template&id=8fdfa548
130204
- var xt_step_price_itemvue_type_template_id_8fdfa548_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price-item"},[_c('div',{staticClass:"xt-step-price-item__range"},[_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalLeftBracket))]),_c('el-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled || _vm.minLocked,"size":"small"},on:{"blur":_vm.onMinBlur},model:{value:(_vm.minInput),callback:function ($$v) {_vm.minInput=_vm._n($$v)},expression:"minInput"}}),_c('span',{staticClass:"xt-step-price-item__comma"},[_vm._v(",")]),(!_vm.isLast)?_c('el-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled,"size":"small"},on:{"blur":_vm.onMaxBlur},model:{value:(_vm.maxInput),callback:function ($$v) {_vm.maxInput=_vm._n($$v)},expression:"maxInput"}}):_c('span',{staticClass:"xt-step-price-item__infinity"},[_vm._v("+∞")]),_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalRightBracket))])],1),_c('span',{staticClass:"xt-step-price-item__arrow"},[_vm._v("→")]),_c('div',{staticClass:"xt-step-price-item__price"},[_c('el-input',{staticClass:"xt-step-price-item__input xt-step-price-item__input--price",attrs:{"disabled":_vm.disabled,"size":"small","placeholder":"价格"},on:{"blur":_vm.onPriceBlur},model:{value:(_vm.priceInput),callback:function ($$v) {_vm.priceInput=_vm._n($$v)},expression:"priceInput"}}),_c('span',{staticClass:"xt-step-price-item__unit"},[_vm._v(_vm._s(_vm.unit))])],1),(!_vm.disabled && _vm.removable && _vm.itemsLength > 1)?_c('el-button',{staticClass:"xt-step-price-item__delete",attrs:{"type":"text","icon":"el-icon-delete"},on:{"click":_vm.onDelete}}):_vm._e()],1)
130339
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=template&id=0606a780
130340
+ var xt_step_price_itemvue_type_template_id_0606a780_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price-item"},[_c('div',{staticClass:"xt-step-price-item__range"},[_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalLeftBracket))]),(_vm.itemsLength > 1)?_c('span',{staticClass:"xt-step-price-item__name"},[_vm._v("第"+_vm._s(_vm.index + 1)+"档")]):_vm._e(),_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalRightBracket))]),_c('xt-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled || _vm.minLocked,"size":"small","placeholder":"下限"},on:{"blur":_vm.onMinBlur},model:{value:(_vm.minInput),callback:function ($$v) {_vm.minInput=_vm._n($$v)},expression:"minInput"}}),_c('span',{staticClass:"xt-step-price-item__comma"},[_vm._v("-")]),(!_vm.isLast)?_c('xt-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled,"size":"small","placeholder":"上限"},on:{"blur":_vm.onMaxBlur},model:{value:(_vm.maxInput),callback:function ($$v) {_vm.maxInput=_vm._n($$v)},expression:"maxInput"}}):_c('span',{staticClass:"xt-step-price-item__infinity"},[_vm._v("+∞")])],1),_c('div',{staticClass:"xt-step-price-item__price"},[_c('xt-input',{staticClass:"xt-step-price-item__input xt-step-price-item__input--price",attrs:{"disabled":_vm.disabled,"size":"small","placeholder":"价格"},on:{"blur":_vm.onPriceBlur},model:{value:(_vm.priceInput),callback:function ($$v) {_vm.priceInput=_vm._n($$v)},expression:"priceInput"}}),_c('span',{staticClass:"xt-step-price-item__unit"},[_vm._v(_vm._s(_vm.unit))])],1),(!_vm.disabled && _vm.removable && _vm.itemsLength > 1)?_c('xt-button',{staticClass:"xt-step-price-item__delete",attrs:{"text":"","icon":"el-icon-delete"},on:{"click":_vm.onDelete}}):_vm._e()],1)
130205
130341
  }
130206
- var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130342
+ var xt_step_price_itemvue_type_template_id_0606a780_staticRenderFns = []
130207
130343
 
130208
130344
 
130209
- // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=template&id=8fdfa548
130345
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=template&id=0606a780
130210
130346
 
130211
130347
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=script&lang=js
130212
130348
 
@@ -130228,6 +130364,8 @@ var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130228
130364
  minLocked: { type: Boolean, default: false },
130229
130365
  unit: { type: String, default: '元' },
130230
130366
  precision: { type: Number, default: 2 },
130367
+ // 阶梯增量:控制新增/校正时的区间跨度,默认 1
130368
+ step: { type: Number, default: 1 },
130231
130369
  // 左括号:默认 '[',传空则不显示
130232
130370
  leftBracket: { type: String, default: '[' },
130233
130371
  // 右括号:默认 null,走内置规则(只有1条为 ']',多条为 ')');传值则强制使用
@@ -130245,7 +130383,7 @@ var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130245
130383
  keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130246
130384
  finalRightBracket() {
130247
130385
  if (this.rightBracket !== null && this.rightBracket !== undefined && this.rightBracket !== '') return this.rightBracket
130248
- return this.itemsLength === 1 ? ']' : ')'
130386
+ return this.isLast ? ']' : ')'
130249
130387
  },
130250
130388
  finalLeftBracket() {
130251
130389
  return (this.leftBracket === null || this.leftBracket === undefined) ? '[' : this.leftBracket
@@ -130356,8 +130494,8 @@ var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130356
130494
 
130357
130495
  var xt_step_price_item_component = normalizeComponent(
130358
130496
  components_xt_step_price_itemvue_type_script_lang_js,
130359
- xt_step_price_itemvue_type_template_id_8fdfa548_render,
130360
- xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns,
130497
+ xt_step_price_itemvue_type_template_id_0606a780_render,
130498
+ xt_step_price_itemvue_type_template_id_0606a780_staticRenderFns,
130361
130499
  false,
130362
130500
  null,
130363
130501
  null,
@@ -130404,6 +130542,8 @@ var xt_step_price_item_component = normalizeComponent(
130404
130542
  },
130405
130543
  // 阶梯数量上限;<= 0 表示不限制
130406
130544
  limit: { type: Number, default: 0 },
130545
+ // 阶梯增量:新增/校正时,下一条阶梯的 min = 当前 max = 当前 min + step(默认 1)
130546
+ step: { type: Number, default: 10 },
130407
130547
  disabled: { type: Boolean, default: false },
130408
130548
  tip: {
130409
130549
  type: String,
@@ -130459,14 +130599,15 @@ var xt_step_price_item_component = normalizeComponent(
130459
130599
  ensureContinuity(list) {
130460
130600
  if (!Array.isArray(list) || list.length === 0) return
130461
130601
  list[0][this.keyMin] = 0
130602
+ const stepVal = this.safeNumber(this.step, 1)
130462
130603
 
130463
130604
  for (let i = 0; i < list.length; i++) {
130464
130605
  const cur = list[i]
130465
130606
  const next = list[i + 1]
130466
130607
  const curMin = this.safeNumber(cur[this.keyMin], 0)
130467
130608
  if (next) {
130468
- let curMax = this.safeNumber(cur[this.keyMax], curMin + 1)
130469
- if (curMax <= curMin) curMax = curMin + 1
130609
+ let curMax = this.safeNumber(cur[this.keyMax], curMin + stepVal)
130610
+ if (curMax <= curMin) curMax = curMin + stepVal
130470
130611
  cur[this.keyMax] = curMax
130471
130612
  next[this.keyMin] = curMax
130472
130613
  } else {
@@ -130517,6 +130658,7 @@ var xt_step_price_item_component = normalizeComponent(
130517
130658
  const list = this.localItems
130518
130659
  const lim = Number(this.limit)
130519
130660
  if (lim > 0 && list.length >= lim) return
130661
+ const stepVal = this.safeNumber(this.step, 1)
130520
130662
 
130521
130663
  // 场景 1:空数组 —— 直接 push 一条 [0, +∞)
130522
130664
  if (list.length === 0) {
@@ -130529,10 +130671,10 @@ var xt_step_price_item_component = normalizeComponent(
130529
130671
  return
130530
130672
  }
130531
130673
 
130532
- // 场景 2:已有数据 —— 在末条前插入新条
130674
+ // 场景 2:已有数据 —— 在末条前插入新条,新条的 max = 末条 min + step
130533
130675
  const last = list[list.length - 1]
130534
130676
  const newMin = this.safeNumber(last[this.keyMin], 0)
130535
- const newMax = newMin + 1
130677
+ const newMax = newMin + stepVal
130536
130678
 
130537
130679
  // 新条 price:优先继承「倒数第二条」的 price,其次用末条 price(>0 时),否则默认 10
130538
130680
  const prev = list[list.length - 2]
@@ -130544,9 +130686,6 @@ var xt_step_price_item_component = normalizeComponent(
130544
130686
  newPrice = lastPrice > 0 ? lastPrice : 10
130545
130687
  }
130546
130688
 
130547
- // 关键修复:构造全新数组,避免 splice 导致 Vue 组件复用 & 响应式不同步
130548
- // 新条 = { newMin, newMax, newPrice }
130549
- // 新末条 = { min: newMax, max: null, price: newPrice }
130550
130689
  const newArr = [
130551
130690
  ...list.slice(0, -1),
130552
130691
  {
@@ -130597,8 +130736,8 @@ var xt_step_price_item_component = normalizeComponent(
130597
130736
 
130598
130737
  var xt_step_price_component = normalizeComponent(
130599
130738
  components_xt_step_pricevue_type_script_lang_js,
130600
- xt_step_pricevue_type_template_id_263a6004_render,
130601
- xt_step_pricevue_type_template_id_263a6004_staticRenderFns,
130739
+ xt_step_pricevue_type_template_id_1fb68540_render,
130740
+ xt_step_pricevue_type_template_id_1fb68540_staticRenderFns,
130602
130741
  false,
130603
130742
  null,
130604
130743
  null,
@@ -130609,13 +130748,1954 @@ var xt_step_price_component = normalizeComponent(
130609
130748
  /* harmony default export */ var xt_step_price = (xt_step_price_component.exports);
130610
130749
  // CONCATENATED MODULE: ./src/components/xt-step-price/index.js
130611
130750
 
130751
+
130752
+
130753
+ xt_step_price.install = function (Vue) {
130754
+ Vue.component(xt_step_price.name, xt_step_price)
130755
+ Vue.component(xt_step_price_item.name, xt_step_price_item)
130756
+ }
130757
+
130758
+ // 同时导出组件和 install 方法,支持多种引入方式
130612
130759
  /* harmony default export */ var components_xt_step_price = (xt_step_price);
130613
130760
 
130614
130761
  // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.js
130615
130762
 
130763
+
130764
+ xt_step_price_item.install = function (Vue) {
130765
+ Vue.component(xt_step_price_item.name, xt_step_price_item)
130766
+ }
130767
+
130616
130768
  /* harmony default export */ var components_xt_step_price_item = (xt_step_price_item);
130617
130769
 
130618
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-box/index.vue?vue&type=template&id=67e197c4
130770
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/index.vue?vue&type=template&id=0c15823e
130771
+ var xt_mapvue_type_template_id_0c15823e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-map-wrapper"},[_c('div',{ref:"mapContainer",staticClass:"xt-map-container",attrs:{"data-theme":_vm.mergedTheme}}),(_vm.loading)?_c('div',{staticClass:"xt-map-loading"},[_c('span',[_vm._v("地图加载中...")])]):_vm._e(),(_vm.errorMessage)?_c('div',{staticClass:"xt-map-error"},[_c('span',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_vm._t("overlay")],2)
130772
+ }
130773
+ var xt_mapvue_type_template_id_0c15823e_staticRenderFns = []
130774
+
130775
+
130776
+ // CONCATENATED MODULE: ./src/components/xt-map/index.vue?vue&type=template&id=0c15823e
130777
+
130778
+ // CONCATENATED MODULE: ./src/components/xt-map/loaders/script-loader.js
130779
+ /**
130780
+ * 动态脚本加载器
130781
+ * 负责动态注入地图 SDK <script> 标签,并返回 Promise
130782
+ * 同一 URL 只会加载一次,缓存已加载的结果
130783
+ */
130784
+
130785
+ const loadedScripts = new Map() // URL -> Promise
130786
+ const loadingScripts = new Map() // URL -> Promise (正在加载中)
130787
+
130788
+ /**
130789
+ * 动态加载单个脚本
130790
+ * @param {string} url - 脚本 URL
130791
+ * @param {object} options - 配置
130792
+ * @param {string} options.charset - 字符集,默认 'utf-8'
130793
+ * @param {boolean} options.async - 是否异步,默认 true
130794
+ * @param {number} options.timeout - 超时时间(ms),默认 30000
130795
+ * @returns {Promise<HTMLScriptElement>}
130796
+ */
130797
+ const loadScript = (url, options = {}) => {
130798
+ if (typeof window === 'undefined') {
130799
+ return Promise.reject(new Error('[XtMap] 非浏览器环境'))
130800
+ }
130801
+
130802
+ const { charset = 'utf-8', async = true, timeout = 30000 } = options
130803
+
130804
+ if (loadedScripts.has(url)) {
130805
+ return loadedScripts.get(url)
130806
+ }
130807
+
130808
+ if (loadingScripts.has(url)) {
130809
+ return loadingScripts.get(url)
130810
+ }
130811
+
130812
+ const promise = new Promise((resolve, reject) => {
130813
+ const script = document.createElement('script')
130814
+ script.type = 'text/javascript'
130815
+ script.src = url
130816
+ script.charset = charset
130817
+ script.async = async
130818
+
130819
+ let timer = null
130820
+ let done = false
130821
+
130822
+ const cleanup = () => {
130823
+ done = true
130824
+ if (timer) clearTimeout(timer)
130825
+ script.onload = null
130826
+ script.onerror = null
130827
+ }
130828
+
130829
+ script.onload = () => {
130830
+ if (done) return
130831
+ cleanup()
130832
+ loadingScripts.delete(url)
130833
+ loadedScripts.set(url, Promise.resolve(script))
130834
+ resolve(script)
130835
+ }
130836
+
130837
+ script.onerror = (err) => {
130838
+ if (done) return
130839
+ cleanup()
130840
+ loadingScripts.delete(url)
130841
+ reject(new Error(`[XtMap] 脚本加载失败: ${url}`))
130842
+ }
130843
+
130844
+ if (timeout > 0) {
130845
+ timer = setTimeout(() => {
130846
+ if (done) return
130847
+ cleanup()
130848
+ loadingScripts.delete(url)
130849
+ reject(new Error(`[XtMap] 脚本加载超时: ${url}`))
130850
+ }, timeout)
130851
+ }
130852
+
130853
+ document.head.appendChild(script)
130854
+ })
130855
+
130856
+ loadingScripts.set(url, promise)
130857
+ return promise
130858
+ }
130859
+
130860
+ /**
130861
+ * 批量加载脚本(按顺序)
130862
+ * @param {string[]} urls
130863
+ * @param {object} options
130864
+ */
130865
+ const loadScripts = async (urls, options = {}) => {
130866
+ for (const url of urls) {
130867
+ await loadScript(url, options)
130868
+ }
130869
+ }
130870
+
130871
+ /**
130872
+ * 清除加载缓存(切换密钥等场景使用)
130873
+ */
130874
+ const clearScriptCache = () => {
130875
+ loadedScripts.clear()
130876
+ loadingScripts.clear()
130877
+ }
130878
+
130879
+ /**
130880
+ * 检查全局对象是否存在
130881
+ */
130882
+ const hasGlobal = (name) => {
130883
+ if (typeof window === 'undefined') return false
130884
+ return window[name] !== undefined
130885
+ }
130886
+
130887
+ /* harmony default export */ var script_loader = ({
130888
+ loadScript,
130889
+ loadScripts,
130890
+ clearScriptCache,
130891
+ hasGlobal
130892
+ });
130893
+
130894
+ // CONCATENATED MODULE: ./src/components/xt-map/adapters/base.js
130895
+ /**
130896
+ * 地图适配器基类
130897
+ * 定义统一的 API 接口,各地图引擎(高德/天地图/百度)通过继承/实现该接口完成适配
130898
+ *
130899
+ * 统一坐标系统:WGS84 (lng, lat) 作为输入输出标准,各适配器内部处理转换
130900
+ * 统一地图类型:standard | satellite | hybrid | traffic
130901
+ * 统一主题:light | dark
130902
+ */
130903
+
130904
+
130905
+
130906
+ // 地图类型 -> 内部常量(各适配器可覆盖转换)
130907
+ const DEFAULT_MAP_TYPE_MAP = {
130908
+ standard: 'standard',
130909
+ satellite: 'satellite',
130910
+ hybrid: 'hybrid',
130911
+ traffic: 'traffic'
130912
+ }
130913
+
130914
+ class base_MapAdapterBase {
130915
+ constructor(container, options = {}) {
130916
+ this.container = container
130917
+ this.options = options
130918
+ this.mapInstance = null
130919
+ this.mapType = options.mapType || 'standard'
130920
+ this.theme = options.theme || 'light'
130921
+ this.center = options.center || [116.397428, 39.90923]
130922
+ this.zoom = options.zoom || 11
130923
+ this.apiKey = options.apiKey || ''
130924
+ this.apiUrl = options.apiUrl || null
130925
+ this.plugins = options.plugins || []
130926
+ this.eventHandlers = new Map()
130927
+ this.ready = false
130928
+ this._mapTypeMap = { ...DEFAULT_MAP_TYPE_MAP }
130929
+ }
130930
+
130931
+ /**
130932
+ * 获取 SDK 脚本 URL(各适配器必须实现)
130933
+ * @returns {string}
130934
+ */
130935
+ getScriptUrl() {
130936
+ throw new Error('[XtMap] 子类必须实现 getScriptUrl()')
130937
+ }
130938
+
130939
+ /**
130940
+ * 检查 SDK 是否已加载
130941
+ */
130942
+ isSdkLoaded() {
130943
+ throw new Error('[XtMap] 子类必须实现 isSdkLoaded()')
130944
+ }
130945
+
130946
+ /**
130947
+ * 在脚本加载前执行(可选覆盖)
130948
+ * 用于设置 securityJsCode、注册全局 callback 等前置准备
130949
+ */
130950
+ beforeLoadScript() {
130951
+ // 可选实现 - 各适配器可覆盖
130952
+ }
130953
+
130954
+ /**
130955
+ * 创建地图实例(各适配器必须实现)
130956
+ */
130957
+ async createMap() {
130958
+ throw new Error('[XtMap] 子类必须实现 createMap()')
130959
+ }
130960
+
130961
+ /**
130962
+ * 加载 SDK 并初始化地图
130963
+ */
130964
+ async init() {
130965
+ if (!this.container) {
130966
+ throw new Error('[XtMap] 缺少容器元素')
130967
+ }
130968
+
130969
+ if (!this.isSdkLoaded()) {
130970
+ // 1. 脚本加载前执行钩子(设置安全密钥等)
130971
+ this.beforeLoadScript()
130972
+
130973
+ // 2. 获取脚本 URL
130974
+ const url = this.getScriptUrl()
130975
+ if (!url) {
130976
+ throw new Error('[XtMap] 缺少 API URL,请配置 apiKey 或 apiUrl')
130977
+ }
130978
+
130979
+ // 3. 动态加载脚本
130980
+ await loadScript(url)
130981
+
130982
+ // 4. 等待 SDK 初始化全局对象(部分 SDK 需要等待 callback 或脚本内部初始化完成)
130983
+ await this._waitForSdkReady()
130984
+ }
130985
+
130986
+ // 5. 创建地图实例
130987
+ await this.createMap()
130988
+ this.ready = true
130989
+ return this.mapInstance
130990
+ }
130991
+
130992
+ /**
130993
+ * 等待 SDK 准备好(部分地图 SDK 需要等待 callback 执行)
130994
+ */
130995
+ async _waitForSdkReady() {
130996
+ return new Promise((resolve) => {
130997
+ let attempts = 0
130998
+ const maxAttempts = 100
130999
+ const check = () => {
131000
+ if (this.isSdkLoaded() || attempts >= maxAttempts) {
131001
+ resolve()
131002
+ } else {
131003
+ attempts++
131004
+ setTimeout(check, 100)
131005
+ }
131006
+ }
131007
+ check()
131008
+ })
131009
+ }
131010
+
131011
+ /**
131012
+ * 统一地图类型转换:xt-map 枚举 -> 引擎内部值
131013
+ */
131014
+ getNativeMapType(xtType) {
131015
+ return this._mapTypeMap[xtType] || this._mapTypeMap.standard
131016
+ }
131017
+
131018
+ /**
131019
+ * 设置地图类型
131020
+ */
131021
+ setMapType(type) {
131022
+ this.mapType = type
131023
+ if (this.ready && this.mapInstance) {
131024
+ this._applyMapType(type)
131025
+ }
131026
+ }
131027
+
131028
+ /**
131029
+ * 应用地图类型到引擎(各适配器实现)
131030
+ */
131031
+ _applyMapType(type) {
131032
+ // 可选实现
131033
+ }
131034
+
131035
+ /**
131036
+ * 设置主题
131037
+ */
131038
+ setTheme(theme) {
131039
+ this.theme = theme
131040
+ if (this.ready && this.mapInstance) {
131041
+ this._applyTheme(theme)
131042
+ }
131043
+ }
131044
+
131045
+ /**
131046
+ * 应用主题到引擎(各适配器实现)
131047
+ */
131048
+ _applyTheme(theme) {
131049
+ // 可选实现
131050
+ }
131051
+
131052
+ /**
131053
+ * 设置中心坐标 [lng, lat]
131054
+ */
131055
+ setCenter(center) {
131056
+ this.center = center
131057
+ if (this.ready && this.mapInstance) {
131058
+ this._applyCenter(center)
131059
+ }
131060
+ }
131061
+
131062
+ _applyCenter(center) {
131063
+ // 各适配器实现
131064
+ }
131065
+
131066
+ /**
131067
+ * 设置缩放级别
131068
+ */
131069
+ setZoom(zoom) {
131070
+ this.zoom = zoom
131071
+ if (this.ready && this.mapInstance) {
131072
+ this._applyZoom(zoom)
131073
+ }
131074
+ }
131075
+
131076
+ _applyZoom(zoom) {
131077
+ // 各适配器实现
131078
+ }
131079
+
131080
+ /**
131081
+ * 获取当前中心坐标
131082
+ */
131083
+ getCenter() {
131084
+ return this.center
131085
+ }
131086
+
131087
+ /**
131088
+ * 获取当前缩放级别
131089
+ */
131090
+ getZoom() {
131091
+ return this.zoom
131092
+ }
131093
+
131094
+ /**
131095
+ * 获取原始地图实例(用于高级自定义操作)
131096
+ */
131097
+ getNativeMap() {
131098
+ return this.mapInstance
131099
+ }
131100
+
131101
+ /**
131102
+ * 绑定事件(统一事件名:click, moveend, zoomend, ready 等)
131103
+ */
131104
+ on(eventName, handler) {
131105
+ if (typeof handler !== 'function') return
131106
+ this.eventHandlers.set(eventName, handler)
131107
+ if (this.ready && this.mapInstance) {
131108
+ this._bindEvent(eventName, handler)
131109
+ }
131110
+ }
131111
+
131112
+ _bindEvent(eventName, handler) {
131113
+ // 各适配器实现具体事件绑定
131114
+ }
131115
+
131116
+ /**
131117
+ * 解绑事件
131118
+ */
131119
+ off(eventName) {
131120
+ const handler = this.eventHandlers.get(eventName)
131121
+ if (handler && this.ready && this.mapInstance) {
131122
+ this._unbindEvent(eventName, handler)
131123
+ }
131124
+ this.eventHandlers.delete(eventName)
131125
+ }
131126
+
131127
+ _unbindEvent(eventName, handler) {
131128
+ // 各适配器实现
131129
+ }
131130
+
131131
+ /**
131132
+ * 调整地图大小(容器尺寸变化后调用)
131133
+ */
131134
+ resize() {
131135
+ if (this.ready && this.mapInstance) {
131136
+ this._applyResize()
131137
+ }
131138
+ }
131139
+
131140
+ _applyResize() {
131141
+ // 各适配器实现
131142
+ }
131143
+
131144
+ /**
131145
+ * 销毁地图
131146
+ */
131147
+ destroy() {
131148
+ this.eventHandlers.clear()
131149
+ if (this.mapInstance && typeof this.mapInstance.destroy === 'function') {
131150
+ try {
131151
+ this.mapInstance.destroy()
131152
+ } catch (e) {
131153
+ // 忽略销毁错误
131154
+ }
131155
+ }
131156
+ this.mapInstance = null
131157
+ this.ready = false
131158
+ }
131159
+ }
131160
+
131161
+ /* harmony default export */ var base = (base_MapAdapterBase);
131162
+
131163
+ // CONCATENATED MODULE: ./src/components/xt-map/adapters/amap.js
131164
+ /**
131165
+ * 高德地图适配器 (AMap)
131166
+ * 以高德为基准,所有 xt-map 枚举直接映射
131167
+ */
131168
+
131169
+
131170
+
131171
+
131172
+ const A_MAP_MAP_TYPES = {
131173
+ standard: 'amap', // 标准/矢量
131174
+ satellite: 'satellite', // 卫星
131175
+ hybrid: 'satellite', // 混合(卫星+路网,用卫星+路网图层组合实现)
131176
+ traffic: 'traffic' // 实时路况(叠加在 standard 上)
131177
+ }
131178
+
131179
+ // 高德地图样式 ID(主题映射)
131180
+ const A_MAP_STYLES = {
131181
+ light: 'amap://styles/normal',
131182
+ dark: 'amap://styles/dark'
131183
+ }
131184
+
131185
+ class amap_AMapAdapter extends base_MapAdapterBase {
131186
+ constructor(container, options = {}) {
131187
+ super(container, options)
131188
+ this._mapTypeMap = { ...A_MAP_MAP_TYPES }
131189
+ this._trafficLayer = null // 路况图层引用
131190
+ this._satelliteLayer = null // 卫星图层
131191
+ this._roadnetLayer = null // 路网图层(用于 hybrid)
131192
+ this._currentLayers = [] // 当前叠加图层
131193
+ }
131194
+
131195
+ getScriptUrl() {
131196
+ if (this.apiUrl) return this.apiUrl
131197
+ if (!this.apiKey) {
131198
+ console.warn('[XtMap] 高德地图需要配置 apiKey')
131199
+ return ''
131200
+ }
131201
+ // 高德 2.0 Web API
131202
+ return `https://webapi.amap.com/maps?v=2.0&key=${encodeURIComponent(this.apiKey)}&plugin=AMap.Scale,AMap.ToolBar`
131203
+ }
131204
+
131205
+ /**
131206
+ * 脚本加载前设置高德 2.0 安全密钥
131207
+ */
131208
+ beforeLoadScript() {
131209
+ const securityJsCode = this.options.securityJsCode || (typeof window !== 'undefined' && window._AMapSecurityConfig && window._AMapSecurityConfig.securityJsCode) || ''
131210
+ if (securityJsCode && typeof window !== 'undefined') {
131211
+ window._AMapSecurityConfig = {
131212
+ securityJsCode: securityJsCode
131213
+ }
131214
+ }
131215
+ }
131216
+
131217
+ isSdkLoaded() {
131218
+ return hasGlobal('AMap') && typeof window.AMap === 'function'
131219
+ }
131220
+
131221
+ async createMap() {
131222
+ const AMap = window.AMap
131223
+ if (!AMap) throw new Error('[XtMap] 高德地图 SDK 未加载')
131224
+
131225
+ const mapOptions = {
131226
+ center: this.center,
131227
+ zoom: this.zoom,
131228
+ mapStyle: A_MAP_STYLES[this.theme] || A_MAP_STYLES.light,
131229
+ viewMode: '2D',
131230
+ resizeEnable: true
131231
+ }
131232
+
131233
+ this.mapInstance = new AMap.Map(this.container, mapOptions)
131234
+
131235
+ // 应用地图类型
131236
+ this._applyMapType(this.mapType)
131237
+
131238
+ // 绑定事件(延迟到地图就绪后)
131239
+ await new Promise((resolve) => {
131240
+ this.mapInstance.on('complete', () => resolve())
131241
+ // 兜底:1秒后强制 resolve
131242
+ setTimeout(resolve, 1500)
131243
+ })
131244
+
131245
+ // 重新绑定已注册事件
131246
+ for (const [eventName, handler] of this.eventHandlers.entries()) {
131247
+ this._bindEvent(eventName, handler)
131248
+ }
131249
+ }
131250
+
131251
+ _applyMapType(type) {
131252
+ if (!this.mapInstance) return
131253
+ const AMap = window.AMap
131254
+ if (!AMap) return
131255
+
131256
+ // 清除所有叠加图层
131257
+ this._clearLayers()
131258
+
131259
+ try {
131260
+ // 设置底图样式
131261
+ this.mapInstance.setMapStyle(A_MAP_STYLES[this.theme] || A_MAP_STYLES.light)
131262
+
131263
+ if (type === 'satellite') {
131264
+ this._satelliteLayer = new AMap.TileLayer.Satellite()
131265
+ this.mapInstance.add(this._satelliteLayer)
131266
+ this._currentLayers.push(this._satelliteLayer)
131267
+ } else if (type === 'hybrid') {
131268
+ // 卫星 + 路网
131269
+ this._satelliteLayer = new AMap.TileLayer.Satellite()
131270
+ this._roadnetLayer = new AMap.TileLayer.RoadNet()
131271
+ this.mapInstance.add([this._satelliteLayer, this._roadnetLayer])
131272
+ this._currentLayers.push(this._satelliteLayer, this._roadnetLayer)
131273
+ } else if (type === 'traffic') {
131274
+ // 路况图层叠加在 standard 上
131275
+ this._trafficLayer = new AMap.TileLayer.Traffic({
131276
+ autoRefresh: true,
131277
+ interval: 180
131278
+ })
131279
+ this.mapInstance.add(this._trafficLayer)
131280
+ this._currentLayers.push(this._trafficLayer)
131281
+ }
131282
+ } catch (e) {
131283
+ console.warn('[XtMap] 设置地图类型失败:', e)
131284
+ }
131285
+ }
131286
+
131287
+ _clearLayers() {
131288
+ if (!this.mapInstance) return
131289
+ try {
131290
+ if (this._currentLayers.length > 0) {
131291
+ this.mapInstance.remove(this._currentLayers)
131292
+ }
131293
+ } catch (e) {
131294
+ // 忽略
131295
+ }
131296
+ this._currentLayers = []
131297
+ this._trafficLayer = null
131298
+ this._satelliteLayer = null
131299
+ this._roadnetLayer = null
131300
+ }
131301
+
131302
+ _applyTheme(theme) {
131303
+ if (!this.mapInstance) return
131304
+ try {
131305
+ this.mapInstance.setMapStyle(A_MAP_STYLES[theme] || A_MAP_STYLES.light)
131306
+ // 主题变更可能影响图层显示,重新应用地图类型
131307
+ this._applyMapType(this.mapType)
131308
+ } catch (e) {
131309
+ console.warn('[XtMap] 设置主题失败:', e)
131310
+ }
131311
+ }
131312
+
131313
+ _applyCenter(center) {
131314
+ if (!this.mapInstance) return
131315
+ try {
131316
+ this.mapInstance.setCenter(center)
131317
+ } catch (e) {
131318
+ // 忽略
131319
+ }
131320
+ }
131321
+
131322
+ _applyZoom(zoom) {
131323
+ if (!this.mapInstance) return
131324
+ try {
131325
+ this.mapInstance.setZoom(zoom)
131326
+ } catch (e) {
131327
+ // 忽略
131328
+ }
131329
+ }
131330
+
131331
+ getCenter() {
131332
+ if (this.mapInstance && this.mapInstance.getCenter) {
131333
+ const c = this.mapInstance.getCenter()
131334
+ return [c.lng, c.lat]
131335
+ }
131336
+ return this.center
131337
+ }
131338
+
131339
+ getZoom() {
131340
+ if (this.mapInstance && this.mapInstance.getZoom) {
131341
+ return this.mapInstance.getZoom()
131342
+ }
131343
+ return this.zoom
131344
+ }
131345
+
131346
+ _bindEvent(eventName, handler) {
131347
+ if (!this.mapInstance) return
131348
+ try {
131349
+ // 统一事件名映射
131350
+ const eventMap = {
131351
+ click: 'click',
131352
+ moveend: 'moveend',
131353
+ zoomend: 'zoomend',
131354
+ zoomchange: 'zoomchange',
131355
+ mapmove: 'mapmove',
131356
+ complete: 'complete',
131357
+ resize: 'resize'
131358
+ }
131359
+ const nativeEvent = eventMap[eventName] || eventName
131360
+ this.mapInstance.on(nativeEvent, (e) => {
131361
+ // 统一事件参数格式
131362
+ const normalized = {
131363
+ originalEvent: e,
131364
+ lnglat: e && e.lnglat ? [e.lnglat.lng, e.lnglat.lat] : null
131365
+ }
131366
+ handler(normalized)
131367
+ })
131368
+ } catch (err) {
131369
+ console.warn('[XtMap] 事件绑定失败:', eventName, err)
131370
+ }
131371
+ }
131372
+
131373
+ _unbindEvent(eventName, handler) {
131374
+ if (!this.mapInstance) return
131375
+ try {
131376
+ this.mapInstance.off(eventName, handler)
131377
+ } catch (e) {
131378
+ // 忽略
131379
+ }
131380
+ }
131381
+
131382
+ _applyResize() {
131383
+ if (this.mapInstance && this.mapInstance.resize) {
131384
+ try {
131385
+ this.mapInstance.resize()
131386
+ } catch (e) {
131387
+ // 忽略
131388
+ }
131389
+ }
131390
+ }
131391
+
131392
+ destroy() {
131393
+ this._clearLayers()
131394
+ super.destroy()
131395
+ }
131396
+ }
131397
+
131398
+ /* harmony default export */ var amap = (amap_AMapAdapter);
131399
+
131400
+ // CONCATENATED MODULE: ./src/components/xt-map/adapters/tianditu.js
131401
+ /**
131402
+ * 天地图适配器 (Tianditu)
131403
+ * 天地图使用 WMTS 切片服务,不支持原生主题切换,
131404
+ * dark/light 通过图层样式参数模拟(部分图层可调整色调)
131405
+ */
131406
+
131407
+
131408
+
131409
+
131410
+ // 天地图地图类型映射
131411
+ const TIANDITU_MAP_TYPES = {
131412
+ standard: 'vec', // 矢量地图
131413
+ satellite: 'img', // 影像地图
131414
+ hybrid: 'img', // 混合(影像 + 注记)
131415
+ traffic: 'vec' // 天地图不支持原生路况,降级为矢量
131416
+ }
131417
+
131418
+ // 天地图主题色模拟:通过调整图层透明度/色调CSS滤镜
131419
+ const TIANDITU_THEME_FILTER = {
131420
+ light: 'none',
131421
+ dark: 'invert(1) hue-rotate(180deg) saturate(1.2) brightness(0.95)'
131422
+ }
131423
+
131424
+ class tianditu_TiandituAdapter extends base_MapAdapterBase {
131425
+ constructor(container, options = {}) {
131426
+ super(container, options)
131427
+ this._mapTypeMap = { ...TIANDITU_MAP_TYPES }
131428
+ this._layerType = options.tiandituLayerType || 'vec'
131429
+ this._currentLayer = null
131430
+ this._annotationLayer = null
131431
+ }
131432
+
131433
+ getScriptUrl() {
131434
+ if (this.apiUrl) return this.apiUrl
131435
+ if (!this.apiKey) {
131436
+ console.warn('[XtMap] 天地图需要配置 apiKey (tk)')
131437
+ return ''
131438
+ }
131439
+ return `https://api.tianditu.gov.cn/api?v=4.0&tk=${encodeURIComponent(this.apiKey)}`
131440
+ }
131441
+
131442
+ isSdkLoaded() {
131443
+ return hasGlobal('T') && typeof window.T === 'object' && window.T.Map
131444
+ }
131445
+
131446
+ async createMap() {
131447
+ const T = window.T
131448
+ if (!T || !T.Map) throw new Error('[XtMap] 天地图 SDK 未加载')
131449
+
131450
+ const mapOptions = {
131451
+ center: new T.LngLat(this.center[0], this.center[1]),
131452
+ zoom: this.zoom
131453
+ }
131454
+
131455
+ this.mapInstance = new T.Map(this.container, mapOptions)
131456
+
131457
+ // 应用地图类型
131458
+ this._applyMapType(this.mapType)
131459
+
131460
+ // 应用主题
131461
+ this._applyTheme(this.theme)
131462
+
131463
+ // 等待地图就绪
131464
+ await new Promise((resolve) => {
131465
+ setTimeout(resolve, 500)
131466
+ })
131467
+
131468
+ // 绑定事件
131469
+ for (const [eventName, handler] of this.eventHandlers.entries()) {
131470
+ this._bindEvent(eventName, handler)
131471
+ }
131472
+ }
131473
+
131474
+ _applyMapType(type) {
131475
+ if (!this.mapInstance) return
131476
+ const T = window.T
131477
+ if (!T) return
131478
+
131479
+ try {
131480
+ // 天地图通过 switchTo 方法切换图层
131481
+ const layerType = this._mapTypeMap[type] || 'vec'
131482
+
131483
+ if (type === 'standard') {
131484
+ // 矢量地图
131485
+ this.mapInstance.setMapType(window.TMAP_NORMAL_MAP || 1)
131486
+ } else if (type === 'satellite') {
131487
+ // 影像地图
131488
+ this.mapInstance.setMapType(window.TMAP_SATELLITE_MAP || 2)
131489
+ } else if (type === 'hybrid') {
131490
+ // 混合(影像+注记)
131491
+ this.mapInstance.setMapType(window.TMAP_HYBRID_MAP || 3)
131492
+ } else {
131493
+ // 路况等特殊类型,天地图无原生支持
131494
+ this.mapInstance.setMapType(window.TMAP_NORMAL_MAP || 1)
131495
+ }
131496
+ } catch (e) {
131497
+ console.warn('[XtMap] 天地图切换地图类型失败:', e)
131498
+ }
131499
+ }
131500
+
131501
+ _applyTheme(theme) {
131502
+ if (!this.container) return
131503
+ // 天地图不支持原生 dark 主题,通过 CSS 滤镜模拟
131504
+ const filter = TIANDITU_THEME_FILTER[theme] || 'none'
131505
+ const imgElements = this.container.querySelectorAll('img')
131506
+ imgElements.forEach((img) => {
131507
+ img.style.filter = filter
131508
+ img.style.webkitFilter = filter
131509
+ })
131510
+ // 同时设置容器级 CSS 变量,方便样式覆盖
131511
+ this.container.setAttribute('data-map-theme', theme)
131512
+ // 监听后续新增的 tile 图片(通过 MutationObserver)
131513
+ this._setupThemeObserver(theme)
131514
+ }
131515
+
131516
+ _setupThemeObserver(theme) {
131517
+ if (this._themeObserver) {
131518
+ this._themeObserver.disconnect()
131519
+ }
131520
+ if (theme !== 'dark') return
131521
+ const filter = TIANDITU_THEME_FILTER[theme]
131522
+ this._themeObserver = new MutationObserver((mutations) => {
131523
+ mutations.forEach((mutation) => {
131524
+ mutation.addedNodes.forEach((node) => {
131525
+ if (node.nodeType === 1) {
131526
+ if (node.tagName === 'IMG') {
131527
+ node.style.filter = filter
131528
+ node.style.webkitFilter = filter
131529
+ } else if (node.querySelectorAll) {
131530
+ const imgs = node.querySelectorAll('img')
131531
+ imgs.forEach((img) => {
131532
+ img.style.filter = filter
131533
+ img.style.webkitFilter = filter
131534
+ })
131535
+ }
131536
+ }
131537
+ })
131538
+ })
131539
+ })
131540
+ try {
131541
+ this._themeObserver.observe(this.container, {
131542
+ childList: true,
131543
+ subtree: true
131544
+ })
131545
+ } catch (e) {
131546
+ // 忽略
131547
+ }
131548
+ }
131549
+
131550
+ _applyCenter(center) {
131551
+ if (!this.mapInstance || !window.T) return
131552
+ try {
131553
+ this.mapInstance.centerAndZoom(new window.T.LngLat(center[0], center[1]), this.zoom)
131554
+ } catch (e) {
131555
+ // 忽略
131556
+ }
131557
+ }
131558
+
131559
+ _applyZoom(zoom) {
131560
+ if (!this.mapInstance) return
131561
+ try {
131562
+ this.mapInstance.setZoom(zoom)
131563
+ } catch (e) {
131564
+ // 忽略
131565
+ }
131566
+ }
131567
+
131568
+ getCenter() {
131569
+ if (this.mapInstance && this.mapInstance.getCenter) {
131570
+ const c = this.mapInstance.getCenter()
131571
+ if (c && c.getLng !== undefined) {
131572
+ return [c.getLng(), c.getLat()]
131573
+ }
131574
+ }
131575
+ return this.center
131576
+ }
131577
+
131578
+ getZoom() {
131579
+ if (this.mapInstance && this.mapInstance.getZoom) {
131580
+ return this.mapInstance.getZoom()
131581
+ }
131582
+ return this.zoom
131583
+ }
131584
+
131585
+ _bindEvent(eventName, handler) {
131586
+ if (!this.mapInstance) return
131587
+ try {
131588
+ const eventMap = {
131589
+ click: 'click',
131590
+ moveend: 'moveend',
131591
+ zoomend: 'zoomend',
131592
+ zoomchange: 'zoomend'
131593
+ }
131594
+ const nativeEvent = eventMap[eventName] || eventName
131595
+ this.mapInstance.addEventListener(nativeEvent, (e) => {
131596
+ const normalized = {
131597
+ originalEvent: e,
131598
+ lnglat: e && e.lnglat ? [e.lnglat.getLng(), e.lnglat.getLat()] : null
131599
+ }
131600
+ handler(normalized)
131601
+ })
131602
+ } catch (err) {
131603
+ console.warn('[XtMap] 天地图事件绑定失败:', eventName, err)
131604
+ }
131605
+ }
131606
+
131607
+ _unbindEvent(eventName, handler) {
131608
+ if (!this.mapInstance) return
131609
+ try {
131610
+ this.mapInstance.removeEventListener(eventName, handler)
131611
+ } catch (e) {
131612
+ // 忽略
131613
+ }
131614
+ }
131615
+
131616
+ _applyResize() {
131617
+ if (this.mapInstance && this.mapInstance.checkResize) {
131618
+ try {
131619
+ this.mapInstance.checkResize()
131620
+ } catch (e) {
131621
+ // 忽略
131622
+ }
131623
+ }
131624
+ }
131625
+
131626
+ destroy() {
131627
+ if (this._themeObserver) {
131628
+ this._themeObserver.disconnect()
131629
+ this._themeObserver = null
131630
+ }
131631
+ if (this.mapInstance && typeof this.mapInstance.clearOverLays === 'function') {
131632
+ try {
131633
+ this.mapInstance.clearOverLays()
131634
+ } catch (e) {
131635
+ // 忽略
131636
+ }
131637
+ }
131638
+ super.destroy()
131639
+ }
131640
+ }
131641
+
131642
+ /* harmony default export */ var tianditu = (tianditu_TiandituAdapter);
131643
+
131644
+ // CONCATENATED MODULE: ./src/components/xt-map/adapters/baidu.js
131645
+ /**
131646
+ * 百度地图适配器 (BMap / Baidu)
131647
+ * 百度地图 JS API 3.0 支持自定义样式
131648
+ */
131649
+
131650
+
131651
+
131652
+
131653
+ // 百度地图类型映射
131654
+ const BAIDU_MAP_TYPES = {
131655
+ standard: 'BMAP_NORMAL_MAP',
131656
+ satellite: 'BMAP_SATELLITE_MAP',
131657
+ hybrid: 'BMAP_HYBRID_MAP',
131658
+ traffic: 'BMAP_NORMAL_MAP' // 路况通过图层叠加
131659
+ }
131660
+
131661
+ // 百度地图自定义样式 ID(主题)
131662
+ // light: 官方 normal 样式
131663
+ // dark: 午夜蓝 dark 样式
131664
+ const BAIDU_STYLES = {
131665
+ light: { style: 'normal' },
131666
+ dark: { style: 'dark' }
131667
+ }
131668
+
131669
+ class baidu_BaiduAdapter extends base_MapAdapterBase {
131670
+ constructor(container, options = {}) {
131671
+ super(container, options)
131672
+ this._mapTypeMap = { ...BAIDU_MAP_TYPES }
131673
+ this._coordType = options.baiduCoordType || 'bd09ll'
131674
+ this._trafficLayer = null
131675
+ this._callbackName = null
131676
+ }
131677
+
131678
+ getScriptUrl() {
131679
+ if (this.apiUrl) return this.apiUrl
131680
+ if (!this.apiKey) {
131681
+ console.warn('[XtMap] 百度地图需要配置 apiKey (ak)')
131682
+ return ''
131683
+ }
131684
+ // 注意:_callbackName 在 beforeLoadScript 中已注册
131685
+ return `https://api.map.baidu.com/api?v=3.0&ak=${encodeURIComponent(this.apiKey)}&callback=${this._callbackName}`
131686
+ }
131687
+
131688
+ /**
131689
+ * 脚本加载前注册百度 SDK 回调函数
131690
+ */
131691
+ beforeLoadScript() {
131692
+ // 生成唯一 callback 名称,支持多实例
131693
+ this._callbackName = `__xt_map_baidu_${Date.now()}_${Math.floor(Math.random() * 100000)}`
131694
+ // 注册全局 callback(百度地图 SDK 加载完成后调用)
131695
+ if (typeof window !== 'undefined') {
131696
+ window[this._callbackName] = () => {
131697
+ // 空实现,仅用于触发 Promise resolve
131698
+ }
131699
+ }
131700
+ }
131701
+
131702
+ isSdkLoaded() {
131703
+ return hasGlobal('BMap') && typeof window.BMap === 'function'
131704
+ }
131705
+
131706
+ async createMap() {
131707
+ const BMap = window.BMap
131708
+ if (!BMap) throw new Error('[XtMap] 百度地图 SDK 未加载')
131709
+
131710
+ const mapOptions = {
131711
+ enableMapClick: false
131712
+ }
131713
+
131714
+ this.mapInstance = new BMap.Map(this.container, mapOptions)
131715
+ this.mapInstance.centerAndZoom(new BMap.Point(this.center[0], this.center[1]), this.zoom)
131716
+ this.mapInstance.enableScrollWheelZoom(true)
131717
+
131718
+ // 应用地图类型
131719
+ this._applyMapType(this.mapType)
131720
+
131721
+ // 应用主题
131722
+ this._applyTheme(this.theme)
131723
+
131724
+ // 等待地图就绪
131725
+ await new Promise((resolve) => setTimeout(resolve, 500))
131726
+
131727
+ for (const [eventName, handler] of this.eventHandlers.entries()) {
131728
+ this._bindEvent(eventName, handler)
131729
+ }
131730
+ }
131731
+
131732
+ _applyMapType(type) {
131733
+ if (!this.mapInstance || !window.BMap) return
131734
+
131735
+ try {
131736
+ // 清除路况图层
131737
+ if (this._trafficLayer) {
131738
+ try {
131739
+ this.mapInstance.removeTileLayer(this._trafficLayer)
131740
+ } catch (e) {}
131741
+ this._trafficLayer = null
131742
+ }
131743
+
131744
+ if (type === 'satellite') {
131745
+ this.mapInstance.setMapType(window.BMAP_SATELLITE_MAP || 1)
131746
+ } else if (type === 'hybrid') {
131747
+ this.mapInstance.setMapType(window.BMAP_HYBRID_MAP || 2)
131748
+ } else if (type === 'traffic') {
131749
+ this.mapInstance.setMapType(window.BMAP_NORMAL_MAP || 0)
131750
+ // 叠加路况图层
131751
+ try {
131752
+ const BMap = window.BMap
131753
+ this._trafficLayer = new BMap.TrafficLayer()
131754
+ this.mapInstance.addTileLayer(this._trafficLayer)
131755
+ } catch (e) {
131756
+ console.warn('[XtMap] 百度地图加载路况图层失败:', e)
131757
+ }
131758
+ } else {
131759
+ this.mapInstance.setMapType(window.BMAP_NORMAL_MAP || 0)
131760
+ }
131761
+ } catch (e) {
131762
+ console.warn('[XtMap] 百度地图切换地图类型失败:', e)
131763
+ }
131764
+ }
131765
+
131766
+ _applyTheme(theme) {
131767
+ if (!this.mapInstance || !window.BMap) return
131768
+ try {
131769
+ // 百度 3.0 通过 setMapStyle 设置主题样式
131770
+ const styleConfig = BAIDU_STYLES[theme] || BAIDU_STYLES.light
131771
+ if (this.mapInstance.setMapStyleV2) {
131772
+ // 新版 API
131773
+ this.mapInstance.setMapStyleV2({ styleId: styleConfig.style === 'dark' ? 'midnight' : '' })
131774
+ } else if (this.mapInstance.setMapStyle) {
131775
+ // 旧版 API
131776
+ const styleJson = theme === 'dark' ? this._getDarkStyleJson() : null
131777
+ if (styleJson) {
131778
+ this.mapInstance.setMapStyle({ styleJson: styleJson })
131779
+ }
131780
+ }
131781
+ } catch (e) {
131782
+ console.warn('[XtMap] 百度地图设置主题失败:', e)
131783
+ }
131784
+ }
131785
+
131786
+ /**
131787
+ * 简易百度地图 dark 样式 JSON 配置
131788
+ */
131789
+ _getDarkStyleJson() {
131790
+ return [
131791
+ { featureType: 'land', elementType: 'geometry', stylers: { color: '#1a1a1a' } },
131792
+ { featureType: 'water', elementType: 'geometry', stylers: { color: '#0a1a2a' } },
131793
+ { featureType: 'green', elementType: 'geometry', stylers: { color: '#0a2a1a' } },
131794
+ { featureType: 'building', elementType: 'geometry', stylers: { color: '#2a2a2a' } },
131795
+ { featureType: 'highway', elementType: 'geometry', stylers: { color: '#3a3a3a' } },
131796
+ { featureType: 'highway', elementType: 'geometry.stroke', stylers: { color: '#4a4a4a' } },
131797
+ { featureType: 'arterial', elementType: 'geometry', stylers: { color: '#333333' } },
131798
+ { featureType: 'arterial', elementType: 'geometry.stroke', stylers: { color: '#3d3d3d' } },
131799
+ { featureType: 'local', elementType: 'geometry', stylers: { color: '#2a2a2a' } },
131800
+ { featureType: 'railway', elementType: 'geometry', stylers: { color: '#3a3a3a' } },
131801
+ { featureType: 'subway', elementType: 'geometry', stylers: { color: '#3a3a3a' } },
131802
+ { featureType: 'boundary', elementType: 'geometry', stylers: { color: '#666666' } },
131803
+ { featureType: 'district', elementType: 'labels.text.fill', stylers: { color: '#888888' } },
131804
+ { featureType: 'poi', elementType: 'labels', stylers: { visibility: 'off' } }
131805
+ ]
131806
+ }
131807
+
131808
+ _applyCenter(center) {
131809
+ if (!this.mapInstance || !window.BMap) return
131810
+ try {
131811
+ this.mapInstance.centerAndZoom(new window.BMap.Point(center[0], center[1]), this.zoom)
131812
+ } catch (e) {
131813
+ // 忽略
131814
+ }
131815
+ }
131816
+
131817
+ _applyZoom(zoom) {
131818
+ if (!this.mapInstance) return
131819
+ try {
131820
+ this.mapInstance.setZoom(zoom)
131821
+ } catch (e) {
131822
+ // 忽略
131823
+ }
131824
+ }
131825
+
131826
+ getCenter() {
131827
+ if (this.mapInstance && this.mapInstance.getCenter) {
131828
+ const c = this.mapInstance.getCenter()
131829
+ if (c) return [c.lng, c.lat]
131830
+ }
131831
+ return this.center
131832
+ }
131833
+
131834
+ getZoom() {
131835
+ if (this.mapInstance && this.mapInstance.getZoom) {
131836
+ return this.mapInstance.getZoom()
131837
+ }
131838
+ return this.zoom
131839
+ }
131840
+
131841
+ _bindEvent(eventName, handler) {
131842
+ if (!this.mapInstance) return
131843
+ try {
131844
+ const eventMap = {
131845
+ click: 'click',
131846
+ moveend: 'moveend',
131847
+ zoomend: 'zoomend',
131848
+ zoomchange: 'zoomend',
131849
+ mapmove: 'movestart'
131850
+ }
131851
+ const nativeEvent = eventMap[eventName] || eventName
131852
+ this.mapInstance.addEventListener(nativeEvent, (e) => {
131853
+ const normalized = {
131854
+ originalEvent: e,
131855
+ lnglat: e && e.point ? [e.point.lng, e.point.lat] : null
131856
+ }
131857
+ handler(normalized)
131858
+ })
131859
+ } catch (err) {
131860
+ console.warn('[XtMap] 百度地图事件绑定失败:', eventName, err)
131861
+ }
131862
+ }
131863
+
131864
+ _unbindEvent(eventName, handler) {
131865
+ if (!this.mapInstance) return
131866
+ try {
131867
+ this.mapInstance.removeEventListener(eventName, handler)
131868
+ } catch (e) {
131869
+ // 忽略
131870
+ }
131871
+ }
131872
+
131873
+ _applyResize() {
131874
+ if (this.mapInstance && this.mapInstance.enableResize) {
131875
+ try {
131876
+ // 百度地图默认启用 resize,无需手动调用
131877
+ if (typeof this.mapInstance.checkResize === 'function') {
131878
+ this.mapInstance.checkResize()
131879
+ }
131880
+ } catch (e) {
131881
+ // 忽略
131882
+ }
131883
+ }
131884
+ }
131885
+
131886
+ destroy() {
131887
+ if (this._callbackName && typeof window !== 'undefined') {
131888
+ try {
131889
+ delete window[this._callbackName]
131890
+ } catch (e) {
131891
+ // 忽略
131892
+ }
131893
+ }
131894
+ super.destroy()
131895
+ }
131896
+ }
131897
+
131898
+ /* harmony default export */ var baidu = (baidu_BaiduAdapter);
131899
+
131900
+ // CONCATENATED MODULE: ./src/components/xt-map/adapters/index.js
131901
+ /**
131902
+ * 地图适配器索引
131903
+ * 根据 provider 字符串返回对应的适配器构造函数
131904
+ */
131905
+
131906
+
131907
+
131908
+
131909
+
131910
+ const adapters = {
131911
+ amap: amap_AMapAdapter,
131912
+ tianditu: tianditu_TiandituAdapter,
131913
+ baidu: baidu_BaiduAdapter
131914
+ }
131915
+
131916
+ const getAdapterClass = (provider) => {
131917
+ return adapters[provider] || amap_AMapAdapter
131918
+ }
131919
+
131920
+
131921
+
131922
+
131923
+ /* harmony default export */ var xt_map_adapters = ({
131924
+ adapters,
131925
+ getAdapterClass,
131926
+ AMapAdapter: amap_AMapAdapter,
131927
+ TiandituAdapter: tianditu_TiandituAdapter,
131928
+ BaiduAdapter: baidu_BaiduAdapter
131929
+ });
131930
+
131931
+ // CONCATENATED MODULE: ./src/components/xt-map/config/xt-map-config.js
131932
+ /**
131933
+ * XtMap 全局配置管理
131934
+ * 支持通过 Vue.use 配置或运行时动态设置地图提供商、密钥、URL、主题等
131935
+ */
131936
+
131937
+ // 支持的地图提供商
131938
+ const MAP_PROVIDERS = ['amap', 'tianditu', 'baidu']
131939
+
131940
+ // 支持的地图类型(统一枚举,各适配器会转成对应引擎的类型)
131941
+ const MAP_TYPES = ['standard', 'satellite', 'hybrid', 'traffic']
131942
+
131943
+ // 支持的主题
131944
+ const MAP_THEMES = ['light', 'dark']
131945
+
131946
+ // 默认配置 - 以高德地图为基准
131947
+ const xt_map_config_defaultConfig = {
131948
+ provider: 'amap',
131949
+ apiKey: '',
131950
+ apiUrl: null,
131951
+ mapType: 'standard',
131952
+ theme: 'light',
131953
+ center: [116.397428, 39.90923],
131954
+ zoom: 11,
131955
+ plugins: [],
131956
+ securityJsCode: null,
131957
+ // 天地图专用:图层类型(vec:矢量, img:影像, ter:地形)
131958
+ tiandituLayerType: 'vec',
131959
+ // 百度地图专用:坐标系(bd09ll:百度经纬度, bd09mc:百度墨卡托)
131960
+ baiduCoordType: 'bd09ll'
131961
+ }
131962
+
131963
+ // 当前配置
131964
+ let xt_map_config_currentConfig = { ...xt_map_config_defaultConfig }
131965
+
131966
+ // 配置变更监听器
131967
+ const xt_map_config_configChangeListeners = []
131968
+
131969
+ const xt_map_config_emitConfigChange = (key, value) => {
131970
+ xt_map_config_configChangeListeners.forEach(listener => {
131971
+ try {
131972
+ listener(key, value)
131973
+ } catch (e) {
131974
+ console.warn('[XtMap] 配置变更监听异常:', e)
131975
+ }
131976
+ })
131977
+ }
131978
+
131979
+ // 获取完整配置
131980
+ const getMapConfig = () => ({ ...xt_map_config_currentConfig })
131981
+
131982
+ // 设置完整配置
131983
+ const setMapConfig = (config) => {
131984
+ if (typeof config !== 'object' || config === null) {
131985
+ console.warn('[XtMap] setMapConfig 必须传入对象参数')
131986
+ return
131987
+ }
131988
+
131989
+ if (config.provider !== undefined) setMapProvider(config.provider)
131990
+ if (config.apiKey !== undefined) setMapApiKey(config.apiKey)
131991
+ if (config.apiUrl !== undefined) setMapApiUrl(config.apiUrl)
131992
+ if (config.mapType !== undefined) setMapType(config.mapType)
131993
+ if (config.theme !== undefined) setMapTheme(config.theme)
131994
+ if (config.center !== undefined) setMapCenter(config.center)
131995
+ if (config.zoom !== undefined) setMapZoom(config.zoom)
131996
+ if (config.plugins !== undefined) setMapPlugins(config.plugins)
131997
+ if (config.securityJsCode !== undefined) setSecurityJsCode(config.securityJsCode)
131998
+ }
131999
+
132000
+ const setMapProvider = (provider) => {
132001
+ if (!MAP_PROVIDERS.includes(provider)) {
132002
+ console.warn(`[XtMap] 无效的地图提供商: ${provider},可选: ${MAP_PROVIDERS.join(', ')}`)
132003
+ return
132004
+ }
132005
+ xt_map_config_currentConfig.provider = provider
132006
+ xt_map_config_emitConfigChange('provider', provider)
132007
+ }
132008
+
132009
+ const setMapApiKey = (key) => {
132010
+ xt_map_config_currentConfig.apiKey = key
132011
+ xt_map_config_emitConfigChange('apiKey', key)
132012
+ }
132013
+
132014
+ const setMapApiUrl = (url) => {
132015
+ xt_map_config_currentConfig.apiUrl = url
132016
+ xt_map_config_emitConfigChange('apiUrl', url)
132017
+ }
132018
+
132019
+ const setMapType = (type) => {
132020
+ if (!MAP_TYPES.includes(type)) {
132021
+ console.warn(`[XtMap] 无效的地图类型: ${type},可选: ${MAP_TYPES.join(', ')}`)
132022
+ return
132023
+ }
132024
+ xt_map_config_currentConfig.mapType = type
132025
+ xt_map_config_emitConfigChange('mapType', type)
132026
+ }
132027
+
132028
+ const setMapTheme = (theme) => {
132029
+ if (!MAP_THEMES.includes(theme)) {
132030
+ console.warn(`[XtMap] 无效的主题: ${theme},可选: ${MAP_THEMES.join(', ')}`)
132031
+ return
132032
+ }
132033
+ xt_map_config_currentConfig.theme = theme
132034
+ xt_map_config_emitConfigChange('theme', theme)
132035
+ }
132036
+
132037
+ const setMapCenter = (center) => {
132038
+ if (!Array.isArray(center) || center.length !== 2) {
132039
+ console.warn('[XtMap] center 必须是 [lng, lat] 数组')
132040
+ return
132041
+ }
132042
+ xt_map_config_currentConfig.center = center
132043
+ xt_map_config_emitConfigChange('center', center)
132044
+ }
132045
+
132046
+ const setMapZoom = (zoom) => {
132047
+ const z = Number(zoom)
132048
+ if (isNaN(z)) {
132049
+ console.warn('[XtMap] zoom 必须是数字')
132050
+ return
132051
+ }
132052
+ xt_map_config_currentConfig.zoom = z
132053
+ xt_map_config_emitConfigChange('zoom', z)
132054
+ }
132055
+
132056
+ const setMapPlugins = (plugins) => {
132057
+ if (!Array.isArray(plugins)) {
132058
+ console.warn('[XtMap] plugins 必须是数组')
132059
+ return
132060
+ }
132061
+ xt_map_config_currentConfig.plugins = plugins
132062
+ xt_map_config_emitConfigChange('plugins', plugins)
132063
+ }
132064
+
132065
+ const setSecurityJsCode = (code) => {
132066
+ xt_map_config_currentConfig.securityJsCode = code
132067
+ // 高德地图安全密钥:设置 window._AMapSecurityConfig
132068
+ if (typeof window !== 'undefined' && code) {
132069
+ window._AMapSecurityConfig = {
132070
+ securityJsCode: code,
132071
+ ...(window._AMapSecurityConfig || {})
132072
+ }
132073
+ }
132074
+ xt_map_config_emitConfigChange('securityJsCode', code)
132075
+ }
132076
+
132077
+ // 获取当前配置的快捷方法
132078
+ const getMapProvider = () => xt_map_config_currentConfig.provider
132079
+ const getMapApiKey = () => xt_map_config_currentConfig.apiKey
132080
+ const getMapApiUrl = () => xt_map_config_currentConfig.apiUrl
132081
+ const getMapType = () => xt_map_config_currentConfig.mapType
132082
+ const getMapTheme = () => xt_map_config_currentConfig.theme
132083
+ const getMapCenter = () => xt_map_config_currentConfig.center
132084
+ const getMapZoom = () => xt_map_config_currentConfig.zoom
132085
+ const getMapPlugins = () => xt_map_config_currentConfig.plugins
132086
+
132087
+ // 监听配置变更
132088
+ const onMapConfigChange = (listener) => {
132089
+ if (typeof listener === 'function') {
132090
+ xt_map_config_configChangeListeners.push(listener)
132091
+ return () => {
132092
+ const index = xt_map_config_configChangeListeners.indexOf(listener)
132093
+ if (index > -1) xt_map_config_configChangeListeners.splice(index, 1)
132094
+ }
132095
+ }
132096
+ }
132097
+
132098
+ // 重置为默认配置
132099
+ const resetMapConfig = () => {
132100
+ setMapConfig(xt_map_config_defaultConfig)
132101
+ }
132102
+
132103
+ /* harmony default export */ var xt_map_config = ({
132104
+ MAP_PROVIDERS,
132105
+ MAP_TYPES,
132106
+ MAP_THEMES,
132107
+ getMapConfig,
132108
+ setMapConfig,
132109
+ setMapProvider,
132110
+ setMapApiKey,
132111
+ setMapApiUrl,
132112
+ setMapType,
132113
+ setMapTheme,
132114
+ setMapCenter,
132115
+ setMapZoom,
132116
+ setMapPlugins,
132117
+ setSecurityJsCode,
132118
+ getMapProvider,
132119
+ getMapApiKey,
132120
+ getMapApiUrl,
132121
+ getMapType,
132122
+ getMapTheme,
132123
+ getMapCenter,
132124
+ getMapZoom,
132125
+ getMapPlugins,
132126
+ onMapConfigChange,
132127
+ resetMapConfig
132128
+ });
132129
+
132130
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/index.vue?vue&type=script&lang=js
132131
+
132132
+
132133
+
132134
+
132135
+
132136
+ /* harmony default export */ var xt_mapvue_type_script_lang_js = ({
132137
+ name: 'XtMap',
132138
+
132139
+ props: {
132140
+ provider: {
132141
+ type: String,
132142
+ default: '',
132143
+ validator: (val) => val === '' || MAP_PROVIDERS.includes(val)
132144
+ },
132145
+ apiKey: {
132146
+ type: String,
132147
+ default: ''
132148
+ },
132149
+ apiUrl: {
132150
+ type: String,
132151
+ default: ''
132152
+ },
132153
+ mapType: {
132154
+ type: String,
132155
+ default: '',
132156
+ validator: (val) => val === '' || MAP_TYPES.includes(val)
132157
+ },
132158
+ theme: {
132159
+ type: String,
132160
+ default: '',
132161
+ validator: (val) => val === '' || MAP_THEMES.includes(val)
132162
+ },
132163
+ center: {
132164
+ type: Array,
132165
+ default: () => null
132166
+ },
132167
+ zoom: {
132168
+ type: Number,
132169
+ default: null
132170
+ },
132171
+ plugins: {
132172
+ type: Array,
132173
+ default: () => []
132174
+ },
132175
+ width: {
132176
+ type: String,
132177
+ default: '100%'
132178
+ },
132179
+ height: {
132180
+ type: String,
132181
+ default: '400px'
132182
+ },
132183
+ securityJsCode: {
132184
+ type: String,
132185
+ default: ''
132186
+ },
132187
+ tiandituLayerType: {
132188
+ type: String,
132189
+ default: 'vec'
132190
+ },
132191
+ baiduCoordType: {
132192
+ type: String,
132193
+ default: 'bd09ll'
132194
+ }
132195
+ },
132196
+
132197
+ data() {
132198
+ return {
132199
+ loading: true,
132200
+ errorMessage: '',
132201
+ adapter: null,
132202
+ _unsubscribeConfig: null
132203
+ }
132204
+ },
132205
+
132206
+ computed: {
132207
+ mergedProvider() {
132208
+ return this.provider || getMapProvider() || 'amap'
132209
+ },
132210
+ mergedApiKey() {
132211
+ return this.apiKey || getMapApiKey() || ''
132212
+ },
132213
+ mergedApiUrl() {
132214
+ return this.apiUrl || getMapApiUrl() || ''
132215
+ },
132216
+ mergedMapType() {
132217
+ return this.mapType || getMapType() || 'standard'
132218
+ },
132219
+ mergedTheme() {
132220
+ return this.theme || getMapTheme() || 'light'
132221
+ },
132222
+ mergedCenter() {
132223
+ return this.center || getMapCenter() || [116.397428, 39.90923]
132224
+ },
132225
+ mergedZoom() {
132226
+ return this.zoom !== null ? this.zoom : getMapZoom()
132227
+ },
132228
+ mergedSecurityJsCode() {
132229
+ return this.securityJsCode || (getMapConfig().securityJsCode) || ''
132230
+ },
132231
+ mergedPlugins() {
132232
+ return this.plugins.length > 0 ? this.plugins : getMapConfig().plugins || []
132233
+ }
132234
+ },
132235
+
132236
+ watch: {
132237
+ mergedProvider: {
132238
+ handler() {
132239
+ this.$nextTick(() => this.rebuildMap())
132240
+ }
132241
+ },
132242
+ mergedApiKey: {
132243
+ handler() {
132244
+ this.$nextTick(() => this.rebuildMap())
132245
+ }
132246
+ },
132247
+ mergedMapType: {
132248
+ handler(newVal) {
132249
+ if (this.adapter) this.adapter.setMapType(newVal)
132250
+ }
132251
+ },
132252
+ mergedTheme: {
132253
+ handler(newVal) {
132254
+ if (this.adapter) this.adapter.setTheme(newVal)
132255
+ if (this.$refs.mapContainer) {
132256
+ this.$refs.mapContainer.setAttribute('data-theme', newVal)
132257
+ }
132258
+ }
132259
+ },
132260
+ mergedCenter: {
132261
+ handler(newVal) {
132262
+ if (this.adapter) this.adapter.setCenter(newVal)
132263
+ }
132264
+ },
132265
+ mergedZoom: {
132266
+ handler(newVal) {
132267
+ if (this.adapter) this.adapter.setZoom(newVal)
132268
+ }
132269
+ },
132270
+ width: {
132271
+ handler() {
132272
+ this.$nextTick(() => {
132273
+ if (this.adapter) this.adapter.resize()
132274
+ })
132275
+ }
132276
+ },
132277
+ height: {
132278
+ handler() {
132279
+ this.$nextTick(() => {
132280
+ if (this.adapter) this.adapter.resize()
132281
+ })
132282
+ }
132283
+ },
132284
+ securityJsCode: {
132285
+ handler(newVal) {
132286
+ if (newVal) {
132287
+ setSecurityJsCode(newVal)
132288
+ // 高德 2.0:SDK 已加载后再设置 securityJsCode 无效,需要重建地图
132289
+ if (this.mergedProvider === 'amap' && this.adapter && this.adapter.ready) {
132290
+ this.$nextTick(() => this.rebuildMap())
132291
+ }
132292
+ }
132293
+ }
132294
+ }
132295
+ },
132296
+
132297
+ mounted() {
132298
+ // 监听全局配置变更
132299
+ this._unsubscribeConfig = onMapConfigChange((key, value) => {
132300
+ if (!this.provider && (key === 'provider')) this.$nextTick(() => this.rebuildMap())
132301
+ if (!this.apiKey && (key === 'apiKey')) this.$nextTick(() => this.rebuildMap())
132302
+ if (!this.apiUrl && (key === 'apiUrl')) this.$nextTick(() => this.rebuildMap())
132303
+ if (!this.theme && key === 'theme' && this.adapter) this.adapter.setTheme(value)
132304
+ if (!this.mapType && key === 'mapType' && this.adapter) this.adapter.setMapType(value)
132305
+ if (!this.center && key === 'center' && this.adapter) this.adapter.setCenter(value)
132306
+ if (this.zoom === null && key === 'zoom' && this.adapter) this.adapter.setZoom(value)
132307
+ })
132308
+
132309
+ // 设置高德安全密钥
132310
+ if (this.securityJsCode) setSecurityJsCode(this.securityJsCode)
132311
+
132312
+ this.$nextTick(() => this.initMap())
132313
+
132314
+ // 监听窗口尺寸变化
132315
+ this._onWindowResize = () => {
132316
+ if (this.adapter) this.adapter.resize()
132317
+ }
132318
+ if (typeof window !== 'undefined') {
132319
+ window.addEventListener('resize', this._onWindowResize)
132320
+ }
132321
+ },
132322
+
132323
+ beforeDestroy() {
132324
+ this.destroyMap()
132325
+ if (this._unsubscribeConfig) this._unsubscribeConfig()
132326
+ if (this._onWindowResize && typeof window !== 'undefined') {
132327
+ window.removeEventListener('resize', this._onWindowResize)
132328
+ }
132329
+ },
132330
+
132331
+ methods: {
132332
+ async initMap() {
132333
+ const container = this.$refs.mapContainer
132334
+ if (!container) return
132335
+
132336
+ // 设置容器尺寸
132337
+ container.style.width = this.width
132338
+ container.style.height = this.height
132339
+
132340
+ // 设置安全密钥(高德需要)
132341
+ if (this.securityJsCode) setSecurityJsCode(this.securityJsCode)
132342
+
132343
+ this.loading = true
132344
+ this.errorMessage = ''
132345
+
132346
+ const AdapterClass = getAdapterClass(this.mergedProvider)
132347
+
132348
+ this.adapter = new AdapterClass(container, {
132349
+ apiKey: this.mergedApiKey,
132350
+ apiUrl: this.mergedApiUrl,
132351
+ mapType: this.mergedMapType,
132352
+ theme: this.mergedTheme,
132353
+ center: this.mergedCenter,
132354
+ zoom: this.mergedZoom,
132355
+ plugins: this.mergedPlugins,
132356
+ securityJsCode: this.mergedSecurityJsCode,
132357
+ tiandituLayerType: this.tiandituLayerType,
132358
+ baiduCoordType: this.baiduCoordType
132359
+ })
132360
+
132361
+ try {
132362
+ await this.adapter.init()
132363
+ this.loading = false
132364
+
132365
+ // 绑定事件
132366
+ this._bindAdapterEvents()
132367
+
132368
+ // 向父组件发出 ready 事件
132369
+ this.$emit('ready', {
132370
+ provider: this.mergedProvider,
132371
+ map: this.adapter.getNativeMap(),
132372
+ adapter: this.adapter
132373
+ })
132374
+ } catch (err) {
132375
+ this.loading = false
132376
+ this.errorMessage = err.message || '地图初始化失败'
132377
+ this.$emit('error', err)
132378
+ }
132379
+ },
132380
+
132381
+ rebuildMap() {
132382
+ this.destroyMap()
132383
+ // 清理脚本缓存,确保新配置能生效(例如切换密钥后重新加载)
132384
+ if (typeof clearScriptCache === 'function') {
132385
+ clearScriptCache()
132386
+ }
132387
+ this.$nextTick(() => this.initMap())
132388
+ },
132389
+
132390
+ destroyMap() {
132391
+ if (this.adapter) {
132392
+ this.adapter.destroy()
132393
+ this.adapter = null
132394
+ }
132395
+ },
132396
+
132397
+ _bindAdapterEvents() {
132398
+ if (!this.adapter) return
132399
+
132400
+ const events = ['click', 'moveend', 'zoomend', 'zoomchange', 'mapmove']
132401
+ events.forEach((evt) => {
132402
+ this.adapter.on(evt, (data) => {
132403
+ this.$emit(evt, data)
132404
+ })
132405
+ })
132406
+ },
132407
+
132408
+ // 对外暴露的统一 API
132409
+ setCenter(center) {
132410
+ if (this.adapter) this.adapter.setCenter(center)
132411
+ },
132412
+
132413
+ setZoom(zoom) {
132414
+ if (this.adapter) this.adapter.setZoom(zoom)
132415
+ },
132416
+
132417
+ setMapType(type) {
132418
+ if (this.adapter) this.adapter.setMapType(type)
132419
+ },
132420
+
132421
+ setTheme(theme) {
132422
+ if (this.adapter) this.adapter.setTheme(theme)
132423
+ },
132424
+
132425
+ getCenter() {
132426
+ return this.adapter ? this.adapter.getCenter() : this.mergedCenter
132427
+ },
132428
+
132429
+ getZoom() {
132430
+ return this.adapter ? this.adapter.getZoom() : this.mergedZoom
132431
+ },
132432
+
132433
+ getNativeMap() {
132434
+ return this.adapter ? this.adapter.getNativeMap() : null
132435
+ },
132436
+
132437
+ resize() {
132438
+ if (this.adapter) this.adapter.resize()
132439
+ },
132440
+
132441
+ on(eventName, handler) {
132442
+ if (this.adapter) this.adapter.on(eventName, handler)
132443
+ },
132444
+
132445
+ off(eventName) {
132446
+ if (this.adapter) this.adapter.off(eventName)
132447
+ },
132448
+
132449
+ rebuild() {
132450
+ this.rebuildMap()
132451
+ }
132452
+ }
132453
+ });
132454
+
132455
+ // CONCATENATED MODULE: ./src/components/xt-map/index.vue?vue&type=script&lang=js
132456
+ /* harmony default export */ var components_xt_mapvue_type_script_lang_js = (xt_mapvue_type_script_lang_js);
132457
+ // CONCATENATED MODULE: ./src/components/xt-map/index.vue
132458
+
132459
+
132460
+
132461
+
132462
+
132463
+ /* normalize component */
132464
+
132465
+ var xt_map_component = normalizeComponent(
132466
+ components_xt_mapvue_type_script_lang_js,
132467
+ xt_mapvue_type_template_id_0c15823e_render,
132468
+ xt_mapvue_type_template_id_0c15823e_staticRenderFns,
132469
+ false,
132470
+ null,
132471
+ null,
132472
+ null
132473
+
132474
+ )
132475
+
132476
+ /* harmony default export */ var xt_map = (xt_map_component.exports);
132477
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/provider.vue?vue&type=template&id=16f243b0&scoped=true
132478
+ var providervue_type_template_id_16f243b0_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:['xt-map-provider', { 'xt-map-provider--dark': _vm.mergedTheme === 'dark' }],style:(_vm.wrapperStyle)},[_vm._t("default")],2)
132479
+ }
132480
+ var providervue_type_template_id_16f243b0_scoped_true_staticRenderFns = []
132481
+
132482
+
132483
+ // CONCATENATED MODULE: ./src/components/xt-map/provider.vue?vue&type=template&id=16f243b0&scoped=true
132484
+
132485
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/provider.vue?vue&type=script&lang=js
132486
+
132487
+
132488
+
132489
+ /* harmony default export */ var providervue_type_script_lang_js = ({
132490
+ name: 'XtMapProvider',
132491
+
132492
+ props: {
132493
+ provider: {
132494
+ type: String,
132495
+ default: '',
132496
+ validator: (val) => val === '' || MAP_PROVIDERS.includes(val)
132497
+ },
132498
+ apiKey: {
132499
+ type: String,
132500
+ default: ''
132501
+ },
132502
+ apiUrl: {
132503
+ type: String,
132504
+ default: ''
132505
+ },
132506
+ mapType: {
132507
+ type: String,
132508
+ default: '',
132509
+ validator: (val) => val === '' || MAP_TYPES.includes(val)
132510
+ },
132511
+ theme: {
132512
+ type: String,
132513
+ default: '',
132514
+ validator: (val) => val === '' || MAP_THEMES.includes(val)
132515
+ },
132516
+ center: {
132517
+ type: Array,
132518
+ default: () => null
132519
+ },
132520
+ zoom: {
132521
+ type: Number,
132522
+ default: null
132523
+ },
132524
+ plugins: {
132525
+ type: Array,
132526
+ default: () => []
132527
+ },
132528
+ securityJsCode: {
132529
+ type: String,
132530
+ default: ''
132531
+ },
132532
+ tag: {
132533
+ type: String,
132534
+ default: 'div'
132535
+ }
132536
+ },
132537
+
132538
+ data() {
132539
+ return {
132540
+ mergedTheme: this.theme || getMapTheme() || 'light'
132541
+ }
132542
+ },
132543
+
132544
+ computed: {
132545
+ wrapperStyle() {
132546
+ return {}
132547
+ }
132548
+ },
132549
+
132550
+ watch: {
132551
+ provider: {
132552
+ immediate: true,
132553
+ handler(newVal) {
132554
+ if (newVal) setMapProvider(newVal)
132555
+ }
132556
+ },
132557
+ apiKey: {
132558
+ immediate: true,
132559
+ handler(newVal) {
132560
+ if (newVal) setMapApiKey(newVal)
132561
+ }
132562
+ },
132563
+ apiUrl: {
132564
+ immediate: true,
132565
+ handler(newVal) {
132566
+ if (newVal) setMapApiUrl(newVal)
132567
+ }
132568
+ },
132569
+ mapType: {
132570
+ immediate: true,
132571
+ handler(newVal) {
132572
+ if (newVal) setMapType(newVal)
132573
+ }
132574
+ },
132575
+ theme: {
132576
+ immediate: true,
132577
+ handler(newVal) {
132578
+ if (newVal) {
132579
+ setMapTheme(newVal)
132580
+ this.mergedTheme = newVal
132581
+ }
132582
+ }
132583
+ },
132584
+ center: {
132585
+ immediate: true,
132586
+ handler(newVal) {
132587
+ if (newVal) setMapCenter(newVal)
132588
+ }
132589
+ },
132590
+ zoom: {
132591
+ immediate: true,
132592
+ handler(newVal) {
132593
+ if (newVal !== null && newVal !== undefined) setMapZoom(newVal)
132594
+ }
132595
+ },
132596
+ plugins: {
132597
+ immediate: true,
132598
+ handler(newVal) {
132599
+ if (newVal && newVal.length > 0) setMapPlugins(newVal)
132600
+ }
132601
+ },
132602
+ securityJsCode: {
132603
+ immediate: true,
132604
+ handler(newVal) {
132605
+ if (newVal) setSecurityJsCode(newVal)
132606
+ }
132607
+ }
132608
+ },
132609
+
132610
+ provide() {
132611
+ return {
132612
+ xtMapConfig: {
132613
+ getProvider: () => this.provider || getMapProvider(),
132614
+ getApiKey: () => this.apiKey || getMapApiKey(),
132615
+ getApiUrl: () => this.apiUrl || getMapApiUrl(),
132616
+ getMapType: () => this.mapType || getMapType(),
132617
+ getTheme: () => this.theme || getMapTheme(),
132618
+ getCenter: () => this.center || getMapCenter(),
132619
+ getZoom: () => this.zoom !== null ? this.zoom : getMapZoom(),
132620
+ getPlugins: () => this.plugins.length > 0 ? this.plugins : getMapPlugins(),
132621
+ getConfig: () => ({
132622
+ provider: this.provider || getMapProvider(),
132623
+ apiKey: this.apiKey || getMapApiKey(),
132624
+ apiUrl: this.apiUrl || getMapApiUrl(),
132625
+ mapType: this.mapType || getMapType(),
132626
+ theme: this.theme || getMapTheme(),
132627
+ center: this.center || getMapCenter(),
132628
+ zoom: this.zoom !== null ? this.zoom : getMapZoom()
132629
+ })
132630
+ }
132631
+ }
132632
+ },
132633
+
132634
+ created() {
132635
+ this._unsubscribe = onMapConfigChange((key, value) => {
132636
+ if (key === 'theme') this.mergedTheme = this.theme || value
132637
+ })
132638
+ },
132639
+
132640
+ beforeDestroy() {
132641
+ if (this._unsubscribe) this._unsubscribe()
132642
+ }
132643
+ });
132644
+
132645
+ // CONCATENATED MODULE: ./src/components/xt-map/provider.vue?vue&type=script&lang=js
132646
+ /* harmony default export */ var xt_map_providervue_type_script_lang_js = (providervue_type_script_lang_js);
132647
+ // EXTERNAL MODULE: ./src/components/xt-map/provider.vue?vue&type=style&index=0&id=16f243b0&prod&scoped=true&lang=css
132648
+ var providervue_type_style_index_0_id_16f243b0_prod_scoped_true_lang_css = __webpack_require__("3cef");
132649
+
132650
+ // CONCATENATED MODULE: ./src/components/xt-map/provider.vue
132651
+
132652
+
132653
+
132654
+
132655
+
132656
+
132657
+ /* normalize component */
132658
+
132659
+ var provider_component = normalizeComponent(
132660
+ xt_map_providervue_type_script_lang_js,
132661
+ providervue_type_template_id_16f243b0_scoped_true_render,
132662
+ providervue_type_template_id_16f243b0_scoped_true_staticRenderFns,
132663
+ false,
132664
+ null,
132665
+ "16f243b0",
132666
+ null
132667
+
132668
+ )
132669
+
132670
+ /* harmony default export */ var xt_map_provider = (provider_component.exports);
132671
+ // EXTERNAL MODULE: ./src/components/xt-map/style/index.scss
132672
+ var xt_map_style = __webpack_require__("c759");
132673
+
132674
+ // CONCATENATED MODULE: ./src/components/xt-map/index.js
132675
+
132676
+
132677
+
132678
+
132679
+ xt_map.install = function (Vue) {
132680
+ Vue.component(xt_map.name, xt_map)
132681
+ }
132682
+
132683
+ xt_map_provider.install = function (Vue) {
132684
+ Vue.component(xt_map_provider.name, xt_map_provider)
132685
+ }
132686
+
132687
+
132688
+
132689
+ /* harmony default export */ var components_xt_map = ({
132690
+ install(Vue) {
132691
+ Vue.component(xt_map.name, xt_map)
132692
+ Vue.component(xt_map_provider.name, xt_map_provider)
132693
+ },
132694
+ XtMap: xt_map,
132695
+ XtMapProvider: xt_map_provider
132696
+ });
132697
+
132698
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-box/index.vue?vue&type=template&id=67e197c4
130619
132699
  var xt_grid_boxvue_type_template_id_67e197c4_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-grid-box",style:(_vm.styleAttrs)},[_vm._t("default")],2)
130620
132700
  }
130621
132701
  var xt_grid_boxvue_type_template_id_67e197c4_staticRenderFns = []
@@ -130776,10 +132856,16 @@ var xt_grid_box_component = normalizeComponent(
130776
132856
 
130777
132857
  /* harmony default export */ var xt_grid_box = (xt_grid_box_component.exports);
130778
132858
  // CONCATENATED MODULE: ./src/components/xt-grid-box/index.js
132859
+
132860
+
132861
+ xt_grid_box.install = function (Vue) {
132862
+ Vue.component(xt_grid_box.name, xt_grid_box)
132863
+ }
132864
+
132865
+ /* harmony default export */ var components_xt_grid_box = (xt_grid_box);
130779
132866
 
130780
- /* harmony default export */ var components_xt_grid_box = (xt_grid_box);
130781
132867
 
130782
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-item/index.vue?vue&type=template&id=5318efc6&scoped=true
132868
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-item/index.vue?vue&type=template&id=5318efc6&scoped=true
130783
132869
  var xt_grid_itemvue_type_template_id_5318efc6_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-grid-item",style:(_vm.styleAttrs)},[_vm._t("default")],2)
130784
132870
  }
130785
132871
  var xt_grid_itemvue_type_template_id_5318efc6_scoped_true_staticRenderFns = []
@@ -130911,8 +132997,15 @@ var xt_grid_item_component = normalizeComponent(
130911
132997
  /* harmony default export */ var xt_grid_item = (xt_grid_item_component.exports);
130912
132998
  // CONCATENATED MODULE: ./src/components/xt-grid-item/index.js
130913
132999
 
133000
+
133001
+ xt_grid_item.install = function (Vue) {
133002
+ Vue.component(xt_grid_item.name, xt_grid_item)
133003
+ }
133004
+
130914
133005
  /* harmony default export */ var components_xt_grid_item = (xt_grid_item);
130915
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
133006
+
133007
+
133008
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130916
133009
  var ex_date_pickervue_type_template_id_ff20c256_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{"display":"inline-block"}},[(_vm.dateType=='quarter')?_c('FlexBox',{staticClass:"xt-date-picker",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"开始时间","quarter-type":"quarter-start","clearable":""},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"结束时间","quarter-type":"quarter-end","clearable":""},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1):_c('FlexBox',{staticClass:"xt-date",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('el-date-picker',{key:"startSelect",ref:"timeStart",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.startTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"开始时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('el-date-picker',{key:"endSelect",ref:"timeEnd",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.endTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"结束时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1)],1)
130917
133010
  }
130918
133011
  var ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns = []
@@ -130920,7 +133013,7 @@ var ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns = []
130920
133013
 
130921
133014
  // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130922
133015
 
130923
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
133016
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
130924
133017
  var quartervue_type_template_id_39ae9f5e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-popover',{attrs:{"trigger":"click","disabled":_vm.disabled,"transition":"el-zoom-in-top","placement":_vm.placement,"width":_vm.popoverWidth},on:{"hide":_vm.handleBlur},model:{value:(_vm.popoverVisible),callback:function ($$v) {_vm.popoverVisible=$$v},expression:"popoverVisible"}},[_c('div',{staticClass:"quarter-wrapper"},[_c('BaseFlexBox',{attrs:{"content":"between"}},[_c('i',{staticClass:"el-icon-d-arrow-left",on:{"click":_vm.prev}}),_c('span',[_vm._v(_vm._s(_vm.selectYear))]),_c('i',{staticClass:"el-icon-d-arrow-right",on:{"click":_vm.after}})]),_c('BaseFlexBox',{staticStyle:{"margin-top":"10px"},attrs:{"content":"between"}},_vm._l((_vm.quarterList),function(item){return _c('el-button',{key:item.value,attrs:{"disabled":_vm.getDisable(item),"type":_vm.currentyear==_vm.selectYear&&item.value == _vm.currentQuarter ?'primary':'',"size":"mini","round":""},on:{"click":function($event){return _vm.setCurrent(item)}}},[_vm._v(_vm._s(item.label))])}),1)],1),_c('el-input',{ref:"reference",attrs:{"slot":"reference","size":"small","value":_vm.quarterLabel,"readonly":"","title":_vm.value,"placeholder":_vm.placeholder,"prefix-icon":"el-icon-date","clearable":""},slot:"reference"})],1)
130925
133018
  }
130926
133019
  var quartervue_type_template_id_39ae9f5e_staticRenderFns = []
@@ -131206,9 +133299,16 @@ var ex_date_picker_component = normalizeComponent(
131206
133299
 
131207
133300
  /* harmony default export */ var ex_date_picker = (ex_date_picker_component.exports);
131208
133301
  // CONCATENATED MODULE: ./src/components/ex-date-picker/index.js
131209
-
133302
+
133303
+
133304
+ ex_date_picker.install = function (Vue) {
133305
+ Vue.component(ex_date_picker.name, ex_date_picker)
133306
+ }
133307
+
131210
133308
  /* harmony default export */ var components_ex_date_picker = (ex_date_picker);
131211
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-button/index.vue?vue&type=template&id=1b7e9238
133309
+
133310
+
133311
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-button/index.vue?vue&type=template&id=1b7e9238
131212
133312
  var ex_buttonvue_type_template_id_1b7e9238_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-button',_vm._b({staticClass:"ex-button",class:_vm.buttonClasses,on:{"click":_vm.handleClick}},'el-button',_vm.$attrs,false),[_vm._t("default")],2)
131213
133313
  }
131214
133314
  var ex_buttonvue_type_template_id_1b7e9238_staticRenderFns = []
@@ -131297,9 +133397,16 @@ var ex_button_component = normalizeComponent(
131297
133397
 
131298
133398
  /* harmony default export */ var ex_button = (ex_button_component.exports);
131299
133399
  // CONCATENATED MODULE: ./src/components/ex-button/index.js
131300
-
133400
+
133401
+
133402
+ ex_button.install = function (Vue) {
133403
+ Vue.component(ex_button.name, ex_button)
133404
+ }
133405
+
131301
133406
  /* harmony default export */ var components_ex_button = (ex_button);
131302
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/index.vue?vue&type=template&id=9a31abde
133407
+
133408
+
133409
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/index.vue?vue&type=template&id=9a31abde
131303
133410
  var ex_chartvue_type_template_id_9a31abde_render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.type=='bar')?_c('ex-bar',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'ex-bar',_vm.$attrs,false)):(_vm.type=='line')?_c('ex-line',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'ex-line',_vm.$attrs,false)):(_vm.type=='pie')?_c('ex-pie',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'ex-pie',_vm.$attrs,false)):(_vm.type=='multi')?_c('ex-multi',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'ex-multi',_vm.$attrs,false)):_vm._e()
131304
133411
  }
131305
133412
  var ex_chartvue_type_template_id_9a31abde_staticRenderFns = []
@@ -131307,7 +133414,7 @@ var ex_chartvue_type_template_id_9a31abde_staticRenderFns = []
131307
133414
 
131308
133415
  // CONCATENATED MODULE: ./src/components/ex-chart/index.vue?vue&type=template&id=9a31abde
131309
133416
 
131310
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExBar.vue?vue&type=template&id=06ad80ef&scoped=true
133417
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExBar.vue?vue&type=template&id=06ad80ef&scoped=true
131311
133418
  var ExBarvue_type_template_id_06ad80ef_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"barchart",staticClass:"bar-box"})
131312
133419
  }
131313
133420
  var ExBarvue_type_template_id_06ad80ef_scoped_true_staticRenderFns = []
@@ -131544,7 +133651,7 @@ var ExBar_component = normalizeComponent(
131544
133651
  )
131545
133652
 
131546
133653
  /* harmony default export */ var ExBar = (ExBar_component.exports);
131547
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExLine.vue?vue&type=template&id=358cb278&scoped=true
133654
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExLine.vue?vue&type=template&id=358cb278&scoped=true
131548
133655
  var ExLinevue_type_template_id_358cb278_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"linechart",staticClass:"line-box"})
131549
133656
  }
131550
133657
  var ExLinevue_type_template_id_358cb278_scoped_true_staticRenderFns = []
@@ -131727,7 +133834,7 @@ var ExLine_component = normalizeComponent(
131727
133834
  )
131728
133835
 
131729
133836
  /* harmony default export */ var ExLine = (ExLine_component.exports);
131730
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExPie.vue?vue&type=template&id=ee1d466e&scoped=true
133837
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExPie.vue?vue&type=template&id=ee1d466e&scoped=true
131731
133838
  var ExPievue_type_template_id_ee1d466e_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"piechart",staticClass:"pie-box"})
131732
133839
  }
131733
133840
  var ExPievue_type_template_id_ee1d466e_scoped_true_staticRenderFns = []
@@ -131919,7 +134026,7 @@ var ExPie_component = normalizeComponent(
131919
134026
  )
131920
134027
 
131921
134028
  /* harmony default export */ var ExPie = (ExPie_component.exports);
131922
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExMulti.vue?vue&type=template&id=6d9e7e44&scoped=true
134029
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-chart/ExMulti.vue?vue&type=template&id=6d9e7e44&scoped=true
131923
134030
  var ExMultivue_type_template_id_6d9e7e44_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"multilinechart",staticClass:"multiline-box"})
131924
134031
  }
131925
134032
  var ExMultivue_type_template_id_6d9e7e44_scoped_true_staticRenderFns = []
@@ -132353,9 +134460,15 @@ var ex_chart_component = normalizeComponent(
132353
134460
  /* harmony default export */ var ex_chart = (ex_chart_component.exports);
132354
134461
  // CONCATENATED MODULE: ./src/components/ex-chart/index.js
132355
134462
 
134463
+
134464
+ ex_chart.install = function (Vue) {
134465
+ Vue.component(ex_chart.name, ex_chart)
134466
+ }
134467
+
132356
134468
  /* harmony default export */ var components_ex_chart = (ex_chart);
134469
+
132357
134470
 
132358
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-card/index.vue?vue&type=template&id=0d381618
134471
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-card/index.vue?vue&type=template&id=0d381618
132359
134472
  var ex_cardvue_type_template_id_0d381618_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-card',_vm._b({staticClass:"ex-card",class:_vm.cardClasses,scopedSlots:_vm._u([(_vm.$slots.header || _vm.title)?{key:"header",fn:function(){return [_vm._t("header",function(){return [_vm._v(_vm._s(_vm.title))]})]},proxy:true}:null],null,true)},'el-card',_vm.$attrs,false),[_vm._t("default")],2)
132360
134473
  }
132361
134474
  var ex_cardvue_type_template_id_0d381618_staticRenderFns = []
@@ -132450,7 +134563,7 @@ ex_card.install = function (Vue) {
132450
134563
 
132451
134564
  /* harmony default export */ var components_ex_card = (ex_card);
132452
134565
 
132453
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-icon/index.vue?vue&type=template&id=01397354&scoped=true
134566
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-icon/index.vue?vue&type=template&id=01397354&scoped=true
132454
134567
  var ex_iconvue_type_template_id_01397354_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.tag,_vm._g({tag:"component",class:_vm.iconClasses,style:(_vm.iconStyle),on:{"click":_vm.handleClick}},_vm.$listeners),[(_vm.isSvgSprite)?_c('svg',{style:(_vm.svgStyle),attrs:{"aria-hidden":"true"}},[_c('use',{attrs:{"href":_vm.svgHref}})]):(_vm.hasDefaultSlot)?_vm._t("default"):_vm._e()],2)
132455
134568
  }
132456
134569
  var ex_iconvue_type_template_id_01397354_scoped_true_staticRenderFns = []
@@ -132621,9 +134734,15 @@ var ex_icon_component = normalizeComponent(
132621
134734
  /* harmony default export */ var ex_icon = (ex_icon_component.exports);
132622
134735
  // CONCATENATED MODULE: ./src/components/ex-icon/index.js
132623
134736
 
134737
+
134738
+ ex_icon.install = function (Vue) {
134739
+ Vue.component(ex_icon.name, ex_icon)
134740
+ }
134741
+
132624
134742
  /* harmony default export */ var components_ex_icon = (ex_icon);
134743
+
132625
134744
 
132626
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-table/index.vue?vue&type=template&id=1833f458&scoped=true
134745
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-table/index.vue?vue&type=template&id=1833f458&scoped=true
132627
134746
  var ex_tablevue_type_template_id_1833f458_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"ex-table-wrapper"},[(_vm.title || _vm.$slots.toolbar)?_c('div',{staticClass:"ex-table-header"},[(_vm.title)?_c('span',{staticClass:"ex-table-title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:"ex-table-toolbar"},[_vm._t("toolbar")],2)]):_vm._e(),_c('div',{staticClass:"ex-table-body"},[_c('VirtualElTable',_vm._g(_vm._b({ref:"table",staticClass:"ex-table",attrs:{"data":_vm.processedTableData,"height":_vm.computedHeight,"max-height":_vm.computedMaxHeight,"virtual-scroll":_vm.virtualScroll,"row-height":_vm.rowInitHeight,"buffer-size":_vm.bufferSize,"span-method":_vm.groupColumns.length ? _vm.handleSpanMethod : undefined,"row-class-name":_vm.getRowClassName},on:{"selection-change":_vm.handleSelectionChange,"sort-change":_vm.handleSortChange}},'VirtualElTable',_vm.$attrs,false),_vm.$listeners),[(_vm.selection)?_c('el-table-column',{attrs:{"type":"selection","width":"55","fixed":_vm.selectionFixed}}):_vm._e(),(_vm.showIndex)?_c('el-table-column',{attrs:{"type":"index","width":"60","label":"#","fixed":_vm.indexFixed,"index":_vm.indexMethod}}):_vm._e(),_vm._l((_vm.flattenedColumns),function(col){return [(col.children && col.children.length)?_c('el-table-column',_vm._b({key:col._key},'el-table-column',_vm.getColumnProps(col),false),[_vm._l((col.children),function(child){return [_c('el-table-column',_vm._b({key:child._key,scopedSlots:_vm._u([(child.render)?{key:"default",fn:function(scope){return [_vm._v(_vm._s(child.render(scope)))]}}:(child.formatter)?{key:"default",fn:function(scope){return [_c('ExTableCell',{attrs:{"row":scope.row,"index":scope.$index,"formatter":child.formatter,"column":child}})]}}:(child.slot)?{key:"default",fn:function(scope){return [_vm._t(child.slot,null,{"row":scope.row,"index":scope.$index,"column":child})]}}:null],null,true)},'el-table-column',_vm.getColumnProps(child),false))]})],2):_c('el-table-column',_vm._b({key:col._key,scopedSlots:_vm._u([(col.render)?{key:"default",fn:function(scope){return [_vm._v(_vm._s(col.render(scope)))]}}:(col.formatter)?{key:"default",fn:function(scope){return [_c('ExTableCell',{attrs:{"row":scope.row,"index":scope.$index,"formatter":col.formatter,"column":col}})]}}:(col.slot)?{key:"default",fn:function(scope){return [_vm._t(col.slot,null,{"row":scope.row,"index":scope.$index,"column":col})]}}:null],null,true)},'el-table-column',_vm.getColumnProps(col),false))]})],2)],1),(_vm.showPagination)?_c('div',{staticClass:"ex-table-footer"},[_c('el-pagination',{attrs:{"current-page":_vm.pagination.ppageNum,"page-size":_vm.pagination.pageSize,"total":_vm.total,"page-sizes":_vm.pagination.pageSizes || [10, 20, 50, 100],"layout":"total, sizes, prev, pager, next, jumper"},on:{"size-change":_vm.handleSizeChange,"current-change":_vm.handleCurrentChange}})],1):_vm._e()])
132628
134747
  }
132629
134748
  var ex_tablevue_type_template_id_1833f458_scoped_true_staticRenderFns = []
@@ -132677,7 +134796,7 @@ var ExTableCell_component = normalizeComponent(
132677
134796
  )
132678
134797
 
132679
134798
  /* harmony default export */ var ExTableCell = (ExTableCell_component.exports);
132680
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-table/VirtualElTable.vue?vue&type=template&id=5eb34e1c&scoped=true
134799
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7073014a-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-table/VirtualElTable.vue?vue&type=template&id=5eb34e1c&scoped=true
132681
134800
  var VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-table',_vm._g(_vm._b({ref:"innerTable",attrs:{"data":_vm.renderList}},'el-table',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2)
132682
134801
  }
132683
134802
  var VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_staticRenderFns = []
@@ -133279,7 +135398,13 @@ var ex_table_component = normalizeComponent(
133279
135398
  /* harmony default export */ var ex_table = (ex_table_component.exports);
133280
135399
  // CONCATENATED MODULE: ./src/components/ex-table/index.js
133281
135400
 
135401
+
135402
+ ex_table.install = function (Vue) {
135403
+ Vue.component(ex_table.name, ex_table)
135404
+ }
135405
+
133282
135406
  /* harmony default export */ var components_ex_table = (ex_table);
135407
+
133283
135408
 
133284
135409
  // CONCATENATED MODULE: ./src/config/element-registry.js
133285
135410
  /**
@@ -133488,6 +135613,8 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
133488
135613
 
133489
135614
 
133490
135615
 
135616
+
135617
+
133491
135618
  // ExChart 组件(基于 ECharts 封装)
133492
135619
 
133493
135620
  // ExIcon 组件(支持 el-icon / svg / 自定义字体)
@@ -133508,6 +135635,8 @@ const src_components = [
133508
135635
  components_xt_time,
133509
135636
  components_xt_step_price,
133510
135637
  components_xt_step_price_item,
135638
+ components_xt_map,
135639
+ xt_map_provider,
133511
135640
  components_xt_grid_box,
133512
135641
  components_xt_grid_item,
133513
135642
  components_ex_date_picker,
@@ -133588,6 +135717,8 @@ if (typeof window !== 'undefined' && window.Vue) {
133588
135717
  XtTime: components_xt_time,
133589
135718
  XtStepPrice: components_xt_step_price,
133590
135719
  XtStepPriceItem: components_xt_step_price_item,
135720
+ XtMap: components_xt_map,
135721
+ XtMapProvider: xt_map_provider,
133591
135722
  XtGridBox: components_xt_grid_box,
133592
135723
  XtGridItem: components_xt_grid_item,
133593
135724
  ExDatePicker: components_ex_date_picker,