vdesign-ui 0.2.13 → 0.2.15

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.
@@ -1690,17 +1690,6 @@ module.exports = function (it) {
1690
1690
  /* unused harmony reexport * */
1691
1691
 
1692
1692
 
1693
- /***/ }),
1694
-
1695
- /***/ "72cb":
1696
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
1697
-
1698
- "use strict";
1699
- /* 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_67d93971_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e8a4");
1700
- /* 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_67d93971_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_67d93971_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
1701
- /* unused harmony reexport * */
1702
-
1703
-
1704
1693
  /***/ }),
1705
1694
 
1706
1695
  /***/ "7323":
@@ -1817,6 +1806,17 @@ module.exports = function (argument) {
1817
1806
  };
1818
1807
 
1819
1808
 
1809
+ /***/ }),
1810
+
1811
+ /***/ "82e0":
1812
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1813
+
1814
+ "use strict";
1815
+ /* 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_e7b9f8aa_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e217");
1816
+ /* 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_e7b9f8aa_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_e7b9f8aa_prod_lang_less__WEBPACK_IMPORTED_MODULE_0__);
1817
+ /* unused harmony reexport * */
1818
+
1819
+
1820
1820
  /***/ }),
1821
1821
 
1822
1822
  /***/ "836c":
@@ -3337,6 +3337,13 @@ module.exports = function (V, P) {
3337
3337
  /* unused harmony reexport * */
3338
3338
 
3339
3339
 
3340
+ /***/ }),
3341
+
3342
+ /***/ "e217":
3343
+ /***/ (function(module, exports, __webpack_require__) {
3344
+
3345
+ // extracted by mini-css-extract-plugin
3346
+
3340
3347
  /***/ }),
3341
3348
 
3342
3349
  /***/ "e330":
@@ -3425,13 +3432,6 @@ module.exports = function (target, source, exceptions) {
3425
3432
  };
3426
3433
 
3427
3434
 
3428
- /***/ }),
3429
-
3430
- /***/ "e8a4":
3431
- /***/ (function(module, exports, __webpack_require__) {
3432
-
3433
- // extracted by mini-css-extract-plugin
3434
-
3435
3435
  /***/ }),
3436
3436
 
3437
3437
  /***/ "e8b5":
@@ -6924,8 +6924,8 @@ var button_component = normalizeComponent(
6924
6924
  )
6925
6925
 
6926
6926
  /* harmony default export */ var components_button = (button_component.exports);
6927
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"de67888a-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=67d93971
6928
- var tabsvue_type_template_id_67d93971_render = function render() {
6927
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"de67888a-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=e7b9f8aa
6928
+ var tabsvue_type_template_id_e7b9f8aa_render = function render() {
6929
6929
  var _vm = this,
6930
6930
  _c = _vm._self._c;
6931
6931
  return _c('div', {
@@ -6977,9 +6977,9 @@ var tabsvue_type_template_id_67d93971_render = function render() {
6977
6977
  style: _vm.trackStyle
6978
6978
  }, [_vm._t("default")], 2) : _vm._t("default")], 2)]);
6979
6979
  };
6980
- var tabsvue_type_template_id_67d93971_staticRenderFns = [];
6980
+ var tabsvue_type_template_id_e7b9f8aa_staticRenderFns = [];
6981
6981
 
6982
- // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=template&id=67d93971
6982
+ // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=template&id=e7b9f8aa
6983
6983
 
6984
6984
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
6985
6985
  var es_array_push = __webpack_require__("14d9");
@@ -7192,30 +7192,48 @@ const prefixCls = "vd-tabs";
7192
7192
  if (tab.disabled) {
7193
7193
  this.$emit('disabled', tab.name !== undefined ? tab.name : index, index);
7194
7194
  } else {
7195
- this.currentName = tab.name !== undefined ? tab.name : index;
7196
- // 如果 currentName 是索引值,确保为数字类型
7197
- if (tab.name === undefined) {
7198
- this.currentName = Number(this.currentName);
7195
+ const newName = tab.name !== undefined ? tab.name : index;
7196
+
7197
+ // 始终触发 click 事件
7198
+ this.$emit('click', newName, index);
7199
+
7200
+ // 检查是否需要切换标签
7201
+ if (newName !== this.currentName) {
7202
+ this.currentName = newName;
7203
+
7204
+ // 如果 currentName 是索引值,确保为数字类型
7205
+ if (tab.name === undefined) {
7206
+ this.currentName = Number(this.currentName);
7207
+ }
7208
+ this.$emit('input', this.currentName);
7209
+ this.$emit('change', this.currentName, index); // 仅在切换时触发 change 事件
7210
+
7211
+ // 切换标签后,滚动到当前标签
7212
+ this.$nextTick(() => {
7213
+ this.scrollToActiveTab();
7214
+ });
7199
7215
  }
7200
- this.$emit('input', this.currentName);
7201
- this.$emit('change', this.currentName, index);
7202
- // 切换标签后,滚动到当前标签
7203
- this.$nextTick(() => {
7204
- this.scrollToActiveTab();
7205
- });
7206
7216
  }
7207
7217
  },
