@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.
@@ -74537,8 +74537,8 @@ var component = normalizeComponent(
74537
74537
  )
74538
74538
 
74539
74539
  /* harmony default export */ var pager = (component.exports);
74540
- ;// ./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-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/table/index.vue?vue&type=template&id=96b0fb18
74541
- var tablevue_type_template_id_96b0fb18_render = function render() {
74540
+ ;// ./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-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/table/index.vue?vue&type=template&id=f5e98ace
74541
+ var tablevue_type_template_id_f5e98ace_render = function render() {
74542
74542
  var _vm = this,
74543
74543
  _c = _vm._self._c;
74544
74544
  return _c('div', [_c('vxe-grid', _vm._g(_vm._b({
@@ -74623,7 +74623,7 @@ var tablevue_type_template_id_96b0fb18_render = function render() {
74623
74623
  }
74624
74624
  }) : _vm._e()], 1);
74625
74625
  };
74626
- var tablevue_type_template_id_96b0fb18_staticRenderFns = [];
74626
+ var tablevue_type_template_id_f5e98ace_staticRenderFns = [];
74627
74627
 
74628
74628
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
74629
74629
  var es_array_push = __webpack_require__(4114);
@@ -77840,6 +77840,11 @@ var custom_column_component = normalizeComponent(
77840
77840
  handleOpenCustomColumn() {
77841
77841
  this.customTableVisible = true;
77842
77842
  },
77843
+ clearSelection() {
77844
+ if (this.$refs.xGrid) {
77845
+ this.$refs.xGrid.clearCheckboxRow();
77846
+ }
77847
+ },
77843
77848
  // 改变表头字段
77844
77849
  changeTableFields(cols) {
77845
77850
  var _this$gridOptions$cus3;
@@ -78253,8 +78258,8 @@ var custom_column_component = normalizeComponent(
78253
78258
  ;
78254
78259
  var table_component = normalizeComponent(
78255
78260
  components_tablevue_type_script_lang_js,
78256
- tablevue_type_template_id_96b0fb18_render,
78257
- tablevue_type_template_id_96b0fb18_staticRenderFns,
78261
+ tablevue_type_template_id_f5e98ace_render,
78262
+ tablevue_type_template_id_f5e98ace_staticRenderFns,
78258
78263
  false,
78259
78264
  null,
78260
78265
  null,
@@ -78761,13 +78766,16 @@ var pair_number_input_component = normalizeComponent(
78761
78766
  )
78762
78767
 
78763
78768
  /* harmony default export */ var pair_number_input = (pair_number_input_component.exports);
78764
- ;// ./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-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/form/comps/custom-date-picker.vue?vue&type=template&id=7e995d1f
78765
- var custom_date_pickervue_type_template_id_7e995d1f_render = function render() {
78769
+ ;// ./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-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/form/comps/custom-date-picker.vue?vue&type=template&id=dd2e875c
78770
+ var custom_date_pickervue_type_template_id_dd2e875c_render = function render() {
78766
78771
  var _vm = this,
78767
78772
  _c = _vm._self._c;
78768
78773
  return _c('div', {
78769
- staticClass: "b-picker wrapper"
78770
- }, [_c('el-date-picker', _vm._b({
78774
+ staticClass: "b-picker wrapper",
78775
+ class: {
78776
+ 'b-picker--panel-shortcuts': _vm.shortcutLayout === 'panel'
78777
+ }
78778
+ }, [_vm.shortcutLayout === 'external' ? [_c('el-date-picker', _vm._b({
78771
78779
  staticStyle: {
78772
78780
  "width": "70%"
78773
78781
  },
@@ -78792,9 +78800,24 @@ var custom_date_pickervue_type_template_id_7e995d1f_render = function render() {
78792
78800
  }
78793
78801
  }
78794
78802
  }, [_vm._v(" " + _vm._s(item.label) + " ")]);
78795
- }), 0)], 1);
78803
+ }), 0)] : _c('el-date-picker', _vm._b({
78804
+ ref: "panelDatePicker",
78805
+ attrs: {
78806
+ "value": _vm.value,
78807
+ "popper-class": _vm.panelPopperClass
78808
+ },
78809
+ on: {
78810
+ "input": _vm.handleChange,
78811
+ "focus": _vm.handlePanelOpen
78812
+ },
78813
+ nativeOn: {
78814
+ "click": function ($event) {
78815
+ return _vm.handlePanelOpen.apply(null, arguments);
78816
+ }
78817
+ }
78818
+ }, 'el-date-picker', _vm.panelDateOptions, false))], 2);
78796
78819
  };
78797
- var custom_date_pickervue_type_template_id_7e995d1f_staticRenderFns = [];
78820
+ var custom_date_pickervue_type_template_id_dd2e875c_staticRenderFns = [];
78798
78821
 
78799
78822
  // EXTERNAL MODULE: ./node_modules/moment/moment.js
78800
78823
  var moment = __webpack_require__(9618);
@@ -78831,11 +78854,27 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78831
78854
  endTimeField: {
78832
78855
  type: String,
78833
78856
  default: ''
78857
+ },
78858
+ /**
78859
+ * 快捷按钮展示方式
78860
+ * external: 快捷按钮在输入框右侧(默认,保持原有样式)
78861
+ * panel: 快捷按钮在日期选择面板内左侧
78862
+ */
78863
+ shortcutLayout: {
78864
+ type: String,
78865
+ default: 'external',
78866
+ validator: value => ['external', 'panel'].includes(value)
78834
78867
  }
78835
78868
  },
78836
78869
  data() {
78837
78870
  return {
78838
- shortcuts: [{
78871
+ active: '',
78872
+ panelHighlightTimer: null
78873
+ };
78874
+ },
78875
+ computed: {
78876
+ shortcuts() {
78877
+ return [{
78839
78878
  label: '上月',
78840
78879
  start_time: moment_default()().subtract(1, 'months').startOf('month').format('YYYY-MM-DD'),
78841
78880
  end_time: moment_default()().subtract(1, 'months').endOf('month').format('YYYY-MM-DD'),
@@ -78860,11 +78899,8 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78860
78899
  start_time: moment_default()().startOf('month').format('YYYY-MM-DD'),
78861
78900
  end_time: moment_default()().endOf('month').format('YYYY-MM-DD'),
78862
78901
  key: 'month'
78863
- }],
78864
- active: ''
78865
- };
78866
- },
78867
- computed: {
78902
+ }];
78903
+ },
78868
78904
  dateOptions() {
78869
78905
  return {
78870
78906
  startPlaceholder: '开始时间',
@@ -78875,33 +78911,74 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78875
78911
  active: '',
78876
78912
  ...this.otherOption
78877
78913
  };
78914
+ },
78915
+ panelDateOptions() {
78916
+ const {
78917
+ pickerOptions: userPickerOptions = {},
78918
+ ...restOptions
78919
+ } = this.dateOptions;
78920
+ return {
78921
+ ...restOptions,
78922
+ pickerOptions: {
78923
+ ...userPickerOptions,
78924
+ shortcuts: this.panelShortcuts
78925
+ }
78926
+ };
78927
+ },
78928
+ panelShortcuts() {
78929
+ return this.shortcuts.map(item => ({
78930
+ text: item.label,
78931
+ onClick: picker => {
78932
+ this.active = item.key;
78933
+ picker.$emit('pick', [moment_default()(item.start_time).toDate(), moment_default()(item.end_time).toDate()]);
78934
+ this.schedulePanelShortcutHighlight();
78935
+ }
78936
+ }));
78937
+ },
78938
+ panelPopperClass() {
78939
+ return `by-custom-date-picker-panel by-custom-date-picker-panel--${this._uid}`;
78878
78940
  }
78879
78941
  },
78880
78942
  watch: {
78943
+ active() {
78944
+ if (this.shortcutLayout === 'panel') {
78945
+ this.schedulePanelShortcutHighlight();
78946
+ }
78947
+ },
78881
78948
  value: {
78882
- handler(newValue, oldValue) {
78883
- if (newValue && newValue.length) {
78884
- this.active = '';
78885
- this.shortcuts.forEach(item => {
78886
- if (item.start_time === newValue[0] && item.end_time === newValue[1]) {
78887
- this.active = item.key;
78888
- }
78889
- });
78890
- } else {
78891
- this.active = this.dateOptions.active;
78892
- const item = this.shortcuts.find(item => item.key === this.dateOptions.active) || {};
78893
- if (item.start_time && item.end_time) {
78894
- this.handleClick(item);
78895
- }
78896
- }
78949
+ handler(newValue) {
78950
+ this.syncActiveFromValue(newValue);
78897
78951
  },
78898
78952
  immediate: true
78899
78953
  }
78900
78954
  },
78955
+ beforeDestroy() {
78956
+ this.clearPanelHighlightTimer();
78957
+ },
78901
78958
  methods: {
78959
+ syncActiveFromValue(newValue) {
78960
+ if (Array.isArray(newValue) && newValue.length) {
78961
+ const start = moment_default()(newValue[0]).format('YYYY-MM-DD');
78962
+ const end = moment_default()(newValue[1]).format('YYYY-MM-DD');
78963
+ let matchedKey = '';
78964
+ this.shortcuts.forEach(item => {
78965
+ if (item.start_time === start && item.end_time === end) {
78966
+ matchedKey = item.key;
78967
+ }
78968
+ });
78969
+ this.active = matchedKey;
78970
+ return;
78971
+ }
78972
+ this.active = this.dateOptions.active;
78973
+ const item = this.shortcuts.find(shortcut => shortcut.key === this.dateOptions.active) || {};
78974
+ if (item.start_time && item.end_time) {
78975
+ this.handleClick(item);
78976
+ }
78977
+ },
78902
78978
  handleChange(e) {
78903
78979
  if (!e) {
78904
78980
  this.$emit('input', []);
78981
+ this.active = '';
78905
78982
  if (this.startTimeField && this.endTimeField) {
78906
78983
  this.$emit('range-change', {
78907
78984
  startTime: '',
@@ -78917,8 +78994,10 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78917
78994
  endTime: formattedDates[1]
78918
78995
  });
78919
78996
  }
78997
+
78998
+ // 日期选择器初始化时也会触发 input,需同步快捷项高亮状态
78999
+ this.syncActiveFromValue(formattedDates);
78920
79000
  }
78921
- this.active = '';
78922
79001
  },
78923
79002
  handleClick(item) {
78924
79003
  this.active = item.key;
@@ -78929,6 +79008,54 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78929
79008
  endTime: item.end_time
78930
79009
  });
78931
79010
  }
79011
+ },
79012
+ handlePanelOpen() {
79013
+ if (this.shortcutLayout !== 'panel') return;
79014
+ this.syncActiveFromValue(this.value);
79015
+ this.schedulePanelShortcutHighlight();
79016
+ },
79017
+ clearPanelHighlightTimer() {
79018
+ if (this.panelHighlightTimer) {
79019
+ clearTimeout(this.panelHighlightTimer);
79020
+ this.panelHighlightTimer = null;
79021
+ }
79022
+ },
79023
+ getPanelElement() {
79024
+ const datePicker = this.$refs.panelDatePicker;
79025
+ if (!datePicker) return null;
79026
+ if (datePicker.picker && datePicker.picker.$el) {
79027
+ return datePicker.picker.$el;
79028
+ }
79029
+ if (datePicker.$el) {
79030
+ const panelInRoot = datePicker.$el.querySelector('.by-custom-date-picker-panel');
79031
+ if (panelInRoot) return panelInRoot;
79032
+ }
79033
+ return document.querySelector(`.by-custom-date-picker-panel--${this._uid}`);
79034
+ },
79035
+ schedulePanelShortcutHighlight(retry = 0) {
79036
+ this.clearPanelHighlightTimer();
79037
+ this.$nextTick(() => {
79038
+ const updated = this.updatePanelShortcutHighlight();
79039
+ if (!updated && retry < 15) {
79040
+ this.panelHighlightTimer = setTimeout(() => {
79041
+ this.schedulePanelShortcutHighlight(retry + 1);
79042
+ }, 50);
79043
+ }
79044
+ });
79045
+ },
79046
+ updatePanelShortcutHighlight() {
79047
+ const panel = this.getPanelElement();
79048
+ if (!panel) return false;
79049
+ const shortcutEls = panel.querySelectorAll('.el-picker-panel__shortcut');
79050
+ if (!shortcutEls.length) return false;
79051
+ shortcutEls.forEach(el => {
79052
+ const label = (el.textContent || '').trim();
79053
+ const item = this.shortcuts.find(shortcut => shortcut.label === label);
79054
+ const isActive = !!(item && item.key === this.active);
79055
+ el.classList.toggle('active', isActive);
79056
+ el.classList.toggle('is-active', isActive);
79057
+ });
79058
+ return true;
78932
79059
  }
