xt-element-ui 1.2.2 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/lib/index.common.js +1322 -1281
  2. package/lib/index.css +1 -1
  3. package/lib/index.umd.js +1327 -1286
  4. package/lib/index.umd.min.js +5 -5
  5. package/package.json +1 -1
  6. package/src/components/ex-button/index.vue +1 -1
  7. package/src/components/ex-button/style/index.scss +10 -4
  8. package/src/components/ex-chart/ExPie.vue +1 -4
  9. package/src/components/ex-chart/theme/dark.js +15 -13
  10. package/src/components/ex-chart/utils.js +1 -1
  11. package/src/components/ex-page/index.js +2 -0
  12. package/src/components/ex-select-tree/index.js +2 -0
  13. package/src/components/{xt-select-tree → ex-select-tree}/index.vue +1 -1
  14. package/src/components/ex-table/ExTableCell.vue +3 -2
  15. package/src/components/ex-table/VirtualElTable.vue +234 -0
  16. package/src/components/ex-table/index.vue +176 -445
  17. package/src/components/ex-upload/index.js +2 -0
  18. package/src/components/xt-button/index.vue +2 -2
  19. package/src/components/xt-button/style/index.scss +524 -614
  20. package/src/components/xt-card-item/index copy.vue +93 -0
  21. package/src/components/xt-card-item/index.vue +23 -83
  22. package/src/components/xt-card-item/style/index copy.scss +72 -0
  23. package/src/components/xt-card-item/style/index.scss +51 -40
  24. package/src/components/xt-config-provider/index.js +2 -2
  25. package/src/components/xt-config-provider/index.vue +9 -5
  26. package/src/components/xt-text/index.vue +58 -29
  27. package/src/components/xt-text/style/index.scss +13 -13
  28. package/src/styles/css-variables.scss +1 -1
  29. package/src/styles/element-theme.scss +1 -1
  30. package/src/utils/index.js +11 -2
  31. package/src/components/xt-page/index.js +0 -0
  32. package/src/components/xt-select-tree/index.js +0 -0
  33. package/src/components/xt-upload/index.js +0 -2
  34. /package/src/components/{xt-page → ex-page}/index.vue +0 -0
  35. /package/src/components/{xt-upload → ex-upload}/index.vue +0 -0
  36. /package/src/components/{xt-upload → ex-upload}/preview.vue +0 -0
@@ -124,6 +124,13 @@ module.exports = isThisHour
124
124
 
125
125
  /***/ }),
126
126
 
127
+ /***/ "0918":
128
+ /***/ (function(module, exports, __webpack_require__) {
129
+
130
+ // extracted by mini-css-extract-plugin
131
+
132
+ /***/ }),
133
+
127
134
  /***/ "0978":
128
135
  /***/ (function(module, exports, __webpack_require__) {
129
136
 
@@ -121175,17 +121182,6 @@ function startOfToday () {
121175
121182
  module.exports = startOfToday
121176
121183
 
121177
121184
 
121178
- /***/ }),
121179
-
121180
- /***/ "3cd7":
121181
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
121182
-
121183
- "use strict";
121184
- /* 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_index_vue_vue_type_style_index_0_id_279f5e29_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5ee4");
121185
- /* 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_index_vue_vue_type_style_index_0_id_279f5e29_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_index_vue_vue_type_style_index_0_id_279f5e29_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
121186
- /* unused harmony reexport * */
121187
-
121188
-
121189
121185
  /***/ }),
121190
121186
 
121191
121187
  /***/ "3eee":
@@ -121849,6 +121845,13 @@ function isSaturday (dirtyDate) {
121849
121845
  module.exports = isSaturday
121850
121846
 
121851
121847
 
121848
+ /***/ }),
121849
+
121850
+ /***/ "493c":
121851
+ /***/ (function(module, exports, __webpack_require__) {
121852
+
121853
+ // extracted by mini-css-extract-plugin
121854
+
121852
121855
  /***/ }),
121853
121856
 
121854
121857
  /***/ "4f67":
@@ -122153,20 +122156,6 @@ function getHours (dirtyDate) {
122153
122156
  module.exports = getHours
122154
122157
 
122155
122158
 
122156
- /***/ }),
122157
-
122158
- /***/ "5ee4":
122159
- /***/ (function(module, exports, __webpack_require__) {
122160
-
122161
- // extracted by mini-css-extract-plugin
122162
-
122163
- /***/ }),
122164
-
122165
- /***/ "5f72":
122166
- /***/ (function(module, exports) {
122167
-
122168
- module.exports = require("ElementUI");
122169
-
122170
122159
  /***/ }),
122171
122160
 
122172
122161
  /***/ "6254":
@@ -124424,6 +124413,17 @@ function endOfISOYear (dirtyDate) {
124424
124413
  module.exports = endOfISOYear
124425
124414
 
124426
124415
 
124416
+ /***/ }),
124417
+
124418
+ /***/ "8629":
124419
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
124420
+
124421
+ "use strict";
124422
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_2412b380_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9a3c");
124423
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_2412b380_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_2412b380_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
124424
+ /* unused harmony reexport * */
124425
+
124426
+
124427
124427
  /***/ }),
124428
124428
 
124429
124429
  /***/ "8902":
@@ -124604,13 +124604,6 @@ function getMilliseconds (dirtyDate) {
124604
124604
  module.exports = getMilliseconds
124605
124605
 
124606
124606
 
124607
- /***/ }),
124608
-
124609
- /***/ "8d72":
124610
- /***/ (function(module, exports, __webpack_require__) {
124611
-
124612
- // extracted by mini-css-extract-plugin
124613
-
124614
124607
  /***/ }),
124615
124608
 
124616
124609
  /***/ "902e":
@@ -124802,17 +124795,6 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
124802
124795
  }
124803
124796
 
124804
124797
 
124805
- /***/ }),
124806
-
124807
- /***/ "93f4":
124808
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
124809
-
124810
- "use strict";
124811
- /* 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_index_vue_vue_type_style_index_0_id_78d2b726_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("b49a");
124812
- /* 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_index_vue_vue_type_style_index_0_id_78d2b726_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_index_vue_vue_type_style_index_0_id_78d2b726_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
124813
- /* unused harmony reexport * */
124814
-
124815
-
124816
124798
  /***/ }),
124817
124799
 
124818
124800
  /***/ "942b":
@@ -125059,6 +125041,13 @@ function isThisISOYear (dirtyDate) {
125059
125041
  module.exports = isThisISOYear
125060
125042
 
125061
125043
 
125044
+ /***/ }),
125045
+
125046
+ /***/ "9a3c":
125047
+ /***/ (function(module, exports, __webpack_require__) {
125048
+
125049
+ // extracted by mini-css-extract-plugin
125050
+
125062
125051
  /***/ }),
125063
125052
 
125064
125053
  /***/ "9aaa":
@@ -125166,6 +125155,17 @@ module.exports = isThisMonth
125166
125155
  /* unused harmony reexport * */
125167
125156
 
125168
125157
 
125158
+ /***/ }),
125159
+
125160
+ /***/ "a0ef":
125161
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
125162
+
125163
+ "use strict";
125164
+ /* 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_index_vue_vue_type_style_index_0_id_f6bc1634_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d661");
125165
+ /* 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_index_vue_vue_type_style_index_0_id_f6bc1634_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_index_vue_vue_type_style_index_0_id_f6bc1634_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
125166
+ /* unused harmony reexport * */
125167
+
125168
+
125169
125169
  /***/ }),
125170
125170
 
125171
125171
  /***/ "a431":
@@ -125335,6 +125335,17 @@ function isPast (dirtyDate) {
125335
125335
  module.exports = isPast
125336
125336
 
125337
125337
 
125338
+ /***/ }),
125339
+
125340
+ /***/ "ab58":
125341
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
125342
+
125343
+ "use strict";
125344
+ /* 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_index_vue_vue_type_style_index_0_id_a28a77e4_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0918");
125345
+ /* 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_index_vue_vue_type_style_index_0_id_a28a77e4_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_index_vue_vue_type_style_index_0_id_a28a77e4_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
125346
+ /* unused harmony reexport * */
125347
+
125348
+
125338
125349
  /***/ }),
125339
125350
 
125340
125351
  /***/ "abd4":
@@ -125370,6 +125381,17 @@ function isEqual (dirtyLeftDate, dirtyRightDate) {
125370
125381
  module.exports = isEqual
125371
125382
 
125372
125383
 
125384
+ /***/ }),
125385
+
125386
+ /***/ "ac06":
125387
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
125388
+
125389
+ "use strict";
125390
+ /* 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_VirtualElTable_vue_vue_type_style_index_0_id_5eb34e1c_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("493c");
125391
+ /* 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_VirtualElTable_vue_vue_type_style_index_0_id_5eb34e1c_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_VirtualElTable_vue_vue_type_style_index_0_id_5eb34e1c_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
125392
+ /* unused harmony reexport * */
125393
+
125394
+
125373
125395
  /***/ }),
125374
125396
 
125375
125397
  /***/ "acc4":
@@ -125528,13 +125550,6 @@ function differenceInISOYears (dirtyDateLeft, dirtyDateRight) {
125528
125550
  module.exports = differenceInISOYears
125529
125551
 
125530
125552
 
125531
- /***/ }),
125532
-
125533
- /***/ "b49a":
125534
- /***/ (function(module, exports, __webpack_require__) {
125535
-
125536
- // extracted by mini-css-extract-plugin
125537
-
125538
125553
  /***/ }),
125539
125554
 
125540
125555
  /***/ "b4c7":
@@ -127041,6 +127056,13 @@ var LRU = (function () {
127041
127056
  /* harmony default export */ __webpack_exports__["a"] = (LRU);
127042
127057
 
127043
127058
 
127059
+ /***/ }),
127060
+
127061
+ /***/ "d661":
127062
+ /***/ (function(module, exports, __webpack_require__) {
127063
+
127064
+ // extracted by mini-css-extract-plugin
127065
+
127044
127066
  /***/ }),
127045
127067
 
127046
127068
  /***/ "d67a":
@@ -127326,17 +127348,6 @@ function subDays (dirtyDate, dirtyAmount) {
127326
127348
  module.exports = subDays
127327
127349
 
127328
127350
 
127329
- /***/ }),
127330
-
127331
- /***/ "e3c3":
127332
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
127333
-
127334
- "use strict";
127335
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_5100b648_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8d72");
127336
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_5100b648_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_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_ExPie_vue_vue_type_style_index_0_id_5100b648_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
127337
- /* unused harmony reexport * */
127338
-
127339
-
127340
127351
  /***/ }),
127341
127352
 
127342
127353
  /***/ "e3db":
@@ -128015,7 +128026,7 @@ __webpack_require__.r(__webpack_exports__);
128015
128026
  __webpack_require__.d(__webpack_exports__, "ExChart", function() { return /* reexport */ components_ex_chart; });
128016
128027
  __webpack_require__.d(__webpack_exports__, "createVirtualScrollData", function() { return /* reexport */ createVirtualScrollData; });
128017
128028
  __webpack_require__.d(__webpack_exports__, "virtualScrollColumns", function() { return /* reexport */ virtualScrollColumns; });
128018
- __webpack_require__.d(__webpack_exports__, "utils", function() { return /* reexport */ src_utils; });
128029
+ __webpack_require__.d(__webpack_exports__, "utils", function() { return /* reexport */ src_utils_0; });
128019
128030
  __webpack_require__.d(__webpack_exports__, "variables", function() { return /* reexport */ variables_export_default.a; });
128020
128031
  __webpack_require__.d(__webpack_exports__, "getConfig", function() { return /* reexport */ src_getConfig; });
128021
128032
  __webpack_require__.d(__webpack_exports__, "setConfig", function() { return /* reexport */ src_setConfig; });
@@ -128054,7 +128065,813 @@ var components = __webpack_require__("d67a");
128054
128065
  var variables_export = __webpack_require__("ad4d");
128055
128066
  var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_export);
128056
128067
 