7208
- scrollToActiveTab() {
7209
- const scrollWrapper = this.$refs.nav; // 修改这里
7218
+ scrollToActiveTab(targetIndex = null) {
7219
+ const scrollWrapper = this.$refs.nav;
7210
7220
  const tabItems = this.$refs.tabItems;
7211
7221
  if (!scrollWrapper || !tabItems || tabItems.length === 0) {
7212
7222
  return;
7213
7223
  }
7214
- const activeIndex = this.tabs.findIndex((tab, index) => {
7215
- return this.isTabActive(tab, index);
7216
- });
7224
+ // 如果传入 targetIndex,设置当前激活标签的 name
7225
+ if (targetIndex !== null) {
7226
+ const targetTab = this.tabs[targetIndex];
7227
+ if (targetTab) {
7228
+ this.currentName = targetTab.name !== undefined ? targetTab.name : targetIndex;
7229
+ } else {
7230
+ console.warn('Invalid target index:', targetIndex);
7231
+ return;
7232
+ }
7233
+ }
7234
+ const activeIndex = targetIndex !== null ? targetIndex : this.tabs.findIndex((tab, index) => this.isTabActive(tab, index));
7217
7235
  const activeTab = tabItems[activeIndex];
7218
- if (activeTab) {
7236
+ setTimeout(() => {
7219
7237
  const tabOffsetLeft = activeTab.offsetLeft;
7220
7238
  const tabWidth = activeTab.offsetWidth;
7221
7239
  const wrapperWidth = scrollWrapper.offsetWidth;
@@ -7224,7 +7242,7 @@ const prefixCls = "vd-tabs";
7224
7242
  left: scrollLeft,
7225
7243
  behavior: 'smooth'
7226
7244
  });
7227
- }
7245
+ }, 0); // You can adjust the timeout value if needed
7228
7246
  },
7229
7247
  renderTitle(titleEl, tab) {
7230
7248
  this.$nextTick(() => {
@@ -7239,6 +7257,26 @@ const prefixCls = "vd-tabs";
7239
7257
  }
7240
7258
  }
7241
7259
  });
7260
+ },
7261
+ /**
7262
+ * resize 方法
7263
+ * 当外层元素大小或组件显示状态变化时调用,触发重绘
7264
+ */
7265
+ resize() {
7266
+ // 重新计算当前激活标签的位置
7267
+ this.scrollToActiveTab();
7268
+ // 如果有其他需要重绘或重新计算的逻辑,可以在这里添加
7269
+ // 例如,重新计算动画轨道的位置等
7270
+ },
7271
+ /**
7272
+ * scrollTo 方法
7273
+ * 刷新页面,滚动到指定位置
7274
+ */
7275
+ scrollTo(targetIndex = null) {
7276
+ // 重新计算当前激活标签的位置
7277
+ this.scrollToActiveTab(targetIndex);
7278
+ // 如果有其他需要重绘或重新计算的逻辑,可以在这里添加
7279
+ // 例如,重新计算动画轨道的位置等
7242
7280
  }
7243
7281
  },
7244
7282
  mounted() {
@@ -7256,8 +7294,8 @@ const prefixCls = "vd-tabs";
7256
7294
  });
7257
7295
  // CONCATENATED MODULE: ./packages/components/tabs/index.vue?vue&type=script&lang=js
7258
7296
  /* harmony default export */ var components_tabsvue_type_script_lang_js = (tabsvue_type_script_lang_js);
7259
- // EXTERNAL MODULE: ./packages/components/tabs/index.vue?vue&type=style&index=0&id=67d93971&prod&lang=less
7260
- var tabsvue_type_style_index_0_id_67d93971_prod_lang_less = __webpack_require__("72cb");
7297
+ // EXTERNAL MODULE: ./packages/components/tabs/index.vue?vue&type=style&index=0&id=e7b9f8aa&prod&lang=less
7298
+ var tabsvue_type_style_index_0_id_e7b9f8aa_prod_lang_less = __webpack_require__("82e0");
7261
7299
 
7262
7300
  // CONCATENATED MODULE: ./packages/components/tabs/index.vue
7263
7301
 
@@ -7270,8 +7308,8 @@ var tabsvue_type_style_index_0_id_67d93971_prod_lang_less = __webpack_require__(
7270
7308
 
7271
7309
  var tabs_component = normalizeComponent(
7272
7310
  components_tabsvue_type_script_lang_js,
7273
- tabsvue_type_template_id_67d93971_render,
7274
- tabsvue_type_template_id_67d93971_staticRenderFns,
7311
+ tabsvue_type_template_id_e7b9f8aa_render,
7312
+ tabsvue_type_template_id_e7b9f8aa_staticRenderFns,
7275
7313
  false,
7276
7314
  null,
7277
7315
  null,