@weitutech/by-components 1.1.212 → 1.1.214

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.
@@ -74527,8 +74527,8 @@ var component = normalizeComponent(
74527
74527
  )
74528
74528
 
74529
74529
  /* harmony default export */ var pager = (component.exports);
74530
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/table/index.vue?vue&type=template&id=96b0fb18
74531
- var tablevue_type_template_id_96b0fb18_render = function render() {
74530
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/table/index.vue?vue&type=template&id=f5e98ace
74531
+ var tablevue_type_template_id_f5e98ace_render = function render() {
74532
74532
  var _vm = this,
74533
74533
  _c = _vm._self._c;
74534
74534
  return _c('div', [_c('vxe-grid', _vm._g(_vm._b({
@@ -74613,7 +74613,7 @@ var tablevue_type_template_id_96b0fb18_render = function render() {
74613
74613
  }
74614
74614
  }) : _vm._e()], 1);
74615
74615
  };
74616
- var tablevue_type_template_id_96b0fb18_staticRenderFns = [];
74616
+ var tablevue_type_template_id_f5e98ace_staticRenderFns = [];
74617
74617
 
74618
74618
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
74619
74619
  var es_array_push = __webpack_require__(4114);
@@ -77830,6 +77830,11 @@ var custom_column_component = normalizeComponent(
77830
77830
  handleOpenCustomColumn() {
77831
77831
  this.customTableVisible = true;
77832
77832
  },
77833
+ clearSelection() {
77834
+ if (this.$refs.xGrid) {
77835
+ this.$refs.xGrid.clearCheckboxRow();
77836
+ }
77837
+ },
77833
77838
  // 改变表头字段
77834
77839
  changeTableFields(cols) {
77835
77840
  var _this$gridOptions$cus3;
@@ -78243,8 +78248,8 @@ var custom_column_component = normalizeComponent(
78243
78248
  ;
78244
78249
  var table_component = normalizeComponent(
78245
78250
  components_tablevue_type_script_lang_js,
78246
- tablevue_type_template_id_96b0fb18_render,
78247
- tablevue_type_template_id_96b0fb18_staticRenderFns,
78251
+ tablevue_type_template_id_f5e98ace_render,
78252
+ tablevue_type_template_id_f5e98ace_staticRenderFns,
78248
78253
  false,
78249
78254
  null,
78250
78255
  null,
@@ -78751,13 +78756,16 @@ var pair_number_input_component = normalizeComponent(
78751
78756
  )
78752
78757
 
78753
78758
  /* harmony default export */ var pair_number_input = (pair_number_input_component.exports);
78754
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/form/comps/custom-date-picker.vue?vue&type=template&id=7e995d1f
78755
- var custom_date_pickervue_type_template_id_7e995d1f_render = function render() {
78759
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/form/comps/custom-date-picker.vue?vue&type=template&id=dd2e875c
78760
+ var custom_date_pickervue_type_template_id_dd2e875c_render = function render() {
78756
78761
  var _vm = this,
78757
78762
  _c = _vm._self._c;
78758
78763
  return _c('div', {
78759
- staticClass: "b-picker wrapper"
78760
- }, [_c('el-date-picker', _vm._b({
78764
+ staticClass: "b-picker wrapper",
78765
+ class: {
78766
+ 'b-picker--panel-shortcuts': _vm.shortcutLayout === 'panel'
78767
+ }
78768
+ }, [_vm.shortcutLayout === 'external' ? [_c('el-date-picker', _vm._b({
78761
78769
  staticStyle: {
78762
78770
  "width": "70%"
78763
78771
  },
@@ -78782,9 +78790,24 @@ var custom_date_pickervue_type_template_id_7e995d1f_render = function render() {
78782
78790
  }
78783
78791
  }
78784
78792
  }, [_vm._v(" " + _vm._s(item.label) + " ")]);
78785
- }), 0)], 1);
78793
+ }), 0)] : _c('el-date-picker', _vm._b({
78794
+ ref: "panelDatePicker",
78795
+ attrs: {
78796
+ "value": _vm.value,
78797
+ "popper-class": _vm.panelPopperClass
78798
+ },
78799
+ on: {
78800
+ "input": _vm.handleChange,
78801
+ "focus": _vm.handlePanelOpen
78802
+ },
78803
+ nativeOn: {
78804
+ "click": function ($event) {
78805
+ return _vm.handlePanelOpen.apply(null, arguments);
78806
+ }
78807
+ }
78808
+ }, 'el-date-picker', _vm.panelDateOptions, false))], 2);
78786
78809
  };
78787
- var custom_date_pickervue_type_template_id_7e995d1f_staticRenderFns = [];
78810
+ var custom_date_pickervue_type_template_id_dd2e875c_staticRenderFns = [];
78788
78811
 
78789
78812
  // EXTERNAL MODULE: ./node_modules/moment/moment.js
78790
78813
  var moment = __webpack_require__(9412);
@@ -78821,11 +78844,27 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78821
78844
  endTimeField: {
78822
78845
  type: String,
78823
78846
  default: ''
78847
+ },
78848
+ /**
78849
+ * 快捷按钮展示方式
78850
+ * external: 快捷按钮在输入框右侧(默认,保持原有样式)
78851
+ * panel: 快捷按钮在日期选择面板内左侧
78852
+ */
78853
+ shortcutLayout: {
78854
+ type: String,
78855
+ default: 'external',
78856
+ validator: value => ['external', 'panel'].includes(value)
78824
78857
  }
78825
78858
  },
78826
78859
  data() {
78827
78860
  return {
78828
- shortcuts: [{
78861
+ active: '',
78862
+ panelHighlightTimer: null
78863
+ };
78864
+ },
78865
+ computed: {
78866
+ shortcuts() {
78867
+ return [{
78829
78868
  label: '上月',
78830
78869
  start_time: moment_default()().subtract(1, 'months').startOf('month').format('YYYY-MM-DD'),
78831
78870
  end_time: moment_default()().subtract(1, 'months').endOf('month').format('YYYY-MM-DD'),
@@ -78850,11 +78889,8 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78850
78889
  start_time: moment_default()().startOf('month').format('YYYY-MM-DD'),
78851
78890
  end_time: moment_default()().endOf('month').format('YYYY-MM-DD'),
78852
78891
  key: 'month'
78853
- }],
78854
- active: ''
78855
- };
78856
- },
78857
- computed: {
78892
+ }];
78893
+ },
78858
78894
  dateOptions() {
78859
78895
  return {
78860
78896
  startPlaceholder: '开始时间',
@@ -78865,33 +78901,74 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78865
78901
  active: '',
78866
78902
  ...this.otherOption
78867
78903
  };
78904
+ },
78905
+ panelDateOptions() {
78906
+ const {
78907
+ pickerOptions: userPickerOptions = {},
78908
+ ...restOptions
78909
+ } = this.dateOptions;
78910
+ return {
78911
+ ...restOptions,
78912
+ pickerOptions: {
78913
+ ...userPickerOptions,
78914
+ shortcuts: this.panelShortcuts
78915
+ }
78916
+ };
78917
+ },
78918
+ panelShortcuts() {
78919
+ return this.shortcuts.map(item => ({
78920
+ text: item.label,
78921
+ onClick: picker => {
78922
+ this.active = item.key;
78923
+ picker.$emit('pick', [moment_default()(item.start_time).toDate(), moment_default()(item.end_time).toDate()]);
78924
+ this.schedulePanelShortcutHighlight();
78925
+ }
78926
+ }));
78927
+ },
78928
+ panelPopperClass() {
78929
+ return `by-custom-date-picker-panel by-custom-date-picker-panel--${this._uid}`;
78868
78930
  }
78869
78931
  },
78870
78932
  watch: {
78933
+ active() {
78934
+ if (this.shortcutLayout === 'panel') {
78935
+ this.schedulePanelShortcutHighlight();
78936
+ }
78937
+ },
78871
78938
  value: {
78872
- handler(newValue, oldValue) {
78873
- if (newValue && newValue.length) {
78874
- this.active = '';
78875
- this.shortcuts.forEach(item => {
78876
- if (item.start_time === newValue[0] && item.end_time === newValue[1]) {
78877
- this.active = item.key;
78878
- }
78879
- });
78880
- } else {
78881
- this.active = this.dateOptions.active;
78882
- const item = this.shortcuts.find(item => item.key === this.dateOptions.active) || {};
78883
- if (item.start_time && item.end_time) {
78884
- this.handleClick(item);
78885
- }
78886
- }
78939
+ handler(newValue) {
78940
+ this.syncActiveFromValue(newValue);
78887
78941
  },
78888
78942
  immediate: true
78889
78943
  }
78890
78944
  },
78945
+ beforeDestroy() {
78946
+ this.clearPanelHighlightTimer();
78947
+ },
78891
78948
  methods: {
78949
+ syncActiveFromValue(newValue) {
78950
+ if (Array.isArray(newValue) && newValue.length) {
78951
+ const start = moment_default()(newValue[0]).format('YYYY-MM-DD');
78952
+ const end = moment_default()(newValue[1]).format('YYYY-MM-DD');
78953
+ let matchedKey = '';
78954
+ this.shortcuts.forEach(item => {
78955
+ if (item.start_time === start && item.end_time === end) {
78956
+ matchedKey = item.key;
78957
+ }
78958
+ });
78959
+ this.active = matchedKey;
78960
+ return;
78961
+ }
78962
+ this.active = this.dateOptions.active;
78963
+ const item = this.shortcuts.find(shortcut => shortcut.key === this.dateOptions.active) || {};
78964
+ if (item.start_time && item.end_time) {
78965
+ this.handleClick(item);
78966
+ }
78967
+ },
78892
78968
  handleChange(e) {
78893
78969
  if (!e) {
78894
78970
  this.$emit('input', []);
78971
+ this.active = '';
78895
78972
  if (this.startTimeField && this.endTimeField) {
78896
78973
  this.$emit('range-change', {
78897
78974
  startTime: '',
@@ -78907,8 +78984,10 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78907
78984
  endTime: formattedDates[1]
78908
78985
  });
78909
78986
  }
78987
+
78988
+ // 日期选择器初始化时也会触发 input,需同步快捷项高亮状态
78989
+ this.syncActiveFromValue(formattedDates);
78910
78990
  }
78911
- this.active = '';
78912
78991
  },
78913
78992
  handleClick(item) {
78914
78993
  this.active = item.key;
@@ -78919,6 +78998,54 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78919
78998
  endTime: item.end_time
78920
78999
  });
78921
79000
  }
79001
+ },
79002
+ handlePanelOpen() {
79003
+ if (this.shortcutLayout !== 'panel') return;
79004
+ this.syncActiveFromValue(this.value);
79005
+ this.schedulePanelShortcutHighlight();
79006
+ },
79007
+ clearPanelHighlightTimer() {
79008
+ if (this.panelHighlightTimer) {
79009
+ clearTimeout(this.panelHighlightTimer);
79010
+ this.panelHighlightTimer = null;
79011
+ }
79012
+ },
79013
+ getPanelElement() {
79014
+ const datePicker = this.$refs.panelDatePicker;
79015
+ if (!datePicker) return null;
79016
+ if (datePicker.picker && datePicker.picker.$el) {
79017
+ return datePicker.picker.$el;
79018
+ }
79019
+ if (datePicker.$el) {
79020
+ const panelInRoot = datePicker.$el.querySelector('.by-custom-date-picker-panel');
79021
+ if (panelInRoot) return panelInRoot;
79022
+ }
79023
+ return document.querySelector(`.by-custom-date-picker-panel--${this._uid}`);
79024
+ },
79025
+ schedulePanelShortcutHighlight(retry = 0) {
79026
+ this.clearPanelHighlightTimer();
79027
+ this.$nextTick(() => {
79028
+ const updated = this.updatePanelShortcutHighlight();
79029
+ if (!updated && retry < 15) {
79030
+ this.panelHighlightTimer = setTimeout(() => {
79031
+ this.schedulePanelShortcutHighlight(retry + 1);
79032
+ }, 50);
79033
+ }
79034
+ });
79035
+ },
79036
+ updatePanelShortcutHighlight() {
79037
+ const panel = this.getPanelElement();
79038
+ if (!panel) return false;
79039
+ const shortcutEls = panel.querySelectorAll('.el-picker-panel__shortcut');
79040
+ if (!shortcutEls.length) return false;
79041
+ shortcutEls.forEach(el => {
79042
+ const label = (el.textContent || '').trim();
79043
+ const item = this.shortcuts.find(shortcut => shortcut.label === label);
79044
+ const isActive = !!(item && item.key === this.active);
79045
+ el.classList.toggle('active', isActive);
79046
+ el.classList.toggle('is-active', isActive);
79047
+ });
79048
+ return true;
78922
79049
  }
