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.
- package/docs/components/base/xt-map.md +331 -0
- package/docs/components/base/xt-step-price.md +103 -217
- package/lib/index.common.js +2218 -87
- package/lib/index.css +1 -1
- package/lib/index.umd.js +2218 -87
- package/lib/index.umd.min.js +5 -5
- package/package.json +4 -3
- package/src/components/ex-button/index.js +8 -2
- package/src/components/ex-chart/index.js +6 -0
- package/src/components/ex-date-picker/index.js +8 -2
- package/src/components/ex-icon/index.js +6 -0
- package/src/components/ex-page/index.js +8 -2
- package/src/components/ex-select-tree/index.js +8 -2
- package/src/components/ex-table/index.js +6 -0
- package/src/components/ex-upload/index.js +6 -0
- package/src/components/xt-button/index.js +8 -2
- package/src/components/xt-button/index.vue +53 -10
- package/src/components/xt-button/style/index.scss +147 -43
- package/src/components/xt-card/index.js +8 -2
- package/src/components/xt-card-item/index.js +8 -2
- package/src/components/xt-config-provider/index.js +6 -0
- package/src/components/xt-flex-box/index.js +8 -2
- package/src/components/xt-flex-box/style/index.scss +0 -9
- package/src/components/xt-grid-box/index.js +8 -2
- package/src/components/xt-grid-item/index.js +7 -1
- package/src/components/xt-input/index.js +8 -2
- package/src/components/xt-input/index.vue +66 -37
- package/src/components/xt-input/style/index.scss +70 -13
- package/src/components/xt-map/adapters/amap.js +235 -0
- package/src/components/xt-map/adapters/baidu.js +254 -0
- package/src/components/xt-map/adapters/base.js +267 -0
- package/src/components/xt-map/adapters/index.js +29 -0
- package/src/components/xt-map/adapters/tianditu.js +242 -0
- package/src/components/xt-map/config/xt-map-config.js +197 -0
- package/src/components/xt-map/index.js +22 -0
- package/src/components/xt-map/index.vue +351 -0
- package/src/components/xt-map/loaders/script-loader.js +114 -0
- package/src/components/xt-map/provider.vue +200 -0
- package/src/components/xt-map/style/index.scss +77 -0
- package/src/components/xt-step-price/index.js +9 -0
- package/src/components/xt-step-price/index.vue +12 -10
- package/src/components/xt-step-price/style/index.scss +32 -24
- package/src/components/xt-step-price-item/index.js +6 -0
- package/src/components/xt-step-price-item/index.vue +13 -9
- package/src/components/xt-text/index.js +8 -2
- package/src/components/xt-time/index.js +6 -0
- package/src/index.js +6 -0
package/lib/index.common.js
CHANGED
|
@@ -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":"
|
|
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=
|
|
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
|
-
|
|
129102
|
-
|
|
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
|
|
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=
|
|
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
|
-
|
|
129120
|
-
type: String,
|
|
129121
|
-
default: ''
|
|
129122
|
-
}
|
|
129123
|
-
|
|
129124
|
-
|
|
129125
|
-
|
|
129126
|
-
|
|
129127
|
-
|
|
129128
|
-
|
|
129129
|
-
|
|
129130
|
-
|
|
129131
|
-
|
|
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
|
-
|
|
129149
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
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":"
|
|
130196
|
-
var
|
|
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
|
|
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=
|
|
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":"
|
|
130204
|
-
var
|
|
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
|
|
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=
|
|
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.
|
|
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
|
-
|
|
130360
|
-
|
|
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 +
|
|
130469
|
-
if (curMax <= curMin) curMax = curMin +
|
|
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 +
|
|
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
|
-
|
|
130601
|
-
|
|
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":"
|
|
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":"
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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,
|