@weitutech/by-components 1.1.104 → 1.1.106

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.
@@ -76934,12 +76934,14 @@ var ByTreeSearch_component = normalizeComponent(
76934
76934
  )
76935
76935
 
76936
76936
  /* harmony default export */ var ByTreeSearch = (ByTreeSearch_component.exports);
76937
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=template&id=3da494cf
76938
- var ByDialogvue_type_template_id_3da494cf_render = function render() {
76937
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=template&id=571b0f54
76938
+ var ByDialogvue_type_template_id_571b0f54_render = function render() {
76939
76939
  var _vm = this,
76940
76940
  _c = _vm._self._c;
76941
76941
  return _c('el-dialog', _vm._g(_vm._b({
76942
- class: ['by-dialog', _vm.customClass],
76942
+ class: ['by-dialog', {
76943
+ 'by-dialog--with-header': !!_vm.$slots.header
76944
+ }, _vm.customClass],
76943
76945
  attrs: {
76944
76946
  "visible": _vm.dialogVisible,
76945
76947
  "title": _vm.title
@@ -76950,8 +76952,12 @@ var ByDialogvue_type_template_id_3da494cf_render = function render() {
76950
76952
  },
76951
76953
  "close": _vm.handleClose
76952
76954
  }
76953
- }, 'el-dialog', _vm.dialogAttrs, false), _vm.$listeners), [_c('div', {
76954
- staticClass: "by-dialog__body"
76955
+ }, 'el-dialog', _vm.dialogAttrs, false), _vm.$listeners), [_vm.$slots.header ? _c('div', {
76956
+ staticClass: "by-dialog__header"
76957
+ }, [_vm._t("header")], 2) : _vm._e(), _c('div', {
76958
+ class: ['by-dialog__body', {
76959
+ 'by-dialog__body--with-header': !!_vm.$slots.header
76960
+ }]
76955
76961
  }, [_vm.content ? _c('div', {
76956
76962
  staticClass: "by-dialog__content"
76957
76963
  }, [_vm._v(_vm._s(_vm.content))]) : _vm._e(), _vm._t("default")], 2), _vm.showFooter ? _c('div', {
@@ -77000,7 +77006,7 @@ var ByDialogvue_type_template_id_3da494cf_render = function render() {
77000
77006
  }, [_vm._v(" " + _vm._s(button.text) + " ")])];
77001
77007
  })], 2) : _vm._e()]), _vm._t("footer")], 2) : _vm._e()]);
77002
77008
  };
77003
- var ByDialogvue_type_template_id_3da494cf_staticRenderFns = [];
77009
+ var ByDialogvue_type_template_id_571b0f54_staticRenderFns = [];
77004
77010
 
77005
77011
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=script&lang=js
77006
77012
 
@@ -77149,8 +77155,8 @@ var ByDialogvue_type_template_id_3da494cf_staticRenderFns = [];
77149
77155
  ;
77150
77156
  var ByDialog_component = normalizeComponent(
77151
77157
  by_dialog_ByDialogvue_type_script_lang_js,
77152
- ByDialogvue_type_template_id_3da494cf_render,
77153
- ByDialogvue_type_template_id_3da494cf_staticRenderFns,
77158
+ ByDialogvue_type_template_id_571b0f54_render,
77159
+ ByDialogvue_type_template_id_571b0f54_staticRenderFns,
77154
77160
  false,
77155
77161
  null,
77156
77162
  null,
@@ -79022,8 +79028,8 @@ var ByCascaderPanel_component = normalizeComponent(
79022
79028
  )
79023
79029
 
79024
79030
  /* harmony default export */ var ByCascaderPanel = (ByCascaderPanel_component.exports);
79025
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=template&id=365e7526
79026
- var ByFloatingMenuvue_type_template_id_365e7526_render = function render() {
79031
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=template&id=4d9e17ff
79032
+ var ByFloatingMenuvue_type_template_id_4d9e17ff_render = function render() {
79027
79033
  var _vm = this,
79028
79034
  _c = _vm._self._c;
79029
79035
  return _c('div', {
@@ -79148,7 +79154,7 @@ var ByFloatingMenuvue_type_template_id_365e7526_render = function render() {
79148
79154
  }, [_vm._v(_vm._s(item.text))])]);
79149
79155
  }), 0)])], 1);