78933
79060
  }
78934
79061
  });
@@ -78944,8 +79071,8 @@ var moment_default = /*#__PURE__*/__webpack_require__.n(moment);
78944
79071
  ;
78945
79072
  var custom_date_picker_component = normalizeComponent(
78946
79073
  comps_custom_date_pickervue_type_script_lang_js,
78947
- custom_date_pickervue_type_template_id_7e995d1f_render,
78948
- custom_date_pickervue_type_template_id_7e995d1f_staticRenderFns,
79074
+ custom_date_pickervue_type_template_id_dd2e875c_render,
79075
+ custom_date_pickervue_type_template_id_dd2e875c_staticRenderFns,
78949
79076
  false,
78950
79077
  null,
78951
79078
  null,
@@ -78954,8 +79081,8 @@ var custom_date_picker_component = normalizeComponent(
78954
79081
  )
78955
79082
 
78956
79083
  /* harmony default export */ var custom_date_picker = (custom_date_picker_component.exports);
78957
- ;// ./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-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/common-selector/ByCommonSelector.vue?vue&type=template&id=05ec4584
78958
- var ByCommonSelectorvue_type_template_id_05ec4584_render = function render() {
79084
+ ;// ./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-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/common-selector/ByCommonSelector.vue?vue&type=template&id=781ea1a3
79085
+ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
78959
79086
  var _vm = this,
78960
79087
  _c = _vm._self._c;
78961
79088
  return _c('div', {
@@ -79547,7 +79674,7 @@ var ByCommonSelectorvue_type_template_id_05ec4584_render = function render() {
79547
79674
  }
79548
79675
  }, [_vm._v(" 加载中... ")]) : _vm._e()], 2);