128068
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/white.js
128069
+ /* harmony default export */ var white = ({
128070
+ color: ["#1890ff", "#37c3a4", "#29c0ce", "#6480D7", "#8cce6f", "#3a5dca", "#ffb74d"],
128071
+ backgroundColor: "#ffffff",
128072
+ textStyle: {
128073
+ fontFamily: "Microsoft YaHei, sans-serif"
128074
+ },
128075
+ title: {
128076
+ textStyle: {
128077
+ color: "#333",
128078
+ fontSize: 16
128079
+ },
128080
+ subtextStyle: {
128081
+ color: "#666666",
128082
+ fontSize: 12
128083
+ }
128084
+ },
128085
+ line: {
128086
+ itemStyle: {
128087
+ },
128088
+ lineStyle: {
128089
+ width: 2
128090
+ }
128091
+ },
128092
+ bar: {
128093
+ itemStyle: {
128094
+ borderRadius: 4
128095
+ }
128096
+ },
128097
+ pie: {
128098
+ roseType: "radius",
128099
+ label: {
128100
+ color: "#333"
128101
+ }
128102
+ },
128103
+ radar: {
128104
+ indicator: {
128105
+ color: "#666666"
128106
+ }
128107
+ },
128108
+ map: {
128109
+ label: {
128110
+ color: "#333"
128111
+ },
128112
+ itemStyle: {
128113
+ borderColor: "#fff"
128114
+ }
128115
+ },
128116
+ gauge: {
128117
+ axisLine: {
128118
+ lineStyle: {
128119
+ color: [[1, "#5470c6"]]
128120
+ }
128121
+ }
128122
+ },
128123
+ toolbox: {
128124
+ iconStyle: {
128125
+ borderColor: "#666666"
128126
+ }
128127
+ },
128128
+ xAxis: {
128129
+ axisLine: {
128130
+ lineStyle: {
128131
+ color: "#DFE9EE"
128132
+ }
128133
+ },
128134
+ axisTick: {
128135
+ lineStyle: {
128136
+ color: "#DFE9EE"
128137
+ },
128138
+ show: false
128139
+ }
128140
+ },
128141
+ yAxis: {
128142
+ axisLine: {
128143
+ lineStyle: {
128144
+ color: "#DFE9EE"
128145
+ }
128146
+ },
128147
+ axisTick: {
128148
+ lineStyle: {
128149
+ color: "#DFE9EE"
128150
+ }
128151
+ },
128152
+ splitLine: {
128153
+ show: true,
128154
+ lineStyle: {
128155
+ type: "dashed",
128156
+ color: "#DFE9EE"
128157
+ }
128158
+ }
128159
+ },
128160
+ splitArea: {
128161
+ areaStyle: {
128162
+ color: ["#f7f8fa", "#ffffff"]
128163
+ }
128164
+ },
128165
+ legend: {
128166
+ textStyle: {
128167
+ color: "#333333"
128168
+ }
128169
+ },
128170
+ tooltip: {
128171
+ borderWidth: 1,
128172
+ backgroundColor: "#ffffff",
128173
+ textStyle: {
128174
+ color: "#333333"
128175
+ },
128176
+ trigger: "axis"
128177
+ }
128178
+ });
128179
+
128180
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/dark.js
128181
+
128182
+
128183
+ /* harmony default export */ var dark = ({
128184
+ color: ["#0de7ff", "#a782ff", "#fcdd60", "#0de7ff", "#ffc5a1", "#6291ae", "#13ce66"],
128185
+ backgroundColor: "#000",
128186
+ textStyle: {
128187
+ fontFamily: "Microsoft YaHei, sans-serif"
128188
+ },
128189
+ title: {
128190
+ textStyle: {
128191
+ color: "#ffffff"
128192
+ },
128193
+ subtextStyle: {
128194
+ color: "#ffffff"
128195
+ }
128196
+ },
128197
+ line: {
128198
+ itemStyle: {
128199
+ },
128200
+ lineStyle: {
128201
+ width: 2
128202
+ }
128203
+ },
128204
+ bar: {
128205
+ itemStyle: {
128206
+ borderRadius: 4
128207
+ }
128208
+ },
128209
+ pie: {
128210
+ roseType: "radius",
128211
+ label: {
128212
+ color: "#ffffff"
128213
+ }
128214
+ },
128215
+ radar: {
128216
+ indicator: {
128217
+ color: "#ffffff"
128218
+ }
128219
+ },
128220
+ map: {
128221
+ label: {
128222
+ color: "#ffffff"
128223
+ },
128224
+ itemStyle: {
128225
+ borderColor: variables_export_default.a.xtColorBorder
128226
+ }
128227
+ },
128228
+ gauge: {
128229
+ axisLine: {
128230
+ lineStyle: {
128231
+ color: [[1, "#5470c6"]]
128232
+ }
128233
+ }
128234
+ },
128235
+ toolbox: {
128236
+ iconStyle: {
128237
+ borderColor: "#ffffff"
128238
+ }
128239
+ },
128240
+ axisLine: {
128241
+ lineStyle: {
128242
+ color: "#DCDFE6"
128243
+ }
128244
+ },
128245
+ axisTick: {
128246
+ lineStyle: {
128247
+ color: "#DCDFE6"
128248
+ }
128249
+ },
128250
+ splitLine: {
128251
+ lineStyle: {
128252
+ color: "#ebeef5"
128253
+ }
128254
+ },
128255
+ splitArea: {
128256
+ areaStyle: {
128257
+ color: ["#666666", "#666666"]
128258
+ }
128259
+ },
128260
+ legend: {
128261
+ textStyle: {
128262
+ color: "#ffffff"
128263
+ }
128264
+ },
128265
+ tooltip: {
128266
+ backgroundColor: variables_export_default.a.xtColorBgOverlay,
128267
+ borderColor: variables_export_default.a.xtColorBorder,
128268
+ borderWidth: 1,
128269
+ textStyle: {
128270
+ color: "#fff"
128271
+ }
128272
+ }
128273
+ });
128274
+
128275
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/blue.js
128276
+ /* harmony default export */ var blue = ({
128277
+ color: ["#2CDEB3", "#A17EE6", "#E57E40", "#409EFF"],
128278
+ backgroundColor: "#ffffff",
128279
+ textStyle: {
128280
+ fontFamily: "Microsoft YaHei, sans-serif"
128281
+ },
128282
+ title: {
128283
+ textStyle: {
128284
+ color: "#333"
128285
+ },
128286
+ subtextStyle: {
128287
+ color: "#666666"
128288
+ }
128289
+ },
128290
+ line: {
128291
+ itemStyle: {
128292
+ },
128293
+ lineStyle: {
128294
+ width: 2
128295
+ }
128296
+ },
128297
+ bar: {
128298
+ itemStyle: {
128299
+ borderRadius: 4
128300
+ }
128301
+ },
128302
+ pie: {
128303
+ roseType: "radius",
128304
+ label: {
128305
+ color: "#333"
128306
+ }
128307
+ },
128308
+ radar: {
128309
+ indicator: {
128310
+ color: "#666666"
128311
+ }
128312
+ },
128313
+ map: {
128314
+ label: {
128315
+ color: "#333"
128316
+ },
128317
+ itemStyle: {
128318
+ borderColor: "#fff"
128319
+ }
128320
+ },
128321
+ gauge: {
128322
+ axisLine: {
128323
+ lineStyle: {
128324
+ color: [[1, "#5470c6"]]
128325
+ }
128326
+ }
128327
+ },
128328
+ toolbox: {
128329
+ iconStyle: {
128330
+ borderColor: "#666666"
128331
+ }
128332
+ },
128333
+ axisLine: {
128334
+ lineStyle: {
128335
+ color: "#DCDFE6"
128336
+ }
128337
+ },
128338
+ axisTick: {
128339
+ lineStyle: {
128340
+ color: "#DCDFE6"
128341
+ }
128342
+ },
128343
+ splitLine: {
128344
+ lineStyle: {
128345
+ color: "#ebeef5"
128346
+ }
128347
+ },
128348
+ splitArea: {
128349
+ areaStyle: {
128350
+ color: ["#f7f8fa", "#ffffff"]
128351
+ }
128352
+ },
128353
+ legend: {
128354
+ textStyle: {
128355
+ color: "#666"
128356
+ }
128357
+ },
128358
+ tooltip: {
128359
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128360
+ borderColor: "#DCDFE6",
128361
+ borderWidth: 1,
128362
+ textStyle: {
128363
+ color: "#333"
128364
+ }
128365
+ }
128366
+ });
128367
+
128368
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/starry.js
128369
+ /* harmony default export */ var starry = ({
128370
+ color: [
128371
+ "#1685a9", // 石青
128372
+ "#21a675", // 松柏绿
128373
+ "#1bd1a5", // 飞燕草蓝
128374
+ "#8c4356", // 绛紫
128375
+ "#0dafc6", // 孔雀蓝
128376
+ "#4b5cc4", // 宝蓝
128377
+ "#758a99", // 墨灰
128378
+ "#cca4e3", // 丁香色
128379
+ "#205277", // 靛青色
128380
+ "#d9b611", // 秋香色
128381
+ "#ff8c31", // 杏红
128382
+ "#9d2933", // 胭脂
128383
+ "#0288c5", // 浅靛青蓝
128384
+ "#44cef6" // 天蓝色
128385
+ ],
128386
+ backgroundColor: "#ffffff",
128387
+ textStyle: {
128388
+ fontFamily: "Microsoft YaHei, sans-serif"
128389
+ },
128390
+ title: {
128391
+ textStyle: {
128392
+ color: "#333"
128393
+ },
128394
+ subtextStyle: {
128395
+ color: "#666666"
128396
+ }
128397
+ },
128398
+ line: {
128399
+ itemStyle: {
128400
+ },
128401
+ lineStyle: {
128402
+ width: 2
128403
+ }
128404
+ },
128405
+ bar: {
128406
+ itemStyle: {
128407
+ borderRadius: 4
128408
+ }
128409
+ },
128410
+ pie: {
128411
+ roseType: "radius",
128412
+ label: {
128413
+ color: "#333"
128414
+ }
128415
+ },
128416
+ radar: {
128417
+ indicator: {
128418
+ color: "#666666"
128419
+ }
128420
+ },
128421
+ map: {
128422
+ label: {
128423
+ color: "#333"
128424
+ },
128425
+ itemStyle: {
128426
+ borderColor: "#fff"
128427
+ }
128428
+ },
128429
+ gauge: {
128430
+ axisLine: {
128431
+ lineStyle: {
128432
+ color: [[1, "#5470c6"]]
128433
+ }
128434
+ }
128435
+ },
128436
+ toolbox: {
128437
+ iconStyle: {
128438
+ borderColor: "#666666"
128439
+ }
128440
+ },
128441
+ axisLine: {
128442
+ lineStyle: {
128443
+ color: "#DCDFE6"
128444
+ }
128445
+ },
128446
+ axisTick: {
128447
+ lineStyle: {
128448
+ color: "#DCDFE6"
128449
+ }
128450
+ },
128451
+ splitLine: {
128452
+ lineStyle: {
128453
+ color: "#ebeef5"
128454
+ }
128455
+ },
128456
+ splitArea: {
128457
+ areaStyle: {
128458
+ color: ["#f7f8fa", "#ffffff"]
128459
+ }
128460
+ },
128461
+ legend: {
128462
+ textStyle: {
128463
+ color: "#666"
128464
+ }
128465
+ },
128466
+ tooltip: {
128467
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128468
+ borderColor: "#DCDFE6",
128469
+ borderWidth: 1,
128470
+ textStyle: {
128471
+ color: "#333"
128472
+ }
128473
+ }
128474
+ });
128475
+
128476
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/orange.js
128477
+ /* harmony default export */ var orange = ({
128478
+ color: ["#e69419", "#A5b4da", "#F8792C", "#97bfb4", "#de747b", "#d6bac0", "#e62737", "#f35969", "#f1ccb0", "#b7394e", "#fe9c1c2"],
128479
+ backgroundColor: "#ffffff",
128480
+ textStyle: {
128481
+ fontFamily: "Microsoft YaHei, sans-serif"
128482
+ },
128483
+ title: {
128484
+ textStyle: {
128485
+ color: "#333"
128486
+ },
128487
+ subtextStyle: {
128488
+ color: "#666666"
128489
+ }
128490
+ },
128491
+ line: {
128492
+ itemStyle: {
128493
+ color: "#e69419"
128494
+ },
128495
+ lineStyle: {
128496
+ width: 2
128497
+ }
128498
+ },
128499
+ bar: {
128500
+ itemStyle: {
128501
+ borderRadius: 4
128502
+ }
128503
+ },
128504
+ pie: {
128505
+ roseType: "radius",
128506
+ label: {
128507
+ color: "#333"
128508
+ }
128509
+ },
128510
+ radar: {
128511
+ indicator: {
128512
+ color: "#666666"
128513
+ }
128514
+ },
128515
+ map: {
128516
+ label: {
128517
+ color: "#333"
128518
+ },
128519
+ itemStyle: {
128520
+ borderColor: "#fff"
128521
+ }
128522
+ },
128523
+ gauge: {
128524
+ axisLine: {
128525
+ lineStyle: {
128526
+ color: [[1, "#5470c6"]]
128527
+ }
128528
+ }
128529
+ },
128530
+ toolbox: {
128531
+ iconStyle: {
128532
+ borderColor: "#666666"
128533
+ }
128534
+ },
128535
+ axisLine: {
128536
+ lineStyle: {
128537
+ color: "#DCDFE6"
128538
+ }
128539
+ },
128540
+ axisTick: {
128541
+ lineStyle: {
128542
+ color: "#DCDFE6"
128543
+ }
128544
+ },
128545
+ splitLine: {
128546
+ lineStyle: {
128547
+ color: "#ebeef5"
128548
+ }
128549
+ },
128550
+ splitArea: {
128551
+ areaStyle: {
128552
+ color: ["#f7f8fa", "#ffffff"]
128553
+ }
128554
+ },
128555
+ legend: {
128556
+ textStyle: {
128557
+ color: "#666"
128558
+ }
128559
+ },
128560
+ tooltip: {
128561
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128562
+ borderColor: "#DCDFE6",
128563
+ borderWidth: 1,
128564
+ textStyle: {
128565
+ color: "#333"
128566
+ }
128567
+ }
128568
+ });
128569
+
128570
+ // CONCATENATED MODULE: ./src/components/ex-chart/utils.js
128571
+
128572
+
128573
+
128574
+
128575
+
128576
+
128577
+ const themeKeys = {
128578
+ "default": white,
128579
+ "white": white,
128580
+ "dark": dark,
128581
+ "blue": blue,
128582
+ "starry": starry,
128583
+ "orange": orange
128584
+ };
128585
+
128586
+ // echarts 仅在客户端加载,避免 SSR 编译/渲染报错
128587
+ let echarts = null;
128588
+
128589
+ function getEcharts() {
128590
+ if (!echarts && typeof window !== 'undefined') {
128591
+ try {
128592
+ echarts = __webpack_require__("313e");
128593
+ // 注册所有主题
128594
+ for (const key in themeKeys) {
128595
+ echarts.registerTheme(key, themeKeys[key]);
128596
+ }
128597
+ } catch (e) {
128598
+ console.warn('[ExChart] echarts 加载失败:', e.message);
128599
+ }
128600
+ }
128601
+ return echarts;
128602
+ }
128603
+
128604
+ // 字体大小配置
128605
+ const fontSizeMap = {
128606
+ small: {
128607
+ title: 14,
128608
+ subtitle: 11,
128609
+ legend: 11,
128610
+ axisLabel: 10,
128611
+ tooltip: 11,
128612
+ label: 11
128613
+ },
128614
+ medium: {
128615
+ title: 16,
128616
+ subtitle: 12,
128617
+ legend: 12,
128618
+ axisLabel: 12,
128619
+ tooltip: 12,
128620
+ label: 12
128621
+ },
128622
+ large: {
128623
+ title: 18,
128624
+ subtitle: 14,
128625
+ legend: 14,
128626
+ axisLabel: 14,
128627
+ tooltip: 14,
128628
+ label: 14
128629
+ }
128630
+ };
128631
+
128632
+ function EchartsUtil() {}
128633
+
128634
+ EchartsUtil.currentTheme = "default";
128635
+ EchartsUtil.currentSize = "medium";
128636
+ EchartsUtil.inverse = false;
128637
+
128638
+ EchartsUtil.EchartsUtil = {
128639
+ backgroundColor: "transparent",
128640
+ tooltip: {
128641
+ trigger: "axis",
128642
+ borderWidth: 1
128643
+ },
128644
+ legend: {
128645
+ right: 20,
128646
+ top: 0,
128647
+ show: true,
128648
+ textStyle: {
128649
+ fontSize: 12
128650
+ }
128651
+ },
128652
+ grid: {
128653
+ top: "25%",
128654
+ left: "40",
128655
+ right: "15",
128656
+ bottom: "40"
128657
+ },
128658
+ xAxis: {
128659
+ type: "category",
128660
+ boundaryGap: false,
128661
+ axisTick: {
128662
+ show: true,
128663
+ length: 4
128664
+ },
128665
+ axisLabel: {
128666
+ fontSize: 12,
128667
+ interval: 0,
128668
+ formatter: function(value) {
128669
+ return !this.reverse && this.longLable ? value.replace(new RegExp(`(.{${this.longLableSplitNum}})`, "g"), `$1\n`) : value;
128670
+ }
128671
+ }
128672
+ },
128673
+ yAxis: {
128674
+ type: "value",
128675
+ axisTick: {
128676
+ show: false
128677
+ },
128678
+ min: null,
128679
+ max: null,
128680
+ axisLabel: {
128681
+ show: false
128682
+ },
128683
+ splitLine: {
128684
+ lineStyle: {
128685
+ type: "dashed",
128686
+ width: 1
128687
+ }
128688
+ }
128689
+ }
128690
+ };
128691
+
128692
+ EchartsUtil.chartInstanceList = [];
128693
+
128694
+ EchartsUtil.mergeOptions = function(themeOption, customOption) {
128695
+ return Object.assign({}, this.baseOption, themeOption, customOption);
128696
+ };
128697
+
128698
+ // 根据字体大小调整主题配置
128699
+ EchartsUtil.applyFontSize = function(themeOption, size) {
128700
+ const fontSizeConfig = fontSizeMap[size] || fontSizeMap.medium;
128701
+
128702
+ const result = JSON.parse(JSON.stringify(themeOption));
128703
+
128704
+ // 调整标题字体大小
128705
+ if (result.title && result.title.textStyle) {
128706
+ result.title.textStyle.fontSize = fontSizeConfig.title;
128707
+ }
128708
+ if (result.title && result.title.subtextStyle) {
128709
+ result.title.subtextStyle.fontSize = fontSizeConfig.subtitle;
128710
+ }
128711
+
128712
+ // 调整图例字体大小
128713
+ if (result.legend && result.legend.textStyle) {
128714
+ result.legend.textStyle.fontSize = fontSizeConfig.legend;
128715
+ }
128716
+
128717
+ // 调整提示框字体大小
128718
+ if (result.tooltip && result.tooltip.textStyle) {
128719
+ result.tooltip.textStyle.fontSize = fontSizeConfig.tooltip;
128720
+ }
128721
+
128722
+ // 调整饼图标签字体大小
128723
+ if (result.pie && result.pie.label) {
128724
+ if (typeof result.pie.label === 'object') {
128725
+ result.pie.label.fontSize = fontSizeConfig.label;
128726
+ }
128727
+ }
128728
+
128729
+ // 调整雷达图指示器字体大小
128730
+ if (result.radar && result.radar.indicator) {
128731
+ if (typeof result.radar.indicator === 'object' && result.radar.indicator.textStyle) {
128732
+ result.radar.indicator.textStyle.fontSize = fontSizeConfig.label;
128733
+ }
128734
+ }
128735
+
128736
+ // 调整地图标签字体大小
128737
+ if (result.map && result.map.label) {
128738
+ if (typeof result.map.label === 'object') {
128739
+ result.map.label.fontSize = fontSizeConfig.label;
128740
+ }
128741
+ }
128742
+
128743
+ return result;
128744
+ };
128745
+
128746
+ EchartsUtil.init = function(dom, theme, customOption, size) {
128747
+ const ec = getEcharts();
128748
+ // SSR 环境下忽略初始化
128749
+ if (!ec || !dom) return null;
128750
+
128751
+ theme = theme || "default";
128752
+ size = size || "medium";
128753
+ customOption = customOption || {};
128754
+
128755
+ const useTheme = this.currentTheme || theme;
128756
+ const useSize = this.currentSize || size;
128757
+
128758
+ this.currentTheme = useTheme;
128759
+ this.currentSize = useSize;
128760
+
128761
+ let themeOption = themeKeys[useTheme];
128762
+ // 应用字体大小配置
128763
+ themeOption = this.applyFontSize(themeOption, useSize);
128764
+
128765
+ const option = this.mergeOptions(themeOption, customOption);
128766
+
128767
+ const chart = ec.init(dom, useTheme);
128768
+ chart.setOption(option, true);
128769
+
128770
+ this.chartInstanceList.push({
128771
+ dom,
128772
+ chart,
128773
+ customOption,
128774
+ size: useSize
128775
+ });
128776
+
128777
+ this.bindResize(chart);
128778
+ return chart;
128779
+ };
128780
+
128781
+ EchartsUtil.changeSingleTheme = function(dom, chartIns, customOption, newTheme) {
128782
+ const ec = getEcharts();
128783
+ if (!ec || !dom || !chartIns) return;
128784
+
128785
+ customOption = customOption || {};
128786
+ newTheme = newTheme || "default";
128787
+
128788
+ this.currentTheme = newTheme;
128789
+ chartIns.dispose();
128790
+
128791
+ const newChart = ec.init(dom, newTheme, customOption);
128792
+
128793
+ const item = this.chartInstanceList.find(function(v) {
128794
+ return v.dom === dom;
128795
+ });
128796
+
128797
+ if (item) {
128798
+ item.chart = newChart;
128799
+ }
128800
+
128801
+ return newChart;
128802
+ };
128803
+
128804
+ EchartsUtil.changeAllTheme = function(newTheme, newSize) {
128805
+ const ec = getEcharts();
128806
+ if (!ec || !newTheme) return;
128807
+
128808
+ this.currentTheme = newTheme;
128809
+ // 如果传入了新的 size,则更新全局 size
128810
+ if (newSize) {
128811
+ this.currentSize = newSize;
128812
+ }
128813
+
128814
+ this.chartInstanceList.forEach(function(item) {
128815
+ const dom = item.dom;
128816
+ const chart = item.chart;
128817
+ const customOption = item.customOption;
128818
+ // 使用图表自己的 size,如果没有则使用全局 size
128819
+ const useSize = item.size || EchartsUtil.currentSize;
128820
+
128821
+ if (chart) {
128822
+ chart.dispose();
128823
+ }
128824
+
128825
+ const newChart = ec.init(dom, newTheme);
128826
+ let themeOption = themeKeys[newTheme];
128827
+ // 应用字体大小配置
128828
+ themeOption = EchartsUtil.applyFontSize(themeOption, useSize);
128829
+ const option = EchartsUtil.mergeOptions(themeOption, customOption);
128830
+
128831
+ newChart.setOption(option, true);
128832
+ item.chart = newChart;
128833
+ // 更新图表的 size 记录
128834
+ item.size = useSize;
128835
+ EchartsUtil.bindResize(newChart);
128836
+ });
128837
+ };
128838
+
128839
+ EchartsUtil.bindResize = function(chartIns) {
128840
+ if (!chartIns || chartIns.resizeLocked) return;
128841
+
128842
+ window.addEventListener("resize", function() {
128843
+ chartIns.resize();
128844
+ });
128845
+
128846
+ chartIns._resizeLocked = true;
128847
+ };
128848
+
128849
+ EchartsUtil.destroy = function(chartIns) {
128850
+ if (chartIns) {
128851
+ chartIns.dispose();
128852
+ }
128853
+
128854
+ this.chartInstanceList = this.chartInstanceList.filter(function(item) {
128855
+ return item.chart !== chartIns;
128856
+ });
128857
+ };
128858
+
128859
+ EchartsUtil.destroyAll = function() {
128860
+ this.chartInstanceList.forEach(function(item) {
128861
+ if (item.chart) {
128862
+ item.chart.dispose();
128863
+ }
128864
+ });
128865
+
128866
+ this.chartInstanceList = [];
128867
+ };
128868
+
128869
+ /* harmony default export */ var utils = (EchartsUtil);
128870
+
128871
+
128872
+
128057
128873
  // CONCATENATED MODULE: ./src/utils/index.js
