vdesign-ui 0.2.7 → 0.2.9

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.
@@ -423,6 +423,13 @@ module.exports = typeof documentAll == 'undefined' && documentAll !== undefined
423
423
 
424
424
  /***/ }),
425
425
 
426
+ /***/ "177f":
427
+ /***/ (function(module, exports, __webpack_require__) {
428
+
429
+ // extracted by mini-css-extract-plugin
430
+
431
+ /***/ }),
432
+
426
433
  /***/ "1a2d":
427
434
  /***/ (function(module, exports, __webpack_require__) {
428
435
 
@@ -492,6 +499,13 @@ module.exports = function (it) {
492
499
  };
493
500
 
494
501
 
502
+ /***/ }),
503
+
504
+ /***/ "1d802":
505
+ /***/ (function(module, exports, __webpack_require__) {
506
+
507
+ // extracted by mini-css-extract-plugin
508
+
495
509
  /***/ }),
496
510
 
497
511
  /***/ "202f":
@@ -503,6 +517,17 @@ module.exports = function (it) {
503
517
  /* unused harmony reexport * */
504
518
 
505
519
 
520
+ /***/ }),
521
+
522
+ /***/ "230a":
523
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
524
+
525
+ "use strict";
526
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6cfdbc71_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("177f");
527
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6cfdbc71_prod_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6cfdbc71_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
528
+ /* unused harmony reexport * */
529
+
530
+
506
531
  /***/ }),
507
532
 
508
533
  /***/ "2310":
@@ -9416,13 +9441,6 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUgAAADsCAMAAAAh
9416
9441
 
9417
9442
  /***/ }),
9418
9443
 
9419
- /***/ "4986":
9420
- /***/ (function(module, exports, __webpack_require__) {
9421
-
9422
- // extracted by mini-css-extract-plugin
9423
-
9424
- /***/ }),
9425
-
9426
9444
  /***/ "4d64":
9427
9445
  /***/ (function(module, exports, __webpack_require__) {
9428
9446
 
@@ -9586,17 +9604,6 @@ module.exports = function (argument) {
9586
9604
  };
9587
9605
 
9588
9606
 
9589
- /***/ }),
9590
-
9591
- /***/ "5806":
9592
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
9593
-
9594
- "use strict";
9595
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_05020deb_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4986");
9596
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_05020deb_prod_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_05020deb_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
9597
- /* unused harmony reexport * */
9598
-
9599
-
9600
9607
  /***/ }),
9601
9608
 
9602
9609
  /***/ "58fa":
@@ -10593,17 +10600,6 @@ module.exports = function (METHOD_NAME, argument) {
10593
10600
 
10594
10601
  // extracted by mini-css-extract-plugin
10595
10602
 
10596
- /***/ }),
10597
-
10598
- /***/ "a723":
10599
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
10600
-
10601
- "use strict";
10602
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6b1dc9b5_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ceb9");
10603
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6b1dc9b5_prod_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_6b1dc9b5_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
10604
- /* unused harmony reexport * */
10605
-
10606
-
10607
10603
  /***/ }),
10608
10604
 
10609
10605
  /***/ "a7c5":
@@ -11073,13 +11069,6 @@ module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFACAMAAAD6
11073
11069
 
11074
11070
  /***/ }),
11075
11071
 
11076
- /***/ "ceb9":
11077
- /***/ (function(module, exports, __webpack_require__) {
11078
-
11079
- // extracted by mini-css-extract-plugin
11080
-
11081
- /***/ }),
11082
-
11083
11072
  /***/ "d012":
11084
11073
  /***/ (function(module, exports, __webpack_require__) {
11085
11074
 
@@ -11510,6 +11499,17 @@ module.exports = function (V, P) {
11510
11499
 
11511
11500
  // extracted by mini-css-extract-plugin
11512
11501
 
11502
+ /***/ }),
11503
+
11504
+ /***/ "dd42":
11505
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
11506
+
11507
+ "use strict";
11508
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_8154a18e_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1d802");
11509
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_8154a18e_prod_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_11_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_11_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_11_oneOf_1_2_node_modules_less_loader_dist_cjs_js_ref_11_oneOf_1_3_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_8154a18e_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
11510
+ /* unused harmony reexport * */
11511
+
11512
+
11513
11513
  /***/ }),
11514
11514
 
11515
11515
  /***/ "ddaa":
@@ -14722,9 +14722,25 @@ var web_url_search_params_has = __webpack_require__("271a");
14722
14722
  // EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js
14723
14723
  var web_url_search_params_size = __webpack_require__("5494");
14724
14724
 
14725
+ // EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js
14726
+ var vue_runtime_esm = __webpack_require__("2b0e");
14727
+
14725
14728
  // CONCATENATED MODULE: ./packages/components/utils/env.js
14726
- // env.js
14729
+
14727
14730
  const inBrowser = typeof window !== 'undefined';
14731
+ const isServer = vue_runtime_esm["a" /* default */].prototype.$isServer;
14732
+ function isObject(val) {
14733
+ return val !== null && typeof val === 'object';
14734
+ }
14735
+ function isInDocument(element) {
14736
+ return document.body.contains(element);
14737
+ }
14738
+ function removeNode(el) {
14739
+ const parent = el.parentNode;
14740
+ if (parent) {
14741
+ parent.removeChild(el);
14742
+ }
14743
+ }
14728
14744
  // CONCATENATED MODULE: ./packages/components/mixins/outlineConfigPlugin.js
14729
14745
 
14730
14746
 
@@ -15124,41 +15140,42 @@ var button_component = normalizeComponent(
15124
15140
  )
15125
15141
 
15126
15142
  /* harmony default export */ var components_button = (button_component.exports);