79549
79676
  };
79550
- var ByCommonSelectorvue_type_template_id_05ec4584_staticRenderFns = [];
79677
+ var ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns = [];
79551
79678
 
79552
79679
  ;// ./node_modules/pinyin-pro/dist/index.mjs
79553
79680
 
@@ -90326,6 +90453,12 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90326
90453
  this.localSuffixInputValue = val;
90327
90454
  }
90328
90455
  },
90456
+ showSuffixInput() {
90457
+ this.scheduleExpandCheck();
90458
+ },
90459
+ showSuffixBatchInput() {
90460
+ this.scheduleExpandCheck();
90461
+ },
90329
90462
  enhancedAllOptions: {
90330
90463
  handler(newOptions) {
90331
90464
  if (this.type === 'enhancedSelect') {
@@ -90499,39 +90632,51 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90499
90632
  // 如果找不到容器,保持当前状态不变
90500
90633
  return;
90501
90634
  }
90635
+ const scrollContainer = container.querySelector('.by_scroll-container');
90636
+ // 排除 A~Z 字母筛选组,只取选项行(含后置输入框、插槽、批量按钮等同行内容)
90637
+ const optionGroup = scrollContainer === null || scrollContainer === void 0 ? void 0 : scrollContainer.querySelector('.el-radio-group:not(.by_Eng), .el-checkbox-group');
90502
90638
 
90503
- // 获取所有选项元素
90504
- const items = container.querySelectorAll('.el-checkbox, .el-radio');
90639
+ // 至少需要一个选项才做宽度检测
90640
+ const items = optionGroup ? optionGroup.querySelectorAll('.el-checkbox, .el-radio') : container.querySelectorAll('.el-checkbox, .el-radio');
90505
90641
  if (!items.length) {
90506
90642
  this.needExpand = false;
90507
90643
  return;
90508
90644
  }
90509
90645
  try {
90510
- // 计算所有选项的总宽度
90511
- let totalWidth = 0;
90512
- items.forEach(item => {
90513
- if (item && item.offsetWidth) {
90514
- const style = getComputedStyle(item);
90515
- const marginLeft = parseInt(style.marginLeft) || 0;
90516
- const marginRight = parseInt(style.marginRight) || 0;
90517
- totalWidth += item.offsetWidth + marginLeft + marginRight;
90646
+ let needExpand = false;
90647
+ if (optionGroup && scrollContainer) {
90648
+ // 用选项组 scrollWidth 衡量整行内容(选项 + 后置输入框 + 插槽 + 批量按钮)
90649
+ const contentWidth = optionGroup.scrollWidth;
90650
+ let visibleWidth = scrollContainer.clientWidth;
90651
+ if (!visibleWidth) {
90652
+ visibleWidth = container.offsetWidth;
90518
90653
  }
90519
- });
90520
-
90521
- // 获取容器宽度
90522
- let containerWidth = container.offsetWidth;
90523
-
90524
- // 如果容器宽度为0,尝试获取父元素宽度
90525
- if (!containerWidth && container.parentElement) {
90526
- containerWidth = container.parentElement.offsetWidth;
90654
+ if (!visibleWidth && container.parentElement) {
90655
+ visibleWidth = container.parentElement.offsetWidth;
90656
+ }
90657
+ if (!visibleWidth) {
90658
+ visibleWidth = 500;
90659
+ }
90660
+ needExpand = contentWidth > visibleWidth;
90661
+ } else {
90662
+ // 回退:按选项逐项累加(兼容 DOM 结构异常场景)
90663
+ let totalWidth = 0;
90664
+ items.forEach(item => {
90665
+ if (item && item.offsetWidth) {
90666
+ const style = getComputedStyle(item);
90667
+ const marginLeft = parseInt(style.marginLeft) || 0;
90668
+ const marginRight = parseInt(style.marginRight) || 0;
90669
+ totalWidth += item.offsetWidth + marginLeft + marginRight;
90670
+ }
90671
+ });
90672
+ let containerWidth = container.offsetWidth;
90673
+ if (!containerWidth && container.parentElement) {
90674
+ containerWidth = container.parentElement.offsetWidth;
90675
+ }
90676
+ if (!containerWidth) containerWidth = 500;
90677
+ needExpand = totalWidth > containerWidth;
90527
90678
  }
90528
90679
 
90529
- // 确保有有效宽度
90530
- if (!containerWidth) containerWidth = 500;
90531
-
90532
- // 如果总宽度超过容器宽度,则需要展开按钮
90533
- const needExpand = totalWidth > containerWidth;
90534
-
90535
90680
  // 只有在状态变化时才更新,减少不必要的重渲染
90536
90681
  if (this.needExpand !== needExpand) {
90537
90682
  this.needExpand = needExpand;
@@ -91060,8 +91205,8 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
91060
91205
  ;
91061
91206
  var ByCommonSelector_component = normalizeComponent(
91062
91207
  common_selector_ByCommonSelectorvue_type_script_lang_js,
91063
- ByCommonSelectorvue_type_template_id_05ec4584_render,
91064
- ByCommonSelectorvue_type_template_id_05ec4584_staticRenderFns,
91208
+ ByCommonSelectorvue_type_template_id_781ea1a3_render,
91209
+ ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns,
91065
91210
  false,
91066
91211
  null,
91067
91212
  null,