78923
79050
  }
78924
79051
  });
@@ -78934,8 +79061,8 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78934
79061
  ;
78935
79062
  var custom_date_picker_component = normalizeComponent(
78936
79063
  comps_custom_date_pickervue_type_script_lang_js,
78937
- custom_date_pickervue_type_template_id_7e995d1f_render,
78938
- custom_date_pickervue_type_template_id_7e995d1f_staticRenderFns,
79064
+ custom_date_pickervue_type_template_id_dd2e875c_render,
79065
+ custom_date_pickervue_type_template_id_dd2e875c_staticRenderFns,
78939
79066
  false,
78940
79067
  null,
78941
79068
  null,
@@ -78944,8 +79071,8 @@ var custom_date_picker_component = normalizeComponent(
78944
79071
  )
78945
79072
 
78946
79073
  /* harmony default export */ var custom_date_picker = (custom_date_picker_component.exports);
78947
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/common-selector/ByCommonSelector.vue?vue&type=template&id=05ec4584
78948
- var ByCommonSelectorvue_type_template_id_05ec4584_render = function render() {
79074
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/common-selector/ByCommonSelector.vue?vue&type=template&id=781ea1a3
79075
+ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
78949
79076
  var _vm = this,
78950
79077
  _c = _vm._self._c;
78951
79078
  return _c('div', {
@@ -79537,7 +79664,7 @@ var ByCommonSelectorvue_type_template_id_05ec4584_render = function render() {
79537
79664
  }
79538
79665
  }, [_vm._v(" 加载中... ")]) : _vm._e()], 2);
