xt-element-ui 1.2.2 → 1.2.3

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.
@@ -154,6 +154,13 @@ function startOfDay (dirtyDate) {
154
154
  module.exports = startOfDay
155
155
 
156
156
 
157
+ /***/ }),
158
+
159
+ /***/ "0c1c":
160
+ /***/ (function(module, exports, __webpack_require__) {
161
+
162
+ // extracted by mini-css-extract-plugin
163
+
157
164
  /***/ }),
158
165
 
159
166
  /***/ "0d3e":
@@ -2587,6 +2594,17 @@ function getSeconds (dirtyDate) {
2587
2594
  module.exports = getSeconds
2588
2595
 
2589
2596
 
2597
+ /***/ }),
2598
+
2599
+ /***/ "24a5":
2600
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2601
+
2602
+ "use strict";
2603
+ /* 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_314a5524_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0c1c");
2604
+ /* 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_314a5524_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_314a5524_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
2605
+ /* unused harmony reexport * */
2606
+
2607
+
2590
2608
  /***/ }),
2591
2609
 
2592
2610
  /***/ "2507":
@@ -121175,17 +121193,6 @@ function startOfToday () {
121175
121193
  module.exports = startOfToday
121176
121194
 
121177
121195
 
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
121196
  /***/ }),
121190
121197
 
121191
121198
  /***/ "3eee":
@@ -121849,6 +121856,13 @@ function isSaturday (dirtyDate) {
121849
121856
  module.exports = isSaturday
121850
121857
 
121851
121858
 
121859
+ /***/ }),
121860
+
121861
+ /***/ "493c":
121862
+ /***/ (function(module, exports, __webpack_require__) {
121863
+
121864
+ // extracted by mini-css-extract-plugin
121865
+
121852
121866
  /***/ }),
121853
121867
 
121854
121868
  /***/ "4f67":
@@ -122153,20 +122167,6 @@ function getHours (dirtyDate) {
122153
122167
  module.exports = getHours
122154
122168
 
122155
122169
 
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
122170
  /***/ }),
122171
122171
 
122172
122172
  /***/ "6254":
@@ -124802,17 +124802,6 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
124802
124802
  }
124803
124803
 
124804
124804
 
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
124805
  /***/ }),
124817
124806
 
124818
124807
  /***/ "942b":
@@ -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":
@@ -125370,6 +125370,17 @@ function isEqual (dirtyLeftDate, dirtyRightDate) {
125370
125370
  module.exports = isEqual
125371
125371
 
125372
125372
 
125373
+ /***/ }),
125374
+
125375
+ /***/ "ac06":
125376
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
125377
+
125378
+ "use strict";
125379
+ /* 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");
125380
+ /* 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__);
125381
+ /* unused harmony reexport * */
125382
+
125383
+
125373
125384
  /***/ }),
125374
125385
 
125375
125386
  /***/ "acc4":
@@ -125528,13 +125539,6 @@ function differenceInISOYears (dirtyDateLeft, dirtyDateRight) {
125528
125539
  module.exports = differenceInISOYears
125529
125540
 
125530
125541
 
125531
- /***/ }),
125532
-
125533
- /***/ "b49a":
125534
- /***/ (function(module, exports, __webpack_require__) {
125535
-
125536
- // extracted by mini-css-extract-plugin
125537
-
125538
125542
  /***/ }),
125539
125543
 
125540
125544
  /***/ "b4c7":
@@ -127041,6 +127045,13 @@ var LRU = (function () {
127041
127045
  /* harmony default export */ __webpack_exports__["a"] = (LRU);
127042
127046
 
127043
127047
 
127048
+ /***/ }),
127049
+
127050
+ /***/ "d661":
127051
+ /***/ (function(module, exports, __webpack_require__) {
127052
+
127053
+ // extracted by mini-css-extract-plugin
127054
+
127044
127055
  /***/ }),
127045
127056
 
127046
127057
  /***/ "d67a":