79150
79156
  };
79151
- var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79157
+ var ByFloatingMenuvue_type_template_id_4d9e17ff_staticRenderFns = [];
79152
79158
 
79153
79159
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=script&lang=js
79154
79160
  /* harmony default export */ var ByFloatingMenuvue_type_script_lang_js = ({
@@ -79185,14 +79191,6 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79185
79191
  }
79186
79192
  },
79187
79193
  data() {
79188
- // 在 data 中初始化位置,避免渲染时的位置跳动
79189
- const {
79190
- right,
79191
- bottom
79192
- } = this.position;
79193
- const windowHeight = typeof window !== 'undefined' ? window.innerHeight : 800;
79194
- const bottomValue = parseInt(bottom) || 20;
79195
- const mainButtonSize = this.getMainButtonSize();
79196
79194
  return {
79197
79195
  isExpanded: false,
79198
79196
  isHidden: false,
@@ -79204,12 +79202,9 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79204
79202
  },
79205
79203
  currentPosition: {
79206
79204
  x: 0,
79207
- y: windowHeight - bottomValue - mainButtonSize
79208
- },
79209
- menuStyle: {
79210
- right: right,
79211
- bottom: bottom
79205
+ y: 0
79212
79206
  },
79207
+ menuStyle: {},
79213
79208
  // 菜单项拖动相关
79214
79209
  menuItemDragStart: {
79215
79210
  x: 0,
@@ -79222,53 +79217,43 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79222
79217
  computed: {
79223
79218
  // 根据size属性计算实际大小
79224
79219
  mainButtonSize() {
79225
- return this.getMainButtonSize();
79220
+ const sizeMap = {
79221
+ mini: 40,
79222
+ small: 50,
79223
+ medium: 60
79224
+ };
79225
+ return sizeMap[this.size] || 50;
79226
79226
  }
79227
79227
  },
79228
79228
  mounted() {
79229
- // 位置已在 data 中初始化,这里只需要重新计算以确保准确性
79230
- this.refreshPosition();
79229
+ this.initPosition();
79231
79230
  this.bindEvents();
79232
- this.bindPageEvents();
79233
79231
  },
79234
79232
  beforeDestroy() {
79235
79233
  this.unbindEvents();
79236
- this.unbindPageEvents();
79237
79234
  this.removeShowButton();
79238
79235
  // 清理菜单项拖动事件监听器
79239
79236
  document.removeEventListener('mousemove', this.onMenuItemDrag);
79240
79237
  document.removeEventListener('mouseup', this.endMenuItemDrag);
79241
79238
  },
79242
79239
  methods: {
79243
- // 获取主按钮大小的辅助方法
79244
- getMainButtonSize() {
79245
- const sizeMap = {
79246
- mini: 40,
79247
- small: 50,
79248
- medium: 60
79249
- };
79250
- return sizeMap[this.size] || 50;
79251
- },
79252
- // 刷新位置(在 mounted 时重新计算以确保准确性)
79253
- refreshPosition() {
79240
+ // 初始化位置
79241
+ initPosition() {
79254
79242
  const {
79255
79243
  right,
79256
79244
  bottom
79257
79245
  } = this.position;
79258
- const windowHeight = window.innerHeight;
79259
- const bottomValue = parseInt(bottom) || 20;
79260
-
79261
- // 更新菜单样式
79262
79246
  this.menuStyle = {
79263
- ...this.menuStyle,
79264
79247
  right: right,
79265
79248
  bottom: bottom
79266
79249
  };
79267
79250
 
79268
- // 更新当前位置
79251
+ // 初始化当前位置
79252
+ const windowHeight = window.innerHeight;
79253
+ const bottomValue = parseInt(bottom) || 20;
79269
79254
  this.currentPosition = {
79270
79255
  x: 0,
79271
- y: windowHeight - bottomValue - this.mainButtonSize
79256
+ y: windowHeight - bottomValue - this.mainButtonSize // 使用动态主按钮大小
79272
79257
  };
79273
79258
  },
79274
79259
  // 切换菜单展开状态
@@ -79517,88 +79502,6 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79517
79502
  if (showBtn) {
79518
79503
  showBtn.remove();
79519
79504
  }
79520
- },
79521
- // ========== 外部调用方法 ==========
79522
-
79523
- // 显示悬浮菜单
79524
- show() {
79525
- if (this.isHidden) {
79526
- this.isHidden = false;
79527
- this.isExpanded = false;
79528
-
79529
- // 显示主菜单,保持当前位置
79530
- this.menuStyle = {
79531
- ...this.menuStyle,
79532
- right: '20px',
79533
- transition: 'right 0.3s ease, opacity 0.3s ease',
79534
- opacity: '1'
79535
- };
79536
- // 移除显示按钮
79537
- this.removeShowButton();
79538
- }
79539
- },
79540
- // 隐藏悬浮菜单
79541
- hide() {
79542
- if (!this.isHidden) {
79543
- this.isHidden = true;
79544
- this.isExpanded = false;
79545
-
79546
- // 保持当前纵向位置,只隐藏横向
79547
- this.menuStyle = {
79548
- ...this.menuStyle,
79549
- right: '-100px',
79550
- transition: 'right 0.3s ease',
79551
- opacity: '0'
79552
- };
79553
- // 移除显示按钮
79554
- this.removeShowButton();
79555
- }
79556
- },
79557
- // 完全移除显示按钮(用于页面切换时清理)
79558
- removeShowButtonOnly() {
79559
- this.removeShowButton();
79560
- },
79561
- // 获取当前隐藏状态
79562
- getHiddenState() {
79563
- return this.isHidden;
79564
- },
79565
- // 切换显示/隐藏状态
79566
- toggle() {
79567
- this.toggleHide();
79568
- },
79569
- // 绑定页面相关事件
79570
- bindPageEvents() {
79571
- // 监听页面可见性变化(切换 tab)
79572
- document.addEventListener('visibilitychange', this.onVisibilityChange);
79573
-
79574
- // 监听页面卸载事件
79575
- window.addEventListener('beforeunload', this.onPageUnload);
79576
-
79577
- // 监听路由变化(如果使用了 Vue Router)
79578
- if (this.$router) {
79579
- this.$router.beforeEach((to, from, next) => {
79580
- // 在路由切换前移除显示按钮
79581
- this.removeShowButton();
79582
- next();
79583
- });
79584
- }
79585
- },
79586
- // 解绑页面相关事件
79587
- unbindPageEvents() {
79588
- document.removeEventListener('visibilitychange', this.onVisibilityChange);
79589
- window.removeEventListener('beforeunload', this.onPageUnload);
79590
- },
79591
- // 页面可见性变化处理
79592
- onVisibilityChange() {
79593
- if (document.hidden) {
79594
- // 页面变为隐藏状态(切换 tab 或最小化),移除显示按钮
79595
- this.removeShowButton();
79596
- }
79597
- },
79598
- // 页面卸载处理
79599
- onPageUnload() {
79600
- // 页面卸载前移除显示按钮
79601
- this.removeShowButton();
79602
79505
  }
79603
79506
  }
79604
79507
  });