128874
+
128058
128875
  // 默认配置
128059
128876
  const defaultConfig = {
128060
128877
  theme: 'white',
@@ -128101,7 +128918,7 @@ const setConfig = function(config) {
128101
128918
  }
128102
128919
 
128103
128920
 
128104
- // 设置主题
128921
+ // 设置主题 并更新图表主题
128105
128922
  const setTheme = function(theme) {
128106
128923
  const validThemes = ['white', 'dark']
128107
128924
  if (!validThemes.includes(theme)) {
@@ -128116,9 +128933,13 @@ const setTheme = function(theme) {
128116
128933
  if (theme === 'dark') {
128117
128934
  root.setAttribute('data-theme', 'dark')
128118
128935
  } else {
128119
- root.removeAttribute('data-theme')
128936
+ root.setAttribute('data-theme', theme)
128120
128937
  }
128121
128938
 
128939
+ // 更新图表主题
128940
+ utils.changeAllTheme(currentConfig.theme, currentConfig.size)
128941
+ console.log('更新图表主题')
128942
+
128122
128943
  emitConfigChange('theme', theme)
128123
128944
  }
128124
128945
 
@@ -128132,6 +128953,10 @@ const setSize = function(size) {
128132
128953
 
128133
128954
  currentConfig.size = size
128134
128955
  document.documentElement.setAttribute('data-size', size)
128956
+ // 更新图表主题
128957
+ utils.changeAllTheme(currentConfig.theme, currentConfig.size)
128958
+ console.log('更新图表字体')
128959
+
128135
128960
  emitConfigChange('size', size)
128136
128961
  }
128137
128962
 
@@ -128236,7 +129061,7 @@ const onConfigChange = function(listener) {
128236
129061
  }
128237
129062
  }
128238
129063
 
128239
- /* harmony default export */ var utils = ({
129064
+ /* harmony default export */ var src_utils = ({
128240
129065
  setTheme,
128241
129066
  setSize,
128242
129067
  setPrimaryColor,
@@ -128249,8 +129074,8 @@ const onConfigChange = function(listener) {
128249
129074
  onConfigChange
128250
129075
  });
128251
129076
 
128252
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=10eba8a7
128253
- var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:"el-button xt-button",class:[
129077
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-button/index.vue?vue&type=template&id=02fecd1e
129078
+ var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:"xt-button",class:[
128254
129079
  _vm.type ?'xt-button--' + _vm.type: '',
128255
129080
  _vm.size ? 'xt-button--' + _vm.size : '',
128256
129081
  {
@@ -128263,7 +129088,7 @@ var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{
128263
129088
  var staticRenderFns = []
128264
129089
 
128265
129090
 
128266
- // CONCATENATED MODULE: ./src/components/xt-button/index.vue?vue&type=template&id=10eba8a7
129091
+ // CONCATENATED MODULE: ./src/components/xt-button/index.vue?vue&type=template&id=02fecd1e
128267
129092
 
128268
129093
  // 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
128269
129094
 
@@ -128278,7 +129103,7 @@ var staticRenderFns = []
128278
129103
  size: {
128279
129104
  type: String,
128280
129105
  default: '',
128281
- validator: (val) => ['', 'large', 'medium', 'small', 'mini'].includes(val)
129106
+ validator: (val) => ['', 'large', 'medium', 'small'].includes(val)
128282
129107
  },
128283
129108
  plain: {
128284
129109
  type: Boolean,
@@ -128595,71 +129420,29 @@ var xt_card_component = normalizeComponent(
128595
129420
  // CONCATENATED MODULE: ./src/components/xt-card/index.js
128596
129421
 
128597
129422
  /* harmony default export */ var components_xt_card = (xt_card);
128598
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=4f375226
128599
- var xt_card_itemvue_type_template_id_4f375226_render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.iconType=='border')?_c('FlexBox',{staticClass:"xt-card-item is-border",class:[_vm.iconType=='border'?`is-${_vm.type}`:''],style:(_vm.cardItemStyle),attrs:{"content":"between"}},[(_vm.title)?_c('span',{staticClass:"item__label"},[_vm._t("label",function(){return [_vm._v(_vm._s(_vm.label))]})],2):_vm._e(),_c('span',{staticClass:"item__value"},[_vm._t("value",function(){return [_vm._v(_vm._s(_vm.value))]})],2),_c('span',{staticClass:"item__unit"},[_vm._t("unit",function(){return [_vm._v(_vm._s(_vm.unit))]})],2)]):_c('FlexBox',{staticClass:"xt-card-item",attrs:{"direction":_vm.direction,"content":_vm.contentAlign}},[_vm._t("icon",function(){return [_c('el-button',{attrs:{"type":_vm.type,"circle":_vm.circle,"round":_vm.round,"plain":"","icon":_vm.icon}})]}),_c('div',{staticClass:"item__value"},[_c('span',{staticClass:"value",style:(_vm.valueStyle)},[_vm._t("value",function(){return [_vm._v(_vm._s(_vm.label))]})],2),_c('div',{staticClass:"unit"},[_vm._v(_vm._s(_vm.value))])])],2)
129423
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=b2553886
129424
+ var xt_card_itemvue_type_template_id_b2553886_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%"}},[_c('xt-text',{attrs:{"size":"extra-large","type":_vm.type}},[_c('i',{staticClass:"el-icon-user"})])],1)])],1)
128600
129425
  }
128601
- var xt_card_itemvue_type_template_id_4f375226_staticRenderFns = []
129426
+ var xt_card_itemvue_type_template_id_b2553886_staticRenderFns = []
128602
129427
 
128603
129428
 
128604
- // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=4f375226
129429
+ // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=b2553886
128605
129430
 
128606
129431
  // 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-card-item/index.vue?vue&type=script&lang=js
128607
129432
 
128608
-
128609
129433
  /* harmony default export */ var xt_card_itemvue_type_script_lang_js = ({
128610
- name: "XtCardItem",
128611
- components: {
128612
- FlexBox: xt_flex_box
128613
- },
128614
- props: {
128615
- iconType: { default: "border" },
128616
- type: { default: "primary" },
128617
- label: {},
128618
- value: {},
128619
- unit: {},
128620
- icon: {},
128621
- iconAt: { default: "right" },
128622
- color: {
128623
- type: String,
128624
- default: ''
128625
- }
128626
- },
128627
- data() {
128628
- return {
128629
- circle: false,
128630
- round: false
128631
- }
128632
- },
128633
- computed: {
128634
- contentAlign() {
128635
- return this.iconAt == 'center' ? 'center' : 'start'
128636
- },
128637
- direction() {
128638
- const iconAtMap = {
128639
- left: 'row',
128640
- right: 'row-reverse',
128641
- top: 'column',
128642
- bottom: 'column-reverse'
128643
- }
128644
- return iconAtMap[this.iconAt]
128645
- },
128646
- cardItemStyle() {
128647
- if (this.iconType === 'border' && this.type === 'primary' && this.color) {
128648
- return {
128649
- '--xt-card-item-color': this.color
128650
- }
128651
- }
128652
- return {}
129434
+ name: "XtCardItem",
129435
+ props: {
129436
+ type: { type: String, default: "primary" },
129437
+ title: { type: String, default: '' },
129438
+ diff: { type: Number, default: 0 },
129439
+ value: { type: Number, default: 0 },
129440
+ change: { type: Number, default: 0 },
128653
129441
  },
128654
- valueStyle() {
128655
- if (this.iconType !== 'border' && this.type === 'primary' && this.color) {
129442
+ data() {
128656
129443
  return {
128657
- color: this.color
128658
129444
  }
128659
- }
128660
- return {}
128661
129445
  }
128662
- }
128663
129446
  });
128664
129447
 
128665
129448
  // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=script&lang=js
@@ -128674,8 +129457,8 @@ var xt_card_itemvue_type_template_id_4f375226_staticRenderFns = []
128674
129457
 
128675
129458
  var xt_card_item_component = normalizeComponent(
128676
129459
  components_xt_card_itemvue_type_script_lang_js,
128677
- xt_card_itemvue_type_template_id_4f375226_render,
128678
- xt_card_itemvue_type_template_id_4f375226_staticRenderFns,
129460
+ xt_card_itemvue_type_template_id_b2553886_render,
129461
+ xt_card_itemvue_type_template_id_b2553886_staticRenderFns,
128679
129462
  false,
128680
129463
  null,
128681
129464
  null,
@@ -128689,6 +129472,7 @@ var xt_card_item_component = normalizeComponent(
128689
129472
  /* harmony default export */ var components_xt_card_item = (xt_card_item);
128690
129473
  // 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
128691
129474
 
129475
+
128692
129476
  /* harmony default export */ var xt_config_providervue_type_script_lang_js = ({
128693
129477
  name: 'XtConfigProvider',
128694
129478
  inheritAttrs: false,
@@ -128763,9 +129547,9 @@ var xt_card_item_component = normalizeComponent(
128763
129547
  props: {
128764
129548
  theme: {
128765
129549
  type: String,
128766
- default: 'light',
129550
+ default: 'white',
128767
129551
  validator: (value) => {
128768
- return ['light', 'dark', 'auto'].includes(value)
129552
+ return ['white', 'dark', 'auto'].includes(value)
128769
129553
  }
128770
129554
  },
128771
129555
  size: {
@@ -128829,9 +129613,9 @@ var xt_card_item_component = normalizeComponent(
128829
129613
  }
128830
129614
 
128831
129615
  const sizeMap = {
128832
- small: '12px',
128833
- medium: '14px',
128834
- large: '16px'
129616
+ small: '14px',
129617
+ medium: '16px',
129618
+ large: '18px'
128835
129619
  }
128836
129620
  if (sizeMap[this.size]) {
128837
129621
  result['--xt-font-size-base'] = sizeMap[this.size]
@@ -128998,6 +129782,9 @@ var xt_card_item_component = normalizeComponent(
128998
129782
 
128999
129783
  // 设置 data-theme 属性
129000
129784
  element.setAttribute('data-theme', this.theme)
129785
+
129786
+ // 更新图表颜色
129787
+ utils.changeAllTheme(this.theme, this.size, this.primaryColor)
129001
129788
 
129002
129789
  // 触发主题改变钩子(当主题实际发生变化时)
129003
129790
  if (prevTheme !== this.theme && typeof this.onThemeChange === 'function') {
@@ -129040,8 +129827,8 @@ var xt_card_item_component = normalizeComponent(
129040
129827
 
129041
129828
  // CONCATENATED MODULE: ./src/components/xt-config-provider/index.vue?vue&type=script&lang=js
129042
129829
  /* harmony default export */ var components_xt_config_providervue_type_script_lang_js = (xt_config_providervue_type_script_lang_js);
129043
- // EXTERNAL MODULE: ./src/components/xt-config-provider/index.vue?vue&type=style&index=0&id=279f5e29&prod&scoped=true&lang=css
129044
- var xt_config_providervue_type_style_index_0_id_279f5e29_prod_scoped_true_lang_css = __webpack_require__("3cd7");
129830
+ // EXTERNAL MODULE: ./src/components/xt-config-provider/index.vue?vue&type=style&index=0&id=a28a77e4&prod&scoped=true&lang=css
129831
+ var xt_config_providervue_type_style_index_0_id_a28a77e4_prod_scoped_true_lang_css = __webpack_require__("ab58");
129045
129832
 
129046
129833
  // CONCATENATED MODULE: ./src/components/xt-config-provider/index.vue
129047
129834
  var xt_config_provider_render, xt_config_provider_staticRenderFns
@@ -129058,7 +129845,7 @@ var xt_config_provider_component = normalizeComponent(
129058
129845
  xt_config_provider_staticRenderFns,
129059
129846
  false,
129060
129847
  null,
129061
- "279f5e29",
129848
+ "a28a77e4",
129062
129849
  null
129063
129850
 
129064
129851
  )
@@ -129068,18 +129855,18 @@ var xt_config_provider_component = normalizeComponent(
129068
129855
 
129069
129856
  /* harmony default export */ var components_xt_config_provider = (xt_config_provider);
129070
129857
 
129071
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=2b4328b0
129072
- var xt_textvue_type_template_id_2b4328b0_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-text",class:[
129858
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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
129859
+ var xt_textvue_type_template_id_7df75bea_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-text",class:[
129073
129860
  _vm.type ? 'xt-text--' + _vm.type : '',
129074
129861
  'xt-text--' + _vm.size,
129075
129862
  { 'xt-text--bold': _vm.bold },
129076
- { 'xt-text--money': _vm.money }
129077
- ],style:(_vm.customStyle)},[_vm._t("default",function(){return [(_vm.money && _vm.displayValue !== undefined)?[_vm._v(_vm._s(_vm.displayValue))]:_vm._e()]})],2)
129863
+ { 'xt-text--money': _vm.format === 'money' }
129864
+ ],style:(_vm.customStyle)},[_vm._t("prefix",function(){return [_vm._v(_vm._s(_vm.prefix))]}),_vm._t("default",function(){return [(_vm.formattedValue !== undefined)?[_vm._v(_vm._s(_vm.formattedValue))]:_vm._e()]}),_vm._t("suffix",function(){return [_vm._v(_vm._s(_vm.suffix))]})],2)
129078
129865
  }
129079
- var xt_textvue_type_template_id_2b4328b0_staticRenderFns = []
129866
+ var xt_textvue_type_template_id_7df75bea_staticRenderFns = []
129080
129867
 
129081
129868
 
129082
- // CONCATENATED MODULE: ./src/components/xt-text/index.vue?vue&type=template&id=2b4328b0
129869
+ // CONCATENATED MODULE: ./src/components/xt-text/index.vue?vue&type=template&id=7df75bea
129083
129870
 
129084
129871
  // 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-text/index.vue?vue&type=script&lang=js
129085
129872
 
@@ -129108,7 +129895,15 @@ var xt_textvue_type_template_id_2b4328b0_staticRenderFns = []
129108
129895
  type: [String, Number],
129109
129896
  default: ''
129110
129897
  },
129111
- // 金额格式化相关属性
129898
+
129899
+ // 格式化模式:normal 普通 | thousand 千分位 | money 金额
129900
+ format: {
129901
+ type: String,
129902
+ default: 'normal',
129903
+ validator: (val) => ['normal', 'thousand', 'money'].includes(val)
129904
+ },
129905
+
129906
+ // 兼容旧属性 money(老项目继续使用)
129112
129907
  money: {
129113
129908
  type: Boolean,
129114
129909
  default: false
@@ -129145,6 +129940,11 @@ var xt_textvue_type_template_id_2b4328b0_staticRenderFns = []
129145
129940
  }
129146
129941
  },
129147
129942
  computed: {
129943
+ // 兼容旧 money 属性:如果传了 money=true,自动切为金额模式
129944
+ realFormat() {
129945
+ return this.money ? 'money' : this.format
129946
+ },
129947
+
129148
129948
  customStyle() {
129149
129949
  const style = {}
129150
129950
  if (this.letterSpacing) {
@@ -129152,39 +129952,53 @@ var xt_textvue_type_template_id_2b4328b0_staticRenderFns = []
129152
129952
  }
129153
129953
  return style
129154
129954
  },
129155
- displayValue() {
129156
- if (!this.money || this.value === '' || this.value === undefined || this.value === null) {
129955
+
129956
+ formattedValue() {
129957
+ const fmt = this.realFormat
129958
+ const { value } = this
129959
+
129960
+ if (value === '' || value === undefined || value === null) {
129157
129961
  return undefined
129158
129962
  }
129159
-
129160
- const numValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value
129161
-
129963
+
129964
+ const numValue = typeof value === 'string' ? parseFloat(value) : value
129162
129965
  if (isNaN(numValue)) {
129163
- return this.value
129966
+ return value
129164
129967
  }
129165
-
129968
+
129166
129969
  try {
129167
- const formatter = new Intl.NumberFormat(this.locale, {
129168
- style: 'currency',
129169
- currency: this.currency,
129170
- minimumFractionDigits: this.decimals,
129171
- maximumFractionDigits: this.decimals,
129172
- signDisplay: this.showSign ? 'always' : 'auto'
129173
- })
129174
-
129175
- let result = formatter.format(numValue)
129176
-
129177
- // 处理前缀和后缀
129178
- if (this.prefix) {
129179
- result = this.prefix + result
129180
- }
129181
- if (this.suffix) {
129182
- result = result + this.suffix
129970
+ let result = ''
129971
+ const signOpt = this.showSign ? 'always' : 'auto'
129972
+
129973
+ switch (fmt) {
129974
+ // 千分位格式化(纯数字)
129975
+ case 'thousand':
129976
+ result = new Intl.NumberFormat(this.locale, {
129977
+ minimumFractionDigits: this.decimals,
129978
+ maximumFractionDigits: this.decimals,
129979
+ signDisplay: signOpt
129980
+ }).format(numValue)
129981
+ break
129982
+
129983
+ // 金额格式化(原有逻辑)
129984
+ case 'money':
129985
+ result = new Intl.NumberFormat(this.locale, {
129986
+ style: 'currency',
129987
+ currency: this.currency,
129988
+ minimumFractionDigits: this.decimals,
129989
+ maximumFractionDigits: this.decimals,
129990
+ signDisplay: signOpt
129991
+ }).format(numValue)
129992
+ break
129993
+
129994
+ // 普通文本,直接返回原值
129995
+ default:
129996
+ return undefined
129183
129997
  }
129184
-
129998
+
129185
129999
  return result
129186
130000
  } catch (e) {
129187
- return this.value
130001
+ return value
129188
130002
  }
129189
130003
  }
129190
130004
  }
@@ -129202,8 +130016,8 @@ var xt_textvue_type_template_id_2b4328b0_staticRenderFns = []
129202
130016
 
129203
130017
  var xt_text_component = normalizeComponent(
129204
130018
  components_xt_textvue_type_script_lang_js,
129205
- xt_textvue_type_template_id_2b4328b0_render,
129206
- xt_textvue_type_template_id_2b4328b0_staticRenderFns,
130019
+ xt_textvue_type_template_id_7df75bea_render,
130020
+ xt_textvue_type_template_id_7df75bea_staticRenderFns,
129207
130021
  false,
129208
130022
  null,
129209
130023
  null,
@@ -129808,13 +130622,13 @@ var xt_date_picker_component = normalizeComponent(
129808
130622
  // CONCATENATED MODULE: ./src/components/xt-date-picker/index.js
129809
130623
 
129810
130624
  /* harmony default export */ var components_xt_date_picker = (xt_date_picker);
129811
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=4c2fec21
129812
- var ex_buttonvue_type_template_id_4c2fec21_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)
130625
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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
130626
+ 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)
129813
130627
  }
129814
- var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
130628
+ var ex_buttonvue_type_template_id_1b7e9238_staticRenderFns = []
129815
130629
 
129816
130630
 
129817
- // CONCATENATED MODULE: ./src/components/ex-button/index.vue?vue&type=template&id=4c2fec21
130631
+ // CONCATENATED MODULE: ./src/components/ex-button/index.vue?vue&type=template&id=1b7e9238
129818
130632
 
129819
130633
  // 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/ex-button/index.vue?vue&type=script&lang=js
129820
130634
 
@@ -129843,7 +130657,7 @@ var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
129843
130657
  size: {
129844
130658
  type: String,
129845
130659
  default: null,
129846
- validator: (val) => !val || ['small', 'medium', 'large'].includes(val)
130660
+ validator: (val) => !val || ['mini', 'small', 'medium', 'large'].includes(val)
129847
130661
  }
129848
130662
  },
129849
130663
  data() {
@@ -129886,8 +130700,8 @@ var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
129886
130700
 
129887
130701
  var ex_button_component = normalizeComponent(
129888
130702
  components_ex_buttonvue_type_script_lang_js,
129889
- ex_buttonvue_type_template_id_4c2fec21_render,
129890
- ex_buttonvue_type_template_id_4c2fec21_staticRenderFns,
130703
+ ex_buttonvue_type_template_id_1b7e9238_render,
130704
+ ex_buttonvue_type_template_id_1b7e9238_staticRenderFns,
129891
130705
  false,
129892
130706
  null,
129893
130707
  null,
@@ -129915,809 +130729,6 @@ var ExBarvue_type_template_id_10acd2fc_scoped_true_staticRenderFns = []
129915
130729
 
129916
130730
  // CONCATENATED MODULE: ./src/components/ex-chart/ExBar.vue?vue&type=template&id=10acd2fc&scoped=true
129917
130731
 
129918
- // CONCATENATED MODULE: ./src/components/ex-chart/theme/white.js
129919
- /* harmony default export */ var white = ({
129920
- color: ["#1890ff", "#37c3a4", "#29c0ce", "#6480D7", "#8cce6f", "#3a5dca", "#ffb74d"],
129921
- backgroundColor: "#ffffff",
129922
- textStyle: {
129923
- fontFamily: "Microsoft YaHei, sans-serif"
129924
- },
129925
- title: {
129926
- textStyle: {
129927
- color: "#333",
129928
- fontSize: 16
129929
- },
129930
- subtextStyle: {
129931
- color: "#666666",
129932
- fontSize: 12
129933
- }
129934
- },
129935
- line: {
129936
- itemStyle: {
129937
- },
129938
- lineStyle: {
129939
- width: 2
129940
- }
129941
- },
129942
- bar: {
129943
- itemStyle: {
129944
- borderRadius: 4
129945
- }
129946
- },
129947
- pie: {
129948
- roseType: "radius",
129949
- label: {
129950
- color: "#333"
129951
- }
129952
- },
129953
- radar: {
129954
- indicator: {
129955
- color: "#666666"
129956
- }
129957
- },
129958
- map: {
129959
- label: {
129960
- color: "#333"
129961
- },
129962
- itemStyle: {
129963
- borderColor: "#fff"
129964
- }
129965
- },
129966
- gauge: {
129967
- axisLine: {
129968
- lineStyle: {
129969
- color: [[1, "#5470c6"]]
129970
- }
129971
- }
129972
- },
129973
- toolbox: {
129974
- iconStyle: {
129975
- borderColor: "#666666"
129976
- }
129977
- },
129978
- xAxis: {
129979
- axisLine: {
129980
- lineStyle: {
129981
- color: "#DFE9EE"
129982
- }
129983
- },
129984
- axisTick: {
129985
- lineStyle: {
129986
- color: "#DFE9EE"
129987
- },
129988
- show: false
129989
- }
129990
- },
129991
- yAxis: {
129992
- axisLine: {
129993
- lineStyle: {
129994
- color: "#DFE9EE"
129995
- }
129996
- },
129997
- axisTick: {
129998
- lineStyle: {
129999
- color: "#DFE9EE"
130000
- }
130001
- },
130002
- splitLine: {
130003
- show: true,
130004
- lineStyle: {
130005
- type: "dashed",
130006
- color: "#DFE9EE"
130007
- }
130008
- }
130009
- },
130010
- splitArea: {
130011
- areaStyle: {
130012
- color: ["#f7f8fa", "#ffffff"]
130013
- }
130014
- },
130015
- legend: {
130016
- textStyle: {
130017
- color: "#333333"
130018
- }
130019
- },
130020
- tooltip: {
130021
- borderWidth: 1,
130022
- backgroundColor: "#ffffff",
130023
- textStyle: {
130024
- color: "#333333"
130025
- },
130026
- trigger: "axis"
130027
- }
130028
- });
130029
-
130030
- // CONCATENATED MODULE: ./src/components/ex-chart/theme/dark.js
130031
- /* harmony default export */ var dark = ({
130032
- color: ["#0de7ff", "#a782ff", "#fcdd60", "#0de7ff", "#ffc5a1", "#6291ae", "#13ce66"],
130033
- backgroundColor: "transparent",
130034
- textStyle: {
130035
- fontFamily: "Microsoft YaHei, sans-serif"
130036
- },
130037
- title: {
130038
- textStyle: {
130039
- color: "#333"
130040
- },
130041
- subtextStyle: {
130042
- color: "#666666"
130043
- }
130044
- },
130045
- line: {
130046
- itemStyle: {
130047
- },
130048
- lineStyle: {
130049
- width: 2
130050
- }
130051
- },
130052
- bar: {
130053
- itemStyle: {
130054
- borderRadius: 4
130055
- }
130056
- },
130057
- pie: {
130058
- roseType: "radius",
130059
- label: {
130060
- color: "#333"
130061
- }
130062
- },
130063
- radar: {
130064
- indicator: {
130065
- color: "#666666"
130066
- }
130067
- },
130068
- map: {
130069
- label: {
130070
- color: "#333"
130071
- },
130072
- itemStyle: {
130073
- borderColor: "#fff"
130074
- }
130075
- },
130076
- gauge: {
130077
- axisLine: {
130078
- lineStyle: {
130079
- color: [[1, "#5470c6"]]
130080
- }
130081
- }
130082
- },
130083
- toolbox: {
130084
- iconStyle: {
130085
- borderColor: "#666666"
130086
- }
130087
- },
130088
- axisLine: {
130089
- lineStyle: {
130090
- color: "#DCDFE6"
130091
- }
130092
- },
130093
- axisTick: {
130094
- lineStyle: {
130095
- color: "#DCDFE6"
130096
- }
130097
- },
130098
- splitLine: {
130099
- lineStyle: {
130100
- color: "#ebeef5"
130101
- }
130102
- },
130103
- splitArea: {
130104
- areaStyle: {
130105
- color: ["#f7f8fa", "#ffffff"]
130106
- }
130107
- },
130108
- legend: {
130109
- textStyle: {
130110
- color: "#666"
130111
- }
130112
- },
130113
- tooltip: {
130114
- backgroundColor: "rgba(255, 255, 255, 0.95)",
130115
- borderColor: "#DCDFE6",
130116
- borderWidth: 1,
130117
- textStyle: {
130118
- color: "#333"
130119
- }
130120
- }
130121
- });
130122
-
130123
- // CONCATENATED MODULE: ./src/components/ex-chart/theme/blue.js
130124
- /* harmony default export */ var blue = ({
130125
- color: ["#2CDEB3", "#A17EE6", "#E57E40", "#409EFF"],
130126
- backgroundColor: "#ffffff",
130127
- textStyle: {
130128
- fontFamily: "Microsoft YaHei, sans-serif"
130129
- },
130130
- title: {
130131
- textStyle: {
130132
- color: "#333"
130133
- },
130134
- subtextStyle: {
130135
- color: "#666666"
130136
- }
130137
- },
130138
- line: {
130139
- itemStyle: {
130140
- },
130141
- lineStyle: {
130142
- width: 2
130143
- }
130144
- },
130145
- bar: {
130146
- itemStyle: {
130147
- borderRadius: 4
130148
- }
130149
- },
130150
- pie: {
130151
- roseType: "radius",
130152
- label: {
130153
- color: "#333"
130154
- }
130155
- },
130156
- radar: {
130157
- indicator: {
130158
- color: "#666666"
130159
- }
130160
- },
130161
- map: {
130162
- label: {
130163
- color: "#333"
130164
- },
130165
- itemStyle: {
130166
- borderColor: "#fff"
130167
- }
130168
- },
130169
- gauge: {
130170
- axisLine: {
130171
- lineStyle: {
130172
- color: [[1, "#5470c6"]]
130173
- }
130174
- }
130175
- },
130176
- toolbox: {
130177
- iconStyle: {
130178
- borderColor: "#666666"
130179
- }
130180
- },
130181
- axisLine: {
130182
- lineStyle: {
130183
- color: "#DCDFE6"
130184
- }
130185
- },
130186
- axisTick: {
130187
- lineStyle: {
130188
- color: "#DCDFE6"
130189
- }
130190
- },
130191
- splitLine: {
130192
- lineStyle: {
130193
- color: "#ebeef5"
130194
- }
130195
- },
130196
- splitArea: {
130197
- areaStyle: {
130198
- color: ["#f7f8fa", "#ffffff"]
130199
- }
130200
- },
130201
- legend: {
130202
- textStyle: {
130203
- color: "#666"
130204
- }
130205
- },
130206
- tooltip: {
130207
- backgroundColor: "rgba(255, 255, 255, 0.95)",
130208
- borderColor: "#DCDFE6",
130209
- borderWidth: 1,
130210
- textStyle: {
130211
- color: "#333"
130212
- }
130213
- }
130214
- });
130215
-
130216
- // CONCATENATED MODULE: ./src/components/ex-chart/theme/starry.js
130217
- /* harmony default export */ var starry = ({
130218
- color: [
130219
- "#1685a9", // 石青
130220
- "#21a675", // 松柏绿
130221
- "#1bd1a5", // 飞燕草蓝
130222
- "#8c4356", // 绛紫
130223
- "#0dafc6", // 孔雀蓝
130224
- "#4b5cc4", // 宝蓝
130225
- "#758a99", // 墨灰
130226
- "#cca4e3", // 丁香色
130227
- "#205277", // 靛青色
130228
- "#d9b611", // 秋香色
130229
- "#ff8c31", // 杏红
130230
- "#9d2933", // 胭脂
130231
- "#0288c5", // 浅靛青蓝
130232
- "#44cef6" // 天蓝色
130233
- ],
130234
- backgroundColor: "#ffffff",
130235
- textStyle: {
130236
- fontFamily: "Microsoft YaHei, sans-serif"
130237
- },
130238
- title: {
130239
- textStyle: {
130240
- color: "#333"
130241
- },
130242
- subtextStyle: {
130243
- color: "#666666"
130244
- }
130245
- },
130246
- line: {
130247
- itemStyle: {
130248
- },
130249
- lineStyle: {
130250
- width: 2
130251
- }
130252
- },
130253
- bar: {
130254
- itemStyle: {
130255
- borderRadius: 4
130256
- }
130257
- },
130258
- pie: {
130259
- roseType: "radius",
130260
- label: {
130261
- color: "#333"
130262
- }
130263
- },
130264
- radar: {
130265
- indicator: {
130266
- color: "#666666"
130267
- }
130268
- },
130269
- map: {
130270
- label: {
130271
- color: "#333"
130272
- },
130273
- itemStyle: {
130274
- borderColor: "#fff"
130275
- }
130276
- },
130277
- gauge: {
130278
- axisLine: {
130279
- lineStyle: {
130280
- color: [[1, "#5470c6"]]
130281
- }
130282
- }
130283
- },
130284
- toolbox: {
130285
- iconStyle: {
130286
- borderColor: "#666666"
130287
- }
130288
- },
130289
- axisLine: {
130290
- lineStyle: {
130291
- color: "#DCDFE6"
130292
- }
130293
- },
130294
- axisTick: {
130295
- lineStyle: {
130296
- color: "#DCDFE6"
130297
- }
130298
- },
130299
- splitLine: {
130300
- lineStyle: {
130301
- color: "#ebeef5"
130302
- }
130303
- },
130304
- splitArea: {
130305
- areaStyle: {
130306
- color: ["#f7f8fa", "#ffffff"]
130307
- }
130308
- },
130309
- legend: {
130310
- textStyle: {
130311
- color: "#666"
130312
- }
130313
- },
130314
- tooltip: {
130315
- backgroundColor: "rgba(255, 255, 255, 0.95)",
130316
- borderColor: "#DCDFE6",
130317
- borderWidth: 1,
130318
- textStyle: {
130319
- color: "#333"
130320
- }
130321
- }
130322
- });
130323
-
130324
- // CONCATENATED MODULE: ./src/components/ex-chart/theme/orange.js
130325
- /* harmony default export */ var orange = ({
130326
- color: ["#e69419", "#A5b4da", "#F8792C", "#97bfb4", "#de747b", "#d6bac0", "#e62737", "#f35969", "#f1ccb0", "#b7394e", "#fe9c1c2"],
130327
- backgroundColor: "#ffffff",
130328
- textStyle: {
130329
- fontFamily: "Microsoft YaHei, sans-serif"
130330
- },
130331
- title: {
130332
- textStyle: {
130333
- color: "#333"
130334
- },
130335
- subtextStyle: {
130336
- color: "#666666"
130337
- }
130338
- },
130339
- line: {
130340
- itemStyle: {
130341
- color: "#e69419"
130342
- },
130343
- lineStyle: {
130344
- width: 2
130345
- }
130346
- },
130347
- bar: {
130348
- itemStyle: {
130349
- borderRadius: 4
130350
- }
130351
- },
130352
- pie: {
130353
- roseType: "radius",
130354
- label: {
130355
- color: "#333"
130356
- }
130357
- },
130358
- radar: {
130359
- indicator: {
130360
- color: "#666666"
130361
- }
130362
- },
130363
- map: {
130364
- label: {
130365
- color: "#333"
130366
- },
130367
- itemStyle: {
130368
- borderColor: "#fff"
130369
- }
130370
- },
130371
- gauge: {
130372
- axisLine: {
130373
- lineStyle: {
130374
- color: [[1, "#5470c6"]]
130375
- }
130376
- }
130377
- },
130378
- toolbox: {
130379
- iconStyle: {
130380
- borderColor: "#666666"
130381
- }
130382
- },
130383
- axisLine: {
130384
- lineStyle: {
130385
- color: "#DCDFE6"
130386
- }
130387
- },
130388
- axisTick: {
130389
- lineStyle: {
130390
- color: "#DCDFE6"
130391
- }
130392
- },
130393
- splitLine: {
130394
- lineStyle: {
130395
- color: "#ebeef5"
130396
- }
130397
- },
130398
- splitArea: {
130399
- areaStyle: {
130400
- color: ["#f7f8fa", "#ffffff"]
130401
- }
130402
- },
130403
- legend: {
130404
- textStyle: {
130405
- color: "#666"
130406
- }
130407
- },
130408
- tooltip: {
130409
- backgroundColor: "rgba(255, 255, 255, 0.95)",
130410
- borderColor: "#DCDFE6",
130411
- borderWidth: 1,
130412
- textStyle: {
130413
- color: "#333"
130414
- }
130415
- }
130416
- });
130417
-
130418
- // CONCATENATED MODULE: ./src/components/ex-chart/utils.js
130419
-
130420
-
130421
-
130422
-
130423
-
130424
-
130425
- const themeKeys = {
130426
- "default": white,
130427
- "white": white,
130428
- "dark": dark,
130429
- "blue": blue,
130430
- "starry": starry,
130431
- "orange": orange
130432
- };
130433
-
130434
- // echarts 仅在客户端加载,避免 SSR 编译/渲染报错
130435
- let echarts = null;
130436
-
130437
- function getEcharts() {
130438
- if (!echarts && typeof window !== 'undefined') {
130439
- try {
130440
- echarts = __webpack_require__("313e");
130441
- // 注册所有主题
130442
- for (const key in themeKeys) {
130443
- echarts.registerTheme(key, themeKeys[key]);
130444
- }
130445
- } catch (e) {
130446
- console.warn('[ExChart] echarts 加载失败:', e.message);
130447
- }
130448
- }
130449
- return echarts;
130450
- }
130451
-
130452
- // 字体大小配置
130453
- const fontSizeMap = {
130454
- small: {
130455
- title: 14,
130456
- subtitle: 11,
130457
- legend: 11,
130458
- axisLabel: 10,
130459
- tooltip: 11,
130460
- label: 11
130461
- },
130462
- medium: {
130463
- title: 16,
130464
- subtitle: 12,
130465
- legend: 12,
130466
- axisLabel: 12,
130467
- tooltip: 12,
130468
- label: 12
130469
- },
130470
- large: {
130471
- title: 18,
130472
- subtitle: 14,
130473
- legend: 14,
130474
- axisLabel: 14,
130475
- tooltip: 14,
130476
- label: 14
130477
- }
130478
- };
130479
-
130480
- function EchartsUtil() {}
130481
-
130482
- EchartsUtil.currentTheme = "default";
130483
- EchartsUtil.currentSize = "medium";
130484
- EchartsUtil.inverse = false;
130485
-
130486
- EchartsUtil.baseOption = {
130487
- backgroundColor: "transparent",
130488
- tooltip: {
130489
- trigger: "axis",
130490
- borderWidth: 1
130491
- },
130492
- legend: {
130493
- right: 20,
130494
- top: 0,
130495
- show: true,
130496
- textStyle: {
130497
- fontSize: 12
130498
- }
130499
- },
130500
- grid: {
130501
- top: "25%",
130502
- left: "40",
130503
- right: "15",
130504
- bottom: "40"
130505
- },
130506
- xAxis: {
130507
- type: "category",
130508
- boundaryGap: false,
130509
- axisTick: {
130510
- show: true,
130511
- length: 4
130512
- },
130513
- axisLabel: {
130514
- fontSize: 12,
130515
- interval: 0,
130516
- formatter: function(value) {
130517
- return !this.reverse && this.longLable ? value.replace(new RegExp(`(.{${this.longLableSplitNum}})`, "g"), `$1\n`) : value;
130518
- }
130519
- }
130520
- },
130521
- yAxis: {
130522
- type: "value",
130523
- axisTick: {
130524
- show: false
130525
- },
130526
- min: null,
130527
- max: null,
130528
- axisLabel: {
130529
- show: false
130530
- },
130531
- splitLine: {
130532
- lineStyle: {
130533
- type: "dashed",
130534
- width: 1
130535
- }
130536
- }
130537
- }
130538
- };
130539
-
130540
- EchartsUtil.chartInstanceList = [];
130541
-
130542
- EchartsUtil.mergeOptions = function(themeOption, customOption) {
130543
- return Object.assign({}, this.baseOption, themeOption, customOption);
130544
- };
130545
-
130546
- // 根据字体大小调整主题配置
130547
- EchartsUtil.applyFontSize = function(themeOption, size) {
130548
- const fontSizeConfig = fontSizeMap[size] || fontSizeMap.medium;
130549
-
130550
- const result = JSON.parse(JSON.stringify(themeOption));
130551
-
130552
- // 调整标题字体大小
130553
- if (result.title && result.title.textStyle) {
130554
- result.title.textStyle.fontSize = fontSizeConfig.title;
130555
- }
130556
- if (result.title && result.title.subtextStyle) {
130557
- result.title.subtextStyle.fontSize = fontSizeConfig.subtitle;
130558
- }
130559
-
130560
- // 调整图例字体大小
130561
- if (result.legend && result.legend.textStyle) {
130562
- result.legend.textStyle.fontSize = fontSizeConfig.legend;
130563
- }
130564
-
130565
- // 调整提示框字体大小
130566
- if (result.tooltip && result.tooltip.textStyle) {
130567
- result.tooltip.textStyle.fontSize = fontSizeConfig.tooltip;
130568
- }
130569
-
130570
- // 调整饼图标签字体大小
130571
- if (result.pie && result.pie.label) {
130572
- if (typeof result.pie.label === 'object') {
130573
- result.pie.label.fontSize = fontSizeConfig.label;
130574
- }
130575
- }
130576
-
130577
- // 调整雷达图指示器字体大小
130578
- if (result.radar && result.radar.indicator) {
130579
- if (typeof result.radar.indicator === 'object' && result.radar.indicator.textStyle) {
130580
- result.radar.indicator.textStyle.fontSize = fontSizeConfig.label;
130581
- }
130582
- }
130583
-
130584
- // 调整地图标签字体大小
130585
- if (result.map && result.map.label) {
130586
- if (typeof result.map.label === 'object') {
130587
- result.map.label.fontSize = fontSizeConfig.label;
130588
- }
130589
- }
130590
-
130591
- return result;
130592
- };
130593
-
130594
- EchartsUtil.init = function(dom, theme, customOption, size) {
130595
- const ec = getEcharts();
130596
- // SSR 环境下忽略初始化
130597
- if (!ec || !dom) return null;
130598
-
130599
- theme = theme || "default";
130600
- size = size || "medium";
130601
- customOption = customOption || {};
130602
-
130603
- const useTheme = this.currentTheme || theme;
130604
- const useSize = this.currentSize || size;
130605
-
130606
- this.currentTheme = useTheme;
130607
- this.currentSize = useSize;
130608
-
130609
- let themeOption = themeKeys[useTheme];
130610
- // 应用字体大小配置
130611
- themeOption = this.applyFontSize(themeOption, useSize);
130612
-
130613
- const option = this.mergeOptions(themeOption, customOption);
130614
-
130615
- const chart = ec.init(dom, useTheme);
130616
- chart.setOption(option, true);
130617
-
130618
- this.chartInstanceList.push({
130619
- dom,
130620
- chart,
130621
- customOption,
130622
- size: useSize
130623
- });
130624
-
130625
- this.bindResize(chart);
130626
- return chart;
130627
- };
130628
-
130629
- EchartsUtil.changeSingleTheme = function(dom, chartIns, customOption, newTheme) {
130630
- const ec = getEcharts();
130631
- if (!ec || !dom || !chartIns) return;
130632
-
130633
- customOption = customOption || {};
130634
- newTheme = newTheme || "default";
130635
-
130636
- this.currentTheme = newTheme;
130637
- chartIns.dispose();
130638
-
130639
- const newChart = ec.init(dom, newTheme, customOption);
130640
-
130641
- const item = this.chartInstanceList.find(function(v) {
130642
- return v.dom === dom;
130643
- });
130644
-
130645
- if (item) {
130646
- item.chart = newChart;
130647
- }
130648
-
130649
- return newChart;
130650
- };
130651
-
130652
- EchartsUtil.changeAllTheme = function(newTheme, newSize) {
130653
- const ec = getEcharts();
130654
- if (!ec || !newTheme) return;
130655
-
130656
- this.currentTheme = newTheme;
130657
- // 如果传入了新的 size,则更新全局 size
130658
- if (newSize) {
130659
- this.currentSize = newSize;
130660
- }
130661
-
130662
- this.chartInstanceList.forEach(function(item) {
130663
- const dom = item.dom;
130664
- const chart = item.chart;
130665
- const customOption = item.customOption;
130666
- // 使用图表自己的 size,如果没有则使用全局 size
130667
- const useSize = item.size || EchartsUtil.currentSize;
130668
-
130669
- if (chart) {
130670
- chart.dispose();
130671
- }
130672
-
130673
- const newChart = ec.init(dom, newTheme);
130674
- let themeOption = themeKeys[newTheme];
130675
- // 应用字体大小配置
130676
- themeOption = EchartsUtil.applyFontSize(themeOption, useSize);
130677
- const option = EchartsUtil.mergeOptions(themeOption, customOption);
130678
-
130679
- newChart.setOption(option, true);
130680
- item.chart = newChart;
130681
- // 更新图表的 size 记录
130682
- item.size = useSize;
130683
- EchartsUtil.bindResize(newChart);
130684
- });
130685
- };
130686
-
130687
- EchartsUtil.bindResize = function(chartIns) {
130688
- if (!chartIns || chartIns.resizeLocked) return;
130689
-
130690
- window.addEventListener("resize", function() {
130691
- chartIns.resize();
130692
- });
130693
-
130694
- chartIns._resizeLocked = true;
130695
- };
130696
-
130697
- EchartsUtil.destroy = function(chartIns) {
130698
- if (chartIns) {
130699
- chartIns.dispose();
130700
- }
130701
-
130702
- this.chartInstanceList = this.chartInstanceList.filter(function(item) {
130703
- return item.chart !== chartIns;
130704
- });
130705
- };
130706
-
130707
- EchartsUtil.destroyAll = function() {
130708
- this.chartInstanceList.forEach(function(item) {
130709
- if (item.chart) {
130710
- item.chart.dispose();
130711
- }
130712
- });
130713
-
130714
- this.chartInstanceList = [];
130715
- };
130716
-
130717
- /* harmony default export */ var ex_chart_utils = (EchartsUtil);
130718
-
130719
-
130720
-
130721
130732
  // 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/ex-chart/ExBar.vue?vue&type=script&lang=js
130722
130733
 
130723
130734
 
@@ -130910,7 +130921,7 @@ EchartsUtil.destroyAll = function() {
130910
130921
  if (!this.markPoint) {
130911
130922
  this.$delete(option.series[0], "markPoint");
130912
130923
  }
130913
- this.myChart = ex_chart_utils.init(_self.$refs.barchart, this.theme, option, this.size);
130924
+ this.myChart = utils.init(_self.$refs.barchart, this.theme, option, this.size);
130914
130925
  }
130915
130926
  }
130916
130927
  });
@@ -131084,7 +131095,7 @@ var ExLinevue_type_template_id_386a9c5d_scoped_true_staticRenderFns = []
131084
131095
  }]
131085
131096
  };
131086
131097
 
131087
- this.myChart = ex_chart_utils.init(_self.$refs.linechart, this.theme, option, this.size);
131098
+ this.myChart = utils.init(_self.$refs.linechart, this.theme, option, this.size);
131088
131099
  }
131089
131100
  }
131090
131101
  });
@@ -131115,13 +131126,13 @@ var ExLine_component = normalizeComponent(
131115
131126
  )
131116
131127
 
131117
131128
  /* harmony default export */ var ExLine = (ExLine_component.exports);
131118
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=5100b648&scoped=true
131119
- var ExPievue_type_template_id_5100b648_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"piechart",staticClass:"pie-box"})
131129
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=2412b380&scoped=true
131130
+ var ExPievue_type_template_id_2412b380_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"piechart",staticClass:"pie-box"})
131120
131131
  }
131121
- var ExPievue_type_template_id_5100b648_scoped_true_staticRenderFns = []
131132
+ var ExPievue_type_template_id_2412b380_scoped_true_staticRenderFns = []
131122
131133
 
131123
131134
 
131124
- // CONCATENATED MODULE: ./src/components/ex-chart/ExPie.vue?vue&type=template&id=5100b648&scoped=true
131135
+ // CONCATENATED MODULE: ./src/components/ex-chart/ExPie.vue?vue&type=template&id=2412b380&scoped=true
131125
131136
 
131126
131137
  // 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/ex-chart/ExPie.vue?vue&type=script&lang=js
131127
131138
 
@@ -131226,10 +131237,7 @@ var ExPievue_type_template_id_5100b648_scoped_true_staticRenderFns = []
131226
131237
  legend: this.showLegend ? {
131227
131238
  top: "top",
131228
131239
  right: "20",
131229
- type: "scroll",
131230
- textStyle: {
131231
- color: "#808080"
131232
- }
131240
+ type: "scroll"
131233
131241
  } : null,
131234
131242
  grid: {
131235
131243
  left: 30,
@@ -131271,15 +131279,15 @@ var ExPievue_type_template_id_5100b648_scoped_true_staticRenderFns = []
131271
131279
  })
131272
131280
  }]