@@ -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,811 @@ 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
+ /* harmony default export */ var dark = ({
128182
+ color: ["#0de7ff", "#a782ff", "#fcdd60", "#0de7ff", "#ffc5a1", "#6291ae", "#13ce66"],
128183
+ backgroundColor: "#000",
128184
+ textStyle: {
128185
+ fontFamily: "Microsoft YaHei, sans-serif"
128186
+ },
128187
+ title: {
128188
+ textStyle: {
128189
+ color: "#333"
128190
+ },
128191
+ subtextStyle: {
128192
+ color: "#666666"
128193
+ }
128194
+ },
128195
+ line: {
128196
+ itemStyle: {
128197
+ },
128198
+ lineStyle: {
128199
+ width: 2
128200
+ }
128201
+ },
128202
+ bar: {
128203
+ itemStyle: {
128204
+ borderRadius: 4
128205
+ }
128206
+ },
128207
+ pie: {
128208
+ roseType: "radius",
128209
+ label: {
128210
+ color: "#333"
128211
+ }
128212
+ },
128213
+ radar: {
128214
+ indicator: {
128215
+ color: "#666666"
128216
+ }
128217
+ },
128218
+ map: {
128219
+ label: {
128220
+ color: "#333"
128221
+ },
128222
+ itemStyle: {
128223
+ borderColor: "#fff"
128224
+ }
128225
+ },
128226
+ gauge: {
128227
+ axisLine: {
128228
+ lineStyle: {
128229
+ color: [[1, "#5470c6"]]
128230
+ }
128231
+ }
128232
+ },
128233
+ toolbox: {
128234
+ iconStyle: {
128235
+ borderColor: "#666666"
128236
+ }
128237
+ },
128238
+ axisLine: {
128239
+ lineStyle: {
128240
+ color: "#DCDFE6"
128241
+ }
128242
+ },
128243
+ axisTick: {
128244
+ lineStyle: {
128245
+ color: "#DCDFE6"
128246
+ }
128247
+ },
128248
+ splitLine: {
128249
+ lineStyle: {
128250
+ color: "#ebeef5"
128251
+ }
128252
+ },
128253
+ splitArea: {
128254
+ areaStyle: {
128255
+ color: ["#f7f8fa", "#ffffff"]
128256
+ }
128257
+ },
128258
+ legend: {
128259
+ textStyle: {
128260
+ color: "#666"
128261
+ }
128262
+ },
128263
+ tooltip: {
128264
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128265
+ borderColor: "#DCDFE6",
128266
+ borderWidth: 1,
128267
+ textStyle: {
128268
+ color: "#333"
128269
+ }
128270
+ }
128271
+ });
128272
+
128273
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/blue.js
128274
+ /* harmony default export */ var blue = ({
128275
+ color: ["#2CDEB3", "#A17EE6", "#E57E40", "#409EFF"],
128276
+ backgroundColor: "#ffffff",
128277
+ textStyle: {
128278
+ fontFamily: "Microsoft YaHei, sans-serif"
128279
+ },
128280
+ title: {
128281
+ textStyle: {
128282
+ color: "#333"
128283
+ },
128284
+ subtextStyle: {
128285
+ color: "#666666"
128286
+ }
128287
+ },
128288
+ line: {
128289
+ itemStyle: {
128290
+ },
128291
+ lineStyle: {
128292
+ width: 2
128293
+ }
128294
+ },
128295
+ bar: {
128296
+ itemStyle: {
128297
+ borderRadius: 4
128298
+ }
128299
+ },
128300
+ pie: {
128301
+ roseType: "radius",
128302
+ label: {
128303
+ color: "#333"
128304
+ }
128305
+ },
128306
+ radar: {
128307
+ indicator: {
128308
+ color: "#666666"
128309
+ }
128310
+ },
128311
+ map: {
128312
+ label: {
128313
+ color: "#333"
128314
+ },
128315
+ itemStyle: {
128316
+ borderColor: "#fff"
128317
+ }
128318
+ },
128319
+ gauge: {
128320
+ axisLine: {
128321
+ lineStyle: {
128322
+ color: [[1, "#5470c6"]]
128323
+ }
128324
+ }
128325
+ },
128326
+ toolbox: {
128327
+ iconStyle: {
128328
+ borderColor: "#666666"
128329
+ }
128330
+ },
128331
+ axisLine: {
128332
+ lineStyle: {
128333
+ color: "#DCDFE6"
128334
+ }
128335
+ },
128336
+ axisTick: {
128337
+ lineStyle: {
128338
+ color: "#DCDFE6"
128339
+ }
128340
+ },
128341
+ splitLine: {
128342
+ lineStyle: {
128343
+ color: "#ebeef5"
128344
+ }
128345
+ },
128346
+ splitArea: {
128347
+ areaStyle: {
128348
+ color: ["#f7f8fa", "#ffffff"]
128349
+ }
128350
+ },
128351
+ legend: {
128352
+ textStyle: {
128353
+ color: "#666"
128354
+ }
128355
+ },
128356
+ tooltip: {
128357
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128358
+ borderColor: "#DCDFE6",
128359
+ borderWidth: 1,
128360
+ textStyle: {
128361
+ color: "#333"
128362
+ }
128363
+ }
128364
+ });
128365
+
128366
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/starry.js
128367
+ /* harmony default export */ var starry = ({
128368
+ color: [
128369
+ "#1685a9", // 石青
128370
+ "#21a675", // 松柏绿
128371
+ "#1bd1a5", // 飞燕草蓝
128372
+ "#8c4356", // 绛紫
128373
+ "#0dafc6", // 孔雀蓝
128374
+ "#4b5cc4", // 宝蓝
128375
+ "#758a99", // 墨灰
128376
+ "#cca4e3", // 丁香色
128377
+ "#205277", // 靛青色
128378
+ "#d9b611", // 秋香色
128379
+ "#ff8c31", // 杏红
128380
+ "#9d2933", // 胭脂
128381
+ "#0288c5", // 浅靛青蓝
128382
+ "#44cef6" // 天蓝色
128383
+ ],
128384
+ backgroundColor: "#ffffff",
128385
+ textStyle: {
128386
+ fontFamily: "Microsoft YaHei, sans-serif"
128387
+ },
128388
+ title: {
128389
+ textStyle: {
128390
+ color: "#333"
128391
+ },
128392
+ subtextStyle: {
128393
+ color: "#666666"
128394
+ }
128395
+ },
128396
+ line: {
128397
+ itemStyle: {
128398
+ },
128399
+ lineStyle: {
128400
+ width: 2
128401
+ }
128402
+ },
128403
+ bar: {
128404
+ itemStyle: {
128405
+ borderRadius: 4
128406
+ }
128407
+ },
128408
+ pie: {
128409
+ roseType: "radius",
128410
+ label: {
128411
+ color: "#333"
128412
+ }
128413
+ },
128414
+ radar: {
128415
+ indicator: {
128416
+ color: "#666666"
128417
+ }
128418
+ },
128419
+ map: {
128420
+ label: {
128421
+ color: "#333"
128422
+ },
128423
+ itemStyle: {
128424
+ borderColor: "#fff"
128425
+ }
128426
+ },
128427
+ gauge: {
128428
+ axisLine: {
128429
+ lineStyle: {
128430
+ color: [[1, "#5470c6"]]
128431
+ }
128432
+ }
128433
+ },
128434
+ toolbox: {
128435
+ iconStyle: {
128436
+ borderColor: "#666666"
128437
+ }
128438
+ },
128439
+ axisLine: {
128440
+ lineStyle: {
128441
+ color: "#DCDFE6"
128442
+ }
128443
+ },
128444
+ axisTick: {
128445
+ lineStyle: {
128446
+ color: "#DCDFE6"
128447
+ }
128448
+ },
128449
+ splitLine: {
128450
+ lineStyle: {
128451
+ color: "#ebeef5"
128452
+ }
128453
+ },
128454
+ splitArea: {
128455
+ areaStyle: {
128456
+ color: ["#f7f8fa", "#ffffff"]
128457
+ }
128458
+ },
128459
+ legend: {
128460
+ textStyle: {
128461
+ color: "#666"
128462
+ }
128463
+ },
128464
+ tooltip: {
128465
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128466
+ borderColor: "#DCDFE6",
128467
+ borderWidth: 1,
128468
+ textStyle: {
128469
+ color: "#333"
128470
+ }
128471
+ }
128472
+ });
128473
+
128474
+ // CONCATENATED MODULE: ./src/components/ex-chart/theme/orange.js
128475
+ /* harmony default export */ var orange = ({
128476
+ color: ["#e69419", "#A5b4da", "#F8792C", "#97bfb4", "#de747b", "#d6bac0", "#e62737", "#f35969", "#f1ccb0", "#b7394e", "#fe9c1c2"],
128477
+ backgroundColor: "#ffffff",
128478
+ textStyle: {
128479
+ fontFamily: "Microsoft YaHei, sans-serif"
128480
+ },
128481
+ title: {
128482
+ textStyle: {
128483
+ color: "#333"
128484
+ },
128485
+ subtextStyle: {
128486
+ color: "#666666"
128487
+ }
128488
+ },
128489
+ line: {
128490
+ itemStyle: {
128491
+ color: "#e69419"
128492
+ },
128493
+ lineStyle: {
128494
+ width: 2
128495
+ }
128496
+ },
128497
+ bar: {
128498
+ itemStyle: {
128499
+ borderRadius: 4
128500
+ }
128501
+ },
128502
+ pie: {
128503
+ roseType: "radius",
128504
+ label: {
128505
+ color: "#333"
128506
+ }
128507
+ },
128508
+ radar: {
128509
+ indicator: {
128510
+ color: "#666666"
128511
+ }
128512
+ },
128513
+ map: {
128514
+ label: {
128515
+ color: "#333"
128516
+ },
128517
+ itemStyle: {
128518
+ borderColor: "#fff"
128519
+ }
128520
+ },
128521
+ gauge: {
128522
+ axisLine: {
128523
+ lineStyle: {
128524
+ color: [[1, "#5470c6"]]
128525
+ }
128526
+ }
128527
+ },
128528
+ toolbox: {
128529
+ iconStyle: {
128530
+ borderColor: "#666666"
128531
+ }
128532
+ },
128533
+ axisLine: {
128534
+ lineStyle: {
128535
+ color: "#DCDFE6"
128536
+ }
128537
+ },
128538
+ axisTick: {
128539
+ lineStyle: {
128540
+ color: "#DCDFE6"
128541
+ }
128542
+ },
128543
+ splitLine: {
128544
+ lineStyle: {
128545
+ color: "#ebeef5"
128546
+ }
128547
+ },
128548
+ splitArea: {
128549
+ areaStyle: {
128550
+ color: ["#f7f8fa", "#ffffff"]
128551
+ }
128552
+ },
128553
+ legend: {
128554
+ textStyle: {
128555
+ color: "#666"
128556
+ }
128557
+ },
128558
+ tooltip: {
128559
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
128560
+ borderColor: "#DCDFE6",
128561
+ borderWidth: 1,
128562
+ textStyle: {
128563
+ color: "#333"
128564
+ }
128565
+ }
128566
+ });
128567
+
128568
+ // CONCATENATED MODULE: ./src/components/ex-chart/utils.js
128569
+
128570
+
128571
+
128572
+
128573
+
128574
+
128575
+ const themeKeys = {
128576
+ "default": white,
128577
+ "white": white,
128578
+ "dark": dark,
128579
+ "blue": blue,
128580
+ "starry": starry,
128581
+ "orange": orange
128582
+ };
128583
+
128584
+ // echarts 仅在客户端加载,避免 SSR 编译/渲染报错
128585
+ let echarts = null;
128586
+
128587
+ function getEcharts() {
128588
+ if (!echarts && typeof window !== 'undefined') {
128589
+ try {
128590
+ echarts = __webpack_require__("313e");
128591
+ // 注册所有主题
128592
+ for (const key in themeKeys) {
128593
+ echarts.registerTheme(key, themeKeys[key]);
128594
+ }
128595
+ } catch (e) {
128596
+ console.warn('[ExChart] echarts 加载失败:', e.message);
128597
+ }
128598
+ }
128599
+ return echarts;
128600
+ }
128601
+
128602
+ // 字体大小配置
128603
+ const fontSizeMap = {
128604
+ small: {
128605
+ title: 14,
128606
+ subtitle: 11,
128607
+ legend: 11,
128608
+ axisLabel: 10,
128609
+ tooltip: 11,
128610
+ label: 11
128611
+ },
128612
+ medium: {
128613
+ title: 16,
128614
+ subtitle: 12,
128615
+ legend: 12,
128616
+ axisLabel: 12,
128617
+ tooltip: 12,
128618
+ label: 12
128619
+ },
128620
+ large: {
128621
+ title: 18,
128622
+ subtitle: 14,
128623
+ legend: 14,
128624
+ axisLabel: 14,
128625
+ tooltip: 14,
128626
+ label: 14
128627
+ }
128628
+ };
128629
+
128630
+ function EchartsUtil() {}
128631
+
128632
+ EchartsUtil.currentTheme = "default";
128633
+ EchartsUtil.currentSize = "medium";
128634
+ EchartsUtil.inverse = false;
128635
+
128636
+ EchartsUtil.EchartsUtil = {
128637
+ backgroundColor: "transparent",
128638
+ tooltip: {
128639
+ trigger: "axis",
128640
+ borderWidth: 1
128641
+ },
128642
+ legend: {
128643
+ right: 20,
128644
+ top: 0,
128645
+ show: true,
128646
+ textStyle: {
128647
+ fontSize: 12
128648
+ }
128649
+ },
128650
+ grid: {
128651
+ top: "25%",
128652
+ left: "40",
128653
+ right: "15",
128654
+ bottom: "40"
128655
+ },
128656
+ xAxis: {
128657
+ type: "category",
128658
+ boundaryGap: false,
128659
+ axisTick: {
128660
+ show: true,
128661
+ length: 4
128662
+ },
128663
+ axisLabel: {
128664
+ fontSize: 12,
128665
+ interval: 0,
128666
+ formatter: function(value) {
128667
+ return !this.reverse && this.longLable ? value.replace(new RegExp(`(.{${this.longLableSplitNum}})`, "g"), `$1\n`) : value;
128668
+ }
128669
+ }
128670
+ },
128671
+ yAxis: {
128672
+ type: "value",
128673
+ axisTick: {
128674
+ show: false
128675
+ },
128676
+ min: null,
128677
+ max: null,
128678
+ axisLabel: {
128679
+ show: false
128680
+ },
128681
+ splitLine: {
128682
+ lineStyle: {
128683
+ type: "dashed",
128684
+ width: 1
128685
+ }
128686
+ }
128687
+ }
128688
+ };
128689
+
128690
+ EchartsUtil.chartInstanceList = [];
128691
+
128692
+ EchartsUtil.mergeOptions = function(themeOption, customOption) {
128693
+ return Object.assign({}, this.baseOption, themeOption, customOption);
128694
+ };
128695
+
128696
+ // 根据字体大小调整主题配置
128697
+ EchartsUtil.applyFontSize = function(themeOption, size) {
128698
+ const fontSizeConfig = fontSizeMap[size] || fontSizeMap.medium;
128699
+
128700
+ const result = JSON.parse(JSON.stringify(themeOption));
128701
+
128702
+ // 调整标题字体大小
128703
+ if (result.title && result.title.textStyle) {
128704
+ result.title.textStyle.fontSize = fontSizeConfig.title;
128705
+ }
128706
+ if (result.title && result.title.subtextStyle) {
128707
+ result.title.subtextStyle.fontSize = fontSizeConfig.subtitle;
128708
+ }
128709
+
128710
+ // 调整图例字体大小
128711
+ if (result.legend && result.legend.textStyle) {
128712
+ result.legend.textStyle.fontSize = fontSizeConfig.legend;
128713
+ }
128714
+
128715
+ // 调整提示框字体大小
128716
+ if (result.tooltip && result.tooltip.textStyle) {
128717
+ result.tooltip.textStyle.fontSize = fontSizeConfig.tooltip;
128718
+ }
128719
+
128720
+ // 调整饼图标签字体大小
128721
+ if (result.pie && result.pie.label) {
128722
+ if (typeof result.pie.label === 'object') {
128723
+ result.pie.label.fontSize = fontSizeConfig.label;
128724
+ }
128725
+ }
128726
+
128727
+ // 调整雷达图指示器字体大小
128728
+ if (result.radar && result.radar.indicator) {
128729
+ if (typeof result.radar.indicator === 'object' && result.radar.indicator.textStyle) {
128730
+ result.radar.indicator.textStyle.fontSize = fontSizeConfig.label;
128731
+ }
128732
+ }
128733
+
128734
+ // 调整地图标签字体大小
128735
+ if (result.map && result.map.label) {
128736
+ if (typeof result.map.label === 'object') {
128737
+ result.map.label.fontSize = fontSizeConfig.label;
128738
+ }
128739
+ }
128740
+
128741
+ return result;
128742
+ };
128743
+
128744
+ EchartsUtil.init = function(dom, theme, customOption, size) {
128745
+ const ec = getEcharts();
128746
+ // SSR 环境下忽略初始化
128747
+ if (!ec || !dom) return null;
128748
+
128749
+ theme = theme || "default";
128750
+ size = size || "medium";
128751
+ customOption = customOption || {};
128752
+
128753
+ const useTheme = this.currentTheme || theme;
128754
+ const useSize = this.currentSize || size;
128755
+
128756
+ this.currentTheme = useTheme;
128757
+ this.currentSize = useSize;
128758
+
128759
+ let themeOption = themeKeys[useTheme];
128760
+ // 应用字体大小配置
128761
+ themeOption = this.applyFontSize(themeOption, useSize);
128762
+
128763
+ const option = this.mergeOptions(themeOption, customOption);
128764
+
128765
+ const chart = ec.init(dom, useTheme);
128766
+ chart.setOption(option, true);
128767
+
128768
+ this.chartInstanceList.push({
128769
+ dom,
128770
+ chart,
128771
+ customOption,
128772
+ size: useSize
128773
+ });
128774
+
128775
+ this.bindResize(chart);
128776
+ return chart;
128777
+ };
128778
+
128779
+ EchartsUtil.changeSingleTheme = function(dom, chartIns, customOption, newTheme) {
128780
+ const ec = getEcharts();
128781
+ if (!ec || !dom || !chartIns) return;
128782
+
128783
+ customOption = customOption || {};
128784
+ newTheme = newTheme || "default";
128785
+
128786
+ this.currentTheme = newTheme;
128787
+ chartIns.dispose();
128788
+
128789
+ const newChart = ec.init(dom, newTheme, customOption);
128790
+
128791
+ const item = this.chartInstanceList.find(function(v) {
128792
+ return v.dom === dom;
128793
+ });
128794
+
128795
+ if (item) {
128796
+ item.chart = newChart;
128797
+ }
128798
+
128799
+ return newChart;
128800
+ };
128801
+
128802
+ EchartsUtil.changeAllTheme = function(newTheme, newSize) {
128803
+ const ec = getEcharts();
128804
+ if (!ec || !newTheme) return;
128805
+
128806
+ this.currentTheme = newTheme;
128807
+ // 如果传入了新的 size,则更新全局 size
128808
+ if (newSize) {
128809
+ this.currentSize = newSize;
128810
+ }
128811
+
128812
+ this.chartInstanceList.forEach(function(item) {
128813
+ const dom = item.dom;
128814
+ const chart = item.chart;
128815
+ const customOption = item.customOption;
128816
+ // 使用图表自己的 size,如果没有则使用全局 size
128817
+ const useSize = item.size || EchartsUtil.currentSize;
128818
+
128819
+ if (chart) {
128820
+ chart.dispose();
128821
+ }
128822
+
128823
+ const newChart = ec.init(dom, newTheme);
128824
+ let themeOption = themeKeys[newTheme];
128825
+ // 应用字体大小配置
128826
+ themeOption = EchartsUtil.applyFontSize(themeOption, useSize);
128827
+ const option = EchartsUtil.mergeOptions(themeOption, customOption);
128828
+
128829
+ newChart.setOption(option, true);
128830
+ item.chart = newChart;
128831
+ // 更新图表的 size 记录
128832
+ item.size = useSize;
128833
+ EchartsUtil.bindResize(newChart);
128834
+ });
128835
+ };
128836
+
128837
+ EchartsUtil.bindResize = function(chartIns) {
128838
+ if (!chartIns || chartIns.resizeLocked) return;
128839
+
128840
+ window.addEventListener("resize", function() {
128841
+ chartIns.resize();
128842
+ });
128843
+
128844
+ chartIns._resizeLocked = true;
128845
+ };
128846
+
128847
+ EchartsUtil.destroy = function(chartIns) {
128848
+ if (chartIns) {
128849
+ chartIns.dispose();
128850
+ }
128851
+
128852
+ this.chartInstanceList = this.chartInstanceList.filter(function(item) {
128853
+ return item.chart !== chartIns;
128854
+ });
128855
+ };
128856
+
128857
+ EchartsUtil.destroyAll = function() {
128858
+ this.chartInstanceList.forEach(function(item) {
128859
+ if (item.chart) {
128860
+ item.chart.dispose();
128861
+ }
128862
+ });
128863
+
128864
+ this.chartInstanceList = [];
128865
+ };
128866
+
128867
+ /* harmony default export */ var utils = (EchartsUtil);
128868
+
128869
+
128870
+
128057
128871
  // CONCATENATED MODULE: ./src/utils/index.js