15127
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/tabs/index.vue?vue&type=template&id=05020deb
15128
- var tabsvue_type_template_id_05020deb_render = function render() {
15143
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/tabs/index.vue?vue&type=template&id=6cfdbc71
15144
+ var tabsvue_type_template_id_6cfdbc71_render = function render() {
15129
15145
  var _vm = this,
15130
15146
  _c = _vm._self._c;
15131
15147
  return _c('div', {
15132
- staticClass: "vd-tabs"
15148
+ staticClass: "vd-tabs",
15149
+ class: _vm.stickyClasses
15133
15150
  }, [_c('div', {
15134
- ref: "tabsWrap",
15151
+ ref: "wrap",
15135
15152
  staticClass: "vd-tabs__wrap",
15136
15153
  class: _vm.menuClasses
15137
15154
  }, [_c('div', {
15138
- ref: "tabsContainer",
15155
+ ref: "nav",
15156
+ staticClass: "vd-tabs__nav",
15139
15157
  class: [_vm.barType, _vm.scrollspy]
15140
- }, _vm._l(_vm.navList, function (item, index) {
15158
+ }, _vm._l(_vm.tabs, function (tab, index) {
15141
15159
  return _c('div', {
15142
- key: index,
15143
- class: [_vm.tabClasses(item), _vm.lineClasses],
15160
+ key: tab.name !== undefined ? tab.name : index,
15161
+ ref: "tabItems",
15162
+ refInFor: true,
15163
+ class: [_vm.tabClasses(tab, index), _vm.lineClasses],
15144
15164
  on: {
15145
15165
  "click": function ($event) {
15146
- return _vm.handleChange(index);
15166
+ return _vm.onClick(tab, index);
15147
15167
  }
15148
15168
  }
15149
15169
  }, [_c('span', {
15150
- staticClass: "vd-tabs-text-cell",
15170
+ ref: "title",
15171
+ refInFor: true,
15172
+ staticClass: "vd-tab__text",
15151
15173
  class: _vm.ellipsisClasses
15152
- }, [_vm._v(" " + _vm._s(item.title) + " "), item.arrow ? _c('vd-icon', {
15153
- staticClass: "vd-tabs-arrow",
15154
- attrs: {
15155
- "name": "icon_btn_moredown"
15156
- }
15157
- }) : _vm._e()], 1)]);
15174
+ }, [_vm._v(" " + _vm._s(tab.title) + " ")])]);
15158
15175
  }), 0), _vm.menu ? _c('div', {
15159
- staticClass: "vd-tabs-menu--right"
15176
+ staticClass: "vd-tabs__menu--right"
15160
15177
  }, [_c('vd-icon', {
15161
- staticClass: "vd-tabs-menu-btn",
15178
+ staticClass: "vd-tabs__menu--btn",
15162
15179
  attrs: {
15163
15180
  "name": _vm.menuIconComputed
15164
15181
  },
@@ -15166,12 +15183,19 @@ var tabsvue_type_template_id_05020deb_render = function render() {
15166
15183
  "click": _vm.emitMenuClick
15167
15184
  }
15168
15185
  })], 1) : _vm._e()]), _c('div', {
15169
- staticClass: "vd-tabs__content"
15170
- }, [_vm._t("default")], 2)]);
15186
+ ref: "content",
15187
+ staticClass: "vd-tabs__content",
15188
+ class: {
15189
+ 'vd-tabs__content--animated': _vm.animated
15190
+ }
15191
+ }, [_vm.animated ? _c('div', {
15192
+ class: _vm.trackClasses,
15193
+ style: _vm.trackStyle
15194
+ }, [_vm._t("default")], 2) : _vm._t("default")], 2)]);
15171
15195
  };
15172
- var tabsvue_type_template_id_05020deb_staticRenderFns = [];
15196
+ var tabsvue_type_template_id_6cfdbc71_staticRenderFns = [];
15173
15197
 
15174
- // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=template&id=05020deb
15198
+ // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=template&id=6cfdbc71
15175
15199
 
15176
15200
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
15177
15201
  var es_array_push = __webpack_require__("14d9");
@@ -15191,7 +15215,6 @@ const prefixCls = "vd-tabs";
15191
15215
  type: String,
15192
15216
  default: "primary"
15193
15217
  },
15194
- // 将 menu 作为一个字段,同时控制显示和图标名称
15195
15218
  menu: {
15196
15219
  type: [Boolean, String],
15197
15220
  default: false
@@ -15202,30 +15225,46 @@ const prefixCls = "vd-tabs";
15202
15225
  },
15203
15226
  actBorder: Boolean,
15204
15227
  backgroundColor: Boolean,
15205
- divider: Boolean
15228
+ divider: Boolean,
15229
+ sticky: Boolean,
15230
+ lazyRender: Boolean,
15231
+ animated: Boolean
15206
15232
  },
15207
15233
  data() {
15208
15234
  return {
15209
- currentValue: this.value,
15210
- // 当前选中的标签名
15211
- navList: [],
15212
- // 标签导航列表
15213
- tabs: [] // 已注册的标签
15235
+ tabs: [],
15236
+ currentName: this.value !== undefined ? this.value : 0 // 默认为 0
15214
15237
  };
15215
15238
  },
15216
15239
  watch: {
15217
15240
  // 监听 value 变化,更新 currentValue
15218
15241
  value(val) {
15219
- this.currentValue = val;
15242
+ this.currentName = val;
15243
+ this.setCurrentName(val);
15220
15244
  }
15221
15245
  },