131273
131281
  };
131274
- this.myChart = ex_chart_utils.init(_self.$refs.piechart, this.theme, option, this.size);
131282
+ this.myChart = utils.init(_self.$refs.piechart, this.theme, option, this.size);
131275
131283
  }
131276
131284
  }
131277
131285
  });
131278
131286
 
131279
131287
  // CONCATENATED MODULE: ./src/components/ex-chart/ExPie.vue?vue&type=script&lang=js
131280
131288
  /* harmony default export */ var ex_chart_ExPievue_type_script_lang_js = (ExPievue_type_script_lang_js);
131281
- // EXTERNAL MODULE: ./src/components/ex-chart/ExPie.vue?vue&type=style&index=0&id=5100b648&prod&lang=scss&scoped=true
131282
- var ExPievue_type_style_index_0_id_5100b648_prod_lang_scss_scoped_true = __webpack_require__("e3c3");
131289
+ // EXTERNAL MODULE: ./src/components/ex-chart/ExPie.vue?vue&type=style&index=0&id=2412b380&prod&lang=scss&scoped=true
131290
+ var ExPievue_type_style_index_0_id_2412b380_prod_lang_scss_scoped_true = __webpack_require__("8629");
131283
131291
 
131284
131292
  // CONCATENATED MODULE: ./src/components/ex-chart/ExPie.vue