@@ -79614,8 +79517,8 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79614
79517
  ;
79615
79518
  var ByFloatingMenu_component = normalizeComponent(
79616
79519
  floating_menu_ByFloatingMenuvue_type_script_lang_js,
79617
- ByFloatingMenuvue_type_template_id_365e7526_render,
79618
- ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns,
79520
+ ByFloatingMenuvue_type_template_id_4d9e17ff_render,
79521
+ ByFloatingMenuvue_type_template_id_4d9e17ff_staticRenderFns,
79619
79522
  false,
79620
79523
  null,
79621
79524
  null,
@@ -76944,12 +76944,14 @@ var ByTreeSearch_component = normalizeComponent(
76944
76944
  )
76945
76945
 
76946
76946
  /* harmony default export */ var ByTreeSearch = (ByTreeSearch_component.exports);
76947
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=template&id=3da494cf
76948
- var ByDialogvue_type_template_id_3da494cf_render = function render() {
76947
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=template&id=571b0f54
76948
+ var ByDialogvue_type_template_id_571b0f54_render = function render() {
76949
76949
  var _vm = this,
76950
76950
  _c = _vm._self._c;
76951
76951
  return _c('el-dialog', _vm._g(_vm._b({
76952
- class: ['by-dialog', _vm.customClass],
76952
+ class: ['by-dialog', {
76953
+ 'by-dialog--with-header': !!_vm.$slots.header
76954
+ }, _vm.customClass],
76953
76955
  attrs: {
76954
76956
  "visible": _vm.dialogVisible,
76955
76957
  "title": _vm.title
@@ -76960,8 +76962,12 @@ var ByDialogvue_type_template_id_3da494cf_render = function render() {
76960
76962
  },
76961
76963
  "close": _vm.handleClose
76962
76964
  }
76963
- }, 'el-dialog', _vm.dialogAttrs, false), _vm.$listeners), [_c('div', {
76964
- staticClass: "by-dialog__body"
76965
+ }, 'el-dialog', _vm.dialogAttrs, false), _vm.$listeners), [_vm.$slots.header ? _c('div', {
76966
+ staticClass: "by-dialog__header"
76967
+ }, [_vm._t("header")], 2) : _vm._e(), _c('div', {
76968
+ class: ['by-dialog__body', {
76969
+ 'by-dialog__body--with-header': !!_vm.$slots.header
76970
+ }]
76965
76971
  }, [_vm.content ? _c('div', {
76966
76972
  staticClass: "by-dialog__content"
76967
76973
  }, [_vm._v(_vm._s(_vm.content))]) : _vm._e(), _vm._t("default")], 2), _vm.showFooter ? _c('div', {
@@ -77010,7 +77016,7 @@ var ByDialogvue_type_template_id_3da494cf_render = function render() {
77010
77016
  }, [_vm._v(" " + _vm._s(button.text) + " ")])];
77011
77017
  })], 2) : _vm._e()]), _vm._t("footer")], 2) : _vm._e()]);
