xt-element-ui 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -192
- package/docs/README.md +162 -88
- package/docs/components/base/theme.md +248 -0
- package/docs/components/base/xt-list.md +1 -1
- package/docs/components/base/xt-scroll-arrow.md +87 -1
- package/docs/components/base/xt-scroll.md +237 -0
- package/docs/components/utils/config.md +18 -4
- package/docs/components/utils/theme.md +280 -183
- package/lib/index.common.1.js +4 -26
- package/lib/index.common.2.js +1 -1
- package/lib/index.common.js +1871 -671
- package/lib/index.css +1 -1
- package/lib/index.umd.1.js +4 -26
- package/lib/index.umd.2.js +1 -1
- package/lib/index.umd.js +1871 -671
- package/lib/index.umd.min.1.js +1 -1
- package/lib/index.umd.min.js +1 -1
- package/lib/theme/element-overrides.css +607 -0
- package/lib/theme/element-vars.css +280 -0
- package/lib/xt-badge/xt-badge.common.js +1 -1
- package/lib/xt-badge/xt-badge.umd.js +1 -1
- package/lib/xt-button/xt-button.common.js +1 -1
- package/lib/xt-button/xt-button.umd.js +1 -1
- package/lib/xt-card/xt-card.common.js +1 -1
- package/lib/xt-card/xt-card.umd.js +1 -1
- package/lib/xt-card-item/xt-card-item.common.js +1 -1
- package/lib/xt-card-item/xt-card-item.umd.js +1 -1
- package/lib/xt-chart/xt-chart.common.js +5 -5
- package/lib/xt-chart/xt-chart.umd.js +5 -5
- package/lib/xt-config-provider/xt-config-provider.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.common.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.common.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.css +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.1.js +4 -26
- package/lib/xt-date-picker/xt-date-picker.umd.2.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.js +1 -47
- package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -1
- package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.common.js +1 -1
- package/lib/xt-flex-box/xt-flex-box.umd.js +1 -1
- package/lib/xt-flow/xt-flow.common.js +1 -1
- package/lib/xt-flow/xt-flow.umd.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.common.js +1 -1
- package/lib/xt-form-schema/xt-form-schema.umd.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.common.js +1 -1
- package/lib/xt-grid-box/xt-grid-box.umd.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.common.js +1 -1
- package/lib/xt-grid-item/xt-grid-item.umd.js +1 -1
- package/lib/xt-icon/xt-icon.common.js +1 -1
- package/lib/xt-icon/xt-icon.umd.js +1 -1
- package/lib/xt-input/xt-input.common.js +1 -1
- package/lib/xt-input/xt-input.umd.js +1 -1
- package/lib/xt-list/xt-list.common.js +457 -118
- package/lib/xt-list/xt-list.css +1 -1
- package/lib/xt-list/xt-list.umd.js +457 -118
- package/lib/xt-list/xt-list.umd.min.js +1 -1
- package/lib/xt-map/xt-map.common.js +1 -1
- package/lib/xt-map/xt-map.umd.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.common.js +1 -1
- package/lib/xt-map-provider/xt-map-provider.umd.js +1 -1
- package/lib/xt-page/xt-page.common.js +1 -1
- package/lib/xt-page/xt-page.umd.js +1 -1
- package/lib/xt-progress/xt-progress.common.js +1 -1
- package/lib/xt-progress/xt-progress.umd.js +1 -1
- package/lib/xt-scroll/demo.html +10 -0
- package/lib/xt-scroll/index.js +1 -0
- package/lib/xt-scroll/xt-scroll.common.js +551 -0
- package/lib/xt-scroll/xt-scroll.css +1 -0
- package/lib/xt-scroll/xt-scroll.umd.js +561 -0
- package/lib/xt-scroll/xt-scroll.umd.min.js +1 -0
- package/lib/xt-scroll-arrow/xt-scroll-arrow.common.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.css +1 -1
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.js +591 -170
- package/lib/xt-scroll-arrow/xt-scroll-arrow.umd.min.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.common.js +1 -1
- package/lib/xt-select-tree/xt-select-tree.umd.js +1 -1
- package/lib/xt-step-price/xt-step-price.common.js +2 -2
- package/lib/xt-step-price/xt-step-price.umd.js +2 -2
- package/lib/xt-step-price-item/xt-step-price-item.common.js +1 -1
- package/lib/xt-step-price-item/xt-step-price-item.umd.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.common.js +1 -1
- package/lib/xt-tab-pane/xt-tab-pane.umd.js +1 -1
- package/lib/xt-table/xt-table.common.js +2 -2
- package/lib/xt-table/xt-table.umd.js +2 -2
- package/lib/xt-tabs/xt-tabs.common.js +1 -1
- package/lib/xt-tabs/xt-tabs.umd.js +1 -1
- package/lib/xt-text/xt-text.common.js +1 -1
- package/lib/xt-text/xt-text.umd.js +1 -1
- package/lib/xt-time/xt-time.common.js +1 -1
- package/lib/xt-time/xt-time.umd.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.common.js +1 -1
- package/lib/xt-transfer-tree/xt-transfer-tree.umd.js +1 -1
- package/lib/xt-upload/xt-upload.common.js +2 -2
- package/lib/xt-upload/xt-upload.umd.js +2 -2
- package/package.json +5 -3
- package/src/components/index.scss +3 -0
- package/src/components/theme/element-overrides.css +607 -0
- package/src/components/theme/element-vars.css +280 -0
- package/src/components/theme/iframe-injector.js +502 -0
- package/src/components/theme/index.js +64 -0
- package/src/components/xt-config-provider/style/index.scss +0 -11
- package/src/components/xt-date-picker/component/RangeDate.vue +1 -29
- package/src/components/xt-date-picker/style/index.scss +80 -53
- package/src/components/xt-list/index.vue +23 -12
- package/src/components/xt-scroll/index.js +9 -0
- package/src/components/xt-scroll/index.vue +363 -0
- package/src/components/xt-scroll/style/index.scss +107 -0
- package/src/components/xt-scroll-arrow/index.vue +200 -83
- package/src/components/xt-scroll-arrow/style/index.scss +16 -5
- package/src/index.js +9 -2
- package/src/utils/color.js +105 -0
- package/src/utils/index.js +456 -468
- package/src/utils/theme-vars.js +134 -0
- package/lib/css/1.87a493be.css +0 -1
- package/lib/xt-date-picker/css/1.87a493be.css +0 -1
package/lib/index.common.js
CHANGED
|
@@ -33,11 +33,6 @@ module.exports =
|
|
|
33
33
|
/******/ // The module cache
|
|
34
34
|
/******/ var installedModules = {};
|
|
35
35
|
/******/
|
|
36
|
-
/******/ // object to store loaded CSS chunks
|
|
37
|
-
/******/ var installedCssChunks = {
|
|
38
|
-
/******/ 0: 0
|
|
39
|
-
/******/ }
|
|
40
|
-
/******/
|
|
41
36
|
/******/ // object to store loaded and loading chunks
|
|
42
37
|
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
|
43
38
|
/******/ // Promise = chunk loading, 0 = chunk loaded
|
|
@@ -82,47 +77,6 @@ module.exports =
|
|
|
82
77
|
/******/ var promises = [];
|
|
83
78
|
/******/
|
|
84
79
|
/******/
|
|
85
|
-
/******/ // mini-css-extract-plugin CSS loading
|
|
86
|
-
/******/ var cssChunks = {"1":1};
|
|
87
|
-
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
|
88
|
-
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
|
89
|
-
/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
|
|
90
|
-
/******/ var href = "css/" + ({}[chunkId]||chunkId) + "." + {"1":"87a493be","2":"31d6cfe0"}[chunkId] + ".css";
|
|
91
|
-
/******/ var fullhref = __webpack_require__.p + href;
|
|
92
|
-
/******/ var existingLinkTags = document.getElementsByTagName("link");
|
|
93
|
-
/******/ for(var i = 0; i < existingLinkTags.length; i++) {
|
|
94
|
-
/******/ var tag = existingLinkTags[i];
|
|
95
|
-
/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
|
|
96
|
-
/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
|
|
97
|
-
/******/ }
|
|
98
|
-
/******/ var existingStyleTags = document.getElementsByTagName("style");
|
|
99
|
-
/******/ for(var i = 0; i < existingStyleTags.length; i++) {
|
|
100
|
-
/******/ var tag = existingStyleTags[i];
|
|
101
|
-
/******/ var dataHref = tag.getAttribute("data-href");
|
|
102
|
-
/******/ if(dataHref === href || dataHref === fullhref) return resolve();
|
|
103
|
-
/******/ }
|
|
104
|
-
/******/ var linkTag = document.createElement("link");
|
|
105
|
-
/******/ linkTag.rel = "stylesheet";
|
|
106
|
-
/******/ linkTag.type = "text/css";
|
|
107
|
-
/******/ linkTag.onload = resolve;
|
|
108
|
-
/******/ linkTag.onerror = function(event) {
|
|
109
|
-
/******/ var request = event && event.target && event.target.src || fullhref;
|
|
110
|
-
/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
|
|
111
|
-
/******/ err.code = "CSS_CHUNK_LOAD_FAILED";
|
|
112
|
-
/******/ err.request = request;
|
|
113
|
-
/******/ delete installedCssChunks[chunkId]
|
|
114
|
-
/******/ linkTag.parentNode.removeChild(linkTag)
|
|
115
|
-
/******/ reject(err);
|
|
116
|
-
/******/ };
|
|
117
|
-
/******/ linkTag.href = fullhref;
|
|
118
|
-
/******/
|
|
119
|
-
/******/ var head = document.getElementsByTagName("head")[0];
|
|
120
|
-
/******/ head.appendChild(linkTag);
|
|
121
|
-
/******/ }).then(function() {
|
|
122
|
-
/******/ installedCssChunks[chunkId] = 0;
|
|
123
|
-
/******/ }));
|
|
124
|
-
/******/ }
|
|
125
|
-
/******/
|
|
126
80
|
/******/ // JSONP chunk loading for javascript
|
|
127
81
|
/******/
|
|
128
82
|
/******/ var installedChunkData = installedChunks[chunkId];
|
|
@@ -491,6 +445,13 @@ function normalizeComponent(
|
|
|
491
445
|
|
|
492
446
|
/***/ }),
|
|
493
447
|
|
|
448
|
+
/***/ "3ae0":
|
|
449
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
450
|
+
|
|
451
|
+
// extracted by mini-css-extract-plugin
|
|
452
|
+
|
|
453
|
+
/***/ }),
|
|
454
|
+
|
|
494
455
|
/***/ "3cef":
|
|
495
456
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
496
457
|
|
|
@@ -598,6 +559,17 @@ var removeResizeListener = exports.removeResizeListener = function removeResizeL
|
|
|
598
559
|
|
|
599
560
|
// extracted by mini-css-extract-plugin
|
|
600
561
|
|
|
562
|
+
/***/ }),
|
|
563
|
+
|
|
564
|
+
/***/ "52fd":
|
|
565
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
566
|
+
|
|
567
|
+
"use strict";
|
|
568
|
+
/* 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_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_084d1476_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3ae0");
|
|
569
|
+
/* 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_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_084d1476_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_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_084d1476_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
|
|
570
|
+
/* unused harmony reexport * */
|
|
571
|
+
|
|
572
|
+
|
|
601
573
|
/***/ }),
|
|
602
574
|
|
|
603
575
|
/***/ "5820":
|
|
@@ -1687,17 +1659,6 @@ var index = (function () {
|
|
|
1687
1659
|
|
|
1688
1660
|
// extracted by mini-css-extract-plugin
|
|
1689
1661
|
|
|
1690
|
-
/***/ }),
|
|
1691
|
-
|
|
1692
|
-
/***/ "732a":
|
|
1693
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1694
|
-
|
|
1695
|
-
"use strict";
|
|
1696
|
-
/* 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_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_53c7db00_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e895");
|
|
1697
|
-
/* 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_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_53c7db00_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_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_53c7db00_prod_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
|
|
1698
|
-
/* unused harmony reexport * */
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
1662
|
/***/ }),
|
|
1702
1663
|
|
|
1703
1664
|
/***/ "76cb":
|
|
@@ -1817,6 +1778,15 @@ module.exports = {"xtColorPrimary":"#1890ff","xtColorSuccess":"#37c3a4","xtColor
|
|
|
1817
1778
|
/* unused harmony reexport * */
|
|
1818
1779
|
|
|
1819
1780
|
|
|
1781
|
+
/***/ }),
|
|
1782
|
+
|
|
1783
|
+
/***/ "b85c":
|
|
1784
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1785
|
+
|
|
1786
|
+
"use strict";
|
|
1787
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1788
|
+
/* harmony default export */ __webpack_exports__["default"] = ("/* ============================================================\r\n * XT-Element-UI 主题 CSS 变量定义\r\n * 用于注入到子系统 iframe 的 <head> 中\r\n * \r\n * 设计原则:\r\n * 1. 定义 Element UI 所需的全部 CSS 变量(--el-*)\r\n * 2. 亮色主题为默认值(:root)\r\n * 3. 暗色主题通过 [data-theme=\"dark\"] 切换\r\n * 4. 子系统无需任何改造,变量注入即生效\r\n * ============================================================ */\r\n\r\n/* ==================== 亮色主题(默认) ==================== */\r\n:root {\r\n /* 基础色 */\r\n --el-color-white: #ffffff;\r\n --el-color-black: #000000;\r\n\r\n /* 主色 RGB */\r\n --el-color-primary-rgb: 24, 144, 255;\r\n --el-color-success-rgb: 103, 194, 58;\r\n --el-color-warning-rgb: 230, 162, 60;\r\n --el-color-danger-rgb: 245, 108, 108;\r\n --el-color-error-rgb: 245, 108, 108;\r\n --el-color-info-rgb: 144, 147, 153;\r\n\r\n /* 主色 */\r\n --el-color-primary: #1890ff;\r\n --el-color-primary-light-3: #5db1ff;\r\n --el-color-primary-light-5: #8cc8ff;\r\n --el-color-primary-light-7: #badeff;\r\n --el-color-primary-light-8: #d1e9ff;\r\n --el-color-primary-light-9: #e8f4ff;\r\n --el-color-primary-dark-2: #1373cc;\r\n\r\n /* 成功色 */\r\n --el-color-success: #67c23a;\r\n --el-color-success-light-3: #95d475;\r\n --el-color-success-light-5: #b3e19d;\r\n --el-color-success-light-7: #d1edc4;\r\n --el-color-success-light-8: #e1f3d8;\r\n --el-color-success-light-9: #f0f9eb;\r\n --el-color-success-dark-2: #529b2e;\r\n\r\n /* 警告色 */\r\n --el-color-warning: #e6a23c;\r\n --el-color-warning-light-3: #eebe77;\r\n --el-color-warning-light-5: #f3d19e;\r\n --el-color-warning-light-7: #f8e3c5;\r\n --el-color-warning-light-8: #faecd8;\r\n --el-color-warning-light-9: #fdf6ec;\r\n --el-color-warning-dark-2: #b88230;\r\n\r\n /* 危险色 */\r\n --el-color-danger: #f56c6c;\r\n --el-color-danger-light-3: #f89898;\r\n --el-color-danger-light-5: #fab6b6;\r\n --el-color-danger-light-7: #fcd3d3;\r\n --el-color-danger-light-8: #fde2e2;\r\n --el-color-danger-light-9: #fef0f0;\r\n --el-color-danger-dark-2: #c45656;\r\n\r\n /* 错误色 */\r\n --el-color-error: #f56c6c;\r\n --el-color-error-light-3: #f89898;\r\n --el-color-error-light-5: #fab6b6;\r\n --el-color-error-light-7: #fcd3d3;\r\n --el-color-error-light-8: #fde2e2;\r\n --el-color-error-light-9: #fef0f0;\r\n --el-color-error-dark-2: #c45656;\r\n\r\n /* 信息色 */\r\n --el-color-info: #909399;\r\n --el-color-info-light-3: #b1b3b8;\r\n --el-color-info-light-5: #c8c9cc;\r\n --el-color-info-light-7: #dedfe0;\r\n --el-color-info-light-8: #e9e9eb;\r\n --el-color-info-light-9: #f4f4f5;\r\n --el-color-info-dark-2: #73767a;\r\n\r\n /* 背景色 */\r\n --el-bg-color: #ffffff;\r\n --el-bg-color-page: #f2f3f5;\r\n --el-bg-color-overlay: #ffffff;\r\n --el-bg-color-block: #ffffff;\r\n\r\n /* 文字色 */\r\n --el-text-color-primary: #303133;\r\n --el-text-color-regular: #606266;\r\n --el-text-color-secondary: #909399;\r\n --el-text-color-placeholder: #a8abb2;\r\n --el-text-color-disabled: #c0c4cc;\r\n\r\n /* 边框色 */\r\n --el-border-color: #dcdfe6;\r\n --el-border-color-light: #e4e7ed;\r\n --el-border-color-lighter: #ebeef5;\r\n --el-border-color-extra-light: #f2f6fc;\r\n --el-border-color-dark: #d4d7de;\r\n --el-border-color-darker: #cdd0d6;\r\n\r\n /* 填充色 */\r\n --el-fill-color: #f0f2f5;\r\n --el-fill-color-light: #f5f7fa;\r\n --el-fill-color-lighter: #fafafa;\r\n --el-fill-color-extra-light: #fafcff;\r\n --el-fill-color-dark: #ebedf0;\r\n --el-fill-color-darker: #e6e8eb;\r\n --el-fill-color-blank: #ffffff;\r\n\r\n /* 阴影 */\r\n --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);\r\n --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);\r\n --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);\r\n --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);\r\n\r\n /* 禁用状态 */\r\n --el-disabled-bg-color: var(--el-fill-color-light);\r\n --el-disabled-text-color: var(--el-text-color-placeholder);\r\n --el-disabled-border-color: var(--el-border-color-light);\r\n\r\n /* 遮罩 */\r\n --el-overlay-color: rgba(0, 0, 0, .8);\r\n --el-overlay-color-light: rgba(0, 0, 0, .7);\r\n --el-overlay-color-lighter: rgba(0, 0, 0, .5);\r\n --el-mask-color: rgba(255, 255, 255, .9);\r\n --el-mask-color-extra-light: rgba(255, 255, 255, .3);\r\n\r\n /* 边框 */\r\n --el-border-width: 1px;\r\n --el-border-style: solid;\r\n --el-border-color-hover: var(--el-text-color-disabled);\r\n --el-border: var(--el-border-width) var(--el-border-style) var(--el-border-color);\r\n\r\n /* 字体 */\r\n --el-font-size-extra-large: 20px;\r\n --el-font-size-large: 18px;\r\n --el-font-size-medium: 16px;\r\n --el-font-size-base: 14px;\r\n --el-font-size-small: 13px;\r\n --el-font-size-extra-small: 12px;\r\n --el-font-family: \"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"微软雅黑\", Arial, sans-serif;\r\n --el-font-weight-primary: 500;\r\n\r\n /* 圆角 */\r\n --el-border-radius-base: 4px;\r\n --el-border-radius-small: 2px;\r\n --el-border-radius-round: 20px;\r\n --el-border-radius-circle: 100%;\r\n\r\n /* 过渡 */\r\n --el-transition-duration: .3s;\r\n --el-transition-duration-fast: .2s;\r\n --el-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);\r\n --el-transition-fast-bezier: cubic-bezier(.23, 1, .32, 1);\r\n --el-transition-all: all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);\r\n --el-transition-fade: opacity var(--el-transition-duration) var(--el-transition-fast-bezier);\r\n --el-transition-md-fade: transform var(--el-transition-duration) var(--el-transition-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-fast-bezier);\r\n --el-transition-fade-linear: opacity var(--el-transition-duration-fast) linear;\r\n --el-transition-border: border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);\r\n --el-transition-box-shadow: box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);\r\n --el-transition-color: color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);\r\n\r\n /* 组件尺寸 */\r\n --el-component-size-large: 40px;\r\n --el-component-size: 32px;\r\n --el-component-size-small: 24px;\r\n\r\n /* 间距 */\r\n --el-spacing-xs: 8px;\r\n --el-spacing-sm: 12px;\r\n --el-spacing-md: 16px;\r\n --el-spacing-lg: 24px;\r\n --el-spacing-xl: 32px;\r\n\r\n /* 层级 */\r\n --el-index-normal: 1;\r\n --el-index-top: 1000;\r\n --el-index-popper: 2000;\r\n}\r\n\r\n/* ==================== 暗色主题 ==================== */\r\n:root[data-theme=\"dark\"],\r\n[data-theme=\"dark\"],\r\nhtml.dark {\r\n color-scheme: dark;\r\n\r\n /* 主色 - 暗色下稍亮 */\r\n --el-color-primary: #409eff;\r\n --el-color-primary-light-3: #3375b9;\r\n --el-color-primary-light-5: #2a598a;\r\n --el-color-primary-light-7: #213d5b;\r\n --el-color-primary-light-8: #1d3043;\r\n --el-color-primary-light-9: #18222b;\r\n --el-color-primary-dark-2: #66b1ff;\r\n\r\n /* 成功色 */\r\n --el-color-success: #67c23a;\r\n --el-color-success-light-3: #4e8e2f;\r\n --el-color-success-light-5: #3e6b27;\r\n --el-color-success-light-7: #2d481f;\r\n --el-color-success-light-8: #25371c;\r\n --el-color-success-light-9: #1c2518;\r\n --el-color-success-dark-2: #85ce61;\r\n\r\n /* 警告色 */\r\n --el-color-warning: #e6a23c;\r\n --el-color-warning-light-3: #a77730;\r\n --el-color-warning-light-5: #7d5b28;\r\n --el-color-warning-light-7: #533f20;\r\n --el-color-warning-light-8: #3e301c;\r\n --el-color-warning-light-9: #292218;\r\n --el-color-warning-dark-2: #ebb563;\r\n\r\n /* 危险色 */\r\n --el-color-danger: #f56c6c;\r\n --el-color-danger-light-3: #b25252;\r\n --el-color-danger-light-5: #854040;\r\n --el-color-danger-light-7: #582e2e;\r\n --el-color-danger-light-8: #412626;\r\n --el-color-danger-light-9: #2a1d1d;\r\n --el-color-danger-dark-2: #f78989;\r\n\r\n /* 错误色 */\r\n --el-color-error: #f56c6c;\r\n --el-color-error-light-3: #b25252;\r\n --el-color-error-light-5: #854040;\r\n --el-color-error-light-7: #582e2e;\r\n --el-color-error-light-8: #412626;\r\n --el-color-error-light-9: #2a1d1d;\r\n --el-color-error-dark-2: #f78989;\r\n\r\n /* 信息色 */\r\n --el-color-info: #909399;\r\n --el-color-info-light-3: #6b6d71;\r\n --el-color-info-light-5: #525457;\r\n --el-color-info-light-7: #393a3c;\r\n --el-color-info-light-8: #2d2d2f;\r\n --el-color-info-light-9: #202121;\r\n --el-color-info-dark-2: #a6a9ad;\r\n\r\n /* 背景色 */\r\n --el-bg-color: #141414;\r\n --el-bg-color-page: #0a0a0a;\r\n --el-bg-color-overlay: #1d1e1f;\r\n --el-bg-color-block: #141414;\r\n\r\n /* 文字色 */\r\n --el-text-color-primary: #E5EAF3;\r\n --el-text-color-regular: #CFD3DC;\r\n --el-text-color-secondary: #A3A6AD;\r\n --el-text-color-placeholder: #8D9095;\r\n --el-text-color-disabled: #6C6E72;\r\n\r\n /* 边框色 */\r\n --el-border-color: #4C4D4F;\r\n --el-border-color-light: #414243;\r\n --el-border-color-lighter: #363637;\r\n --el-border-color-extra-light: #2B2B2C;\r\n --el-border-color-dark: #58585B;\r\n --el-border-color-darker: #636466;\r\n\r\n /* 填充色 */\r\n --el-fill-color: #303030;\r\n --el-fill-color-light: #262727;\r\n --el-fill-color-lighter: #1D1D1D;\r\n --el-fill-color-extra-light: #191919;\r\n --el-fill-color-dark: #39393A;\r\n --el-fill-color-darker: #424243;\r\n --el-fill-color-blank: #141414;\r\n\r\n /* 阴影 */\r\n --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .36), 0px 8px 20px rgba(0, 0, 0, .72);\r\n --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .72);\r\n --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .72);\r\n --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;\r\n\r\n /* 遮罩 */\r\n --el-mask-color: rgba(0, 0, 0, .8);\r\n --el-mask-color-extra-light: rgba(0, 0, 0, .3);\r\n}");
|
|
1789
|
+
|
|
1820
1790
|
/***/ }),
|
|
1821
1791
|
|
|
1822
1792
|
/***/ "b8f0":
|
|
@@ -1897,6 +1867,15 @@ try {
|
|
|
1897
1867
|
module.exports = g;
|
|
1898
1868
|
|
|
1899
1869
|
|
|
1870
|
+
/***/ }),
|
|
1871
|
+
|
|
1872
|
+
/***/ "c8e4":
|
|
1873
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1874
|
+
|
|
1875
|
+
"use strict";
|
|
1876
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1877
|
+
/* harmony default export */ __webpack_exports__["default"] = ("/* ============================================================\n * XT-Element-UI Element UI 组件样式覆盖\n * 用于注入到子系统 iframe 的 <head> 中\n *\n * 设计原则:\n * 1. 覆盖 Element UI 编译后的固定颜色值,使其使用 CSS 变量\n * 2. 使用 !important 确保覆盖编译后的样式\n * 3. 子系统无需任何改造,注入此 CSS 后主题变量即生效\n * 4. 覆盖范围:所有核心颜色属性(背景、文字、边框、主色)\n * ============================================================ */\n\n/* ==================== Button 按钮 ==================== */\n.el-button--primary {\n background-color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n color: var(--el-color-white) !important;\n}\n.el-button--primary:hover,\n.el-button--primary:focus {\n background-color: var(--el-color-primary-light-3) !important;\n border-color: var(--el-color-primary-light-3) !important;\n}\n.el-button--primary:active {\n background-color: var(--el-color-primary-dark-2) !important;\n border-color: var(--el-color-primary-dark-2) !important;\n}\n.el-button--primary.is-plain {\n background-color: var(--el-color-primary-light-9) !important;\n border-color: var(--el-color-primary-light-5) !important;\n color: var(--el-color-primary) !important;\n}\n.el-button--primary.is-plain:hover,\n.el-button--primary.is-plain:focus {\n background-color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n color: var(--el-color-white) !important;\n}\n.el-button--primary.is-disabled,\n.el-button--primary.is-disabled:hover {\n background-color: var(--el-color-primary-light-5) !important;\n border-color: var(--el-color-primary-light-5) !important;\n}\n\n/* 成功按钮 */\n.el-button--success {\n background-color: var(--el-color-success) !important;\n border-color: var(--el-color-success) !important;\n}\n.el-button--success.is-plain {\n color: var(--el-color-success) !important;\n border-color: var(--el-color-success-light-5) !important;\n background-color: var(--el-color-success-light-9) !important;\n}\n\n/* 警告按钮 */\n.el-button--warning {\n background-color: var(--el-color-warning) !important;\n border-color: var(--el-color-warning) !important;\n}\n.el-button--warning.is-plain {\n color: var(--el-color-warning) !important;\n border-color: var(--el-color-warning-light-5) !important;\n background-color: var(--el-color-warning-light-9) !important;\n}\n\n/* 危险按钮 */\n.el-button--danger {\n background-color: var(--el-color-danger) !important;\n border-color: var(--el-color-danger) !important;\n}\n.el-button--danger.is-plain {\n color: var(--el-color-danger) !important;\n border-color: var(--el-color-danger-light-5) !important;\n background-color: var(--el-color-danger-light-9) !important;\n}\n\n/* 信息按钮 */\n.el-button--info {\n background-color: var(--el-color-info) !important;\n border-color: var(--el-color-info) !important;\n}\n.el-button--info.is-plain {\n color: var(--el-color-info) !important;\n border-color: var(--el-color-info-light-5) !important;\n background-color: var(--el-color-info-light-9) !important;\n}\n\n/* 默认按钮 */\n.el-button--default {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-button--default:hover {\n color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary-light-5) !important;\n background-color: var(--el-color-primary-light-9) !important;\n}\n\n/* 文字按钮 */\n.el-button--text {\n color: var(--el-color-primary) !important;\n}\n\n/* ==================== Input 输入框 ==================== */\n.el-input__inner {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-input__inner:hover {\n border-color: var(--el-border-color-dark) !important;\n}\n.el-input__inner:focus {\n border-color: var(--el-color-primary) !important;\n}\n.el-input__inner::placeholder {\n color: var(--el-text-color-placeholder) !important;\n}\n.el-input.is-disabled .el-input__inner {\n background-color: var(--el-fill-color-light) !important;\n border-color: var(--el-border-color-lighter) !important;\n color: var(--el-text-color-disabled) !important;\n}\n\n/* Textarea */\n.el-textarea__inner {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-textarea__inner:hover {\n border-color: var(--el-border-color-dark) !important;\n}\n.el-textarea__inner:focus {\n border-color: var(--el-color-primary) !important;\n}\n\n/* ==================== Select 选择器 ==================== */\n.el-select .el-input__inner {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-select-dropdown {\n background-color: var(--el-bg-color-overlay) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-select-dropdown__item {\n color: var(--el-text-color-regular) !important;\n}\n.el-select-dropdown__item:hover {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-select-dropdown__item.selected {\n color: var(--el-color-primary) !important;\n}\n.el-select-dropdown__item.is-disabled {\n color: var(--el-text-color-disabled) !important;\n}\n\n/* ==================== Table 表格 ==================== */\n.el-table {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-table th {\n background-color: var(--el-fill-color) !important;\n color: var(--el-text-color-primary) !important;\n border-color: var(--el-border-color-lighter) !important;\n}\n.el-table td {\n border-color: var(--el-border-color-lighter) !important;\n}\n.el-table--striped .el-table__body tr.el-table__row--striped td {\n background-color: var(--el-fill-color-lighter) !important;\n}\n.el-table--enable-row-hover .el-table__body tr:hover > td {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-table__body tr.current-row > td {\n background-color: var(--el-color-primary-light-9) !important;\n}\n.el-table__fixed-right::before,\n.el-table__fixed::before {\n background-color: var(--el-border-color-lighter) !important;\n}\n.el-table__border::after {\n background-color: var(--el-border-color-lighter) !important;\n}\n\n/* ==================== Dialog 对话框 ==================== */\n.el-dialog {\n background-color: var(--el-bg-color-overlay) !important;\n}\n.el-dialog__title {\n color: var(--el-text-color-primary) !important;\n}\n.el-dialog__header {\n border-bottom-color: var(--el-border-color-lighter) !important;\n}\n.el-dialog__footer {\n border-top-color: var(--el-border-color-lighter) !important;\n}\n.el-dialog__body {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Menu 菜单 ==================== */\n.el-menu {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color-lighter) !important;\n}\n.el-menu-item {\n color: var(--el-text-color-regular) !important;\n}\n.el-menu-item:hover {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-menu-item.is-active {\n color: var(--el-color-primary) !important;\n border-bottom-color: var(--el-color-primary) !important;\n}\n.el-submenu__title {\n color: var(--el-text-color-regular) !important;\n}\n.el-submenu__title:hover {\n background-color: var(--el-fill-color-light) !important;\n}\n\n/* 暗色菜单 */\n.el-menu--dark {\n background-color: var(--el-bg-color) !important;\n}\n.el-menu--dark .el-menu-item {\n color: var(--el-text-color-primary) !important;\n}\n.el-menu--dark .el-menu-item:hover {\n background-color: var(--el-fill-color) !important;\n}\n\n/* ==================== Tabs 标签页 ==================== */\n.el-tabs__header {\n border-bottom-color: var(--el-border-color-lighter) !important;\n}\n.el-tabs__item {\n color: var(--el-text-color-regular) !important;\n}\n.el-tabs__item:hover {\n color: var(--el-color-primary) !important;\n}\n.el-tabs__item.is-active {\n color: var(--el-color-primary) !important;\n}\n.el-tabs__active-bar {\n background-color: var(--el-color-primary) !important;\n}\n.el-tabs__nav-wrap::after {\n background-color: var(--el-border-color-light) !important;\n}\n\n/* ==================== Tag 标签 ==================== */\n.el-tag {\n background-color: var(--el-fill-color-light) !important;\n border-color: var(--el-border-color-lighter) !important;\n color: var(--el-text-color-primary) !important;\n}\n.el-tag--primary {\n background-color: var(--el-color-primary-light-9) !important;\n border-color: var(--el-color-primary-light-7) !important;\n color: var(--el-color-primary) !important;\n}\n.el-tag--success {\n background-color: var(--el-color-success-light-9) !important;\n border-color: var(--el-color-success-light-7) !important;\n color: var(--el-color-success) !important;\n}\n.el-tag--warning {\n background-color: var(--el-color-warning-light-9) !important;\n border-color: var(--el-color-warning-light-7) !important;\n color: var(--el-color-warning) !important;\n}\n.el-tag--danger {\n background-color: var(--el-color-danger-light-9) !important;\n border-color: var(--el-color-danger-light-7) !important;\n color: var(--el-color-danger) !important;\n}\n.el-tag--info {\n background-color: var(--el-color-info-light-9) !important;\n border-color: var(--el-color-info-light-7) !important;\n color: var(--el-color-info) !important;\n}\n\n/* ==================== Pagination 分页 ==================== */\n.el-pagination {\n color: var(--el-text-color-regular) !important;\n}\n.el-pagination button {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-pagination button:hover {\n color: var(--el-color-primary) !important;\n}\n.el-pagination .el-pager li {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-pagination .el-pager li:hover {\n color: var(--el-color-primary) !important;\n}\n.el-pagination .el-pager li.active {\n background-color: var(--el-color-primary) !important;\n color: var(--el-color-white) !important;\n}\n\n/* ==================== Form 表单 ==================== */\n.el-form-item__label {\n color: var(--el-text-color-regular) !important;\n}\n.el-form-item__error {\n color: var(--el-color-danger) !important;\n}\n\n/* ==================== Checkbox 复选框 ==================== */\n.el-checkbox__input.is-checked .el-checkbox__inner {\n background-color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n}\n.el-checkbox__input.is-checked + .el-checkbox__label {\n color: var(--el-color-primary) !important;\n}\n.el-checkbox__label {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Radio 单选框 ==================== */\n.el-radio__input.is-checked .el-radio__inner {\n background-color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n}\n.el-radio__input.is-checked + .el-radio__label {\n color: var(--el-color-primary) !important;\n}\n.el-radio__label {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Switch 开关 ==================== */\n.el-switch.is-checked .el-switch__core {\n background-color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n}\n\n/* ==================== DatePicker 日期选择器 ==================== */\n.el-date-table td.current:not(.disabled) span {\n background-color: var(--el-color-primary) !important;\n color: var(--el-color-white) !important;\n}\n.el-date-table td.today span {\n color: var(--el-color-primary) !important;\n}\n.el-date-table td.available:hover {\n color: var(--el-color-primary) !important;\n}\n.el-picker-panel {\n background-color: var(--el-bg-color-overlay) !important;\n color: var(--el-text-color-regular) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-picker-panel__icon-btn:hover {\n color: var(--el-color-primary) !important;\n}\n\n/* ==================== Dropdown 下拉菜单 ==================== */\n.el-dropdown-menu {\n background-color: var(--el-bg-color-overlay) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-dropdown-menu__item {\n color: var(--el-text-color-regular) !important;\n}\n.el-dropdown-menu__item:hover {\n background-color: var(--el-fill-color-light) !important;\n color: var(--el-color-primary) !important;\n}\n\n/* ==================== Cascader 级联选择器 ==================== */\n.el-cascader-menu {\n background-color: var(--el-bg-color-overlay) !important;\n color: var(--el-text-color-regular) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-cascader-node:not(.is-disabled):hover {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-cascader-node.is-active {\n color: var(--el-color-primary) !important;\n}\n\n/* ==================== Tree 树形控件 ==================== */\n.el-tree {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-tree-node__content:hover {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-tree-node:focus > .el-tree-node__content {\n background-color: var(--el-fill-color-light) !important;\n}\n.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {\n background-color: var(--el-color-primary-light-9) !important;\n}\n\n/* ==================== Loading / Message / Notification ==================== */\n.el-loading-mask {\n background-color: var(--el-mask-color-extra-light) !important;\n}\n\n.el-message {\n background-color: var(--el-bg-color-overlay) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-message--success {\n background-color: var(--el-color-success-light-9) !important;\n border-color: var(--el-color-success-light-7) !important;\n}\n.el-message--warning {\n background-color: var(--el-color-warning-light-9) !important;\n border-color: var(--el-color-warning-light-7) !important;\n}\n.el-message--error {\n background-color: var(--el-color-error-light-9) !important;\n border-color: var(--el-color-error-light-7) !important;\n}\n.el-message--info {\n background-color: var(--el-color-info-light-9) !important;\n border-color: var(--el-color-info-light-7) !important;\n}\n\n.el-notification {\n background-color: var(--el-bg-color-overlay) !important;\n border-color: var(--el-border-color-light) !important;\n}\n\n/* ==================== Breadcrumb 面包屑 ==================== */\n.el-breadcrumb__inner {\n color: var(--el-text-color-regular) !important;\n}\n.el-breadcrumb__inner.is-link:hover {\n color: var(--el-color-primary) !important;\n}\n\n/* ==================== Steps 步骤条 ==================== */\n.el-step__title.is-process {\n color: var(--el-text-color-primary) !important;\n}\n.el-step__title.is-wait {\n color: var(--el-text-color-placeholder) !important;\n}\n.el-step__head.is-process {\n color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n}\n.el-step__head.is-finish {\n color: var(--el-color-primary) !important;\n border-color: var(--el-color-primary) !important;\n}\n.el-step__line-inner {\n background-color: var(--el-border-color) !important;\n}\n\n/* ==================== Card 卡片 ==================== */\n.el-card {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color-light) !important;\n color: var(--el-text-color-regular) !important;\n}\n.el-card__header {\n border-bottom-color: var(--el-border-color-lighter) !important;\n}\n\n/* ==================== Collapse 折叠面板 ==================== */\n.el-collapse {\n border-color: var(--el-border-color-light) !important;\n}\n.el-collapse-item__header {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-primary) !important;\n border-bottom-color: var(--el-border-color-lighter) !important;\n}\n.el-collapse-item__wrap {\n background-color: var(--el-bg-color) !important;\n border-bottom-color: var(--el-border-color-lighter) !important;\n}\n.el-collapse-item__content {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Alert 警告 ==================== */\n.el-alert--success {\n background-color: var(--el-color-success-light-9) !important;\n}\n.el-alert--warning {\n background-color: var(--el-color-warning-light-9) !important;\n}\n.el-alert--error {\n background-color: var(--el-color-danger-light-9) !important;\n}\n.el-alert--info {\n background-color: var(--el-color-info-light-9) !important;\n}\n\n/* ==================== Badge 标记 ==================== */\n.el-badge__content--primary {\n background-color: var(--el-color-primary) !important;\n}\n.el-badge__content--success {\n background-color: var(--el-color-success) !important;\n}\n.el-badge__content--warning {\n background-color: var(--el-color-warning) !important;\n}\n.el-badge__content--danger {\n background-color: var(--el-color-danger) !important;\n}\n.el-badge__content--info {\n background-color: var(--el-color-info) !important;\n}\n\n/* ==================== Progress 进度条 ==================== */\n.el-progress-bar__inner {\n background-color: var(--el-color-primary) !important;\n}\n.el-progress-bar__outer {\n background-color: var(--el-fill-color) !important;\n}\n.el-progress--success .el-progress-bar__inner {\n background-color: var(--el-color-success) !important;\n}\n.el-progress--exception .el-progress-bar__inner {\n background-color: var(--el-color-danger) !important;\n}\n\n/* ==================== Slider 滑块 ==================== */\n.el-slider__bar {\n background-color: var(--el-color-primary) !important;\n}\n.el-slider__button {\n border-color: var(--el-color-primary) !important;\n}\n\n/* ==================== Transfer 穿梭框 ==================== */\n.el-transfer-panel {\n background-color: var(--el-bg-color) !important;\n border-color: var(--el-border-color-light) !important;\n}\n.el-transfer-panel__header {\n background-color: var(--el-fill-color-light) !important;\n border-bottom-color: var(--el-border-color-lighter) !important;\n color: var(--el-text-color-primary) !important;\n}\n.el-transfer-panel__item.el-checkbox {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Drawer 抽屉 ==================== */\n.el-drawer {\n background-color: var(--el-bg-color-overlay) !important;\n}\n.el-drawer__header {\n color: var(--el-text-color-primary) !important;\n}\n.el-drawer__body {\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== Popover / Tooltip ==================== */\n.el-popover {\n background-color: var(--el-bg-color-overlay) !important;\n border-color: var(--el-border-color-light) !important;\n color: var(--el-text-color-regular) !important;\n}\n\n/* ==================== 全局背景/文字 ==================== */\nbody {\n background-color: var(--el-bg-color-page) !important;\n color: var(--el-text-color-primary) !important;\n}\n\n/* 链接色 */\na {\n color: var(--el-color-primary) !important;\n}\na:hover {\n color: var(--el-color-primary-light-3) !important;\n}\n\n/* 分割线 */\n.el-divider__text {\n background-color: var(--el-bg-color) !important;\n color: var(--el-text-color-primary) !important;\n}\n.el-divider--horizontal {\n border-top-color: var(--el-border-color-lighter) !important;\n}");
|
|
1878
|
+
|
|
1900
1879
|
/***/ }),
|
|
1901
1880
|
|
|
1902
1881
|
/***/ "ceb9":
|
|
@@ -1989,13 +1968,6 @@ exports.default = {
|
|
|
1989
1968
|
|
|
1990
1969
|
/***/ }),
|
|
1991
1970
|
|
|
1992
|
-
/***/ "e895":
|
|
1993
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
1994
|
-
|
|
1995
|
-
// extracted by mini-css-extract-plugin
|
|
1996
|
-
|
|
1997
|
-
/***/ }),
|
|
1998
|
-
|
|
1999
1971
|
/***/ "e8d2":
|
|
2000
1972
|
/***/ (function(module, exports, __webpack_require__) {
|
|
2001
1973
|
|
|
@@ -2021,6 +1993,13 @@ exports.default = {
|
|
|
2021
1993
|
|
|
2022
1994
|
/***/ }),
|
|
2023
1995
|
|
|
1996
|
+
/***/ "f699":
|
|
1997
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
1998
|
+
|
|
1999
|
+
// extracted by mini-css-extract-plugin
|
|
2000
|
+
|
|
2001
|
+
/***/ }),
|
|
2002
|
+
|
|
2024
2003
|
/***/ "fb15":
|
|
2025
2004
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2026
2005
|
|
|
@@ -2062,6 +2041,7 @@ __webpack_require__.d(__webpack_exports__, "XtIcon", function() { return /* reex
|
|
|
2062
2041
|
__webpack_require__.d(__webpack_exports__, "XtTable", function() { return /* reexport */ components_xt_table; });
|
|
2063
2042
|
__webpack_require__.d(__webpack_exports__, "XtList", function() { return /* reexport */ components_xt_list; });
|
|
2064
2043
|
__webpack_require__.d(__webpack_exports__, "XtScrollArrow", function() { return /* reexport */ components_xt_scroll_arrow; });
|
|
2044
|
+
__webpack_require__.d(__webpack_exports__, "XtScroll", function() { return /* reexport */ components_xt_scroll; });
|
|
2065
2045
|
__webpack_require__.d(__webpack_exports__, "XtBar", function() { return /* reexport */ XtBar; });
|
|
2066
2046
|
__webpack_require__.d(__webpack_exports__, "XtLine", function() { return /* reexport */ XtLine; });
|
|
2067
2047
|
__webpack_require__.d(__webpack_exports__, "XtChart", function() { return /* reexport */ components_xt_chart; });
|
|
@@ -2073,6 +2053,7 @@ __webpack_require__.d(__webpack_exports__, "XtUpload", function() { return /* re
|
|
|
2073
2053
|
__webpack_require__.d(__webpack_exports__, "XtTransferTree", function() { return /* reexport */ components_xt_transfer_tree; });
|
|
2074
2054
|
__webpack_require__.d(__webpack_exports__, "XtFormSchema", function() { return /* reexport */ components_xt_form_schema; });
|
|
2075
2055
|
__webpack_require__.d(__webpack_exports__, "XtFlow", function() { return /* reexport */ components_xt_flow; });
|
|
2056
|
+
__webpack_require__.d(__webpack_exports__, "Theme", function() { return /* reexport */ components_theme; });
|
|
2076
2057
|
|
|
2077
2058
|
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
|
|
2078
2059
|
// This file is imported into lib/wc client bundles.
|
|
@@ -2876,480 +2857,708 @@ EchartsUtil.destroyAll = function() {
|
|
|
2876
2857
|
|
|
2877
2858
|
|
|
2878
2859
|
|
|
2860
|
+
// CONCATENATED MODULE: ./src/utils/color.js
|
|
2861
|
+
/**
|
|
2862
|
+
* 颜色工具函数
|
|
2863
|
+
* 供 utils/index.js 和 theme/iframe-injector.js 共同使用
|
|
2864
|
+
*/
|
|
2865
|
+
|
|
2866
|
+
/**
|
|
2867
|
+
* 十六进制颜色转 RGB 字符串 "r, g, b"
|
|
2868
|
+
*/
|
|
2869
|
+
function hexToRgb(hex) {
|
|
2870
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2871
|
+
return result
|
|
2872
|
+
? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(result[3], 16)}`
|
|
2873
|
+
: '24, 144, 255'
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2876
|
+
/**
|
|
2877
|
+
* 十六进制颜色转 RGB 对象 { r, g, b }
|
|
2878
|
+
*/
|
|
2879
|
+
function hexToRgbObject(hex) {
|
|
2880
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2881
|
+
return result ? {
|
|
2882
|
+
r: parseInt(result[1], 16),
|
|
2883
|
+
g: parseInt(result[2], 16),
|
|
2884
|
+
b: parseInt(result[3], 16)
|
|
2885
|
+
} : null
|
|
2886
|
+
}
|
|
2887
|
+
|
|
2888
|
+
/**
|
|
2889
|
+
* RGB 对象转十六进制
|
|
2890
|
+
*/
|
|
2891
|
+
function rgbToHex(r, g, b) {
|
|
2892
|
+
return '#' + [r, g, b].map(x => {
|
|
2893
|
+
const hex = x.toString(16)
|
|
2894
|
+
return hex.length === 1 ? '0' + hex : hex
|
|
2895
|
+
}).join('')
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
/**
|
|
2899
|
+
* 加深颜色(amount 范围 0-100,表示减少的量)
|
|
2900
|
+
*/
|
|
2901
|
+
function darkenColor(hex, amount) {
|
|
2902
|
+
const obj = hexToRgbObject(hex)
|
|
2903
|
+
if (!obj) return hex
|
|
2904
|
+
const r = Math.max(0, obj.r - amount)
|
|
2905
|
+
const g = Math.max(0, obj.g - amount)
|
|
2906
|
+
const b = Math.max(0, obj.b - amount)
|
|
2907
|
+
return rgbToHex(r, g, b)
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
/**
|
|
2911
|
+
* 减淡/变亮颜色(percent 范围 0-100,表示增加的百分比)
|
|
2912
|
+
*/
|
|
2913
|
+
function lightenColor(hex, percent) {
|
|
2914
|
+
const obj = hexToRgbObject(hex)
|
|
2915
|
+
if (!obj) return hex
|
|
2916
|
+
const amount = Math.round(2.55 * percent)
|
|
2917
|
+
const r = Math.min(255, obj.r + amount)
|
|
2918
|
+
const g = Math.min(255, obj.g + amount)
|
|
2919
|
+
const b = Math.min(255, obj.b + amount)
|
|
2920
|
+
return rgbToHex(r, g, b)
|
|
2921
|
+
}
|
|
2922
|
+
|
|
2923
|
+
/**
|
|
2924
|
+
* 根据主色调生成 Element UI 主色 CSS 变量
|
|
2925
|
+
* 返回 { '--el-color-primary': hex, '--el-color-primary-light-3': hex, ... }
|
|
2926
|
+
*/
|
|
2927
|
+
function generatePrimaryColorVars(primaryColor) {
|
|
2928
|
+
const prefix = '--el-color-primary'
|
|
2929
|
+
return {
|
|
2930
|
+
[prefix]: primaryColor,
|
|
2931
|
+
[`${prefix}-light-3`]: lightenColor(primaryColor, 30),
|
|
2932
|
+
[`${prefix}-light-5`]: lightenColor(primaryColor, 50),
|
|
2933
|
+
[`${prefix}-light-7`]: lightenColor(primaryColor, 70),
|
|
2934
|
+
[`${prefix}-light-8`]: lightenColor(primaryColor, 80),
|
|
2935
|
+
[`${prefix}-light-9`]: lightenColor(primaryColor, 90),
|
|
2936
|
+
[`${prefix}-dark-2`]: darkenColor(primaryColor, 20),
|
|
2937
|
+
[`${prefix}-rgb`]: hexToRgb(primaryColor)
|
|
2938
|
+
}
|
|
2939
|
+
}
|
|
2940
|
+
|
|
2941
|
+
/**
|
|
2942
|
+
* 根据主色调生成 xt 组件主色 CSS 变量
|
|
2943
|
+
* 返回 { '--xt-color-primary': hex, ... }
|
|
2944
|
+
*/
|
|
2945
|
+
function generateXtPrimaryColorVars(primaryColor) {
|
|
2946
|
+
const prefix = '--xt-color-primary'
|
|
2947
|
+
return {
|
|
2948
|
+
[prefix]: primaryColor,
|
|
2949
|
+
[`${prefix}-light-3`]: lightenColor(primaryColor, 30),
|
|
2950
|
+
[`${prefix}-light-5`]: lightenColor(primaryColor, 50),
|
|
2951
|
+
[`${prefix}-light-7`]: lightenColor(primaryColor, 70),
|
|
2952
|
+
[`${prefix}-light-8`]: lightenColor(primaryColor, 80),
|
|
2953
|
+
[`${prefix}-light-9`]: lightenColor(primaryColor, 90)
|
|
2954
|
+
}
|
|
2955
|
+
}
|
|
2956
|
+
|
|
2957
|
+
/* harmony default export */ var utils_color = ({
|
|
2958
|
+
hexToRgb,
|
|
2959
|
+
hexToRgbObject,
|
|
2960
|
+
rgbToHex,
|
|
2961
|
+
darkenColor,
|
|
2962
|
+
lightenColor,
|
|
2963
|
+
generatePrimaryColorVars,
|
|
2964
|
+
generateXtPrimaryColorVars
|
|
2965
|
+
});
|
|
2966
|
+
// CONCATENATED MODULE: ./src/utils/theme-vars.js
|
|
2967
|
+
/**
|
|
2968
|
+
* 主题 CSS 变量常量
|
|
2969
|
+
* 供 utils/index.js 和 theme/iframe-injector.js 共同使用
|
|
2970
|
+
* 定义 Element UI 组件主题相关的 CSS 变量映射
|
|
2971
|
+
*/
|
|
2972
|
+
|
|
2973
|
+
|
|
2974
|
+
/**
|
|
2975
|
+
* 亮色主题 Element UI CSS 变量(关键子集:主色/背景/文字/边框/填充/遮罩)
|
|
2976
|
+
*/
|
|
2977
|
+
const LIGHT_THEME_VARS = {
|
|
2978
|
+
'--el-color-primary': '#1890ff',
|
|
2979
|
+
'--el-color-success': '#67c23a',
|
|
2980
|
+
'--el-color-warning': '#e6a23c',
|
|
2981
|
+
'--el-color-danger': '#f56c6c',
|
|
2982
|
+
'--el-color-error': '#f56c6c',
|
|
2983
|
+
'--el-color-info': '#909399',
|
|
2984
|
+
'--el-bg-color': '#ffffff',
|
|
2985
|
+
'--el-bg-color-page': '#f2f3f5',
|
|
2986
|
+
'--el-bg-color-overlay': '#ffffff',
|
|
2987
|
+
'--el-text-color-primary': '#303133',
|
|
2988
|
+
'--el-text-color-regular': '#606266',
|
|
2989
|
+
'--el-text-color-secondary': '#909399',
|
|
2990
|
+
'--el-text-color-placeholder': '#a8abb2',
|
|
2991
|
+
'--el-text-color-disabled': '#c0c4cc',
|
|
2992
|
+
'--el-border-color': '#dcdfe6',
|
|
2993
|
+
'--el-border-color-light': '#e4e7ed',
|
|
2994
|
+
'--el-border-color-lighter': '#ebeef5',
|
|
2995
|
+
'--el-fill-color': '#f0f2f5',
|
|
2996
|
+
'--el-fill-color-light': '#f5f7fa',
|
|
2997
|
+
'--el-fill-color-lighter': '#fafafa',
|
|
2998
|
+
'--el-mask-color': 'rgba(255, 255, 255, .9)',
|
|
2999
|
+
'--el-mask-color-extra-light': 'rgba(255, 255, 255, .3)'
|
|
3000
|
+
}
|
|
3001
|
+
|
|
3002
|
+
/**
|
|
3003
|
+
* 暗色主题 Element UI CSS 变量(对应 LIGHT_THEME_VARS 的暗色版本)
|
|
3004
|
+
*/
|
|
3005
|
+
const DARK_THEME_VARS = {
|
|
3006
|
+
'--el-color-primary': '#409eff',
|
|
3007
|
+
'--el-color-success': '#67c23a',
|
|
3008
|
+
'--el-color-warning': '#e6a23c',
|
|
3009
|
+
'--el-color-danger': '#f56c6c',
|
|
3010
|
+
'--el-color-error': '#f56c6c',
|
|
3011
|
+
'--el-color-info': '#909399',
|
|
3012
|
+
'--el-bg-color': '#141414',
|
|
3013
|
+
'--el-bg-color-page': '#0a0a0a',
|
|
3014
|
+
'--el-bg-color-overlay': '#1d1e1f',
|
|
3015
|
+
'--el-text-color-primary': '#E5EAF3',
|
|
3016
|
+
'--el-text-color-regular': '#CFD3DC',
|
|
3017
|
+
'--el-text-color-secondary': '#A3A6AD',
|
|
3018
|
+
'--el-text-color-placeholder': '#8D9095',
|
|
3019
|
+
'--el-text-color-disabled': '#6C6E72',
|
|
3020
|
+
'--el-border-color': '#4C4D4F',
|
|
3021
|
+
'--el-border-color-light': '#414243',
|
|
3022
|
+
'--el-border-color-lighter': '#363637',
|
|
3023
|
+
'--el-fill-color': '#303030',
|
|
3024
|
+
'--el-fill-color-light': '#262727',
|
|
3025
|
+
'--el-fill-color-lighter': '#1D1D1D',
|
|
3026
|
+
'--el-mask-color': 'rgba(0, 0, 0, .8)',
|
|
3027
|
+
'--el-mask-color-extra-light': 'rgba(0, 0, 0, .3)'
|
|
3028
|
+
}
|
|
3029
|
+
|
|
3030
|
+
/**
|
|
3031
|
+
* 品牌色映射
|
|
3032
|
+
* 用于微前端架构中根据品牌标识切换主题主色
|
|
3033
|
+
*/
|
|
3034
|
+
const BRAND_COLORS = {
|
|
3035
|
+
water: { light: '#0077be', dark: '#0099cc' },
|
|
3036
|
+
electricity: { light: '#2ecc71', dark: '#27ae60' },
|
|
3037
|
+
gas: { light: '#f39c12', dark: '#e67e22' }
|
|
3038
|
+
}
|
|
3039
|
+
|
|
3040
|
+
/**
|
|
3041
|
+
* 主题存储 key
|
|
3042
|
+
*/
|
|
3043
|
+
const THEME_STORAGE_KEY = 'xt-element-ui-theme-config'
|
|
3044
|
+
|
|
3045
|
+
/**
|
|
3046
|
+
* 主题变化事件名
|
|
3047
|
+
*/
|
|
3048
|
+
const THEME_CHANGE_EVENT = 'xt-theme-change'
|
|
3049
|
+
|
|
3050
|
+
/**
|
|
3051
|
+
* 将主题相关 CSS 变量应用到任意 DOM 元素
|
|
3052
|
+
* 统一 utils/index.js(主文档)和 iframe-injector.js(iframe)的变量设置逻辑
|
|
3053
|
+
*
|
|
3054
|
+
* @param {HTMLElement} element - 目标元素(通常是 document.documentElement)
|
|
3055
|
+
* @param {Object} config
|
|
3056
|
+
* @param {string} config.theme - 'white' | 'dark'
|
|
3057
|
+
* @param {string} [config.primaryColor] - 主色调 hex
|
|
3058
|
+
* @param {string} [config.brand] - 品牌标识 '' | 'water' | 'electricity' | 'gas'
|
|
3059
|
+
*/
|
|
3060
|
+
function applyThemeVars(element, config) {
|
|
3061
|
+
if (!element) return
|
|
3062
|
+
|
|
3063
|
+
const { theme = 'white', primaryColor, brand = '' } = config
|
|
3064
|
+
const style = element.style
|
|
3065
|
+
|
|
3066
|
+
// 1. 设置 data-theme / data-brand 属性
|
|
3067
|
+
element.setAttribute('data-theme', theme)
|
|
3068
|
+
if (brand) {
|
|
3069
|
+
element.setAttribute('data-brand', brand)
|
|
3070
|
+
} else {
|
|
3071
|
+
element.removeAttribute('data-brand')
|
|
3072
|
+
}
|
|
3073
|
+
|
|
3074
|
+
// 2. 应用主题变量(亮色/暗色)
|
|
3075
|
+
const themeVars = theme === 'dark' ? DARK_THEME_VARS : LIGHT_THEME_VARS
|
|
3076
|
+
for (const key in themeVars) {
|
|
3077
|
+
style.setProperty(key, themeVars[key])
|
|
3078
|
+
}
|
|
3079
|
+
|
|
3080
|
+
// 3. 应用主色调变量
|
|
3081
|
+
let color = primaryColor
|
|
3082
|
+
if (brand && BRAND_COLORS[brand]) {
|
|
3083
|
+
color = BRAND_COLORS[brand][theme === 'dark' ? 'dark' : 'light'] || primaryColor
|
|
3084
|
+
}
|
|
3085
|
+
if (color) {
|
|
3086
|
+
const primaryVars = generatePrimaryColorVars(color)
|
|
3087
|
+
for (const key in primaryVars) {
|
|
3088
|
+
style.setProperty(key, primaryVars[key])
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
}
|
|
3092
|
+
|
|
3093
|
+
/* harmony default export */ var theme_vars = ({
|
|
3094
|
+
LIGHT_THEME_VARS,
|
|
3095
|
+
DARK_THEME_VARS,
|
|
3096
|
+
BRAND_COLORS,
|
|
3097
|
+
THEME_STORAGE_KEY,
|
|
3098
|
+
THEME_CHANGE_EVENT,
|
|
3099
|
+
applyThemeVars
|
|
3100
|
+
});
|
|
2879
3101
|
// CONCATENATED MODULE: ./src/utils/index.js
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
const defaultConfig = {
|
|
2883
|
-
theme: 'white',
|
|
2884
|
-
size: 'medium',
|
|
2885
|
-
primaryColor: '#1890ff'
|
|
2886
|
-
}
|
|
2887
|
-
|
|
2888
|
-
let currentConfig = { ...defaultConfig }
|
|
2889
|
-
|
|
2890
|
-
const configChangeListeners = []
|
|
2891
|
-
|
|
2892
|
-
const emitConfigChange = function(key, value) {
|
|
2893
|
-
configChangeListeners.forEach(listener => {
|
|
2894
|
-
listener(key, value)
|
|
2895
|
-
})
|
|
2896
|
-
}
|
|
2897
|
-
|
|
2898
|
-
const getConfig = function() {
|
|
2899
|
-
return { ...currentConfig }
|
|
2900
|
-
}
|
|
2901
|
-
|
|
2902
|
-
const setConfig = function(config) {
|
|
2903
|
-
if (typeof config !== 'object' || config === null) {
|
|
2904
|
-
console.warn('[XtElementUI] setConfig 必须传入对象参数')
|
|
2905
|
-
return
|
|
2906
|
-
}
|
|
2907
|
-
|
|
2908
|
-
if (config.theme !== undefined) {
|
|
2909
|
-
setTheme(config.theme)
|
|
2910
|
-
}
|
|
2911
|
-
if (config.size !== undefined) {
|
|
2912
|
-
setSize(config.size)
|
|
2913
|
-
}
|
|
2914
|
-
if (config.primaryColor !== undefined) {
|
|
2915
|
-
setPrimaryColor(config.primaryColor)
|
|
2916
|
-
}
|
|
2917
|
-
}
|
|
2918
|
-
|
|
2919
|
-
function isBrowser() {
|
|
2920
|
-
return typeof window !== 'undefined' && typeof document !== 'undefined'
|
|
2921
|
-
}
|
|
2922
|
-
|
|
2923
|
-
const setTheme = function(theme) {
|
|
2924
|
-
const validThemes = ['white', 'dark']
|
|
2925
|
-
if (!validThemes.includes(theme)) {
|
|
2926
|
-
console.warn(`[XtElementUI] 无效的主题值: ${theme},可选值: ${validThemes.join(', ')}`)
|
|
2927
|
-
return
|
|
2928
|
-
}
|
|
2929
|
-
|
|
2930
|
-
currentConfig.theme = theme
|
|
2931
|
-
|
|
2932
|
-
if (isBrowser()) {
|
|
2933
|
-
const root = document.documentElement
|
|
2934
|
-
|
|
2935
|
-
if (theme === 'dark') {
|
|
2936
|
-
root.setAttribute('data-theme', 'dark')
|
|
2937
|
-
} else {
|
|
2938
|
-
root.setAttribute('data-theme', theme)
|
|
2939
|
-
}
|
|
2940
|
-
|
|
2941
|
-
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
2942
|
-
}
|
|
2943
|
-
|
|
2944
|
-
emitConfigChange('theme', theme)
|
|
2945
|
-
}
|
|
2946
|
-
|
|
2947
|
-
const setSize = function(size) {
|
|
2948
|
-
const validSizes = ['small', 'medium', 'large']
|
|
2949
|
-
if (!validSizes.includes(size)) {
|
|
2950
|
-
console.warn(`[XtElementUI] 无效的大小值: ${size},可选值: ${validSizes.join(', ')}`)
|
|
2951
|
-
return
|
|
2952
|
-
}
|
|
2953
|
-
|
|
2954
|
-
currentConfig.size = size
|
|
2955
|
-
|
|
2956
|
-
if (isBrowser()) {
|
|
2957
|
-
document.documentElement.setAttribute('data-size', size)
|
|
2958
|
-
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
2959
|
-
}
|
|
2960
|
-
|
|
2961
|
-
emitConfigChange('size', size)
|
|
2962
|
-
}
|
|
2963
|
-
|
|
2964
|
-
// 将十六进制颜色转换为 RGB 对象
|
|
2965
|
-
function hexToRgb(hex) {
|
|
2966
|
-
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2967
|
-
return result ? {
|
|
2968
|
-
r: parseInt(result[1], 16),
|
|
2969
|
-
g: parseInt(result[2], 16),
|
|
2970
|
-
b: parseInt(result[3], 16)
|
|
2971
|
-
} : null
|
|
2972
|
-
}
|
|
2973
|
-
|
|
2974
|
-
// 将 RGB 对象转换为十六进制颜色
|
|
2975
|
-
function rgbToHex(r, g, b) {
|
|
2976
|
-
return '#' + [r, g, b].map(x => {
|
|
2977
|
-
const hex = x.toString(16)
|
|
2978
|
-
return hex.length === 1 ? '0' + hex : hex
|
|
2979
|
-
}).join('')
|
|
2980
|
-
}
|
|
2981
|
-
|
|
2982
|
-
// 计算浅色系列(混合白色)
|
|
2983
|
-
function lightenColor(hex, percent) {
|
|
2984
|
-
const rgb = hexToRgb(hex)
|
|
2985
|
-
if (!rgb) return hex
|
|
2986
|
-
|
|
2987
|
-
const amount = Math.round(2.55 * percent)
|
|
2988
|
-
const r = Math.min(255, rgb.r + amount)
|
|
2989
|
-
const g = Math.min(255, rgb.g + amount)
|
|
2990
|
-
const b = Math.min(255, rgb.b + amount)
|
|
2991
|
-
|
|
2992
|
-
return rgbToHex(r, g, b)
|
|
2993
|
-
}
|
|
2994
|
-
|
|
2995
|
-
const setPrimaryColor = function(color) {
|
|
2996
|
-
const colorRegex = /^#[0-9A-Fa-f]{3}$|^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/
|
|
2997
|
-
if (!colorRegex.test(color)) {
|
|
2998
|
-
console.warn(`[XtElementUI] 无效的颜色值: ${color},请使用十六进制颜色格式,如 #1890ff`)
|
|
2999
|
-
return
|
|
3000
|
-
}
|
|
3001
|
-
|
|
3002
|
-
let validColor = color
|
|
3003
|
-
if (color.length === 4) {
|
|
3004
|
-
validColor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]
|
|
3005
|
-
} else if (color.length === 9) {
|
|
3006
|
-
validColor = color.substring(0, 7)
|
|
3007
|
-
}
|
|
3008
|
-
|
|
3009
|
-
currentConfig.primaryColor = validColor
|
|
3010
|
-
|
|
3011
|
-
if (isBrowser()) {
|
|
3012
|
-
document.documentElement.style.setProperty('--xt-color-primary', validColor)
|
|
3013
|
-
|
|
3014
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-3', lightenColor(validColor, 30))
|
|
3015
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-5', lightenColor(validColor, 50))
|
|
3016
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-7', lightenColor(validColor, 70))
|
|
3017
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-8', lightenColor(validColor, 80))
|
|
3018
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-9', lightenColor(validColor, 90))
|
|
3019
|
-
}
|
|
3020
|
-
|
|
3021
|
-
emitConfigChange('primaryColor', validColor)
|
|
3022
|
-
}
|
|
3023
|
-
|
|
3024
|
-
// 获取当前主题
|
|
3025
|
-
const getTheme = function() {
|
|
3026
|
-
return currentConfig.theme
|
|
3027
|
-
}
|
|
3028
|
-
|
|
3029
|
-
// 获取当前字体大小
|
|
3030
|
-
const getSize = function() {
|
|
3031
|
-
return currentConfig.size
|
|
3032
|
-
}
|
|
3033
|
-
|
|
3034
|
-
// 获取当前主色调
|
|
3035
|
-
const getPrimaryColor = function() {
|
|
3036
|
-
return currentConfig.primaryColor
|
|
3037
|
-
}
|
|
3038
|
-
|
|
3039
|
-
// 重置为默认配置
|
|
3040
|
-
const resetConfig = function() {
|
|
3041
|
-
setConfig(defaultConfig)
|
|
3042
|
-
}
|
|
3043
|
-
|
|
3044
|
-
// 监听配置变更
|
|
3045
|
-
const onConfigChange = function(listener) {
|
|
3046
|
-
if (typeof listener === 'function') {
|
|
3047
|
-
configChangeListeners.push(listener)
|
|
3048
|
-
return function() {
|
|
3049
|
-
const index = configChangeListeners.indexOf(listener)
|
|
3050
|
-
if (index > -1) {
|
|
3051
|
-
configChangeListeners.splice(index, 1)
|
|
3052
|
-
}
|
|
3053
|
-
}
|
|
3054
|
-
} else {
|
|
3055
|
-
console.warn('[XtElementUI] onConfigChange 必须传入函数')
|
|
3056
|
-
}
|
|
3057
|
-
}
|
|
3058
|
-
|
|
3059
|
-
// ==================== 数字格式化 ====================
|
|
3060
|
-
|
|
3061
|
-
const formatNumber = function(value, options) {
|
|
3062
|
-
if (value === null || value === undefined || value === '') {
|
|
3063
|
-
return ''
|
|
3064
|
-
}
|
|
3065
|
-
|
|
3066
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3067
|
-
if (isNaN(num)) {
|
|
3068
|
-
return String(value)
|
|
3069
|
-
}
|
|
3070
|
-
|
|
3071
|
-
const opts = Object.assign({
|
|
3072
|
-
decimals: 2,
|
|
3073
|
-
thousand: true,
|
|
3074
|
-
prefix: '',
|
|
3075
|
-
suffix: '',
|
|
3076
|
-
showSign: false
|
|
3077
|
-
}, options || {})
|
|
3078
|
-
|
|
3079
|
-
let result = num.toFixed(opts.decimals)
|
|
3080
|
-
|
|
3081
|
-
if (opts.thousand) {
|
|
3082
|
-
const parts = result.split('.')
|
|
3083
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3084
|
-
result = parts.join('.')
|
|
3085
|
-
}
|
|
3086
|
-
|
|
3087
|
-
if (opts.showSign && num > 0) {
|
|
3088
|
-
result = '+' + result
|
|
3089
|
-
}
|
|
3090
|
-
|
|
3091
|
-
return opts.prefix + result + opts.suffix
|
|
3092
|
-
}
|
|
3093
|
-
|
|
3094
|
-
const formatThousand = function(value, decimals) {
|
|
3095
|
-
return formatNumber(value, {
|
|
3096
|
-
decimals: decimals != null ? decimals : 2,
|
|
3097
|
-
thousand: true
|
|
3098
|
-
})
|
|
3099
|
-
}
|
|
3100
|
-
|
|
3101
|
-
const formatPercent = function(value, decimals) {
|
|
3102
|
-
if (value === null || value === undefined || value === '') {
|
|
3103
|
-
return ''
|
|
3104
|
-
}
|
|
3105
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3106
|
-
if (isNaN(num)) {
|
|
3107
|
-
return String(value)
|
|
3108
|
-
}
|
|
3109
|
-
return formatNumber(num * 100, {
|
|
3110
|
-
decimals: decimals != null ? decimals : 2,
|
|
3111
|
-
thousand: true,
|
|
3112
|
-
suffix: '%'
|
|
3113
|
-
})
|
|
3114
|
-
}
|
|
3115
|
-
|
|
3116
|
-
// ==================== 日期格式化 ====================
|
|
3117
|
-
|
|
3118
|
-
function padZero(num, len) {
|
|
3119
|
-
len = len || 2
|
|
3120
|
-
return String(num).padStart(len, '0')
|
|
3121
|
-
}
|
|
3122
|
-
|
|
3123
|
-
const formatDate = function(date, format) {
|
|
3124
|
-
if (!date) {
|
|
3125
|
-
return ''
|
|
3126
|
-
}
|
|
3127
|
-
|
|
3128
|
-
let d
|
|
3129
|
-
if (date instanceof Date) {
|
|
3130
|
-
d = date
|
|
3131
|
-
} else if (typeof date === 'number') {
|
|
3132
|
-
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3133
|
-
} else if (typeof date === 'string') {
|
|
3134
|
-
date = date.trim()
|
|
3135
|
-
if (/^\d+$/.test(date)) {
|
|
3136
|
-
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3137
|
-
} else {
|
|
3138
|
-
d = new Date(date.replace(/-/g, '/'))
|
|
3139
|
-
}
|
|
3140
|
-
} else {
|
|
3141
|
-
return ''
|
|
3142
|
-
}
|
|
3143
|
-
|
|
3144
|
-
if (isNaN(d.getTime())) {
|
|
3145
|
-
return ''
|
|
3146
|
-
}
|
|
3147
|
-
|
|
3148
|
-
const fmt = format || 'yyyy-MM-dd'
|
|
3149
|
-
const year = d.getFullYear()
|
|
3150
|
-
const month = d.getMonth() + 1
|
|
3151
|
-
const day = d.getDate()
|
|
3152
|
-
const hour = d.getHours()
|
|
3153
|
-
const minute = d.getMinutes()
|
|
3154
|
-
const second = d.getSeconds()
|
|
3155
|
-
const week = d.getDay()
|
|
3156
|
-
|
|
3157
|
-
const weekMap = ['日', '一', '二', '三', '四', '五', '六']
|
|
3158
|
-
|
|
3159
|
-
return fmt
|
|
3160
|
-
.replace('yyyy', year)
|
|
3161
|
-
.replace('MM', padZero(month))
|
|
3162
|
-
.replace('M', month)
|
|
3163
|
-
.replace('dd', padZero(day))
|
|
3164
|
-
.replace('d', day)
|
|
3165
|
-
.replace('HH', padZero(hour))
|
|
3166
|
-
.replace('H', hour)
|
|
3167
|
-
.replace('hh', padZero(hour % 12 || 12))
|
|
3168
|
-
.replace('h', hour % 12 || 12)
|
|
3169
|
-
.replace('mm', padZero(minute))
|
|
3170
|
-
.replace('m', minute)
|
|
3171
|
-
.replace('ss', padZero(second))
|
|
3172
|
-
.replace('s', second)
|
|
3173
|
-
.replace('w', weekMap[week])
|
|
3174
|
-
.replace('W', '星期' + weekMap[week])
|
|
3175
|
-
}
|
|
3176
|
-
|
|
3177
|
-
const formatDateTime = function(date, format) {
|
|
3178
|
-
return formatDate(date, format || 'yyyy-MM-dd HH:mm:ss')
|
|
3179
|
-
}
|
|
3180
|
-
|
|
3181
|
-
const formatTime = function(date, format) {
|
|
3182
|
-
return formatDate(date, format || 'HH:mm:ss')
|
|
3183
|
-
}
|
|
3184
|
-
|
|
3185
|
-
const formatRelativeTime = function(date) {
|
|
3186
|
-
if (!date) {
|
|
3187
|
-
return ''
|
|
3188
|
-
}
|
|
3189
|
-
|
|
3190
|
-
let d
|
|
3191
|
-
if (date instanceof Date) {
|
|
3192
|
-
d = date
|
|
3193
|
-
} else if (typeof date === 'number') {
|
|
3194
|
-
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3195
|
-
} else if (typeof date === 'string') {
|
|
3196
|
-
date = date.trim()
|
|
3197
|
-
if (/^\d+$/.test(date)) {
|
|
3198
|
-
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3199
|
-
} else {
|
|
3200
|
-
d = new Date(date.replace(/-/g, '/'))
|
|
3201
|
-
}
|
|
3202
|
-
} else {
|
|
3203
|
-
return ''
|
|
3204
|
-
}
|
|
3205
|
-
|
|
3206
|
-
if (isNaN(d.getTime())) {
|
|
3207
|
-
return ''
|
|
3208
|
-
}
|
|
3209
|
-
|
|
3210
|
-
const now = new Date()
|
|
3211
|
-
const diff = now.getTime() - d.getTime()
|
|
3212
|
-
const minute = 60 * 1000
|
|
3213
|
-
const hour = 60 * minute
|
|
3214
|
-
const day = 24 * hour
|
|
3215
|
-
const week = 7 * day
|
|
3216
|
-
const month = 30 * day
|
|
3217
|
-
const year = 365 * day
|
|
3218
|
-
|
|
3219
|
-
if (diff < minute) {
|
|
3220
|
-
return '刚刚'
|
|
3221
|
-
} else if (diff < hour) {
|
|
3222
|
-
return Math.floor(diff / minute) + '分钟前'
|
|
3223
|
-
} else if (diff < day) {
|
|
3224
|
-
return Math.floor(diff / hour) + '小时前'
|
|
3225
|
-
} else if (diff < week) {
|
|
3226
|
-
return Math.floor(diff / day) + '天前'
|
|
3227
|
-
} else if (diff < month) {
|
|
3228
|
-
return Math.floor(diff / week) + '周前'
|
|
3229
|
-
} else if (diff < year) {
|
|
3230
|
-
return Math.floor(diff / month) + '个月前'
|
|
3231
|
-
} else {
|
|
3232
|
-
return Math.floor(diff / year) + '年前'
|
|
3233
|
-
}
|
|
3234
|
-
}
|
|
3235
|
-
|
|
3236
|
-
// ==================== 金额格式化 ====================
|
|
3237
|
-
|
|
3238
|
-
const formatMoney = function(value, options) {
|
|
3239
|
-
if (value === null || value === undefined || value === '') {
|
|
3240
|
-
return ''
|
|
3241
|
-
}
|
|
3242
|
-
|
|
3243
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3244
|
-
if (isNaN(num)) {
|
|
3245
|
-
return String(value)
|
|
3246
|
-
}
|
|
3247
|
-
|
|
3248
|
-
const opts = Object.assign({
|
|
3249
|
-
currency: 'CNY',
|
|
3250
|
-
decimals: 2,
|
|
3251
|
-
prefix: '',
|
|
3252
|
-
suffix: '',
|
|
3253
|
-
showSign: false
|
|
3254
|
-
}, options || {})
|
|
3255
|
-
|
|
3256
|
-
const currencySymbols = {
|
|
3257
|
-
CNY: '¥',
|
|
3258
|
-
USD: '$',
|
|
3259
|
-
EUR: '€',
|
|
3260
|
-
JPY: '¥',
|
|
3261
|
-
GBP: '£',
|
|
3262
|
-
AUD: 'A$',
|
|
3263
|
-
CAD: 'C$'
|
|
3264
|
-
}
|
|
3265
|
-
|
|
3266
|
-
let symbol = currencySymbols[opts.currency] || ''
|
|
3267
|
-
let formatted = num.toFixed(opts.decimals)
|
|
3268
|
-
|
|
3269
|
-
const parts = formatted.split('.')
|
|
3270
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3271
|
-
formatted = parts.join('.')
|
|
3272
|
-
|
|
3273
|
-
if (opts.showSign && num > 0) {
|
|
3274
|
-
formatted = '+' + formatted
|
|
3275
|
-
}
|
|
3276
|
-
|
|
3277
|
-
if (opts.prefix) {
|
|
3278
|
-
formatted = opts.prefix + formatted
|
|
3279
|
-
}
|
|
3280
|
-
|
|
3281
|
-
if (opts.suffix) {
|
|
3282
|
-
formatted = formatted + opts.suffix
|
|
3283
|
-
}
|
|
3284
|
-
|
|
3285
|
-
return symbol + formatted
|
|
3286
|
-
}
|
|
3287
|
-
|
|
3288
|
-
const formatCNY = function(value, decimals) {
|
|
3289
|
-
return formatMoney(value, {
|
|
3290
|
-
currency: 'CNY',
|
|
3291
|
-
decimals: decimals != null ? decimals : 2
|
|
3292
|
-
})
|
|
3293
|
-
}
|
|
3294
|
-
|
|
3295
|
-
const formatUSD = function(value, decimals) {
|
|
3296
|
-
return formatMoney(value, {
|
|
3297
|
-
currency: 'USD',
|
|
3298
|
-
decimals: decimals != null ? decimals : 2
|
|
3299
|
-
})
|
|
3300
|
-
}
|
|
3301
|
-
|
|
3302
|
-
// ==================== 文件大小格式化 ====================
|
|
3303
|
-
|
|
3304
|
-
const formatFileSize = function(bytes) {
|
|
3305
|
-
if (bytes === null || bytes === undefined || bytes === '') {
|
|
3306
|
-
return ''
|
|
3307
|
-
}
|
|
3308
|
-
|
|
3309
|
-
const num = typeof bytes === 'string' ? parseFloat(bytes) : bytes
|
|
3310
|
-
if (isNaN(num)) {
|
|
3311
|
-
return String(bytes)
|
|
3312
|
-
}
|
|
3313
|
-
|
|
3314
|
-
if (num === 0) {
|
|
3315
|
-
return '0 B'
|
|
3316
|
-
}
|
|
3317
|
-
|
|
3318
|
-
const k = 1024
|
|
3319
|
-
const sizes = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
3320
|
-
const i = Math.floor(Math.log(num) / Math.log(k))
|
|
3321
|
-
|
|
3322
|
-
return parseFloat((num / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
|
|
3323
|
-
}
|
|
3324
|
-
|
|
3325
|
-
/* harmony default export */ var src_utils = ({
|
|
3326
|
-
setTheme,
|
|
3327
|
-
setSize,
|
|
3328
|
-
setPrimaryColor,
|
|
3329
|
-
getConfig,
|
|
3330
|
-
setConfig,
|
|
3331
|
-
getTheme,
|
|
3332
|
-
getSize,
|
|
3333
|
-
getPrimaryColor,
|
|
3334
|
-
resetConfig,
|
|
3335
|
-
onConfigChange,
|
|
3336
|
-
formatNumber,
|
|
3337
|
-
formatThousand,
|
|
3338
|
-
formatPercent,
|
|
3339
|
-
formatDate,
|
|
3340
|
-
formatDateTime,
|
|
3341
|
-
formatTime,
|
|
3342
|
-
formatRelativeTime,
|
|
3343
|
-
formatMoney,
|
|
3344
|
-
formatCNY,
|
|
3345
|
-
formatUSD,
|
|
3346
|
-
formatFileSize
|
|
3347
|
-
});
|
|
3348
3102
|
|
|
3103
|
+
|
|
3104
|
+
|
|
3105
|
+
|
|
3106
|
+
const defaultConfig = {
|
|
3107
|
+
theme: 'white',
|
|
3108
|
+
size: 'medium',
|
|
3109
|
+
primaryColor: '#1890ff'
|
|
3110
|
+
}
|
|
3111
|
+
|
|
3112
|
+
let currentConfig = { ...defaultConfig }
|
|
3113
|
+
|
|
3114
|
+
const configChangeListeners = []
|
|
3115
|
+
|
|
3116
|
+
const emitConfigChange = function(key, value) {
|
|
3117
|
+
configChangeListeners.forEach(listener => {
|
|
3118
|
+
listener(key, value)
|
|
3119
|
+
})
|
|
3120
|
+
}
|
|
3121
|
+
|
|
3122
|
+
const getConfig = function() {
|
|
3123
|
+
return { ...currentConfig }
|
|
3124
|
+
}
|
|
3125
|
+
|
|
3126
|
+
const setConfig = function(config) {
|
|
3127
|
+
if (typeof config !== 'object' || config === null) {
|
|
3128
|
+
console.warn('[XtElementUI] setConfig 必须传入对象参数')
|
|
3129
|
+
return
|
|
3130
|
+
}
|
|
3131
|
+
|
|
3132
|
+
if (config.theme !== undefined) {
|
|
3133
|
+
setTheme(config.theme)
|
|
3134
|
+
}
|
|
3135
|
+
if (config.size !== undefined) {
|
|
3136
|
+
setSize(config.size)
|
|
3137
|
+
}
|
|
3138
|
+
if (config.primaryColor !== undefined) {
|
|
3139
|
+
setPrimaryColor(config.primaryColor)
|
|
3140
|
+
}
|
|
3141
|
+
}
|
|
3142
|
+
|
|
3143
|
+
function isBrowser() {
|
|
3144
|
+
return typeof window !== 'undefined' && typeof document !== 'undefined'
|
|
3145
|
+
}
|
|
3146
|
+
|
|
3147
|
+
/**
|
|
3148
|
+
* 设置主题(亮/暗)
|
|
3149
|
+
* 通过 applyThemeVars 统一设置 --el-* CSS 变量,确保组件库和 Element UI 同步响应
|
|
3150
|
+
* 同时设置 --xt-* CSS 变量供 xt 组件使用
|
|
3151
|
+
*/
|
|
3152
|
+
const setTheme = function(theme) {
|
|
3153
|
+
const validThemes = ['white', 'dark']
|
|
3154
|
+
if (!validThemes.includes(theme)) {
|
|
3155
|
+
console.warn(`[XtElementUI] 无效的主题值: ${theme},可选值: ${validThemes.join(', ')}`)
|
|
3156
|
+
return
|
|
3157
|
+
}
|
|
3158
|
+
|
|
3159
|
+
currentConfig.theme = theme
|
|
3160
|
+
|
|
3161
|
+
if (isBrowser()) {
|
|
3162
|
+
const root = document.documentElement
|
|
3163
|
+
|
|
3164
|
+
// 统一通过 applyThemeVars 设置 --el-* 变量
|
|
3165
|
+
applyThemeVars(root, {
|
|
3166
|
+
theme,
|
|
3167
|
+
primaryColor: currentConfig.primaryColor
|
|
3168
|
+
})
|
|
3169
|
+
|
|
3170
|
+
// 同步设置 xt 组件主色变量(--xt-*)
|
|
3171
|
+
const xtVars = generateXtPrimaryColorVars(currentConfig.primaryColor)
|
|
3172
|
+
for (const key in xtVars) {
|
|
3173
|
+
root.style.setProperty(key, xtVars[key])
|
|
3174
|
+
}
|
|
3175
|
+
|
|
3176
|
+
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
3177
|
+
}
|
|
3178
|
+
|
|
3179
|
+
emitConfigChange('theme', theme)
|
|
3180
|
+
}
|
|
3181
|
+
|
|
3182
|
+
const setSize = function(size) {
|
|
3183
|
+
const validSizes = ['small', 'medium', 'large']
|
|
3184
|
+
if (!validSizes.includes(size)) {
|
|
3185
|
+
console.warn(`[XtElementUI] 无效的大小值: ${size},可选值: ${validSizes.join(', ')}`)
|
|
3186
|
+
return
|
|
3187
|
+
}
|
|
3188
|
+
|
|
3189
|
+
currentConfig.size = size
|
|
3190
|
+
|
|
3191
|
+
if (isBrowser()) {
|
|
3192
|
+
document.documentElement.setAttribute('data-size', size)
|
|
3193
|
+
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
3194
|
+
}
|
|
3195
|
+
|
|
3196
|
+
emitConfigChange('size', size)
|
|
3197
|
+
}
|
|
3198
|
+
|
|
3199
|
+
const setPrimaryColor = function(color) {
|
|
3200
|
+
const colorRegex = /^#[0-9A-Fa-f]{3}$|^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/
|
|
3201
|
+
if (!colorRegex.test(color)) {
|
|
3202
|
+
console.warn(`[XtElementUI] 无效的颜色值: ${color},请使用十六进制颜色格式,如 #1890ff`)
|
|
3203
|
+
return
|
|
3204
|
+
}
|
|
3205
|
+
|
|
3206
|
+
let validColor = color
|
|
3207
|
+
if (color.length === 4) {
|
|
3208
|
+
validColor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]
|
|
3209
|
+
} else if (color.length === 9) {
|
|
3210
|
+
validColor = color.substring(0, 7)
|
|
3211
|
+
}
|
|
3212
|
+
|
|
3213
|
+
currentConfig.primaryColor = validColor
|
|
3214
|
+
|
|
3215
|
+
if (isBrowser()) {
|
|
3216
|
+
const root = document.documentElement
|
|
3217
|
+
|
|
3218
|
+
// 统一通过 applyThemeVars 设置 --el-* 主色变量
|
|
3219
|
+
applyThemeVars(root, {
|
|
3220
|
+
theme: currentConfig.theme,
|
|
3221
|
+
primaryColor: validColor
|
|
3222
|
+
})
|
|
3223
|
+
|
|
3224
|
+
// 同步设置 xt 组件主色变量(--xt-*)
|
|
3225
|
+
const xtVars = generateXtPrimaryColorVars(validColor)
|
|
3226
|
+
for (const key in xtVars) {
|
|
3227
|
+
root.style.setProperty(key, xtVars[key])
|
|
3228
|
+
}
|
|
3229
|
+
}
|
|
3230
|
+
|
|
3231
|
+
emitConfigChange('primaryColor', validColor)
|
|
3232
|
+
}
|
|
3233
|
+
|
|
3234
|
+
// 获取当前主题
|
|
3235
|
+
const getTheme = function() {
|
|
3236
|
+
return currentConfig.theme
|
|
3237
|
+
}
|
|
3238
|
+
|
|
3239
|
+
// 获取当前字体大小
|
|
3240
|
+
const getSize = function() {
|
|
3241
|
+
return currentConfig.size
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
// 获取当前主色调
|
|
3245
|
+
const getPrimaryColor = function() {
|
|
3246
|
+
return currentConfig.primaryColor
|
|
3247
|
+
}
|
|
3248
|
+
|
|
3249
|
+
// 重置为默认配置
|
|
3250
|
+
const resetConfig = function() {
|
|
3251
|
+
setConfig(defaultConfig)
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
// 监听配置变更
|
|
3255
|
+
const onConfigChange = function(listener) {
|
|
3256
|
+
if (typeof listener === 'function') {
|
|
3257
|
+
configChangeListeners.push(listener)
|
|
3258
|
+
return function() {
|
|
3259
|
+
const index = configChangeListeners.indexOf(listener)
|
|
3260
|
+
if (index > -1) {
|
|
3261
|
+
configChangeListeners.splice(index, 1)
|
|
3262
|
+
}
|
|
3263
|
+
}
|
|
3264
|
+
} else {
|
|
3265
|
+
console.warn('[XtElementUI] onConfigChange 必须传入函数')
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
// ==================== 数字格式化 ====================
|
|
3270
|
+
|
|
3271
|
+
const formatNumber = function(value, options) {
|
|
3272
|
+
if (value === null || value === undefined || value === '') {
|
|
3273
|
+
return ''
|
|
3274
|
+
}
|
|
3275
|
+
|
|
3276
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3277
|
+
if (isNaN(num)) {
|
|
3278
|
+
return String(value)
|
|
3279
|
+
}
|
|
3280
|
+
|
|
3281
|
+
const opts = Object.assign({
|
|
3282
|
+
decimals: 2,
|
|
3283
|
+
thousand: true,
|
|
3284
|
+
prefix: '',
|
|
3285
|
+
suffix: '',
|
|
3286
|
+
showSign: false
|
|
3287
|
+
}, options || {})
|
|
3288
|
+
|
|
3289
|
+
let result = num.toFixed(opts.decimals)
|
|
3290
|
+
|
|
3291
|
+
if (opts.thousand) {
|
|
3292
|
+
const parts = result.split('.')
|
|
3293
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3294
|
+
result = parts.join('.')
|
|
3295
|
+
}
|
|
3296
|
+
|
|
3297
|
+
if (opts.showSign && num > 0) {
|
|
3298
|
+
result = '+' + result
|
|
3299
|
+
}
|
|
3300
|
+
|
|
3301
|
+
return opts.prefix + result + opts.suffix
|
|
3302
|
+
}
|
|
3303
|
+
|
|
3304
|
+
const formatThousand = function(value, decimals) {
|
|
3305
|
+
return formatNumber(value, {
|
|
3306
|
+
decimals: decimals != null ? decimals : 2,
|
|
3307
|
+
thousand: true
|
|
3308
|
+
})
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
const formatPercent = function(value, decimals) {
|
|
3312
|
+
if (value === null || value === undefined || value === '') {
|
|
3313
|
+
return ''
|
|
3314
|
+
}
|
|
3315
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3316
|
+
if (isNaN(num)) {
|
|
3317
|
+
return String(value)
|
|
3318
|
+
}
|
|
3319
|
+
return formatNumber(num * 100, {
|
|
3320
|
+
decimals: decimals != null ? decimals : 2,
|
|
3321
|
+
thousand: true,
|
|
3322
|
+
suffix: '%'
|
|
3323
|
+
})
|
|
3324
|
+
}
|
|
3325
|
+
|
|
3326
|
+
// ==================== 日期格式化 ====================
|
|
3327
|
+
|
|
3328
|
+
function padZero(num, len) {
|
|
3329
|
+
len = len || 2
|
|
3330
|
+
return String(num).padStart(len, '0')
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3333
|
+
const formatDate = function(date, format) {
|
|
3334
|
+
if (!date) {
|
|
3335
|
+
return ''
|
|
3336
|
+
}
|
|
3337
|
+
|
|
3338
|
+
let d
|
|
3339
|
+
if (date instanceof Date) {
|
|
3340
|
+
d = date
|
|
3341
|
+
} else if (typeof date === 'number') {
|
|
3342
|
+
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3343
|
+
} else if (typeof date === 'string') {
|
|
3344
|
+
date = date.trim()
|
|
3345
|
+
if (/^\d+$/.test(date)) {
|
|
3346
|
+
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3347
|
+
} else {
|
|
3348
|
+
d = new Date(date.replace(/-/g, '/'))
|
|
3349
|
+
}
|
|
3350
|
+
} else {
|
|
3351
|
+
return ''
|
|
3352
|
+
}
|
|
3353
|
+
|
|
3354
|
+
if (isNaN(d.getTime())) {
|
|
3355
|
+
return ''
|
|
3356
|
+
}
|
|
3357
|
+
|
|
3358
|
+
const fmt = format || 'yyyy-MM-dd'
|
|
3359
|
+
const year = d.getFullYear()
|
|
3360
|
+
const month = d.getMonth() + 1
|
|
3361
|
+
const day = d.getDate()
|
|
3362
|
+
const hour = d.getHours()
|
|
3363
|
+
const minute = d.getMinutes()
|
|
3364
|
+
const second = d.getSeconds()
|
|
3365
|
+
const week = d.getDay()
|
|
3366
|
+
|
|
3367
|
+
const weekMap = ['日', '一', '二', '三', '四', '五', '六']
|
|
3368
|
+
|
|
3369
|
+
return fmt
|
|
3370
|
+
.replace('yyyy', year)
|
|
3371
|
+
.replace('MM', padZero(month))
|
|
3372
|
+
.replace('M', month)
|
|
3373
|
+
.replace('dd', padZero(day))
|
|
3374
|
+
.replace('d', day)
|
|
3375
|
+
.replace('HH', padZero(hour))
|
|
3376
|
+
.replace('H', hour)
|
|
3377
|
+
.replace('hh', padZero(hour % 12 || 12))
|
|
3378
|
+
.replace('h', hour % 12 || 12)
|
|
3379
|
+
.replace('mm', padZero(minute))
|
|
3380
|
+
.replace('m', minute)
|
|
3381
|
+
.replace('ss', padZero(second))
|
|
3382
|
+
.replace('s', second)
|
|
3383
|
+
.replace('w', weekMap[week])
|
|
3384
|
+
.replace('W', '星期' + weekMap[week])
|
|
3385
|
+
}
|
|
3386
|
+
|
|
3387
|
+
const formatDateTime = function(date, format) {
|
|
3388
|
+
return formatDate(date, format || 'yyyy-MM-dd HH:mm:ss')
|
|
3389
|
+
}
|
|
3390
|
+
|
|
3391
|
+
const formatTime = function(date, format) {
|
|
3392
|
+
return formatDate(date, format || 'HH:mm:ss')
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
const formatRelativeTime = function(date) {
|
|
3396
|
+
if (!date) {
|
|
3397
|
+
return ''
|
|
3398
|
+
}
|
|
3399
|
+
|
|
3400
|
+
let d
|
|
3401
|
+
if (date instanceof Date) {
|
|
3402
|
+
d = date
|
|
3403
|
+
} else if (typeof date === 'number') {
|
|
3404
|
+
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3405
|
+
} else if (typeof date === 'string') {
|
|
3406
|
+
date = date.trim()
|
|
3407
|
+
if (/^\d+$/.test(date)) {
|
|
3408
|
+
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3409
|
+
} else {
|
|
3410
|
+
d = new Date(date.replace(/-/g, '/'))
|
|
3411
|
+
}
|
|
3412
|
+
} else {
|
|
3413
|
+
return ''
|
|
3414
|
+
}
|
|
3415
|
+
|
|
3416
|
+
if (isNaN(d.getTime())) {
|
|
3417
|
+
return ''
|
|
3418
|
+
}
|
|
3419
|
+
|
|
3420
|
+
const now = new Date()
|
|
3421
|
+
const diff = now.getTime() - d.getTime()
|
|
3422
|
+
const minute = 60 * 1000
|
|
3423
|
+
const hour = 60 * minute
|
|
3424
|
+
const day = 24 * hour
|
|
3425
|
+
const week = 7 * day
|
|
3426
|
+
const month = 30 * day
|
|
3427
|
+
const year = 365 * day
|
|
3428
|
+
|
|
3429
|
+
if (diff < minute) {
|
|
3430
|
+
return '刚刚'
|
|
3431
|
+
} else if (diff < hour) {
|
|
3432
|
+
return Math.floor(diff / minute) + '分钟前'
|
|
3433
|
+
} else if (diff < day) {
|
|
3434
|
+
return Math.floor(diff / hour) + '小时前'
|
|
3435
|
+
} else if (diff < week) {
|
|
3436
|
+
return Math.floor(diff / day) + '天前'
|
|
3437
|
+
} else if (diff < month) {
|
|
3438
|
+
return Math.floor(diff / week) + '周前'
|
|
3439
|
+
} else if (diff < year) {
|
|
3440
|
+
return Math.floor(diff / month) + '个月前'
|
|
3441
|
+
} else {
|
|
3442
|
+
return Math.floor(diff / year) + '年前'
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3445
|
+
|
|
3446
|
+
// ==================== 金额格式化 ====================
|
|
3447
|
+
|
|
3448
|
+
const formatMoney = function(value, options) {
|
|
3449
|
+
if (value === null || value === undefined || value === '') {
|
|
3450
|
+
return ''
|
|
3451
|
+
}
|
|
3452
|
+
|
|
3453
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3454
|
+
if (isNaN(num)) {
|
|
3455
|
+
return String(value)
|
|
3456
|
+
}
|
|
3457
|
+
|
|
3458
|
+
const opts = Object.assign({
|
|
3459
|
+
currency: 'CNY',
|
|
3460
|
+
decimals: 2,
|
|
3461
|
+
prefix: '',
|
|
3462
|
+
suffix: '',
|
|
3463
|
+
showSign: false
|
|
3464
|
+
}, options || {})
|
|
3465
|
+
|
|
3466
|
+
const currencySymbols = {
|
|
3467
|
+
CNY: '¥',
|
|
3468
|
+
USD: '$',
|
|
3469
|
+
EUR: '€',
|
|
3470
|
+
JPY: '¥',
|
|
3471
|
+
GBP: '£',
|
|
3472
|
+
AUD: 'A$',
|
|
3473
|
+
CAD: 'C$'
|
|
3474
|
+
}
|
|
3475
|
+
|
|
3476
|
+
let symbol = currencySymbols[opts.currency] || ''
|
|
3477
|
+
let formatted = num.toFixed(opts.decimals)
|
|
3478
|
+
|
|
3479
|
+
const parts = formatted.split('.')
|
|
3480
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3481
|
+
formatted = parts.join('.')
|
|
3482
|
+
|
|
3483
|
+
if (opts.showSign && num > 0) {
|
|
3484
|
+
formatted = '+' + formatted
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
if (opts.prefix) {
|
|
3488
|
+
formatted = opts.prefix + formatted
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
if (opts.suffix) {
|
|
3492
|
+
formatted = formatted + opts.suffix
|
|
3493
|
+
}
|
|
3494
|
+
|
|
3495
|
+
return symbol + formatted
|
|
3496
|
+
}
|
|
3497
|
+
|
|
3498
|
+
const formatCNY = function(value, decimals) {
|
|
3499
|
+
return formatMoney(value, {
|
|
3500
|
+
currency: 'CNY',
|
|
3501
|
+
decimals: decimals != null ? decimals : 2
|
|
3502
|
+
})
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
const formatUSD = function(value, decimals) {
|
|
3506
|
+
return formatMoney(value, {
|
|
3507
|
+
currency: 'USD',
|
|
3508
|
+
decimals: decimals != null ? decimals : 2
|
|
3509
|
+
})
|
|
3510
|
+
}
|
|
3511
|
+
|
|
3512
|
+
// ==================== 文件大小格式化 ====================
|
|
3513
|
+
|
|
3514
|
+
const formatFileSize = function(bytes) {
|
|
3515
|
+
if (bytes === null || bytes === undefined || bytes === '') {
|
|
3516
|
+
return ''
|
|
3517
|
+
}
|
|
3518
|
+
|
|
3519
|
+
const num = typeof bytes === 'string' ? parseFloat(bytes) : bytes
|
|
3520
|
+
if (isNaN(num)) {
|
|
3521
|
+
return String(bytes)
|
|
3522
|
+
}
|
|
3523
|
+
|
|
3524
|
+
if (num === 0) {
|
|
3525
|
+
return '0 B'
|
|
3526
|
+
}
|
|
3527
|
+
|
|
3528
|
+
const k = 1024
|
|
3529
|
+
const sizes = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
3530
|
+
const i = Math.floor(Math.log(num) / Math.log(k))
|
|
3531
|
+
|
|
3532
|
+
return parseFloat((num / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
|
|
3533
|
+
}
|
|
3534
|
+
|
|
3535
|
+
/* harmony default export */ var src_utils = ({
|
|
3536
|
+
setTheme,
|
|
3537
|
+
setSize,
|
|
3538
|
+
setPrimaryColor,
|
|
3539
|
+
getConfig,
|
|
3540
|
+
setConfig,
|
|
3541
|
+
getTheme,
|
|
3542
|
+
getSize,
|
|
3543
|
+
getPrimaryColor,
|
|
3544
|
+
resetConfig,
|
|
3545
|
+
onConfigChange,
|
|
3546
|
+
formatNumber,
|
|
3547
|
+
formatThousand,
|
|
3548
|
+
formatPercent,
|
|
3549
|
+
formatDate,
|
|
3550
|
+
formatDateTime,
|
|
3551
|
+
formatTime,
|
|
3552
|
+
formatRelativeTime,
|
|
3553
|
+
formatMoney,
|
|
3554
|
+
formatCNY,
|
|
3555
|
+
formatUSD,
|
|
3556
|
+
formatFileSize
|
|
3557
|
+
});
|
|
3349
3558
|
// EXTERNAL MODULE: ./src/components/xt-button/style/index.scss
|
|
3350
3559
|
var xt_button_style = __webpack_require__("0ba5");
|
|
3351
3560
|
|
|
3352
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
3561
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-button/index.vue?vue&type=template&id=51370cdf
|
|
3353
3562
|
var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-button',_vm._b({staticClass:"xt-button",class:_vm.buttonClasses,attrs:{"type":_vm.type},on:{"click":_vm.handleClick}},'el-button',_vm.$attrs,false),[_vm._t("default")],2)
|
|
3354
3563
|
}
|
|
3355
3564
|
var staticRenderFns = []
|
|
@@ -3458,7 +3667,7 @@ xt_button.install = function (Vue) {
|
|
|
3458
3667
|
// EXTERNAL MODULE: ./src/components/xt-input/style/index.scss
|
|
3459
3668
|
var xt_input_style = __webpack_require__("0563");
|
|
3460
3669
|
|
|
3461
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
3670
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-input/index.vue?vue&type=template&id=6a24ab05
|
|
3462
3671
|
var xt_inputvue_type_template_id_6a24ab05_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-input",class:[
|
|
3463
3672
|
_vm.size ? 'xt-input--' + _vm.size : '',
|
|
3464
3673
|
{ 'is-disabled': _vm.disabled },
|
|
@@ -3812,7 +4021,7 @@ xt_input.install = function (Vue) {
|
|
|
3812
4021
|
// EXTERNAL MODULE: ./src/components/xt-flex-box/style/index.scss
|
|
3813
4022
|
var xt_flex_box_style = __webpack_require__("5820");
|
|
3814
4023
|
|
|
3815
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4024
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-flex-box/index.vue?vue&type=template&id=5dab0d2a
|
|
3816
4025
|
var xt_flex_boxvue_type_template_id_5dab0d2a_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-flex-box",class:_vm.classAttrs,style:(_vm.flexStyle)},[_vm._t("default")],2)
|
|
3817
4026
|
}
|
|
3818
4027
|
var xt_flex_boxvue_type_template_id_5dab0d2a_staticRenderFns = []
|
|
@@ -3885,7 +4094,7 @@ xt_flex_box.install = function (Vue) {
|
|
|
3885
4094
|
// EXTERNAL MODULE: ./src/components/xt-card/style/index.scss
|
|
3886
4095
|
var xt_card_style = __webpack_require__("419e");
|
|
3887
4096
|
|
|
3888
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4097
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card/index.vue?vue&type=template&id=27e108a6
|
|
3889
4098
|
var xt_cardvue_type_template_id_27e108a6_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-card',_vm._b({staticClass:"xt-card",class:_vm.cardClasses,scopedSlots:_vm._u([(_vm.$slots.header || _vm.title)?{key:"header",fn:function(){return [_vm._t("header",function(){return [_vm._v(_vm._s(_vm.title))]})]},proxy:true}:null],null,true)},'el-card',_vm.$attrs,false),[_vm._t("default")],2)
|
|
3890
4099
|
}
|
|
3891
4100
|
var xt_cardvue_type_template_id_27e108a6_staticRenderFns = []
|
|
@@ -3983,7 +4192,7 @@ xt_card.install = function (Vue) {
|
|
|
3983
4192
|
// EXTERNAL MODULE: ./src/components/xt-card-item/style/index.scss
|
|
3984
4193
|
var xt_card_item_style = __webpack_require__("c1e7");
|
|
3985
4194
|
|
|
3986
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4195
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=template&id=d091942c
|
|
3987
4196
|
var xt_card_itemvue_type_template_id_d091942c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('xt-card',{staticClass:"xt-card-item",class:{ [`is-${_vm.type}`]: _vm.type ? true : false},attrs:{"bordered":false}},[_c('xt-flex-box',{attrs:{"content":"between"}},[_c('div',[_c('div',[_c('xt-text',{attrs:{"bold":"","size":"extra-large"}},[_vm._v(_vm._s(_vm.title))])],1),_c('xt-text',{attrs:{"bold":"","size":"large","format":"thousand","type":_vm.type,"decimals":0},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:"value"}}),_c('div',{staticStyle:{"margin":"5px 0"}},[_c('xt-text',{attrs:{"size":"small"}},[_vm._v("较昨日")]),_c('xt-text',{attrs:{"format":"normal","type":_vm.diff > 0 ? 'success' : 'danger',"suffix":_vm.diff > 0 ? '↑' : '↓'},model:{value:(_vm.reference),callback:function ($$v) {_vm.reference=$$v},expression:"reference"}})],1)],1),_c('div',{staticStyle:{"height":"100%"}},[_vm._t("icon",function(){return [_c('xt-text',{attrs:{"size":"extra-large","type":_vm.type}},[_c('xt-icon',{attrs:{"name":"el-icon-user","size":48}})],1)]})],2)])],1)
|
|
3988
4197
|
}
|
|
3989
4198
|
var xt_card_itemvue_type_template_id_d091942c_staticRenderFns = []
|
|
@@ -4446,7 +4655,7 @@ xt_config_provider.install = function (Vue) {
|
|
|
4446
4655
|
// EXTERNAL MODULE: ./src/components/xt-text/style/index.scss
|
|
4447
4656
|
var xt_text_style = __webpack_require__("86ae");
|
|
4448
4657
|
|
|
4449
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4658
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-text/index.vue?vue&type=template&id=50bc2d50
|
|
4450
4659
|
var xt_textvue_type_template_id_50bc2d50_render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showTooltip && _vm.ellipsis)?_c('el-tooltip',{attrs:{"content":_vm.displayTooltipContent,"placement":_vm.tooltipPlacement,"disabled":!_vm.isOverflow,"effect":"dark"}},[_c('span',{ref:"textRef",staticClass:"xt-text",class:[
|
|
4451
4660
|
_vm.type ? 'xt-text--' + _vm.type : '',
|
|
4452
4661
|
'xt-text--' + _vm.size,
|
|
@@ -4755,7 +4964,7 @@ xt_text.install = function (Vue) {
|
|
|
4755
4964
|
// EXTERNAL MODULE: ./src/components/xt-time/style/index.scss
|
|
4756
4965
|
var xt_time_style = __webpack_require__("6c9e");
|
|
4757
4966
|
|
|
4758
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4967
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
|
|
4759
4968
|
var xt_timevue_type_template_id_d29acf2c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-time",class:[
|
|
4760
4969
|
_vm.typeColor ? 'xt-time--' + _vm.typeColor : '',
|
|
4761
4970
|
'xt-time--' + _vm.size,
|
|
@@ -5080,7 +5289,7 @@ xt_time.install = function (Vue) {
|
|
|
5080
5289
|
// EXTERNAL MODULE: ./src/components/xt-step-price/style/index.scss
|
|
5081
5290
|
var xt_step_price_style = __webpack_require__("fd93");
|
|
5082
5291
|
|
|
5083
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5292
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price/index.vue?vue&type=template&id=0cb332f3
|
|
5084
5293
|
var xt_step_pricevue_type_template_id_0cb332f3_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price",class:{ 'is-disabled': _vm.disabled }},[(_vm.title || _vm.$slots.header)?_c('div',{staticClass:"xt-step-price__header"},[(_vm.title)?_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_vm._t("header"),(!_vm.disabled && !_vm.isLimitReached)?_c('xt-button',{attrs:{"type":"primary","size":"small","icon":"el-icon-plus","plain":""},on:{"click":_vm.onAdd}},[_vm._v("新增"+_vm._s(_vm.stepName))]):_vm._e(),(_vm.isLimitReached)?_c('xt-text',{attrs:{"size":"small","type-color":"info"}},[_vm._v("已达上限("+_vm._s(_vm.localItems.length)+"/"+_vm._s(_vm.limit)+")")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:"xt-step-price__list"},_vm._l((_vm.localItems),function(item,idx){return _c('XtStepPriceItem',{key:idx,attrs:{"value":item,"index":idx,"is-first":idx === 0,"is-last":idx === _vm.localItems.length - 1,"items-length":_vm.localItems.length,"removable":idx !== 0,"min-locked":idx !== 0 ? true : false,"unit":_vm.unit,"precision":_vm.precision,"step-name":_vm.stepName,"step":_vm.step,"left-bracket":_vm.leftBracket,"right-bracket":_vm.rightBracket,"field-keys":_vm.fieldKeys,"disabled":_vm.disabled,"allow-negative":_vm.allowNegative},on:{"input":(val) => _vm.onItemInput(val, idx),"max-change":_vm.onMaxChange,"min-change":_vm.onMinChange,"delete":_vm.onDelete,"blur":_vm.onFieldBlur}})}),1),(_vm.localItems.length === 0)?_c('div',{staticClass:"xt-step-price__empty"},[_c('span',[_vm._v("暂无数据,点击右上角「新增"+_vm._s(_vm.stepName)+"」开始配置")])]):_vm._e(),(_vm.tip || _vm.$slots.tip)?_c('div',{staticClass:"xt-step-price__tip"},[_vm._t("tip",function(){return [_c('xt-text',{attrs:{"size":"small","type-color":"warning"}},[_vm._v(_vm._s(_vm.tip))])]})],2):_vm._e()])
|
|
5085
5294
|
}
|
|
5086
5295
|
var xt_step_pricevue_type_template_id_0cb332f3_staticRenderFns = []
|
|
@@ -5088,7 +5297,7 @@ var xt_step_pricevue_type_template_id_0cb332f3_staticRenderFns = []
|
|
|
5088
5297
|
|
|
5089
5298
|
// CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=0cb332f3
|
|
5090
5299
|
|
|
5091
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5300
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=template&id=4d5bb3b1
|
|
5092
5301
|
var xt_step_price_itemvue_type_template_id_4d5bb3b1_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price-item"},[_c('div',{staticClass:"xt-step-price-item__range"},[_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalLeftBracket))]),(_vm.itemsLength > 1)?_c('span',{staticClass:"xt-step-price-item__name"},[_vm._v("第"+_vm._s(_vm.index + 1)+_vm._s(_vm.stepName))]):_vm._e(),_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalRightBracket))]),_c('xt-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled || _vm.minLocked,"size":"small","placeholder":"下限"},on:{"blur":(e) => { _vm.onMinBlur(); _vm.onBlur(e) }},model:{value:(_vm.minInput),callback:function ($$v) {_vm.minInput=_vm._n($$v)},expression:"minInput"}}),_c('span',{staticClass:"xt-step-price-item__comma"},[_vm._v("-")]),(!_vm.isLast)?_c('xt-input',{staticClass:"xt-step-price-item__input",attrs:{"type":"number","disabled":_vm.disabled,"size":"small","placeholder":"上限"},on:{"blur":(e) => { _vm.onMaxBlur(); _vm.onBlur(e) }},model:{value:(_vm.maxInput),callback:function ($$v) {_vm.maxInput=_vm._n($$v)},expression:"maxInput"}}):_c('span',{staticClass:"xt-step-price-item__infinity"},[_vm._v("+∞")])],1),_c('div',{staticClass:"xt-step-price-item__price"},[_c('xt-input',{staticClass:"xt-step-price-item__input xt-step-price-item__input--price",attrs:{"type":"number","disabled":_vm.disabled,"size":"small","placeholder":"价格"},on:{"blur":(e) => { _vm.onPriceBlur(); _vm.onBlur(e) }},model:{value:(_vm.priceInput),callback:function ($$v) {_vm.priceInput=_vm._n($$v)},expression:"priceInput"}}),_c('span',{staticClass:"xt-step-price-item__unit"},[_vm._v(_vm._s(_vm.unit))])],1),(!_vm.disabled && _vm.removable && _vm.itemsLength > 1)?_c('xt-button',{staticClass:"xt-step-price-item__delete",attrs:{"type":"text","icon":"el-icon-delete"},on:{"click":_vm.onDelete}}):_vm._e()],1)
|
|
5093
5302
|
}
|
|
5094
5303
|
var xt_step_price_itemvue_type_template_id_4d5bb3b1_staticRenderFns = []
|
|
@@ -5658,7 +5867,7 @@ xt_step_price_item.install = function (Vue) {
|
|
|
5658
5867
|
// EXTERNAL MODULE: ./src/components/xt-map/style/index.scss
|
|
5659
5868
|
var xt_map_style = __webpack_require__("c759");
|
|
5660
5869
|
|
|
5661
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5870
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/index.vue?vue&type=template&id=0c15823e
|
|
5662
5871
|
var xt_mapvue_type_template_id_0c15823e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-map-wrapper"},[_c('div',{ref:"mapContainer",staticClass:"xt-map-container",attrs:{"data-theme":_vm.mergedTheme}}),(_vm.loading)?_c('div',{staticClass:"xt-map-loading"},[_c('span',[_vm._v("地图加载中...")])]):_vm._e(),(_vm.errorMessage)?_c('div',{staticClass:"xt-map-error"},[_c('span',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),_vm._t("overlay")],2)
|
|
5663
5872
|
}
|
|
5664
5873
|
var xt_mapvue_type_template_id_0c15823e_staticRenderFns = []
|
|
@@ -7376,7 +7585,7 @@ xt_map.install = function (Vue) {
|
|
|
7376
7585
|
/* harmony default export */ var components_xt_map = (xt_map);
|
|
7377
7586
|
|
|
7378
7587
|
|
|
7379
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7588
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-map/provider.vue?vue&type=template&id=16f243b0&scoped=true
|
|
7380
7589
|
var providervue_type_template_id_16f243b0_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:['xt-map-provider', { 'xt-map-provider--dark': _vm.mergedTheme === 'dark' }],style:(_vm.wrapperStyle)},[_vm._t("default")],2)
|
|
7381
7590
|
}
|
|
7382
7591
|
var providervue_type_template_id_16f243b0_scoped_true_staticRenderFns = []
|
|
@@ -7583,7 +7792,7 @@ xt_map_provider.install = function (Vue) {
|
|
|
7583
7792
|
// EXTERNAL MODULE: ./src/components/xt-grid-box/style/index.scss
|
|
7584
7793
|
var xt_grid_box_style = __webpack_require__("4202");
|
|
7585
7794
|
|
|
7586
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7795
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-box/index.vue?vue&type=template&id=67e197c4
|
|
7587
7796
|
var xt_grid_boxvue_type_template_id_67e197c4_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-grid-box",style:(_vm.styleAttrs)},[_vm._t("default")],2)
|
|
7588
7797
|
}
|
|
7589
7798
|
var xt_grid_boxvue_type_template_id_67e197c4_staticRenderFns = []
|
|
@@ -7754,7 +7963,7 @@ xt_grid_box.install = function (Vue) {
|
|
|
7754
7963
|
/* harmony default export */ var components_xt_grid_box = (xt_grid_box);
|
|
7755
7964
|
|
|
7756
7965
|
|
|
7757
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7966
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-item/index.vue?vue&type=template&id=160dc1ff&scoped=true
|
|
7758
7967
|
var xt_grid_itemvue_type_template_id_160dc1ff_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-grid-item",style:(_vm.styleAttrs)},[_vm._t("default")],2)
|
|
7759
7968
|
}
|
|
7760
7969
|
var xt_grid_itemvue_type_template_id_160dc1ff_scoped_true_staticRenderFns = []
|
|
@@ -7897,7 +8106,7 @@ xt_grid_item.install = function (Vue) {
|
|
|
7897
8106
|
// EXTERNAL MODULE: ./src/components/xt-progress/style/index.scss
|
|
7898
8107
|
var xt_progress_style = __webpack_require__("2e12");
|
|
7899
8108
|
|
|
7900
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8109
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-progress/index.vue?vue&type=template&id=76c95a92
|
|
7901
8110
|
var xt_progressvue_type_template_id_76c95a92_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-progress",class:[
|
|
7902
8111
|
`xt-progress--${_vm.type}`,
|
|
7903
8112
|
`xt-progress--${_vm.size}`
|
|
@@ -7994,7 +8203,7 @@ xt_progress.install = function(Vue) {
|
|
|
7994
8203
|
|
|
7995
8204
|
/* harmony default export */ var components_xt_progress = (xt_progress);
|
|
7996
8205
|
|
|
7997
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8206
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-tab-pane/index.vue?vue&type=template&id=77ab429e
|
|
7998
8207
|
var xt_tab_panevue_type_template_id_77ab429e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.isActive),expression:"isActive"}],staticClass:"xt-tab-pane"},[_vm._t("default")],2)
|
|
7999
8208
|
}
|
|
8000
8209
|
var xt_tab_panevue_type_template_id_77ab429e_staticRenderFns = []
|
|
@@ -8083,7 +8292,7 @@ xt_tab_pane.install = function(Vue) {
|
|
|
8083
8292
|
// EXTERNAL MODULE: ./src/components/xt-tabs/style/index.scss
|
|
8084
8293
|
var xt_tabs_style = __webpack_require__("e8d2");
|
|
8085
8294
|
|
|
8086
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8295
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-tabs/index.vue?vue&type=template&id=6fedb3e8
|
|
8087
8296
|
var xt_tabsvue_type_template_id_6fedb3e8_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"tabsWrap",staticClass:"xt-tabs",class:[
|
|
8088
8297
|
`xt-tabs--${_vm.actualPosition}`,
|
|
8089
8298
|
{ 'xt-tabs--card': _vm.type === 'card' },
|
|
@@ -8294,7 +8503,7 @@ xt_tabs.install = function(Vue) {
|
|
|
8294
8503
|
// EXTERNAL MODULE: ./src/components/xt-badge/style/index.scss
|
|
8295
8504
|
var xt_badge_style = __webpack_require__("bf3f");
|
|
8296
8505
|
|
|
8297
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8506
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-badge/index.vue?vue&type=template&id=3f0a6b4e
|
|
8298
8507
|
var xt_badgevue_type_template_id_3f0a6b4e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{class:_vm.rootClasses},[_c('span',{staticClass:"xt-badge__content"},[_vm._t("default")],2),(!_vm.hidden && (_vm.value || _vm.isDot))?_c('span',{staticClass:"xt-badge__badge",style:(_vm.badgeStyle)},[(_vm.isDot)?_c('span'):(_vm.isOverflow)?_c('span',[_vm._v(_vm._s(_vm.overflowText))]):_c('span',[_vm._v(_vm._s(_vm.value))])]):_vm._e()])
|
|
8299
8508
|
}
|
|
8300
8509
|
var xt_badgevue_type_template_id_3f0a6b4e_staticRenderFns = []
|
|
@@ -8402,7 +8611,7 @@ xt_badge.install = function(Vue) {
|
|
|
8402
8611
|
// EXTERNAL MODULE: ./src/components/xt-date-picker/style/index.scss
|
|
8403
8612
|
var xt_date_picker_style = __webpack_require__("c828");
|
|
8404
8613
|
|
|
8405
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8614
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-date-picker/index.vue?vue&type=template&id=7f82fa36
|
|
8406
8615
|
var xt_date_pickervue_type_template_id_7f82fa36_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-date-picker-container"},[(_vm.showDimension)?_c('div',{staticClass:"xt-date-dimension"},[_c('el-radio-group',{attrs:{"size":"small"},model:{value:(_vm.dimension),callback:function ($$v) {_vm.dimension=$$v},expression:"dimension"}},[_c('el-radio-button',{attrs:{"label":"date"}},[_vm._v("日")]),_c('el-radio-button',{attrs:{"label":"month"}},[_vm._v("月")]),_c('el-radio-button',{attrs:{"label":"year"}},[_vm._v("年")]),_c('el-radio-button',{attrs:{"label":"daterange"}},[_vm._v("自定义")])],1)],1):_vm._e(),_c('div',{staticClass:"xt-date-picker-wrapper"},[(_vm.useRangeMode)?_c('RangeDate',{staticClass:"xt-date",class:{ focus: _vm.isfocus },style:(_vm.width ? { width: `${_vm.width}px` } : {}),attrs:{"type":_vm.rangeDateType,"separator":_vm.separator,"disabled":_vm.disabled},on:{"focus":function($event){_vm.isfocus = true; _vm.$emit('focus')},"blur":function($event){_vm.isfocus = false; _vm.$emit('blur')}},model:{value:(_vm.rangeValue),callback:function ($$v) {_vm.rangeValue=$$v},expression:"rangeValue"}}):_vm._e(),(!_vm.useRangeMode && _vm.realDateType !== 'quarter')?_c('el-date-picker',{ref:"singlePicker",staticClass:"xt-date",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","format":_vm.format,"type":_vm.realDateType,"placeholder":_vm.innerPlaceholder,"clearable":""},on:{"focus":function($event){_vm.isfocus = true; _vm.$emit('focus')},"blur":function($event){_vm.isfocus = false; _vm.$emit('blur')}},model:{value:(_vm.singleValue),callback:function ($$v) {_vm.singleValue=$$v},expression:"singleValue"}}):(!_vm.useRangeMode && _vm.realDateType === 'quarter')?_c('Picker',{staticClass:"xt-date",attrs:{"type":"quarter","size":"small","disabled":_vm.disabled,"placeholder":_vm.innerPlaceholder},on:{"focus":function($event){_vm.isfocus = true; _vm.$emit('focus')},"blur":function($event){_vm.isfocus = false; _vm.$emit('blur')}},model:{value:(_vm.singleValue),callback:function ($$v) {_vm.singleValue=$$v},expression:"singleValue"}}):_vm._e()],1)])
|
|
8407
8616
|
}
|
|
8408
8617
|
var xt_date_pickervue_type_template_id_7f82fa36_staticRenderFns = []
|
|
@@ -8635,7 +8844,7 @@ xt_date_picker.install = function (Vue) {
|
|
|
8635
8844
|
|
|
8636
8845
|
/* harmony default export */ var components_xt_date_picker = (xt_date_picker);
|
|
8637
8846
|
|
|
8638
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8847
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-chart/index.vue?vue&type=template&id=fcb32ff2
|
|
8639
8848
|
var xt_chartvue_type_template_id_fcb32ff2_render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.type=='bar')?_c('xt-bar',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'xt-bar',_vm.$attrs,false)):(_vm.type=='line')?_c('xt-line',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'xt-line',_vm.$attrs,false)):(_vm.type=='pie')?_c('xt-pie',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'xt-pie',_vm.$attrs,false)):(_vm.type=='multi')?_c('xt-multi',_vm._b({attrs:{"theme":_vm.myTheme,"size":_vm.mySize}},'xt-multi',_vm.$attrs,false)):_vm._e()
|
|
8640
8849
|
}
|
|
8641
8850
|
var xt_chartvue_type_template_id_fcb32ff2_staticRenderFns = []
|
|
@@ -8643,7 +8852,7 @@ var xt_chartvue_type_template_id_fcb32ff2_staticRenderFns = []
|
|
|
8643
8852
|
|
|
8644
8853
|
// CONCATENATED MODULE: ./src/components/xt-chart/index.vue?vue&type=template&id=fcb32ff2
|
|
8645
8854
|
|
|
8646
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8855
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-chart/XtBar.vue?vue&type=template&id=5705d26c&scoped=true
|
|
8647
8856
|
var XtBarvue_type_template_id_5705d26c_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"barchart",staticClass:"bar-box",style:(_vm.chartStyle)})
|
|
8648
8857
|
}
|
|
8649
8858
|
var XtBarvue_type_template_id_5705d26c_scoped_true_staticRenderFns = []
|
|
@@ -8899,7 +9108,7 @@ var XtBar_component = Object(componentNormalizer["a" /* default */])(
|
|
|
8899
9108
|
)
|
|
8900
9109
|
|
|
8901
9110
|
/* harmony default export */ var XtBar = (XtBar_component.exports);
|
|
8902
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9111
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-chart/XtLine.vue?vue&type=template&id=ee5ba2d8&scoped=true
|
|
8903
9112
|
var XtLinevue_type_template_id_ee5ba2d8_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"linechart",staticClass:"line-box",style:(_vm.chartStyle)})
|
|
8904
9113
|
}
|
|
8905
9114
|
var XtLinevue_type_template_id_ee5ba2d8_scoped_true_staticRenderFns = []
|
|
@@ -9107,7 +9316,7 @@ var XtLine_component = Object(componentNormalizer["a" /* default */])(
|
|
|
9107
9316
|
)
|
|
9108
9317
|
|
|
9109
9318
|
/* harmony default export */ var XtLine = (XtLine_component.exports);
|
|
9110
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9319
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-chart/XtPie.vue?vue&type=template&id=504b3110&scoped=true
|
|
9111
9320
|
var XtPievue_type_template_id_504b3110_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"piechart",staticClass:"pie-box",style:(_vm.chartStyle)})
|
|
9112
9321
|
}
|
|
9113
9322
|
var XtPievue_type_template_id_504b3110_scoped_true_staticRenderFns = []
|
|
@@ -9329,7 +9538,7 @@ var XtPie_component = Object(componentNormalizer["a" /* default */])(
|
|
|
9329
9538
|
)
|
|
9330
9539
|
|
|
9331
9540
|
/* harmony default export */ var XtPie = (XtPie_component.exports);
|
|
9332
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9541
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-chart/XtMulti.vue?vue&type=template&id=2957321d&scoped=true
|
|
9333
9542
|
var XtMultivue_type_template_id_2957321d_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:"multilinechart",staticClass:"multiline-box",style:(_vm.chartStyle)})
|
|
9334
9543
|
}
|
|
9335
9544
|
var XtMultivue_type_template_id_2957321d_scoped_true_staticRenderFns = []
|
|
@@ -9796,7 +10005,7 @@ xt_chart.install = function (Vue) {
|
|
|
9796
10005
|
// EXTERNAL MODULE: ./src/components/xt-icon/style/index.scss
|
|
9797
10006
|
var xt_icon_style = __webpack_require__("1f11");
|
|
9798
10007
|
|
|
9799
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10008
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-icon/index.vue?vue&type=template&id=0e301b72&scoped=true
|
|
9800
10009
|
var xt_iconvue_type_template_id_0e301b72_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.tag,_vm._g({tag:"component",class:_vm.iconClasses,style:(_vm.iconStyle),on:{"click":_vm.handleClick}},_vm.$listeners),[(_vm.isSvgSprite)?_c('svg',{style:(_vm.svgStyle),attrs:{"aria-hidden":"true"}},[_c('use',{attrs:{"href":_vm.svgHref}})]):(_vm.hasDefaultSlot)?_vm._t("default"):_vm._e()],2)
|
|
9801
10010
|
}
|
|
9802
10011
|
var xt_iconvue_type_template_id_0e301b72_scoped_true_staticRenderFns = []
|
|
@@ -9975,7 +10184,7 @@ xt_icon.install = function (Vue) {
|
|
|
9975
10184
|
|
|
9976
10185
|
/* harmony default export */ var components_xt_icon = (xt_icon);
|
|
9977
10186
|
|
|
9978
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10187
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-table/index.vue?vue&type=template&id=39458c28&scoped=true
|
|
9979
10188
|
var xt_tablevue_type_template_id_39458c28_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-table-wrapper"},[(_vm.title || _vm.$slots.toolbar)?_c('div',{staticClass:"xt-table-header"},[(_vm.title)?_c('span',{staticClass:"xt-table-title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:"xt-table-toolbar"},[_vm._t("toolbar")],2)]):_vm._e(),_c('div',{staticClass:"xt-table-body"},[_c('VirtualElTable',_vm._g(_vm._b({ref:"table",staticClass:"xt-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 [_c('XtTableCell',{attrs:{"row":scope.row,"index":scope.$index,"render":child.render,"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 [_c('XtTableCell',{attrs:{"row":scope.row,"index":scope.$index,"render":col.render,"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:"xt-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()])
|
|
9980
10189
|
}
|
|
9981
10190
|
var xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns = []
|
|
@@ -10029,7 +10238,7 @@ var XtTableCell_component = Object(componentNormalizer["a" /* default */])(
|
|
|
10029
10238
|
)
|
|
10030
10239
|
|
|
10031
10240
|
/* harmony default export */ var XtTableCell = (XtTableCell_component.exports);
|
|
10032
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10241
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-table/VirtualElTable.vue?vue&type=template&id=01f7dcee&scoped=true
|
|
10033
10242
|
var VirtualElTablevue_type_template_id_01f7dcee_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)
|
|
10034
10243
|
}
|
|
10035
10244
|
var VirtualElTablevue_type_template_id_01f7dcee_scoped_true_staticRenderFns = []
|
|
@@ -10722,43 +10931,370 @@ var xt_tablevue_type_style_index_0_id_39458c28_prod_scoped_true_lang_css = __web
|
|
|
10722
10931
|
|
|
10723
10932
|
/* normalize component */
|
|
10724
10933
|
|
|
10725
|
-
var xt_table_component = Object(componentNormalizer["a" /* default */])(
|
|
10726
|
-
components_xt_tablevue_type_script_lang_js,
|
|
10727
|
-
xt_tablevue_type_template_id_39458c28_scoped_true_render,
|
|
10728
|
-
xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns,
|
|
10934
|
+
var xt_table_component = Object(componentNormalizer["a" /* default */])(
|
|
10935
|
+
components_xt_tablevue_type_script_lang_js,
|
|
10936
|
+
xt_tablevue_type_template_id_39458c28_scoped_true_render,
|
|
10937
|
+
xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns,
|
|
10938
|
+
false,
|
|
10939
|
+
null,
|
|
10940
|
+
"39458c28",
|
|
10941
|
+
null
|
|
10942
|
+
|
|
10943
|
+
)
|
|
10944
|
+
|
|
10945
|
+
/* harmony default export */ var xt_table = (xt_table_component.exports);
|
|
10946
|
+
// CONCATENATED MODULE: ./src/components/xt-table/index.js
|
|
10947
|
+
|
|
10948
|
+
|
|
10949
|
+
xt_table.install = function (Vue) {
|
|
10950
|
+
Vue.component(xt_table.name, xt_table)
|
|
10951
|
+
}
|
|
10952
|
+
|
|
10953
|
+
/* harmony default export */ var components_xt_table = (xt_table);
|
|
10954
|
+
|
|
10955
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-list/index.vue?vue&type=template&id=084d1476&scoped=true
|
|
10956
|
+
var xt_listvue_type_template_id_084d1476_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-list",class:{ 'xt-list--loading': _vm.loading }},[(_vm.title || _vm.filterable || _vm.sortable || _vm.$slots.toolbar)?_c('div',{staticClass:"xt-list__header"},[(_vm.title)?_c('span',{staticClass:"xt-list__title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:"xt-list__toolbar"},[(_vm.filterable)?_c('div',{staticClass:"xt-list__search"},[_c('el-input',{attrs:{"placeholder":_vm.filterPlaceholder,"size":"small","clearable":"","prefix-icon":"el-icon-search"},on:{"input":_vm.handleSearch},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:"searchText"}})],1):_vm._e(),(_vm.sortable && _vm.sortBy)?_c('el-button',{attrs:{"size":"small","icon":"el-icon-sort","type":_vm.currentSortOrder ? 'primary' : 'default',"plain":""},on:{"click":_vm.handleSortToggle}},[_vm._v(" "+_vm._s(_vm.sortLabel)+" ")]):_vm._e(),_vm._t("toolbar")],2)]):_vm._e(),_c('xt-scroll',{ref:"scrollContainer",class:['xt-list__body', { 'xt-list__body--virtual': _vm.virtualScroll }],style:(_vm.bodyStyle),on:{"scroll":_vm.onScroll}},[(_vm.virtualScroll)?_c('div',{staticClass:"xt-list__phantom",style:({ height: _vm.totalHeight + 'px' })},[_c('div',{style:({ paddingTop: _vm.offsetY + 'px' })},[(_vm.groupedData.length)?[_vm._l((_vm.visibleGroups),function(group,gIdx){return [_c('div',{key:group._key,staticClass:"xt-list__group"},[_c('div',{staticClass:"xt-list__group-title",on:{"click":function($event){return _vm.toggleGroup(group._key)}}},[_c('span',{staticClass:"xt-list__group-arrow",class:{ 'is-expanded': group._expanded }},[_c('i',{staticClass:"el-icon-arrow-right"})]),_vm._t("group-title",function(){return [_c('span',{staticClass:"xt-list__group-label"},[_vm._v(_vm._s(_vm.getGroupLabel(group)))]),_c('span',{staticClass:"xt-list__group-count"},[_vm._v("("+_vm._s(group._items.length)+")")])]},{"group":group,"items":group._items,"expanded":group._expanded})],2),(group._expanded)?_c('div',{class:['xt-list__cards', 'xt-list__cols-' + _vm.columns]},_vm._l((_vm.getVisibleItems(group)),function(item,idx){return _c('div',{key:item._id || idx,staticClass:"xt-list__item",on:{"click":function($event){return _vm.handleItemClick(item, group._key)}}},[_c('el-card',{attrs:{"shadow":_vm.shadow,"body-style":_vm.cardBodyStyle}},[_vm._t("default",function(){return [(_vm.getImage(item))?_c('div',{staticClass:"xt-list__image"},[_c('img',{attrs:{"src":_vm.getImage(item),"alt":_vm.getConfigValue(_vm.cardConfig.title, item)}})]):_vm._e(),(_vm.getTag(item))?_c('div',{staticClass:"xt-list__tag"},[_c('el-tag',{attrs:{"size":"small","type":_vm.getTagType(item)}},[_vm._v(_vm._s(_vm.getTag(item)))])],1):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.title, item))?_c('div',{staticClass:"xt-list__card-title"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.title, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.subtitle, item))?_c('div',{staticClass:"xt-list__card-subtitle"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.subtitle, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.content, item))?_c('div',{staticClass:"xt-list__card-content"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.content, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.footer, item))?_c('div',{staticClass:"xt-list__card-footer"},[_vm._t("card-footer",function(){return [_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.footer, item))+" ")]},{"item":item,"index":_vm.getItemIndex(item, group)})],2):_vm._e()]},{"item":item,"index":_vm.getItemIndex(item, group),"group":group})],2)],1)}),0):_vm._e()])]})]:(!_vm.loading)?_c('div',{staticClass:"xt-list__empty"},[_vm._t("empty",function(){return [_c('span',[_vm._v(_vm._s(_vm.emptyText))])]})],2):_vm._e()],2)]):(_vm.groupedData.length)?[_vm._l((_vm.groupedData),function(group){return [_c('div',{key:group._key,staticClass:"xt-list__group"},[_c('div',{staticClass:"xt-list__group-title",on:{"click":function($event){return _vm.toggleGroup(group._key)}}},[_c('span',{staticClass:"xt-list__group-arrow",class:{ 'is-expanded': group._expanded }},[_c('i',{staticClass:"el-icon-arrow-right"})]),_vm._t("group-title",function(){return [_c('span',{staticClass:"xt-list__group-label"},[_vm._v(_vm._s(_vm.getGroupLabel(group)))]),_c('span',{staticClass:"xt-list__group-count"},[_vm._v("("+_vm._s(group._items.length)+")")])]},{"group":group,"items":group._items,"expanded":group._expanded})],2),(group._expanded)?_c('div',{class:['xt-list__cards', 'xt-list__cols-' + _vm.columns]},_vm._l((group._items),function(item,idx){return _c('div',{key:item._id || idx,staticClass:"xt-list__item",on:{"click":function($event){return _vm.handleItemClick(item, group._key)}}},[_c('el-card',{attrs:{"shadow":_vm.shadow,"body-style":_vm.cardBodyStyle}},[_vm._t("default",function(){return [(_vm.getImage(item))?_c('div',{staticClass:"xt-list__image"},[_c('img',{attrs:{"src":_vm.getImage(item),"alt":_vm.getConfigValue(_vm.cardConfig.title, item)}})]):_vm._e(),(_vm.getTag(item))?_c('div',{staticClass:"xt-list__tag"},[_c('el-tag',{attrs:{"size":"small","type":_vm.getTagType(item)}},[_vm._v(_vm._s(_vm.getTag(item)))])],1):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.title, item))?_c('div',{staticClass:"xt-list__card-title"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.title, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.subtitle, item))?_c('div',{staticClass:"xt-list__card-subtitle"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.subtitle, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.content, item))?_c('div',{staticClass:"xt-list__card-content"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.content, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.footer, item))?_c('div',{staticClass:"xt-list__card-footer"},[_vm._t("card-footer",function(){return [_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.footer, item))+" ")]},{"item":item,"index":idx})],2):_vm._e()]},{"item":item,"index":idx,"group":group})],2)],1)}),0):_vm._e()])]})]:(!_vm.loading)?_c('div',{staticClass:"xt-list__empty"},[_vm._t("empty",function(){return [_c('span',[_vm._v(_vm._s(_vm.emptyText))])]})],2):_vm._e(),(_vm.loadMore && _vm.hasMore && !_vm.loading)?_c('div',{staticClass:"xt-list__loadmore"},[_c('el-button',{attrs:{"type":"text","loading":_vm.loadMoreLoading},on:{"click":_vm.handleLoadMore}},[_vm._v(" "+_vm._s(_vm.loadMoreText)+" ")])],1):_vm._e()],2),(_vm.loading)?_c('div',{staticClass:"xt-list__loading"},[_vm._t("loading",function(){return [_c('i',{staticClass:"el-icon-loading"}),_c('span',[_vm._v("加载中...")])]})],2):_vm._e(),(_vm.showPagination)?_c('div',{staticClass:"xt-list__footer"},[_c('el-pagination',{attrs:{"background":"","small":"","current-page":_vm.pagination.pageNum,"page-size":_vm.pagination.pageSize,"total":_vm.total,"page-sizes":_vm.pagination.pageSizes || [10, 20, 50],"layout":"total, prev, pager, next"},on:{"size-change":_vm.handleSizeChange,"current-change":_vm.handleCurrentChange}})],1):_vm._e()],1)
|
|
10957
|
+
}
|
|
10958
|
+
var xt_listvue_type_template_id_084d1476_scoped_true_staticRenderFns = []
|
|
10959
|
+
|
|
10960
|
+
|
|
10961
|
+
// CONCATENATED MODULE: ./src/components/xt-list/index.vue?vue&type=template&id=084d1476&scoped=true
|
|
10962
|
+
|
|
10963
|
+
// EXTERNAL MODULE: ./src/components/xt-scroll/style/index.scss
|
|
10964
|
+
var xt_scroll_style = __webpack_require__("f699");
|
|
10965
|
+
|
|
10966
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-scroll/index.vue?vue&type=template&id=74170e40
|
|
10967
|
+
var xt_scrollvue_type_template_id_74170e40_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-scroll",class:[`xt-scroll--${_vm.scrollDirection}`],style:(_vm.containerStyle)},[_c('div',{ref:"scrollWrap",staticClass:"xt-scroll__wrap",class:[`xt-scroll__wrap--${_vm.scrollDirection}`],on:{"scroll":_vm.onScroll}},[(_vm.vScroll)?_c('div',{staticClass:"xt-scroll__virtual",style:(_vm.virtualWrapperStyle)},[(_vm.scrollDirection === 'vertical')?_c('div',{staticClass:"xt-scroll__phantom",style:({ height: _vm.totalSize + 'px' })},[_c('div',{style:({ transform: `translateY(${_vm.offsetStart}px)` })},[_vm._l((_vm.visibleData),function(item,index){return [_c('div',{key:_vm.getItemKey(item, index),staticClass:"xt-scroll__item",class:_vm.itemClassName,style:(_vm.itemStyle)},[_vm._t("item",function(){return [_vm._v(" "+_vm._s(item)+" ")]},{"item":item,"index":_vm.getOriginalIndex(index)})],2)]})],2)]):(_vm.scrollDirection === 'horizontal')?_c('div',{staticClass:"xt-scroll__phantom",style:({ width: _vm.totalSize + 'px' })},[_c('div',{style:({ transform: `translateX(${_vm.offsetStart}px)` })},[_vm._l((_vm.visibleData),function(item,index){return [_c('div',{key:_vm.getItemKey(item, index),staticClass:"xt-scroll__item",class:_vm.itemClassName,style:(_vm.itemStyle)},[_vm._t("item",function(){return [_vm._v(" "+_vm._s(item)+" ")]},{"item":item,"index":_vm.getOriginalIndex(index)})],2)]})],2)]):_vm._e()]):_vm._e(),(_vm.vScroll && (!_vm.data || !_vm.data.length) && !_vm.loading)?_c('div',{staticClass:"xt-scroll__empty"},[_vm._t("empty",function(){return [_c('span',[_vm._v(_vm._s(_vm.emptyText))])]})],2):_vm._e(),(_vm.loading)?_c('div',{staticClass:"xt-scroll__loading"},[_vm._t("loading",function(){return [_c('i',{staticClass:"el-icon-loading"}),_c('span',[_vm._v("加载中...")])]})],2):_vm._e(),(!_vm.vScroll)?_c('div',{staticClass:"xt-scroll__default"},[_vm._t("default")],2):_vm._e(),(_vm.vScroll && _vm.showLoadMore && !_vm.loading)?_c('div',{staticClass:"xt-scroll__loadmore",on:{"click":_vm.onLoadMore}},[_c('el-button',{attrs:{"type":"text","loading":_vm.loadMoreLoading}},[_vm._v(" "+_vm._s(_vm.loadMoreText)+" ")])],1):_vm._e()])])
|
|
10968
|
+
}
|
|
10969
|
+
var xt_scrollvue_type_template_id_74170e40_staticRenderFns = []
|
|
10970
|
+
|
|
10971
|
+
|
|
10972
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue?vue&type=template&id=74170e40
|
|
10973
|
+
|
|
10974
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-scroll/index.vue?vue&type=script&lang=js
|
|
10975
|
+
|
|
10976
|
+
/* harmony default export */ var xt_scrollvue_type_script_lang_js = ({
|
|
10977
|
+
name: 'XtScroll',
|
|
10978
|
+
|
|
10979
|
+
props: {
|
|
10980
|
+
// ========== 虚拟滚动配置 ==========
|
|
10981
|
+
/** 是否启用虚拟滚动 */
|
|
10982
|
+
vScroll: { type: Boolean, default: false },
|
|
10983
|
+
/** 数据源 */
|
|
10984
|
+
data: { type: Array, default: () => [] },
|
|
10985
|
+
/** 每个 item 的固定尺寸(px),纵向为高度,横向为宽度 */
|
|
10986
|
+
itemSize: { type: Number, default: 50 },
|
|
10987
|
+
/** item 的唯一键字段名 */
|
|
10988
|
+
keyField: { type: String, default: 'id' },
|
|
10989
|
+
/** 预渲染缓冲区大小(item 数量) */
|
|
10990
|
+
bufferSize: { type: Number, default: 5 },
|
|
10991
|
+
/** 虚拟滚动方向 */
|
|
10992
|
+
scrollDirection: {
|
|
10993
|
+
type: String,
|
|
10994
|
+
default: 'vertical',
|
|
10995
|
+
validator: (v) => ['vertical', 'horizontal'].includes(v)
|
|
10996
|
+
},
|
|
10997
|
+
/** item 的自定义 CSS 类名 */
|
|
10998
|
+
itemClassName: { type: String, default: '' },
|
|
10999
|
+
|
|
11000
|
+
// ========== 容器尺寸 ==========
|
|
11001
|
+
height: { type: [Number, String], default: '' },
|
|
11002
|
+
maxHeight: { type: [Number, String], default: '' },
|
|
11003
|
+
width: { type: [Number, String], default: '' },
|
|
11004
|
+
maxWidth: { type: [Number, String], default: '' },
|
|
11005
|
+
|
|
11006
|
+
// ========== 状态 ==========
|
|
11007
|
+
loading: { type: Boolean, default: false },
|
|
11008
|
+
emptyText: { type: String, default: '暂无数据' },
|
|
11009
|
+
|
|
11010
|
+
// ========== 加载更多 ==========
|
|
11011
|
+
loadMore: { type: Boolean, default: false },
|
|
11012
|
+
loadMoreText: { type: String, default: '加载更多' },
|
|
11013
|
+
loadMoreLoading: { type: Boolean, default: false }
|
|
11014
|
+
},
|
|
11015
|
+
|
|
11016
|
+
data() {
|
|
11017
|
+
return {
|
|
11018
|
+
scrollPos: 0,
|
|
11019
|
+
containerSize: 0,
|
|
11020
|
+
resizeObserver: null,
|
|
11021
|
+
rafId: null
|
|
11022
|
+
}
|
|
11023
|
+
},
|
|
11024
|
+
|
|
11025
|
+
computed: {
|
|
11026
|
+
containerStyle() {
|
|
11027
|
+
const style = {}
|
|
11028
|
+
if (this.height) {
|
|
11029
|
+
style.height = typeof this.height === 'number' ? this.height + 'px' : this.height
|
|
11030
|
+
}
|
|
11031
|
+
if (this.maxHeight) {
|
|
11032
|
+
style.maxHeight = typeof this.maxHeight === 'number' ? this.maxHeight + 'px' : this.maxHeight
|
|
11033
|
+
}
|
|
11034
|
+
if (this.width) {
|
|
11035
|
+
style.width = typeof this.width === 'number' ? this.width + 'px' : this.width
|
|
11036
|
+
}
|
|
11037
|
+
if (this.maxWidth) {
|
|
11038
|
+
style.maxWidth = typeof this.maxWidth === 'number' ? this.maxWidth + 'px' : this.maxWidth
|
|
11039
|
+
}
|
|
11040
|
+
return style
|
|
11041
|
+
},
|
|
11042
|
+
|
|
11043
|
+
virtualWrapperStyle() {
|
|
11044
|
+
const style = {}
|
|
11045
|
+
if (this.scrollDirection === 'horizontal') {
|
|
11046
|
+
style.height = '100%'
|
|
11047
|
+
}
|
|
11048
|
+
return style
|
|
11049
|
+
},
|
|
11050
|
+
|
|
11051
|
+
itemStyle() {
|
|
11052
|
+
return this.scrollDirection === 'vertical'
|
|
11053
|
+
? { height: this.itemSize + 'px' }
|
|
11054
|
+
: { width: this.itemSize + 'px', display: 'inline-block' }
|
|
11055
|
+
},
|
|
11056
|
+
|
|
11057
|
+
/** 数据总条数 */
|
|
11058
|
+
dataCount() {
|
|
11059
|
+
return (this.data && this.data.length) || 0
|
|
11060
|
+
},
|
|
11061
|
+
|
|
11062
|
+
/** 总滚动尺寸 */
|
|
11063
|
+
totalSize() {
|
|
11064
|
+
return this.dataCount * this.itemSize
|
|
11065
|
+
},
|
|
11066
|
+
|
|
11067
|
+
/** 虚拟滚动:可见范围起始索引 */
|
|
11068
|
+
visibleStartIndex() {
|
|
11069
|
+
if (!this.vScroll) return 0
|
|
11070
|
+
const start = Math.floor(this.scrollPos / this.itemSize)
|
|
11071
|
+
return Math.max(0, start - this.bufferSize)
|
|
11072
|
+
},
|
|
11073
|
+
|
|
11074
|
+
/** 虚拟滚动:可见范围结束索引 */
|
|
11075
|
+
visibleEndIndex() {
|
|
11076
|
+
if (!this.vScroll) return this.dataCount
|
|
11077
|
+
const visibleCount = Math.ceil(this.containerSize / this.itemSize)
|
|
11078
|
+
const end = Math.ceil(this.scrollPos / this.itemSize) + visibleCount
|
|
11079
|
+
return Math.min(this.dataCount, end + this.bufferSize)
|
|
11080
|
+
},
|
|
11081
|
+
|
|
11082
|
+
/** 可见数据 */
|
|
11083
|
+
visibleData() {
|
|
11084
|
+
if (!this.vScroll || !this.data) return this.data || []
|
|
11085
|
+
return this.data.slice(this.visibleStartIndex, this.visibleEndIndex)
|
|
11086
|
+
},
|
|
11087
|
+
|
|
11088
|
+
/** 偏移量(px) */
|
|
11089
|
+
offsetStart() {
|
|
11090
|
+
return this.visibleStartIndex * this.itemSize
|
|
11091
|
+
},
|
|
11092
|
+
|
|
11093
|
+
/** 是否显示加载更多 */
|
|
11094
|
+
showLoadMore() {
|
|
11095
|
+
if (!this.loadMore || !this.dataCount) return false
|
|
11096
|
+
if (this.scrollDirection === 'vertical') {
|
|
11097
|
+
return this.scrollPos + this.containerSize >= this.totalSize - this.itemSize * 2
|
|
11098
|
+
}
|
|
11099
|
+
return false
|
|
11100
|
+
}
|
|
11101
|
+
},
|
|
11102
|
+
|
|
11103
|
+
watch: {
|
|
11104
|
+
data: {
|
|
11105
|
+
handler() {
|
|
11106
|
+
this.$nextTick(() => {
|
|
11107
|
+
this.updateContainerSize()
|
|
11108
|
+
})
|
|
11109
|
+
}
|
|
11110
|
+
},
|
|
11111
|
+
vScroll(val) {
|
|
11112
|
+
if (val) {
|
|
11113
|
+
this.$nextTick(() => {
|
|
11114
|
+
this.updateContainerSize()
|
|
11115
|
+
this.bindResizeObserver()
|
|
11116
|
+
})
|
|
11117
|
+
}
|
|
11118
|
+
}
|
|
11119
|
+
},
|
|
11120
|
+
|
|
11121
|
+
mounted() {
|
|
11122
|
+
this.$nextTick(() => {
|
|
11123
|
+
this.updateContainerSize()
|
|
11124
|
+
if (this.vScroll) {
|
|
11125
|
+
this.bindResizeObserver()
|
|
11126
|
+
}
|
|
11127
|
+
})
|
|
11128
|
+
},
|
|
11129
|
+
|
|
11130
|
+
beforeDestroy() {
|
|
11131
|
+
this.unbindResizeObserver()
|
|
11132
|
+
if (this.rafId && typeof cancelAnimationFrame !== 'undefined') {
|
|
11133
|
+
cancelAnimationFrame(this.rafId)
|
|
11134
|
+
this.rafId = null
|
|
11135
|
+
}
|
|
11136
|
+
},
|
|
11137
|
+
|
|
11138
|
+
methods: {
|
|
11139
|
+
// ========== 虚拟滚动 ==========
|
|
11140
|
+
onScroll() {
|
|
11141
|
+
const wrap = this.$refs.scrollWrap
|
|
11142
|
+
if (!wrap) return
|
|
11143
|
+
|
|
11144
|
+
const pos = this.scrollDirection === 'vertical' ? wrap.scrollTop : wrap.scrollLeft
|
|
11145
|
+
this.scrollPos = pos
|
|
11146
|
+
|
|
11147
|
+
// 对外 emit scroll 事件,传递 scrollTop/scrollLeft 方便父组件使用
|
|
11148
|
+
this.$emit('scroll', {
|
|
11149
|
+
scrollTop: wrap.scrollTop,
|
|
11150
|
+
scrollLeft: wrap.scrollLeft
|
|
11151
|
+
})
|
|
11152
|
+
|
|
11153
|
+
if (this.rafId) return
|
|
11154
|
+
if (typeof requestAnimationFrame === 'undefined') return
|
|
11155
|
+
this.rafId = requestAnimationFrame(() => {
|
|
11156
|
+
this.$forceUpdate()
|
|
11157
|
+
this.rafId = null
|
|
11158
|
+
})
|
|
11159
|
+
},
|
|
11160
|
+
|
|
11161
|
+
getItemKey(item, index) {
|
|
11162
|
+
if (item && typeof item === 'object' && this.keyField && item[this.keyField] != null) {
|
|
11163
|
+
return item[this.keyField]
|
|
11164
|
+
}
|
|
11165
|
+
return `vitem_${this.visibleStartIndex + index}`
|
|
11166
|
+
},
|
|
11167
|
+
|
|
11168
|
+
getOriginalIndex(index) {
|
|
11169
|
+
return this.visibleStartIndex + index
|
|
11170
|
+
},
|
|
11171
|
+
|
|
11172
|
+
// ========== 容器尺寸 ==========
|
|
11173
|
+
updateContainerSize() {
|
|
11174
|
+
const wrap = this.$refs.scrollWrap
|
|
11175
|
+
if (!wrap) return
|
|
11176
|
+
|
|
11177
|
+
this.containerSize = this.scrollDirection === 'vertical'
|
|
11178
|
+
? wrap.clientHeight
|
|
11179
|
+
: wrap.clientWidth
|
|
11180
|
+
},
|
|
11181
|
+
|
|
11182
|
+
bindResizeObserver() {
|
|
11183
|
+
if (typeof ResizeObserver === 'undefined') return
|
|
11184
|
+
this.unbindResizeObserver()
|
|
11185
|
+
|
|
11186
|
+
const wrap = this.$refs.scrollWrap
|
|
11187
|
+
if (!wrap) return
|
|
11188
|
+
|
|
11189
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
11190
|
+
this.updateContainerSize()
|
|
11191
|
+
})
|
|
11192
|
+
this.resizeObserver.observe(wrap)
|
|
11193
|
+
},
|
|
11194
|
+
|
|
11195
|
+
unbindResizeObserver() {
|
|
11196
|
+
if (this.resizeObserver) {
|
|
11197
|
+
this.resizeObserver.disconnect()
|
|
11198
|
+
this.resizeObserver = null
|
|
11199
|
+
}
|
|
11200
|
+
},
|
|
11201
|
+
|
|
11202
|
+
// ========== 加载更多 ==========
|
|
11203
|
+
onLoadMore() {
|
|
11204
|
+
this.$emit('load-more')
|
|
11205
|
+
},
|
|
11206
|
+
|
|
11207
|
+
// ========== 对外暴露方法 ==========
|
|
11208
|
+
/** 获取原生滚动容器 DOM 元素 */
|
|
11209
|
+
getScrollContainer() {
|
|
11210
|
+
return this.$refs.scrollWrap
|
|
11211
|
+
},
|
|
11212
|
+
|
|
11213
|
+
/** 滚动到指定位置 */
|
|
11214
|
+
scrollTo(pos, behavior) {
|
|
11215
|
+
const wrap = this.$refs.scrollWrap
|
|
11216
|
+
if (!wrap) return
|
|
11217
|
+
|
|
11218
|
+
const opts = behavior && typeof behavior === 'string'
|
|
11219
|
+
? { behavior }
|
|
11220
|
+
: { behavior: 'smooth' }
|
|
11221
|
+
|
|
11222
|
+
if (this.scrollDirection === 'vertical') {
|
|
11223
|
+
wrap.scrollTo({ top: pos, ...opts })
|
|
11224
|
+
} else {
|
|
11225
|
+
wrap.scrollTo({ left: pos, ...opts })
|
|
11226
|
+
}
|
|
11227
|
+
},
|
|
11228
|
+
|
|
11229
|
+
/** 滚动到指定索引的 item */
|
|
11230
|
+
scrollToItem(index) {
|
|
11231
|
+
const pos = index * this.itemSize
|
|
11232
|
+
this.scrollTo(pos)
|
|
11233
|
+
},
|
|
11234
|
+
|
|
11235
|
+
/** 滚动到顶部/左侧 */
|
|
11236
|
+
scrollToStart() {
|
|
11237
|
+
this.scrollTo(0)
|
|
11238
|
+
},
|
|
11239
|
+
|
|
11240
|
+
/** 滚动到底部/右侧 */
|
|
11241
|
+
scrollToEnd() {
|
|
11242
|
+
this.scrollTo(this.totalSize)
|
|
11243
|
+
},
|
|
11244
|
+
|
|
11245
|
+
/** 获取当前滚动位置 */
|
|
11246
|
+
getScrollPos() {
|
|
11247
|
+
return this.scrollPos
|
|
11248
|
+
}
|
|
11249
|
+
}
|
|
11250
|
+
});
|
|
11251
|
+
|
|
11252
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue?vue&type=script&lang=js
|
|
11253
|
+
/* harmony default export */ var components_xt_scrollvue_type_script_lang_js = (xt_scrollvue_type_script_lang_js);
|
|
11254
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue
|
|
11255
|
+
|
|
11256
|
+
|
|
11257
|
+
|
|
11258
|
+
|
|
11259
|
+
|
|
11260
|
+
/* normalize component */
|
|
11261
|
+
|
|
11262
|
+
var xt_scroll_component = Object(componentNormalizer["a" /* default */])(
|
|
11263
|
+
components_xt_scrollvue_type_script_lang_js,
|
|
11264
|
+
xt_scrollvue_type_template_id_74170e40_render,
|
|
11265
|
+
xt_scrollvue_type_template_id_74170e40_staticRenderFns,
|
|
10729
11266
|
false,
|
|
10730
11267
|
null,
|
|
10731
|
-
|
|
11268
|
+
null,
|
|
10732
11269
|
null
|
|
10733
11270
|
|
|
10734
11271
|
)
|
|
10735
11272
|
|
|
10736
|
-
/* harmony default export */ var
|
|
10737
|
-
// CONCATENATED MODULE: ./src/components/xt-
|
|
10738
|
-
|
|
10739
|
-
|
|
10740
|
-
xt_table.install = function (Vue) {
|
|
10741
|
-
Vue.component(xt_table.name, xt_table)
|
|
10742
|
-
}
|
|
10743
|
-
|
|
10744
|
-
/* harmony default export */ var components_xt_table = (xt_table);
|
|
11273
|
+
/* harmony default export */ var xt_scroll = (xt_scroll_component.exports);
|
|
11274
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.js
|
|
11275
|
+
|
|
10745
11276
|
|
|
10746
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d8e97dbc-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-list/index.vue?vue&type=template&id=53c7db00&scoped=true
|
|
10747
|
-
var xt_listvue_type_template_id_53c7db00_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-list",class:{ 'xt-list--loading': _vm.loading }},[(_vm.title || _vm.filterable || _vm.sortable || _vm.$slots.toolbar)?_c('div',{staticClass:"xt-list__header"},[(_vm.title)?_c('span',{staticClass:"xt-list__title"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{staticClass:"xt-list__toolbar"},[(_vm.filterable)?_c('div',{staticClass:"xt-list__search"},[_c('el-input',{attrs:{"placeholder":_vm.filterPlaceholder,"size":"small","clearable":"","prefix-icon":"el-icon-search"},on:{"input":_vm.handleSearch},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:"searchText"}})],1):_vm._e(),(_vm.sortable && _vm.sortBy)?_c('el-button',{attrs:{"size":"small","icon":"el-icon-sort","type":_vm.currentSortOrder ? 'primary' : 'default',"plain":""},on:{"click":_vm.handleSortToggle}},[_vm._v(" "+_vm._s(_vm.sortLabel)+" ")]):_vm._e(),_vm._t("toolbar")],2)]):_vm._e(),_c('div',{ref:"scrollContainer",staticClass:"xt-list__body",style:(_vm.bodyStyle),on:{"scroll":_vm.onScroll}},[(_vm.virtualScroll)?_c('div',{staticClass:"xt-list__phantom",style:({ height: _vm.totalHeight + 'px' })},[_c('div',{style:({ paddingTop: _vm.offsetY + 'px' })},[(_vm.groupedData.length)?[_vm._l((_vm.visibleGroups),function(group,gIdx){return [_c('div',{key:group._key,staticClass:"xt-list__group"},[_c('div',{staticClass:"xt-list__group-title",on:{"click":function($event){return _vm.toggleGroup(group._key)}}},[_c('span',{staticClass:"xt-list__group-arrow",class:{ 'is-expanded': group._expanded }},[_c('i',{staticClass:"el-icon-arrow-right"})]),_vm._t("group-title",function(){return [_c('span',{staticClass:"xt-list__group-label"},[_vm._v(_vm._s(_vm.getGroupLabel(group)))]),_c('span',{staticClass:"xt-list__group-count"},[_vm._v("("+_vm._s(group._items.length)+")")])]},{"group":group,"items":group._items,"expanded":group._expanded})],2),(group._expanded)?_c('div',{class:['xt-list__cards', 'xt-list__cols-' + _vm.columns]},_vm._l((_vm.getVisibleItems(group)),function(item,idx){return _c('div',{key:item._id || idx,staticClass:"xt-list__item",on:{"click":function($event){return _vm.handleItemClick(item, group._key)}}},[_c('el-card',{attrs:{"shadow":_vm.shadow,"body-style":_vm.cardBodyStyle}},[_vm._t("default",function(){return [(_vm.getImage(item))?_c('div',{staticClass:"xt-list__image"},[_c('img',{attrs:{"src":_vm.getImage(item),"alt":_vm.getConfigValue(_vm.cardConfig.title, item)}})]):_vm._e(),(_vm.getTag(item))?_c('div',{staticClass:"xt-list__tag"},[_c('el-tag',{attrs:{"size":"small","type":_vm.getTagType(item)}},[_vm._v(_vm._s(_vm.getTag(item)))])],1):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.title, item))?_c('div',{staticClass:"xt-list__card-title"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.title, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.subtitle, item))?_c('div',{staticClass:"xt-list__card-subtitle"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.subtitle, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.content, item))?_c('div',{staticClass:"xt-list__card-content"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.content, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.footer, item))?_c('div',{staticClass:"xt-list__card-footer"},[_vm._t("card-footer",function(){return [_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.footer, item))+" ")]},{"item":item,"index":_vm.getItemIndex(item, group)})],2):_vm._e()]},{"item":item,"index":_vm.getItemIndex(item, group),"group":group})],2)],1)}),0):_vm._e()])]})]:(!_vm.loading)?_c('div',{staticClass:"xt-list__empty"},[_vm._t("empty",function(){return [_c('span',[_vm._v(_vm._s(_vm.emptyText))])]})],2):_vm._e()],2)]):(_vm.groupedData.length)?[_vm._l((_vm.groupedData),function(group){return [_c('div',{key:group._key,staticClass:"xt-list__group"},[_c('div',{staticClass:"xt-list__group-title",on:{"click":function($event){return _vm.toggleGroup(group._key)}}},[_c('span',{staticClass:"xt-list__group-arrow",class:{ 'is-expanded': group._expanded }},[_c('i',{staticClass:"el-icon-arrow-right"})]),_vm._t("group-title",function(){return [_c('span',{staticClass:"xt-list__group-label"},[_vm._v(_vm._s(_vm.getGroupLabel(group)))]),_c('span',{staticClass:"xt-list__group-count"},[_vm._v("("+_vm._s(group._items.length)+")")])]},{"group":group,"items":group._items,"expanded":group._expanded})],2),(group._expanded)?_c('div',{class:['xt-list__cards', 'xt-list__cols-' + _vm.columns]},_vm._l((group._items),function(item,idx){return _c('div',{key:item._id || idx,staticClass:"xt-list__item",on:{"click":function($event){return _vm.handleItemClick(item, group._key)}}},[_c('el-card',{attrs:{"shadow":_vm.shadow,"body-style":_vm.cardBodyStyle}},[_vm._t("default",function(){return [(_vm.getImage(item))?_c('div',{staticClass:"xt-list__image"},[_c('img',{attrs:{"src":_vm.getImage(item),"alt":_vm.getConfigValue(_vm.cardConfig.title, item)}})]):_vm._e(),(_vm.getTag(item))?_c('div',{staticClass:"xt-list__tag"},[_c('el-tag',{attrs:{"size":"small","type":_vm.getTagType(item)}},[_vm._v(_vm._s(_vm.getTag(item)))])],1):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.title, item))?_c('div',{staticClass:"xt-list__card-title"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.title, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.subtitle, item))?_c('div',{staticClass:"xt-list__card-subtitle"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.subtitle, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.content, item))?_c('div',{staticClass:"xt-list__card-content"},[_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.content, item))+" ")]):_vm._e(),(_vm.getConfigValue(_vm.cardConfig.footer, item))?_c('div',{staticClass:"xt-list__card-footer"},[_vm._t("card-footer",function(){return [_vm._v(" "+_vm._s(_vm.getConfigValue(_vm.cardConfig.footer, item))+" ")]},{"item":item,"index":idx})],2):_vm._e()]},{"item":item,"index":idx,"group":group})],2)],1)}),0):_vm._e()])]})]:(!_vm.loading)?_c('div',{staticClass:"xt-list__empty"},[_vm._t("empty",function(){return [_c('span',[_vm._v(_vm._s(_vm.emptyText))])]})],2):_vm._e(),(_vm.loadMore && _vm.hasMore && !_vm.loading)?_c('div',{staticClass:"xt-list__loadmore"},[_c('el-button',{attrs:{"type":"text","loading":_vm.loadMoreLoading},on:{"click":_vm.handleLoadMore}},[_vm._v(" "+_vm._s(_vm.loadMoreText)+" ")])],1):_vm._e()],2),(_vm.loading)?_c('div',{staticClass:"xt-list__loading"},[_vm._t("loading",function(){return [_c('i',{staticClass:"el-icon-loading"}),_c('span',[_vm._v("加载中...")])]})],2):_vm._e(),(_vm.showPagination)?_c('div',{staticClass:"xt-list__footer"},[_c('el-pagination',{attrs:{"background":"","small":"","current-page":_vm.pagination.pageNum,"page-size":_vm.pagination.pageSize,"total":_vm.total,"page-sizes":_vm.pagination.pageSizes || [10, 20, 50],"layout":"total, prev, pager, next"},on:{"size-change":_vm.handleSizeChange,"current-change":_vm.handleCurrentChange}})],1):_vm._e()])
|
|
10748
|
-
}
|
|
10749
|
-
var xt_listvue_type_template_id_53c7db00_scoped_true_staticRenderFns = []
|
|
10750
11277
|
|
|
11278
|
+
xt_scroll.install = function (Vue) {
|
|
11279
|
+
Vue.component(xt_scroll.name, xt_scroll)
|
|
11280
|
+
}
|
|
10751
11281
|
|
|
10752
|
-
|
|
11282
|
+
/* harmony default export */ var components_xt_scroll = (xt_scroll);
|
|
10753
11283
|
|
|
10754
11284
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-list/index.vue?vue&type=script&lang=js
|
|
10755
11285
|
|
|
11286
|
+
|
|
11287
|
+
|
|
10756
11288
|
const CARD_ITEM_HEIGHT = 160
|
|
10757
11289
|
const GROUP_HEADER_HEIGHT = 44
|
|
10758
11290
|
|
|
10759
11291
|
/* harmony default export */ var xt_listvue_type_script_lang_js = ({
|
|
10760
11292
|
name: 'XtList',
|
|
10761
11293
|
|
|
11294
|
+
components: {
|
|
11295
|
+
XtScroll: components_xt_scroll
|
|
11296
|
+
},
|
|
11297
|
+
|
|
10762
11298
|
props: {
|
|
10763
11299
|
data: { type: Array, default: () => [] },
|
|
10764
11300
|
// 分组配置
|
|
@@ -11088,9 +11624,10 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11088
11624
|
return group._items.indexOf(item)
|
|
11089
11625
|
},
|
|
11090
11626
|
|
|
11091
|
-
onScroll() {
|
|
11627
|
+
onScroll(e) {
|
|
11092
11628
|
if (!this.virtualScroll) return
|
|
11093
|
-
|
|
11629
|
+
// xt-scroll 传递的是 { scrollTop, scrollLeft } 对象
|
|
11630
|
+
this.scrollTop = e && e.scrollTop != null ? e.scrollTop : 0
|
|
11094
11631
|
if (this.rafId) return
|
|
11095
11632
|
if (typeof requestAnimationFrame === 'undefined') return
|
|
11096
11633
|
this.rafId = requestAnimationFrame(() => {
|
|
@@ -11101,18 +11638,22 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11101
11638
|
|
|
11102
11639
|
updateContainerHeight() {
|
|
11103
11640
|
if (this.$refs.scrollContainer) {
|
|
11104
|
-
|
|
11641
|
+
const scrollCmp = this.$refs.scrollContainer
|
|
11642
|
+
const wrap = scrollCmp.getScrollContainer && scrollCmp.getScrollContainer()
|
|
11643
|
+
this.containerHeight = wrap ? wrap.clientHeight : 0
|
|
11105
11644
|
}
|
|
11106
11645
|
},
|
|
11107
11646
|
|
|
11108
11647
|
bindResizeObserver() {
|
|
11109
11648
|
if (typeof ResizeObserver === 'undefined') return
|
|
11110
|
-
const
|
|
11111
|
-
if (!
|
|
11649
|
+
const scrollCmp = this.$refs.scrollContainer
|
|
11650
|
+
if (!scrollCmp) return
|
|
11651
|
+
const wrap = scrollCmp.getScrollContainer && scrollCmp.getScrollContainer()
|
|
11652
|
+
if (!wrap) return
|
|
11112
11653
|
this.resizeObserver = new ResizeObserver(() => {
|
|
11113
11654
|
this.updateContainerHeight()
|
|
11114
11655
|
})
|
|
11115
|
-
this.resizeObserver.observe(
|
|
11656
|
+
this.resizeObserver.observe(wrap)
|
|
11116
11657
|
},
|
|
11117
11658
|
|
|
11118
11659
|
unbindResizeObserver() {
|
|
@@ -11152,8 +11693,8 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11152
11693
|
|
|
11153
11694
|
// ========== 对外暴露方法 ==========
|
|
11154
11695
|
scrollToTop() {
|
|
11155
|
-
if (this.$refs.scrollContainer) {
|
|
11156
|
-
this.$refs.scrollContainer.
|
|
11696
|
+
if (this.$refs.scrollContainer && this.$refs.scrollContainer.scrollToStart) {
|
|
11697
|
+
this.$refs.scrollContainer.scrollToStart()
|
|
11157
11698
|
}
|
|
11158
11699
|
},
|
|
11159
11700
|
|
|
@@ -11183,8 +11724,8 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11183
11724
|
|
|
11184
11725
|
// CONCATENATED MODULE: ./src/components/xt-list/index.vue?vue&type=script&lang=js
|
|
11185
11726
|
/* harmony default export */ var components_xt_listvue_type_script_lang_js = (xt_listvue_type_script_lang_js);
|
|
11186
|
-
// EXTERNAL MODULE: ./src/components/xt-list/index.vue?vue&type=style&index=0&id=
|
|
11187
|
-
var
|
|
11727
|
+
// EXTERNAL MODULE: ./src/components/xt-list/index.vue?vue&type=style&index=0&id=084d1476&prod&scoped=true&lang=css
|
|
11728
|
+
var xt_listvue_type_style_index_0_id_084d1476_prod_scoped_true_lang_css = __webpack_require__("52fd");
|
|
11188
11729
|
|
|
11189
11730
|
// CONCATENATED MODULE: ./src/components/xt-list/index.vue
|
|
11190
11731
|
|
|
@@ -11197,11 +11738,11 @@ var xt_listvue_type_style_index_0_id_53c7db00_prod_scoped_true_lang_css = __webp
|
|
|
11197
11738
|
|
|
11198
11739
|
var xt_list_component = Object(componentNormalizer["a" /* default */])(
|
|
11199
11740
|
components_xt_listvue_type_script_lang_js,
|
|
11200
|
-
|
|
11201
|
-
|
|
11741
|
+
xt_listvue_type_template_id_084d1476_scoped_true_render,
|
|
11742
|
+
xt_listvue_type_template_id_084d1476_scoped_true_staticRenderFns,
|
|
11202
11743
|
false,
|
|
11203
11744
|
null,
|
|
11204
|
-
"
|
|
11745
|
+
"084d1476",
|
|
11205
11746
|
null
|
|
11206
11747
|
|
|
11207
11748
|
)
|
|
@@ -11219,32 +11760,46 @@ xt_list.install = function (Vue) {
|
|
|
11219
11760
|
// EXTERNAL MODULE: ./src/components/xt-scroll-arrow/style/index.scss
|
|
11220
11761
|
var xt_scroll_arrow_style = __webpack_require__("4e56");
|
|
11221
11762
|
|
|
11222
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
11223
|
-
var
|
|
11763
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-scroll-arrow/index.vue?vue&type=template&id=6d59f4e4
|
|
11764
|
+
var xt_scroll_arrowvue_type_template_id_6d59f4e4_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-scroll-arrow",class:[`xt-scroll-arrow--${_vm.direction}`],style:(_vm.containerStyle)},[(_vm.showLeftArrow)?_c('div',{staticClass:"xt-scroll-arrow__btn xt-scroll-arrow__btn--left",on:{"click":_vm.scrollLeft}},[_c('i',{staticClass:"el-icon-arrow-left"})]):_vm._e(),(_vm.showTopArrow && _vm.direction === 'vertical')?_c('div',{staticClass:"xt-scroll-arrow__btn xt-scroll-arrow__btn--top",on:{"click":_vm.scrollTop}},[_c('i',{staticClass:"el-icon-arrow-up"})]):_vm._e(),_c('xt-scroll',{ref:"scrollRef",class:['xt-scroll-arrow__content', _vm.scrollClass],attrs:{"v-scroll":_vm.vScroll,"data":_vm.vScrollData,"item-size":_vm.itemSize,"key-field":_vm.keyField,"buffer-size":_vm.bufferSize,"scroll-direction":_vm.direction,"loading":_vm.vScrollLoading,"load-more":_vm.loadMore,"load-more-text":_vm.loadMoreText,"load-more-loading":_vm.loadMoreLoading},on:{"scroll":_vm.onScroll,"load-more":function($event){return _vm.$emit('load-more')}},scopedSlots:_vm._u([(_vm.vScroll)?{key:"item",fn:function({ item, index }){return [_vm._t("vitem",function(){return [_c('div',{staticClass:"xt-scroll-arrow__vitem"},[_vm._v(_vm._s(item))])]},{"item":item,"index":index})]}}:{key:"default",fn:function(undefined){return _vm._t("default")}}],null,true)}),(_vm.showRightArrow)?_c('div',{staticClass:"xt-scroll-arrow__btn xt-scroll-arrow__btn--right",on:{"click":_vm.scrollRight}},[_c('i',{staticClass:"el-icon-arrow-right"})]):_vm._e(),(_vm.showBottomArrow && _vm.direction === 'vertical')?_c('div',{staticClass:"xt-scroll-arrow__btn xt-scroll-arrow__btn--bottom",on:{"click":_vm.scrollBottom}},[_c('i',{staticClass:"el-icon-arrow-down"})]):_vm._e()],1)
|
|
11224
11765
|
}
|
|
11225
|
-
var
|
|
11766
|
+
var xt_scroll_arrowvue_type_template_id_6d59f4e4_staticRenderFns = []
|
|
11226
11767
|
|
|
11227
11768
|
|
|
11228
|
-
// CONCATENATED MODULE: ./src/components/xt-scroll-arrow/index.vue?vue&type=template&id=
|
|
11769
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll-arrow/index.vue?vue&type=template&id=6d59f4e4
|
|
11229
11770
|
|
|
11230
11771
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-scroll-arrow/index.vue?vue&type=script&lang=js
|
|
11231
11772
|
|
|
11773
|
+
|
|
11774
|
+
|
|
11232
11775
|
/* harmony default export */ var xt_scroll_arrowvue_type_script_lang_js = ({
|
|
11233
11776
|
name: 'XtScrollArrow',
|
|
11777
|
+
|
|
11778
|
+
components: {
|
|
11779
|
+
XtScroll: components_xt_scroll
|
|
11780
|
+
},
|
|
11781
|
+
|
|
11234
11782
|
props: {
|
|
11783
|
+
// ========== 滚动方向 ==========
|
|
11235
11784
|
direction: {
|
|
11236
11785
|
type: String,
|
|
11237
11786
|
default: 'horizontal',
|
|
11238
11787
|
validator: (val) => ['horizontal', 'vertical'].includes(val)
|
|
11239
11788
|
},
|
|
11789
|
+
|
|
11790
|
+
// ========== 滚动步长 ==========
|
|
11240
11791
|
scrollStep: {
|
|
11241
11792
|
type: Number,
|
|
11242
11793
|
default: 100
|
|
11243
11794
|
},
|
|
11795
|
+
|
|
11796
|
+
// ========== 箭头显示 ==========
|
|
11244
11797
|
autoHide: {
|
|
11245
11798
|
type: Boolean,
|
|
11246
11799
|
default: true
|
|
11247
11800
|
},
|
|
11801
|
+
|
|
11802
|
+
// ========== 容器尺寸 ==========
|
|
11248
11803
|
height: {
|
|
11249
11804
|
type: [String, Number],
|
|
11250
11805
|
default: ''
|
|
@@ -11253,6 +11808,8 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11253
11808
|
type: [String, Number],
|
|
11254
11809
|
default: ''
|
|
11255
11810
|
},
|
|
11811
|
+
|
|
11812
|
+
// ========== 模式 ==========
|
|
11256
11813
|
appendMode: {
|
|
11257
11814
|
type: Boolean,
|
|
11258
11815
|
default: false
|
|
@@ -11260,16 +11817,65 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11260
11817
|
clickMode: {
|
|
11261
11818
|
type: Boolean,
|
|
11262
11819
|
default: false
|
|
11820
|
+
},
|
|
11821
|
+
|
|
11822
|
+
// ========== 虚拟滚动配置 ==========
|
|
11823
|
+
/** 是否启用虚拟滚动 */
|
|
11824
|
+
vScroll: {
|
|
11825
|
+
type: Boolean,
|
|
11826
|
+
default: false
|
|
11827
|
+
},
|
|
11828
|
+
/** 虚拟滚动数据源 */
|
|
11829
|
+
vScrollData: {
|
|
11830
|
+
type: Array,
|
|
11831
|
+
default: () => []
|
|
11832
|
+
},
|
|
11833
|
+
/** 每个 item 的固定尺寸(px) */
|
|
11834
|
+
itemSize: {
|
|
11835
|
+
type: Number,
|
|
11836
|
+
default: 50
|
|
11837
|
+
},
|
|
11838
|
+
/** item 的唯一键字段名 */
|
|
11839
|
+
keyField: {
|
|
11840
|
+
type: String,
|
|
11841
|
+
default: 'id'
|
|
11842
|
+
},
|
|
11843
|
+
/** 预渲染缓冲区大小 */
|
|
11844
|
+
bufferSize: {
|
|
11845
|
+
type: Number,
|
|
11846
|
+
default: 5
|
|
11847
|
+
},
|
|
11848
|
+
/** 虚拟滚动加载状态 */
|
|
11849
|
+
vScrollLoading: {
|
|
11850
|
+
type: Boolean,
|
|
11851
|
+
default: false
|
|
11852
|
+
},
|
|
11853
|
+
|
|
11854
|
+
// ========== 加载更多 ==========
|
|
11855
|
+
loadMore: {
|
|
11856
|
+
type: Boolean,
|
|
11857
|
+
default: false
|
|
11858
|
+
},
|
|
11859
|
+
loadMoreText: {
|
|
11860
|
+
type: String,
|
|
11861
|
+
default: '加载更多'
|
|
11862
|
+
},
|
|
11863
|
+
loadMoreLoading: {
|
|
11864
|
+
type: Boolean,
|
|
11865
|
+
default: false
|
|
11263
11866
|
}
|
|
11264
11867
|
},
|
|
11868
|
+
|
|
11265
11869
|
data() {
|
|
11266
11870
|
return {
|
|
11267
11871
|
showLeftArrow: false,
|
|
11268
11872
|
showRightArrow: false,
|
|
11269
11873
|
showTopArrow: false,
|
|
11270
|
-
showBottomArrow: false
|
|
11874
|
+
showBottomArrow: false,
|
|
11875
|
+
mutationObserver: null
|
|
11271
11876
|
}
|
|
11272
11877
|
},
|
|
11878
|
+
|
|
11273
11879
|
computed: {
|
|
11274
11880
|
containerStyle() {
|
|
11275
11881
|
const style = {}
|
|
@@ -11280,27 +11886,44 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11280
11886
|
style.width = typeof this.width === 'number' ? `${this.width}px` : this.width
|
|
11281
11887
|
}
|
|
11282
11888
|
return style
|
|
11889
|
+
},
|
|
11890
|
+
scrollClass() {
|
|
11891
|
+
return this.vScroll ? 'xt-scroll-arrow__content--virtual' : ''
|
|
11283
11892
|
}
|
|
11284
11893
|
},
|
|
11894
|
+
|
|
11285
11895
|
watch: {
|
|
11286
11896
|
direction() {
|
|
11287
11897
|
this.$nextTick(() => {
|
|
11288
11898
|
this.checkScroll()
|
|
11289
11899
|
})
|
|
11900
|
+
},
|
|
11901
|
+
vScrollData: {
|
|
11902
|
+
handler() {
|
|
11903
|
+
this.$nextTick(() => {
|
|
11904
|
+
this.checkScroll()
|
|
11905
|
+
})
|
|
11906
|
+
}
|
|
11290
11907
|
}
|
|
11291
11908
|
},
|
|
11909
|
+
|
|
11292
11910
|
mounted() {
|
|
11293
11911
|
this.$nextTick(() => {
|
|
11294
11912
|
this.checkScroll()
|
|
11295
11913
|
})
|
|
11296
11914
|
this.addResizeObserver()
|
|
11297
|
-
this.
|
|
11915
|
+
if (!this.vScroll) {
|
|
11916
|
+
this.addMutationObserver()
|
|
11917
|
+
}
|
|
11298
11918
|
},
|
|
11919
|
+
|
|
11299
11920
|
beforeDestroy() {
|
|
11300
11921
|
this.removeResizeObserver()
|
|
11301
11922
|
this.removeMutationObserver()
|
|
11302
11923
|
},
|
|
11924
|
+
|
|
11303
11925
|
methods: {
|
|
11926
|
+
// ========== 尺寸监听 ==========
|
|
11304
11927
|
addResizeObserver() {
|
|
11305
11928
|
if (typeof ResizeObserver !== 'undefined') {
|
|
11306
11929
|
this.resizeObserver = new ResizeObserver(() => {
|
|
@@ -11308,17 +11931,19 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11308
11931
|
this.checkScroll()
|
|
11309
11932
|
})
|
|
11310
11933
|
})
|
|
11311
|
-
const container = this.$
|
|
11934
|
+
const container = this.$el
|
|
11312
11935
|
if (container) {
|
|
11313
11936
|
this.resizeObserver.observe(container)
|
|
11314
11937
|
}
|
|
11315
11938
|
}
|
|
11316
11939
|
},
|
|
11940
|
+
|
|
11317
11941
|
removeResizeObserver() {
|
|
11318
11942
|
if (this.resizeObserver) {
|
|
11319
11943
|
this.resizeObserver.disconnect()
|
|
11320
11944
|
}
|
|
11321
11945
|
},
|
|
11946
|
+
|
|
11322
11947
|
addMutationObserver() {
|
|
11323
11948
|
if (typeof MutationObserver !== 'undefined') {
|
|
11324
11949
|
this.mutationObserver = new MutationObserver(() => {
|
|
@@ -11329,28 +11954,37 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11329
11954
|
}
|
|
11330
11955
|
})
|
|
11331
11956
|
})
|
|
11332
|
-
const container = this.$refs.
|
|
11957
|
+
const container = this.$refs.scrollRef
|
|
11333
11958
|
if (container) {
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11959
|
+
const wrap = container.getScrollContainer && container.getScrollContainer()
|
|
11960
|
+
if (wrap) {
|
|
11961
|
+
this.mutationObserver.observe(wrap, {
|
|
11962
|
+
childList: true,
|
|
11963
|
+
subtree: true
|
|
11964
|
+
})
|
|
11965
|
+
}
|
|
11338
11966
|
}
|
|
11339
11967
|
}
|
|
11340
11968
|
},
|
|
11969
|
+
|
|
11341
11970
|
removeMutationObserver() {
|
|
11342
11971
|
if (this.mutationObserver) {
|
|
11343
11972
|
this.mutationObserver.disconnect()
|
|
11344
11973
|
}
|
|
11345
11974
|
},
|
|
11975
|
+
|
|
11976
|
+
// ========== 滚动检测 ==========
|
|
11346
11977
|
checkScroll() {
|
|
11347
|
-
const
|
|
11348
|
-
if (!
|
|
11978
|
+
const scrollRef = this.$refs.scrollRef
|
|
11979
|
+
if (!scrollRef) return
|
|
11980
|
+
|
|
11981
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
11982
|
+
if (!wrap) return
|
|
11349
11983
|
|
|
11350
11984
|
if (this.direction === 'horizontal') {
|
|
11351
|
-
const scrollLeft =
|
|
11352
|
-
const scrollWidth =
|
|
11353
|
-
const clientWidth =
|
|
11985
|
+
const scrollLeft = wrap.scrollLeft
|
|
11986
|
+
const scrollWidth = wrap.scrollWidth
|
|
11987
|
+
const clientWidth = wrap.clientWidth
|
|
11354
11988
|
const maxScroll = scrollWidth - clientWidth
|
|
11355
11989
|
|
|
11356
11990
|
this.showTopArrow = false
|
|
@@ -11358,15 +11992,15 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11358
11992
|
|
|
11359
11993
|
if (this.autoHide) {
|
|
11360
11994
|
this.showLeftArrow = scrollLeft > 0
|
|
11361
|
-
this.showRightArrow = maxScroll > 0 && scrollLeft < maxScroll
|
|
11995
|
+
this.showRightArrow = maxScroll > 0 && scrollLeft < maxScroll - 1
|
|
11362
11996
|
} else {
|
|
11363
11997
|
this.showLeftArrow = maxScroll > 0
|
|
11364
11998
|
this.showRightArrow = maxScroll > 0
|
|
11365
11999
|
}
|
|
11366
12000
|
} else {
|
|
11367
|
-
const scrollTop =
|
|
11368
|
-
const scrollHeight =
|
|
11369
|
-
const clientHeight =
|
|
12001
|
+
const scrollTop = wrap.scrollTop
|
|
12002
|
+
const scrollHeight = wrap.scrollHeight
|
|
12003
|
+
const clientHeight = wrap.clientHeight
|
|
11370
12004
|
const maxScroll = scrollHeight - clientHeight
|
|
11371
12005
|
|
|
11372
12006
|
this.showLeftArrow = false
|
|
@@ -11374,77 +12008,77 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11374
12008
|
|
|
11375
12009
|
if (this.autoHide) {
|
|
11376
12010
|
this.showTopArrow = scrollTop > 0
|
|
11377
|
-
this.showBottomArrow = maxScroll > 0 && scrollTop < maxScroll
|
|
12011
|
+
this.showBottomArrow = maxScroll > 0 && scrollTop < maxScroll - 1
|
|
11378
12012
|
} else {
|
|
11379
12013
|
this.showTopArrow = maxScroll > 0
|
|
11380
12014
|
this.showBottomArrow = maxScroll > 0
|
|
11381
12015
|
}
|
|
11382
12016
|
}
|
|
11383
12017
|
},
|
|
11384
|
-
|
|
12018
|
+
|
|
12019
|
+
onScroll() {
|
|
11385
12020
|
this.checkScroll()
|
|
11386
|
-
this.$emit('scroll', this.$refs.
|
|
11387
|
-
},
|
|
11388
|
-
handleClick(e) {
|
|
11389
|
-
if (!this.clickMode) return
|
|
11390
|
-
const container = this.$refs.scrollContainer
|
|
11391
|
-
if (!container) return
|
|
11392
|
-
|
|
11393
|
-
const target = e.target
|
|
11394
|
-
if (!target || target === container) return
|
|
11395
|
-
|
|
11396
|
-
const containerRect = container.getBoundingClientRect()
|
|
11397
|
-
const targetRect = target.getBoundingClientRect()
|
|
11398
|
-
|
|
11399
|
-
const isVisible = (
|
|
11400
|
-
targetRect.left >= containerRect.left &&
|
|
11401
|
-
targetRect.right <= containerRect.right &&
|
|
11402
|
-
targetRect.top >= containerRect.top &&
|
|
11403
|
-
targetRect.bottom <= containerRect.bottom
|
|
11404
|
-
)
|
|
11405
|
-
|
|
11406
|
-
if (!isVisible) {
|
|
11407
|
-
if (this.direction === 'horizontal') {
|
|
11408
|
-
const scrollLeft = target.offsetLeft - (container.clientWidth - targetRect.width) / 2
|
|
11409
|
-
container.scrollTo({ left: scrollLeft, behavior: 'smooth' })
|
|
11410
|
-
} else {
|
|
11411
|
-
const scrollTop = target.offsetTop - (container.clientHeight - targetRect.height) / 2
|
|
11412
|
-
container.scrollTo({ top: scrollTop, behavior: 'smooth' })
|
|
11413
|
-
}
|
|
11414
|
-
}
|
|
12021
|
+
this.$emit('scroll', this.$refs.scrollRef)
|
|
11415
12022
|
},
|
|
12023
|
+
|
|
12024
|
+
// ========== 滚动操作 ==========
|
|
11416
12025
|
scrollLeft() {
|
|
11417
|
-
|
|
11418
|
-
if (container) {
|
|
11419
|
-
container.scrollBy({ left: -this.scrollStep, behavior: 'smooth' })
|
|
11420
|
-
}
|
|
12026
|
+
this._scrollBy(-this.scrollStep)
|
|
11421
12027
|
},
|
|
12028
|
+
|
|
11422
12029
|
scrollRight() {
|
|
11423
|
-
|
|
11424
|
-
if (container) {
|
|
11425
|
-
container.scrollBy({ left: this.scrollStep, behavior: 'smooth' })
|
|
11426
|
-
}
|
|
12030
|
+
this._scrollBy(this.scrollStep)
|
|
11427
12031
|
},
|
|
12032
|
+
|
|
11428
12033
|
scrollTop() {
|
|
11429
|
-
|
|
11430
|
-
if (container) {
|
|
11431
|
-
container.scrollBy({ top: -this.scrollStep, behavior: 'smooth' })
|
|
11432
|
-
}
|
|
12034
|
+
this._scrollBy(-this.scrollStep, 'vertical')
|
|
11433
12035
|
},
|
|
12036
|
+
|
|
11434
12037
|
scrollBottom() {
|
|
11435
|
-
|
|
11436
|
-
|
|
11437
|
-
|
|
12038
|
+
this._scrollBy(this.scrollStep, 'vertical')
|
|
12039
|
+
},
|
|
12040
|
+
|
|
12041
|
+
_scrollBy(delta, dir) {
|
|
12042
|
+
const direction = dir || this.direction
|
|
12043
|
+
const scrollRef = this.$refs.scrollRef
|
|
12044
|
+
if (!scrollRef) return
|
|
12045
|
+
|
|
12046
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12047
|
+
if (!wrap) return
|
|
12048
|
+
|
|
12049
|
+
if (direction === 'horizontal') {
|
|
12050
|
+
wrap.scrollBy({ left: delta, behavior: 'smooth' })
|
|
12051
|
+
} else {
|
|
12052
|
+
wrap.scrollBy({ top: delta, behavior: 'smooth' })
|
|
11438
12053
|
}
|
|
11439
12054
|
},
|
|
12055
|
+
|
|
11440
12056
|
scrollToEnd() {
|
|
11441
|
-
const
|
|
11442
|
-
if (!
|
|
12057
|
+
const scrollRef = this.$refs.scrollRef
|
|
12058
|
+
if (!scrollRef) return
|
|
12059
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12060
|
+
if (!wrap) return
|
|
12061
|
+
|
|
11443
12062
|
if (this.direction === 'horizontal') {
|
|
11444
|
-
|
|
12063
|
+
wrap.scrollTo({ left: wrap.scrollWidth, behavior: 'smooth' })
|
|
11445
12064
|
} else {
|
|
11446
|
-
|
|
12065
|
+
wrap.scrollTo({ top: wrap.scrollHeight, behavior: 'smooth' })
|
|
11447
12066
|
}
|
|
12067
|
+
},
|
|
12068
|
+
|
|
12069
|
+
// ========== 对外暴露方法 ==========
|
|
12070
|
+
/** 获取滚动位置 */
|
|
12071
|
+
getScrollPos() {
|
|
12072
|
+
const scrollRef = this.$refs.scrollRef
|
|
12073
|
+
if (!scrollRef) return 0
|
|
12074
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12075
|
+
if (!wrap) return 0
|
|
12076
|
+
return this.direction === 'horizontal' ? wrap.scrollLeft : wrap.scrollTop
|
|
12077
|
+
},
|
|
12078
|
+
|
|
12079
|
+
/** 获取 xt-scroll 组件实例 */
|
|
12080
|
+
getScrollInstance() {
|
|
12081
|
+
return this.$refs.scrollRef
|
|
11448
12082
|
}
|
|
11449
12083
|
}
|
|
11450
12084
|
});
|
|
@@ -11461,8 +12095,8 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11461
12095
|
|
|
11462
12096
|
var xt_scroll_arrow_component = Object(componentNormalizer["a" /* default */])(
|
|
11463
12097
|
components_xt_scroll_arrowvue_type_script_lang_js,
|
|
11464
|
-
|
|
11465
|
-
|
|
12098
|
+
xt_scroll_arrowvue_type_template_id_6d59f4e4_render,
|
|
12099
|
+
xt_scroll_arrowvue_type_template_id_6d59f4e4_staticRenderFns,
|
|
11466
12100
|
false,
|
|
11467
12101
|
null,
|
|
11468
12102
|
null,
|
|
@@ -11481,7 +12115,7 @@ xt_scroll_arrow.install = function (Vue) {
|
|
|
11481
12115
|
|
|
11482
12116
|
/* harmony default export */ var components_xt_scroll_arrow = (xt_scroll_arrow);
|
|
11483
12117
|
|
|
11484
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12118
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-page/index.vue?vue&type=template&id=a1f6b910&scoped=true
|
|
11485
12119
|
var xt_pagevue_type_template_id_a1f6b910_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-page-container",class:_vm.containerClass,style:(_vm.rootCssVars)},[_c('el-container',{staticClass:"xt-page-main-wrap"},[(_vm.$slots.header && _vm.showHeader)?_c('el-header',{ref:"header",staticClass:"xt-page-header",class:_vm.headerClass},[_vm._t("header")],2):_vm._e(),_c('el-main',{ref:"main",staticClass:"xt-page-main",class:_vm.mainClass},[_vm._t("default",null,{"tableHeight":_vm.tableContentHeight})],2),(_vm.$slots.footer && _vm.showFooter)?_c('el-footer',{ref:"footer",staticClass:"xt-page-footer",class:_vm.footerClass},[_vm._t("footer")],2):_vm._e()],1),(_vm.$slots.aside && _vm.showAside)?_c('el-aside',{ref:"aside",staticClass:"xt-page-aside",class:_vm.asideClass,attrs:{"width":_vm.asideWidth}},[_vm._t("aside")],2):_vm._e(),_vm._t("dialog")],2)
|
|
11486
12120
|
}
|
|
11487
12121
|
var xt_pagevue_type_template_id_a1f6b910_scoped_true_staticRenderFns = []
|
|
@@ -11593,7 +12227,7 @@ xt_page.install = function (Vue) {
|
|
|
11593
12227
|
|
|
11594
12228
|
/* harmony default export */ var components_xt_page = (xt_page);
|
|
11595
12229
|
|
|
11596
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12230
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-select-tree/index.vue?vue&type=template&id=962f42c0&scoped=true
|
|
11597
12231
|
var xt_select_treevue_type_template_id_962f42c0_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"el-select select-tree"},[_c('el-popover',{ref:"elPopover",attrs:{"transition":"el-zoom-in-top","popper-class":"select-tree__popover","trigger":"click","disabled":_vm.disabled,"placement":_vm.placement,"width":_vm.popoverWidth},on:{"after-enter":_vm.handleScroll,"show":_vm.handleFocus,"hide":_vm.handleBlur},model:{value:(_vm.visible),callback:function ($$v) {_vm.visible=$$v},expression:"visible"}},[_c('el-scrollbar',{ref:"scrollbar",attrs:{"wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[_c('el-tree',{ref:"elTree",staticClass:"select-tree__list",style:({minWidth: _vm.minWidth + 'px'}),attrs:{"default-expand-keys":_vm.defaultExpandKeys,"show-checkbox":_vm.multiple,"expand-on-click-node":_vm.multiple,"data":_vm.data,"props":_vm.props,"node-key":_vm.propsValue,"default-expand-all":_vm.defaultExpandAll,"check-strictly":_vm.checkStrictly,"lazy":_vm.lazy,"load":_vm.load,"icon-class":_vm.iconClass,"highlight-current":_vm.highlightCurrent,"indent":_vm.indent,"accordion":_vm.accordion,"filter-node-method":_vm.filterNodeMethod,"auto-expand-parent":_vm.autoExpandParent,"render-content":_vm.renderContent,"render-after-expand":_vm.renderAfterExpand},on:{"check-change":_vm.checkChange,"node-click":_vm.nodeClick},nativeOn:{"transitionend":function($event){return _vm.$refs.elPopover.updatePopper()}},scopedSlots:_vm._u([{key:"default",fn:function({data}){return _c('div',{staticClass:"select-tree__item",class:_vm.treeItemClass(data)},[_vm._v(" "+_vm._s(data[_vm.propsLabel])+" ")])}}])})],1),_c('el-input',{ref:"reference",class:{'is-active': _vm.visible, 'is-selected': _vm.selectedLabel},attrs:{"slot":"reference","clearable":_vm.clearable,"readonly":!_vm.filterable,"validate-event":false,"size":_vm.size,"disabled":_vm.disabled,"placeholder":_vm.query || _vm.placeholder},on:{"input":_vm.getTreeFilter,"clear":_vm.clear},slot:"reference",model:{value:(_vm.selectedLabel),callback:function ($$v) {_vm.selectedLabel=$$v},expression:"selectedLabel"}},[_c('i',{staticClass:"el-input__icon el-input__icon-arrow-down el-icon-arrow-down",attrs:{"slot":"suffix"},slot:"suffix"})])],1)],1)
|
|
11598
12232
|
}
|
|
11599
12233
|
var xt_select_treevue_type_template_id_962f42c0_scoped_true_staticRenderFns = []
|
|
@@ -11911,7 +12545,7 @@ xt_select_tree.install = function (Vue) {
|
|
|
11911
12545
|
|
|
11912
12546
|
/* harmony default export */ var components_xt_select_tree = (xt_select_tree);
|
|
11913
12547
|
|
|
11914
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12548
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-upload/index.vue?vue&type=template&id=03e2de58
|
|
11915
12549
|
var xt_uploadvue_type_template_id_03e2de58_render = function render(){var _vm=this,_c=_vm._self._c;return _c('XtFlexBox',{attrs:{"type":"inline-flex","gap":"5px"}},[(_vm.action)?_c('el-upload',{ref:"uploadFile",attrs:{"disabled":_vm.disabled || _vm.uploading,"action":_vm.YSSQP + _vm.action,"file-list":_vm.fileList,"data":{accessToken: _vm.accessToken,..._vm.data},"multiple":_vm.multiple,"limit":_vm.limit,"on-success":_vm.uploadSuccess,"show-file-list":false,"auto-upload":_vm.autoUpload,"before-upload":_vm.uploadBefore,"accept":_vm.accept}},[_c('span',{staticStyle:{"font-size":"20px","padding":"20px","background":"#f0f0f1","color":"#409EFF"},style:({padding: _vm.plusPx / 2 + 'px',cursor:_vm.disabled ? 'not-allowed':'pointer'})},[_vm._t("default",function(){return [_c('i',{class:_vm.icon})]})],2)]):_vm._e(),(_vm.fileList!==null&&_vm.fileList.length>0)?_c('XtFlexBox',{staticClass:"el-upload-list el-upload-list--picture-card",staticStyle:{"flex":"1"},attrs:{"gap":"5px","wrap":"wrap"}},_vm._l((_vm.fileList),function(ite,index){return _c('li',{key:index,staticClass:"el-upload-list__item is-ready",staticStyle:{"margin":"0","width":"62px","height":"62px"},style:({ width: (_vm.plusPx + 22)+ 'px',height: (_vm.plusPx + 22)+ 'px'})},[_c('el-image',{staticClass:"el-upload-list__item-thumbnail",attrs:{"src":_vm.YSSQP+'/'+ite,"alt":""},on:{"click":_vm.clickHandler}}),_c('span',{staticClass:"el-upload-list__item-actions",on:{"click":function($event){return _vm.preShowPicture(ite, index)}}},[_c('span',{staticClass:"el-upload-list__item-preview",on:{"click":function($event){$event.stopPropagation();return _vm.preShowPicture(ite, index)}}},[_c('i',{staticClass:"el-icon-zoom-in"})]),(!_vm.uploading&&!_vm.disabled)?_c('span',{staticClass:"el-upload-list__item-delete",staticStyle:{"margin-left":"0"},on:{"click":function($event){$event.stopPropagation();return _vm.handleRemove(index)}}},[_c('i',{staticClass:"el-icon-delete"})]):_vm._e()])],1)}),0):_vm._e(),(_vm.preview)?[(_vm.previewVisible)?_c('ImageViewer',{attrs:{"z-index":3000,"base-url":_vm.baseUrl + '/',"infiniteLoop":false,"initial-index":_vm.imageIndex,"url-list":_vm.allFileList || _vm.fileList,"on-close":_vm.closeViewer}}):_vm._e()]:_vm._e()],2)
|
|
11916
12550
|
}
|
|
11917
12551
|
var xt_uploadvue_type_template_id_03e2de58_staticRenderFns = []
|
|
@@ -11919,7 +12553,7 @@ var xt_uploadvue_type_template_id_03e2de58_staticRenderFns = []
|
|
|
11919
12553
|
|
|
11920
12554
|
// CONCATENATED MODULE: ./src/components/xt-upload/index.vue?vue&type=template&id=03e2de58
|
|
11921
12555
|
|
|
11922
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12556
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-upload/preview.vue?vue&type=template&id=236adf7f&scoped=true
|
|
11923
12557
|
var previewvue_type_template_id_236adf7f_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{"name":"viewer-fade"}},[_c('div',{ref:"el-image-viewer__wrapper",staticClass:"el-image-viewer__wrapper",style:({ 'z-index': _vm.zIndex }),attrs:{"tabindex":"-1"}},[_c('div',{staticClass:"el-image-viewer__mask",on:{"click":_vm.hide}}),_c('span',{staticClass:"el-image-viewer__btn fix_close",on:{"click":_vm.hide}},[_c('i',{staticClass:"el-icon-close"})]),(!_vm.isSingle)?[_c('span',{staticClass:"el-image-viewer__btn el-image-viewer__prev",class:{ 'is-disabled': !_vm.infinite && _vm.isFirst },on:{"click":_vm.prev}},[_c('i',{staticClass:"el-icon-arrow-left"})]),_c('span',{staticClass:"el-image-viewer__btn el-image-viewer__next",class:{ 'is-disabled': !_vm.infinite && _vm.isLast },on:{"click":_vm.next}},[_c('i',{staticClass:"el-icon-arrow-right"})])]:_vm._e(),_c('div',{staticClass:"el-image-viewer__btn el-image-viewer__actions"},[_c('div',{staticClass:"el-image-viewer__actions__inner"},[_c('i',{staticClass:"el-icon-zoom-out",on:{"click":function($event){$event.stopPropagation();return _vm.handleActions('zoomOut')}}}),_c('i',{staticClass:"el-icon-zoom-in",on:{"click":function($event){$event.stopPropagation();return _vm.handleActions('zoomIn')}}}),_c('i',{staticClass:"el-image-viewer__actions__divider"}),_c('i',{class:_vm.mode.icon,on:{"click":function($event){$event.stopPropagation();return _vm.toggleMode.apply(null, arguments)}}}),_c('i',{staticClass:"el-image-viewer__actions__divider"}),_c('i',{staticClass:"el-icon-refresh-left",on:{"click":function($event){$event.stopPropagation();return _vm.handleActions('anticlocelise')}}}),_c('i',{staticClass:"el-icon-refresh-right",on:{"click":function($event){$event.stopPropagation();return _vm.handleActions('clocelise')}}})])]),_c('div',{staticClass:"el-image-viewer__canvas"},_vm._l((_vm.urlList),function(url,i){return (i === _vm.index)?_c('img',{key:url,ref:"img",refInFor:true,staticClass:"el-image-viewer__img",style:(_vm.imgStyle),attrs:{"src":_vm.currentImg},on:{"load":_vm.handleImgLoad,"error":_vm.handleImgError,"mousedown":_vm.handleMouseDown}}):_vm._e()}),0)],2)])
|
|
11924
12558
|
}
|
|
11925
12559
|
var previewvue_type_template_id_236adf7f_scoped_true_staticRenderFns = []
|
|
@@ -12955,7 +13589,7 @@ xt_upload.install = function (Vue) {
|
|
|
12955
13589
|
|
|
12956
13590
|
/* harmony default export */ var components_xt_upload = (xt_upload);
|
|
12957
13591
|
|
|
12958
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
13592
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-transfer-tree/index.vue?vue&type=template&id=561bec94&scoped=true
|
|
12959
13593
|
var xt_transfer_treevue_type_template_id_561bec94_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-transfer-tree"},[_c('div',{staticClass:"xt-transfer-tree__panel xt-transfer-tree__source"},[_c('div',{staticClass:"xt-transfer-tree__header"},[_c('span',{staticClass:"xt-transfer-tree__title"},[_vm._v(_vm._s(_vm.leftTitle))]),_c('span',{staticClass:"xt-transfer-tree__count"},[_vm._v(_vm._s(_vm.leftCheckedCount)+"/"+_vm._s(_vm.leftTotalCount))])]),(_vm.filterable)?_c('div',{staticClass:"xt-transfer-tree__search"},[_c('el-input',{attrs:{"placeholder":"搜索","prefix-icon":"el-icon-search","size":"small"},model:{value:(_vm.leftFilterText),callback:function ($$v) {_vm.leftFilterText=$$v},expression:"leftFilterText"}})],1):_vm._e(),_c('div',{staticClass:"xt-transfer-tree__body"},[_c('el-tree',{ref:"leftTree",attrs:{"data":_vm.sourceData,"props":_vm.treeProps,"default-expand-all":_vm.defaultExpandAll,"filter-node-method":_vm.filterLeftNode,"show-checkbox":_vm.showCheckbox,"check-strictly":!_vm.cascade,"default-checked-keys":_vm.leftCheckedKeys},on:{"check-change":_vm.handleLeftCheckChange,"node-click":_vm.handleLeftNodeClick},scopedSlots:_vm._u([{key:"default",fn:function({ node, data }){return _c('span',{staticClass:"xt-transfer-tree__node"},[_c('span',[_vm._v(_vm._s(node.label))]),(data.children && data.children.length)?_c('span',{staticClass:"xt-transfer-tree__node-count"},[_vm._v(" ("+_vm._s(data.children.length)+") ")]):_vm._e()])}}])})],1)]),_c('div',{staticClass:"xt-transfer-tree__buttons"},[_c('el-button',{attrs:{"type":"primary","disabled":!_vm.leftCheckedCount,"size":_vm.buttonSize},on:{"click":_vm.transferToRight}},[_c('i',{staticClass:"el-icon-arrow-right"})]),_c('el-button',{attrs:{"type":"primary","disabled":!_vm.rightCheckedCount,"size":_vm.buttonSize},on:{"click":_vm.transferToLeft}},[_c('i',{staticClass:"el-icon-arrow-left"})])],1),_c('div',{staticClass:"xt-transfer-tree__panel xt-transfer-tree__target"},[_c('div',{staticClass:"xt-transfer-tree__header"},[_c('span',{staticClass:"xt-transfer-tree__title"},[_vm._v(_vm._s(_vm.rightTitle))]),_c('span',{staticClass:"xt-transfer-tree__count"},[_vm._v(_vm._s(_vm.rightCheckedCount)+"/"+_vm._s(_vm.rightTotalCount))])]),(_vm.filterable)?_c('div',{staticClass:"xt-transfer-tree__search"},[_c('el-input',{attrs:{"placeholder":"搜索","prefix-icon":"el-icon-search","size":"small"},model:{value:(_vm.rightFilterText),callback:function ($$v) {_vm.rightFilterText=$$v},expression:"rightFilterText"}})],1):_vm._e(),_c('div',{staticClass:"xt-transfer-tree__body"},[_c('el-tree',{ref:"rightTree",attrs:{"data":_vm.targetData,"props":_vm.treeProps,"default-expand-all":_vm.defaultExpandAll,"filter-node-method":_vm.filterRightNode,"show-checkbox":_vm.showCheckbox,"check-strictly":!_vm.cascade,"default-checked-keys":_vm.rightCheckedKeys},on:{"check-change":_vm.handleRightCheckChange,"node-click":_vm.handleRightNodeClick},scopedSlots:_vm._u([{key:"default",fn:function({ node, data }){return _c('span',{staticClass:"xt-transfer-tree__node"},[_c('span',[_vm._v(_vm._s(node.label))]),(data.children && data.children.length)?_c('span',{staticClass:"xt-transfer-tree__node-count"},[_vm._v(" ("+_vm._s(data.children.length)+") ")]):_vm._e()])}}])})],1)])])
|
|
12960
13594
|
}
|
|
12961
13595
|
var xt_transfer_treevue_type_template_id_561bec94_scoped_true_staticRenderFns = []
|
|
@@ -13308,7 +13942,7 @@ xt_transfer_tree.install = function (Vue) {
|
|
|
13308
13942
|
|
|
13309
13943
|
/* harmony default export */ var components_xt_transfer_tree = (xt_transfer_tree);
|
|
13310
13944
|
|
|
13311
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
13945
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-form-schema/index.vue?vue&type=template&id=50399771&scoped=true
|
|
13312
13946
|
var xt_form_schemavue_type_template_id_50399771_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-form-schema"},[(_vm.showSearchTags)?_c('div',{staticClass:"search-tags"},[_c('span',{staticClass:"tags-title"},[_vm._v("已检索:")]),_vm._l((_vm.activeSearchTags),function(tag,key){return _c('el-tag',{key:key,attrs:{"closable":"","size":"small"},on:{"close":function($event){return _vm.handleRemoveTag(key)}}},[_vm._v(" "+_vm._s(tag.label)+": "+_vm._s(tag.value)+" ")])}),(_vm.activeSearchTagsCount === 0)?_c('span',{staticClass:"no-tags"},[_vm._v("暂无检索条件")]):_vm._e()],2):_vm._e(),(_vm.mode === 'dialog')?_c('el-dialog',{staticClass:"xt-form-schema-dialog",attrs:{"title":_vm.title,"visible":_vm.visible,"width":_vm.width,"before-close":_vm.handleCancel,"append-to-body":"","modal-append-to-body":""},on:{"update:visible":function($event){_vm.visible=$event}}},[_c('el-form',{attrs:{"model":_vm.formData,"inline":false,"label-width":"120px"}},_vm._l((_vm.schema),function(field){return _c('el-form-item',{key:field.prop,attrs:{"label":field.label,"prop":field.prop}},[(!field.isSlot)?_c(_vm.getFieldComponent(field),_vm._b({tag:"component"},'component',_vm.getFieldProps(field),false)):_vm._t(field.prop,null,{"field":field})],2)}),1),_c('div',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c('el-button',{on:{"click":_vm.handleCancel}},[_vm._v("取消")]),_c('el-button',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确认")])],1)],1):_vm._e(),(_vm.mode === 'drawer')?_c('el-drawer',{staticClass:"xt-form-schema-drawer",attrs:{"title":_vm.title,"visible":_vm.visible,"direction":_vm.direction,"size":_vm.width,"before-close":_vm.handleCancel,"append-to-body":"","modal-append-to-body":""},on:{"update:visible":function($event){_vm.visible=$event}}},[_c('el-form',{attrs:{"model":_vm.formData,"inline":false,"label-width":"120px"}},_vm._l((_vm.schema),function(field){return _c('el-form-item',{key:field.prop,attrs:{"label":field.label,"prop":field.prop}},[(!field.isSlot)?_c(_vm.getFieldComponent(field),_vm._b({tag:"component"},'component',_vm.getFieldProps(field),false)):_vm._t(field.prop,null,{"field":field})],2)}),1),_c('div',{staticClass:"drawer-footer"},[_c('el-button',{on:{"click":_vm.handleCancel}},[_vm._v("取消")]),_c('el-button',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确认")])],1)],1):_vm._e()],1)
|
|
13313
13947
|
}
|
|
13314
13948
|
var xt_form_schemavue_type_template_id_50399771_scoped_true_staticRenderFns = []
|
|
@@ -13580,7 +14214,7 @@ xt_form_schema.install = function (Vue) {
|
|
|
13580
14214
|
// EXTERNAL MODULE: ./src/components/xt-flow/style/index.scss
|
|
13581
14215
|
var xt_flow_style = __webpack_require__("fdbd");
|
|
13582
14216
|
|
|
13583
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
14217
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d9e3ae5-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-flow/index.vue?vue&type=template&id=05a25f5f
|
|
13584
14218
|
var xt_flowvue_type_template_id_05a25f5f_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-flow",class:_vm.rootClasses},[_vm._l((_vm.displayNodes),function(node,index){return _c('div',{key:node.id || index,staticClass:"xt-flow__node",class:_vm.nodeClasses(node, index)},[_c('div',{staticClass:"xt-flow__timeline"},[_c('div',{staticClass:"xt-flow__icon",class:`xt-flow__icon--${node.status}`},[_vm._t("node-avatar",function(){return [_c('span',{staticClass:"xt-flow__icon-dot"})]},{"node":node,"index":index})],2),(index < _vm.displayNodes.length - 1)?_c('div',{staticClass:"xt-flow__line",class:[
|
|
13585
14219
|
`xt-flow__line--${node.status}`,
|
|
13586
14220
|
{ 'xt-flow__line--dashed': node.status === 'rejected' }
|
|
@@ -13988,6 +14622,567 @@ xt_flow.install = function(Vue) {
|
|
|
13988
14622
|
}
|
|
13989
14623
|
|
|
13990
14624
|
/* harmony default export */ var components_xt_flow = (xt_flow);
|
|
14625
|
+
// CONCATENATED MODULE: ./src/components/theme/iframe-injector.js
|
|
14626
|
+
/* ============================================================
|
|
14627
|
+
* XT-Element-UI iframe 主题注入工具
|
|
14628
|
+
*
|
|
14629
|
+
* 使用场景:微前端架构中,主系统统一管理主题,子系统通过 iframe 嵌入。
|
|
14630
|
+
* 子系统为标准 Element UI 项目,无需任何改造。
|
|
14631
|
+
*
|
|
14632
|
+
* 设计:
|
|
14633
|
+
* - 主题状态的唯一事实源是 utils/index.js(setTheme / setPrimaryColor)
|
|
14634
|
+
* - 本模块仅负责 iframe DOM 操作(注入、MutationObserver、持久化、广播)
|
|
14635
|
+
* - 通过订阅 utils.onConfigChange 实现主文档和 iframe 的同步
|
|
14636
|
+
* - setTheme / setPrimaryColor 委托给 utils,保持外部 API 不变
|
|
14637
|
+
*
|
|
14638
|
+
* 工作流程:
|
|
14639
|
+
* 1. 主系统调用 utils.setTheme('dark') → utils 同步更新 --xt-* + --el-* 变量
|
|
14640
|
+
* 2. utils emitConfigChange → 所有 IframeThemeInjector 实例收到通知
|
|
14641
|
+
* 3. 实例将新主题应用到其管理的所有 iframe
|
|
14642
|
+
* 4. 持久化、广播事件、回调
|
|
14643
|
+
* ============================================================ */
|
|
14644
|
+
|
|
14645
|
+
|
|
14646
|
+
|
|
14647
|
+
|
|
14648
|
+
/**
|
|
14649
|
+
* IframeThemeInjector 类
|
|
14650
|
+
* 负责向 iframe 注入主题 CSS 并管理 iframe 侧主题状态
|
|
14651
|
+
*
|
|
14652
|
+
* 注意:主文档的 --el-* / --xt-* CSS 变量由 utils/index.js 管理,
|
|
14653
|
+
* 本类仅负责 iframe 内的同步,避免重复设置主文档变量。
|
|
14654
|
+
*/
|
|
14655
|
+
class iframe_injector_IframeThemeInjector {
|
|
14656
|
+
/**
|
|
14657
|
+
* @param {Object} options
|
|
14658
|
+
* @param {string} options.baseCSS - 基础 CSS 内容(注入到 iframe 的 <head>)
|
|
14659
|
+
* @param {string} [options.theme='white'] - 初始主题 'white' | 'dark'
|
|
14660
|
+
* @param {string} [options.primaryColor='#1890ff'] - 初始主色调
|
|
14661
|
+
* @param {string} [options.brand=''] - 品牌标识 '' | 'water' | 'electricity' | 'gas'
|
|
14662
|
+
* @param {boolean} [options.persist=false] - 是否持久化主题配置到 localStorage
|
|
14663
|
+
* @param {Function} [options.onThemeChange] - 主题变化回调
|
|
14664
|
+
*/
|
|
14665
|
+
constructor(options = {}) {
|
|
14666
|
+
if (!options.baseCSS) {
|
|
14667
|
+
console.warn('[IframeThemeInjector] baseCSS 未提供,主题样式将无法注入到 iframe')
|
|
14668
|
+
}
|
|
14669
|
+
|
|
14670
|
+
this.baseCSS = options.baseCSS || ''
|
|
14671
|
+
this.theme = options.theme || 'white'
|
|
14672
|
+
this.brand = options.brand || ''
|
|
14673
|
+
this.persist = options.persist || false
|
|
14674
|
+
this.onThemeChange = options.onThemeChange || null
|
|
14675
|
+
|
|
14676
|
+
// 主色调:如果有 brand,优先使用 brand 对应的颜色
|
|
14677
|
+
this.primaryColor = options.primaryColor || this._getBrandColor()
|
|
14678
|
+
this._userPrimaryColor = options.primaryColor || '#1890ff'
|
|
14679
|
+
|
|
14680
|
+
// 管理的 iframe 列表
|
|
14681
|
+
// Map<HTMLIFrameElement, { styleEl: HTMLStyleElement, injected: boolean }>
|
|
14682
|
+
this.iframes = new Map()
|
|
14683
|
+
|
|
14684
|
+
// MutationObserver 用于自动检测新增 iframe
|
|
14685
|
+
this._observer = null
|
|
14686
|
+
this._observerTarget = null
|
|
14687
|
+
|
|
14688
|
+
// 注入计数器(用于去重定时器)
|
|
14689
|
+
this._injectPending = new Set()
|
|
14690
|
+
|
|
14691
|
+
// 订阅 utils 配置变更,实现主文档和 iframe 的主题同步
|
|
14692
|
+
this._unsubscribe = onConfigChange((key, value) => {
|
|
14693
|
+
this._onUtilsConfigChange(key, value)
|
|
14694
|
+
})
|
|
14695
|
+
}
|
|
14696
|
+
|
|
14697
|
+
// ==================== 公共方法 ====================
|
|
14698
|
+
|
|
14699
|
+
/**
|
|
14700
|
+
* 向指定 iframe 注入主题 CSS
|
|
14701
|
+
* @param {HTMLIFrameElement} iframe - iframe 元素
|
|
14702
|
+
* @returns {boolean} 是否注入成功
|
|
14703
|
+
*/
|
|
14704
|
+
inject(iframe) {
|
|
14705
|
+
if (!iframe) {
|
|
14706
|
+
console.warn('[IframeThemeInjector] inject: iframe 参数为空')
|
|
14707
|
+
return false
|
|
14708
|
+
}
|
|
14709
|
+
|
|
14710
|
+
// 如果已注入,跳过
|
|
14711
|
+
if (this.iframes.has(iframe)) {
|
|
14712
|
+
return true
|
|
14713
|
+
}
|
|
14714
|
+
|
|
14715
|
+
return this._doInject(iframe)
|
|
14716
|
+
}
|
|
14717
|
+
|
|
14718
|
+
/**
|
|
14719
|
+
* 批量注入:注入所有匹配选择器的 iframe
|
|
14720
|
+
* @param {string} [selector='iframe'] - CSS 选择器
|
|
14721
|
+
* @returns {number} 成功注入的数量
|
|
14722
|
+
*/
|
|
14723
|
+
injectAll(selector = 'iframe') {
|
|
14724
|
+
const iframes = document.querySelectorAll(selector)
|
|
14725
|
+
let count = 0
|
|
14726
|
+
iframes.forEach(iframe => {
|
|
14727
|
+
if (this.inject(iframe)) count++
|
|
14728
|
+
})
|
|
14729
|
+
return count
|
|
14730
|
+
}
|
|
14731
|
+
|
|
14732
|
+
/**
|
|
14733
|
+
* 切换主题
|
|
14734
|
+
* 委托给 utils 处理主文档 CSS 变量,本类负责 iframe 同步
|
|
14735
|
+
* @param {string} theme - 'white' | 'dark'
|
|
14736
|
+
* @param {Object} [options]
|
|
14737
|
+
* @param {string} [options.primaryColor] - 主色调
|
|
14738
|
+
* @param {string} [options.brand] - 品牌色
|
|
14739
|
+
*/
|
|
14740
|
+
setTheme(theme, options = {}) {
|
|
14741
|
+
if (theme !== 'white' && theme !== 'dark') {
|
|
14742
|
+
console.warn('[IframeThemeInjector] setTheme: 无效的主题值,使用 "white"', theme)
|
|
14743
|
+
theme = 'white'
|
|
14744
|
+
}
|
|
14745
|
+
|
|
14746
|
+
const prevTheme = this.theme
|
|
14747
|
+
this.theme = theme
|
|
14748
|
+
|
|
14749
|
+
if (options.primaryColor) {
|
|
14750
|
+
this.primaryColor = options.primaryColor
|
|
14751
|
+
this._userPrimaryColor = options.primaryColor
|
|
14752
|
+
} else if (options.brand || this.brand) {
|
|
14753
|
+
this.brand = options.brand || this.brand
|
|
14754
|
+
this.primaryColor = this._getBrandColor()
|
|
14755
|
+
}
|
|
14756
|
+
|
|
14757
|
+
if (options.brand !== undefined) {
|
|
14758
|
+
this.brand = options.brand
|
|
14759
|
+
}
|
|
14760
|
+
|
|
14761
|
+
// 委托给 utils 处理主文档的 CSS 变量设置
|
|
14762
|
+
setTheme(theme)
|
|
14763
|
+
if (this.primaryColor) {
|
|
14764
|
+
setPrimaryColor(this.primaryColor)
|
|
14765
|
+
}
|
|
14766
|
+
|
|
14767
|
+
// 同步所有 iframe
|
|
14768
|
+
this.iframes.forEach((_, iframeEl) => {
|
|
14769
|
+
try {
|
|
14770
|
+
if (iframeEl.contentDocument) {
|
|
14771
|
+
this._applyThemeToDocument(iframeEl.contentDocument)
|
|
14772
|
+
}
|
|
14773
|
+
} catch (e) { /* 跨域 iframe 无法访问 */ }
|
|
14774
|
+
})
|
|
14775
|
+
|
|
14776
|
+
// 持久化
|
|
14777
|
+
if (this.persist) {
|
|
14778
|
+
this._saveToStorage()
|
|
14779
|
+
}
|
|
14780
|
+
|
|
14781
|
+
// 广播事件
|
|
14782
|
+
this._broadcastChange()
|
|
14783
|
+
|
|
14784
|
+
// 回调
|
|
14785
|
+
if (this.onThemeChange) {
|
|
14786
|
+
this.onThemeChange({
|
|
14787
|
+
theme: this.theme,
|
|
14788
|
+
primaryColor: this.primaryColor,
|
|
14789
|
+
brand: this.brand,
|
|
14790
|
+
prevTheme
|
|
14791
|
+
})
|
|
14792
|
+
}
|
|
14793
|
+
}
|
|
14794
|
+
|
|
14795
|
+
/**
|
|
14796
|
+
* 设置主色调
|
|
14797
|
+
* @param {string} color - hex 颜色值,如 '#1890ff'
|
|
14798
|
+
*/
|
|
14799
|
+
setPrimaryColor(color) {
|
|
14800
|
+
this.primaryColor = color
|
|
14801
|
+
this._userPrimaryColor = color
|
|
14802
|
+
this.brand = '' // 清除品牌色
|
|
14803
|
+
|
|
14804
|
+
// 委托给 utils 处理主文档
|
|
14805
|
+
setPrimaryColor(color)
|
|
14806
|
+
|
|
14807
|
+
// 同步 iframe
|
|
14808
|
+
this._applyPrimaryColorToAll()
|
|
14809
|
+
}
|
|
14810
|
+
|
|
14811
|
+
/**
|
|
14812
|
+
* 设置品牌色
|
|
14813
|
+
* @param {string} brand - '' | 'water' | 'electricity' | 'gas'
|
|
14814
|
+
*/
|
|
14815
|
+
setBrand(brand) {
|
|
14816
|
+
this.brand = brand
|
|
14817
|
+
this.primaryColor = this._getBrandColor()
|
|
14818
|
+
|
|
14819
|
+
// 委托给 utils 处理主文档
|
|
14820
|
+
setPrimaryColor(this.primaryColor)
|
|
14821
|
+
|
|
14822
|
+
// 同步 iframe
|
|
14823
|
+
this._applyPrimaryColorToAll()
|
|
14824
|
+
}
|
|
14825
|
+
|
|
14826
|
+
/**
|
|
14827
|
+
* 移除指定 iframe 的注入
|
|
14828
|
+
* @param {HTMLIFrameElement} iframe
|
|
14829
|
+
*/
|
|
14830
|
+
remove(iframe) {
|
|
14831
|
+
const info = this.iframes.get(iframe)
|
|
14832
|
+
if (info && info.styleEl && info.styleEl.parentNode) {
|
|
14833
|
+
info.styleEl.parentNode.removeChild(info.styleEl)
|
|
14834
|
+
}
|
|
14835
|
+
this.iframes.delete(iframe)
|
|
14836
|
+
this._injectPending.delete(iframe)
|
|
14837
|
+
}
|
|
14838
|
+
|
|
14839
|
+
/**
|
|
14840
|
+
* 移除所有注入
|
|
14841
|
+
*/
|
|
14842
|
+
removeAll() {
|
|
14843
|
+
this.iframes.forEach((info, iframe) => {
|
|
14844
|
+
if (info.styleEl && info.styleEl.parentNode) {
|
|
14845
|
+
info.styleEl.parentNode.removeChild(info.styleEl)
|
|
14846
|
+
}
|
|
14847
|
+
})
|
|
14848
|
+
this.iframes.clear()
|
|
14849
|
+
this._injectPending.clear()
|
|
14850
|
+
}
|
|
14851
|
+
|
|
14852
|
+
/**
|
|
14853
|
+
* 开始自动监听 DOM 变化,自动注入新添加的 iframe
|
|
14854
|
+
* @param {HTMLElement} [target=document.body] - 监听的容器元素
|
|
14855
|
+
*/
|
|
14856
|
+
startObserving(target) {
|
|
14857
|
+
this.stopObserving()
|
|
14858
|
+
|
|
14859
|
+
this._observerTarget = target || document.body
|
|
14860
|
+
this._observer = new MutationObserver((mutations) => {
|
|
14861
|
+
mutations.forEach(mutation => {
|
|
14862
|
+
mutation.addedNodes.forEach(node => {
|
|
14863
|
+
// 直接添加的 iframe
|
|
14864
|
+
if (node.tagName === 'IFRAME') {
|
|
14865
|
+
this._handleNewIframe(node)
|
|
14866
|
+
}
|
|
14867
|
+
// 包含 iframe 的子元素
|
|
14868
|
+
if (node.querySelectorAll) {
|
|
14869
|
+
node.querySelectorAll('iframe').forEach(iframe => {
|
|
14870
|
+
this._handleNewIframe(iframe)
|
|
14871
|
+
})
|
|
14872
|
+
}
|
|
14873
|
+
})
|
|
14874
|
+
})
|
|
14875
|
+
})
|
|
14876
|
+
|
|
14877
|
+
this._observer.observe(this._observerTarget, {
|
|
14878
|
+
childList: true,
|
|
14879
|
+
subtree: true
|
|
14880
|
+
})
|
|
14881
|
+
}
|
|
14882
|
+
|
|
14883
|
+
/**
|
|
14884
|
+
* 停止自动监听
|
|
14885
|
+
*/
|
|
14886
|
+
stopObserving() {
|
|
14887
|
+
if (this._observer) {
|
|
14888
|
+
this._observer.disconnect()
|
|
14889
|
+
this._observer = null
|
|
14890
|
+
}
|
|
14891
|
+
this._observerTarget = null
|
|
14892
|
+
}
|
|
14893
|
+
|
|
14894
|
+
/**
|
|
14895
|
+
* 获取当前主题配置
|
|
14896
|
+
* @returns {Object}
|
|
14897
|
+
*/
|
|
14898
|
+
getConfig() {
|
|
14899
|
+
return {
|
|
14900
|
+
theme: this.theme,
|
|
14901
|
+
primaryColor: this.primaryColor,
|
|
14902
|
+
brand: this.brand
|
|
14903
|
+
}
|
|
14904
|
+
}
|
|
14905
|
+
|
|
14906
|
+
/**
|
|
14907
|
+
* 获取已注入的 iframe 数量
|
|
14908
|
+
* @returns {number}
|
|
14909
|
+
*/
|
|
14910
|
+
getIframeCount() {
|
|
14911
|
+
return this.iframes.size
|
|
14912
|
+
}
|
|
14913
|
+
|
|
14914
|
+
/**
|
|
14915
|
+
* 销毁实例,清理所有资源
|
|
14916
|
+
*/
|
|
14917
|
+
destroy() {
|
|
14918
|
+
this.removeAll()
|
|
14919
|
+
this.stopObserving()
|
|
14920
|
+
if (this._unsubscribe) {
|
|
14921
|
+
this._unsubscribe()
|
|
14922
|
+
this._unsubscribe = null
|
|
14923
|
+
}
|
|
14924
|
+
}
|
|
14925
|
+
|
|
14926
|
+
// ==================== utils 变更响应 ====================
|
|
14927
|
+
|
|
14928
|
+
/**
|
|
14929
|
+
* 响应 utils 配置变更,同步到所有 iframe
|
|
14930
|
+
* 统一使用 applyThemeVars 处理主题+主色变量
|
|
14931
|
+
*/
|
|
14932
|
+
_onUtilsConfigChange(key, value) {
|
|
14933
|
+
if (key === 'theme') {
|
|
14934
|
+
this.theme = value
|
|
14935
|
+
} else if (key === 'primaryColor') {
|
|
14936
|
+
this.primaryColor = value
|
|
14937
|
+
} else {
|
|
14938
|
+
return
|
|
14939
|
+
}
|
|
14940
|
+
this._applyPrimaryColorToAll()
|
|
14941
|
+
}
|
|
14942
|
+
|
|
14943
|
+
// ==================== 私有方法 ====================
|
|
14944
|
+
|
|
14945
|
+
/**
|
|
14946
|
+
* 执行实际的注入操作
|
|
14947
|
+
*/
|
|
14948
|
+
_doInject(iframe) {
|
|
14949
|
+
try {
|
|
14950
|
+
const doc = iframe.contentDocument || iframe.contentWindow.document
|
|
14951
|
+
if (!doc || !doc.head) {
|
|
14952
|
+
// iframe 尚未加载完成,等待 load 事件
|
|
14953
|
+
iframe.addEventListener('load', () => this._doInject(iframe), { once: true })
|
|
14954
|
+
return false
|
|
14955
|
+
}
|
|
14956
|
+
|
|
14957
|
+
// 检查是否已注入过(防止重复)
|
|
14958
|
+
const existing = doc.head.querySelector('style[data-xt-theme-injector]')
|
|
14959
|
+
if (existing) {
|
|
14960
|
+
this.iframes.set(iframe, { styleEl: existing, injected: true })
|
|
14961
|
+
this._applyThemeToDocument(doc)
|
|
14962
|
+
return true
|
|
14963
|
+
}
|
|
14964
|
+
|
|
14965
|
+
// 创建 style 元素并注入
|
|
14966
|
+
const styleEl = doc.createElement('style')
|
|
14967
|
+
styleEl.setAttribute('data-xt-theme-injector', '')
|
|
14968
|
+
styleEl.setAttribute('type', 'text/css')
|
|
14969
|
+
styleEl.textContent = this.baseCSS
|
|
14970
|
+
doc.head.appendChild(styleEl)
|
|
14971
|
+
|
|
14972
|
+
// 应用主题变量
|
|
14973
|
+
this._applyThemeToDocument(doc)
|
|
14974
|
+
|
|
14975
|
+
// 记录
|
|
14976
|
+
this.iframes.set(iframe, { styleEl, injected: true })
|
|
14977
|
+
|
|
14978
|
+
return true
|
|
14979
|
+
} catch (e) {
|
|
14980
|
+
console.warn('[IframeThemeInjector] 无法注入主题到 iframe(可能是跨域限制):', e.message)
|
|
14981
|
+
return false
|
|
14982
|
+
}
|
|
14983
|
+
}
|
|
14984
|
+
|
|
14985
|
+
/**
|
|
14986
|
+
* 处理新检测到的 iframe
|
|
14987
|
+
*/
|
|
14988
|
+
_handleNewIframe(iframe) {
|
|
14989
|
+
if (this.iframes.has(iframe) || this._injectPending.has(iframe)) {
|
|
14990
|
+
return
|
|
14991
|
+
}
|
|
14992
|
+
|
|
14993
|
+
this._injectPending.add(iframe)
|
|
14994
|
+
|
|
14995
|
+
const tryInject = () => {
|
|
14996
|
+
this._injectPending.delete(iframe)
|
|
14997
|
+
if (!this.iframes.has(iframe)) {
|
|
14998
|
+
this._doInject(iframe)
|
|
14999
|
+
}
|
|
15000
|
+
}
|
|
15001
|
+
|
|
15002
|
+
if (iframe.contentDocument && iframe.contentDocument.readyState === 'complete') {
|
|
15003
|
+
tryInject()
|
|
15004
|
+
} else {
|
|
15005
|
+
iframe.addEventListener('load', tryInject, { once: true })
|
|
15006
|
+
}
|
|
15007
|
+
}
|
|
15008
|
+
|
|
15009
|
+
/**
|
|
15010
|
+
* 将主题配置应用到指定文档(iframe 内)
|
|
15011
|
+
* 统一使用 applyThemeVars 处理 CSS 变量
|
|
15012
|
+
*/
|
|
15013
|
+
_applyThemeToDocument(doc) {
|
|
15014
|
+
if (!doc || !doc.documentElement) return
|
|
15015
|
+
|
|
15016
|
+
applyThemeVars(doc.documentElement, {
|
|
15017
|
+
theme: this.theme,
|
|
15018
|
+
primaryColor: this.primaryColor,
|
|
15019
|
+
brand: this.brand
|
|
15020
|
+
})
|
|
15021
|
+
}
|
|
15022
|
+
|
|
15023
|
+
/**
|
|
15024
|
+
* 更新所有 iframe 文档的主色调
|
|
15025
|
+
* 统一使用 applyThemeVars 处理
|
|
15026
|
+
*/
|
|
15027
|
+
_applyPrimaryColorToAll() {
|
|
15028
|
+
this.iframes.forEach((_, iframeEl) => {
|
|
15029
|
+
try {
|
|
15030
|
+
if (iframeEl.contentDocument) {
|
|
15031
|
+
applyThemeVars(iframeEl.contentDocument.documentElement, {
|
|
15032
|
+
theme: this.theme,
|
|
15033
|
+
primaryColor: this.primaryColor,
|
|
15034
|
+
brand: this.brand
|
|
15035
|
+
})
|
|
15036
|
+
}
|
|
15037
|
+
} catch (e) { /* 跨域 */ }
|
|
15038
|
+
})
|
|
15039
|
+
}
|
|
15040
|
+
|
|
15041
|
+
/**
|
|
15042
|
+
* 获取品牌色对应的主色调
|
|
15043
|
+
*/
|
|
15044
|
+
_getBrandColor() {
|
|
15045
|
+
if (!this.brand || !BRAND_COLORS[this.brand]) {
|
|
15046
|
+
return this._userPrimaryColor || '#1890ff'
|
|
15047
|
+
}
|
|
15048
|
+
const colors = BRAND_COLORS[this.brand]
|
|
15049
|
+
return this.theme === 'dark' ? colors.dark : colors.light
|
|
15050
|
+
}
|
|
15051
|
+
|
|
15052
|
+
/**
|
|
15053
|
+
* 持久化到 localStorage
|
|
15054
|
+
*/
|
|
15055
|
+
_saveToStorage() {
|
|
15056
|
+
if (typeof localStorage === 'undefined') return
|
|
15057
|
+
try {
|
|
15058
|
+
localStorage.setItem(THEME_STORAGE_KEY, JSON.stringify({
|
|
15059
|
+
theme: this.theme,
|
|
15060
|
+
primaryColor: this._userPrimaryColor,
|
|
15061
|
+
brand: this.brand,
|
|
15062
|
+
timestamp: Date.now()
|
|
15063
|
+
}))
|
|
15064
|
+
} catch (e) {
|
|
15065
|
+
console.warn('[IframeThemeInjector] 保存主题配置失败:', e.message)
|
|
15066
|
+
}
|
|
15067
|
+
}
|
|
15068
|
+
|
|
15069
|
+
/**
|
|
15070
|
+
* 从 localStorage 恢复配置
|
|
15071
|
+
*/
|
|
15072
|
+
_loadFromStorage() {
|
|
15073
|
+
if (typeof localStorage === 'undefined') return null
|
|
15074
|
+
try {
|
|
15075
|
+
const stored = localStorage.getItem(THEME_STORAGE_KEY)
|
|
15076
|
+
return stored ? JSON.parse(stored) : null
|
|
15077
|
+
} catch (e) {
|
|
15078
|
+
return null
|
|
15079
|
+
}
|
|
15080
|
+
}
|
|
15081
|
+
|
|
15082
|
+
/**
|
|
15083
|
+
* 广播主题变化事件
|
|
15084
|
+
*/
|
|
15085
|
+
_broadcastChange() {
|
|
15086
|
+
if (typeof window === 'undefined') return
|
|
15087
|
+
try {
|
|
15088
|
+
window.dispatchEvent(new CustomEvent(THEME_CHANGE_EVENT, {
|
|
15089
|
+
detail: {
|
|
15090
|
+
theme: this.theme,
|
|
15091
|
+
primaryColor: this.primaryColor,
|
|
15092
|
+
brand: this.brand,
|
|
15093
|
+
timestamp: Date.now()
|
|
15094
|
+
},
|
|
15095
|
+
bubbles: true,
|
|
15096
|
+
composed: true
|
|
15097
|
+
}))
|
|
15098
|
+
} catch (e) {
|
|
15099
|
+
// 忽略
|
|
15100
|
+
}
|
|
15101
|
+
}
|
|
15102
|
+
}
|
|
15103
|
+
|
|
15104
|
+
/**
|
|
15105
|
+
* 创建 IframeThemeInjector 实例并自动从 localStorage 恢复配置
|
|
15106
|
+
* @param {Object} options
|
|
15107
|
+
* @returns {IframeThemeInjector}
|
|
15108
|
+
*/
|
|
15109
|
+
function createInjector(options = {}) {
|
|
15110
|
+
const injector = new iframe_injector_IframeThemeInjector(options)
|
|
15111
|
+
|
|
15112
|
+
// 如果启用持久化,尝试从 localStorage 恢复
|
|
15113
|
+
if (options.persist) {
|
|
15114
|
+
const stored = injector._loadFromStorage()
|
|
15115
|
+
if (stored) {
|
|
15116
|
+
injector.theme = stored.theme || 'white'
|
|
15117
|
+
injector.brand = stored.brand || ''
|
|
15118
|
+
injector._userPrimaryColor = stored.primaryColor || '#1890ff'
|
|
15119
|
+
injector.primaryColor = stored.primaryColor || injector._getBrandColor()
|
|
15120
|
+
}
|
|
15121
|
+
}
|
|
15122
|
+
|
|
15123
|
+
return injector
|
|
15124
|
+
}
|
|
15125
|
+
|
|
15126
|
+
/* harmony default export */ var iframe_injector = (iframe_injector_IframeThemeInjector);
|
|
15127
|
+
|
|
15128
|
+
// CONCATENATED MODULE: ./src/components/theme/index.js
|
|
15129
|
+
/* ============================================================
|
|
15130
|
+
* XT-Element-UI Theme 模块入口
|
|
15131
|
+
*
|
|
15132
|
+
* 提供:
|
|
15133
|
+
* 1. 静态 CSS 样式文件(用于注入到 iframe)
|
|
15134
|
+
* 2. IframeThemeInjector - iframe 主题注入工具
|
|
15135
|
+
* 3. 便捷的工厂函数
|
|
15136
|
+
* ============================================================ */
|
|
15137
|
+
|
|
15138
|
+
|
|
15139
|
+
|
|
15140
|
+
// 使用 raw-loader 以原始字符串形式导入 CSS 文件
|
|
15141
|
+
// eslint-disable-next-line
|
|
15142
|
+
const elementVarsCSS = __webpack_require__("b85c").default || __webpack_require__("b85c")
|
|
15143
|
+
// eslint-disable-next-line
|
|
15144
|
+
const elementOverridesCSS = __webpack_require__("c8e4").default || __webpack_require__("c8e4")
|
|
15145
|
+
|
|
15146
|
+
/**
|
|
15147
|
+
* 合并后的完整 CSS 内容
|
|
15148
|
+
* 可直接注入到 iframe 的 <head> 中
|
|
15149
|
+
*/
|
|
15150
|
+
const fullThemeCSS = elementVarsCSS + '\n' + elementOverridesCSS
|
|
15151
|
+
|
|
15152
|
+
/**
|
|
15153
|
+
* 创建一个预配置好 CSS 内容的 IframeThemeInjector 实例
|
|
15154
|
+
* 这是推荐的使用方式,无需手动提供 CSS 内容
|
|
15155
|
+
*
|
|
15156
|
+
* @param {Object} options
|
|
15157
|
+
* @param {string} [options.theme='white'] - 初始主题 'white' | 'dark'
|
|
15158
|
+
* @param {string} [options.primaryColor='#1890ff'] - 初始主色调
|
|
15159
|
+
* @param {boolean} [options.persist=false] - 是否持久化主题配置
|
|
15160
|
+
* @param {Function} [options.onThemeChange] - 主题变化回调
|
|
15161
|
+
* @returns {IframeThemeInjector}
|
|
15162
|
+
*
|
|
15163
|
+
* @example
|
|
15164
|
+
* // 基本使用
|
|
15165
|
+
* const injector = createThemeInjector({ theme: 'white' })
|
|
15166
|
+
* injector.injectAll('iframe')
|
|
15167
|
+
*
|
|
15168
|
+
* @example
|
|
15169
|
+
* // 切换主题
|
|
15170
|
+
* injector.setTheme('dark')
|
|
15171
|
+
*
|
|
15172
|
+
* @example
|
|
15173
|
+
* // 自动监听新增 iframe
|
|
15174
|
+
* injector.startObserving()
|
|
15175
|
+
*/
|
|
15176
|
+
function createThemeInjector(options = {}) {
|
|
15177
|
+
return createInjector({
|
|
15178
|
+
...options,
|
|
15179
|
+
baseCSS: fullThemeCSS
|
|
15180
|
+
})
|
|
15181
|
+
}
|
|
15182
|
+
|
|
15183
|
+
|
|
15184
|
+
|
|
15185
|
+
/* harmony default export */ var components_theme = (createThemeInjector);
|
|
13991
15186
|
// CONCATENATED MODULE: ./src/index.js
|
|
13992
15187
|
// 导入主题样式(定义 CSS 变量)
|
|
13993
15188
|
|
|
@@ -14028,6 +15223,7 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
|
|
|
14028
15223
|
// XtTable 组件(基于 ElementUI Table 封装)
|
|
14029
15224
|
// XtList 组件(卡片列表)
|
|
14030
15225
|
|
|
15226
|
+
// XtScroll 组件(虚拟滚动容器)
|
|
14031
15227
|
|
|
14032
15228
|
|
|
14033
15229
|
|
|
@@ -14038,6 +15234,7 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
|
|
|
14038
15234
|
// XtTransferTree 组件(树形穿梭框)
|
|
14039
15235
|
// XtFormSchema 组件(表单配置化搜索)
|
|
14040
15236
|
// XtFlow 组件(审批流程轨迹)
|
|
15237
|
+
// Theme 模块(iframe 主题注入工具)
|
|
14041
15238
|
|
|
14042
15239
|
|
|
14043
15240
|
const src_components = [
|
|
@@ -14065,6 +15262,7 @@ const src_components = [
|
|
|
14065
15262
|
components_xt_table,
|
|
14066
15263
|
components_xt_list,
|
|
14067
15264
|
components_xt_scroll_arrow,
|
|
15265
|
+
components_xt_scroll,
|
|
14068
15266
|
XtBar,
|
|
14069
15267
|
XtLine,
|
|
14070
15268
|
XtPie,
|
|
@@ -14145,6 +15343,7 @@ if (typeof window !== 'undefined' && window.Vue) {
|
|
|
14145
15343
|
XtTable: components_xt_table,
|
|
14146
15344
|
XtList: components_xt_list,
|
|
14147
15345
|
XtScrollArrow: components_xt_scroll_arrow,
|
|
15346
|
+
XtScroll: components_xt_scroll,
|
|
14148
15347
|
XtBar: XtBar,
|
|
14149
15348
|
XtLine: XtLine,
|
|
14150
15349
|
XtPie: XtPie,
|
|
@@ -14154,7 +15353,8 @@ if (typeof window !== 'undefined' && window.Vue) {
|
|
|
14154
15353
|
XtUpload: components_xt_upload,
|
|
14155
15354
|
XtTransferTree: components_xt_transfer_tree,
|
|
14156
15355
|
XtFormSchema: components_xt_form_schema,
|
|
14157
|
-
XtFlow: components_xt_flow
|
|
15356
|
+
XtFlow: components_xt_flow,
|
|
15357
|
+
Theme: components_theme
|
|
14158
15358
|
});
|
|
14159
15359
|
|
|
14160
15360
|
// 导出工具函数和变量
|