15222
15246
  computed: {
15247
+ trackClasses() {
15248
+ return {
15249
+ 'vd-tabs__track': true
15250
+ };
15251
+ },
15252
+ trackStyle() {
15253
+ const activeIndex = this.tabs.findIndex((tab, index) => {
15254
+ return this.isTabActive(tab, index);
15255
+ });
15256
+ const translateX = -activeIndex * 100;
15257
+ return {
15258
+ transform: `translateX(${translateX}%)`,
15259
+ transitionDuration: '0.3s'
15260
+ };
15261
+ },
15223
15262
  // 计算菜单按钮的图标,根据 menu 属性的类型决定图标
15224
15263
  menuIconComputed() {
15225
- if (typeof this.menu === 'string') {
15264
+ if (typeof this.menu === "string") {
15226
15265
  return this.menu;
15227
15266
  } else {
15228
- return 'icon_tab_morelist'; // 默认的菜单图标名称
15267
+ return "icon_tab_morelist"; // 默认的菜单图标名称
15229
15268
  }
15230
15269
  },
15231
15270
  // 计算滚动监视的类名
@@ -15235,13 +15274,13 @@ const prefixCls = "vd-tabs";
15235
15274
  // 计算标签文字是否需要省略号的类名
15236
15275
  ellipsisClasses() {
15237
15276
  return {
15238
- [`${prefixCls}-text--ellipsis`]: this.ellipsis
15277
+ [`vd-tab__text--ellipsis`]: this.ellipsis
15239
15278
  };
15240
15279
  },
15241
15280
  // 计算标签包裹器的类名,根据 menu、backgroundColor 和 divider 属性来确定
15242
15281
  menuClasses() {
15243
15282
  return {
15244
- [`${prefixCls}-menu`]: this.menu,
15283
+ [`${prefixCls}__menu`]: this.menu,
15245
15284
  [`${prefixCls}__wrap--bg`]: this.backgroundColor,
15246
15285
  "vd-hairline--bottom": this.divider
15247
15286
  };
@@ -15249,98 +15288,144 @@ const prefixCls = "vd-tabs";
15249
15288
  // 计算标签下方线条的类名
15250
15289
  lineClasses() {
15251
15290
  return {
15252
- [`${prefixCls}__line`]: !this.actBorder
15291
+ [`vd-tab__none--line`]: !this.actBorder
15253
15292
  };
15254
15293
  },
15255
15294
  // 根据 tabsType 属性计算标签类型的类名
15256
15295
  barType() {
15257
15296
  return {
15258
- [`${prefixCls}-${this.tabsType}-bar`]: this.tabsType
15297
+ [`${prefixCls}__nav--${this.tabsType}`]: this.tabsType
15298
+ };
15299
+ },
15300
+ stickyClasses() {
15301
+ return {
15302
+ [`${prefixCls}--sticky`]: this.sticky
15259
15303
  };
15260
15304
  }
15261
15305
  },
15262
15306
  methods: {
15263
15307
  // 当菜单按钮被点击时触发事件
15264
15308
  emitMenuClick() {
15265
- this.$emit('menu-click');
15309
+ this.$emit("menu-click");
15266
15310
  },
15267
15311
  // 计算每个标签项的类名
15268
- tabClasses(item) {
15312
+ tabClasses(tab, index) {
15313
+ const isActive = this.isTabActive(tab, index);
15269
15314
  return {
15270
- [`${prefixCls}-${this.tabsType}`]: true,
15271
- [`${prefixCls}-${this.tabsType}-active`]: item.name === this.currentValue
15315
+ 'vd-tab': true,
15316
+ 'vd-tab--active': isActive
15272
15317
  };
15273
15318
  },
15274
- // 注册新的标签到 tabs 数组中
15275
- registerTab(tab) {
15276
- if (!this.tabs.includes(tab)) {
15277
- this.tabs.push(tab);
15278
- this.updateNav();
15319
+ setCurrentName(name) {
15320
+ // 如果没有指定 name 属性,则使用索引值,确保索引值为数字类型
15321
+ const nameIsNumber = typeof name === 'number' || /^\d+$/.test(name);
15322
+ const parsedName = nameIsNumber ? Number(name) : name;
15323
+ const matchedTab = this.tabs.find((tab, index) => {
15324
+ if (tab.name !== undefined) {
15325
+ return tab.name === parsedName;
15326
+ } else {
15327
+ return index === parsedName;
15328
+ }
15329
+ });
15330
+ if (matchedTab) {
15331
+ this.currentName = matchedTab.name !== undefined ? matchedTab.name : this.tabs.indexOf(matchedTab);
15332
+ } else if (this.tabs.length > 0) {
15333
+ const firstTab = this.tabs[0];
15334
+ this.currentName = firstTab.name !== undefined ? firstTab.name : 0;
15335
+ } else {
15336
+ this.currentName = null;
15337
+ }
15338
+ this.$emit('input', this.currentName);
15339
+ },
15340
+ isTabActive(tab, index) {
15341
+ if (tab.name !== undefined) {
15342
+ return tab.name === this.currentName;
15343
+ } else {
15344
+ return index === Number(this.currentName);
15279
15345
  }
15280
15346
  },
15281
- // 从 tabs 数组中注销一个标签
15282
- unregisterTab(tab) {
15347
+ addTab(tab) {
15348
+ this.tabs.push(tab);
15349
+ if (this.currentName === undefined) {
15350
+ this.setCurrentName(tab.name !== undefined ? tab.name : 0);
15351
+ }
15352
+ },
15353
+ removeTab(tab) {
15283
15354
  const index = this.tabs.indexOf(tab);
15284
15355
  if (index !== -1) {
15285
15356
  this.tabs.splice(index, 1);
15286
- this.updateNav();
15287
- }
15288
- },
15289
- // 根据已注册的标签更新导航列表
15290
- updateNav() {
15291
- this.navList = this.tabs.map((tab, index) => ({
15292
- title: tab.title,
15293
- name: tab.name != null ? tab.name : index,
15294
- arrow: tab.arrow
15295
- }));
15296
- // 如果当前没有选中的标签且导航列表不为空,则将第一个标签设为当前值
15297
- if (!this.currentValue && this.navList.length) {
15298
- this.currentValue = this.navList[0].name;
15299
- }
15300
- },
15301
- handleChange(index) {
15302
- const nav = this.navList[index];
15303
- const name = nav.name;
15304
- if (this.currentValue !== name) {
15305
- this.currentValue = name;
15306
- this.$emit("input", name); // 触发 input 事件,更新父组件中的 v-model 绑定值
15307
- this.$emit("change", {
15308
- index,
15309
- title: nav.title,
15310
- name
15311
- }); // 触发 change 事件,传递标签的详细信息
15312
- this.adjustTabPosition(index); // 调整选中标签的位置
15313
- }
15314
- this.$emit("click", {
15315
- index,
15316
- title: nav.title,
15317
- name
15318
- }); // 触发 click 事件,传递标签的详细信息
15319
- },
15320
- adjustTabPosition(index) {
15321
- const container = this.$refs.tabsContainer;
15322
- const selectedTab = container.children[index];
15323
- if (selectedTab) {
15324
- const containerWidth = container.offsetWidth;
15325
- const tabWidth = selectedTab.offsetWidth;
15326
- const tabOffsetLeft = selectedTab.offsetLeft;
15327
- const scrollLeft = tabOffsetLeft - (containerWidth - tabWidth) / 2;
15328
- container.scrollTo({
15357
+ }
15358
+ },
15359
+ onClick(tab, index) {
15360
+ if (tab.disabled) {
15361
+ this.$emit('disabled', tab.name !== undefined ? tab.name : index, index);
15362
+ } else {
15363
+ this.currentName = tab.name !== undefined ? tab.name : index;
15364
+ // 如果 currentName 是索引值,确保为数字类型
15365
+ if (tab.name === undefined) {
15366
+ this.currentName = Number(this.currentName);
15367
+ }
15368
+ this.$emit('input', this.currentName);
15369
+ this.$emit('change', this.currentName, index);
15370
+ // 切换标签后,滚动到当前标签
15371
+ this.$nextTick(() => {
15372
+ this.scrollToActiveTab();
15373
+ });
15374
+ }
15375
+ },
15376
+ scrollToActiveTab() {
15377
+ const scrollWrapper = this.$refs.nav; // 修改这里
15378
+ const tabItems = this.$refs.tabItems;
15379
+ if (!scrollWrapper || !tabItems || tabItems.length === 0) {
15380
+ return;
15381
+ }
15382
+ const activeIndex = this.tabs.findIndex((tab, index) => {
15383
+ return this.isTabActive(tab, index);
15384
+ });
15385
+ const activeTab = tabItems[activeIndex];
15386
+ if (activeTab) {
15387
+ const tabOffsetLeft = activeTab.offsetLeft;
15388
+ const tabWidth = activeTab.offsetWidth;
15389
+ const wrapperWidth = scrollWrapper.offsetWidth;
15390
+ const scrollLeft = tabOffsetLeft - (wrapperWidth - tabWidth) / 2;
15391
+ scrollWrapper.scrollTo({
15329
15392
  left: scrollLeft,
15330
- behavior: "smooth"
15393
+ behavior: 'smooth'
15331
15394
  });
15332
15395
  }
15396
+ },
15397
+ renderTitle(titleEl, tab) {
15398
+ this.$nextTick(() => {
15399
+ const index = this.tabs.indexOf(tab);
15400
+ if (index !== -1 && this.$refs.title && this.$refs.title[index]) {
15401
+ const navTitleEl = this.$refs.title[index];
15402
+ // 清空导航标题元素的内容
15403
+ navTitleEl.innerHTML = '';
15404
+ // 将子组件的 title 插槽内容移动到导航标题元素中
15405
+ while (titleEl.firstChild) {
15406
+ navTitleEl.appendChild(titleEl.firstChild);
15407
+ }
15408
+ }
15409
+ });
15333
15410
  }
15334
15411
  },
15335
15412
  mounted() {
15336
- // 组件挂载后更新导航列表
15337
- // this.updateNav();
15413
+ if (this.currentName !== undefined) {
15414
+ this.setCurrentName(this.currentName);
15415
+ } else if (this.tabs.length > 0) {
15416
+ const firstTab = this.tabs[0];
15417
+ this.currentName = firstTab.name !== undefined ? firstTab.name : 0;
15418
+ }
15419
+ // 初始加载时,滚动到当前激活的标签
15420
+ this.$nextTick(() => {
15421
+ this.scrollToActiveTab();
15422
+ });
15338
15423
  }
15339
15424
  });
15340
15425
  // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=script&lang=js
15341
15426
  /* harmony default export */ var components_tabsvue_type_script_lang_js = (tabsvue_type_script_lang_js);
15342
- // EXTERNAL MODULE: ./packages/components/tabs/index.vue?vue&type=style&index=0&id=05020deb&prod&lang=less
15343
- var tabsvue_type_style_index_0_id_05020deb_prod_lang_less = __webpack_require__("5806");
15427
+ // EXTERNAL MODULE: ./packages/components/tabs/index.vue?vue&type=style&index=0&id=6cfdbc71&prod&lang=less
15428
+ var tabsvue_type_style_index_0_id_6cfdbc71_prod_lang_less = __webpack_require__("230a");
15344
15429
 
15345
15430
  // CONCATENATED MODULE: ./packages/components/tabs/index.vue
15346
15431
 
@@ -15353,8 +15438,8 @@ var tabsvue_type_style_index_0_id_05020deb_prod_lang_less = __webpack_require__(
15353
15438
 
15354
15439
  var tabs_component = normalizeComponent(
15355
15440
  components_tabsvue_type_script_lang_js,
15356
- tabsvue_type_template_id_05020deb_render,
15357
- tabsvue_type_template_id_05020deb_staticRenderFns,
15441
+ tabsvue_type_template_id_6cfdbc71_render,
15442
+ tabsvue_type_template_id_6cfdbc71_staticRenderFns,
15358
15443
  false,
15359
15444
  null,
15360
15445
  null,
@@ -15363,55 +15448,104 @@ var tabs_component = normalizeComponent(
15363
15448
  )
15364
15449
 
15365
15450
  /* harmony default export */ var tabs = (tabs_component.exports);
15366
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/tab/index.vue?vue&type=template&id=5508445c
15367
- var tabvue_type_template_id_5508445c_render = function render() {
15451
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/tab/index.vue?vue&type=template&id=6808f4f4
15452
+ var tabvue_type_template_id_6808f4f4_render = function render() {
15368
15453
  var _vm = this,
15369
15454
  _c = _vm._self._c;
15370
15455
  return _c('div', {
15371
- class: _vm.tabClasses
15372
- }, [_vm._t("default")], 2);
15456
+ directives: [{
15457
+ name: "show",
15458
+ rawName: "v-show",
15459
+ value: _vm.shouldShow,
15460
+ expression: "shouldShow"
15461
+ }],
15462
+ class: _vm.paneClasses
15463
+ }, [_vm.shouldRender ? _vm._t("default") : _vm._e(), _vm.$slots.title ? _c('div', {
15464
+ ref: "title"
15465
+ }, [_vm._t("title")], 2) : _vm._e()], 2);
15373
15466
  };
15374
- var tabvue_type_template_id_5508445c_staticRenderFns = [];
15467
+ var tabvue_type_template_id_6808f4f4_staticRenderFns = [];
15375
15468
 
15376
- // CONCATENATED MODULE: ./packages/components/tab/index.vue?vue&type=template&id=5508445c
15469
+ // CONCATENATED MODULE: ./packages/components/tab/index.vue?vue&type=template&id=6808f4f4
15377
15470
 
15378
15471
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/tab/index.vue?vue&type=script&lang=js
15379
15472
  /* harmony default export */ var tabvue_type_script_lang_js = ({
15380
15473
  name: 'vd-tab',
15381
15474
  props: {
15382
15475
  name: [String, Number],
15383
- title: {
15384
- type: String,
15385
- required: true
15386
- },
15387
- arrow: {
15388
- type: Boolean,
15389
- default: false
15390
- }
15476
+ title: String
15391
15477
  },
15392
15478
  data() {
15393
- return {};
15479
+ return {
15480
+ parent: null,
15481
+ inited: false
15482
+ };
15394
15483
  },
15395
- watch: {},
15396
15484
  computed: {
15397
- isActive() {
15398
- return this.computedName === this.$parent.currentValue;
15399
- },
15400
- tabClasses() {
15485
+ paneClasses() {
15401
15486
  return {
15402
- 'vd-tab': true,
15403
- 'vd-tab-active': this.isActive
15487
+ 'vd-tab__pane': true
15404
15488
  };
15405
15489
  },
15406
- computedName() {
15407
- return this.name != null ? this.name : this.$parent.tabs.indexOf(this);
15490
+ isActive() {
15491
+ if (!this.parent) return false;
15492
+ if (this.name !== undefined) {
15493
+ return this.name === this.parent.currentName;
15494
+ } else {
15495
+ const index = this.parent.tabs.indexOf(this);
15496
+ return index === Number(this.parent.currentName);
15497
+ }
15498
+ },
15499
+ shouldShow() {
15500
+ // 当 animated 为 true 时,所有标签页都需要渲染(用于动画效果)
15501
+ // 当 animated 为 false 时,只渲染当前激活的标签页
15502
+ return this.isActive || this.parent && this.parent.animated;
15503
+ },
15504
+ shouldRender() {
15505
+ return this.inited || !(this.parent && this.parent.lazyRender);
15506
+ }
15507
+ },
15508
+ watch: {
15509
+ isActive(val) {
15510
+ if (val) {
15511
+ this.inited = true;
15512
+ }
15408
15513
  }
15409
15514
  },
15410
15515
  created() {
15411
- this.$parent.registerTab(this);
15516
+ this.parent = this.findParent('vd-tabs');
15517
+ if (this.parent) {
15518
+ this.parent.addTab(this);
15519
+ } else {
15520
+ console.error('vd-tab must be used within vd-tabs.');
15521
+ }
15522
+ },
15523
+ mounted() {
15524
+ if (this.isActive) {
15525
+ this.inited = true;
15526
+ }
15527
+ // 如果存在 title 插槽,调用父组件的 renderTitle 方法
15528
+ if (this.$slots.title && this.$refs.title) {
15529
+ this.parent.renderTitle(this.$refs.title, this);
15530
+ this.$refs.title.parentNode.removeChild(this.$refs.title);
15531
+ }
15412
15532
  },
15413
15533
  beforeDestroy() {
15414
- this.$parent.unregisterTab(this);
15534
+ if (this.parent) {
15535
+ this.parent.removeTab(this);
15536
+ }
15537
+ },
15538
+ methods: {
15539
+ findParent(name) {
15540
+ let parent = this.$parent;
15541
+ while (parent) {
15542
+ if (parent.$options && parent.$options.name === name) {
15543
+ return parent;
15544
+ }
15545
+ parent = parent.$parent;
15546
+ }
15547
+ return null;
15548
+ }
15415
15549
  }
15416
15550
  });
15417
15551
  // CONCATENATED MODULE: ./packages/components/tab/index.vue?vue&type=script&lang=js
@@ -15426,8 +15560,8 @@ var tabvue_type_template_id_5508445c_staticRenderFns = [];
15426
15560
 
15427
15561
  var tab_component = normalizeComponent(
15428
15562
  components_tabvue_type_script_lang_js,
15429
- tabvue_type_template_id_5508445c_render,
15430
- tabvue_type_template_id_5508445c_staticRenderFns,
15563
+ tabvue_type_template_id_6808f4f4_render,
15564
+ tabvue_type_template_id_6808f4f4_staticRenderFns,
15431
15565
  false,
15432
15566
  null,
15433
15567
  null,
@@ -16243,8 +16377,8 @@ var result_component = normalizeComponent(
16243
16377
  )
16244
16378
 
16245
16379
  /* harmony default export */ var components_result = (result_component.exports);
16246
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/empty/index.vue?vue&type=template&id=6b1dc9b5
16247
- var emptyvue_type_template_id_6b1dc9b5_render = function render() {
16380
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/empty/index.vue?vue&type=template&id=8154a18e
16381
+ var emptyvue_type_template_id_8154a18e_render = function render() {
16248
16382
  var _vm = this,
16249
16383
  _c = _vm._self._c;
16250
16384
  return _c('div', {
@@ -16269,9 +16403,9 @@ var emptyvue_type_template_id_6b1dc9b5_render = function render() {
16269
16403
  class: _vm.footerClasses
16270
16404
  }, [_vm._t("default")], 2) : _vm._e()]);
16271
16405
  };
16272
- var emptyvue_type_template_id_6b1dc9b5_staticRenderFns = [];
16406
+ var emptyvue_type_template_id_8154a18e_staticRenderFns = [];
16273
16407
 
16274
- // CONCATENATED MODULE: ./packages/components/empty/index.vue?vue&type=template&id=6b1dc9b5
16408
+ // CONCATENATED MODULE: ./packages/components/empty/index.vue?vue&type=template&id=8154a18e
16275
16409
 
16276
16410
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/empty/index.vue?vue&type=script&lang=js
16277
16411
 
@@ -16283,12 +16417,11 @@ const emptyvue_type_script_lang_js_prefixCls = 'vd-empty';
16283
16417
  props: {
16284
16418
  image: {
16285
16419
  type: String,
16286
- default: 'nodata',
16287
- // 默认类型
16288
- validator(value) {
16289
- // 只接受以下类型值
16290
- return ['nodata', 'network', 'notfound', 'noposition', 'nomargin', 'nocoupons', 'nosearch', 'nonotice', 'noorders', 'noocomments'].includes(value);
16291
- }
16420
+ default: 'nodata' // 默认类型
16421
+ // validator(value) {
16422
+ // // 只接受以下类型值
16423
+ // return ['nodata', 'network', 'notfound','noposition','nomargin','nocoupons','nosearch','nonotice','noorders','noocomments'].includes(value);
16424
+ // }
16292
16425
  },
16293
16426
  description: String,
16294
16427
  size: {
@@ -16385,8 +16518,8 @@ const emptyvue_type_script_lang_js_prefixCls = 'vd-empty';
16385
16518
  });
16386
16519
  // CONCATENATED MODULE: ./packages/components/empty/index.vue?vue&type=script&lang=js
16387
16520
  /* harmony default export */ var components_emptyvue_type_script_lang_js = (emptyvue_type_script_lang_js);
16388
- // EXTERNAL MODULE: ./packages/components/empty/index.vue?vue&type=style&index=0&id=6b1dc9b5&prod&lang=less
16389
- var emptyvue_type_style_index_0_id_6b1dc9b5_prod_lang_less = __webpack_require__("a723");
16521
+ // EXTERNAL MODULE: ./packages/components/empty/index.vue?vue&type=style&index=0&id=8154a18e&prod&lang=less
16522
+ var emptyvue_type_style_index_0_id_8154a18e_prod_lang_less = __webpack_require__("dd42");
16390
16523
 
16391
16524
  // CONCATENATED MODULE: ./packages/components/empty/index.vue
16392
16525
 
@@ -16399,8 +16532,8 @@ var emptyvue_type_style_index_0_id_6b1dc9b5_prod_lang_less = __webpack_require__
16399
16532
 
16400
16533
  var empty_component = normalizeComponent(
16401
16534
  components_emptyvue_type_script_lang_js,
16402
- emptyvue_type_template_id_6b1dc9b5_render,
16403
- emptyvue_type_template_id_6b1dc9b5_staticRenderFns,
16535
+ emptyvue_type_template_id_8154a18e_render,
16536
+ emptyvue_type_template_id_8154a18e_staticRenderFns,
16404
16537
  false,
16405
16538
  null,
16406
16539
  null,
@@ -19667,9 +19800,6 @@ var slidervue_type_template_id_0aaac588_staticRenderFns = [function () {
19667
19800
 
19668
19801
  // CONCATENATED MODULE: ./packages/components/slider/index.vue?vue&type=template&id=0aaac588
19669
19802
 
19670
- // EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm.js
19671
- var vue_runtime_esm = __webpack_require__("2b0e");
19672
-
19673
19803
  // CONCATENATED MODULE: ./packages/components/slider/draggable.js
19674
19804
  let isDragging = false;
19675
19805
 
@@ -20773,21 +20903,32 @@ var toast_component = normalizeComponent(
20773
20903
 
20774
20904
 
20775
20905
 
20776
- let timer = null;
20777
- let currentToast = null;
20906
+
20907
+ let queueResult = [];
20908
+ function getType(value) {
20909
+ if (value !== value) return 'NaN';
20910
+ return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
20911
+ }
20778
20912
  class toast_VdToast extends vue_runtime_esm["a" /* default */].extend(components_toast) {
20779
20913
  constructor(options) {
20780
20914
  super();
20781
20915
  this.vm = this.$mount();
20916
+ this.timer = null;
20782
20917
 
20783
- // 支持字符串或对象传入
20918
+ // 判断传入的 options 类型,并进行赋值
20784
20919
  if (typeof options === 'string' || typeof options === 'number') {
20785
20920
  this.message = options;
20786
- } else if (typeof options === 'object') {
20921
+ } else if (getType(options) === 'object') {
20922
+ this.message = options.message || '';
20923
+ this.duration = options.duration || 1500;
20787
20924
  Object.assign(this, options);
20788
20925
  }
20789
20926
  this.init();
20790
20927
  }
20928
+
20929
+ /**
20930
+ * 初始化方法
20931
+ */
20791
20932
  init() {
20792
20933
  if (inBrowser) {
20793
20934
  document.body.appendChild(this.vm.$el);
@@ -20795,54 +20936,46 @@ class toast_VdToast extends vue_runtime_esm["a" /* default */].extend(components
20795
20936
  }
20796
20937
  }
20797
20938
  start() {
20798
- clearTimeout(timer);
20799
- timer = setTimeout(() => {
20939
+ clearTimeout(this.timer);
20940
+ /**
20941
+ * 在挂载真实 DOM 树后显示过渡效果
20942
+ */
20943
+ setTimeout(() => {
20800
20944
  this.isShow = true;
20801
20945
  if (this.duration > 0) {
20802
20946
  this.end();
20803
20947
  }
20804
- }, 100);
20948
+ }, 0);
20805
20949
  }
20806
20950
  end() {
20807
- clearTimeout(timer);
20808
- if (this.duration > 0) {
20809
- timer = setTimeout(() => {
20810
- this.isShow = false;
20811
- setTimeout(() => {
20812
- // 检查元素是否仍在 DOM 中
20813
- if (inBrowser && document.body.contains(this.vm.$el)) {
20814
- document.body.removeChild(this.vm.$el);
20815
- }
20816
- }, 500);
20817
- }, this.duration);
20818
- }
20951
+ /**
20952
+ * 关闭过渡效果之后移除真实 DOM 树节点
20953
+ */
20954
+ this.timer = setTimeout(() => {
20955
+ this.clear();
20956
+ }, this.duration);
20819
20957
  }
20820
20958
  clear() {
20821
20959
  this.isShow = false;
20822
- clearTimeout(timer);
20823
- // 检查元素是否仍在 DOM 中
20824
- if (inBrowser && document.body.contains(this.vm.$el)) {
20825
- document.body.removeChild(this.vm.$el);
20960
+ if (inBrowser && this.vm.$el) {
20961
+ setTimeout(() => {
20962
+ this.vm.$el.parentNode && this.vm.$el.parentNode.removeChild(this.vm.$el);
20963
+ }, 500);
20826
20964
  }
20827
20965
  }
20828
20966
  }
20829
-
20830
- // 创建静态方法以支持直接调用
20831
- const showToast = options => {
20832
- currentToast && currentToast.clear(); // 清除现有的 toast
20833
- currentToast = new toast_VdToast(options); // 创建新的 toast 实例
20834
- return currentToast;
20967
+ const Toast = options => {
20968
+ const NewOption = new toast_VdToast(options);
20969
+ queueResult.push(NewOption);
20970
+ return NewOption;
20835
20971
  };
20836
-
20837
- // 添加静态方法,支持手动清除
20838
- showToast.clear = () => {
20839
- currentToast && currentToast.clear();
20840
- currentToast = null;
20972
+ Toast.clear = () => {
20973
+ queueResult.forEach(toast => {
20974
+ toast.clear();
20975
+ });
20976
+ queueResult = [];
20841
20977
  };
20842
-
20843
- // 在 Vue 的原型上挂载,方便全局调用
20844
- vue_runtime_esm["a" /* default */].prototype.$VdToast = showToast;
20845
- /* harmony default export */ var packages_components_toast = (showToast);
20978
+ /* harmony default export */ var packages_components_toast = (Toast);
20846
20979
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"75d8bda1-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/components/footer/index.vue?vue&type=template&id=2c9567c1
20847
20980
  var footervue_type_template_id_2c9567c1_render = function render() {
20848
20981
  var _vm = this,
@@ -23687,7 +23820,7 @@ Overlay.props = {
23687
23820
  };
23688
23821
  /* harmony default export */ var vant_es_overlay = (overlay_createComponent(Overlay));
23689
23822
  // CONCATENATED MODULE: ./node_modules/vant/es/utils/dom/node.js
23690
- function removeNode(el) {
23823
+ function node_removeNode(el) {
23691
23824
  var parent = el.parentNode;
23692
23825
 
23693
23826
  if (parent) {
@@ -23768,7 +23901,7 @@ function removeOverlay(vm) {
23768
23901
  var item = context_context.find(vm);
23769
23902
 
23770
23903
  if (item) {
23771
- removeNode(item.overlay.$el);
23904
+ node_removeNode(item.overlay.$el);
23772
23905
  context_context.remove(vm);
23773
23906
  }
23774
23907
  }
@@ -23991,7 +24124,7 @@ function PopupMixin(options) {
23991
24124
  }
23992
24125
 
23993
24126
  if (this.getContainer) {
23994
- removeNode(this.$el);
24127
+ node_removeNode(this.$el);
23995
24128
  }
23996
24129
  },
23997
24130
 
@@ -24577,7 +24710,7 @@ var Toast_createNamespace = Object(create["a" /* createNamespace */])('toast'),
24577
24710
  Toast_createComponent = Toast_createNamespace[0],
24578
24711
  Toast_bem = Toast_createNamespace[1];
24579
24712
 
24580
- /* harmony default export */ var Toast = (Toast_createComponent({
24713
+ /* harmony default export */ var toast_Toast = (Toast_createComponent({
24581
24714
  mixins: [PopupMixin()],
24582
24715
  props: {
24583
24716
  icon: String,
@@ -24764,7 +24897,7 @@ function parseOptions(message) {
24764
24897
  };
24765
24898
  }
24766
24899
 
24767
- function isInDocument(element) {
24900
+ function toast_isInDocument(element) {
24768
24901
  return document.body.contains(element);
24769
24902
  }
24770
24903
 
@@ -24775,11 +24908,11 @@ function createInstance() {
24775
24908
  }
24776
24909
 
24777
24910
  queue = queue.filter(function (item) {
24778
- return !item.$el.parentNode || isInDocument(item.$el);
24911
+ return !item.$el.parentNode || toast_isInDocument(item.$el);
24779
24912
  });
24780
24913
 
24781
24914
  if (!queue.length || multiple) {
24782
- var toast = new (vue_runtime_esm["a" /* default */].extend(Toast))({
24915
+ var toast = new (vue_runtime_esm["a" /* default */].extend(toast_Toast))({
24783
24916
  el: document.createElement('div')
24784
24917
  });
24785
24918
  toast.$on('input', function (value) {
@@ -24800,7 +24933,7 @@ function transformOptions(options) {
24800
24933
  });
24801
24934
  }
24802
24935
 
24803
- function toast_Toast(options) {
24936
+ function es_toast_Toast(options) {
24804
24937
  if (options === void 0) {
24805
24938
  options = {};
24806
24939
  }
@@ -24830,7 +24963,7 @@ function toast_Toast(options) {
24830
24963
  queue = queue.filter(function (item) {
24831
24964
  return item !== toast;
24832
24965
  });
24833
- removeNode(toast.$el);
24966
+ node_removeNode(toast.$el);
24834
24967
  toast.$destroy();
24835
24968
  });
24836
24969
  }
@@ -24851,17 +24984,17 @@ function toast_Toast(options) {
24851
24984
 
24852
24985
  var toast_createMethod = function createMethod(type) {
24853
24986
  return function (options) {
24854
- return toast_Toast(_extends({
24987
+ return es_toast_Toast(_extends({
24855
24988
  type: type
24856
24989
  }, parseOptions(options)));
24857
24990
  };
24858
24991
  };
24859
24992
 
24860
24993
  ['loading', 'success', 'fail'].forEach(function (method) {
24861
- toast_Toast[method] = toast_createMethod(method);
24994
+ es_toast_Toast[method] = toast_createMethod(method);
24862
24995
  });
24863
24996
 
24864
- toast_Toast.clear = function (all) {
24997
+ es_toast_Toast.clear = function (all) {
24865
24998
  if (queue.length) {
24866
24999
  if (all) {
24867
25000
  queue.forEach(function (toast) {
@@ -24876,7 +25009,7 @@ toast_Toast.clear = function (all) {
24876
25009
  }
24877
25010
  };
24878
25011
 
24879
- toast_Toast.setDefaultOptions = function (type, options) {
25012
+ es_toast_Toast.setDefaultOptions = function (type, options) {
24880
25013
  if (typeof type === 'string') {
24881
25014
  defaultOptionsMap[type] = options;
24882
25015
  } else {
@@ -24884,7 +25017,7 @@ toast_Toast.setDefaultOptions = function (type, options) {
24884
25017
  }
24885
25018
  };
24886
25019
 
24887
- toast_Toast.resetDefaultOptions = function (type) {
25020
+ es_toast_Toast.resetDefaultOptions = function (type) {
24888
25021
  if (typeof type === 'string') {
24889
25022
  defaultOptionsMap[type] = null;
24890
25023
  } else {
@@ -24893,7 +25026,7 @@ toast_Toast.resetDefaultOptions = function (type) {
24893
25026
  }
24894
25027
  };
24895
25028
 
24896
- toast_Toast.allowMultiple = function (value) {
25029
+ es_toast_Toast.allowMultiple = function (value) {
24897
25030
  if (value === void 0) {
24898
25031
  value = true;
24899
25032
  }
@@ -24901,12 +25034,12 @@ toast_Toast.allowMultiple = function (value) {
24901
25034
  multiple = value;
24902
25035
  };
24903
25036
 
24904
- toast_Toast.install = function () {
24905
- vue_runtime_esm["a" /* default */].use(Toast);
25037
+ es_toast_Toast.install = function () {
25038
+ vue_runtime_esm["a" /* default */].use(toast_Toast);
24906
25039
  };
24907
25040
 
24908
- vue_runtime_esm["a" /* default */].prototype.$toast = toast_Toast;
24909
- /* harmony default export */ var vant_es_toast = (toast_Toast);
25041
+ vue_runtime_esm["a" /* default */].prototype.$toast = es_toast_Toast;
25042
+ /* harmony default export */ var vant_es_toast = (es_toast_Toast);
24910
25043
  // CONCATENATED MODULE: ./node_modules/vant/es/calendar/components/Month.js
24911
25044
 
24912
25045
 
@@ -26095,11 +26228,11 @@ var dropdownvue_type_template_id_34f6aea4_staticRenderFns = [];
26095
26228
  /* istanbul ignore next */
26096
26229
 
26097
26230
 
26098
- const isServer = vue_runtime_esm["a" /* default */].prototype.$isServer;
26231
+ const dom_isServer = vue_runtime_esm["a" /* default */].prototype.$isServer;
26099
26232
  /* istanbul ignore next */
26100
26233
  const dom_on = function () {
26101
26234
  // 添加事件监听器
26102
- if (!isServer && document.addEventListener) {
26235
+ if (!dom_isServer && document.addEventListener) {
26103
26236
  return function (element, event, handler) {
26104
26237
  if (element && event && handler) {
26105
26238
  element.addEventListener(event, handler, false);
@@ -26118,7 +26251,7 @@ const dom_on = function () {
26118
26251
  /* istanbul ignore next */
26119
26252
  const dom_off = function () {
26120
26253
  // 移除事件监听器
26121
- if (!isServer && document.removeEventListener) {
26254
+ if (!dom_isServer && document.removeEventListener) {
26122
26255
  return function (element, event, handler) {
26123
26256
  if (element && event) {
26124
26257
  element.removeEventListener(event, handler, false);
@@ -26912,7 +27045,7 @@ var state_component = normalizeComponent(
26912
27045
 
26913
27046
 
26914
27047
 
26915
- // import HToast from '@p/components/toast/index.vue';
27048
+ // import HToast from './components/toast/index.vue';
26916
27049
 
26917
27050
 
26918
27051
 
@@ -26939,6 +27072,7 @@ const API = {
26939
27072
  };
26940
27073
  const install = Vue => {
26941
27074
  if (install.installed) return;
27075
+ install.installed = true;
26942
27076
  // 注册组件
26943
27077
  components.map(component => {
26944
27078
  component && component.name && Vue.component(component.name, component);