77012
77018
  };
77013
- var ByDialogvue_type_template_id_3da494cf_staticRenderFns = [];
77019
+ var ByDialogvue_type_template_id_571b0f54_staticRenderFns = [];
77014
77020
 
77015
77021
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/by-dialog/ByDialog.vue?vue&type=script&lang=js
77016
77022
 
@@ -77159,8 +77165,8 @@ var ByDialogvue_type_template_id_3da494cf_staticRenderFns = [];
77159
77165
  ;
77160
77166
  var ByDialog_component = normalizeComponent(
77161
77167
  by_dialog_ByDialogvue_type_script_lang_js,
77162
- ByDialogvue_type_template_id_3da494cf_render,
77163
- ByDialogvue_type_template_id_3da494cf_staticRenderFns,
77168
+ ByDialogvue_type_template_id_571b0f54_render,
77169
+ ByDialogvue_type_template_id_571b0f54_staticRenderFns,
77164
77170
  false,
77165
77171
  null,
77166
77172
  null,
@@ -79032,8 +79038,8 @@ var ByCascaderPanel_component = normalizeComponent(
79032
79038
  )
79033
79039
 
79034
79040
  /* harmony default export */ var ByCascaderPanel = (ByCascaderPanel_component.exports);
79035
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=template&id=365e7526
79036
- var ByFloatingMenuvue_type_template_id_365e7526_render = function render() {
79041
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"ffbc40de-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=template&id=4d9e17ff
79042
+ var ByFloatingMenuvue_type_template_id_4d9e17ff_render = function render() {
79037
79043
  var _vm = this,
79038
79044
  _c = _vm._self._c;
79039
79045
  return _c('div', {
@@ -79158,7 +79164,7 @@ var ByFloatingMenuvue_type_template_id_365e7526_render = function render() {
79158
79164
  }, [_vm._v(_vm._s(item.text))])]);
79159
79165
  }), 0)])], 1);