131285
131293
 
@@ -131292,11 +131300,11 @@ var ExPievue_type_style_index_0_id_5100b648_prod_lang_scss_scoped_true = __webpa
131292
131300
 
131293
131301
  var ExPie_component = normalizeComponent(
131294
131302
  ex_chart_ExPievue_type_script_lang_js,
131295
- ExPievue_type_template_id_5100b648_scoped_true_render,
131296
- ExPievue_type_template_id_5100b648_scoped_true_staticRenderFns,
131303
+ ExPievue_type_template_id_2412b380_scoped_true_render,
131304
+ ExPievue_type_template_id_2412b380_scoped_true_staticRenderFns,
131297
131305
  false,
131298
131306
  null,
131299
- "5100b648",
131307
+ "2412b380",
131300
131308
  null
131301
131309
 
131302
131310
  )
@@ -131531,7 +131539,7 @@ var ExMultivue_type_template_id_18661424_scoped_true_staticRenderFns = []
131531
131539
  ],
131532
131540
  series: this.getSeriesData()
131533
131541
  };
131534
- this.myChart = ex_chart_utils.init(_self.$refs.multilinechart, this.theme, option, this.size);
131542
+ this.myChart = utils.init(_self.$refs.multilinechart, this.theme, option, this.size);
131535
131543
  },