128872
+
128058
128873
  // 默认配置
128059
128874
  const defaultConfig = {
128060
128875
  theme: 'white',
@@ -128101,7 +128916,7 @@ const setConfig = function(config) {
128101
128916
  }
128102
128917
 
128103
128918
 
128104
- // 设置主题
128919
+ // 设置主题 并更新图表主题
128105
128920
  const setTheme = function(theme) {
128106
128921
  const validThemes = ['white', 'dark']
128107
128922
  if (!validThemes.includes(theme)) {
@@ -128116,9 +128931,13 @@ const setTheme = function(theme) {
128116
128931
  if (theme === 'dark') {
128117
128932
  root.setAttribute('data-theme', 'dark')
128118
128933
  } else {
128119
- root.removeAttribute('data-theme')
128934
+ root.setAttribute('data-theme', theme)
128120
128935
  }
128121
128936
 
128937
+ // 更新图表主题
128938
+ utils.changeAllTheme(currentConfig.theme, currentConfig.size)
128939
+ console.log('更新图表主题')
128940
+
128122
128941
  emitConfigChange('theme', theme)
128123
128942
  }
128124
128943
 
@@ -128132,6 +128951,10 @@ const setSize = function(size) {
128132
128951
 
128133
128952
  currentConfig.size = size
128134
128953
  document.documentElement.setAttribute('data-size', size)
128954
+ // 更新图表主题
128955
+ utils.changeAllTheme(currentConfig.theme, currentConfig.size)
128956
+ console.log('更新图表字体')
128957
+
128135
128958
  emitConfigChange('size', size)
128136
128959
  }
128137
128960
 
@@ -128236,7 +129059,7 @@ const onConfigChange = function(listener) {
128236
129059
  }
128237
129060
  }
128238
129061
 
128239
- /* harmony default export */ var utils = ({
129062
+ /* harmony default export */ var src_utils = ({
128240
129063
  setTheme,
128241
129064
  setSize,
128242
129065
  setPrimaryColor,
@@ -128689,6 +129512,7 @@ var xt_card_item_component = normalizeComponent(
128689
129512
  /* harmony default export */ var components_xt_card_item = (xt_card_item);
128690
129513
  // 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
129514
 
129515
+
128692
129516
  /* harmony default export */ var xt_config_providervue_type_script_lang_js = ({
128693
129517
  name: 'XtConfigProvider',
128694
129518
  inheritAttrs: false,
@@ -128829,9 +129653,9 @@ var xt_card_item_component = normalizeComponent(
128829
129653
  }
128830
129654
 
128831
129655
  const sizeMap = {
128832
- small: '12px',
128833
- medium: '14px',
128834
- large: '16px'
129656
+ small: '14px',
129657
+ medium: '16px',
129658
+ large: '18px'
128835
129659
  }
128836
129660
  if (sizeMap[this.size]) {
128837
129661
  result['--xt-font-size-base'] = sizeMap[this.size]
@@ -128998,6 +129822,9 @@ var xt_card_item_component = normalizeComponent(
128998
129822
 
128999
129823
  // 设置 data-theme 属性
129000
129824
  element.setAttribute('data-theme', this.theme)
129825
+
129826
+ // 更新图表颜色
129827
+ utils.changeAllTheme(this.theme, this.size, this.primaryColor)
129001
129828
 
129002
129829
  // 触发主题改变钩子(当主题实际发生变化时)
129003
129830
  if (prevTheme !== this.theme && typeof this.onThemeChange === 'function') {
@@ -129040,8 +129867,8 @@ var xt_card_item_component = normalizeComponent(
129040
129867
 
129041
129868
  // CONCATENATED MODULE: ./src/components/xt-config-provider/index.vue?vue&type=script&lang=js
129042
129869
  /* 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");
129870
+ // EXTERNAL MODULE: ./src/components/xt-config-provider/index.vue?vue&type=style&index=0&id=314a5524&prod&scoped=true&lang=css
129871
+ var xt_config_providervue_type_style_index_0_id_314a5524_prod_scoped_true_lang_css = __webpack_require__("24a5");
129045
129872
 
129046
129873
  // CONCATENATED MODULE: ./src/components/xt-config-provider/index.vue
129047
129874
  var xt_config_provider_render, xt_config_provider_staticRenderFns
@@ -129058,7 +129885,7 @@ var xt_config_provider_component = normalizeComponent(
129058
129885
  xt_config_provider_staticRenderFns,
129059
129886
  false,
129060
129887
  null,
129061
- "279f5e29",
129888
+ "314a5524",
129062
129889
  null
129063
129890
 
129064
129891
  )
@@ -129808,13 +130635,13 @@ var xt_date_picker_component = normalizeComponent(
129808
130635
  // CONCATENATED MODULE: ./src/components/xt-date-picker/index.js
129809
130636
 
129810
130637
  /* 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)
130638
+ // 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
130639
+ 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
130640
  }
129814
- var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
130641
+ var ex_buttonvue_type_template_id_1b7e9238_staticRenderFns = []
129815
130642
 
129816
130643
 
129817
- // CONCATENATED MODULE: ./src/components/ex-button/index.vue?vue&type=template&id=4c2fec21
130644
+ // CONCATENATED MODULE: ./src/components/ex-button/index.vue?vue&type=template&id=1b7e9238
129818
130645
 
129819
130646
  // 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
130647
 
@@ -129843,7 +130670,7 @@ var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
129843
130670
  size: {
129844
130671
  type: String,
129845
130672
  default: null,
129846
- validator: (val) => !val || ['small', 'medium', 'large'].includes(val)
130673
+ validator: (val) => !val || ['mini', 'small', 'medium', 'large'].includes(val)
129847
130674
  }
129848
130675
  },
129849
130676
  data() {
@@ -129886,8 +130713,8 @@ var ex_buttonvue_type_template_id_4c2fec21_staticRenderFns = []
129886
130713
 
129887
130714
  var ex_button_component = normalizeComponent(
129888
130715
  components_ex_buttonvue_type_script_lang_js,
129889
- ex_buttonvue_type_template_id_4c2fec21_render,
129890
- ex_buttonvue_type_template_id_4c2fec21_staticRenderFns,
130716
+ ex_buttonvue_type_template_id_1b7e9238_render,
130717
+ ex_buttonvue_type_template_id_1b7e9238_staticRenderFns,
129891
130718
  false,
129892
130719
  null,
129893
130720
  null,
@@ -129915,809 +130742,6 @@ var ExBarvue_type_template_id_10acd2fc_scoped_true_staticRenderFns = []
129915
130742
 
129916
130743
  // CONCATENATED MODULE: ./src/components/ex-chart/ExBar.vue?vue&type=template&id=10acd2fc&scoped=true
129917
130744
 
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
130745
  // 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
130746
 
130723
130747
 
@@ -130910,7 +130934,7 @@ EchartsUtil.destroyAll = function() {
130910
130934
  if (!this.markPoint) {
130911
130935
  this.$delete(option.series[0], "markPoint");
130912
130936
  }
130913
- this.myChart = ex_chart_utils.init(_self.$refs.barchart, this.theme, option, this.size);
130937
+ this.myChart = utils.init(_self.$refs.barchart, this.theme, option, this.size);
130914
130938
  }
130915
130939
  }
130916
130940
  });
@@ -131084,7 +131108,7 @@ var ExLinevue_type_template_id_386a9c5d_scoped_true_staticRenderFns = []
131084
131108
  }]
131085
131109
  };
131086
131110
 
131087
- this.myChart = ex_chart_utils.init(_self.$refs.linechart, this.theme, option, this.size);
131111
+ this.myChart = utils.init(_self.$refs.linechart, this.theme, option, this.size);
131088
131112
  }
131089
131113
  }
131090
131114
  });
@@ -131271,7 +131295,7 @@ var ExPievue_type_template_id_5100b648_scoped_true_staticRenderFns = []
131271
131295
  })
131272
131296
  }]
131273
131297
  };
131274
- this.myChart = ex_chart_utils.init(_self.$refs.piechart, this.theme, option, this.size);
131298
+ this.myChart = utils.init(_self.$refs.piechart, this.theme, option, this.size);
131275
131299
  }
131276
131300
  }
131277
131301
  });
@@ -131531,7 +131555,7 @@ var ExMultivue_type_template_id_18661424_scoped_true_staticRenderFns = []
131531
131555
  ],
131532
131556
  series: this.getSeriesData()
131533
131557
  };
131534
- this.myChart = ex_chart_utils.init(_self.$refs.multilinechart, this.theme, option, this.size);
131558
+ this.myChart = utils.init(_self.$refs.multilinechart, this.theme, option, this.size);
131535
131559
  },
131536
131560
  getSeriesData() {
131537
131561
  // 创建 24小时 时间数据填充对象
@@ -131710,7 +131734,7 @@ var ExTrendvue_type_template_id_36cddc14_scoped_true_staticRenderFns = []
131710
131734
  const _self = this;
131711
131735
  // 数据处理
131712
131736
  const option = this.getOption();
131713
- this.myChart = ex_chart_utils.init(_self.$refs.barchart, this.theme, option, this.size);
131737
+ this.myChart = utils.init(_self.$refs.barchart, this.theme, option, this.size);
131714
131738
  }
131715
131739
  }
131716
131740
  });
@@ -131996,13 +132020,13 @@ ex_card.install = function (Vue) {
131996
132020
 
131997
132021
  /* harmony default export */ var components_ex_card = (ex_card);
131998
132022
 
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()])
132023
+ // 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
132024
+ 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
132025
  }
132002
- var ex_tablevue_type_template_id_78d2b726_scoped_true_staticRenderFns = []
132026
+ var ex_tablevue_type_template_id_f6bc1634_scoped_true_staticRenderFns = []
132003
132027
 
132004
132028
 
132005
- // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=template&id=78d2b726&scoped=true
132029
+ // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=template&id=f6bc1634&scoped=true
132006
132030
 
132007
132031
  // 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
132032
 
@@ -132021,9 +132045,10 @@ var ex_tablevue_type_template_id_78d2b726_scoped_true_staticRenderFns = []
132021
132045
  index: ctx.props.index
132022
132046
  }
132023
132047
  if (ctx.props.column) params.column = ctx.props.column
132024
- const isVnode = (it) => typeof it === 'object' && it.hasOwnProperty('componentOptions')
132048
+ const isVnode = (it) => it !== null && it !== undefined && typeof it === 'object' && it.hasOwnProperty('componentOptions')
132025
132049
  const renderNode = ctx.props.formatter(h, params)
132026
- return isVnode(renderNode) ? renderNode : h('span', renderNode)
132050
+ if (renderNode === null || renderNode === undefined || renderNode === '') return h('span', '')
132051
+ return isVnode(renderNode) ? renderNode : h('span', String(renderNode))
132027
132052
  }
132028
132053
  });
132029
132054
 
@@ -132049,74 +132074,293 @@ var ExTableCell_component = normalizeComponent(
132049
132074
  )
132050
132075
 
132051
132076
  /* harmony default export */ var ExTableCell = (ExTableCell_component.exports);
132052
- // EXTERNAL MODULE: external "ElementUI"
132053
- var external_ElementUI_ = __webpack_require__("5f72");
132077
+ // 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
132078
+ 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)
132079
+ }
132080
+ var VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_staticRenderFns = []
132081
+
132082
+
132083
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=template&id=5eb34e1c&scoped=true
132084
+
132085
+ // 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
132086
+
132087
+ /* harmony default export */ var VirtualElTablevue_type_script_lang_js = ({
132088
+ name: 'VirtualElTable',
132089
+ inheritAttrs: false,
132090
+
132091
+ props: {
132092
+ virtualScroll: {
132093
+ type: Boolean,
132094
+ default: false
132095
+ },
132096
+ rowHeight: {
132097
+ type: Number,
132098
+ default: 48
132099
+ },
132100
+ bufferSize: {
132101
+ type: Number,
132102
+ default: 5
132103
+ }
132104
+ },
132105
+
132106
+ data() {
132107
+ return {
132108
+ scrollWrap: null,
132109
+ phantomDom: null,
132110
+ scrollTop: 0,
132111
+ // 根据数据量与容器高度预先估算一个合理的 endIndex,避免首屏只渲染 0 行
132112
+ startIndex: 0,
132113
+ endIndex: 20,
132114
+ rafId: null,
132115
+ unwatchPhantom: null,
132116
+ layoutTimer: null,
132117
+ retryTimers: []
132118
+ }
132119
+ },
132120
+
132121
+ computed: {
132122
+ originData() {
132123
+ return this.$attrs.data || []
132124
+ },
132125
+ renderList() {
132126
+ if (!this.virtualScroll) return this.originData
132127
+ const start = Math.max(0, this.startIndex - this.bufferSize)
132128
+ const end = Math.min(this.originData.length, this.endIndex + this.bufferSize)
132129
+ return this.originData.slice(start, end)
132130
+ },
132131
+ totalListHeight() {
132132
+ return this.originData.length * this.rowHeight
132133
+ },
132134
+ contentOffsetY() {
132135
+ return Math.max(0, this.startIndex - this.bufferSize) * this.rowHeight
132136
+ }
132137
+ },
132138
+
132139
+ watch: {
132140
+ renderList() {
132141
+ this.scheduleLayout()
132142
+ },
132143
+ originData: {
132144
+ handler(val) {
132145
+ if (!this.virtualScroll) return
132146
+ if (val && val.length) {
132147
+ this.$nextTick(() => {
132148
+ this.calcVisibleRange()
132149
+ })
132150
+ }
132151
+ }
132152
+ }
132153
+ },
132154
+
132155
+ mounted() {
132156
+ this.$nextTick(() => {
132157
+ this.initVirtualScroll()
132158
+ })
132159
+ },
132160
+
132161
+ beforeDestroy() {
132162
+ this.unbindScrollEvent()
132163
+ if (this.rafId) {
132164
+ cancelAnimationFrame(this.rafId)
132165
+ this.rafId = null
132166
+ }
132167
+ if (this.unwatchPhantom) {
132168
+ this.unwatchPhantom()
132169
+ this.unwatchPhantom = null
132170
+ }
132171
+ if (this.layoutTimer) {
132172
+ clearTimeout(this.layoutTimer)
132173
+ this.layoutTimer = null
132174
+ }
132175
+ this.retryTimers.forEach(t => clearTimeout(t))
132176
+ this.retryTimers = []
132177
+ },
132178
+
132179
+ methods: {
132180
+ initVirtualScroll() {
132181
+ if (!this.virtualScroll) return
132182
+ this.scrollWrap = this.$refs.innerTable.$el.querySelector('.el-table__body-wrapper')
132183
+ if (!this.scrollWrap) {
132184
+ console.warn('[VirtualElTable] 无法找到滚动容器,虚拟滚动功能已禁用')
132185
+ this.virtualScroll = false
132186
+ return
132187
+ }
132188
+
132189
+ this.scrollWrap.style.overflowY = 'auto'
132190
+ this.scrollWrap.style.overflowX = 'auto'
132191
+
132192
+ this.wrapTableBody()
132193
+ this.scrollWrap.addEventListener('scroll', this.onScroll, { passive: true })
132194
+
132195
+ // 首次可见范围计算 + 多次重试:
132196
+ // ElementUI 的 el-table 在 mounted 后仍会异步完成列宽/高度布局,
132197
+ // 单次 $nextTick 可能拿到 clientHeight=0,导致计算失败且无法恢复。
132198
+ // 以递增延迟多次调用,直到 scrollWrap.clientHeight 获得稳定值。
132199
+ this.calcVisibleRange()
132200
+ const delays = [100, 300, 600, 1000]
132201
+ delays.forEach(ms => {
132202
+ const timer = setTimeout(() => {
132203
+ this.calcVisibleRange()
132204
+ }, ms)
132205
+ this.retryTimers.push(timer)
132206
+ })
132207
+ },
132208
+
132209
+ wrapTableBody() {
132210
+ const bodyDom = this.scrollWrap.querySelector('.el-table__body')
132211
+ if (!bodyDom || bodyDom.querySelector('.vs-phantom')) return
132212
+
132213
+ // phantom 采用标准 block 布局:
132214
+ // - height = 总数据高度,确保撑开 body-wrapper 的滚动条
132215
+ // - padding-top = 可见区域偏移量,将 table 推到正确位置
132216
+ // - min-width: 100%(不设 width),允许 table 自然撑开,保证列宽生效
132217
+ const phantom = document.createElement('div')
132218
+ phantom.className = 'vs-phantom'
132219
+ phantom.style.position = 'relative'
132220
+ phantom.style.minWidth = '100%'
132221
+ phantom.style.boxSizing = 'border-box'
132222
+ phantom.style.zIndex = '1'
132223
+ this.phantomDom = phantom
132224
+
132225
+ const table = bodyDom.querySelector('table')
132226
+ phantom.appendChild(table)
132227
+ bodyDom.appendChild(phantom)
132228
+
132229
+ this.unwatchPhantom = this.$watch(
132230
+ ['totalListHeight', 'contentOffsetY'],
132231
+ () => {
132232
+ if (this.phantomDom) {
132233
+ this.phantomDom.style.height = `${this.totalListHeight}px`
132234
+ this.phantomDom.style.paddingTop = `${this.contentOffsetY}px`
132235
+ }
132236
+ },
132237
+ { immediate: true }
132238
+ )
132239
+ },
132240
+
132241
+ onScroll() {
132242
+ this.scrollTop = this.scrollWrap.scrollTop
132243
+ if (this.rafId) return
132244
+ this.rafId = requestAnimationFrame(() => {
132245
+ this.calcVisibleRange()
132246
+ this.rafId = null
132247
+ })
132248
+ },
132249
+
132250
+ calcVisibleRange() {
132251
+ if (!this.scrollWrap) return
132252
+ let viewHeight = this.scrollWrap.clientHeight
132253
+
132254
+ // 关键兜底:ElementUI 异步布局尚未完成时,clientHeight 可能为 0,
132255
+ // 此时用组件接收到的 height / max-height 作为估算值,确保至少能渲染正确数量的行。
132256
+ if (!viewHeight) {
132257
+ const h = this.$attrs.height || this.$attrs.maxHeight
132258
+ if (h) {
132259
+ viewHeight = typeof h === 'number' ? h : parseInt(String(h), 10)
132260
+ }
132261
+ }
132262
+ if (!viewHeight || viewHeight <= 0) return
132263
+
132264
+ const visibleRowCount = Math.ceil(viewHeight / this.rowHeight)
132265
+ const newStart = Math.floor(this.scrollTop / this.rowHeight)
132266
+ const newEnd = Math.min(this.originData.length, newStart + visibleRowCount)
132267
+
132268
+ if (newStart !== this.startIndex || newEnd !== this.endIndex) {
132269
+ this.startIndex = newStart
132270
+ this.endIndex = newEnd
132271
+ }
132272
+ },
132273
+
132274
+ unbindScrollEvent() {
132275
+ if (this.scrollWrap) {
132276
+ this.scrollWrap.removeEventListener('scroll', this.onScroll)
132277
+ }
132278
+ },
132279
+
132280
+ scheduleLayout() {
132281
+ if (this.layoutTimer) return
132282
+ this.layoutTimer = setTimeout(() => {
132283
+ if (this.$refs.innerTable) {
132284
+ this.$refs.innerTable.doLayout()
132285
+ }
132286
+ this.layoutTimer = null
132287
+ }, 0)
132288
+ },
132289
+
132290
+ clearSelection() {
132291
+ return this.$refs.innerTable.clearSelection()
132292
+ },
132293
+ toggleRowSelection() {
132294
+ return this.$refs.innerTable.toggleRowSelection()
132295
+ },
132296
+ doLayout() {
132297
+ return this.$refs.innerTable.doLayout()
132298
+ }
132299
+ }
132300
+ });
132301
+
132302
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=script&lang=js
132303
+ /* harmony default export */ var ex_table_VirtualElTablevue_type_script_lang_js = (VirtualElTablevue_type_script_lang_js);
132304
+ // EXTERNAL MODULE: ./src/components/ex-table/VirtualElTable.vue?vue&type=style&index=0&id=5eb34e1c&prod&scoped=true&lang=css
132305
+ var VirtualElTablevue_type_style_index_0_id_5eb34e1c_prod_scoped_true_lang_css = __webpack_require__("ac06");
132306
+
132307
+ // CONCATENATED MODULE: ./src/components/ex-table/VirtualElTable.vue
132308
+
132054
132309
 
132310
+
132311
+
132312
+
132313
+
132314
+ /* normalize component */
132315
+
132316
+ var VirtualElTable_component = normalizeComponent(
132317
+ ex_table_VirtualElTablevue_type_script_lang_js,
132318
+ VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_render,
132319
+ VirtualElTablevue_type_template_id_5eb34e1c_scoped_true_staticRenderFns,
132320
+ false,
132321
+ null,
132322
+ "5eb34e1c",
132323
+ null
132324
+
132325
+ )
132326
+
132327
+ /* harmony default export */ var VirtualElTable = (VirtualElTable_component.exports);
132055
132328
  // 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
132329
 
132057
132330
 
132058
- // 内部导入 element-ui 组件,避免与外部 element-ui 冲突
132059
132331
 
132060
132332
 
132061
132333
  /* harmony default export */ var ex_tablevue_type_script_lang_js = ({
132062
132334
  name: 'ExTable',
132063
132335
  inheritAttrs: false,
132064
- components: { ExTableCell: ExTableCell, ElTable: external_ElementUI_["Table"], ElTableColumn: external_ElementUI_["TableColumn"] },
132336
+ components: { ExTableCell: ExTableCell, VirtualElTable: VirtualElTable },
132337
+
132065
132338
  props: {
132066
- // 表格数据
132067
132339
  tableData: { type: Array, default: () => [] },
132068
- // 列配置(支持 children 多级表头)
132069
132340
  columns: { type: Array, default: () => [] },
132070
- // 分组列配置(按配置的层级合并单元格)
132071
132341
  groupColumns: { type: Array, default: () => [] },
132072
- // 标题
132073
132342
  title: { type: String, default: '' },
132074
- // 高度
132075
132343
  height: { type: [Number, String], default: null },
132076
- // 最大高度(非虚拟滚动时与 height 二选一,均支持固定表头)
132077
132344
  maxHeight: { type: [Number, String], default: null },
132078
- // 虚拟滚动
132079
132345
  virtualScroll: { type: Boolean, default: false },
132080
- // 预估行高
132081
132346
  rowInitHeight: { type: Number, default: 48 },
132082
- // 缓冲区行数
132083
132347
  bufferSize: { type: Number, default: 5 },
132084
- // 分页配置
132085
132348
  pagination: { type: Object, default: null },
132086
- // 总条数
132087
132349
  total: { type: Number, default: 0 },
132088
- // 是否显示序号
132089
132350
  showIndex: { type: Boolean, default: false },
132090
- // 是否可选
132091
132351
  selection: { type: Boolean, default: false },
132092
- // 选择列固定位置
132093
132352
  selectionFixed: { type: [String, Boolean], default: false },
132094
- // 序号列固定位置
132095
132353
  indexFixed: { type: [String, Boolean], default: false },
132096
- // 加载状态
132097
132354
  loading: { type: Boolean, default: false },
132098
- // 空数据文案
132099
132355
  emptyText: { type: String, default: '暂无数据' },
132100
- // 小计配置
132101
132356
  subtotalConfig: { type: Object, default: () => ({ enabled: false }) },
132102
- // 总计配置
132103
132357
  totalConfig: { type: Object, default: () => ({ enabled: false }) }
132104
132358
  },
132105
132359
 
132106
132360
  data() {
132107
132361
  return {
132108
- // 虚拟滚动相关
132109
- scrollTop: 0,
132110
- scrollLeft: 0,
132111
- rowHeight: 48,
132112
- visibleStartIndex: 0,
132113
- visibleEndIndex: 0,
132114
- visibleCount: 0,
132115
- // 分组合并缓存
132116
132362
  spanCache: {},
132117
- // 列扁平化缓存
132118
132363
  flattenedColumnsCache: [],
132119
- // 选中数据
132120
132364
  selectedRows: []
132121
132365
  }
132122
132366
  },
@@ -132125,75 +132369,44 @@ var external_ElementUI_ = __webpack_require__("5f72");
132125
132369
  showPagination() {
132126
132370
  return this.pagination && this.total > 0
132127
132371
  },
132128
-
132129
132372
  computedHeight() {
132130
- if (this.virtualScroll) {
132131
- return this.height || this.maxHeight || 400
132132
- }
132133
132373
  return this.height || undefined
132134
132374
  },
132135
-
132136
132375
  computedMaxHeight() {
132137
- if (this.virtualScroll || this.height) return undefined
132138
- return this.maxHeight || undefined
132139
- },
132140
-
132141
- // 虚拟滚动固定表头占位数据(仅渲染表头,不渲染 body 行)
132142
- headerTableData() {
132143
- return []
132376
+ return this.height ? undefined : this.maxHeight || undefined
132144
132377
  },
132145
132378
 
132146
- // 处理后的数据(注入小计/总计行)
132379
+ // 处理小计、总计后的最终数据
132147
132380
  processedTableData() {
132148
132381
  if (!this.tableData.length) return []
132149
-
132150
132382
  let data = [...this.tableData]
132151
132383
  const hasSubtotal = this.subtotalConfig && this.subtotalConfig.enabled
132152
132384
  const hasTotal = this.totalConfig && this.totalConfig.enabled
132153
132385
 
132154
132386
  if (!hasSubtotal && !hasTotal) return data
132155
132387
 
132156
- // 找到第一个数据列作为标签列
132157
132388
  const labelColumn = this.findLabelColumn()
132158
-
132159
132389
  let result = []
132160
132390
 
132161
132391
  if (hasSubtotal && this.subtotalConfig.groupBy && this.subtotalConfig.groupBy.length) {
132162
- // 按 groupBy 分组
132163
132392
  const groups = this.groupData(data, this.subtotalConfig.groupBy)
132164
- groups.forEach((groupRows, groupKey) => {
132165
- // 插入数据行
132393
+ groups.forEach((groupRows) => {
132166
132394
  result.push(...groupRows)
132167
- // 插入小计行
132168
- const subtotalRow = this.createSubtotalRow(groupRows, groupKey)
132395
+ const subtotalRow = this.createSubtotalRow(groupRows)
132169
132396
  result.push(subtotalRow)
132170
132397
  })
132171
132398
  } else {
132172
132399
  result = data
132173
132400
  }
132174
132401
 
132175
- // 插入总计行
132176
132402
  if (hasTotal) {
132177
132403
  const totalRow = this.createTotalRow(data)
132178
132404
  result.push(totalRow)
132179
132405
  }
132180
-
132181
132406
  return result
132182
132407
  },
132183
132408
 
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)
132409
+ // 扁平化列配置,添加唯一 key
132197
132410
  flattenedColumns() {
132198
132411
  if (this.flattenedColumnsCache.length) return this.flattenedColumnsCache
132199
132412
  const assignKeys = (cols, parentPath = '') => {
@@ -132209,91 +132422,47 @@ var external_ElementUI_ = __webpack_require__("5f72");
132209
132422
  }
132210
132423
  this.flattenedColumnsCache = assignKeys(this.columns)
132211
132424
  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
132425
  }
132227
132426
  },
132228
132427
 
132229
132428
  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
132429
+ tableData() {
132430
+ this.spanCache = {}
132431
+ this.flattenedColumnsCache = []
132243
132432
  },
132244
-
132245
132433
  columns: {
132246
132434
  handler() {
132247
132435
  this.flattenedColumnsCache = []
132248
- if (this.virtualScroll) {
132249
- this.$nextTick(() => this.syncTableLayout())
132250
- }
132436
+ this.spanCache = {}
132251
132437
  },
132252
132438
  deep: true
132253
132439
  },
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
- }
132440
+ groupColumns: {
132441
+ handler() {
132442
+ this.spanCache = {}
132443
+ },
132444
+ deep: true
132273
132445
  }
132274
132446
  },
132275
132447
 
132276
132448
  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)
132449
+ this.$nextTick(() => {
132450
+ window.addEventListener('resize', this.handleResize)
132451
+ })
132287
132452
  },
132288
132453
 
132289
132454
  beforeDestroy() {
132290
- this.destroyVirtualScroll()
132291
- window.removeEventListener('resize', this.resizeHandler)
132455
+ window.removeEventListener('resize', this.handleResize)
132292
132456
  },
132293
132457
 
132294
132458
  methods: {
132295
- // ==================== 小计/总计工具函数 ====================
132296
- // 找到第一个数据列(非 selection/index),用于显示"小计"/"总计"标签
132459
+ handleResize() {
132460
+ this.$nextTick(() => {
132461
+ this.$refs.table && this.$refs.table.doLayout()
132462
+ })
132463
+ },
132464
+
132465
+ // ========== 小计 / 总计 相关 ==========
132297
132466
  findLabelColumn() {
132298
132467
  for (const col of this.columns) {
132299
132468
  if (col.children && col.children.length) {
@@ -132307,33 +132476,25 @@ var external_ElementUI_ = __webpack_require__("5f72");
132307
132476
  return { prop: '', label: '' }
132308
132477
  },
132309
132478
 
132310
- // 按指定字段分组(保持分组顺序)
132311
132479
  groupData(data, groupBy) {
132312
132480
  const map = new Map()
132313
132481
  data.forEach(row => {
132314
132482
  const key = groupBy.map(f => row[f]).join('|||')
132315
- if (!map.has(key)) {
132316
- map.set(key, [])
132317
- }
132483
+ if (!map.has(key)) map.set(key, [])
132318
132484
  map.get(key).push(row)
132319
132485
  })
132320
132486
  return map
132321
132487
  },
132322
132488
 
132323
- // 计算单列的聚合值
132324
132489
  _calcValue(rows, calc) {
132325
- // 自定义函数
132326
132490
  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
132491
  const prop = calc.prop
132332
132492
  const type = calc.type || 'sum'
132333
132493
  const vals = prop ? rows.map(r => parseFloat(r[prop]) || 0) : []
132334
132494
  switch (type) {
132335
132495
  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
132496
+ case 'avg':
132497
+ case 'average': return vals.length ? vals.reduce((s, v) => s + v, 0) / vals.length : 0
132337
132498
  case 'count': return rows.length
132338
132499
  case 'min': return vals.length ? Math.min(...vals) : 0
132339
132500
  case 'max': return vals.length ? Math.max(...vals) : 0
@@ -132341,20 +132502,16 @@ var external_ElementUI_ = __webpack_require__("5f72");
132341
132502
  }
132342
132503
  },
132343
132504
 
132344
- // 创建小计行
132345
- createSubtotalRow(groupRows, groupKey) {
132505
+ createSubtotalRow(groupRows) {
132346
132506
  const config = this.subtotalConfig
132347
132507
  const rawLabelProp = this.findLabelColumn()
132348
-
132349
- // 获取第一个 groupBy 列的值显示
132350
132508
  const labelField = config.groupBy ? config.groupBy[0] : ''
132351
- const groupValue = groupRows[0] ? groupRows[0][labelField] : groupKey
132509
+ const groupValue = groupRows[0] ? groupRows[0][labelField] : ''
132352
132510
  const labelText = config.labelText || `${groupValue} 小计`
132353
132511
 
132354
- const row = { _rowType: 'subtotal', _groupKey: groupKey }
132512
+ const row = { _rowType: 'subtotal' }
132355
132513
  row[rawLabelProp.prop] = labelText
132356
132514
 
132357
- // 计算各列的聚合值
132358
132515
  if (config.columns) {
132359
132516
  Object.keys(config.columns).forEach(prop => {
132360
132517
  const calc = config.columns[prop]
@@ -132363,11 +132520,9 @@ var external_ElementUI_ = __webpack_require__("5f72");
132363
132520
  : this._calcValue(groupRows, calc)
132364
132521
  })
132365
132522
  }
132366
-
132367
132523
  return row
132368
132524
  },
132369
132525
 
132370
- // 创建总计行
132371
132526
  createTotalRow(allRows) {
132372
132527
  const config = this.totalConfig
132373
132528
  const rawLabelProp = this.findLabelColumn()
@@ -132376,7 +132531,6 @@ var external_ElementUI_ = __webpack_require__("5f72");
132376
132531
  const row = { _rowType: 'total' }
132377
132532
  row[rawLabelProp.prop] = labelText
132378
132533
 
132379
- // 计算各列的聚合值
132380
132534
  if (config.columns) {
132381
132535
  Object.keys(config.columns).forEach(prop => {
132382
132536
  const calc = config.columns[prop]
@@ -132385,55 +132539,40 @@ var external_ElementUI_ = __webpack_require__("5f72");
132385
132539
  : this._calcValue(allRows, calc)
132386
132540
  })
132387
132541
  }
132388
-
132389
132542
  return row
132390
132543
  },
132391
132544
 
132392
- // 行类名(小计/总计行样式)
132393
132545
  getRowClassName({ row }) {
132394
- if (!row) return ''
132395
132546
  if (row._rowType === 'subtotal') return 'ex-table-row-subtotal'
132396
132547
  if (row._rowType === 'total') return 'ex-table-row-total'
132397
132548
  return ''
132398
132549
  },
132399
132550
 
132400
- // ==================== 列配置 ====================
132551
+ // ========== 列处理 ==========
132401
132552
  getColumnProps(col) {
132402
132553
  const { _key, children, render, formatter, slot, ...props } = col
132403
132554
  return props
132404
132555
  },
132405
132556
 
132406
- // ==================== 序号方法 ====================
132407
132557
  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
132558
  return index + 1
132415
132559
  },
132416
132560
 
132417
- // ==================== 分组合并 ====================
132561
+ // ========== 合并单元格 ==========
132418
132562
  handleSpanMethod({ row, column, rowIndex }) {
132419
- // 跳过小计/总计行,不做合并
132420
132563
  if (row._rowType === 'subtotal' || row._rowType === 'total') {
132421
132564
  return { rowspan: 1, colspan: 1 }
132422
132565
  }
132423
-
132424
132566
  if (!this.groupColumns.length) return { rowspan: 1, colspan: 1 }
132425
132567
 
132426
- const data = this.virtualScroll ? this.visibleData : this.processedTableData
132568
+ const data = this.processedTableData
132427
132569
  const prop = column.property
132428
132570
  const groupIndex = this.groupColumns.indexOf(prop)
132429
-
132430
132571
  if (groupIndex === -1) return { rowspan: 1, colspan: 1 }
132431
132572
 
132432
- // 检查缓存
132433
132573
  const cacheKey = `${rowIndex}_${prop}`
132434
132574
  if (this.spanCache[cacheKey]) return this.spanCache[cacheKey]
132435
132575
 
132436
- // 判断当前行是否与前一行在分组列上完全相同
132437
132576
  if (rowIndex > 0) {
132438
132577
  const prevRow = data[rowIndex - 1]
132439
132578
  let isSame = true
@@ -132445,156 +132584,74 @@ var external_ElementUI_ = __webpack_require__("5f72");
132445
132584
  }
132446
132585
  }
132447
132586
  if (isSame) {
132448
- const result = { rowspan: 0, colspan: 1 }
132449
- this.spanCache[cacheKey] = result
132450
- return result
132587
+ const res = { rowspan: 0, colspan: 1 }
132588
+ this.spanCache[cacheKey] = res
132589
+ return res
132451
132590
  }
132452
132591
  }
132453
132592
 
132454
- // 向下扫描计算合并行数
132455
132593
  let count = 1
132456
132594
  for (let i = rowIndex + 1; i < data.length; i++) {
132457
132595
  const nextRow = data[i]
132458
- let isSame = true
132596
+ let same = true
132459
132597
  for (let j = 0; j <= groupIndex; j++) {
132460
132598
  const gp = this.groupColumns[j]
132461
132599
  if (nextRow[gp] !== row[gp]) {
132462
- isSame = false
132600
+ same = false
132463
132601
  break
132464
132602
  }
132465
132603
  }
132466
- if (isSame) {
132467
- count++
132468
- } else {
132469
- break
132470
- }
132604
+ if (same) count++
132605
+ else break
132471
132606
  }
132472
132607
 
132473
- const result = { rowspan: count > 1 ? count : 1, colspan: 1 }
132474
- this.spanCache[cacheKey] = result
132475
- return result
132608
+ const res = { rowspan: count > 1 ? count : 1, colspan: 1 }
132609
+ this.spanCache[cacheKey] = res
132610
+ return res
132476
132611
  },
132477
132612
 
132478
- // ==================== 选择 ====================
132613
+ // ========== 选择、排序、分页 ==========
132479
132614
  handleSelectionChange(rows) {
132480
- // 过滤掉小计/总计行
132481
132615
  this.selectedRows = rows.filter(r => !r._rowType)
132482
132616
  this.$emit('selection-change', this.selectedRows)
132483
132617
  },
132484
-
132485
- // ==================== 排序 ====================
132486
- handleSortChange({ prop, order }) {
132487
- this.$emit('sort-change', { prop, order })
132618
+ handleSortChange(info) {
132619
+ this.$emit('sort-change', info)
132488
132620
  },
132489
-
132490
- // ==================== 分页 ====================
132491
132621
  handleSizeChange(size) {
132492
132622
  this.$emit('size-change', size)
132493
132623
  },
132494
-
132495
132624
  handleCurrentChange(page) {
132496
132625
  this.$emit('page-change', page)
132497
132626
  },
132498
132627
 
132499
- // ==================== 公开方法 ====================
132628
+ // ========== 对外暴露方法 ==========
132500
132629
  getSelection() {
132501
132630
  return this.selectedRows
132502
132631
  },
132503
-
132504
132632
  clearSelection() {
132505
132633
  this.$refs.table && this.$refs.table.clearSelection()
132506
132634
  this.selectedRows = []
132507
132635
  },
132508
-
132509
132636
  toggleRowSelection(row, selected) {
132510
132637
  this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132511
132638
  },
132512
-
132513
132639
  toggleRowsSelection(rows, selected) {
132514
- if (rows && rows.length) {
132515
- rows.forEach(row => {
132516
- this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132517
- })
132518
- }
132640
+ if (!rows || !rows.length) return
132641
+ rows.forEach(row => {
132642
+ this.$refs.table && this.$refs.table.toggleRowSelection(row, selected)
132643
+ })
132519
132644
  },
132520
-
132521
132645
  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
132646
+ this.$refs.table && this.$refs.table.doLayout()
132590
132647
  }
132591
132648
  }
132592
132649
  });