79160
79166
  };
79161
- var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79167
+ var ByFloatingMenuvue_type_template_id_4d9e17ff_staticRenderFns = [];
79162
79168
 
79163
79169
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/floating-menu/ByFloatingMenu.vue?vue&type=script&lang=js
79164
79170
  /* harmony default export */ var ByFloatingMenuvue_type_script_lang_js = ({
@@ -79195,14 +79201,6 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79195
79201
  }
79196
79202
  },
79197
79203
  data() {
79198
- // 在 data 中初始化位置,避免渲染时的位置跳动
79199
- const {
79200
- right,
79201
- bottom
79202
- } = this.position;
79203
- const windowHeight = typeof window !== 'undefined' ? window.innerHeight : 800;
79204
- const bottomValue = parseInt(bottom) || 20;
79205
- const mainButtonSize = this.getMainButtonSize();
79206
79204
  return {
79207
79205
  isExpanded: false,
79208
79206
  isHidden: false,
@@ -79214,12 +79212,9 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79214
79212
  },
79215
79213
  currentPosition: {
79216
79214
  x: 0,
79217
- y: windowHeight - bottomValue - mainButtonSize
79218
- },
79219
- menuStyle: {
79220
- right: right,
79221
- bottom: bottom
79215
+ y: 0
79222
79216
  },
79217
+ menuStyle: {},
79223
79218
  // 菜单项拖动相关
79224
79219
  menuItemDragStart: {
79225
79220
  x: 0,
@@ -79232,53 +79227,43 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79232
79227
  computed: {
79233
79228
  // 根据size属性计算实际大小
79234
79229
  mainButtonSize() {
79235
- return this.getMainButtonSize();
79230
+ const sizeMap = {
79231
+ mini: 40,
79232
+ small: 50,
79233
+ medium: 60
79234
+ };
79235
+ return sizeMap[this.size] || 50;
79236
79236
  }
79237
79237
  },
79238
79238
  mounted() {
79239
- // 位置已在 data 中初始化,这里只需要重新计算以确保准确性
79240
- this.refreshPosition();
79239
+ this.initPosition();
79241
79240
  this.bindEvents();
79242
- this.bindPageEvents();
79243
79241
  },
79244
79242
  beforeDestroy() {
79245
79243
  this.unbindEvents();
79246
- this.unbindPageEvents();
79247
79244
  this.removeShowButton();
79248
79245
  // 清理菜单项拖动事件监听器
79249
79246
  document.removeEventListener('mousemove', this.onMenuItemDrag);
79250
79247
  document.removeEventListener('mouseup', this.endMenuItemDrag);
79251
79248
  },
79252
79249
  methods: {
79253
- // 获取主按钮大小的辅助方法
79254
- getMainButtonSize() {
79255
- const sizeMap = {
79256
- mini: 40,
79257
- small: 50,
79258
- medium: 60
79259
- };
79260
- return sizeMap[this.size] || 50;
79261
- },
79262
- // 刷新位置(在 mounted 时重新计算以确保准确性)
79263
- refreshPosition() {
79250
+ // 初始化位置
79251
+ initPosition() {
79264
79252
  const {
79265
79253
  right,
79266
79254
  bottom
79267
79255
  } = this.position;
79268
- const windowHeight = window.innerHeight;
79269
- const bottomValue = parseInt(bottom) || 20;
79270
-
79271
- // 更新菜单样式
79272
79256
  this.menuStyle = {
79273
- ...this.menuStyle,
79274
79257
  right: right,
79275
79258
  bottom: bottom
79276
79259
  };
79277
79260
 
79278
- // 更新当前位置
79261
+ // 初始化当前位置
79262
+ const windowHeight = window.innerHeight;
79263
+ const bottomValue = parseInt(bottom) || 20;
79279
79264
  this.currentPosition = {
79280
79265
  x: 0,
79281
- y: windowHeight - bottomValue - this.mainButtonSize
79266
+ y: windowHeight - bottomValue - this.mainButtonSize // 使用动态主按钮大小
79282
79267
  };
79283
79268
  },
79284
79269
  // 切换菜单展开状态
@@ -79527,88 +79512,6 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79527
79512
  if (showBtn) {
79528
79513
  showBtn.remove();
79529
79514
  }
79530
- },
79531
- // ========== 外部调用方法 ==========
79532
-
79533
- // 显示悬浮菜单
79534
- show() {
79535
- if (this.isHidden) {
79536
- this.isHidden = false;
79537
- this.isExpanded = false;
79538
-
79539
- // 显示主菜单,保持当前位置
79540
- this.menuStyle = {
79541
- ...this.menuStyle,
79542
- right: '20px',
79543
- transition: 'right 0.3s ease, opacity 0.3s ease',
79544
- opacity: '1'
79545
- };
79546
- // 移除显示按钮
79547
- this.removeShowButton();
79548
- }
79549
- },
79550
- // 隐藏悬浮菜单
79551
- hide() {
79552
- if (!this.isHidden) {
79553
- this.isHidden = true;
79554
- this.isExpanded = false;
79555
-
79556
- // 保持当前纵向位置,只隐藏横向
79557
- this.menuStyle = {
79558
- ...this.menuStyle,
79559
- right: '-100px',
79560
- transition: 'right 0.3s ease',
79561
- opacity: '0'
79562
- };
79563
- // 移除显示按钮
79564
- this.removeShowButton();
79565
- }
79566
- },
79567
- // 完全移除显示按钮(用于页面切换时清理)
79568
- removeShowButtonOnly() {
79569
- this.removeShowButton();
79570
- },
79571
- // 获取当前隐藏状态
79572
- getHiddenState() {
79573
- return this.isHidden;
79574
- },
79575
- // 切换显示/隐藏状态
79576
- toggle() {
79577
- this.toggleHide();
79578
- },
79579
- // 绑定页面相关事件
79580
- bindPageEvents() {
79581
- // 监听页面可见性变化(切换 tab)
79582
- document.addEventListener('visibilitychange', this.onVisibilityChange);
79583
-
79584
- // 监听页面卸载事件
79585
- window.addEventListener('beforeunload', this.onPageUnload);
79586
-
79587
- // 监听路由变化(如果使用了 Vue Router)
79588
- if (this.$router) {
79589
- this.$router.beforeEach((to, from, next) => {
79590
- // 在路由切换前移除显示按钮
79591
- this.removeShowButton();
79592
- next();
79593
- });
79594
- }
79595
- },
79596
- // 解绑页面相关事件
79597
- unbindPageEvents() {
79598
- document.removeEventListener('visibilitychange', this.onVisibilityChange);
79599
- window.removeEventListener('beforeunload', this.onPageUnload);
79600
- },
79601
- // 页面可见性变化处理
79602
- onVisibilityChange() {
79603
- if (document.hidden) {
79604
- // 页面变为隐藏状态(切换 tab 或最小化),移除显示按钮
79605
- this.removeShowButton();
79606
- }
79607
- },
79608
- // 页面卸载处理
79609
- onPageUnload() {
79610
- // 页面卸载前移除显示按钮
79611
- this.removeShowButton();
79612
79515
  }
79613
79516
  }
79614
79517
  });
@@ -79624,8 +79527,8 @@ var ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns = [];
79624
79527
  ;
79625
79528
  var ByFloatingMenu_component = normalizeComponent(
79626
79529
  floating_menu_ByFloatingMenuvue_type_script_lang_js,
79627
- ByFloatingMenuvue_type_template_id_365e7526_render,
79628
- ByFloatingMenuvue_type_template_id_365e7526_staticRenderFns,
79530
+ ByFloatingMenuvue_type_template_id_4d9e17ff_render,
79531
+ ByFloatingMenuvue_type_template_id_4d9e17ff_staticRenderFns,
79629
79532
  false,
79630
79533
  null,
79631
79534
  null,