131536
131544
  getSeriesData() {
131537
131545
  // 创建 24小时 时间数据填充对象
@@ -131710,7 +131718,7 @@ var ExTrendvue_type_template_id_36cddc14_scoped_true_staticRenderFns = []
131710
131718
  const _self = this;
131711
131719
  // 数据处理
131712
131720
  const option = this.getOption();
131713
- this.myChart = ex_chart_utils.init(_self.$refs.barchart, this.theme, option, this.size);
131721
+ this.myChart = utils.init(_self.$refs.barchart, this.theme, option, this.size);
131714
131722
  }
131715
131723
  }
131716
131724
  });
@@ -131996,13 +132004,13 @@ ex_card.install = function (Vue) {
131996
132004
 
131997
132005
  /* harmony default export */ var components_ex_card = (ex_card);
131998
132006
 
131999
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=78d2b726&scoped=true
132000
- var ex_tablevue_type_template_id_78d2b726_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(),(_vm.virtualScroll && _vm.computedHeight)?_c('div',{ref:"fixedHeader",staticClass:"ex-table-fixed-header"},[_c('el-table',{ref:"headerTable",staticClass:"ex-table ex-table-header-only",attrs:{"data":_vm.headerTableData}},[(_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}}):_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 || child.prop},'el-table-column',_vm.getColumnProps(child),false))}),1):_c('el-table-column',_vm._b({key:col._key},'el-table-column',_vm.getColumnProps(col),false))]})],2)],1):_vm._e(),_c('div',{ref:"tableBody",staticClass:"ex-table-body",class:{ 'ex-table-virtual': _vm.virtualScroll },style:(_vm.virtualScroll ? { height: _vm.computedHeight + 'px' } : {}),on:{"scroll":_vm.handleBodyScroll}},[(_vm.virtualScroll)?_c('div',{staticClass:"ex-table-virtual-inner",style:({ height: _vm.virtualTotalHeight + 'px' })},[_c('div',{style:({ transform: 'translateY(' + _vm.virtualOffsetY + 'px)' })},[_c('el-table',_vm._g(_vm._b({ref:"table",staticClass:"ex-table",attrs:{"data":_vm.visibleData,"span-method":_vm.groupColumns.length ? _vm.handleSpanMethod : undefined,"row-class-name":_vm.getRowClassName,"show-header":false},on:{"selection-change":_vm.handleSelectionChange,"sort-change":_vm.handleSortChange}},'el-table',_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)]):_c('el-table',_vm._g(_vm._b({ref:"table",staticClass:"ex-table",attrs:{"data":_vm.visibleData,"height":_vm.computedHeight,"max-height":_vm.computedMaxHeight,"span-method":_vm.groupColumns.length ? _vm.handleSpanMethod : undefined,"row-class-name":_vm.getRowClassName},on:{"selection-change":_vm.handleSelectionChange,"sort-change":_vm.handleSortChange}},'el-table',_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.PageNum,"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()])
132007
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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=f6bc1634&scoped=true
132008
+ var ex_tablevue_type_template_id_f6bc1634_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.PageNum,"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()])
132001
132009
  }
132002
- var ex_tablevue_type_template_id_78d2b726_scoped_true_staticRenderFns = []
132010
+ var ex_tablevue_type_template_id_f6bc1634_scoped_true_staticRenderFns = []
132003
132011
 
132004
132012
 
132005
- // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=template&id=78d2b726&scoped=true
132013
+ // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=template&id=f6bc1634&scoped=true
132006
132014
 
132007
132015
  // 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/ex-table/ExTableCell.vue?vue&type=script&lang=js
132008
132016
 
@@ -132021,9 +132029,10 @@ var ex_tablevue_type_template_id_78d2b726_scoped_true_staticRenderFns = []
132021
132029
  index: ctx.props.index
132022
132030
  }
132023
132031
  if (ctx.props.column) params.column = ctx.props.column
132024
- const isVnode = (it) => typeof it === 'object' && it.hasOwnProperty('componentOptions')
132032
+ const isVnode = (it) => it !== null && it !== undefined && typeof it === 'object' && it.hasOwnProperty('componentOptions')
132025
132033
  const renderNode = ctx.props.formatter(h, params)
132026
- return isVnode(renderNode) ? renderNode : h('span', renderNode)
132034
+ if (renderNode === null || renderNode === undefined || renderNode === '') return h('span', '')
132035
+ return isVnode(renderNode) ? renderNode : h('span', String(renderNode))
132027
132036
  }
132028
132037
  });
132029
132038
 
@@ -132049,74 +132058,293 @@ var ExTableCell_component = normalizeComponent(
132049
132058
  )
132050
132059
 
132051
132060
  /* harmony default export */ var ExTableCell = (ExTableCell_component.exports);
132052
- // EXTERNAL MODULE: external "ElementUI"
132053
- var external_ElementUI_ = __webpack_require__("5f72");
132061
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"44e6dca7-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
132062
+ 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)
132063
+ }
132064
+ var VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_staticRenderFns = []
132065
+
132066
+
132067
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=template&id=5eb34e1c&scoped=true
132068
+
132069
+ // 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/ex-table/VirtualElTable.vue?vue&type=script&lang=js
132070
+
132071
+ /* harmony default export */ var VirtualElTablevue_type_script_lang_js = ({
132072
+ name: 'VirtualElTable',
132073
+ inheritAttrs: false,
132074
+
132075
+ props: {
132076
+ virtualScroll: {
132077
+ type: Boolean,
132078
+ default: false
132079
+ },
132080
+ rowHeight: {
132081
+ type: Number,
132082
+ default: 48
132083
+ },
132084
+ bufferSize: {
132085
+ type: Number,
132086
+ default: 5
132087
+ }
132088
+ },
132089
+
132090
+ data() {
132091
+ return {
132092
+ scrollWrap: null,
132093
+ phantomDom: null,
132094
+ scrollTop: 0,
132095
+ // 根据数据量与容器高度预先估算一个合理的 endIndex,避免首屏只渲染 0 行
132096
+ startIndex: 0,
132097
+ endIndex: 20,
132098
+ rafId: null,
132099
+ unwatchPhantom: null,
132100
+ layoutTimer: null,
132101
+ retryTimers: []
132102
+ }
132103
+ },
132104
+
132105
+ computed: {
132106
+ originData() {
132107
+ return this.$attrs.data || []
132108
+ },
132109
+ renderList() {
132110
+ if (!this.virtualScroll) return this.originData
132111
+ const start = Math.max(0, this.startIndex - this.bufferSize)
132112
+ const end = Math.min(this.originData.length, this.endIndex + this.bufferSize)
132113
+ return this.originData.slice(start, end)
132114
+ },
132115
+ totalListHeight() {
132116
+ return this.originData.length * this.rowHeight
132117
+ },
132118
+ contentOffsetY() {
132119
+ return Math.max(0, this.startIndex - this.bufferSize) * this.rowHeight
132120
+ }
132121
+ },
132122
+
132123
+ watch: {
132124
+ renderList() {
132125
+ this.scheduleLayout()
132126
+ },
132127
+ originData: {
132128
+ handler(val) {
132129
+ if (!this.virtualScroll) return
132130
+ if (val && val.length) {
132131
+ this.$nextTick(() => {
132132
+ this.calcVisibleRange()
132133
+ })
132134
+ }
132135
+ }
132136
+ }
132137
+ },
132138
+
132139
+ mounted() {
132140
+ this.$nextTick(() => {
132141
+ this.initVirtualScroll()
132142
+ })
132143
+ },
132144
+
132145
+ beforeDestroy() {
132146
+ this.unbindScrollEvent()
132147
+ if (this.rafId) {
132148
+ cancelAnimationFrame(this.rafId)
132149
+ this.rafId = null
132150
+ }
132151
+ if (this.unwatchPhantom) {
132152
+ this.unwatchPhantom()
132153
+ this.unwatchPhantom = null
132154
+ }
132155
+ if (this.layoutTimer) {
132156
+ clearTimeout(this.layoutTimer)
132157
+ this.layoutTimer = null
132158
+ }
132159
+ this.retryTimers.forEach(t => clearTimeout(t))
132160
+ this.retryTimers = []
132161
+ },
132162
+
132163
+ methods: {
132164
+ initVirtualScroll() {
132165
+ if (!this.virtualScroll) return
132166
+ this.scrollWrap = this.$refs.innerTable.$el.querySelector('.el-table__body-wrapper')
132167
+ if (!this.scrollWrap) {
132168
+ console.warn('[VirtualElTable] 无法找到滚动容器,虚拟滚动功能已禁用')
132169
+ this.virtualScroll = false
132170
+ return
132171
+ }
132172
+
132173
+ this.scrollWrap.style.overflowY = 'auto'
132174
+ this.scrollWrap.style.overflowX = 'auto'
132175
+
132176
+ this.wrapTableBody()
132177
+ this.scrollWrap.addEventListener('scroll', this.onScroll, { passive: true })
132178
+
132179
+ // 首次可见范围计算 + 多次重试:
132180
+ // ElementUI 的 el-table 在 mounted 后仍会异步完成列宽/高度布局,
132181
+ // 单次 $nextTick 可能拿到 clientHeight=0,导致计算失败且无法恢复。
132182
+ // 以递增延迟多次调用,直到 scrollWrap.clientHeight 获得稳定值。
132183
+ this.calcVisibleRange()
132184
+ const delays = [100, 300, 600, 1000]
132185
+ delays.forEach(ms => {
132186
+ const timer = setTimeout(() => {
132187
+ this.calcVisibleRange()
132188
+ }, ms)
132189
+ this.retryTimers.push(timer)
132190
+ })
132191
+ },
132192
+
132193
+ wrapTableBody() {
132194
+ const bodyDom = this.scrollWrap.querySelector('.el-table__body')
132195
+ if (!bodyDom || bodyDom.querySelector('.vs-phantom')) return
132196
+
132197
+ // phantom 采用标准 block 布局:
132198
+ // - height = 总数据高度,确保撑开 body-wrapper 的滚动条
132199
+ // - padding-top = 可见区域偏移量,将 table 推到正确位置
132200
+ // - min-width: 100%(不设 width),允许 table 自然撑开,保证列宽生效
132201
+ const phantom = document.createElement('div')
132202
+ phantom.className = 'vs-phantom'
132203
+ phantom.style.position = 'relative'
132204
+ phantom.style.minWidth = '100%'
132205
+ phantom.style.boxSizing = 'border-box'
132206
+ phantom.style.zIndex = '1'
132207
+ this.phantomDom = phantom
132208
+
132209
+ const table = bodyDom.querySelector('table')
132210
+ phantom.appendChild(table)
132211
+ bodyDom.appendChild(phantom)
132212
+
132213
+ this.unwatchPhantom = this.$watch(
132214
+ ['totalListHeight', 'contentOffsetY'],
132215
+ () => {
132216
+ if (this.phantomDom) {
132217
+ this.phantomDom.style.height = `${this.totalListHeight}px`
132218
+ this.phantomDom.style.paddingTop = `${this.contentOffsetY}px`
132219
+ }
132220
+ },
132221
+ { immediate: true }
132222
+ )
132223
+ },
132224
+
132225
+ onScroll() {
132226
+ this.scrollTop = this.scrollWrap.scrollTop
132227
+ if (this.rafId) return
132228
+ this.rafId = requestAnimationFrame(() => {
132229
+ this.calcVisibleRange()
132230
+ this.rafId = null
132231
+ })
132232
+ },
132233
+
132234
+ calcVisibleRange() {
132235
+ if (!this.scrollWrap) return
132236
+ let viewHeight = this.scrollWrap.clientHeight
132237
+
132238
+ // 关键兜底:ElementUI 异步布局尚未完成时,clientHeight 可能为 0,
132239
+ // 此时用组件接收到的 height / max-height 作为估算值,确保至少能渲染正确数量的行。
132240
+ if (!viewHeight) {
132241
+ const h = this.$attrs.height || this.$attrs.maxHeight
132242
+ if (h) {
132243
+ viewHeight = typeof h === 'number' ? h : parseInt(String(h), 10)
132244
+ }
132245
+ }
132246
+ if (!viewHeight || viewHeight <= 0) return
132247
+
132248
+ const visibleRowCount = Math.ceil(viewHeight / this.rowHeight)
132249
+ const newStart = Math.floor(this.scrollTop / this.rowHeight)
132250
+ const newEnd = Math.min(this.originData.length, newStart + visibleRowCount)
132251
+
132252
+ if (newStart !== this.startIndex || newEnd !== this.endIndex) {
132253
+ this.startIndex = newStart
132254
+ this.endIndex = newEnd
132255
+ }
132256
+ },
132257
+
132258
+ unbindScrollEvent() {
132259
+ if (this.scrollWrap) {
132260
+ this.scrollWrap.removeEventListener('scroll', this.onScroll)
132261
+ }
132262
+ },
132263
+
132264
+ scheduleLayout() {
132265
+ if (this.layoutTimer) return
132266
+ this.layoutTimer = setTimeout(() => {
132267
+ if (this.$refs.innerTable) {
132268
+ this.$refs.innerTable.doLayout()
132269
+ }
132270
+ this.layoutTimer = null
132271
+ }, 0)
132272
+ },
132273
+
132274
+ clearSelection() {
132275
+ return this.$refs.innerTable.clearSelection()
132276
+ },
132277
+ toggleRowSelection() {
132278
+ return this.$refs.innerTable.toggleRowSelection()
132279
+ },
132280
+ doLayout() {
132281
+ return this.$refs.innerTable.doLayout()
132282
+ }
132283
+ }
132284
+ });
132285
+
132286
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=script&lang=js
132287
+ /* harmony default export */ var ex_table_VirtualElTablevue_type_script_lang_js = (VirtualElTablevue_type_script_lang_js);
132288
+ // EXTERNAL MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=style&index=0&id=5eb34e1c&prod&scoped=true&lang=css
132289
+ var VirtualElTablevue_type_style_index_0_id_5eb34e1c_prod_scoped_true_lang_css = __webpack_require__("ac06");
132290
+
132291
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue
132292
+
132293
+
132294
+
132295
+
132296
+
132297
+
132298
+ /* normalize component */
132299
+
132300
+ var VirtualElTable_component = normalizeComponent(
132301
+ ex_table_VirtualElTablevue_type_script_lang_js,
132302
+ VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_render,
132303
+ VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_staticRenderFns,
132304
+ false,
132305
+ null,
132306
+ "5eb34e1c",
132307
+ null
132308
+
132309
+ )
132054
132310
 
132311
+ /* harmony default export */ var VirtualElTable = (VirtualElTable_component.exports);
132055
132312
  // 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/ex-table/index.vue?vue&type=script&lang=js
132056
132313
 
132057
132314
 
132058
- // 内部导入 element-ui 组件,避免与外部 element-ui 冲突
132059
132315
 
132060
132316
 
132061
132317
  /* harmony default export */ var ex_tablevue_type_script_lang_js = ({
132062
132318
  name: 'ExTable',
132063
132319
  inheritAttrs: false,
132064
- components: { ExTableCell: ExTableCell, ElTable: external_ElementUI_["Table"], ElTableColumn: external_ElementUI_["TableColumn"] },
132320
+ components: { ExTableCell: ExTableCell, VirtualElTable: VirtualElTable },
132321
+
132065
132322
  props: {
132066
- // 表格数据
132067
132323
  tableData: { type: Array, default: () => [] },
132068
- // 列配置(支持 children 多级表头)
132069
132324
  columns: { type: Array, default: () => [] },
132070
- // 分组列配置(按配置的层级合并单元格)
132071
132325
  groupColumns: { type: Array, default: () => [] },
132072
- // 标题
132073
132326
  title: { type: String, default: '' },
132074
- // 高度
132075
132327
  height: { type: [Number, String], default: null },
132076
- // 最大高度(非虚拟滚动时与 height 二选一,均支持固定表头)
132077
132328
  maxHeight: { type: [Number, String], default: null },
132078
- // 虚拟滚动
132079
132329
  virtualScroll: { type: Boolean, default: false },
132080
- // 预估行高
132081
132330
  rowInitHeight: { type: Number, default: 48 },
132082
- // 缓冲区行数
132083
132331
  bufferSize: { type: Number, default: 5 },
132084
- // 分页配置
132085
132332
  pagination: { type: Object, default: null },
132086
- // 总条数
132087
132333
  total: { type: Number, default: 0 },
132088
- // 是否显示序号
132089
132334
  showIndex: { type: Boolean, default: false },
132090
- // 是否可选
132091
132335
  selection: { type: Boolean, default: false },
132092
- // 选择列固定位置
132093
132336
  selectionFixed: { type: [String, Boolean], default: false },
132094
- // 序号列固定位置
132095
132337
  indexFixed: { type: [String, Boolean], default: false },
132096
- // 加载状态
132097
132338
  loading: { type: Boolean, default: false },
132098
- // 空数据文案
132099
132339
  emptyText: { type: String, default: '暂无数据' },
132100
- // 小计配置
132101
132340
  subtotalConfig: { type: Object, default: () => ({ enabled: false }) },
132102
- // 总计配置
132103
132341
  totalConfig: { type: Object, default: () => ({ enabled: false }) }
132104
132342
  },
132105
132343
 
132106
132344
  data() {
132107
132345
  return {
132108
- // 虚拟滚动相关
132109
- scrollTop: 0,
132110
- scrollLeft: 0,
132111
- rowHeight: 48,
132112
- visibleStartIndex: 0,
132113
- visibleEndIndex: 0,
132114
- visibleCount: 0,
132115
- // 分组合并缓存
132116
132346
  spanCache: {},
132117
- // 列扁平化缓存
132118
132347
  flattenedColumnsCache: [],
132119
- // 选中数据
132120
132348
  selectedRows: []
132121
132349
  }
132122
132350
  },
@@ -132125,75 +132353,44 @@ var external_ElementUI_ = __webpack_require__("5f72");
132125
132353
  showPagination() {
132126
132354
  return this.pagination && this.total > 0
132127
132355
  },
132128
-
132129
132356
  computedHeight() {
132130
- if (this.virtualScroll) {
132131
- return this.height || this.maxHeight || 400
132132
- }
132133
132357
  return this.height || undefined
132134
132358
  },
132135
-
132136
132359
  computedMaxHeight() {
132137
- if (this.virtualScroll || this.height) return undefined
132138
- return this.maxHeight || undefined
132139
- },
132140
-
132141
- // 虚拟滚动固定表头占位数据(仅渲染表头,不渲染 body 行)
132142
- headerTableData() {
132143
- return []
132360
+ return this.height ? undefined : this.maxHeight || undefined
132144
132361
  },
132145
132362
 
132146
- // 处理后的数据(注入小计/总计行)
132363
+ // 处理小计、总计后的最终数据
132147
132364
  processedTableData() {
132148
132365
  if (!this.tableData.length) return []
132149
-
132150
132366
  let data = [...this.tableData]
132151
132367
  const hasSubtotal = this.subtotalConfig && this.subtotalConfig.enabled
132152
132368
  const hasTotal = this.totalConfig && this.totalConfig.enabled
132153
132369
 
132154
132370
  if (!hasSubtotal && !hasTotal) return data
132155
132371
 
132156
- // 找到第一个数据列作为标签列
132157
132372
  const labelColumn = this.findLabelColumn()
132158
-
132159
132373
  let result = []
132160
132374
 
132161
132375
  if (hasSubtotal && this.subtotalConfig.groupBy && this.subtotalConfig.groupBy.length) {
132162
- // 按 groupBy 分组
132163
132376
  const groups = this.groupData(data, this.subtotalConfig.groupBy)
132164
- groups.forEach((groupRows, groupKey) => {
132165
- // 插入数据行
132377
+ groups.forEach((groupRows) => {
132166
132378
  result.push(...groupRows)
132167
- // 插入小计行
132168
- const subtotalRow = this.createSubtotalRow(groupRows, groupKey)
132379
+ const subtotalRow = this.createSubtotalRow(groupRows)
132169
132380
  result.push(subtotalRow)
132170
132381
  })
132171
132382
  } else {
132172
132383
  result = data
132173
132384
  }
132174
132385
 
132175
- // 插入总计行
132176
132386
  if (hasTotal) {
132177
132387
  const totalRow = this.createTotalRow(data)
132178
132388
  result.push(totalRow)
132179
132389
  }
132180
-
132181
132390
  return result
132182
132391
  },
132183
132392
 
132184
- // 虚拟滚动总高度
132185
- virtualTotalHeight() {
132186
- const data = this.processedTableData
132187
- return data.length * this.rowHeight
132188
- },
132189
-
132190
- // 虚拟滚动偏移量
132191
- virtualOffsetY() {
132192
- const start = Math.max(0, this.visibleStartIndex - this.bufferSize)
132193
- return start * this.rowHeight
132194
- },
132195
-
132196
- // 扁平化列配置(为每级列补充 _key)
132393
+ // 扁平化列配置,添加唯一 key
132197
132394
  flattenedColumns() {
132198
132395
  if (this.flattenedColumnsCache.length) return this.flattenedColumnsCache
132199
132396
  const assignKeys = (cols, parentPath = '') => {
@@ -132209,91 +132406,47 @@ var external_ElementUI_ = __webpack_require__("5f72");
132209
132406
  }
132210
132407
  this.flattenedColumnsCache = assignKeys(this.columns)
132211
132408
  return this.flattenedColumnsCache
132212
- },
132213
-
132214
- // 虚拟滚动时的可见数据(附带 _realIndex 供序号列使用)
132215
- visibleData() {
132216
- const data = this.processedTableData
132217
- if (!this.virtualScroll || data.length === 0) {
132218
- return data
132219
- }
132220
- const start = Math.max(0, this.visibleStartIndex - this.bufferSize)
132221
- const end = Math.min(data.length, this.visibleEndIndex + this.bufferSize)
132222
- return data.slice(start, end).map((row, i) => ({
132223
- ...row,
132224
- _realIndex: start + i
132225
- }))
132226
132409
  }
132227
132410
  },
132228
132411
 
132229
132412
  watch: {
132230
- tableData: {
132231
- handler() {
132232
- this.spanCache = {}
132233
- this.flattenedColumnsCache = []
132234
- if (this.virtualScroll) {
132235
- this.$nextTick(() => {
132236
- this.measureRowHeight()
132237
- this.updateVisibleRange()
132238
- this.syncTableLayout()
132239
- })
132240
- }
132241
- },
132242
- immediate: false
132413
+ tableData() {
132414
+ this.spanCache = {}
132415
+ this.flattenedColumnsCache = []
132243
132416
  },
132244
-
132245
132417
  columns: {
132246
132418
  handler() {
132247
132419
  this.flattenedColumnsCache = []
132248
- if (this.virtualScroll) {
132249
- this.$nextTick(() => this.syncTableLayout())
132250
- }
132420
+ this.spanCache = {}
132251
132421
  },
132252
132422
  deep: true
132253
132423
  },
132254
-
132255
- height() {
132256
- if (this.virtualScroll) {
132257
- this.$nextTick(() => this.syncTableLayout())
132258
- }
132259
- },
132260
-
132261
- maxHeight() {
132262
- if (this.virtualScroll) {
132263
- this.$nextTick(() => this.syncTableLayout())
132264
- }
132265
- },
132266
-
132267
- virtualScroll(val) {
132268
- if (val) {
132269
- this.$nextTick(() => this.initVirtualScroll())
132270
- } else {
132271
- this.destroyVirtualScroll()
132272
- }
132424
+ groupColumns: {
132425
+ handler() {
132426
+ this.spanCache = {}
132427
+ },
132428
+ deep: true
132273
132429
  }
132274
132430
  },
132275
132431
 
132276
132432
  mounted() {
132277
- if (this.virtualScroll) {
132278
- this.$nextTick(() => this.initVirtualScroll())
132279
- }
132280
- // 监听窗口resize,更新表格宽度
132281
- this.resizeHandler = () => {
132282
- if (this.virtualScroll) {
132283
- this.$nextTick(() => this.syncTableLayout())
132284
- }
132285
- }
132286
- window.addEventListener('resize', this.resizeHandler)
132433
+ this.$nextTick(() => {
132434
+ window.addEventListener('resize', this.handleResize)
132435
+ })
132287
132436
  },
132288
132437
 
132289
132438
  beforeDestroy() {
132290
- this.destroyVirtualScroll()
132291
- window.removeEventListener('resize', this.resizeHandler)
132439
+ window.removeEventListener('resize', this.handleResize)
132292
132440
  },
132293
132441
 
132294
132442
  methods: {
132295
- // ==================== 小计/总计工具函数 ====================
132296
- // 找到第一个数据列(非 selection/index),用于显示"小计"/"总计"标签
132443
+ handleResize() {
132444
+ this.$nextTick(() => {
132445
+ this.$refs.table && this.$refs.table.doLayout()
132446
+ })
132447
+ },
132448
+
132449
+ // ========== 小计 / 总计 相关 ==========
132297
132450
  findLabelColumn() {
132298
132451
  for (const col of this.columns) {
132299
132452
  if (col.children && col.children.length) {
@@ -132307,33 +132460,25 @@ var external_ElementUI_ = __webpack_require__("5f72");
132307
132460
  return { prop: '', label: '' }
132308
132461
  },
132309
132462
 
132310
- // 按指定字段分组(保持分组顺序)
132311
132463
  groupData(data, groupBy) {
132312
132464
  const map = new Map()
132313
132465
  data.forEach(row => {
132314
132466
  const key = groupBy.map(f => row[f]).join('|||')
132315
- if (!map.has(key)) {
132316
- map.set(key, [])
132317
- }
132467
+ if (!map.has(key)) map.set(key, [])
132318
132468
  map.get(key).push(row)
132319
132469
  })
132320
132470
  return map
132321
132471
  },
132322
132472
 
132323
- // 计算单列的聚合值
132324
132473
  _calcValue(rows, calc) {
132325
- // 自定义函数
132326
132474
  if (typeof calc === 'function') return calc(rows)
132327
-
132328
- // 字符串:'sum' | 'avg' | 'count' | 'min' | 'max'(需配合 prop 使用)
132329
-
132330
- // 对象:{ prop: 'field', type: 'sum' } 或 { prop: 'field' } (默认 sum)
132331
132475
  const prop = calc.prop
132332
132476
  const type = calc.type || 'sum'
132333
132477
  const vals = prop ? rows.map(r => parseFloat(r[prop]) || 0) : []
132334
132478
  switch (type) {
132335
132479
  case 'sum': return vals.reduce((s, v) => s + v, 0)
132336
- case 'avg': case 'average': return vals.length ? (vals.reduce((s, v) => s + v, 0) / vals.length) : 0
132480
+ case 'avg':
132481
+ case 'average': return vals.length ? vals.reduce((s, v) => s + v, 0) / vals.length : 0
132337
132482
  case 'count': return rows.length
132338
132483
  case 'min': return vals.length ? Math.min(...vals) : 0
132339
132484
  case 'max': return vals.length ? Math.max(...vals) : 0
@@ -132341,20 +132486,16 @@ var external_ElementUI_ = __webpack_require__("5f72");
132341
132486
  }
132342
132487
  },
132343
132488
 
132344
- // 创建小计行
132345
- createSubtotalRow(groupRows, groupKey) {
132489
+ createSubtotalRow(groupRows) {
132346
132490
  const config = this.subtotalConfig
132347
132491
  const rawLabelProp = this.findLabelColumn()
132348
-
132349
- // 获取第一个 groupBy 列的值显示
132350
132492
  const labelField = config.groupBy ? config.groupBy[0] : ''
132351
- const groupValue = groupRows[0] ? groupRows[0][labelField] : groupKey
132493
+ const groupValue = groupRows[0] ? groupRows[0][labelField] : ''
132352
132494
  const labelText = config.labelText || `${groupValue} 小计`
132353
132495
 
132354
- const row = { _rowType: 'subtotal', _groupKey: groupKey }
132496
+ const row = { _rowType: 'subtotal' }
132355
132497
  row[rawLabelProp.prop] = labelText
132356
132498
 
132357
- // 计算各列的聚合值
132358
132499
  if (config.columns) {
132359
132500
  Object.keys(config.columns).forEach(prop => {
132360
132501
  const calc = config.columns[prop]
@@ -132363,11 +132504,9 @@ var external_ElementUI_ = __webpack_require__("5f72");
132363
132504
  : this._calcValue(groupRows, calc)
132364
132505
  })
132365
132506
  }
132366
-
132367
132507
  return row
132368
132508
  },
132369
132509
 
132370
- // 创建总计行
132371
132510
  createTotalRow(allRows) {
132372
132511
  const config = this.totalConfig
132373
132512
  const rawLabelProp = this.findLabelColumn()
@@ -132376,7 +132515,6 @@ var external_ElementUI_ = __webpack_require__("5f72");
132376
132515
  const row = { _rowType: 'total' }
132377
132516
  row[rawLabelProp.prop] = labelText
132378
132517
 
132379
- // 计算各列的聚合值
132380
132518
  if (config.columns) {
132381
132519
  Object.keys(config.columns).forEach(prop => {
132382
132520
  const calc = config.columns[prop]
@@ -132385,55 +132523,40 @@ var external_ElementUI_ = __webpack_require__("5f72");
132385
132523
  : this._calcValue(allRows, calc)
132386
132524
  })
132387
132525
  }
132388
-
132389
132526
  return row
132390
132527
  },
132391
132528
 
132392
- // 行类名(小计/总计行样式)
132393
132529
  getRowClassName({ row }) {
132394
- if (!row) return ''
132395
132530
  if (row._rowType === 'subtotal') return 'ex-table-row-subtotal'
132396
132531
  if (row._rowType === 'total') return 'ex-table-row-total'
132397
132532
  return ''
132398
132533
  },
132399
132534
 
132400
- // ==================== 列配置 ====================
132535
+ // ========== 列处理 ==========
132401
132536
  getColumnProps(col) {
132402
132537
  const { _key, children, render, formatter, slot, ...props } = col
132403
132538
  return props
132404
132539
  },
132405
132540
 
132406
- // ==================== 序号方法 ====================
132407
132541
  indexMethod(index) {
132408
- if (this.virtualScroll && this.visibleData.length > 0) {
132409
- const row = this.visibleData[index]
132410
- if (row && row._realIndex !== undefined) {
132411
- return row._realIndex + 1
132412
- }
132413
- }
132414
132542
  return index + 1
132415
132543
  },
132416
132544
 
132417
- // ==================== 分组合并 ====================
132545
+ // ========== 合并单元格 ==========
132418
132546
  handleSpanMethod({ row, column, rowIndex }) {
132419
- // 跳过小计/总计行,不做合并
132420
132547
  if (row._rowType === 'subtotal' || row._rowType === 'total') {
132421
132548
  return { rowspan: 1, colspan: 1 }
132422
132549
  }
132423
-
132424
132550
  if (!this.groupColumns.length) return { rowspan: 1, colspan: 1 }
132425
132551
 
132426
- const data = this.virtualScroll ? this.visibleData : this.processedTableData
132552
+ const data = this.processedTableData
132427
132553
  const prop = column.property
132428
132554
  const groupIndex = this.groupColumns.indexOf(prop)
132429
-
132430
132555
  if (groupIndex === -1) return { rowspan: 1, colspan: 1 }
132431
132556
 
132432
- // 检查缓存
132433
132557
  const cacheKey = `${rowIndex}_${prop}`
132434
132558
  if (this.spanCache[cacheKey]) return this.spanCache[cacheKey]
132435
132559
 
132436
- // 判断当前行是否与前一行在分组列上完全相同
132437
132560
  if (rowIndex > 0) {
132438
132561
  const prevRow = data[rowIndex - 1]
132439
132562
  let isSame = true
@@ -132445,156 +132568,74 @@ var external_ElementUI_ = __webpack_require__("5f72");
132445
132568
  }
132446
132569
  }
132447
132570
  if (isSame) {
132448
- const result = { rowspan: 0, colspan: 1 }
132449
- this.spanCache[cacheKey] = result
132450
- return result
132571
+ const res = { rowspan: 0, colspan: 1 }
132572
+ this.spanCache[cacheKey] = res
132573
+ return res
132451
132574
  }
132452
132575
  }
132453
132576
 
132454
- // 向下扫描计算合并行数
132455
132577
  let count = 1
132456
132578
  for (let i = rowIndex + 1; i < data.length; i++) {
132457
132579
  const nextRow = data[i]
132458
- let isSame = true
132580
+ let same = true
132459
132581
  for (let j = 0; j <= groupIndex; j++) {
132460
132582
  const gp = this.groupColumns[j]
132461
132583
  if (nextRow[gp] !== row[gp]) {
132462
- isSame = false
132584
+ same = false
132463
132585
  break
132464
132586
  }
132465
132587
  }
132466
- if (isSame) {
132467
- count++
132468
- } else {
132469
- break
132470
- }
132588
+ if (same) count++
132589
+ else break
132471
132590
  }
132472
132591
 
132473
- const result = { rowspan: count > 1 ? count : 1, colspan: 1 }
132474
- this.spanCache[cacheKey] = result
132475
- return result
132592
+ const res = { rowspan: count > 1 ? count : 1, colspan: 1 }
132593
+ this.spanCache[cacheKey] = res
132594
+ return res
132476
132595
  },
132477
132596
 
132478
- // ==================== 选择 ====================
132597
+ // ========== 选择、排序、分页 ==========
132479
132598
  handleSelectionChange(rows) {
132480
- // 过滤掉小计/总计行
132481
132599
  this.selectedRows = rows.filter(r => !r._rowType)
132482
132600
  this.$emit('selection-change', this.selectedRows)
132483
132601
  },
132484
-
132485
- // ==================== 排序 ====================
132486
- handleSortChange({ prop, order }) {
132487
- this.$emit('sort-change', { prop, order })
132602
+ handleSortChange(info) {
132603
+ this.$emit('sort-change', info)
132488
132604
  },
132489
-
132490
- // ==================== 分页 ====================
132491
132605
  handleSizeChange(size) {
132492
132606
  this.$emit('size-change', size)
132493
132607
  },
132494
-
132495
132608
  handleCurrentChange(page) {
132496
132609
  this.$emit('page-change', page)
132497
132610
  },
132498
132611
 
132499
- // ==================== 公开方法 ====================
132612
+ // ========== 对外暴露方法 ==========
132500
132613
  getSelection() {
132501
132614
  return this.selectedRows
132502
132615
  },
132503
-
132504
132616
  clearSelection() {
132505
132617
  this.$refs.table && this.$refs.table.clearSelection()
132506
132618
  this.selectedRows = []
132507
132619
  },
132508
-
132509
132620
  toggleRowSelection(row, selected) {
132510
132621
  this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132511
132622
  },
132512
-
132513
132623
  toggleRowsSelection(rows, selected) {
132514
- if (rows && rows.length) {
132515
- rows.forEach(row => {
132516
- this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132517
- })
132518
- }
132624
+ if (!rows || !rows.length) return
132625
+ rows.forEach(row => {
132626
+ this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132627
+ })
132519
132628
  },
132520
-
132521
132629
  doLayout() {
132522
- this.syncTableLayout()
132523
- },
132524
-
132525
- // ==================== 虚拟滚动固定表头 ====================
132526
- syncTableLayout() {
132527
- const bodyTable = this.$refs.table
132528
- const headerTable = this.$refs.headerTable
132529
- if (bodyTable) bodyTable.doLayout()
132530
- if (headerTable) headerTable.doLayout()
132531
- this.syncHeaderScroll(this.scrollLeft)
132532
- },
132533
-
132534
- syncHeaderScroll(scrollLeft) {
132535
- const headerTable = this.$refs.headerTable
132536
- if (!headerTable) return
132537
- const headerWrapper = headerTable.$el.querySelector('.el-table__header-wrapper')
132538
- if (headerWrapper) {
132539
- headerWrapper.scrollLeft = scrollLeft
132540
- }
132541
- },
132542
-
132543
- // ==================== 虚拟滚动 ====================
132544
- initVirtualScroll() {
132545
- this.rowHeight = this.rowInitHeight
132546
- this.measureRowHeight()
132547
- if (this.processedTableData.length > 0) {
132548
- this.updateVisibleRange()
132549
- }
132550
- this.syncTableLayout()
132551
- },
132552
-
132553
- measureRowHeight() {
132554
- const el = this.$refs.table && this.$refs.table.$el
132555
- if (!el) return
132556
- const row = el.querySelector('.el-table__row')
132557
- if (row) {
132558
- this.rowHeight = row.offsetHeight || this.rowInitHeight
132559
- }
132560
- },
132561
-
132562
- handleBodyScroll(event) {
132563
- const target = event.target
132564
- this.scrollLeft = target.scrollLeft
132565
- if (this.virtualScroll) {
132566
- this.scrollTop = target.scrollTop
132567
- this.updateVisibleRange()
132568
- this.syncHeaderScroll(target.scrollLeft)
132569
- }
132570
- },
132571
-
132572
- updateVisibleRange() {
132573
- const totalCount = this.processedTableData.length
132574
- if (totalCount === 0 || this.rowHeight === 0) return
132575
-
132576
- const visibleCount = Math.ceil((this.computedHeight || 400) / this.rowHeight)
132577
-
132578
- this.visibleStartIndex = Math.max(0, Math.floor(this.scrollTop / this.rowHeight))
132579
- this.visibleEndIndex = Math.min(
132580
- totalCount,
132581
- this.visibleStartIndex + visibleCount
132582
- )
132583
- this.visibleCount = visibleCount
132584
- },
132585
-
132586
- destroyVirtualScroll() {
132587
- this.scrollTop = 0
132588
- this.visibleStartIndex = 0
132589
- this.visibleEndIndex = 0
132630
+ this.$refs.table && this.$refs.table.doLayout()
132590
132631
  }
132591
132632
  }
132592
132633
  });
132593
132634
 
132594
132635
  // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=script&lang=js
132595
132636
  /* harmony default export */ var components_ex_tablevue_type_script_lang_js = (ex_tablevue_type_script_lang_js);
132596
- // EXTERNAL MODULE: ./src/components/ex-table/index.vue?vue&type=style&index=0&id=78d2b726&prod&scoped=true&lang=css
132597
- var ex_tablevue_type_style_index_0_id_78d2b726_prod_scoped_true_lang_css = __webpack_require__("93f4");
132637
+ // EXTERNAL MODULE: ./src/components/ex-table/index.vue?vue&type=style&index=0&id=f6bc1634&prod&scoped=true&lang=css
132638
+ var ex_tablevue_type_style_index_0_id_f6bc1634_prod_scoped_true_lang_css = __webpack_require__("a0ef");
132598
132639
 
132599
132640
  // CONCATENATED MODULE: ./src/components/ex-table/index.vue
132600
132641
 
@@ -132607,11 +132648,11 @@ var ex_tablevue_type_style_index_0_id_78d2b726_prod_scoped_true_lang_css = __web
132607
132648
 
132608
132649
  var ex_table_component = normalizeComponent(
132609
132650
  components_ex_tablevue_type_script_lang_js,
132610
- ex_tablevue_type_template_id_78d2b726_scoped_true_render,
132611
- ex_tablevue_type_template_id_78d2b726_scoped_true_staticRenderFns,
132651
+ ex_tablevue_type_template_id_f6bc1634_scoped_true_render,
132652
+ ex_tablevue_type_template_id_f6bc1634_scoped_true_staticRenderFns,
132612
132653
  false,
132613
132654
  null,
132614
- "78d2b726",
132655
+ "f6bc1634",
132615
132656
  null
132616
132657
 
132617
132658
  )
@@ -132808,10 +132849,10 @@ const virtualScrollColumns = [
132808
132849
 
132809
132850
 
132810
132851
  // ES Module 默认导出需要通过 .default 访问
132811
- const src_utils = utils.default || utils
132852
+ const src_utils_0 = src_utils.default || src_utils
132812
132853
 
132813
132854
  // 从 utils 导入配置管理函数(仅用于存储配置)
132814
- const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getTheme, getSize: src_getSize, getPrimaryColor: src_getPrimaryColor, resetConfig: src_resetConfig, onConfigChange: src_onConfigChange, setTheme: src_setTheme, setSize: src_setSize, setPrimaryColor: src_setPrimaryColor } = src_utils
132855
+ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getTheme, getSize: src_getSize, getPrimaryColor: src_getPrimaryColor, resetConfig: src_resetConfig, onConfigChange: src_onConfigChange, setTheme: src_setTheme, setSize: src_setSize, setPrimaryColor: src_setPrimaryColor } = src_utils_0
132815
132856
 
132816
132857
  // 导入组件
132817
132858