132593
132650
 
132594
132651
  // CONCATENATED MODULE: ./src/components/ex-table/index.vue?vue&type=script&lang=js
132595
132652
  /* 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");
132653
+ // EXTERNAL MODULE: ./src/components/ex-table/index.vue?vue&type=style&index=0&id=f6bc1634&prod&scoped=true&lang=css
132654
+ var ex_tablevue_type_style_index_0_id_f6bc1634_prod_scoped_true_lang_css = __webpack_require__("a0ef");
132598
132655
 
132599
132656
  // CONCATENATED MODULE: ./src/components/ex-table/index.vue
132600
132657
 
@@ -132607,11 +132664,11 @@ var ex_tablevue_type_style_index_0_id_78d2b726_prod_scoped_true_lang_css = __web
132607
132664
 
132608
132665
  var ex_table_component = normalizeComponent(
132609
132666
  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,
132667
+ ex_tablevue_type_template_id_f6bc1634_scoped_true_render,
132668
+ ex_tablevue_type_template_id_f6bc1634_scoped_true_staticRenderFns,
132612
132669
  false,
132613
132670
  null,
132614
- "78d2b726",
132671
+ "f6bc1634",
132615
132672
  null
132616
132673
 
132617
132674
  )
@@ -132808,10 +132865,10 @@ const virtualScrollColumns = [
132808
132865
 
132809
132866
 
132810
132867
  // ES Module 默认导出需要通过 .default 访问
132811
- const src_utils = utils.default || utils
132868
+ const src_utils_0 = src_utils.default || src_utils
132812
132869
 
132813
132870
  // 从 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
132871
+ 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
132872
 
132816
132873
  // 导入组件
132817
132874