79539
79666
  };
79540
- var ByCommonSelectorvue_type_template_id_05ec4584_staticRenderFns = [];
79667
+ var ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns = [];
79541
79668
 
79542
79669
  ;// ./node_modules/pinyin-pro/dist/index.mjs
79543
79670
 
@@ -90316,6 +90443,12 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90316
90443
  this.localSuffixInputValue = val;
90317
90444
  }
90318
90445
  },
90446
+ showSuffixInput() {
90447
+ this.scheduleExpandCheck();
90448
+ },
90449
+ showSuffixBatchInput() {
90450
+ this.scheduleExpandCheck();
90451
+ },
90319
90452
  enhancedAllOptions: {
90320
90453
  handler(newOptions) {
90321
90454
  if (this.type === 'enhancedSelect') {
@@ -90489,39 +90622,51 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90489
90622
  // 如果找不到容器,保持当前状态不变
90490
90623
  return;
90491
90624
  }
90625
+ const scrollContainer = container.querySelector('.by_scroll-container');
90626
+ // 排除 A~Z 字母筛选组,只取选项行(含后置输入框、插槽、批量按钮等同行内容)
90627
+ const optionGroup = scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.querySelector('.el-radio-group:not(.by_Eng), .el-checkbox-group');
90492
90628
 
90493
- // 获取所有选项元素
90494
- const items = container.querySelectorAll('.el-checkbox, .el-radio');
90629
+ // 至少需要一个选项才做宽度检测
90630
+ const items = optionGroup ? optionGroup.querySelectorAll('.el-checkbox, .el-radio') : container.querySelectorAll('.el-checkbox, .el-radio');
90495
90631
  if (!items.length) {
90496
90632
  this.needExpand = false;
90497
90633
  return;
90498
90634
  }
90499
90635
  try {
90500
- // 计算所有选项的总宽度
90501
- let totalWidth = 0;
90502
- items.forEach(item => {
90503
- if (item && item.offsetWidth) {
90504
- const style = getComputedStyle(item);
90505
- const marginLeft = parseInt(style.marginLeft) || 0;
90506
- const marginRight = parseInt(style.marginRight) || 0;
90507
- totalWidth += item.offsetWidth + marginLeft + marginRight;
90636
+ let needExpand = false;
90637
+ if (optionGroup && scrollContainer) {
90638
+ // 用选项组 scrollWidth 衡量整行内容(选项 + 后置输入框 + 插槽 + 批量按钮)
90639
+ const contentWidth = optionGroup.scrollWidth;
90640
+ let visibleWidth = scrollContainer.clientWidth;
90641
+ if (!visibleWidth) {
90642
+ visibleWidth = container.offsetWidth;
90508
90643
  }
90509
- });
90510
-
90511
- // 获取容器宽度
90512
- let containerWidth = container.offsetWidth;
90513
-
90514
- // 如果容器宽度为0,尝试获取父元素宽度
90515
- if (!containerWidth && container.parentElement) {
90516
- containerWidth = container.parentElement.offsetWidth;
90644
+ if (!visibleWidth && container.parentElement) {
90645
+ visibleWidth = container.parentElement.offsetWidth;
90646
+ }
90647
+ if (!visibleWidth) {
90648
+ visibleWidth = 500;
90649
+ }
90650
+ needExpand = contentWidth > visibleWidth;
90651
+ } else {
90652
+ // 回退:按选项逐项累加(兼容 DOM 结构异常场景)
90653
+ let totalWidth = 0;
90654
+ items.forEach(item => {
90655
+ if (item && item.offsetWidth) {
90656
+ const style = getComputedStyle(item);
90657
+ const marginLeft = parseInt(style.marginLeft) || 0;
90658
+ const marginRight = parseInt(style.marginRight) || 0;
90659
+ totalWidth += item.offsetWidth + marginLeft + marginRight;
90660
+ }
90661
+ });
90662
+ let containerWidth = container.offsetWidth;
90663
+ if (!containerWidth && container.parentElement) {
90664
+ containerWidth = container.parentElement.offsetWidth;
90665
+ }
90666
+ if (!containerWidth) containerWidth = 500;
90667
+ needExpand = totalWidth > containerWidth;
90517
90668
  }
90518
90669
 
90519
- // 确保有有效宽度
90520
- if (!containerWidth) containerWidth = 500;
90521
-
90522
- // 如果总宽度超过容器宽度,则需要展开按钮
90523
- const needExpand = totalWidth > containerWidth;
90524
-
90525
90670
  // 只有在状态变化时才更新,减少不必要的重渲染
90526
90671
  if (this.needExpand !== needExpand) {
90527
90672
  this.needExpand = needExpand;
@@ -91050,8 +91195,8 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
91050
91195
  ;
91051
91196
  var ByCommonSelector_component = normalizeComponent(
91052
91197
  common_selector_ByCommonSelectorvue_type_script_lang_js,
91053
- ByCommonSelectorvue_type_template_id_05ec4584_render,
91054
- ByCommonSelectorvue_type_template_id_05ec4584_staticRenderFns,
91198
+ ByCommonSelectorvue_type_template_id_781ea1a3_render,
91199
+ ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns,
91055
91200
  false,
91056
91201
  null,
91057
91202
  null,