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.umd.js
CHANGED
|
@@ -42,11 +42,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
42
42
|
/******/ // The module cache
|
|
43
43
|
/******/ var installedModules = {};
|
|
44
44
|
/******/
|
|
45
|
-
/******/ // object to store loaded CSS chunks
|
|
46
|
-
/******/ var installedCssChunks = {
|
|
47
|
-
/******/ 0: 0
|
|
48
|
-
/******/ }
|
|
49
|
-
/******/
|
|
50
45
|
/******/ // object to store loaded and loading chunks
|
|
51
46
|
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
|
52
47
|
/******/ // Promise = chunk loading, 0 = chunk loaded
|
|
@@ -91,47 +86,6 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
|
91
86
|
/******/ var promises = [];
|
|
92
87
|
/******/
|
|
93
88
|
/******/
|
|
94
|
-
/******/ // mini-css-extract-plugin CSS loading
|
|
95
|
-
/******/ var cssChunks = {"1":1};
|
|
96
|
-
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
|
97
|
-
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
|
98
|
-
/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
|
|
99
|
-
/******/ var href = "css/" + ({}[chunkId]||chunkId) + "." + {"1":"87a493be","2":"31d6cfe0"}[chunkId] + ".css";
|
|
100
|
-
/******/ var fullhref = __webpack_require__.p + href;
|
|
101
|
-
/******/ var existingLinkTags = document.getElementsByTagName("link");
|
|
102
|
-
/******/ for(var i = 0; i < existingLinkTags.length; i++) {
|
|
103
|
-
/******/ var tag = existingLinkTags[i];
|
|
104
|
-
/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
|
|
105
|
-
/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
|
|
106
|
-
/******/ }
|
|
107
|
-
/******/ var existingStyleTags = document.getElementsByTagName("style");
|
|
108
|
-
/******/ for(var i = 0; i < existingStyleTags.length; i++) {
|
|
109
|
-
/******/ var tag = existingStyleTags[i];
|
|
110
|
-
/******/ var dataHref = tag.getAttribute("data-href");
|
|
111
|
-
/******/ if(dataHref === href || dataHref === fullhref) return resolve();
|
|
112
|
-
/******/ }
|
|
113
|
-
/******/ var linkTag = document.createElement("link");
|
|
114
|
-
/******/ linkTag.rel = "stylesheet";
|
|
115
|
-
/******/ linkTag.type = "text/css";
|
|
116
|
-
/******/ linkTag.onload = resolve;
|
|
117
|
-
/******/ linkTag.onerror = function(event) {
|
|
118
|
-
/******/ var request = event && event.target && event.target.src || fullhref;
|
|
119
|
-
/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
|
|
120
|
-
/******/ err.code = "CSS_CHUNK_LOAD_FAILED";
|
|
121
|
-
/******/ err.request = request;
|
|
122
|
-
/******/ delete installedCssChunks[chunkId]
|
|
123
|
-
/******/ linkTag.parentNode.removeChild(linkTag)
|
|
124
|
-
/******/ reject(err);
|
|
125
|
-
/******/ };
|
|
126
|
-
/******/ linkTag.href = fullhref;
|
|
127
|
-
/******/
|
|
128
|
-
/******/ var head = document.getElementsByTagName("head")[0];
|
|
129
|
-
/******/ head.appendChild(linkTag);
|
|
130
|
-
/******/ }).then(function() {
|
|
131
|
-
/******/ installedCssChunks[chunkId] = 0;
|
|
132
|
-
/******/ }));
|
|
133
|
-
/******/ }
|
|
134
|
-
/******/
|
|
135
89
|
/******/ // JSONP chunk loading for javascript
|
|
136
90
|
/******/
|
|
137
91
|
/******/ var installedChunkData = installedChunks[chunkId];
|
|
@@ -501,6 +455,13 @@ function normalizeComponent(
|
|
|
501
455
|
|
|
502
456
|
/***/ }),
|
|
503
457
|
|
|
458
|
+
/***/ "3ae0":
|
|
459
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
460
|
+
|
|
461
|
+
// extracted by mini-css-extract-plugin
|
|
462
|
+
|
|
463
|
+
/***/ }),
|
|
464
|
+
|
|
504
465
|
/***/ "3cef":
|
|
505
466
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
506
467
|
|
|
@@ -608,6 +569,17 @@ var removeResizeListener = exports.removeResizeListener = function removeResizeL
|
|
|
608
569
|
|
|
609
570
|
// extracted by mini-css-extract-plugin
|
|
610
571
|
|
|
572
|
+
/***/ }),
|
|
573
|
+
|
|
574
|
+
/***/ "52fd":
|
|
575
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
576
|
+
|
|
577
|
+
"use strict";
|
|
578
|
+
/* 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");
|
|
579
|
+
/* 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__);
|
|
580
|
+
/* unused harmony reexport * */
|
|
581
|
+
|
|
582
|
+
|
|
611
583
|
/***/ }),
|
|
612
584
|
|
|
613
585
|
/***/ "5820":
|
|
@@ -1697,17 +1669,6 @@ var index = (function () {
|
|
|
1697
1669
|
|
|
1698
1670
|
// extracted by mini-css-extract-plugin
|
|
1699
1671
|
|
|
1700
|
-
/***/ }),
|
|
1701
|
-
|
|
1702
|
-
/***/ "732a":
|
|
1703
|
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1704
|
-
|
|
1705
|
-
"use strict";
|
|
1706
|
-
/* 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");
|
|
1707
|
-
/* 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__);
|
|
1708
|
-
/* unused harmony reexport * */
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
1672
|
/***/ }),
|
|
1712
1673
|
|
|
1713
1674
|
/***/ "76cb":
|
|
@@ -1827,6 +1788,15 @@ module.exports = {"xtColorPrimary":"#1890ff","xtColorSuccess":"#37c3a4","xtColor
|
|
|
1827
1788
|
/* unused harmony reexport * */
|
|
1828
1789
|
|
|
1829
1790
|
|
|
1791
|
+
/***/ }),
|
|
1792
|
+
|
|
1793
|
+
/***/ "b85c":
|
|
1794
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1795
|
+
|
|
1796
|
+
"use strict";
|
|
1797
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1798
|
+
/* 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}");
|
|
1799
|
+
|
|
1830
1800
|
/***/ }),
|
|
1831
1801
|
|
|
1832
1802
|
/***/ "b8f0":
|
|
@@ -1907,6 +1877,15 @@ try {
|
|
|
1907
1877
|
module.exports = g;
|
|
1908
1878
|
|
|
1909
1879
|
|
|
1880
|
+
/***/ }),
|
|
1881
|
+
|
|
1882
|
+
/***/ "c8e4":
|
|
1883
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
1884
|
+
|
|
1885
|
+
"use strict";
|
|
1886
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1887
|
+
/* 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}");
|
|
1888
|
+
|
|
1910
1889
|
/***/ }),
|
|
1911
1890
|
|
|
1912
1891
|
/***/ "ceb9":
|
|
@@ -1999,13 +1978,6 @@ exports.default = {
|
|
|
1999
1978
|
|
|
2000
1979
|
/***/ }),
|
|
2001
1980
|
|
|
2002
|
-
/***/ "e895":
|
|
2003
|
-
/***/ (function(module, exports, __webpack_require__) {
|
|
2004
|
-
|
|
2005
|
-
// extracted by mini-css-extract-plugin
|
|
2006
|
-
|
|
2007
|
-
/***/ }),
|
|
2008
|
-
|
|
2009
1981
|
/***/ "e8d2":
|
|
2010
1982
|
/***/ (function(module, exports, __webpack_require__) {
|
|
2011
1983
|
|
|
@@ -2031,6 +2003,13 @@ exports.default = {
|
|
|
2031
2003
|
|
|
2032
2004
|
/***/ }),
|
|
2033
2005
|
|
|
2006
|
+
/***/ "f699":
|
|
2007
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
2008
|
+
|
|
2009
|
+
// extracted by mini-css-extract-plugin
|
|
2010
|
+
|
|
2011
|
+
/***/ }),
|
|
2012
|
+
|
|
2034
2013
|
/***/ "fb15":
|
|
2035
2014
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2036
2015
|
|
|
@@ -2072,6 +2051,7 @@ __webpack_require__.d(__webpack_exports__, "XtIcon", function() { return /* reex
|
|
|
2072
2051
|
__webpack_require__.d(__webpack_exports__, "XtTable", function() { return /* reexport */ components_xt_table; });
|
|
2073
2052
|
__webpack_require__.d(__webpack_exports__, "XtList", function() { return /* reexport */ components_xt_list; });
|
|
2074
2053
|
__webpack_require__.d(__webpack_exports__, "XtScrollArrow", function() { return /* reexport */ components_xt_scroll_arrow; });
|
|
2054
|
+
__webpack_require__.d(__webpack_exports__, "XtScroll", function() { return /* reexport */ components_xt_scroll; });
|
|
2075
2055
|
__webpack_require__.d(__webpack_exports__, "XtBar", function() { return /* reexport */ XtBar; });
|
|
2076
2056
|
__webpack_require__.d(__webpack_exports__, "XtLine", function() { return /* reexport */ XtLine; });
|
|
2077
2057
|
__webpack_require__.d(__webpack_exports__, "XtChart", function() { return /* reexport */ components_xt_chart; });
|
|
@@ -2083,6 +2063,7 @@ __webpack_require__.d(__webpack_exports__, "XtUpload", function() { return /* re
|
|
|
2083
2063
|
__webpack_require__.d(__webpack_exports__, "XtTransferTree", function() { return /* reexport */ components_xt_transfer_tree; });
|
|
2084
2064
|
__webpack_require__.d(__webpack_exports__, "XtFormSchema", function() { return /* reexport */ components_xt_form_schema; });
|
|
2085
2065
|
__webpack_require__.d(__webpack_exports__, "XtFlow", function() { return /* reexport */ components_xt_flow; });
|
|
2066
|
+
__webpack_require__.d(__webpack_exports__, "Theme", function() { return /* reexport */ components_theme; });
|
|
2086
2067
|
|
|
2087
2068
|
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
|
|
2088
2069
|
// This file is imported into lib/wc client bundles.
|
|
@@ -2886,480 +2867,708 @@ EchartsUtil.destroyAll = function() {
|
|
|
2886
2867
|
|
|
2887
2868
|
|
|
2888
2869
|
|
|
2870
|
+
// CONCATENATED MODULE: ./src/utils/color.js
|
|
2871
|
+
/**
|
|
2872
|
+
* 颜色工具函数
|
|
2873
|
+
* 供 utils/index.js 和 theme/iframe-injector.js 共同使用
|
|
2874
|
+
*/
|
|
2875
|
+
|
|
2876
|
+
/**
|
|
2877
|
+
* 十六进制颜色转 RGB 字符串 "r, g, b"
|
|
2878
|
+
*/
|
|
2879
|
+
function hexToRgb(hex) {
|
|
2880
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2881
|
+
return result
|
|
2882
|
+
? `${parseInt(result[1], 16)}, ${parseInt(result[2], 16)}, ${parseInt(result[3], 16)}`
|
|
2883
|
+
: '24, 144, 255'
|
|
2884
|
+
}
|
|
2885
|
+
|
|
2886
|
+
/**
|
|
2887
|
+
* 十六进制颜色转 RGB 对象 { r, g, b }
|
|
2888
|
+
*/
|
|
2889
|
+
function hexToRgbObject(hex) {
|
|
2890
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2891
|
+
return result ? {
|
|
2892
|
+
r: parseInt(result[1], 16),
|
|
2893
|
+
g: parseInt(result[2], 16),
|
|
2894
|
+
b: parseInt(result[3], 16)
|
|
2895
|
+
} : null
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
/**
|
|
2899
|
+
* RGB 对象转十六进制
|
|
2900
|
+
*/
|
|
2901
|
+
function rgbToHex(r, g, b) {
|
|
2902
|
+
return '#' + [r, g, b].map(x => {
|
|
2903
|
+
const hex = x.toString(16)
|
|
2904
|
+
return hex.length === 1 ? '0' + hex : hex
|
|
2905
|
+
}).join('')
|
|
2906
|
+
}
|
|
2907
|
+
|
|
2908
|
+
/**
|
|
2909
|
+
* 加深颜色(amount 范围 0-100,表示减少的量)
|
|
2910
|
+
*/
|
|
2911
|
+
function darkenColor(hex, amount) {
|
|
2912
|
+
const obj = hexToRgbObject(hex)
|
|
2913
|
+
if (!obj) return hex
|
|
2914
|
+
const r = Math.max(0, obj.r - amount)
|
|
2915
|
+
const g = Math.max(0, obj.g - amount)
|
|
2916
|
+
const b = Math.max(0, obj.b - amount)
|
|
2917
|
+
return rgbToHex(r, g, b)
|
|
2918
|
+
}
|
|
2919
|
+
|
|
2920
|
+
/**
|
|
2921
|
+
* 减淡/变亮颜色(percent 范围 0-100,表示增加的百分比)
|
|
2922
|
+
*/
|
|
2923
|
+
function lightenColor(hex, percent) {
|
|
2924
|
+
const obj = hexToRgbObject(hex)
|
|
2925
|
+
if (!obj) return hex
|
|
2926
|
+
const amount = Math.round(2.55 * percent)
|
|
2927
|
+
const r = Math.min(255, obj.r + amount)
|
|
2928
|
+
const g = Math.min(255, obj.g + amount)
|
|
2929
|
+
const b = Math.min(255, obj.b + amount)
|
|
2930
|
+
return rgbToHex(r, g, b)
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2933
|
+
/**
|
|
2934
|
+
* 根据主色调生成 Element UI 主色 CSS 变量
|
|
2935
|
+
* 返回 { '--el-color-primary': hex, '--el-color-primary-light-3': hex, ... }
|
|
2936
|
+
*/
|
|
2937
|
+
function generatePrimaryColorVars(primaryColor) {
|
|
2938
|
+
const prefix = '--el-color-primary'
|
|
2939
|
+
return {
|
|
2940
|
+
[prefix]: primaryColor,
|
|
2941
|
+
[`${prefix}-light-3`]: lightenColor(primaryColor, 30),
|
|
2942
|
+
[`${prefix}-light-5`]: lightenColor(primaryColor, 50),
|
|
2943
|
+
[`${prefix}-light-7`]: lightenColor(primaryColor, 70),
|
|
2944
|
+
[`${prefix}-light-8`]: lightenColor(primaryColor, 80),
|
|
2945
|
+
[`${prefix}-light-9`]: lightenColor(primaryColor, 90),
|
|
2946
|
+
[`${prefix}-dark-2`]: darkenColor(primaryColor, 20),
|
|
2947
|
+
[`${prefix}-rgb`]: hexToRgb(primaryColor)
|
|
2948
|
+
}
|
|
2949
|
+
}
|
|
2950
|
+
|
|
2951
|
+
/**
|
|
2952
|
+
* 根据主色调生成 xt 组件主色 CSS 变量
|
|
2953
|
+
* 返回 { '--xt-color-primary': hex, ... }
|
|
2954
|
+
*/
|
|
2955
|
+
function generateXtPrimaryColorVars(primaryColor) {
|
|
2956
|
+
const prefix = '--xt-color-primary'
|
|
2957
|
+
return {
|
|
2958
|
+
[prefix]: primaryColor,
|
|
2959
|
+
[`${prefix}-light-3`]: lightenColor(primaryColor, 30),
|
|
2960
|
+
[`${prefix}-light-5`]: lightenColor(primaryColor, 50),
|
|
2961
|
+
[`${prefix}-light-7`]: lightenColor(primaryColor, 70),
|
|
2962
|
+
[`${prefix}-light-8`]: lightenColor(primaryColor, 80),
|
|
2963
|
+
[`${prefix}-light-9`]: lightenColor(primaryColor, 90)
|
|
2964
|
+
}
|
|
2965
|
+
}
|
|
2966
|
+
|
|
2967
|
+
/* harmony default export */ var utils_color = ({
|
|
2968
|
+
hexToRgb,
|
|
2969
|
+
hexToRgbObject,
|
|
2970
|
+
rgbToHex,
|
|
2971
|
+
darkenColor,
|
|
2972
|
+
lightenColor,
|
|
2973
|
+
generatePrimaryColorVars,
|
|
2974
|
+
generateXtPrimaryColorVars
|
|
2975
|
+
});
|
|
2976
|
+
// CONCATENATED MODULE: ./src/utils/theme-vars.js
|
|
2977
|
+
/**
|
|
2978
|
+
* 主题 CSS 变量常量
|
|
2979
|
+
* 供 utils/index.js 和 theme/iframe-injector.js 共同使用
|
|
2980
|
+
* 定义 Element UI 组件主题相关的 CSS 变量映射
|
|
2981
|
+
*/
|
|
2982
|
+
|
|
2983
|
+
|
|
2984
|
+
/**
|
|
2985
|
+
* 亮色主题 Element UI CSS 变量(关键子集:主色/背景/文字/边框/填充/遮罩)
|
|
2986
|
+
*/
|
|
2987
|
+
const LIGHT_THEME_VARS = {
|
|
2988
|
+
'--el-color-primary': '#1890ff',
|
|
2989
|
+
'--el-color-success': '#67c23a',
|
|
2990
|
+
'--el-color-warning': '#e6a23c',
|
|
2991
|
+
'--el-color-danger': '#f56c6c',
|
|
2992
|
+
'--el-color-error': '#f56c6c',
|
|
2993
|
+
'--el-color-info': '#909399',
|
|
2994
|
+
'--el-bg-color': '#ffffff',
|
|
2995
|
+
'--el-bg-color-page': '#f2f3f5',
|
|
2996
|
+
'--el-bg-color-overlay': '#ffffff',
|
|
2997
|
+
'--el-text-color-primary': '#303133',
|
|
2998
|
+
'--el-text-color-regular': '#606266',
|
|
2999
|
+
'--el-text-color-secondary': '#909399',
|
|
3000
|
+
'--el-text-color-placeholder': '#a8abb2',
|
|
3001
|
+
'--el-text-color-disabled': '#c0c4cc',
|
|
3002
|
+
'--el-border-color': '#dcdfe6',
|
|
3003
|
+
'--el-border-color-light': '#e4e7ed',
|
|
3004
|
+
'--el-border-color-lighter': '#ebeef5',
|
|
3005
|
+
'--el-fill-color': '#f0f2f5',
|
|
3006
|
+
'--el-fill-color-light': '#f5f7fa',
|
|
3007
|
+
'--el-fill-color-lighter': '#fafafa',
|
|
3008
|
+
'--el-mask-color': 'rgba(255, 255, 255, .9)',
|
|
3009
|
+
'--el-mask-color-extra-light': 'rgba(255, 255, 255, .3)'
|
|
3010
|
+
}
|
|
3011
|
+
|
|
3012
|
+
/**
|
|
3013
|
+
* 暗色主题 Element UI CSS 变量(对应 LIGHT_THEME_VARS 的暗色版本)
|
|
3014
|
+
*/
|
|
3015
|
+
const DARK_THEME_VARS = {
|
|
3016
|
+
'--el-color-primary': '#409eff',
|
|
3017
|
+
'--el-color-success': '#67c23a',
|
|
3018
|
+
'--el-color-warning': '#e6a23c',
|
|
3019
|
+
'--el-color-danger': '#f56c6c',
|
|
3020
|
+
'--el-color-error': '#f56c6c',
|
|
3021
|
+
'--el-color-info': '#909399',
|
|
3022
|
+
'--el-bg-color': '#141414',
|
|
3023
|
+
'--el-bg-color-page': '#0a0a0a',
|
|
3024
|
+
'--el-bg-color-overlay': '#1d1e1f',
|
|
3025
|
+
'--el-text-color-primary': '#E5EAF3',
|
|
3026
|
+
'--el-text-color-regular': '#CFD3DC',
|
|
3027
|
+
'--el-text-color-secondary': '#A3A6AD',
|
|
3028
|
+
'--el-text-color-placeholder': '#8D9095',
|
|
3029
|
+
'--el-text-color-disabled': '#6C6E72',
|
|
3030
|
+
'--el-border-color': '#4C4D4F',
|
|
3031
|
+
'--el-border-color-light': '#414243',
|
|
3032
|
+
'--el-border-color-lighter': '#363637',
|
|
3033
|
+
'--el-fill-color': '#303030',
|
|
3034
|
+
'--el-fill-color-light': '#262727',
|
|
3035
|
+
'--el-fill-color-lighter': '#1D1D1D',
|
|
3036
|
+
'--el-mask-color': 'rgba(0, 0, 0, .8)',
|
|
3037
|
+
'--el-mask-color-extra-light': 'rgba(0, 0, 0, .3)'
|
|
3038
|
+
}
|
|
3039
|
+
|
|
3040
|
+
/**
|
|
3041
|
+
* 品牌色映射
|
|
3042
|
+
* 用于微前端架构中根据品牌标识切换主题主色
|
|
3043
|
+
*/
|
|
3044
|
+
const BRAND_COLORS = {
|
|
3045
|
+
water: { light: '#0077be', dark: '#0099cc' },
|
|
3046
|
+
electricity: { light: '#2ecc71', dark: '#27ae60' },
|
|
3047
|
+
gas: { light: '#f39c12', dark: '#e67e22' }
|
|
3048
|
+
}
|
|
3049
|
+
|
|
3050
|
+
/**
|
|
3051
|
+
* 主题存储 key
|
|
3052
|
+
*/
|
|
3053
|
+
const THEME_STORAGE_KEY = 'xt-element-ui-theme-config'
|
|
3054
|
+
|
|
3055
|
+
/**
|
|
3056
|
+
* 主题变化事件名
|
|
3057
|
+
*/
|
|
3058
|
+
const THEME_CHANGE_EVENT = 'xt-theme-change'
|
|
3059
|
+
|
|
3060
|
+
/**
|
|
3061
|
+
* 将主题相关 CSS 变量应用到任意 DOM 元素
|
|
3062
|
+
* 统一 utils/index.js(主文档)和 iframe-injector.js(iframe)的变量设置逻辑
|
|
3063
|
+
*
|
|
3064
|
+
* @param {HTMLElement} element - 目标元素(通常是 document.documentElement)
|
|
3065
|
+
* @param {Object} config
|
|
3066
|
+
* @param {string} config.theme - 'white' | 'dark'
|
|
3067
|
+
* @param {string} [config.primaryColor] - 主色调 hex
|
|
3068
|
+
* @param {string} [config.brand] - 品牌标识 '' | 'water' | 'electricity' | 'gas'
|
|
3069
|
+
*/
|
|
3070
|
+
function applyThemeVars(element, config) {
|
|
3071
|
+
if (!element) return
|
|
3072
|
+
|
|
3073
|
+
const { theme = 'white', primaryColor, brand = '' } = config
|
|
3074
|
+
const style = element.style
|
|
3075
|
+
|
|
3076
|
+
// 1. 设置 data-theme / data-brand 属性
|
|
3077
|
+
element.setAttribute('data-theme', theme)
|
|
3078
|
+
if (brand) {
|
|
3079
|
+
element.setAttribute('data-brand', brand)
|
|
3080
|
+
} else {
|
|
3081
|
+
element.removeAttribute('data-brand')
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
// 2. 应用主题变量(亮色/暗色)
|
|
3085
|
+
const themeVars = theme === 'dark' ? DARK_THEME_VARS : LIGHT_THEME_VARS
|
|
3086
|
+
for (const key in themeVars) {
|
|
3087
|
+
style.setProperty(key, themeVars[key])
|
|
3088
|
+
}
|
|
3089
|
+
|
|
3090
|
+
// 3. 应用主色调变量
|
|
3091
|
+
let color = primaryColor
|
|
3092
|
+
if (brand && BRAND_COLORS[brand]) {
|
|
3093
|
+
color = BRAND_COLORS[brand][theme === 'dark' ? 'dark' : 'light'] || primaryColor
|
|
3094
|
+
}
|
|
3095
|
+
if (color) {
|
|
3096
|
+
const primaryVars = generatePrimaryColorVars(color)
|
|
3097
|
+
for (const key in primaryVars) {
|
|
3098
|
+
style.setProperty(key, primaryVars[key])
|
|
3099
|
+
}
|
|
3100
|
+
}
|
|
3101
|
+
}
|
|
3102
|
+
|
|
3103
|
+
/* harmony default export */ var theme_vars = ({
|
|
3104
|
+
LIGHT_THEME_VARS,
|
|
3105
|
+
DARK_THEME_VARS,
|
|
3106
|
+
BRAND_COLORS,
|
|
3107
|
+
THEME_STORAGE_KEY,
|
|
3108
|
+
THEME_CHANGE_EVENT,
|
|
3109
|
+
applyThemeVars
|
|
3110
|
+
});
|
|
2889
3111
|
// CONCATENATED MODULE: ./src/utils/index.js
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
const defaultConfig = {
|
|
2893
|
-
theme: 'white',
|
|
2894
|
-
size: 'medium',
|
|
2895
|
-
primaryColor: '#1890ff'
|
|
2896
|
-
}
|
|
2897
|
-
|
|
2898
|
-
let currentConfig = { ...defaultConfig }
|
|
2899
|
-
|
|
2900
|
-
const configChangeListeners = []
|
|
2901
|
-
|
|
2902
|
-
const emitConfigChange = function(key, value) {
|
|
2903
|
-
configChangeListeners.forEach(listener => {
|
|
2904
|
-
listener(key, value)
|
|
2905
|
-
})
|
|
2906
|
-
}
|
|
2907
|
-
|
|
2908
|
-
const getConfig = function() {
|
|
2909
|
-
return { ...currentConfig }
|
|
2910
|
-
}
|
|
2911
|
-
|
|
2912
|
-
const setConfig = function(config) {
|
|
2913
|
-
if (typeof config !== 'object' || config === null) {
|
|
2914
|
-
console.warn('[XtElementUI] setConfig 必须传入对象参数')
|
|
2915
|
-
return
|
|
2916
|
-
}
|
|
2917
|
-
|
|
2918
|
-
if (config.theme !== undefined) {
|
|
2919
|
-
setTheme(config.theme)
|
|
2920
|
-
}
|
|
2921
|
-
if (config.size !== undefined) {
|
|
2922
|
-
setSize(config.size)
|
|
2923
|
-
}
|
|
2924
|
-
if (config.primaryColor !== undefined) {
|
|
2925
|
-
setPrimaryColor(config.primaryColor)
|
|
2926
|
-
}
|
|
2927
|
-
}
|
|
2928
|
-
|
|
2929
|
-
function isBrowser() {
|
|
2930
|
-
return typeof window !== 'undefined' && typeof document !== 'undefined'
|
|
2931
|
-
}
|
|
2932
|
-
|
|
2933
|
-
const setTheme = function(theme) {
|
|
2934
|
-
const validThemes = ['white', 'dark']
|
|
2935
|
-
if (!validThemes.includes(theme)) {
|
|
2936
|
-
console.warn(`[XtElementUI] 无效的主题值: ${theme},可选值: ${validThemes.join(', ')}`)
|
|
2937
|
-
return
|
|
2938
|
-
}
|
|
2939
|
-
|
|
2940
|
-
currentConfig.theme = theme
|
|
2941
|
-
|
|
2942
|
-
if (isBrowser()) {
|
|
2943
|
-
const root = document.documentElement
|
|
2944
|
-
|
|
2945
|
-
if (theme === 'dark') {
|
|
2946
|
-
root.setAttribute('data-theme', 'dark')
|
|
2947
|
-
} else {
|
|
2948
|
-
root.setAttribute('data-theme', theme)
|
|
2949
|
-
}
|
|
2950
|
-
|
|
2951
|
-
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
2952
|
-
}
|
|
2953
|
-
|
|
2954
|
-
emitConfigChange('theme', theme)
|
|
2955
|
-
}
|
|
2956
|
-
|
|
2957
|
-
const setSize = function(size) {
|
|
2958
|
-
const validSizes = ['small', 'medium', 'large']
|
|
2959
|
-
if (!validSizes.includes(size)) {
|
|
2960
|
-
console.warn(`[XtElementUI] 无效的大小值: ${size},可选值: ${validSizes.join(', ')}`)
|
|
2961
|
-
return
|
|
2962
|
-
}
|
|
2963
|
-
|
|
2964
|
-
currentConfig.size = size
|
|
2965
|
-
|
|
2966
|
-
if (isBrowser()) {
|
|
2967
|
-
document.documentElement.setAttribute('data-size', size)
|
|
2968
|
-
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
2969
|
-
}
|
|
2970
|
-
|
|
2971
|
-
emitConfigChange('size', size)
|
|
2972
|
-
}
|
|
2973
|
-
|
|
2974
|
-
// 将十六进制颜色转换为 RGB 对象
|
|
2975
|
-
function hexToRgb(hex) {
|
|
2976
|
-
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex)
|
|
2977
|
-
return result ? {
|
|
2978
|
-
r: parseInt(result[1], 16),
|
|
2979
|
-
g: parseInt(result[2], 16),
|
|
2980
|
-
b: parseInt(result[3], 16)
|
|
2981
|
-
} : null
|
|
2982
|
-
}
|
|
2983
|
-
|
|
2984
|
-
// 将 RGB 对象转换为十六进制颜色
|
|
2985
|
-
function rgbToHex(r, g, b) {
|
|
2986
|
-
return '#' + [r, g, b].map(x => {
|
|
2987
|
-
const hex = x.toString(16)
|
|
2988
|
-
return hex.length === 1 ? '0' + hex : hex
|
|
2989
|
-
}).join('')
|
|
2990
|
-
}
|
|
2991
|
-
|
|
2992
|
-
// 计算浅色系列(混合白色)
|
|
2993
|
-
function lightenColor(hex, percent) {
|
|
2994
|
-
const rgb = hexToRgb(hex)
|
|
2995
|
-
if (!rgb) return hex
|
|
2996
|
-
|
|
2997
|
-
const amount = Math.round(2.55 * percent)
|
|
2998
|
-
const r = Math.min(255, rgb.r + amount)
|
|
2999
|
-
const g = Math.min(255, rgb.g + amount)
|
|
3000
|
-
const b = Math.min(255, rgb.b + amount)
|
|
3001
|
-
|
|
3002
|
-
return rgbToHex(r, g, b)
|
|
3003
|
-
}
|
|
3004
|
-
|
|
3005
|
-
const setPrimaryColor = function(color) {
|
|
3006
|
-
const colorRegex = /^#[0-9A-Fa-f]{3}$|^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/
|
|
3007
|
-
if (!colorRegex.test(color)) {
|
|
3008
|
-
console.warn(`[XtElementUI] 无效的颜色值: ${color},请使用十六进制颜色格式,如 #1890ff`)
|
|
3009
|
-
return
|
|
3010
|
-
}
|
|
3011
|
-
|
|
3012
|
-
let validColor = color
|
|
3013
|
-
if (color.length === 4) {
|
|
3014
|
-
validColor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]
|
|
3015
|
-
} else if (color.length === 9) {
|
|
3016
|
-
validColor = color.substring(0, 7)
|
|
3017
|
-
}
|
|
3018
|
-
|
|
3019
|
-
currentConfig.primaryColor = validColor
|
|
3020
|
-
|
|
3021
|
-
if (isBrowser()) {
|
|
3022
|
-
document.documentElement.style.setProperty('--xt-color-primary', validColor)
|
|
3023
|
-
|
|
3024
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-3', lightenColor(validColor, 30))
|
|
3025
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-5', lightenColor(validColor, 50))
|
|
3026
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-7', lightenColor(validColor, 70))
|
|
3027
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-8', lightenColor(validColor, 80))
|
|
3028
|
-
document.documentElement.style.setProperty('--xt-color-primary-light-9', lightenColor(validColor, 90))
|
|
3029
|
-
}
|
|
3030
|
-
|
|
3031
|
-
emitConfigChange('primaryColor', validColor)
|
|
3032
|
-
}
|
|
3033
|
-
|
|
3034
|
-
// 获取当前主题
|
|
3035
|
-
const getTheme = function() {
|
|
3036
|
-
return currentConfig.theme
|
|
3037
|
-
}
|
|
3038
|
-
|
|
3039
|
-
// 获取当前字体大小
|
|
3040
|
-
const getSize = function() {
|
|
3041
|
-
return currentConfig.size
|
|
3042
|
-
}
|
|
3043
|
-
|
|
3044
|
-
// 获取当前主色调
|
|
3045
|
-
const getPrimaryColor = function() {
|
|
3046
|
-
return currentConfig.primaryColor
|
|
3047
|
-
}
|
|
3048
|
-
|
|
3049
|
-
// 重置为默认配置
|
|
3050
|
-
const resetConfig = function() {
|
|
3051
|
-
setConfig(defaultConfig)
|
|
3052
|
-
}
|
|
3053
|
-
|
|
3054
|
-
// 监听配置变更
|
|
3055
|
-
const onConfigChange = function(listener) {
|
|
3056
|
-
if (typeof listener === 'function') {
|
|
3057
|
-
configChangeListeners.push(listener)
|
|
3058
|
-
return function() {
|
|
3059
|
-
const index = configChangeListeners.indexOf(listener)
|
|
3060
|
-
if (index > -1) {
|
|
3061
|
-
configChangeListeners.splice(index, 1)
|
|
3062
|
-
}
|
|
3063
|
-
}
|
|
3064
|
-
} else {
|
|
3065
|
-
console.warn('[XtElementUI] onConfigChange 必须传入函数')
|
|
3066
|
-
}
|
|
3067
|
-
}
|
|
3068
|
-
|
|
3069
|
-
// ==================== 数字格式化 ====================
|
|
3070
|
-
|
|
3071
|
-
const formatNumber = function(value, options) {
|
|
3072
|
-
if (value === null || value === undefined || value === '') {
|
|
3073
|
-
return ''
|
|
3074
|
-
}
|
|
3075
|
-
|
|
3076
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3077
|
-
if (isNaN(num)) {
|
|
3078
|
-
return String(value)
|
|
3079
|
-
}
|
|
3080
|
-
|
|
3081
|
-
const opts = Object.assign({
|
|
3082
|
-
decimals: 2,
|
|
3083
|
-
thousand: true,
|
|
3084
|
-
prefix: '',
|
|
3085
|
-
suffix: '',
|
|
3086
|
-
showSign: false
|
|
3087
|
-
}, options || {})
|
|
3088
|
-
|
|
3089
|
-
let result = num.toFixed(opts.decimals)
|
|
3090
|
-
|
|
3091
|
-
if (opts.thousand) {
|
|
3092
|
-
const parts = result.split('.')
|
|
3093
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3094
|
-
result = parts.join('.')
|
|
3095
|
-
}
|
|
3096
|
-
|
|
3097
|
-
if (opts.showSign && num > 0) {
|
|
3098
|
-
result = '+' + result
|
|
3099
|
-
}
|
|
3100
|
-
|
|
3101
|
-
return opts.prefix + result + opts.suffix
|
|
3102
|
-
}
|
|
3103
|
-
|
|
3104
|
-
const formatThousand = function(value, decimals) {
|
|
3105
|
-
return formatNumber(value, {
|
|
3106
|
-
decimals: decimals != null ? decimals : 2,
|
|
3107
|
-
thousand: true
|
|
3108
|
-
})
|
|
3109
|
-
}
|
|
3110
|
-
|
|
3111
|
-
const formatPercent = function(value, decimals) {
|
|
3112
|
-
if (value === null || value === undefined || value === '') {
|
|
3113
|
-
return ''
|
|
3114
|
-
}
|
|
3115
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3116
|
-
if (isNaN(num)) {
|
|
3117
|
-
return String(value)
|
|
3118
|
-
}
|
|
3119
|
-
return formatNumber(num * 100, {
|
|
3120
|
-
decimals: decimals != null ? decimals : 2,
|
|
3121
|
-
thousand: true,
|
|
3122
|
-
suffix: '%'
|
|
3123
|
-
})
|
|
3124
|
-
}
|
|
3125
|
-
|
|
3126
|
-
// ==================== 日期格式化 ====================
|
|
3127
|
-
|
|
3128
|
-
function padZero(num, len) {
|
|
3129
|
-
len = len || 2
|
|
3130
|
-
return String(num).padStart(len, '0')
|
|
3131
|
-
}
|
|
3132
|
-
|
|
3133
|
-
const formatDate = function(date, format) {
|
|
3134
|
-
if (!date) {
|
|
3135
|
-
return ''
|
|
3136
|
-
}
|
|
3137
|
-
|
|
3138
|
-
let d
|
|
3139
|
-
if (date instanceof Date) {
|
|
3140
|
-
d = date
|
|
3141
|
-
} else if (typeof date === 'number') {
|
|
3142
|
-
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3143
|
-
} else if (typeof date === 'string') {
|
|
3144
|
-
date = date.trim()
|
|
3145
|
-
if (/^\d+$/.test(date)) {
|
|
3146
|
-
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3147
|
-
} else {
|
|
3148
|
-
d = new Date(date.replace(/-/g, '/'))
|
|
3149
|
-
}
|
|
3150
|
-
} else {
|
|
3151
|
-
return ''
|
|
3152
|
-
}
|
|
3153
|
-
|
|
3154
|
-
if (isNaN(d.getTime())) {
|
|
3155
|
-
return ''
|
|
3156
|
-
}
|
|
3157
|
-
|
|
3158
|
-
const fmt = format || 'yyyy-MM-dd'
|
|
3159
|
-
const year = d.getFullYear()
|
|
3160
|
-
const month = d.getMonth() + 1
|
|
3161
|
-
const day = d.getDate()
|
|
3162
|
-
const hour = d.getHours()
|
|
3163
|
-
const minute = d.getMinutes()
|
|
3164
|
-
const second = d.getSeconds()
|
|
3165
|
-
const week = d.getDay()
|
|
3166
|
-
|
|
3167
|
-
const weekMap = ['日', '一', '二', '三', '四', '五', '六']
|
|
3168
|
-
|
|
3169
|
-
return fmt
|
|
3170
|
-
.replace('yyyy', year)
|
|
3171
|
-
.replace('MM', padZero(month))
|
|
3172
|
-
.replace('M', month)
|
|
3173
|
-
.replace('dd', padZero(day))
|
|
3174
|
-
.replace('d', day)
|
|
3175
|
-
.replace('HH', padZero(hour))
|
|
3176
|
-
.replace('H', hour)
|
|
3177
|
-
.replace('hh', padZero(hour % 12 || 12))
|
|
3178
|
-
.replace('h', hour % 12 || 12)
|
|
3179
|
-
.replace('mm', padZero(minute))
|
|
3180
|
-
.replace('m', minute)
|
|
3181
|
-
.replace('ss', padZero(second))
|
|
3182
|
-
.replace('s', second)
|
|
3183
|
-
.replace('w', weekMap[week])
|
|
3184
|
-
.replace('W', '星期' + weekMap[week])
|
|
3185
|
-
}
|
|
3186
|
-
|
|
3187
|
-
const formatDateTime = function(date, format) {
|
|
3188
|
-
return formatDate(date, format || 'yyyy-MM-dd HH:mm:ss')
|
|
3189
|
-
}
|
|
3190
|
-
|
|
3191
|
-
const formatTime = function(date, format) {
|
|
3192
|
-
return formatDate(date, format || 'HH:mm:ss')
|
|
3193
|
-
}
|
|
3194
|
-
|
|
3195
|
-
const formatRelativeTime = function(date) {
|
|
3196
|
-
if (!date) {
|
|
3197
|
-
return ''
|
|
3198
|
-
}
|
|
3199
|
-
|
|
3200
|
-
let d
|
|
3201
|
-
if (date instanceof Date) {
|
|
3202
|
-
d = date
|
|
3203
|
-
} else if (typeof date === 'number') {
|
|
3204
|
-
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3205
|
-
} else if (typeof date === 'string') {
|
|
3206
|
-
date = date.trim()
|
|
3207
|
-
if (/^\d+$/.test(date)) {
|
|
3208
|
-
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3209
|
-
} else {
|
|
3210
|
-
d = new Date(date.replace(/-/g, '/'))
|
|
3211
|
-
}
|
|
3212
|
-
} else {
|
|
3213
|
-
return ''
|
|
3214
|
-
}
|
|
3215
|
-
|
|
3216
|
-
if (isNaN(d.getTime())) {
|
|
3217
|
-
return ''
|
|
3218
|
-
}
|
|
3219
|
-
|
|
3220
|
-
const now = new Date()
|
|
3221
|
-
const diff = now.getTime() - d.getTime()
|
|
3222
|
-
const minute = 60 * 1000
|
|
3223
|
-
const hour = 60 * minute
|
|
3224
|
-
const day = 24 * hour
|
|
3225
|
-
const week = 7 * day
|
|
3226
|
-
const month = 30 * day
|
|
3227
|
-
const year = 365 * day
|
|
3228
|
-
|
|
3229
|
-
if (diff < minute) {
|
|
3230
|
-
return '刚刚'
|
|
3231
|
-
} else if (diff < hour) {
|
|
3232
|
-
return Math.floor(diff / minute) + '分钟前'
|
|
3233
|
-
} else if (diff < day) {
|
|
3234
|
-
return Math.floor(diff / hour) + '小时前'
|
|
3235
|
-
} else if (diff < week) {
|
|
3236
|
-
return Math.floor(diff / day) + '天前'
|
|
3237
|
-
} else if (diff < month) {
|
|
3238
|
-
return Math.floor(diff / week) + '周前'
|
|
3239
|
-
} else if (diff < year) {
|
|
3240
|
-
return Math.floor(diff / month) + '个月前'
|
|
3241
|
-
} else {
|
|
3242
|
-
return Math.floor(diff / year) + '年前'
|
|
3243
|
-
}
|
|
3244
|
-
}
|
|
3245
|
-
|
|
3246
|
-
// ==================== 金额格式化 ====================
|
|
3247
|
-
|
|
3248
|
-
const formatMoney = function(value, options) {
|
|
3249
|
-
if (value === null || value === undefined || value === '') {
|
|
3250
|
-
return ''
|
|
3251
|
-
}
|
|
3252
|
-
|
|
3253
|
-
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3254
|
-
if (isNaN(num)) {
|
|
3255
|
-
return String(value)
|
|
3256
|
-
}
|
|
3257
|
-
|
|
3258
|
-
const opts = Object.assign({
|
|
3259
|
-
currency: 'CNY',
|
|
3260
|
-
decimals: 2,
|
|
3261
|
-
prefix: '',
|
|
3262
|
-
suffix: '',
|
|
3263
|
-
showSign: false
|
|
3264
|
-
}, options || {})
|
|
3265
|
-
|
|
3266
|
-
const currencySymbols = {
|
|
3267
|
-
CNY: '¥',
|
|
3268
|
-
USD: '$',
|
|
3269
|
-
EUR: '€',
|
|
3270
|
-
JPY: '¥',
|
|
3271
|
-
GBP: '£',
|
|
3272
|
-
AUD: 'A$',
|
|
3273
|
-
CAD: 'C$'
|
|
3274
|
-
}
|
|
3275
|
-
|
|
3276
|
-
let symbol = currencySymbols[opts.currency] || ''
|
|
3277
|
-
let formatted = num.toFixed(opts.decimals)
|
|
3278
|
-
|
|
3279
|
-
const parts = formatted.split('.')
|
|
3280
|
-
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3281
|
-
formatted = parts.join('.')
|
|
3282
|
-
|
|
3283
|
-
if (opts.showSign && num > 0) {
|
|
3284
|
-
formatted = '+' + formatted
|
|
3285
|
-
}
|
|
3286
|
-
|
|
3287
|
-
if (opts.prefix) {
|
|
3288
|
-
formatted = opts.prefix + formatted
|
|
3289
|
-
}
|
|
3290
|
-
|
|
3291
|
-
if (opts.suffix) {
|
|
3292
|
-
formatted = formatted + opts.suffix
|
|
3293
|
-
}
|
|
3294
|
-
|
|
3295
|
-
return symbol + formatted
|
|
3296
|
-
}
|
|
3297
|
-
|
|
3298
|
-
const formatCNY = function(value, decimals) {
|
|
3299
|
-
return formatMoney(value, {
|
|
3300
|
-
currency: 'CNY',
|
|
3301
|
-
decimals: decimals != null ? decimals : 2
|
|
3302
|
-
})
|
|
3303
|
-
}
|
|
3304
|
-
|
|
3305
|
-
const formatUSD = function(value, decimals) {
|
|
3306
|
-
return formatMoney(value, {
|
|
3307
|
-
currency: 'USD',
|
|
3308
|
-
decimals: decimals != null ? decimals : 2
|
|
3309
|
-
})
|
|
3310
|
-
}
|
|
3311
|
-
|
|
3312
|
-
// ==================== 文件大小格式化 ====================
|
|
3313
|
-
|
|
3314
|
-
const formatFileSize = function(bytes) {
|
|
3315
|
-
if (bytes === null || bytes === undefined || bytes === '') {
|
|
3316
|
-
return ''
|
|
3317
|
-
}
|
|
3318
|
-
|
|
3319
|
-
const num = typeof bytes === 'string' ? parseFloat(bytes) : bytes
|
|
3320
|
-
if (isNaN(num)) {
|
|
3321
|
-
return String(bytes)
|
|
3322
|
-
}
|
|
3323
|
-
|
|
3324
|
-
if (num === 0) {
|
|
3325
|
-
return '0 B'
|
|
3326
|
-
}
|
|
3327
|
-
|
|
3328
|
-
const k = 1024
|
|
3329
|
-
const sizes = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
3330
|
-
const i = Math.floor(Math.log(num) / Math.log(k))
|
|
3331
|
-
|
|
3332
|
-
return parseFloat((num / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
|
|
3333
|
-
}
|
|
3334
|
-
|
|
3335
|
-
/* harmony default export */ var src_utils = ({
|
|
3336
|
-
setTheme,
|
|
3337
|
-
setSize,
|
|
3338
|
-
setPrimaryColor,
|
|
3339
|
-
getConfig,
|
|
3340
|
-
setConfig,
|
|
3341
|
-
getTheme,
|
|
3342
|
-
getSize,
|
|
3343
|
-
getPrimaryColor,
|
|
3344
|
-
resetConfig,
|
|
3345
|
-
onConfigChange,
|
|
3346
|
-
formatNumber,
|
|
3347
|
-
formatThousand,
|
|
3348
|
-
formatPercent,
|
|
3349
|
-
formatDate,
|
|
3350
|
-
formatDateTime,
|
|
3351
|
-
formatTime,
|
|
3352
|
-
formatRelativeTime,
|
|
3353
|
-
formatMoney,
|
|
3354
|
-
formatCNY,
|
|
3355
|
-
formatUSD,
|
|
3356
|
-
formatFileSize
|
|
3357
|
-
});
|
|
3358
3112
|
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
|
|
3116
|
+
const defaultConfig = {
|
|
3117
|
+
theme: 'white',
|
|
3118
|
+
size: 'medium',
|
|
3119
|
+
primaryColor: '#1890ff'
|
|
3120
|
+
}
|
|
3121
|
+
|
|
3122
|
+
let currentConfig = { ...defaultConfig }
|
|
3123
|
+
|
|
3124
|
+
const configChangeListeners = []
|
|
3125
|
+
|
|
3126
|
+
const emitConfigChange = function(key, value) {
|
|
3127
|
+
configChangeListeners.forEach(listener => {
|
|
3128
|
+
listener(key, value)
|
|
3129
|
+
})
|
|
3130
|
+
}
|
|
3131
|
+
|
|
3132
|
+
const getConfig = function() {
|
|
3133
|
+
return { ...currentConfig }
|
|
3134
|
+
}
|
|
3135
|
+
|
|
3136
|
+
const setConfig = function(config) {
|
|
3137
|
+
if (typeof config !== 'object' || config === null) {
|
|
3138
|
+
console.warn('[XtElementUI] setConfig 必须传入对象参数')
|
|
3139
|
+
return
|
|
3140
|
+
}
|
|
3141
|
+
|
|
3142
|
+
if (config.theme !== undefined) {
|
|
3143
|
+
setTheme(config.theme)
|
|
3144
|
+
}
|
|
3145
|
+
if (config.size !== undefined) {
|
|
3146
|
+
setSize(config.size)
|
|
3147
|
+
}
|
|
3148
|
+
if (config.primaryColor !== undefined) {
|
|
3149
|
+
setPrimaryColor(config.primaryColor)
|
|
3150
|
+
}
|
|
3151
|
+
}
|
|
3152
|
+
|
|
3153
|
+
function isBrowser() {
|
|
3154
|
+
return typeof window !== 'undefined' && typeof document !== 'undefined'
|
|
3155
|
+
}
|
|
3156
|
+
|
|
3157
|
+
/**
|
|
3158
|
+
* 设置主题(亮/暗)
|
|
3159
|
+
* 通过 applyThemeVars 统一设置 --el-* CSS 变量,确保组件库和 Element UI 同步响应
|
|
3160
|
+
* 同时设置 --xt-* CSS 变量供 xt 组件使用
|
|
3161
|
+
*/
|
|
3162
|
+
const setTheme = function(theme) {
|
|
3163
|
+
const validThemes = ['white', 'dark']
|
|
3164
|
+
if (!validThemes.includes(theme)) {
|
|
3165
|
+
console.warn(`[XtElementUI] 无效的主题值: ${theme},可选值: ${validThemes.join(', ')}`)
|
|
3166
|
+
return
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
currentConfig.theme = theme
|
|
3170
|
+
|
|
3171
|
+
if (isBrowser()) {
|
|
3172
|
+
const root = document.documentElement
|
|
3173
|
+
|
|
3174
|
+
// 统一通过 applyThemeVars 设置 --el-* 变量
|
|
3175
|
+
applyThemeVars(root, {
|
|
3176
|
+
theme,
|
|
3177
|
+
primaryColor: currentConfig.primaryColor
|
|
3178
|
+
})
|
|
3179
|
+
|
|
3180
|
+
// 同步设置 xt 组件主色变量(--xt-*)
|
|
3181
|
+
const xtVars = generateXtPrimaryColorVars(currentConfig.primaryColor)
|
|
3182
|
+
for (const key in xtVars) {
|
|
3183
|
+
root.style.setProperty(key, xtVars[key])
|
|
3184
|
+
}
|
|
3185
|
+
|
|
3186
|
+
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
3187
|
+
}
|
|
3188
|
+
|
|
3189
|
+
emitConfigChange('theme', theme)
|
|
3190
|
+
}
|
|
3191
|
+
|
|
3192
|
+
const setSize = function(size) {
|
|
3193
|
+
const validSizes = ['small', 'medium', 'large']
|
|
3194
|
+
if (!validSizes.includes(size)) {
|
|
3195
|
+
console.warn(`[XtElementUI] 无效的大小值: ${size},可选值: ${validSizes.join(', ')}`)
|
|
3196
|
+
return
|
|
3197
|
+
}
|
|
3198
|
+
|
|
3199
|
+
currentConfig.size = size
|
|
3200
|
+
|
|
3201
|
+
if (isBrowser()) {
|
|
3202
|
+
document.documentElement.setAttribute('data-size', size)
|
|
3203
|
+
utils.changeAllTheme(currentConfig.theme, currentConfig.size)
|
|
3204
|
+
}
|
|
3205
|
+
|
|
3206
|
+
emitConfigChange('size', size)
|
|
3207
|
+
}
|
|
3208
|
+
|
|
3209
|
+
const setPrimaryColor = function(color) {
|
|
3210
|
+
const colorRegex = /^#[0-9A-Fa-f]{3}$|^#[0-9A-Fa-f]{6}$|^#[0-9A-Fa-f]{8}$/
|
|
3211
|
+
if (!colorRegex.test(color)) {
|
|
3212
|
+
console.warn(`[XtElementUI] 无效的颜色值: ${color},请使用十六进制颜色格式,如 #1890ff`)
|
|
3213
|
+
return
|
|
3214
|
+
}
|
|
3215
|
+
|
|
3216
|
+
let validColor = color
|
|
3217
|
+
if (color.length === 4) {
|
|
3218
|
+
validColor = '#' + color[1] + color[1] + color[2] + color[2] + color[3] + color[3]
|
|
3219
|
+
} else if (color.length === 9) {
|
|
3220
|
+
validColor = color.substring(0, 7)
|
|
3221
|
+
}
|
|
3222
|
+
|
|
3223
|
+
currentConfig.primaryColor = validColor
|
|
3224
|
+
|
|
3225
|
+
if (isBrowser()) {
|
|
3226
|
+
const root = document.documentElement
|
|
3227
|
+
|
|
3228
|
+
// 统一通过 applyThemeVars 设置 --el-* 主色变量
|
|
3229
|
+
applyThemeVars(root, {
|
|
3230
|
+
theme: currentConfig.theme,
|
|
3231
|
+
primaryColor: validColor
|
|
3232
|
+
})
|
|
3233
|
+
|
|
3234
|
+
// 同步设置 xt 组件主色变量(--xt-*)
|
|
3235
|
+
const xtVars = generateXtPrimaryColorVars(validColor)
|
|
3236
|
+
for (const key in xtVars) {
|
|
3237
|
+
root.style.setProperty(key, xtVars[key])
|
|
3238
|
+
}
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3241
|
+
emitConfigChange('primaryColor', validColor)
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
// 获取当前主题
|
|
3245
|
+
const getTheme = function() {
|
|
3246
|
+
return currentConfig.theme
|
|
3247
|
+
}
|
|
3248
|
+
|
|
3249
|
+
// 获取当前字体大小
|
|
3250
|
+
const getSize = function() {
|
|
3251
|
+
return currentConfig.size
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
// 获取当前主色调
|
|
3255
|
+
const getPrimaryColor = function() {
|
|
3256
|
+
return currentConfig.primaryColor
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
// 重置为默认配置
|
|
3260
|
+
const resetConfig = function() {
|
|
3261
|
+
setConfig(defaultConfig)
|
|
3262
|
+
}
|
|
3263
|
+
|
|
3264
|
+
// 监听配置变更
|
|
3265
|
+
const onConfigChange = function(listener) {
|
|
3266
|
+
if (typeof listener === 'function') {
|
|
3267
|
+
configChangeListeners.push(listener)
|
|
3268
|
+
return function() {
|
|
3269
|
+
const index = configChangeListeners.indexOf(listener)
|
|
3270
|
+
if (index > -1) {
|
|
3271
|
+
configChangeListeners.splice(index, 1)
|
|
3272
|
+
}
|
|
3273
|
+
}
|
|
3274
|
+
} else {
|
|
3275
|
+
console.warn('[XtElementUI] onConfigChange 必须传入函数')
|
|
3276
|
+
}
|
|
3277
|
+
}
|
|
3278
|
+
|
|
3279
|
+
// ==================== 数字格式化 ====================
|
|
3280
|
+
|
|
3281
|
+
const formatNumber = function(value, options) {
|
|
3282
|
+
if (value === null || value === undefined || value === '') {
|
|
3283
|
+
return ''
|
|
3284
|
+
}
|
|
3285
|
+
|
|
3286
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3287
|
+
if (isNaN(num)) {
|
|
3288
|
+
return String(value)
|
|
3289
|
+
}
|
|
3290
|
+
|
|
3291
|
+
const opts = Object.assign({
|
|
3292
|
+
decimals: 2,
|
|
3293
|
+
thousand: true,
|
|
3294
|
+
prefix: '',
|
|
3295
|
+
suffix: '',
|
|
3296
|
+
showSign: false
|
|
3297
|
+
}, options || {})
|
|
3298
|
+
|
|
3299
|
+
let result = num.toFixed(opts.decimals)
|
|
3300
|
+
|
|
3301
|
+
if (opts.thousand) {
|
|
3302
|
+
const parts = result.split('.')
|
|
3303
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3304
|
+
result = parts.join('.')
|
|
3305
|
+
}
|
|
3306
|
+
|
|
3307
|
+
if (opts.showSign && num > 0) {
|
|
3308
|
+
result = '+' + result
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
return opts.prefix + result + opts.suffix
|
|
3312
|
+
}
|
|
3313
|
+
|
|
3314
|
+
const formatThousand = function(value, decimals) {
|
|
3315
|
+
return formatNumber(value, {
|
|
3316
|
+
decimals: decimals != null ? decimals : 2,
|
|
3317
|
+
thousand: true
|
|
3318
|
+
})
|
|
3319
|
+
}
|
|
3320
|
+
|
|
3321
|
+
const formatPercent = function(value, decimals) {
|
|
3322
|
+
if (value === null || value === undefined || value === '') {
|
|
3323
|
+
return ''
|
|
3324
|
+
}
|
|
3325
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3326
|
+
if (isNaN(num)) {
|
|
3327
|
+
return String(value)
|
|
3328
|
+
}
|
|
3329
|
+
return formatNumber(num * 100, {
|
|
3330
|
+
decimals: decimals != null ? decimals : 2,
|
|
3331
|
+
thousand: true,
|
|
3332
|
+
suffix: '%'
|
|
3333
|
+
})
|
|
3334
|
+
}
|
|
3335
|
+
|
|
3336
|
+
// ==================== 日期格式化 ====================
|
|
3337
|
+
|
|
3338
|
+
function padZero(num, len) {
|
|
3339
|
+
len = len || 2
|
|
3340
|
+
return String(num).padStart(len, '0')
|
|
3341
|
+
}
|
|
3342
|
+
|
|
3343
|
+
const formatDate = function(date, format) {
|
|
3344
|
+
if (!date) {
|
|
3345
|
+
return ''
|
|
3346
|
+
}
|
|
3347
|
+
|
|
3348
|
+
let d
|
|
3349
|
+
if (date instanceof Date) {
|
|
3350
|
+
d = date
|
|
3351
|
+
} else if (typeof date === 'number') {
|
|
3352
|
+
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3353
|
+
} else if (typeof date === 'string') {
|
|
3354
|
+
date = date.trim()
|
|
3355
|
+
if (/^\d+$/.test(date)) {
|
|
3356
|
+
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3357
|
+
} else {
|
|
3358
|
+
d = new Date(date.replace(/-/g, '/'))
|
|
3359
|
+
}
|
|
3360
|
+
} else {
|
|
3361
|
+
return ''
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
if (isNaN(d.getTime())) {
|
|
3365
|
+
return ''
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
const fmt = format || 'yyyy-MM-dd'
|
|
3369
|
+
const year = d.getFullYear()
|
|
3370
|
+
const month = d.getMonth() + 1
|
|
3371
|
+
const day = d.getDate()
|
|
3372
|
+
const hour = d.getHours()
|
|
3373
|
+
const minute = d.getMinutes()
|
|
3374
|
+
const second = d.getSeconds()
|
|
3375
|
+
const week = d.getDay()
|
|
3376
|
+
|
|
3377
|
+
const weekMap = ['日', '一', '二', '三', '四', '五', '六']
|
|
3378
|
+
|
|
3379
|
+
return fmt
|
|
3380
|
+
.replace('yyyy', year)
|
|
3381
|
+
.replace('MM', padZero(month))
|
|
3382
|
+
.replace('M', month)
|
|
3383
|
+
.replace('dd', padZero(day))
|
|
3384
|
+
.replace('d', day)
|
|
3385
|
+
.replace('HH', padZero(hour))
|
|
3386
|
+
.replace('H', hour)
|
|
3387
|
+
.replace('hh', padZero(hour % 12 || 12))
|
|
3388
|
+
.replace('h', hour % 12 || 12)
|
|
3389
|
+
.replace('mm', padZero(minute))
|
|
3390
|
+
.replace('m', minute)
|
|
3391
|
+
.replace('ss', padZero(second))
|
|
3392
|
+
.replace('s', second)
|
|
3393
|
+
.replace('w', weekMap[week])
|
|
3394
|
+
.replace('W', '星期' + weekMap[week])
|
|
3395
|
+
}
|
|
3396
|
+
|
|
3397
|
+
const formatDateTime = function(date, format) {
|
|
3398
|
+
return formatDate(date, format || 'yyyy-MM-dd HH:mm:ss')
|
|
3399
|
+
}
|
|
3400
|
+
|
|
3401
|
+
const formatTime = function(date, format) {
|
|
3402
|
+
return formatDate(date, format || 'HH:mm:ss')
|
|
3403
|
+
}
|
|
3404
|
+
|
|
3405
|
+
const formatRelativeTime = function(date) {
|
|
3406
|
+
if (!date) {
|
|
3407
|
+
return ''
|
|
3408
|
+
}
|
|
3409
|
+
|
|
3410
|
+
let d
|
|
3411
|
+
if (date instanceof Date) {
|
|
3412
|
+
d = date
|
|
3413
|
+
} else if (typeof date === 'number') {
|
|
3414
|
+
d = new Date(date.toString().length === 10 ? date * 1000 : date)
|
|
3415
|
+
} else if (typeof date === 'string') {
|
|
3416
|
+
date = date.trim()
|
|
3417
|
+
if (/^\d+$/.test(date)) {
|
|
3418
|
+
d = new Date(date.length === 10 ? parseInt(date) * 1000 : parseInt(date))
|
|
3419
|
+
} else {
|
|
3420
|
+
d = new Date(date.replace(/-/g, '/'))
|
|
3421
|
+
}
|
|
3422
|
+
} else {
|
|
3423
|
+
return ''
|
|
3424
|
+
}
|
|
3425
|
+
|
|
3426
|
+
if (isNaN(d.getTime())) {
|
|
3427
|
+
return ''
|
|
3428
|
+
}
|
|
3429
|
+
|
|
3430
|
+
const now = new Date()
|
|
3431
|
+
const diff = now.getTime() - d.getTime()
|
|
3432
|
+
const minute = 60 * 1000
|
|
3433
|
+
const hour = 60 * minute
|
|
3434
|
+
const day = 24 * hour
|
|
3435
|
+
const week = 7 * day
|
|
3436
|
+
const month = 30 * day
|
|
3437
|
+
const year = 365 * day
|
|
3438
|
+
|
|
3439
|
+
if (diff < minute) {
|
|
3440
|
+
return '刚刚'
|
|
3441
|
+
} else if (diff < hour) {
|
|
3442
|
+
return Math.floor(diff / minute) + '分钟前'
|
|
3443
|
+
} else if (diff < day) {
|
|
3444
|
+
return Math.floor(diff / hour) + '小时前'
|
|
3445
|
+
} else if (diff < week) {
|
|
3446
|
+
return Math.floor(diff / day) + '天前'
|
|
3447
|
+
} else if (diff < month) {
|
|
3448
|
+
return Math.floor(diff / week) + '周前'
|
|
3449
|
+
} else if (diff < year) {
|
|
3450
|
+
return Math.floor(diff / month) + '个月前'
|
|
3451
|
+
} else {
|
|
3452
|
+
return Math.floor(diff / year) + '年前'
|
|
3453
|
+
}
|
|
3454
|
+
}
|
|
3455
|
+
|
|
3456
|
+
// ==================== 金额格式化 ====================
|
|
3457
|
+
|
|
3458
|
+
const formatMoney = function(value, options) {
|
|
3459
|
+
if (value === null || value === undefined || value === '') {
|
|
3460
|
+
return ''
|
|
3461
|
+
}
|
|
3462
|
+
|
|
3463
|
+
const num = typeof value === 'string' ? parseFloat(value) : value
|
|
3464
|
+
if (isNaN(num)) {
|
|
3465
|
+
return String(value)
|
|
3466
|
+
}
|
|
3467
|
+
|
|
3468
|
+
const opts = Object.assign({
|
|
3469
|
+
currency: 'CNY',
|
|
3470
|
+
decimals: 2,
|
|
3471
|
+
prefix: '',
|
|
3472
|
+
suffix: '',
|
|
3473
|
+
showSign: false
|
|
3474
|
+
}, options || {})
|
|
3475
|
+
|
|
3476
|
+
const currencySymbols = {
|
|
3477
|
+
CNY: '¥',
|
|
3478
|
+
USD: '$',
|
|
3479
|
+
EUR: '€',
|
|
3480
|
+
JPY: '¥',
|
|
3481
|
+
GBP: '£',
|
|
3482
|
+
AUD: 'A$',
|
|
3483
|
+
CAD: 'C$'
|
|
3484
|
+
}
|
|
3485
|
+
|
|
3486
|
+
let symbol = currencySymbols[opts.currency] || ''
|
|
3487
|
+
let formatted = num.toFixed(opts.decimals)
|
|
3488
|
+
|
|
3489
|
+
const parts = formatted.split('.')
|
|
3490
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',')
|
|
3491
|
+
formatted = parts.join('.')
|
|
3492
|
+
|
|
3493
|
+
if (opts.showSign && num > 0) {
|
|
3494
|
+
formatted = '+' + formatted
|
|
3495
|
+
}
|
|
3496
|
+
|
|
3497
|
+
if (opts.prefix) {
|
|
3498
|
+
formatted = opts.prefix + formatted
|
|
3499
|
+
}
|
|
3500
|
+
|
|
3501
|
+
if (opts.suffix) {
|
|
3502
|
+
formatted = formatted + opts.suffix
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
return symbol + formatted
|
|
3506
|
+
}
|
|
3507
|
+
|
|
3508
|
+
const formatCNY = function(value, decimals) {
|
|
3509
|
+
return formatMoney(value, {
|
|
3510
|
+
currency: 'CNY',
|
|
3511
|
+
decimals: decimals != null ? decimals : 2
|
|
3512
|
+
})
|
|
3513
|
+
}
|
|
3514
|
+
|
|
3515
|
+
const formatUSD = function(value, decimals) {
|
|
3516
|
+
return formatMoney(value, {
|
|
3517
|
+
currency: 'USD',
|
|
3518
|
+
decimals: decimals != null ? decimals : 2
|
|
3519
|
+
})
|
|
3520
|
+
}
|
|
3521
|
+
|
|
3522
|
+
// ==================== 文件大小格式化 ====================
|
|
3523
|
+
|
|
3524
|
+
const formatFileSize = function(bytes) {
|
|
3525
|
+
if (bytes === null || bytes === undefined || bytes === '') {
|
|
3526
|
+
return ''
|
|
3527
|
+
}
|
|
3528
|
+
|
|
3529
|
+
const num = typeof bytes === 'string' ? parseFloat(bytes) : bytes
|
|
3530
|
+
if (isNaN(num)) {
|
|
3531
|
+
return String(bytes)
|
|
3532
|
+
}
|
|
3533
|
+
|
|
3534
|
+
if (num === 0) {
|
|
3535
|
+
return '0 B'
|
|
3536
|
+
}
|
|
3537
|
+
|
|
3538
|
+
const k = 1024
|
|
3539
|
+
const sizes = ['B', 'KB', 'MB', 'GB', 'TB']
|
|
3540
|
+
const i = Math.floor(Math.log(num) / Math.log(k))
|
|
3541
|
+
|
|
3542
|
+
return parseFloat((num / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
|
|
3543
|
+
}
|
|
3544
|
+
|
|
3545
|
+
/* harmony default export */ var src_utils = ({
|
|
3546
|
+
setTheme,
|
|
3547
|
+
setSize,
|
|
3548
|
+
setPrimaryColor,
|
|
3549
|
+
getConfig,
|
|
3550
|
+
setConfig,
|
|
3551
|
+
getTheme,
|
|
3552
|
+
getSize,
|
|
3553
|
+
getPrimaryColor,
|
|
3554
|
+
resetConfig,
|
|
3555
|
+
onConfigChange,
|
|
3556
|
+
formatNumber,
|
|
3557
|
+
formatThousand,
|
|
3558
|
+
formatPercent,
|
|
3559
|
+
formatDate,
|
|
3560
|
+
formatDateTime,
|
|
3561
|
+
formatTime,
|
|
3562
|
+
formatRelativeTime,
|
|
3563
|
+
formatMoney,
|
|
3564
|
+
formatCNY,
|
|
3565
|
+
formatUSD,
|
|
3566
|
+
formatFileSize
|
|
3567
|
+
});
|
|
3359
3568
|
// EXTERNAL MODULE: ./src/components/xt-button/style/index.scss
|
|
3360
3569
|
var xt_button_style = __webpack_require__("0ba5");
|
|
3361
3570
|
|
|
3362
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
3571
|
+
// 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
|
|
3363
3572
|
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)
|
|
3364
3573
|
}
|
|
3365
3574
|
var staticRenderFns = []
|
|
@@ -3468,7 +3677,7 @@ xt_button.install = function (Vue) {
|
|
|
3468
3677
|
// EXTERNAL MODULE: ./src/components/xt-input/style/index.scss
|
|
3469
3678
|
var xt_input_style = __webpack_require__("0563");
|
|
3470
3679
|
|
|
3471
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
3680
|
+
// 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
|
|
3472
3681
|
var xt_inputvue_type_template_id_6a24ab05_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-input",class:[
|
|
3473
3682
|
_vm.size ? 'xt-input--' + _vm.size : '',
|
|
3474
3683
|
{ 'is-disabled': _vm.disabled },
|
|
@@ -3822,7 +4031,7 @@ xt_input.install = function (Vue) {
|
|
|
3822
4031
|
// EXTERNAL MODULE: ./src/components/xt-flex-box/style/index.scss
|
|
3823
4032
|
var xt_flex_box_style = __webpack_require__("5820");
|
|
3824
4033
|
|
|
3825
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4034
|
+
// 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
|
|
3826
4035
|
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)
|
|
3827
4036
|
}
|
|
3828
4037
|
var xt_flex_boxvue_type_template_id_5dab0d2a_staticRenderFns = []
|
|
@@ -3895,7 +4104,7 @@ xt_flex_box.install = function (Vue) {
|
|
|
3895
4104
|
// EXTERNAL MODULE: ./src/components/xt-card/style/index.scss
|
|
3896
4105
|
var xt_card_style = __webpack_require__("419e");
|
|
3897
4106
|
|
|
3898
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4107
|
+
// 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
|
|
3899
4108
|
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)
|
|
3900
4109
|
}
|
|
3901
4110
|
var xt_cardvue_type_template_id_27e108a6_staticRenderFns = []
|
|
@@ -3993,7 +4202,7 @@ xt_card.install = function (Vue) {
|
|
|
3993
4202
|
// EXTERNAL MODULE: ./src/components/xt-card-item/style/index.scss
|
|
3994
4203
|
var xt_card_item_style = __webpack_require__("c1e7");
|
|
3995
4204
|
|
|
3996
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4205
|
+
// 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
|
|
3997
4206
|
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)
|
|
3998
4207
|
}
|
|
3999
4208
|
var xt_card_itemvue_type_template_id_d091942c_staticRenderFns = []
|
|
@@ -4456,7 +4665,7 @@ xt_config_provider.install = function (Vue) {
|
|
|
4456
4665
|
// EXTERNAL MODULE: ./src/components/xt-text/style/index.scss
|
|
4457
4666
|
var xt_text_style = __webpack_require__("86ae");
|
|
4458
4667
|
|
|
4459
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4668
|
+
// 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
|
|
4460
4669
|
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:[
|
|
4461
4670
|
_vm.type ? 'xt-text--' + _vm.type : '',
|
|
4462
4671
|
'xt-text--' + _vm.size,
|
|
@@ -4765,7 +4974,7 @@ xt_text.install = function (Vue) {
|
|
|
4765
4974
|
// EXTERNAL MODULE: ./src/components/xt-time/style/index.scss
|
|
4766
4975
|
var xt_time_style = __webpack_require__("6c9e");
|
|
4767
4976
|
|
|
4768
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
4977
|
+
// 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
|
|
4769
4978
|
var xt_timevue_type_template_id_d29acf2c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-time",class:[
|
|
4770
4979
|
_vm.typeColor ? 'xt-time--' + _vm.typeColor : '',
|
|
4771
4980
|
'xt-time--' + _vm.size,
|
|
@@ -5090,7 +5299,7 @@ xt_time.install = function (Vue) {
|
|
|
5090
5299
|
// EXTERNAL MODULE: ./src/components/xt-step-price/style/index.scss
|
|
5091
5300
|
var xt_step_price_style = __webpack_require__("fd93");
|
|
5092
5301
|
|
|
5093
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5302
|
+
// 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
|
|
5094
5303
|
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()])
|
|
5095
5304
|
}
|
|
5096
5305
|
var xt_step_pricevue_type_template_id_0cb332f3_staticRenderFns = []
|
|
@@ -5098,7 +5307,7 @@ var xt_step_pricevue_type_template_id_0cb332f3_staticRenderFns = []
|
|
|
5098
5307
|
|
|
5099
5308
|
// CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=0cb332f3
|
|
5100
5309
|
|
|
5101
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5310
|
+
// 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
|
|
5102
5311
|
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)
|
|
5103
5312
|
}
|
|
5104
5313
|
var xt_step_price_itemvue_type_template_id_4d5bb3b1_staticRenderFns = []
|
|
@@ -5668,7 +5877,7 @@ xt_step_price_item.install = function (Vue) {
|
|
|
5668
5877
|
// EXTERNAL MODULE: ./src/components/xt-map/style/index.scss
|
|
5669
5878
|
var xt_map_style = __webpack_require__("c759");
|
|
5670
5879
|
|
|
5671
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
5880
|
+
// 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
|
|
5672
5881
|
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)
|
|
5673
5882
|
}
|
|
5674
5883
|
var xt_mapvue_type_template_id_0c15823e_staticRenderFns = []
|
|
@@ -7386,7 +7595,7 @@ xt_map.install = function (Vue) {
|
|
|
7386
7595
|
/* harmony default export */ var components_xt_map = (xt_map);
|
|
7387
7596
|
|
|
7388
7597
|
|
|
7389
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7598
|
+
// 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
|
|
7390
7599
|
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)
|
|
7391
7600
|
}
|
|
7392
7601
|
var providervue_type_template_id_16f243b0_scoped_true_staticRenderFns = []
|
|
@@ -7593,7 +7802,7 @@ xt_map_provider.install = function (Vue) {
|
|
|
7593
7802
|
// EXTERNAL MODULE: ./src/components/xt-grid-box/style/index.scss
|
|
7594
7803
|
var xt_grid_box_style = __webpack_require__("4202");
|
|
7595
7804
|
|
|
7596
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7805
|
+
// 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
|
|
7597
7806
|
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)
|
|
7598
7807
|
}
|
|
7599
7808
|
var xt_grid_boxvue_type_template_id_67e197c4_staticRenderFns = []
|
|
@@ -7764,7 +7973,7 @@ xt_grid_box.install = function (Vue) {
|
|
|
7764
7973
|
/* harmony default export */ var components_xt_grid_box = (xt_grid_box);
|
|
7765
7974
|
|
|
7766
7975
|
|
|
7767
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
7976
|
+
// 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
|
|
7768
7977
|
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)
|
|
7769
7978
|
}
|
|
7770
7979
|
var xt_grid_itemvue_type_template_id_160dc1ff_scoped_true_staticRenderFns = []
|
|
@@ -7907,7 +8116,7 @@ xt_grid_item.install = function (Vue) {
|
|
|
7907
8116
|
// EXTERNAL MODULE: ./src/components/xt-progress/style/index.scss
|
|
7908
8117
|
var xt_progress_style = __webpack_require__("2e12");
|
|
7909
8118
|
|
|
7910
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8119
|
+
// 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
|
|
7911
8120
|
var xt_progressvue_type_template_id_76c95a92_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-progress",class:[
|
|
7912
8121
|
`xt-progress--${_vm.type}`,
|
|
7913
8122
|
`xt-progress--${_vm.size}`
|
|
@@ -8004,7 +8213,7 @@ xt_progress.install = function(Vue) {
|
|
|
8004
8213
|
|
|
8005
8214
|
/* harmony default export */ var components_xt_progress = (xt_progress);
|
|
8006
8215
|
|
|
8007
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8216
|
+
// 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
|
|
8008
8217
|
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)
|
|
8009
8218
|
}
|
|
8010
8219
|
var xt_tab_panevue_type_template_id_77ab429e_staticRenderFns = []
|
|
@@ -8093,7 +8302,7 @@ xt_tab_pane.install = function(Vue) {
|
|
|
8093
8302
|
// EXTERNAL MODULE: ./src/components/xt-tabs/style/index.scss
|
|
8094
8303
|
var xt_tabs_style = __webpack_require__("e8d2");
|
|
8095
8304
|
|
|
8096
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8305
|
+
// 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
|
|
8097
8306
|
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:[
|
|
8098
8307
|
`xt-tabs--${_vm.actualPosition}`,
|
|
8099
8308
|
{ 'xt-tabs--card': _vm.type === 'card' },
|
|
@@ -8304,7 +8513,7 @@ xt_tabs.install = function(Vue) {
|
|
|
8304
8513
|
// EXTERNAL MODULE: ./src/components/xt-badge/style/index.scss
|
|
8305
8514
|
var xt_badge_style = __webpack_require__("bf3f");
|
|
8306
8515
|
|
|
8307
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8516
|
+
// 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
|
|
8308
8517
|
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()])
|
|
8309
8518
|
}
|
|
8310
8519
|
var xt_badgevue_type_template_id_3f0a6b4e_staticRenderFns = []
|
|
@@ -8412,7 +8621,7 @@ xt_badge.install = function(Vue) {
|
|
|
8412
8621
|
// EXTERNAL MODULE: ./src/components/xt-date-picker/style/index.scss
|
|
8413
8622
|
var xt_date_picker_style = __webpack_require__("c828");
|
|
8414
8623
|
|
|
8415
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8624
|
+
// 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
|
|
8416
8625
|
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)])
|
|
8417
8626
|
}
|
|
8418
8627
|
var xt_date_pickervue_type_template_id_7f82fa36_staticRenderFns = []
|
|
@@ -8645,7 +8854,7 @@ xt_date_picker.install = function (Vue) {
|
|
|
8645
8854
|
|
|
8646
8855
|
/* harmony default export */ var components_xt_date_picker = (xt_date_picker);
|
|
8647
8856
|
|
|
8648
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8857
|
+
// 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
|
|
8649
8858
|
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()
|
|
8650
8859
|
}
|
|
8651
8860
|
var xt_chartvue_type_template_id_fcb32ff2_staticRenderFns = []
|
|
@@ -8653,7 +8862,7 @@ var xt_chartvue_type_template_id_fcb32ff2_staticRenderFns = []
|
|
|
8653
8862
|
|
|
8654
8863
|
// CONCATENATED MODULE: ./src/components/xt-chart/index.vue?vue&type=template&id=fcb32ff2
|
|
8655
8864
|
|
|
8656
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
8865
|
+
// 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
|
|
8657
8866
|
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)})
|
|
8658
8867
|
}
|
|
8659
8868
|
var XtBarvue_type_template_id_5705d26c_scoped_true_staticRenderFns = []
|
|
@@ -8909,7 +9118,7 @@ var XtBar_component = Object(componentNormalizer["a" /* default */])(
|
|
|
8909
9118
|
)
|
|
8910
9119
|
|
|
8911
9120
|
/* harmony default export */ var XtBar = (XtBar_component.exports);
|
|
8912
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9121
|
+
// 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
|
|
8913
9122
|
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)})
|
|
8914
9123
|
}
|
|
8915
9124
|
var XtLinevue_type_template_id_ee5ba2d8_scoped_true_staticRenderFns = []
|
|
@@ -9117,7 +9326,7 @@ var XtLine_component = Object(componentNormalizer["a" /* default */])(
|
|
|
9117
9326
|
)
|
|
9118
9327
|
|
|
9119
9328
|
/* harmony default export */ var XtLine = (XtLine_component.exports);
|
|
9120
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9329
|
+
// 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
|
|
9121
9330
|
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)})
|
|
9122
9331
|
}
|
|
9123
9332
|
var XtPievue_type_template_id_504b3110_scoped_true_staticRenderFns = []
|
|
@@ -9339,7 +9548,7 @@ var XtPie_component = Object(componentNormalizer["a" /* default */])(
|
|
|
9339
9548
|
)
|
|
9340
9549
|
|
|
9341
9550
|
/* harmony default export */ var XtPie = (XtPie_component.exports);
|
|
9342
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
9551
|
+
// 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
|
|
9343
9552
|
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)})
|
|
9344
9553
|
}
|
|
9345
9554
|
var XtMultivue_type_template_id_2957321d_scoped_true_staticRenderFns = []
|
|
@@ -9806,7 +10015,7 @@ xt_chart.install = function (Vue) {
|
|
|
9806
10015
|
// EXTERNAL MODULE: ./src/components/xt-icon/style/index.scss
|
|
9807
10016
|
var xt_icon_style = __webpack_require__("1f11");
|
|
9808
10017
|
|
|
9809
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10018
|
+
// 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
|
|
9810
10019
|
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)
|
|
9811
10020
|
}
|
|
9812
10021
|
var xt_iconvue_type_template_id_0e301b72_scoped_true_staticRenderFns = []
|
|
@@ -9985,7 +10194,7 @@ xt_icon.install = function (Vue) {
|
|
|
9985
10194
|
|
|
9986
10195
|
/* harmony default export */ var components_xt_icon = (xt_icon);
|
|
9987
10196
|
|
|
9988
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10197
|
+
// 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
|
|
9989
10198
|
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()])
|
|
9990
10199
|
}
|
|
9991
10200
|
var xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns = []
|
|
@@ -10039,7 +10248,7 @@ var XtTableCell_component = Object(componentNormalizer["a" /* default */])(
|
|
|
10039
10248
|
)
|
|
10040
10249
|
|
|
10041
10250
|
/* harmony default export */ var XtTableCell = (XtTableCell_component.exports);
|
|
10042
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
10251
|
+
// 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
|
|
10043
10252
|
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)
|
|
10044
10253
|
}
|
|
10045
10254
|
var VirtualElTablevue_type_template_id_01f7dcee_scoped_true_staticRenderFns = []
|
|
@@ -10732,43 +10941,370 @@ var xt_tablevue_type_style_index_0_id_39458c28_prod_scoped_true_lang_css = __web
|
|
|
10732
10941
|
|
|
10733
10942
|
/* normalize component */
|
|
10734
10943
|
|
|
10735
|
-
var xt_table_component = Object(componentNormalizer["a" /* default */])(
|
|
10736
|
-
components_xt_tablevue_type_script_lang_js,
|
|
10737
|
-
xt_tablevue_type_template_id_39458c28_scoped_true_render,
|
|
10738
|
-
xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns,
|
|
10944
|
+
var xt_table_component = Object(componentNormalizer["a" /* default */])(
|
|
10945
|
+
components_xt_tablevue_type_script_lang_js,
|
|
10946
|
+
xt_tablevue_type_template_id_39458c28_scoped_true_render,
|
|
10947
|
+
xt_tablevue_type_template_id_39458c28_scoped_true_staticRenderFns,
|
|
10948
|
+
false,
|
|
10949
|
+
null,
|
|
10950
|
+
"39458c28",
|
|
10951
|
+
null
|
|
10952
|
+
|
|
10953
|
+
)
|
|
10954
|
+
|
|
10955
|
+
/* harmony default export */ var xt_table = (xt_table_component.exports);
|
|
10956
|
+
// CONCATENATED MODULE: ./src/components/xt-table/index.js
|
|
10957
|
+
|
|
10958
|
+
|
|
10959
|
+
xt_table.install = function (Vue) {
|
|
10960
|
+
Vue.component(xt_table.name, xt_table)
|
|
10961
|
+
}
|
|
10962
|
+
|
|
10963
|
+
/* harmony default export */ var components_xt_table = (xt_table);
|
|
10964
|
+
|
|
10965
|
+
// 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
|
|
10966
|
+
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)
|
|
10967
|
+
}
|
|
10968
|
+
var xt_listvue_type_template_id_084d1476_scoped_true_staticRenderFns = []
|
|
10969
|
+
|
|
10970
|
+
|
|
10971
|
+
// CONCATENATED MODULE: ./src/components/xt-list/index.vue?vue&type=template&id=084d1476&scoped=true
|
|
10972
|
+
|
|
10973
|
+
// EXTERNAL MODULE: ./src/components/xt-scroll/style/index.scss
|
|
10974
|
+
var xt_scroll_style = __webpack_require__("f699");
|
|
10975
|
+
|
|
10976
|
+
// 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
|
|
10977
|
+
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()])])
|
|
10978
|
+
}
|
|
10979
|
+
var xt_scrollvue_type_template_id_74170e40_staticRenderFns = []
|
|
10980
|
+
|
|
10981
|
+
|
|
10982
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue?vue&type=template&id=74170e40
|
|
10983
|
+
|
|
10984
|
+
// 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
|
|
10985
|
+
|
|
10986
|
+
/* harmony default export */ var xt_scrollvue_type_script_lang_js = ({
|
|
10987
|
+
name: 'XtScroll',
|
|
10988
|
+
|
|
10989
|
+
props: {
|
|
10990
|
+
// ========== 虚拟滚动配置 ==========
|
|
10991
|
+
/** 是否启用虚拟滚动 */
|
|
10992
|
+
vScroll: { type: Boolean, default: false },
|
|
10993
|
+
/** 数据源 */
|
|
10994
|
+
data: { type: Array, default: () => [] },
|
|
10995
|
+
/** 每个 item 的固定尺寸(px),纵向为高度,横向为宽度 */
|
|
10996
|
+
itemSize: { type: Number, default: 50 },
|
|
10997
|
+
/** item 的唯一键字段名 */
|
|
10998
|
+
keyField: { type: String, default: 'id' },
|
|
10999
|
+
/** 预渲染缓冲区大小(item 数量) */
|
|
11000
|
+
bufferSize: { type: Number, default: 5 },
|
|
11001
|
+
/** 虚拟滚动方向 */
|
|
11002
|
+
scrollDirection: {
|
|
11003
|
+
type: String,
|
|
11004
|
+
default: 'vertical',
|
|
11005
|
+
validator: (v) => ['vertical', 'horizontal'].includes(v)
|
|
11006
|
+
},
|
|
11007
|
+
/** item 的自定义 CSS 类名 */
|
|
11008
|
+
itemClassName: { type: String, default: '' },
|
|
11009
|
+
|
|
11010
|
+
// ========== 容器尺寸 ==========
|
|
11011
|
+
height: { type: [Number, String], default: '' },
|
|
11012
|
+
maxHeight: { type: [Number, String], default: '' },
|
|
11013
|
+
width: { type: [Number, String], default: '' },
|
|
11014
|
+
maxWidth: { type: [Number, String], default: '' },
|
|
11015
|
+
|
|
11016
|
+
// ========== 状态 ==========
|
|
11017
|
+
loading: { type: Boolean, default: false },
|
|
11018
|
+
emptyText: { type: String, default: '暂无数据' },
|
|
11019
|
+
|
|
11020
|
+
// ========== 加载更多 ==========
|
|
11021
|
+
loadMore: { type: Boolean, default: false },
|
|
11022
|
+
loadMoreText: { type: String, default: '加载更多' },
|
|
11023
|
+
loadMoreLoading: { type: Boolean, default: false }
|
|
11024
|
+
},
|
|
11025
|
+
|
|
11026
|
+
data() {
|
|
11027
|
+
return {
|
|
11028
|
+
scrollPos: 0,
|
|
11029
|
+
containerSize: 0,
|
|
11030
|
+
resizeObserver: null,
|
|
11031
|
+
rafId: null
|
|
11032
|
+
}
|
|
11033
|
+
},
|
|
11034
|
+
|
|
11035
|
+
computed: {
|
|
11036
|
+
containerStyle() {
|
|
11037
|
+
const style = {}
|
|
11038
|
+
if (this.height) {
|
|
11039
|
+
style.height = typeof this.height === 'number' ? this.height + 'px' : this.height
|
|
11040
|
+
}
|
|
11041
|
+
if (this.maxHeight) {
|
|
11042
|
+
style.maxHeight = typeof this.maxHeight === 'number' ? this.maxHeight + 'px' : this.maxHeight
|
|
11043
|
+
}
|
|
11044
|
+
if (this.width) {
|
|
11045
|
+
style.width = typeof this.width === 'number' ? this.width + 'px' : this.width
|
|
11046
|
+
}
|
|
11047
|
+
if (this.maxWidth) {
|
|
11048
|
+
style.maxWidth = typeof this.maxWidth === 'number' ? this.maxWidth + 'px' : this.maxWidth
|
|
11049
|
+
}
|
|
11050
|
+
return style
|
|
11051
|
+
},
|
|
11052
|
+
|
|
11053
|
+
virtualWrapperStyle() {
|
|
11054
|
+
const style = {}
|
|
11055
|
+
if (this.scrollDirection === 'horizontal') {
|
|
11056
|
+
style.height = '100%'
|
|
11057
|
+
}
|
|
11058
|
+
return style
|
|
11059
|
+
},
|
|
11060
|
+
|
|
11061
|
+
itemStyle() {
|
|
11062
|
+
return this.scrollDirection === 'vertical'
|
|
11063
|
+
? { height: this.itemSize + 'px' }
|
|
11064
|
+
: { width: this.itemSize + 'px', display: 'inline-block' }
|
|
11065
|
+
},
|
|
11066
|
+
|
|
11067
|
+
/** 数据总条数 */
|
|
11068
|
+
dataCount() {
|
|
11069
|
+
return (this.data && this.data.length) || 0
|
|
11070
|
+
},
|
|
11071
|
+
|
|
11072
|
+
/** 总滚动尺寸 */
|
|
11073
|
+
totalSize() {
|
|
11074
|
+
return this.dataCount * this.itemSize
|
|
11075
|
+
},
|
|
11076
|
+
|
|
11077
|
+
/** 虚拟滚动:可见范围起始索引 */
|
|
11078
|
+
visibleStartIndex() {
|
|
11079
|
+
if (!this.vScroll) return 0
|
|
11080
|
+
const start = Math.floor(this.scrollPos / this.itemSize)
|
|
11081
|
+
return Math.max(0, start - this.bufferSize)
|
|
11082
|
+
},
|
|
11083
|
+
|
|
11084
|
+
/** 虚拟滚动:可见范围结束索引 */
|
|
11085
|
+
visibleEndIndex() {
|
|
11086
|
+
if (!this.vScroll) return this.dataCount
|
|
11087
|
+
const visibleCount = Math.ceil(this.containerSize / this.itemSize)
|
|
11088
|
+
const end = Math.ceil(this.scrollPos / this.itemSize) + visibleCount
|
|
11089
|
+
return Math.min(this.dataCount, end + this.bufferSize)
|
|
11090
|
+
},
|
|
11091
|
+
|
|
11092
|
+
/** 可见数据 */
|
|
11093
|
+
visibleData() {
|
|
11094
|
+
if (!this.vScroll || !this.data) return this.data || []
|
|
11095
|
+
return this.data.slice(this.visibleStartIndex, this.visibleEndIndex)
|
|
11096
|
+
},
|
|
11097
|
+
|
|
11098
|
+
/** 偏移量(px) */
|
|
11099
|
+
offsetStart() {
|
|
11100
|
+
return this.visibleStartIndex * this.itemSize
|
|
11101
|
+
},
|
|
11102
|
+
|
|
11103
|
+
/** 是否显示加载更多 */
|
|
11104
|
+
showLoadMore() {
|
|
11105
|
+
if (!this.loadMore || !this.dataCount) return false
|
|
11106
|
+
if (this.scrollDirection === 'vertical') {
|
|
11107
|
+
return this.scrollPos + this.containerSize >= this.totalSize - this.itemSize * 2
|
|
11108
|
+
}
|
|
11109
|
+
return false
|
|
11110
|
+
}
|
|
11111
|
+
},
|
|
11112
|
+
|
|
11113
|
+
watch: {
|
|
11114
|
+
data: {
|
|
11115
|
+
handler() {
|
|
11116
|
+
this.$nextTick(() => {
|
|
11117
|
+
this.updateContainerSize()
|
|
11118
|
+
})
|
|
11119
|
+
}
|
|
11120
|
+
},
|
|
11121
|
+
vScroll(val) {
|
|
11122
|
+
if (val) {
|
|
11123
|
+
this.$nextTick(() => {
|
|
11124
|
+
this.updateContainerSize()
|
|
11125
|
+
this.bindResizeObserver()
|
|
11126
|
+
})
|
|
11127
|
+
}
|
|
11128
|
+
}
|
|
11129
|
+
},
|
|
11130
|
+
|
|
11131
|
+
mounted() {
|
|
11132
|
+
this.$nextTick(() => {
|
|
11133
|
+
this.updateContainerSize()
|
|
11134
|
+
if (this.vScroll) {
|
|
11135
|
+
this.bindResizeObserver()
|
|
11136
|
+
}
|
|
11137
|
+
})
|
|
11138
|
+
},
|
|
11139
|
+
|
|
11140
|
+
beforeDestroy() {
|
|
11141
|
+
this.unbindResizeObserver()
|
|
11142
|
+
if (this.rafId && typeof cancelAnimationFrame !== 'undefined') {
|
|
11143
|
+
cancelAnimationFrame(this.rafId)
|
|
11144
|
+
this.rafId = null
|
|
11145
|
+
}
|
|
11146
|
+
},
|
|
11147
|
+
|
|
11148
|
+
methods: {
|
|
11149
|
+
// ========== 虚拟滚动 ==========
|
|
11150
|
+
onScroll() {
|
|
11151
|
+
const wrap = this.$refs.scrollWrap
|
|
11152
|
+
if (!wrap) return
|
|
11153
|
+
|
|
11154
|
+
const pos = this.scrollDirection === 'vertical' ? wrap.scrollTop : wrap.scrollLeft
|
|
11155
|
+
this.scrollPos = pos
|
|
11156
|
+
|
|
11157
|
+
// 对外 emit scroll 事件,传递 scrollTop/scrollLeft 方便父组件使用
|
|
11158
|
+
this.$emit('scroll', {
|
|
11159
|
+
scrollTop: wrap.scrollTop,
|
|
11160
|
+
scrollLeft: wrap.scrollLeft
|
|
11161
|
+
})
|
|
11162
|
+
|
|
11163
|
+
if (this.rafId) return
|
|
11164
|
+
if (typeof requestAnimationFrame === 'undefined') return
|
|
11165
|
+
this.rafId = requestAnimationFrame(() => {
|
|
11166
|
+
this.$forceUpdate()
|
|
11167
|
+
this.rafId = null
|
|
11168
|
+
})
|
|
11169
|
+
},
|
|
11170
|
+
|
|
11171
|
+
getItemKey(item, index) {
|
|
11172
|
+
if (item && typeof item === 'object' && this.keyField && item[this.keyField] != null) {
|
|
11173
|
+
return item[this.keyField]
|
|
11174
|
+
}
|
|
11175
|
+
return `vitem_${this.visibleStartIndex + index}`
|
|
11176
|
+
},
|
|
11177
|
+
|
|
11178
|
+
getOriginalIndex(index) {
|
|
11179
|
+
return this.visibleStartIndex + index
|
|
11180
|
+
},
|
|
11181
|
+
|
|
11182
|
+
// ========== 容器尺寸 ==========
|
|
11183
|
+
updateContainerSize() {
|
|
11184
|
+
const wrap = this.$refs.scrollWrap
|
|
11185
|
+
if (!wrap) return
|
|
11186
|
+
|
|
11187
|
+
this.containerSize = this.scrollDirection === 'vertical'
|
|
11188
|
+
? wrap.clientHeight
|
|
11189
|
+
: wrap.clientWidth
|
|
11190
|
+
},
|
|
11191
|
+
|
|
11192
|
+
bindResizeObserver() {
|
|
11193
|
+
if (typeof ResizeObserver === 'undefined') return
|
|
11194
|
+
this.unbindResizeObserver()
|
|
11195
|
+
|
|
11196
|
+
const wrap = this.$refs.scrollWrap
|
|
11197
|
+
if (!wrap) return
|
|
11198
|
+
|
|
11199
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
11200
|
+
this.updateContainerSize()
|
|
11201
|
+
})
|
|
11202
|
+
this.resizeObserver.observe(wrap)
|
|
11203
|
+
},
|
|
11204
|
+
|
|
11205
|
+
unbindResizeObserver() {
|
|
11206
|
+
if (this.resizeObserver) {
|
|
11207
|
+
this.resizeObserver.disconnect()
|
|
11208
|
+
this.resizeObserver = null
|
|
11209
|
+
}
|
|
11210
|
+
},
|
|
11211
|
+
|
|
11212
|
+
// ========== 加载更多 ==========
|
|
11213
|
+
onLoadMore() {
|
|
11214
|
+
this.$emit('load-more')
|
|
11215
|
+
},
|
|
11216
|
+
|
|
11217
|
+
// ========== 对外暴露方法 ==========
|
|
11218
|
+
/** 获取原生滚动容器 DOM 元素 */
|
|
11219
|
+
getScrollContainer() {
|
|
11220
|
+
return this.$refs.scrollWrap
|
|
11221
|
+
},
|
|
11222
|
+
|
|
11223
|
+
/** 滚动到指定位置 */
|
|
11224
|
+
scrollTo(pos, behavior) {
|
|
11225
|
+
const wrap = this.$refs.scrollWrap
|
|
11226
|
+
if (!wrap) return
|
|
11227
|
+
|
|
11228
|
+
const opts = behavior && typeof behavior === 'string'
|
|
11229
|
+
? { behavior }
|
|
11230
|
+
: { behavior: 'smooth' }
|
|
11231
|
+
|
|
11232
|
+
if (this.scrollDirection === 'vertical') {
|
|
11233
|
+
wrap.scrollTo({ top: pos, ...opts })
|
|
11234
|
+
} else {
|
|
11235
|
+
wrap.scrollTo({ left: pos, ...opts })
|
|
11236
|
+
}
|
|
11237
|
+
},
|
|
11238
|
+
|
|
11239
|
+
/** 滚动到指定索引的 item */
|
|
11240
|
+
scrollToItem(index) {
|
|
11241
|
+
const pos = index * this.itemSize
|
|
11242
|
+
this.scrollTo(pos)
|
|
11243
|
+
},
|
|
11244
|
+
|
|
11245
|
+
/** 滚动到顶部/左侧 */
|
|
11246
|
+
scrollToStart() {
|
|
11247
|
+
this.scrollTo(0)
|
|
11248
|
+
},
|
|
11249
|
+
|
|
11250
|
+
/** 滚动到底部/右侧 */
|
|
11251
|
+
scrollToEnd() {
|
|
11252
|
+
this.scrollTo(this.totalSize)
|
|
11253
|
+
},
|
|
11254
|
+
|
|
11255
|
+
/** 获取当前滚动位置 */
|
|
11256
|
+
getScrollPos() {
|
|
11257
|
+
return this.scrollPos
|
|
11258
|
+
}
|
|
11259
|
+
}
|
|
11260
|
+
});
|
|
11261
|
+
|
|
11262
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue?vue&type=script&lang=js
|
|
11263
|
+
/* harmony default export */ var components_xt_scrollvue_type_script_lang_js = (xt_scrollvue_type_script_lang_js);
|
|
11264
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.vue
|
|
11265
|
+
|
|
11266
|
+
|
|
11267
|
+
|
|
11268
|
+
|
|
11269
|
+
|
|
11270
|
+
/* normalize component */
|
|
11271
|
+
|
|
11272
|
+
var xt_scroll_component = Object(componentNormalizer["a" /* default */])(
|
|
11273
|
+
components_xt_scrollvue_type_script_lang_js,
|
|
11274
|
+
xt_scrollvue_type_template_id_74170e40_render,
|
|
11275
|
+
xt_scrollvue_type_template_id_74170e40_staticRenderFns,
|
|
10739
11276
|
false,
|
|
10740
11277
|
null,
|
|
10741
|
-
|
|
11278
|
+
null,
|
|
10742
11279
|
null
|
|
10743
11280
|
|
|
10744
11281
|
)
|
|
10745
11282
|
|
|
10746
|
-
/* harmony default export */ var
|
|
10747
|
-
// CONCATENATED MODULE: ./src/components/xt-
|
|
10748
|
-
|
|
10749
|
-
|
|
10750
|
-
xt_table.install = function (Vue) {
|
|
10751
|
-
Vue.component(xt_table.name, xt_table)
|
|
10752
|
-
}
|
|
10753
|
-
|
|
10754
|
-
/* harmony default export */ var components_xt_table = (xt_table);
|
|
11283
|
+
/* harmony default export */ var xt_scroll = (xt_scroll_component.exports);
|
|
11284
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll/index.js
|
|
11285
|
+
|
|
10755
11286
|
|
|
10756
|
-
// 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
|
|
10757
|
-
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()])
|
|
10758
|
-
}
|
|
10759
|
-
var xt_listvue_type_template_id_53c7db00_scoped_true_staticRenderFns = []
|
|
10760
11287
|
|
|
11288
|
+
xt_scroll.install = function (Vue) {
|
|
11289
|
+
Vue.component(xt_scroll.name, xt_scroll)
|
|
11290
|
+
}
|
|
10761
11291
|
|
|
10762
|
-
|
|
11292
|
+
/* harmony default export */ var components_xt_scroll = (xt_scroll);
|
|
10763
11293
|
|
|
10764
11294
|
// 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
|
|
10765
11295
|
|
|
11296
|
+
|
|
11297
|
+
|
|
10766
11298
|
const CARD_ITEM_HEIGHT = 160
|
|
10767
11299
|
const GROUP_HEADER_HEIGHT = 44
|
|
10768
11300
|
|
|
10769
11301
|
/* harmony default export */ var xt_listvue_type_script_lang_js = ({
|
|
10770
11302
|
name: 'XtList',
|
|
10771
11303
|
|
|
11304
|
+
components: {
|
|
11305
|
+
XtScroll: components_xt_scroll
|
|
11306
|
+
},
|
|
11307
|
+
|
|
10772
11308
|
props: {
|
|
10773
11309
|
data: { type: Array, default: () => [] },
|
|
10774
11310
|
// 分组配置
|
|
@@ -11098,9 +11634,10 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11098
11634
|
return group._items.indexOf(item)
|
|
11099
11635
|
},
|
|
11100
11636
|
|
|
11101
|
-
onScroll() {
|
|
11637
|
+
onScroll(e) {
|
|
11102
11638
|
if (!this.virtualScroll) return
|
|
11103
|
-
|
|
11639
|
+
// xt-scroll 传递的是 { scrollTop, scrollLeft } 对象
|
|
11640
|
+
this.scrollTop = e && e.scrollTop != null ? e.scrollTop : 0
|
|
11104
11641
|
if (this.rafId) return
|
|
11105
11642
|
if (typeof requestAnimationFrame === 'undefined') return
|
|
11106
11643
|
this.rafId = requestAnimationFrame(() => {
|
|
@@ -11111,18 +11648,22 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11111
11648
|
|
|
11112
11649
|
updateContainerHeight() {
|
|
11113
11650
|
if (this.$refs.scrollContainer) {
|
|
11114
|
-
|
|
11651
|
+
const scrollCmp = this.$refs.scrollContainer
|
|
11652
|
+
const wrap = scrollCmp.getScrollContainer && scrollCmp.getScrollContainer()
|
|
11653
|
+
this.containerHeight = wrap ? wrap.clientHeight : 0
|
|
11115
11654
|
}
|
|
11116
11655
|
},
|
|
11117
11656
|
|
|
11118
11657
|
bindResizeObserver() {
|
|
11119
11658
|
if (typeof ResizeObserver === 'undefined') return
|
|
11120
|
-
const
|
|
11121
|
-
if (!
|
|
11659
|
+
const scrollCmp = this.$refs.scrollContainer
|
|
11660
|
+
if (!scrollCmp) return
|
|
11661
|
+
const wrap = scrollCmp.getScrollContainer && scrollCmp.getScrollContainer()
|
|
11662
|
+
if (!wrap) return
|
|
11122
11663
|
this.resizeObserver = new ResizeObserver(() => {
|
|
11123
11664
|
this.updateContainerHeight()
|
|
11124
11665
|
})
|
|
11125
|
-
this.resizeObserver.observe(
|
|
11666
|
+
this.resizeObserver.observe(wrap)
|
|
11126
11667
|
},
|
|
11127
11668
|
|
|
11128
11669
|
unbindResizeObserver() {
|
|
@@ -11162,8 +11703,8 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11162
11703
|
|
|
11163
11704
|
// ========== 对外暴露方法 ==========
|
|
11164
11705
|
scrollToTop() {
|
|
11165
|
-
if (this.$refs.scrollContainer) {
|
|
11166
|
-
this.$refs.scrollContainer.
|
|
11706
|
+
if (this.$refs.scrollContainer && this.$refs.scrollContainer.scrollToStart) {
|
|
11707
|
+
this.$refs.scrollContainer.scrollToStart()
|
|
11167
11708
|
}
|
|
11168
11709
|
},
|
|
11169
11710
|
|
|
@@ -11193,8 +11734,8 @@ const GROUP_HEADER_HEIGHT = 44
|
|
|
11193
11734
|
|
|
11194
11735
|
// CONCATENATED MODULE: ./src/components/xt-list/index.vue?vue&type=script&lang=js
|
|
11195
11736
|
/* harmony default export */ var components_xt_listvue_type_script_lang_js = (xt_listvue_type_script_lang_js);
|
|
11196
|
-
// EXTERNAL MODULE: ./src/components/xt-list/index.vue?vue&type=style&index=0&id=
|
|
11197
|
-
var
|
|
11737
|
+
// EXTERNAL MODULE: ./src/components/xt-list/index.vue?vue&type=style&index=0&id=084d1476&prod&scoped=true&lang=css
|
|
11738
|
+
var xt_listvue_type_style_index_0_id_084d1476_prod_scoped_true_lang_css = __webpack_require__("52fd");
|
|
11198
11739
|
|
|
11199
11740
|
// CONCATENATED MODULE: ./src/components/xt-list/index.vue
|
|
11200
11741
|
|
|
@@ -11207,11 +11748,11 @@ var xt_listvue_type_style_index_0_id_53c7db00_prod_scoped_true_lang_css = __webp
|
|
|
11207
11748
|
|
|
11208
11749
|
var xt_list_component = Object(componentNormalizer["a" /* default */])(
|
|
11209
11750
|
components_xt_listvue_type_script_lang_js,
|
|
11210
|
-
|
|
11211
|
-
|
|
11751
|
+
xt_listvue_type_template_id_084d1476_scoped_true_render,
|
|
11752
|
+
xt_listvue_type_template_id_084d1476_scoped_true_staticRenderFns,
|
|
11212
11753
|
false,
|
|
11213
11754
|
null,
|
|
11214
|
-
"
|
|
11755
|
+
"084d1476",
|
|
11215
11756
|
null
|
|
11216
11757
|
|
|
11217
11758
|
)
|
|
@@ -11229,32 +11770,46 @@ xt_list.install = function (Vue) {
|
|
|
11229
11770
|
// EXTERNAL MODULE: ./src/components/xt-scroll-arrow/style/index.scss
|
|
11230
11771
|
var xt_scroll_arrow_style = __webpack_require__("4e56");
|
|
11231
11772
|
|
|
11232
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
11233
|
-
var
|
|
11773
|
+
// 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
|
|
11774
|
+
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)
|
|
11234
11775
|
}
|
|
11235
|
-
var
|
|
11776
|
+
var xt_scroll_arrowvue_type_template_id_6d59f4e4_staticRenderFns = []
|
|
11236
11777
|
|
|
11237
11778
|
|
|
11238
|
-
// CONCATENATED MODULE: ./src/components/xt-scroll-arrow/index.vue?vue&type=template&id=
|
|
11779
|
+
// CONCATENATED MODULE: ./src/components/xt-scroll-arrow/index.vue?vue&type=template&id=6d59f4e4
|
|
11239
11780
|
|
|
11240
11781
|
// 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
|
|
11241
11782
|
|
|
11783
|
+
|
|
11784
|
+
|
|
11242
11785
|
/* harmony default export */ var xt_scroll_arrowvue_type_script_lang_js = ({
|
|
11243
11786
|
name: 'XtScrollArrow',
|
|
11787
|
+
|
|
11788
|
+
components: {
|
|
11789
|
+
XtScroll: components_xt_scroll
|
|
11790
|
+
},
|
|
11791
|
+
|
|
11244
11792
|
props: {
|
|
11793
|
+
// ========== 滚动方向 ==========
|
|
11245
11794
|
direction: {
|
|
11246
11795
|
type: String,
|
|
11247
11796
|
default: 'horizontal',
|
|
11248
11797
|
validator: (val) => ['horizontal', 'vertical'].includes(val)
|
|
11249
11798
|
},
|
|
11799
|
+
|
|
11800
|
+
// ========== 滚动步长 ==========
|
|
11250
11801
|
scrollStep: {
|
|
11251
11802
|
type: Number,
|
|
11252
11803
|
default: 100
|
|
11253
11804
|
},
|
|
11805
|
+
|
|
11806
|
+
// ========== 箭头显示 ==========
|
|
11254
11807
|
autoHide: {
|
|
11255
11808
|
type: Boolean,
|
|
11256
11809
|
default: true
|
|
11257
11810
|
},
|
|
11811
|
+
|
|
11812
|
+
// ========== 容器尺寸 ==========
|
|
11258
11813
|
height: {
|
|
11259
11814
|
type: [String, Number],
|
|
11260
11815
|
default: ''
|
|
@@ -11263,6 +11818,8 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11263
11818
|
type: [String, Number],
|
|
11264
11819
|
default: ''
|
|
11265
11820
|
},
|
|
11821
|
+
|
|
11822
|
+
// ========== 模式 ==========
|
|
11266
11823
|
appendMode: {
|
|
11267
11824
|
type: Boolean,
|
|
11268
11825
|
default: false
|
|
@@ -11270,16 +11827,65 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11270
11827
|
clickMode: {
|
|
11271
11828
|
type: Boolean,
|
|
11272
11829
|
default: false
|
|
11830
|
+
},
|
|
11831
|
+
|
|
11832
|
+
// ========== 虚拟滚动配置 ==========
|
|
11833
|
+
/** 是否启用虚拟滚动 */
|
|
11834
|
+
vScroll: {
|
|
11835
|
+
type: Boolean,
|
|
11836
|
+
default: false
|
|
11837
|
+
},
|
|
11838
|
+
/** 虚拟滚动数据源 */
|
|
11839
|
+
vScrollData: {
|
|
11840
|
+
type: Array,
|
|
11841
|
+
default: () => []
|
|
11842
|
+
},
|
|
11843
|
+
/** 每个 item 的固定尺寸(px) */
|
|
11844
|
+
itemSize: {
|
|
11845
|
+
type: Number,
|
|
11846
|
+
default: 50
|
|
11847
|
+
},
|
|
11848
|
+
/** item 的唯一键字段名 */
|
|
11849
|
+
keyField: {
|
|
11850
|
+
type: String,
|
|
11851
|
+
default: 'id'
|
|
11852
|
+
},
|
|
11853
|
+
/** 预渲染缓冲区大小 */
|
|
11854
|
+
bufferSize: {
|
|
11855
|
+
type: Number,
|
|
11856
|
+
default: 5
|
|
11857
|
+
},
|
|
11858
|
+
/** 虚拟滚动加载状态 */
|
|
11859
|
+
vScrollLoading: {
|
|
11860
|
+
type: Boolean,
|
|
11861
|
+
default: false
|
|
11862
|
+
},
|
|
11863
|
+
|
|
11864
|
+
// ========== 加载更多 ==========
|
|
11865
|
+
loadMore: {
|
|
11866
|
+
type: Boolean,
|
|
11867
|
+
default: false
|
|
11868
|
+
},
|
|
11869
|
+
loadMoreText: {
|
|
11870
|
+
type: String,
|
|
11871
|
+
default: '加载更多'
|
|
11872
|
+
},
|
|
11873
|
+
loadMoreLoading: {
|
|
11874
|
+
type: Boolean,
|
|
11875
|
+
default: false
|
|
11273
11876
|
}
|
|
11274
11877
|
},
|
|
11878
|
+
|
|
11275
11879
|
data() {
|
|
11276
11880
|
return {
|
|
11277
11881
|
showLeftArrow: false,
|
|
11278
11882
|
showRightArrow: false,
|
|
11279
11883
|
showTopArrow: false,
|
|
11280
|
-
showBottomArrow: false
|
|
11884
|
+
showBottomArrow: false,
|
|
11885
|
+
mutationObserver: null
|
|
11281
11886
|
}
|
|
11282
11887
|
},
|
|
11888
|
+
|
|
11283
11889
|
computed: {
|
|
11284
11890
|
containerStyle() {
|
|
11285
11891
|
const style = {}
|
|
@@ -11290,27 +11896,44 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11290
11896
|
style.width = typeof this.width === 'number' ? `${this.width}px` : this.width
|
|
11291
11897
|
}
|
|
11292
11898
|
return style
|
|
11899
|
+
},
|
|
11900
|
+
scrollClass() {
|
|
11901
|
+
return this.vScroll ? 'xt-scroll-arrow__content--virtual' : ''
|
|
11293
11902
|
}
|
|
11294
11903
|
},
|
|
11904
|
+
|
|
11295
11905
|
watch: {
|
|
11296
11906
|
direction() {
|
|
11297
11907
|
this.$nextTick(() => {
|
|
11298
11908
|
this.checkScroll()
|
|
11299
11909
|
})
|
|
11910
|
+
},
|
|
11911
|
+
vScrollData: {
|
|
11912
|
+
handler() {
|
|
11913
|
+
this.$nextTick(() => {
|
|
11914
|
+
this.checkScroll()
|
|
11915
|
+
})
|
|
11916
|
+
}
|
|
11300
11917
|
}
|
|
11301
11918
|
},
|
|
11919
|
+
|
|
11302
11920
|
mounted() {
|
|
11303
11921
|
this.$nextTick(() => {
|
|
11304
11922
|
this.checkScroll()
|
|
11305
11923
|
})
|
|
11306
11924
|
this.addResizeObserver()
|
|
11307
|
-
this.
|
|
11925
|
+
if (!this.vScroll) {
|
|
11926
|
+
this.addMutationObserver()
|
|
11927
|
+
}
|
|
11308
11928
|
},
|
|
11929
|
+
|
|
11309
11930
|
beforeDestroy() {
|
|
11310
11931
|
this.removeResizeObserver()
|
|
11311
11932
|
this.removeMutationObserver()
|
|
11312
11933
|
},
|
|
11934
|
+
|
|
11313
11935
|
methods: {
|
|
11936
|
+
// ========== 尺寸监听 ==========
|
|
11314
11937
|
addResizeObserver() {
|
|
11315
11938
|
if (typeof ResizeObserver !== 'undefined') {
|
|
11316
11939
|
this.resizeObserver = new ResizeObserver(() => {
|
|
@@ -11318,17 +11941,19 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11318
11941
|
this.checkScroll()
|
|
11319
11942
|
})
|
|
11320
11943
|
})
|
|
11321
|
-
const container = this.$
|
|
11944
|
+
const container = this.$el
|
|
11322
11945
|
if (container) {
|
|
11323
11946
|
this.resizeObserver.observe(container)
|
|
11324
11947
|
}
|
|
11325
11948
|
}
|
|
11326
11949
|
},
|
|
11950
|
+
|
|
11327
11951
|
removeResizeObserver() {
|
|
11328
11952
|
if (this.resizeObserver) {
|
|
11329
11953
|
this.resizeObserver.disconnect()
|
|
11330
11954
|
}
|
|
11331
11955
|
},
|
|
11956
|
+
|
|
11332
11957
|
addMutationObserver() {
|
|
11333
11958
|
if (typeof MutationObserver !== 'undefined') {
|
|
11334
11959
|
this.mutationObserver = new MutationObserver(() => {
|
|
@@ -11339,28 +11964,37 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11339
11964
|
}
|
|
11340
11965
|
})
|
|
11341
11966
|
})
|
|
11342
|
-
const container = this.$refs.
|
|
11967
|
+
const container = this.$refs.scrollRef
|
|
11343
11968
|
if (container) {
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
|
|
11347
|
-
|
|
11969
|
+
const wrap = container.getScrollContainer && container.getScrollContainer()
|
|
11970
|
+
if (wrap) {
|
|
11971
|
+
this.mutationObserver.observe(wrap, {
|
|
11972
|
+
childList: true,
|
|
11973
|
+
subtree: true
|
|
11974
|
+
})
|
|
11975
|
+
}
|
|
11348
11976
|
}
|
|
11349
11977
|
}
|
|
11350
11978
|
},
|
|
11979
|
+
|
|
11351
11980
|
removeMutationObserver() {
|
|
11352
11981
|
if (this.mutationObserver) {
|
|
11353
11982
|
this.mutationObserver.disconnect()
|
|
11354
11983
|
}
|
|
11355
11984
|
},
|
|
11985
|
+
|
|
11986
|
+
// ========== 滚动检测 ==========
|
|
11356
11987
|
checkScroll() {
|
|
11357
|
-
const
|
|
11358
|
-
if (!
|
|
11988
|
+
const scrollRef = this.$refs.scrollRef
|
|
11989
|
+
if (!scrollRef) return
|
|
11990
|
+
|
|
11991
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
11992
|
+
if (!wrap) return
|
|
11359
11993
|
|
|
11360
11994
|
if (this.direction === 'horizontal') {
|
|
11361
|
-
const scrollLeft =
|
|
11362
|
-
const scrollWidth =
|
|
11363
|
-
const clientWidth =
|
|
11995
|
+
const scrollLeft = wrap.scrollLeft
|
|
11996
|
+
const scrollWidth = wrap.scrollWidth
|
|
11997
|
+
const clientWidth = wrap.clientWidth
|
|
11364
11998
|
const maxScroll = scrollWidth - clientWidth
|
|
11365
11999
|
|
|
11366
12000
|
this.showTopArrow = false
|
|
@@ -11368,15 +12002,15 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11368
12002
|
|
|
11369
12003
|
if (this.autoHide) {
|
|
11370
12004
|
this.showLeftArrow = scrollLeft > 0
|
|
11371
|
-
this.showRightArrow = maxScroll > 0 && scrollLeft < maxScroll
|
|
12005
|
+
this.showRightArrow = maxScroll > 0 && scrollLeft < maxScroll - 1
|
|
11372
12006
|
} else {
|
|
11373
12007
|
this.showLeftArrow = maxScroll > 0
|
|
11374
12008
|
this.showRightArrow = maxScroll > 0
|
|
11375
12009
|
}
|
|
11376
12010
|
} else {
|
|
11377
|
-
const scrollTop =
|
|
11378
|
-
const scrollHeight =
|
|
11379
|
-
const clientHeight =
|
|
12011
|
+
const scrollTop = wrap.scrollTop
|
|
12012
|
+
const scrollHeight = wrap.scrollHeight
|
|
12013
|
+
const clientHeight = wrap.clientHeight
|
|
11380
12014
|
const maxScroll = scrollHeight - clientHeight
|
|
11381
12015
|
|
|
11382
12016
|
this.showLeftArrow = false
|
|
@@ -11384,77 +12018,77 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11384
12018
|
|
|
11385
12019
|
if (this.autoHide) {
|
|
11386
12020
|
this.showTopArrow = scrollTop > 0
|
|
11387
|
-
this.showBottomArrow = maxScroll > 0 && scrollTop < maxScroll
|
|
12021
|
+
this.showBottomArrow = maxScroll > 0 && scrollTop < maxScroll - 1
|
|
11388
12022
|
} else {
|
|
11389
12023
|
this.showTopArrow = maxScroll > 0
|
|
11390
12024
|
this.showBottomArrow = maxScroll > 0
|
|
11391
12025
|
}
|
|
11392
12026
|
}
|
|
11393
12027
|
},
|
|
11394
|
-
|
|
12028
|
+
|
|
12029
|
+
onScroll() {
|
|
11395
12030
|
this.checkScroll()
|
|
11396
|
-
this.$emit('scroll', this.$refs.
|
|
11397
|
-
},
|
|
11398
|
-
handleClick(e) {
|
|
11399
|
-
if (!this.clickMode) return
|
|
11400
|
-
const container = this.$refs.scrollContainer
|
|
11401
|
-
if (!container) return
|
|
11402
|
-
|
|
11403
|
-
const target = e.target
|
|
11404
|
-
if (!target || target === container) return
|
|
11405
|
-
|
|
11406
|
-
const containerRect = container.getBoundingClientRect()
|
|
11407
|
-
const targetRect = target.getBoundingClientRect()
|
|
11408
|
-
|
|
11409
|
-
const isVisible = (
|
|
11410
|
-
targetRect.left >= containerRect.left &&
|
|
11411
|
-
targetRect.right <= containerRect.right &&
|
|
11412
|
-
targetRect.top >= containerRect.top &&
|
|
11413
|
-
targetRect.bottom <= containerRect.bottom
|
|
11414
|
-
)
|
|
11415
|
-
|
|
11416
|
-
if (!isVisible) {
|
|
11417
|
-
if (this.direction === 'horizontal') {
|
|
11418
|
-
const scrollLeft = target.offsetLeft - (container.clientWidth - targetRect.width) / 2
|
|
11419
|
-
container.scrollTo({ left: scrollLeft, behavior: 'smooth' })
|
|
11420
|
-
} else {
|
|
11421
|
-
const scrollTop = target.offsetTop - (container.clientHeight - targetRect.height) / 2
|
|
11422
|
-
container.scrollTo({ top: scrollTop, behavior: 'smooth' })
|
|
11423
|
-
}
|
|
11424
|
-
}
|
|
12031
|
+
this.$emit('scroll', this.$refs.scrollRef)
|
|
11425
12032
|
},
|
|
12033
|
+
|
|
12034
|
+
// ========== 滚动操作 ==========
|
|
11426
12035
|
scrollLeft() {
|
|
11427
|
-
|
|
11428
|
-
if (container) {
|
|
11429
|
-
container.scrollBy({ left: -this.scrollStep, behavior: 'smooth' })
|
|
11430
|
-
}
|
|
12036
|
+
this._scrollBy(-this.scrollStep)
|
|
11431
12037
|
},
|
|
12038
|
+
|
|
11432
12039
|
scrollRight() {
|
|
11433
|
-
|
|
11434
|
-
if (container) {
|
|
11435
|
-
container.scrollBy({ left: this.scrollStep, behavior: 'smooth' })
|
|
11436
|
-
}
|
|
12040
|
+
this._scrollBy(this.scrollStep)
|
|
11437
12041
|
},
|
|
12042
|
+
|
|
11438
12043
|
scrollTop() {
|
|
11439
|
-
|
|
11440
|
-
if (container) {
|
|
11441
|
-
container.scrollBy({ top: -this.scrollStep, behavior: 'smooth' })
|
|
11442
|
-
}
|
|
12044
|
+
this._scrollBy(-this.scrollStep, 'vertical')
|
|
11443
12045
|
},
|
|
12046
|
+
|
|
11444
12047
|
scrollBottom() {
|
|
11445
|
-
|
|
11446
|
-
|
|
11447
|
-
|
|
12048
|
+
this._scrollBy(this.scrollStep, 'vertical')
|
|
12049
|
+
},
|
|
12050
|
+
|
|
12051
|
+
_scrollBy(delta, dir) {
|
|
12052
|
+
const direction = dir || this.direction
|
|
12053
|
+
const scrollRef = this.$refs.scrollRef
|
|
12054
|
+
if (!scrollRef) return
|
|
12055
|
+
|
|
12056
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12057
|
+
if (!wrap) return
|
|
12058
|
+
|
|
12059
|
+
if (direction === 'horizontal') {
|
|
12060
|
+
wrap.scrollBy({ left: delta, behavior: 'smooth' })
|
|
12061
|
+
} else {
|
|
12062
|
+
wrap.scrollBy({ top: delta, behavior: 'smooth' })
|
|
11448
12063
|
}
|
|
11449
12064
|
},
|
|
12065
|
+
|
|
11450
12066
|
scrollToEnd() {
|
|
11451
|
-
const
|
|
11452
|
-
if (!
|
|
12067
|
+
const scrollRef = this.$refs.scrollRef
|
|
12068
|
+
if (!scrollRef) return
|
|
12069
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12070
|
+
if (!wrap) return
|
|
12071
|
+
|
|
11453
12072
|
if (this.direction === 'horizontal') {
|
|
11454
|
-
|
|
12073
|
+
wrap.scrollTo({ left: wrap.scrollWidth, behavior: 'smooth' })
|
|
11455
12074
|
} else {
|
|
11456
|
-
|
|
12075
|
+
wrap.scrollTo({ top: wrap.scrollHeight, behavior: 'smooth' })
|
|
11457
12076
|
}
|
|
12077
|
+
},
|
|
12078
|
+
|
|
12079
|
+
// ========== 对外暴露方法 ==========
|
|
12080
|
+
/** 获取滚动位置 */
|
|
12081
|
+
getScrollPos() {
|
|
12082
|
+
const scrollRef = this.$refs.scrollRef
|
|
12083
|
+
if (!scrollRef) return 0
|
|
12084
|
+
const wrap = scrollRef.getScrollContainer && scrollRef.getScrollContainer()
|
|
12085
|
+
if (!wrap) return 0
|
|
12086
|
+
return this.direction === 'horizontal' ? wrap.scrollLeft : wrap.scrollTop
|
|
12087
|
+
},
|
|
12088
|
+
|
|
12089
|
+
/** 获取 xt-scroll 组件实例 */
|
|
12090
|
+
getScrollInstance() {
|
|
12091
|
+
return this.$refs.scrollRef
|
|
11458
12092
|
}
|
|
11459
12093
|
}
|
|
11460
12094
|
});
|
|
@@ -11471,8 +12105,8 @@ var xt_scroll_arrowvue_type_template_id_3d6a271c_staticRenderFns = []
|
|
|
11471
12105
|
|
|
11472
12106
|
var xt_scroll_arrow_component = Object(componentNormalizer["a" /* default */])(
|
|
11473
12107
|
components_xt_scroll_arrowvue_type_script_lang_js,
|
|
11474
|
-
|
|
11475
|
-
|
|
12108
|
+
xt_scroll_arrowvue_type_template_id_6d59f4e4_render,
|
|
12109
|
+
xt_scroll_arrowvue_type_template_id_6d59f4e4_staticRenderFns,
|
|
11476
12110
|
false,
|
|
11477
12111
|
null,
|
|
11478
12112
|
null,
|
|
@@ -11491,7 +12125,7 @@ xt_scroll_arrow.install = function (Vue) {
|
|
|
11491
12125
|
|
|
11492
12126
|
/* harmony default export */ var components_xt_scroll_arrow = (xt_scroll_arrow);
|
|
11493
12127
|
|
|
11494
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12128
|
+
// 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
|
|
11495
12129
|
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)
|
|
11496
12130
|
}
|
|
11497
12131
|
var xt_pagevue_type_template_id_a1f6b910_scoped_true_staticRenderFns = []
|
|
@@ -11603,7 +12237,7 @@ xt_page.install = function (Vue) {
|
|
|
11603
12237
|
|
|
11604
12238
|
/* harmony default export */ var components_xt_page = (xt_page);
|
|
11605
12239
|
|
|
11606
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12240
|
+
// 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
|
|
11607
12241
|
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)
|
|
11608
12242
|
}
|
|
11609
12243
|
var xt_select_treevue_type_template_id_962f42c0_scoped_true_staticRenderFns = []
|
|
@@ -11921,7 +12555,7 @@ xt_select_tree.install = function (Vue) {
|
|
|
11921
12555
|
|
|
11922
12556
|
/* harmony default export */ var components_xt_select_tree = (xt_select_tree);
|
|
11923
12557
|
|
|
11924
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12558
|
+
// 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
|
|
11925
12559
|
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)
|
|
11926
12560
|
}
|
|
11927
12561
|
var xt_uploadvue_type_template_id_03e2de58_staticRenderFns = []
|
|
@@ -11929,7 +12563,7 @@ var xt_uploadvue_type_template_id_03e2de58_staticRenderFns = []
|
|
|
11929
12563
|
|
|
11930
12564
|
// CONCATENATED MODULE: ./src/components/xt-upload/index.vue?vue&type=template&id=03e2de58
|
|
11931
12565
|
|
|
11932
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
12566
|
+
// 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
|
|
11933
12567
|
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)])
|
|
11934
12568
|
}
|
|
11935
12569
|
var previewvue_type_template_id_236adf7f_scoped_true_staticRenderFns = []
|
|
@@ -12965,7 +13599,7 @@ xt_upload.install = function (Vue) {
|
|
|
12965
13599
|
|
|
12966
13600
|
/* harmony default export */ var components_xt_upload = (xt_upload);
|
|
12967
13601
|
|
|
12968
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
13602
|
+
// 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
|
|
12969
13603
|
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)])])
|
|
12970
13604
|
}
|
|
12971
13605
|
var xt_transfer_treevue_type_template_id_561bec94_scoped_true_staticRenderFns = []
|
|
@@ -13318,7 +13952,7 @@ xt_transfer_tree.install = function (Vue) {
|
|
|
13318
13952
|
|
|
13319
13953
|
/* harmony default export */ var components_xt_transfer_tree = (xt_transfer_tree);
|
|
13320
13954
|
|
|
13321
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
13955
|
+
// 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
|
|
13322
13956
|
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)
|
|
13323
13957
|
}
|
|
13324
13958
|
var xt_form_schemavue_type_template_id_50399771_scoped_true_staticRenderFns = []
|
|
@@ -13590,7 +14224,7 @@ xt_form_schema.install = function (Vue) {
|
|
|
13590
14224
|
// EXTERNAL MODULE: ./src/components/xt-flow/style/index.scss
|
|
13591
14225
|
var xt_flow_style = __webpack_require__("fdbd");
|
|
13592
14226
|
|
|
13593
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
14227
|
+
// 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
|
|
13594
14228
|
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:[
|
|
13595
14229
|
`xt-flow__line--${node.status}`,
|
|
13596
14230
|
{ 'xt-flow__line--dashed': node.status === 'rejected' }
|
|
@@ -13998,6 +14632,567 @@ xt_flow.install = function(Vue) {
|
|
|
13998
14632
|
}
|
|
13999
14633
|
|
|
14000
14634
|
/* harmony default export */ var components_xt_flow = (xt_flow);
|
|
14635
|
+
// CONCATENATED MODULE: ./src/components/theme/iframe-injector.js
|
|
14636
|
+
/* ============================================================
|
|
14637
|
+
* XT-Element-UI iframe 主题注入工具
|
|
14638
|
+
*
|
|
14639
|
+
* 使用场景:微前端架构中,主系统统一管理主题,子系统通过 iframe 嵌入。
|
|
14640
|
+
* 子系统为标准 Element UI 项目,无需任何改造。
|
|
14641
|
+
*
|
|
14642
|
+
* 设计:
|
|
14643
|
+
* - 主题状态的唯一事实源是 utils/index.js(setTheme / setPrimaryColor)
|
|
14644
|
+
* - 本模块仅负责 iframe DOM 操作(注入、MutationObserver、持久化、广播)
|
|
14645
|
+
* - 通过订阅 utils.onConfigChange 实现主文档和 iframe 的同步
|
|
14646
|
+
* - setTheme / setPrimaryColor 委托给 utils,保持外部 API 不变
|
|
14647
|
+
*
|
|
14648
|
+
* 工作流程:
|
|
14649
|
+
* 1. 主系统调用 utils.setTheme('dark') → utils 同步更新 --xt-* + --el-* 变量
|
|
14650
|
+
* 2. utils emitConfigChange → 所有 IframeThemeInjector 实例收到通知
|
|
14651
|
+
* 3. 实例将新主题应用到其管理的所有 iframe
|
|
14652
|
+
* 4. 持久化、广播事件、回调
|
|
14653
|
+
* ============================================================ */
|
|
14654
|
+
|
|
14655
|
+
|
|
14656
|
+
|
|
14657
|
+
|
|
14658
|
+
/**
|
|
14659
|
+
* IframeThemeInjector 类
|
|
14660
|
+
* 负责向 iframe 注入主题 CSS 并管理 iframe 侧主题状态
|
|
14661
|
+
*
|
|
14662
|
+
* 注意:主文档的 --el-* / --xt-* CSS 变量由 utils/index.js 管理,
|
|
14663
|
+
* 本类仅负责 iframe 内的同步,避免重复设置主文档变量。
|
|
14664
|
+
*/
|
|
14665
|
+
class iframe_injector_IframeThemeInjector {
|
|
14666
|
+
/**
|
|
14667
|
+
* @param {Object} options
|
|
14668
|
+
* @param {string} options.baseCSS - 基础 CSS 内容(注入到 iframe 的 <head>)
|
|
14669
|
+
* @param {string} [options.theme='white'] - 初始主题 'white' | 'dark'
|
|
14670
|
+
* @param {string} [options.primaryColor='#1890ff'] - 初始主色调
|
|
14671
|
+
* @param {string} [options.brand=''] - 品牌标识 '' | 'water' | 'electricity' | 'gas'
|
|
14672
|
+
* @param {boolean} [options.persist=false] - 是否持久化主题配置到 localStorage
|
|
14673
|
+
* @param {Function} [options.onThemeChange] - 主题变化回调
|
|
14674
|
+
*/
|
|
14675
|
+
constructor(options = {}) {
|
|
14676
|
+
if (!options.baseCSS) {
|
|
14677
|
+
console.warn('[IframeThemeInjector] baseCSS 未提供,主题样式将无法注入到 iframe')
|
|
14678
|
+
}
|
|
14679
|
+
|
|
14680
|
+
this.baseCSS = options.baseCSS || ''
|
|
14681
|
+
this.theme = options.theme || 'white'
|
|
14682
|
+
this.brand = options.brand || ''
|
|
14683
|
+
this.persist = options.persist || false
|
|
14684
|
+
this.onThemeChange = options.onThemeChange || null
|
|
14685
|
+
|
|
14686
|
+
// 主色调:如果有 brand,优先使用 brand 对应的颜色
|
|
14687
|
+
this.primaryColor = options.primaryColor || this._getBrandColor()
|
|
14688
|
+
this._userPrimaryColor = options.primaryColor || '#1890ff'
|
|
14689
|
+
|
|
14690
|
+
// 管理的 iframe 列表
|
|
14691
|
+
// Map<HTMLIFrameElement, { styleEl: HTMLStyleElement, injected: boolean }>
|
|
14692
|
+
this.iframes = new Map()
|
|
14693
|
+
|
|
14694
|
+
// MutationObserver 用于自动检测新增 iframe
|
|
14695
|
+
this._observer = null
|
|
14696
|
+
this._observerTarget = null
|
|
14697
|
+
|
|
14698
|
+
// 注入计数器(用于去重定时器)
|
|
14699
|
+
this._injectPending = new Set()
|
|
14700
|
+
|
|
14701
|
+
// 订阅 utils 配置变更,实现主文档和 iframe 的主题同步
|
|
14702
|
+
this._unsubscribe = onConfigChange((key, value) => {
|
|
14703
|
+
this._onUtilsConfigChange(key, value)
|
|
14704
|
+
})
|
|
14705
|
+
}
|
|
14706
|
+
|
|
14707
|
+
// ==================== 公共方法 ====================
|
|
14708
|
+
|
|
14709
|
+
/**
|
|
14710
|
+
* 向指定 iframe 注入主题 CSS
|
|
14711
|
+
* @param {HTMLIFrameElement} iframe - iframe 元素
|
|
14712
|
+
* @returns {boolean} 是否注入成功
|
|
14713
|
+
*/
|
|
14714
|
+
inject(iframe) {
|
|
14715
|
+
if (!iframe) {
|
|
14716
|
+
console.warn('[IframeThemeInjector] inject: iframe 参数为空')
|
|
14717
|
+
return false
|
|
14718
|
+
}
|
|
14719
|
+
|
|
14720
|
+
// 如果已注入,跳过
|
|
14721
|
+
if (this.iframes.has(iframe)) {
|
|
14722
|
+
return true
|
|
14723
|
+
}
|
|
14724
|
+
|
|
14725
|
+
return this._doInject(iframe)
|
|
14726
|
+
}
|
|
14727
|
+
|
|
14728
|
+
/**
|
|
14729
|
+
* 批量注入:注入所有匹配选择器的 iframe
|
|
14730
|
+
* @param {string} [selector='iframe'] - CSS 选择器
|
|
14731
|
+
* @returns {number} 成功注入的数量
|
|
14732
|
+
*/
|
|
14733
|
+
injectAll(selector = 'iframe') {
|
|
14734
|
+
const iframes = document.querySelectorAll(selector)
|
|
14735
|
+
let count = 0
|
|
14736
|
+
iframes.forEach(iframe => {
|
|
14737
|
+
if (this.inject(iframe)) count++
|
|
14738
|
+
})
|
|
14739
|
+
return count
|
|
14740
|
+
}
|
|
14741
|
+
|
|
14742
|
+
/**
|
|
14743
|
+
* 切换主题
|
|
14744
|
+
* 委托给 utils 处理主文档 CSS 变量,本类负责 iframe 同步
|
|
14745
|
+
* @param {string} theme - 'white' | 'dark'
|
|
14746
|
+
* @param {Object} [options]
|
|
14747
|
+
* @param {string} [options.primaryColor] - 主色调
|
|
14748
|
+
* @param {string} [options.brand] - 品牌色
|
|
14749
|
+
*/
|
|
14750
|
+
setTheme(theme, options = {}) {
|
|
14751
|
+
if (theme !== 'white' && theme !== 'dark') {
|
|
14752
|
+
console.warn('[IframeThemeInjector] setTheme: 无效的主题值,使用 "white"', theme)
|
|
14753
|
+
theme = 'white'
|
|
14754
|
+
}
|
|
14755
|
+
|
|
14756
|
+
const prevTheme = this.theme
|
|
14757
|
+
this.theme = theme
|
|
14758
|
+
|
|
14759
|
+
if (options.primaryColor) {
|
|
14760
|
+
this.primaryColor = options.primaryColor
|
|
14761
|
+
this._userPrimaryColor = options.primaryColor
|
|
14762
|
+
} else if (options.brand || this.brand) {
|
|
14763
|
+
this.brand = options.brand || this.brand
|
|
14764
|
+
this.primaryColor = this._getBrandColor()
|
|
14765
|
+
}
|
|
14766
|
+
|
|
14767
|
+
if (options.brand !== undefined) {
|
|
14768
|
+
this.brand = options.brand
|
|
14769
|
+
}
|
|
14770
|
+
|
|
14771
|
+
// 委托给 utils 处理主文档的 CSS 变量设置
|
|
14772
|
+
setTheme(theme)
|
|
14773
|
+
if (this.primaryColor) {
|
|
14774
|
+
setPrimaryColor(this.primaryColor)
|
|
14775
|
+
}
|
|
14776
|
+
|
|
14777
|
+
// 同步所有 iframe
|
|
14778
|
+
this.iframes.forEach((_, iframeEl) => {
|
|
14779
|
+
try {
|
|
14780
|
+
if (iframeEl.contentDocument) {
|
|
14781
|
+
this._applyThemeToDocument(iframeEl.contentDocument)
|
|
14782
|
+
}
|
|
14783
|
+
} catch (e) { /* 跨域 iframe 无法访问 */ }
|
|
14784
|
+
})
|
|
14785
|
+
|
|
14786
|
+
// 持久化
|
|
14787
|
+
if (this.persist) {
|
|
14788
|
+
this._saveToStorage()
|
|
14789
|
+
}
|
|
14790
|
+
|
|
14791
|
+
// 广播事件
|
|
14792
|
+
this._broadcastChange()
|
|
14793
|
+
|
|
14794
|
+
// 回调
|
|
14795
|
+
if (this.onThemeChange) {
|
|
14796
|
+
this.onThemeChange({
|
|
14797
|
+
theme: this.theme,
|
|
14798
|
+
primaryColor: this.primaryColor,
|
|
14799
|
+
brand: this.brand,
|
|
14800
|
+
prevTheme
|
|
14801
|
+
})
|
|
14802
|
+
}
|
|
14803
|
+
}
|
|
14804
|
+
|
|
14805
|
+
/**
|
|
14806
|
+
* 设置主色调
|
|
14807
|
+
* @param {string} color - hex 颜色值,如 '#1890ff'
|
|
14808
|
+
*/
|
|
14809
|
+
setPrimaryColor(color) {
|
|
14810
|
+
this.primaryColor = color
|
|
14811
|
+
this._userPrimaryColor = color
|
|
14812
|
+
this.brand = '' // 清除品牌色
|
|
14813
|
+
|
|
14814
|
+
// 委托给 utils 处理主文档
|
|
14815
|
+
setPrimaryColor(color)
|
|
14816
|
+
|
|
14817
|
+
// 同步 iframe
|
|
14818
|
+
this._applyPrimaryColorToAll()
|
|
14819
|
+
}
|
|
14820
|
+
|
|
14821
|
+
/**
|
|
14822
|
+
* 设置品牌色
|
|
14823
|
+
* @param {string} brand - '' | 'water' | 'electricity' | 'gas'
|
|
14824
|
+
*/
|
|
14825
|
+
setBrand(brand) {
|
|
14826
|
+
this.brand = brand
|
|
14827
|
+
this.primaryColor = this._getBrandColor()
|
|
14828
|
+
|
|
14829
|
+
// 委托给 utils 处理主文档
|
|
14830
|
+
setPrimaryColor(this.primaryColor)
|
|
14831
|
+
|
|
14832
|
+
// 同步 iframe
|
|
14833
|
+
this._applyPrimaryColorToAll()
|
|
14834
|
+
}
|
|
14835
|
+
|
|
14836
|
+
/**
|
|
14837
|
+
* 移除指定 iframe 的注入
|
|
14838
|
+
* @param {HTMLIFrameElement} iframe
|
|
14839
|
+
*/
|
|
14840
|
+
remove(iframe) {
|
|
14841
|
+
const info = this.iframes.get(iframe)
|
|
14842
|
+
if (info && info.styleEl && info.styleEl.parentNode) {
|
|
14843
|
+
info.styleEl.parentNode.removeChild(info.styleEl)
|
|
14844
|
+
}
|
|
14845
|
+
this.iframes.delete(iframe)
|
|
14846
|
+
this._injectPending.delete(iframe)
|
|
14847
|
+
}
|
|
14848
|
+
|
|
14849
|
+
/**
|
|
14850
|
+
* 移除所有注入
|
|
14851
|
+
*/
|
|
14852
|
+
removeAll() {
|
|
14853
|
+
this.iframes.forEach((info, iframe) => {
|
|
14854
|
+
if (info.styleEl && info.styleEl.parentNode) {
|
|
14855
|
+
info.styleEl.parentNode.removeChild(info.styleEl)
|
|
14856
|
+
}
|
|
14857
|
+
})
|
|
14858
|
+
this.iframes.clear()
|
|
14859
|
+
this._injectPending.clear()
|
|
14860
|
+
}
|
|
14861
|
+
|
|
14862
|
+
/**
|
|
14863
|
+
* 开始自动监听 DOM 变化,自动注入新添加的 iframe
|
|
14864
|
+
* @param {HTMLElement} [target=document.body] - 监听的容器元素
|
|
14865
|
+
*/
|
|
14866
|
+
startObserving(target) {
|
|
14867
|
+
this.stopObserving()
|
|
14868
|
+
|
|
14869
|
+
this._observerTarget = target || document.body
|
|
14870
|
+
this._observer = new MutationObserver((mutations) => {
|
|
14871
|
+
mutations.forEach(mutation => {
|
|
14872
|
+
mutation.addedNodes.forEach(node => {
|
|
14873
|
+
// 直接添加的 iframe
|
|
14874
|
+
if (node.tagName === 'IFRAME') {
|
|
14875
|
+
this._handleNewIframe(node)
|
|
14876
|
+
}
|
|
14877
|
+
// 包含 iframe 的子元素
|
|
14878
|
+
if (node.querySelectorAll) {
|
|
14879
|
+
node.querySelectorAll('iframe').forEach(iframe => {
|
|
14880
|
+
this._handleNewIframe(iframe)
|
|
14881
|
+
})
|
|
14882
|
+
}
|
|
14883
|
+
})
|
|
14884
|
+
})
|
|
14885
|
+
})
|
|
14886
|
+
|
|
14887
|
+
this._observer.observe(this._observerTarget, {
|
|
14888
|
+
childList: true,
|
|
14889
|
+
subtree: true
|
|
14890
|
+
})
|
|
14891
|
+
}
|
|
14892
|
+
|
|
14893
|
+
/**
|
|
14894
|
+
* 停止自动监听
|
|
14895
|
+
*/
|
|
14896
|
+
stopObserving() {
|
|
14897
|
+
if (this._observer) {
|
|
14898
|
+
this._observer.disconnect()
|
|
14899
|
+
this._observer = null
|
|
14900
|
+
}
|
|
14901
|
+
this._observerTarget = null
|
|
14902
|
+
}
|
|
14903
|
+
|
|
14904
|
+
/**
|
|
14905
|
+
* 获取当前主题配置
|
|
14906
|
+
* @returns {Object}
|
|
14907
|
+
*/
|
|
14908
|
+
getConfig() {
|
|
14909
|
+
return {
|
|
14910
|
+
theme: this.theme,
|
|
14911
|
+
primaryColor: this.primaryColor,
|
|
14912
|
+
brand: this.brand
|
|
14913
|
+
}
|
|
14914
|
+
}
|
|
14915
|
+
|
|
14916
|
+
/**
|
|
14917
|
+
* 获取已注入的 iframe 数量
|
|
14918
|
+
* @returns {number}
|
|
14919
|
+
*/
|
|
14920
|
+
getIframeCount() {
|
|
14921
|
+
return this.iframes.size
|
|
14922
|
+
}
|
|
14923
|
+
|
|
14924
|
+
/**
|
|
14925
|
+
* 销毁实例,清理所有资源
|
|
14926
|
+
*/
|
|
14927
|
+
destroy() {
|
|
14928
|
+
this.removeAll()
|
|
14929
|
+
this.stopObserving()
|
|
14930
|
+
if (this._unsubscribe) {
|
|
14931
|
+
this._unsubscribe()
|
|
14932
|
+
this._unsubscribe = null
|
|
14933
|
+
}
|
|
14934
|
+
}
|
|
14935
|
+
|
|
14936
|
+
// ==================== utils 变更响应 ====================
|
|
14937
|
+
|
|
14938
|
+
/**
|
|
14939
|
+
* 响应 utils 配置变更,同步到所有 iframe
|
|
14940
|
+
* 统一使用 applyThemeVars 处理主题+主色变量
|
|
14941
|
+
*/
|
|
14942
|
+
_onUtilsConfigChange(key, value) {
|
|
14943
|
+
if (key === 'theme') {
|
|
14944
|
+
this.theme = value
|
|
14945
|
+
} else if (key === 'primaryColor') {
|
|
14946
|
+
this.primaryColor = value
|
|
14947
|
+
} else {
|
|
14948
|
+
return
|
|
14949
|
+
}
|
|
14950
|
+
this._applyPrimaryColorToAll()
|
|
14951
|
+
}
|
|
14952
|
+
|
|
14953
|
+
// ==================== 私有方法 ====================
|
|
14954
|
+
|
|
14955
|
+
/**
|
|
14956
|
+
* 执行实际的注入操作
|
|
14957
|
+
*/
|
|
14958
|
+
_doInject(iframe) {
|
|
14959
|
+
try {
|
|
14960
|
+
const doc = iframe.contentDocument || iframe.contentWindow.document
|
|
14961
|
+
if (!doc || !doc.head) {
|
|
14962
|
+
// iframe 尚未加载完成,等待 load 事件
|
|
14963
|
+
iframe.addEventListener('load', () => this._doInject(iframe), { once: true })
|
|
14964
|
+
return false
|
|
14965
|
+
}
|
|
14966
|
+
|
|
14967
|
+
// 检查是否已注入过(防止重复)
|
|
14968
|
+
const existing = doc.head.querySelector('style[data-xt-theme-injector]')
|
|
14969
|
+
if (existing) {
|
|
14970
|
+
this.iframes.set(iframe, { styleEl: existing, injected: true })
|
|
14971
|
+
this._applyThemeToDocument(doc)
|
|
14972
|
+
return true
|
|
14973
|
+
}
|
|
14974
|
+
|
|
14975
|
+
// 创建 style 元素并注入
|
|
14976
|
+
const styleEl = doc.createElement('style')
|
|
14977
|
+
styleEl.setAttribute('data-xt-theme-injector', '')
|
|
14978
|
+
styleEl.setAttribute('type', 'text/css')
|
|
14979
|
+
styleEl.textContent = this.baseCSS
|
|
14980
|
+
doc.head.appendChild(styleEl)
|
|
14981
|
+
|
|
14982
|
+
// 应用主题变量
|
|
14983
|
+
this._applyThemeToDocument(doc)
|
|
14984
|
+
|
|
14985
|
+
// 记录
|
|
14986
|
+
this.iframes.set(iframe, { styleEl, injected: true })
|
|
14987
|
+
|
|
14988
|
+
return true
|
|
14989
|
+
} catch (e) {
|
|
14990
|
+
console.warn('[IframeThemeInjector] 无法注入主题到 iframe(可能是跨域限制):', e.message)
|
|
14991
|
+
return false
|
|
14992
|
+
}
|
|
14993
|
+
}
|
|
14994
|
+
|
|
14995
|
+
/**
|
|
14996
|
+
* 处理新检测到的 iframe
|
|
14997
|
+
*/
|
|
14998
|
+
_handleNewIframe(iframe) {
|
|
14999
|
+
if (this.iframes.has(iframe) || this._injectPending.has(iframe)) {
|
|
15000
|
+
return
|
|
15001
|
+
}
|
|
15002
|
+
|
|
15003
|
+
this._injectPending.add(iframe)
|
|
15004
|
+
|
|
15005
|
+
const tryInject = () => {
|
|
15006
|
+
this._injectPending.delete(iframe)
|
|
15007
|
+
if (!this.iframes.has(iframe)) {
|
|
15008
|
+
this._doInject(iframe)
|
|
15009
|
+
}
|
|
15010
|
+
}
|
|
15011
|
+
|
|
15012
|
+
if (iframe.contentDocument && iframe.contentDocument.readyState === 'complete') {
|
|
15013
|
+
tryInject()
|
|
15014
|
+
} else {
|
|
15015
|
+
iframe.addEventListener('load', tryInject, { once: true })
|
|
15016
|
+
}
|
|
15017
|
+
}
|
|
15018
|
+
|
|
15019
|
+
/**
|
|
15020
|
+
* 将主题配置应用到指定文档(iframe 内)
|
|
15021
|
+
* 统一使用 applyThemeVars 处理 CSS 变量
|
|
15022
|
+
*/
|
|
15023
|
+
_applyThemeToDocument(doc) {
|
|
15024
|
+
if (!doc || !doc.documentElement) return
|
|
15025
|
+
|
|
15026
|
+
applyThemeVars(doc.documentElement, {
|
|
15027
|
+
theme: this.theme,
|
|
15028
|
+
primaryColor: this.primaryColor,
|
|
15029
|
+
brand: this.brand
|
|
15030
|
+
})
|
|
15031
|
+
}
|
|
15032
|
+
|
|
15033
|
+
/**
|
|
15034
|
+
* 更新所有 iframe 文档的主色调
|
|
15035
|
+
* 统一使用 applyThemeVars 处理
|
|
15036
|
+
*/
|
|
15037
|
+
_applyPrimaryColorToAll() {
|
|
15038
|
+
this.iframes.forEach((_, iframeEl) => {
|
|
15039
|
+
try {
|
|
15040
|
+
if (iframeEl.contentDocument) {
|
|
15041
|
+
applyThemeVars(iframeEl.contentDocument.documentElement, {
|
|
15042
|
+
theme: this.theme,
|
|
15043
|
+
primaryColor: this.primaryColor,
|
|
15044
|
+
brand: this.brand
|
|
15045
|
+
})
|
|
15046
|
+
}
|
|
15047
|
+
} catch (e) { /* 跨域 */ }
|
|
15048
|
+
})
|
|
15049
|
+
}
|
|
15050
|
+
|
|
15051
|
+
/**
|
|
15052
|
+
* 获取品牌色对应的主色调
|
|
15053
|
+
*/
|
|
15054
|
+
_getBrandColor() {
|
|
15055
|
+
if (!this.brand || !BRAND_COLORS[this.brand]) {
|
|
15056
|
+
return this._userPrimaryColor || '#1890ff'
|
|
15057
|
+
}
|
|
15058
|
+
const colors = BRAND_COLORS[this.brand]
|
|
15059
|
+
return this.theme === 'dark' ? colors.dark : colors.light
|
|
15060
|
+
}
|
|
15061
|
+
|
|
15062
|
+
/**
|
|
15063
|
+
* 持久化到 localStorage
|
|
15064
|
+
*/
|
|
15065
|
+
_saveToStorage() {
|
|
15066
|
+
if (typeof localStorage === 'undefined') return
|
|
15067
|
+
try {
|
|
15068
|
+
localStorage.setItem(THEME_STORAGE_KEY, JSON.stringify({
|
|
15069
|
+
theme: this.theme,
|
|
15070
|
+
primaryColor: this._userPrimaryColor,
|
|
15071
|
+
brand: this.brand,
|
|
15072
|
+
timestamp: Date.now()
|
|
15073
|
+
}))
|
|
15074
|
+
} catch (e) {
|
|
15075
|
+
console.warn('[IframeThemeInjector] 保存主题配置失败:', e.message)
|
|
15076
|
+
}
|
|
15077
|
+
}
|
|
15078
|
+
|
|
15079
|
+
/**
|
|
15080
|
+
* 从 localStorage 恢复配置
|
|
15081
|
+
*/
|
|
15082
|
+
_loadFromStorage() {
|
|
15083
|
+
if (typeof localStorage === 'undefined') return null
|
|
15084
|
+
try {
|
|
15085
|
+
const stored = localStorage.getItem(THEME_STORAGE_KEY)
|
|
15086
|
+
return stored ? JSON.parse(stored) : null
|
|
15087
|
+
} catch (e) {
|
|
15088
|
+
return null
|
|
15089
|
+
}
|
|
15090
|
+
}
|
|
15091
|
+
|
|
15092
|
+
/**
|
|
15093
|
+
* 广播主题变化事件
|
|
15094
|
+
*/
|
|
15095
|
+
_broadcastChange() {
|
|
15096
|
+
if (typeof window === 'undefined') return
|
|
15097
|
+
try {
|
|
15098
|
+
window.dispatchEvent(new CustomEvent(THEME_CHANGE_EVENT, {
|
|
15099
|
+
detail: {
|
|
15100
|
+
theme: this.theme,
|
|
15101
|
+
primaryColor: this.primaryColor,
|
|
15102
|
+
brand: this.brand,
|
|
15103
|
+
timestamp: Date.now()
|
|
15104
|
+
},
|
|
15105
|
+
bubbles: true,
|
|
15106
|
+
composed: true
|
|
15107
|
+
}))
|
|
15108
|
+
} catch (e) {
|
|
15109
|
+
// 忽略
|
|
15110
|
+
}
|
|
15111
|
+
}
|
|
15112
|
+
}
|
|
15113
|
+
|
|
15114
|
+
/**
|
|
15115
|
+
* 创建 IframeThemeInjector 实例并自动从 localStorage 恢复配置
|
|
15116
|
+
* @param {Object} options
|
|
15117
|
+
* @returns {IframeThemeInjector}
|
|
15118
|
+
*/
|
|
15119
|
+
function createInjector(options = {}) {
|
|
15120
|
+
const injector = new iframe_injector_IframeThemeInjector(options)
|
|
15121
|
+
|
|
15122
|
+
// 如果启用持久化,尝试从 localStorage 恢复
|
|
15123
|
+
if (options.persist) {
|
|
15124
|
+
const stored = injector._loadFromStorage()
|
|
15125
|
+
if (stored) {
|
|
15126
|
+
injector.theme = stored.theme || 'white'
|
|
15127
|
+
injector.brand = stored.brand || ''
|
|
15128
|
+
injector._userPrimaryColor = stored.primaryColor || '#1890ff'
|
|
15129
|
+
injector.primaryColor = stored.primaryColor || injector._getBrandColor()
|
|
15130
|
+
}
|
|
15131
|
+
}
|
|
15132
|
+
|
|
15133
|
+
return injector
|
|
15134
|
+
}
|
|
15135
|
+
|
|
15136
|
+
/* harmony default export */ var iframe_injector = (iframe_injector_IframeThemeInjector);
|
|
15137
|
+
|
|
15138
|
+
// CONCATENATED MODULE: ./src/components/theme/index.js
|
|
15139
|
+
/* ============================================================
|
|
15140
|
+
* XT-Element-UI Theme 模块入口
|
|
15141
|
+
*
|
|
15142
|
+
* 提供:
|
|
15143
|
+
* 1. 静态 CSS 样式文件(用于注入到 iframe)
|
|
15144
|
+
* 2. IframeThemeInjector - iframe 主题注入工具
|
|
15145
|
+
* 3. 便捷的工厂函数
|
|
15146
|
+
* ============================================================ */
|
|
15147
|
+
|
|
15148
|
+
|
|
15149
|
+
|
|
15150
|
+
// 使用 raw-loader 以原始字符串形式导入 CSS 文件
|
|
15151
|
+
// eslint-disable-next-line
|
|
15152
|
+
const elementVarsCSS = __webpack_require__("b85c").default || __webpack_require__("b85c")
|
|
15153
|
+
// eslint-disable-next-line
|
|
15154
|
+
const elementOverridesCSS = __webpack_require__("c8e4").default || __webpack_require__("c8e4")
|
|
15155
|
+
|
|
15156
|
+
/**
|
|
15157
|
+
* 合并后的完整 CSS 内容
|
|
15158
|
+
* 可直接注入到 iframe 的 <head> 中
|
|
15159
|
+
*/
|
|
15160
|
+
const fullThemeCSS = elementVarsCSS + '\n' + elementOverridesCSS
|
|
15161
|
+
|
|
15162
|
+
/**
|
|
15163
|
+
* 创建一个预配置好 CSS 内容的 IframeThemeInjector 实例
|
|
15164
|
+
* 这是推荐的使用方式,无需手动提供 CSS 内容
|
|
15165
|
+
*
|
|
15166
|
+
* @param {Object} options
|
|
15167
|
+
* @param {string} [options.theme='white'] - 初始主题 'white' | 'dark'
|
|
15168
|
+
* @param {string} [options.primaryColor='#1890ff'] - 初始主色调
|
|
15169
|
+
* @param {boolean} [options.persist=false] - 是否持久化主题配置
|
|
15170
|
+
* @param {Function} [options.onThemeChange] - 主题变化回调
|
|
15171
|
+
* @returns {IframeThemeInjector}
|
|
15172
|
+
*
|
|
15173
|
+
* @example
|
|
15174
|
+
* // 基本使用
|
|
15175
|
+
* const injector = createThemeInjector({ theme: 'white' })
|
|
15176
|
+
* injector.injectAll('iframe')
|
|
15177
|
+
*
|
|
15178
|
+
* @example
|
|
15179
|
+
* // 切换主题
|
|
15180
|
+
* injector.setTheme('dark')
|
|
15181
|
+
*
|
|
15182
|
+
* @example
|
|
15183
|
+
* // 自动监听新增 iframe
|
|
15184
|
+
* injector.startObserving()
|
|
15185
|
+
*/
|
|
15186
|
+
function createThemeInjector(options = {}) {
|
|
15187
|
+
return createInjector({
|
|
15188
|
+
...options,
|
|
15189
|
+
baseCSS: fullThemeCSS
|
|
15190
|
+
})
|
|
15191
|
+
}
|
|
15192
|
+
|
|
15193
|
+
|
|
15194
|
+
|
|
15195
|
+
/* harmony default export */ var components_theme = (createThemeInjector);
|
|
14001
15196
|
// CONCATENATED MODULE: ./src/index.js
|
|
14002
15197
|
// 导入主题样式(定义 CSS 变量)
|
|
14003
15198
|
|
|
@@ -14038,6 +15233,7 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
|
|
|
14038
15233
|
// XtTable 组件(基于 ElementUI Table 封装)
|
|
14039
15234
|
// XtList 组件(卡片列表)
|
|
14040
15235
|
|
|
15236
|
+
// XtScroll 组件(虚拟滚动容器)
|
|
14041
15237
|
|
|
14042
15238
|
|
|
14043
15239
|
|
|
@@ -14048,6 +15244,7 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
|
|
|
14048
15244
|
// XtTransferTree 组件(树形穿梭框)
|
|
14049
15245
|
// XtFormSchema 组件(表单配置化搜索)
|
|
14050
15246
|
// XtFlow 组件(审批流程轨迹)
|
|
15247
|
+
// Theme 模块(iframe 主题注入工具)
|
|
14051
15248
|
|
|
14052
15249
|
|
|
14053
15250
|
const src_components = [
|
|
@@ -14075,6 +15272,7 @@ const src_components = [
|
|
|
14075
15272
|
components_xt_table,
|
|
14076
15273
|
components_xt_list,
|
|
14077
15274
|
components_xt_scroll_arrow,
|
|
15275
|
+
components_xt_scroll,
|
|
14078
15276
|
XtBar,
|
|
14079
15277
|
XtLine,
|
|
14080
15278
|
XtPie,
|
|
@@ -14155,6 +15353,7 @@ if (typeof window !== 'undefined' && window.Vue) {
|
|
|
14155
15353
|
XtTable: components_xt_table,
|
|
14156
15354
|
XtList: components_xt_list,
|
|
14157
15355
|
XtScrollArrow: components_xt_scroll_arrow,
|
|
15356
|
+
XtScroll: components_xt_scroll,
|
|
14158
15357
|
XtBar: XtBar,
|
|
14159
15358
|
XtLine: XtLine,
|
|
14160
15359
|
XtPie: XtPie,
|
|
@@ -14164,7 +15363,8 @@ if (typeof window !== 'undefined' && window.Vue) {
|
|
|
14164
15363
|
XtUpload: components_xt_upload,
|
|
14165
15364
|
XtTransferTree: components_xt_transfer_tree,
|
|
14166
15365
|
XtFormSchema: components_xt_form_schema,
|
|
14167
|
-
XtFlow: components_xt_flow
|
|
15366
|
+
XtFlow: components_xt_flow,
|
|
15367
|
+
Theme: components_theme
|
|
14168
15368
|
});
|
|
14169
15369
|
|
|
14170
15370
|
// 导出工具函数和变量
|