@weitutech/by-components 1.1.50 → 1.1.52

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.
@@ -60520,6 +60520,8 @@ __webpack_require__.d(__webpack_exports__, {
60520
60520
  ByPager: function() { return /* reexport */ pager; },
60521
60521
  BySelect: function() { return /* reexport */ comps_select; },
60522
60522
  ByTable: function() { return /* reexport */ table; },
60523
+ ByToolBar: function() { return /* reexport */ ByToolBar; },
60524
+ ToolBarItemType: function() { return /* reexport */ ToolBarItemType; },
60523
60525
  "default": function() { return /* binding */ entry_lib; }
60524
60526
  });
60525
60527
 
@@ -60752,8 +60754,8 @@ var component = normalizeComponent(
60752
60754
  )
60753
60755
 
60754
60756
  /* harmony default export */ var pager = (component.exports);
60755
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"268ca57a-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=470bed02
60756
- var tablevue_type_template_id_470bed02_render = function render() {
60757
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"268ca57a-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=d8304908
60758
+ var tablevue_type_template_id_d8304908_render = function render() {
60757
60759
  var _vm = this,
60758
60760
  _c = _vm._self._c;
60759
60761
  return _c('div', [_c('vxe-grid', _vm._g(_vm._b({
@@ -60827,7 +60829,7 @@ var tablevue_type_template_id_470bed02_render = function render() {
60827
60829
  }
60828
60830
  }) : _vm._e()], 1);
60829
60831
  };
60830
- var tablevue_type_template_id_470bed02_staticRenderFns = [];
60832
+ var tablevue_type_template_id_d8304908_staticRenderFns = [];
60831
60833
 
60832
60834
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
60833
60835
  var es_array_push = __webpack_require__(4114);
@@ -61912,15 +61914,23 @@ var custom_column_component = normalizeComponent(
61912
61914
  }) => {
61913
61915
  return specialFirstRow ? rowIndex : rowIndex + 1;
61914
61916
  };
61917
+
61918
+ //需注意:this.autoHeight和this.gridOptions.autoHeight的区别
61915
61919
  return {
61916
61920
  border: true,
61921
+ round: true,
61917
61922
  resizable: true,
61918
61923
  showOverflow: !this.autoHeight,
61919
- height: 550,
61924
+ // height: 720,
61925
+ ...(this.gridOptions.autoHeight ? {
61926
+ minHeight: 150,
61927
+ maxHeight: 720
61928
+ } : {
61929
+ height: 720
61930
+ }),
61920
61931
  align: 'left',
61921
- copyFields: [],
61922
- // pagerConfig: pagerConfig,
61923
- emptyText: '暂无数据',
61932
+ copyFields: this.gridOptions.copyFields || [],
61933
+ emptyText: this.gridOptions.emptyText || '暂无数据',
61924
61934
  loading: this.loading,
61925
61935
  loadingConfig: {
61926
61936
  text: '加载中...'
@@ -62314,8 +62324,8 @@ var custom_column_component = normalizeComponent(
62314
62324
  ;
62315
62325
  var table_component = normalizeComponent(
62316
62326
  components_tablevue_type_script_lang_js,
62317
- tablevue_type_template_id_470bed02_render,
62318
- tablevue_type_template_id_470bed02_staticRenderFns,
62327
+ tablevue_type_template_id_d8304908_render,
62328
+ tablevue_type_template_id_d8304908_staticRenderFns,
62319
62329
  false,
62320
62330
  null,
62321
62331
  null,
@@ -63723,6 +63733,361 @@ var date_picker_range_component = normalizeComponent(
63723
63733
  )
63724
63734
 
63725
63735
  /* harmony default export */ var date_picker_range = (date_picker_range_component.exports);
63736
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"268ca57a-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/tool-bar/ByToolBar.vue?vue&type=template&id=a297ff24
63737
+ var ByToolBarvue_type_template_id_a297ff24_render = function render() {
63738
+ var _vm = this,
63739
+ _c = _vm._self._c;
63740
+ return _c('div', {
63741
+ staticClass: "by-tool-bar"
63742
+ }, [_c('div', {
63743
+ staticClass: "by-tool-bar__left"
63744
+ }, [_vm._l(_vm.leftItemsComputed, function (item, idx) {
63745
+ return [!item.slot && !item.hidden ? _c(_vm.getComponentType(item), _vm._b({
63746
+ key: 'left-' + idx,
63747
+ tag: "component",
63748
+ style: _vm.getComponentStyle(item),
63749
+ attrs: {
63750
+ "disabled": item.disabled
63751
+ },
63752
+ on: {
63753
+ "click": e => _vm.handleEvent('click', item, e),
63754
+ "input": val => _vm.handleEvent('input', item, val),
63755
+ "change": val => _vm.handleEvent('change', item, val)
63756
+ },
63757
+ scopedSlots: _vm._u([item.type === _vm.ToolBarItemType.Button && item.props && item.props.icon ? {
63758
+ key: "icon",
63759
+ fn: function () {
63760
+ return [_c('i', {
63761
+ class: item.props.icon
63762
+ })];
63763
+ },
63764
+ proxy: true
63765
+ } : null], null, true)
63766
+ }, 'component', _vm.getComponentProps(item), false), [item.type === _vm.ToolBarItemType.Button && item.label ? _c('span', [_vm._v(_vm._s(item.label))]) : _vm._e(), item.type === _vm.ToolBarItemType.Text ? _c('span', [_vm._v(" " + _vm._s(item.label) + _vm._s(item.props && (item.props.children || item.props.innerHTML)) + " ")]) : _vm._e(), item.type === _vm.ToolBarItemType.Select ? _vm._l(item.asyncOptions || item.props.options || [], function (opt) {
63767
+ return _c('el-option', {
63768
+ key: opt.value,
63769
+ attrs: {
63770
+ "label": opt.label,
63771
+ "value": opt.value
63772
+ }
63773
+ });
63774
+ }) : _vm._e(), item.type === _vm.ToolBarItemType.RadioGroup ? _vm._l(item.radios || [], function (opt) {
63775
+ return _c('el-radio-button', {
63776
+ key: opt.value,
63777
+ attrs: {
63778
+ "label": opt.value
63779
+ }
63780
+ }, [_vm._v(" " + _vm._s(opt.label) + " ")]);
63781
+ }) : _vm._e()], 2) : !item.hidden ? _c('div', {
63782
+ key: 'left-slot-' + idx
63783
+ }, [_vm._t(item.slot)], 2) : _vm._e()];
63784
+ })], 2), _c('div', {
63785
+ staticClass: "by-tool-bar__right"
63786
+ }, [_vm._l(_vm.rightItemsComputed, function (item, idx) {
63787
+ return [!item.slot && !item.hidden ? _c(_vm.getComponentType(item), _vm._b({
63788
+ key: 'right-' + idx,
63789
+ tag: "component",
63790
+ style: _vm.getComponentStyle(item),
63791
+ attrs: {
63792
+ "disabled": item.disabled
63793
+ },
63794
+ on: {
63795
+ "click": e => _vm.handleEvent('click', item, e),
63796
+ "input": val => _vm.handleEvent('input', item, val),
63797
+ "change": val => _vm.handleEvent('change', item, val)
63798
+ },
63799
+ scopedSlots: _vm._u([item.type === _vm.ToolBarItemType.Button && item.props && item.props.icon ? {
63800
+ key: "icon",
63801
+ fn: function () {
63802
+ return [_c('i', {
63803
+ class: item.props.icon
63804
+ })];
63805
+ },
63806
+ proxy: true
63807
+ } : null], null, true)
63808
+ }, 'component', _vm.getComponentProps(item), false), [item.type === _vm.ToolBarItemType.Button && item.label ? _c('span', [_vm._v(_vm._s(item.label))]) : _vm._e(), item.type === _vm.ToolBarItemType.Text ? _c('span', [_vm._v(" " + _vm._s(item.label) + _vm._s(item.props && (item.props.children || item.props.innerHTML)) + " ")]) : _vm._e(), item.type === _vm.ToolBarItemType.Select ? _vm._l(item.asyncOptions || item.props.options || [], function (opt) {
63809
+ return _c('el-option', {
63810
+ key: opt.value,
63811
+ attrs: {
63812
+ "label": opt.label,
63813
+ "value": opt.value
63814
+ }
63815
+ });
63816
+ }) : _vm._e(), item.type === _vm.ToolBarItemType.RadioGroup ? _vm._l(item.radios || [], function (opt) {
63817
+ return _c('el-radio-button', {
63818
+ key: opt.value,
63819
+ attrs: {
63820
+ "label": opt.value
63821
+ }
63822
+ }, [_vm._v(" " + _vm._s(opt.label) + " ")]);
63823
+ }) : _vm._e()], 2) : !item.hidden ? _c('div', {
63824
+ key: 'right-slot-' + idx
63825
+ }, [_vm._t(item.slot)], 2) : _vm._e()];
63826
+ })], 2)]);
63827
+ };
63828
+ var ByToolBarvue_type_template_id_a297ff24_staticRenderFns = [];
63829
+
63830
+ ;// ./src/components/tool-bar/ToolBarItemType.js
63831
+ const ToolBarItemType = Object.freeze({
63832
+ Text: 'text',
63833
+ Button: 'button',
63834
+ RadioGroup: 'radio-group',
63835
+ Select: 'select',
63836
+ Input: 'input'
63837
+ });
63838
+ ;// ./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/tool-bar/ByToolBar.vue?vue&type=script&lang=js
63839
+
63840
+
63841
+
63842
+
63843
+
63844
+ /* harmony default export */ var ByToolBarvue_type_script_lang_js = ({
63845
+ name: 'ByToolBar',
63846
+ props: {
63847
+ items: {
63848
+ type: Array,
63849
+ default: () => []
63850
+ }
63851
+ },
63852
+ data() {
63853
+ return {
63854
+ ToolBarItemType: ToolBarItemType,
63855
+ loadedOptions: {}
63856
+ };
63857
+ },
63858
+ watch: {
63859
+ items: {
63860
+ handler() {
63861
+ this.loadSelectOptions();
63862
+ },
63863
+ immediate: true
63864
+ }
63865
+ },
63866
+ computed: {
63867
+ // 处理异步选项和默认属性
63868
+ itemsWithAsyncOptions() {
63869
+ return this.items.map(item => {
63870
+ // 给组件添加默认属性
63871
+ let newItem = this.addDefaultProps(item);
63872
+
63873
+ // 处理异步选项
63874
+ if (item.type === ToolBarItemType.Select && item.name && this.loadedOptions[item.name]) {
63875
+ newItem = {
63876
+ ...newItem,
63877
+ props: {
63878
+ ...newItem.props,
63879
+ loading: this.loadedOptions[item.name].loading
63880
+ },
63881
+ asyncOptions: this.loadedOptions[item.name].options
63882
+ };
63883
+ }
63884
+ return newItem;
63885
+ });
63886
+ },
63887
+ /**
63888
+ * 左侧items
63889
+ * 没有设置 position 或 position 不是 'right',都放左侧
63890
+ */
63891
+ leftItemsComputed() {
63892
+ return this.itemsWithAsyncOptions.filter(item => item.position !== 'right' && !item.hidden);
63893
+ },
63894
+ /**
63895
+ * 右侧items
63896
+ * 设置 position 为 'right' 的放右侧
63897
+ */
63898
+ rightItemsComputed() {
63899
+ return this.itemsWithAsyncOptions.filter(item => item.position === 'right' && !item.hidden);
63900
+ }
63901
+ },
63902
+ methods: {
63903
+ /**
63904
+ * 为组件添加默认属性
63905
+ * @param {Object} item - 工具栏项
63906
+ * @returns {Object} 添加了默认属性的项
63907
+ */
63908
+ addDefaultProps(item) {
63909
+ let newItem = {
63910
+ ...item
63911
+ };
63912
+
63913
+ // 需要 size 属性的组件类型
63914
+ const needsSize = [ToolBarItemType.Button, ToolBarItemType.Select, ToolBarItemType.Input, ToolBarItemType.RadioGroup];
63915
+
63916
+ // 处理 size 属性
63917
+ if (needsSize.includes(item.type)) {
63918
+ if (item.props) {
63919
+ newItem = {
63920
+ ...item,
63921
+ props: {
63922
+ size: 'small',
63923
+ ...item.props
63924
+ }
63925
+ };
63926
+ } else {
63927
+ newItem = {
63928
+ ...item,
63929
+ props: {
63930
+ size: 'small'
63931
+ }
63932
+ };
63933
+ }
63934
+ }
63935
+
63936
+ // 处理 Text 组件的默认样式
63937
+ if (item.type === ToolBarItemType.Text) {
63938
+ const defaultTextStyle = {
63939
+ fontSize: '16px',
63940
+ color: '#333333'
63941
+ };
63942
+ if (item.props) {
63943
+ newItem = {
63944
+ ...item,
63945
+ props: {
63946
+ ...defaultTextStyle,
63947
+ ...item.props
63948
+ }
63949
+ };
63950
+ } else {
63951
+ newItem = {
63952
+ ...item,
63953
+ props: defaultTextStyle
63954
+ };
63955
+ }
63956
+ }
63957
+ return newItem;
63958
+ },
63959
+ /**
63960
+ * 如果是loadOptions函数,则获取表单数据
63961
+ */
63962
+ loadSelectOptions() {
63963
+ this.items.forEach(item => {
63964
+ if (item.type === ToolBarItemType.Select && item.props && typeof item.props.loadOptions === 'function') {
63965
+ const {
63966
+ name
63967
+ } = item;
63968
+ if (!name) {
63969
+ console.error('[ByToolBar] 下拉框使用异步加载loadOptions时,必须设置name属性.');
63970
+ return;
63971
+ }
63972
+ this.$set(this.loadedOptions, name, {
63973
+ loading: true,
63974
+ options: []
63975
+ });
63976
+ item.props.loadOptions().then(options => {
63977
+ this.$set(this.loadedOptions[name], 'options', options);
63978
+ }).finally(() => {
63979
+ this.$set(this.loadedOptions[name], 'loading', false);
63980
+ });
63981
+ }
63982
+ });
63983
+ },
63984
+ /**
63985
+ * 根据item的type返回对应的组件
63986
+ * @param item
63987
+ * @returns {string}
63988
+ */
63989
+ getComponentType(item) {
63990
+ const map = {
63991
+ [ToolBarItemType.Text]: 'span',
63992
+ [ToolBarItemType.Button]: 'el-button',
63993
+ [ToolBarItemType.RadioGroup]: 'el-radio-group',
63994
+ [ToolBarItemType.Select]: 'el-select',
63995
+ [ToolBarItemType.Input]: 'el-input'
63996
+ };
63997
+ return map[item.type] || 'div';
63998
+ },
63999
+ /**
64000
+ * 获取组件props
64001
+ * 处理组件的特殊配置属性
64002
+ */
64003
+ getComponentProps(item) {
64004
+ const props = {
64005
+ ...item.props
64006
+ };
64007
+
64008
+ // 处理select组件的onlyShowPlaceholder配置
64009
+ if (item.type === ToolBarItemType.Select && props.onlyShowPlaceholder === true) {
64010
+ // 当onlyShowPlaceholder为true时,不显示选中的值,只显示placeholder
64011
+ props.value = undefined;
64012
+ props.modelValue = undefined;
64013
+ }
64014
+ return props;
64015
+ },
64016
+ /**
64017
+ * 获取组件style
64018
+ * 给单个组件增加宽度限制和样式
64019
+ */
64020
+ getComponentStyle(item) {
64021
+ const style = {};
64022
+ switch (item.type) {
64023
+ case ToolBarItemType.Text:
64024
+ // 重新配置 Text 组件样式
64025
+ style.maxWidth = '300px';
64026
+ style.overflow = 'hidden';
64027
+ style.textOverflow = 'ellipsis';
64028
+ style.whiteSpace = 'nowrap';
64029
+ // 处理 Text 组件的样式属性
64030
+ if (item.props) {
64031
+ var _item$props, _item$props2, _item$props3, _item$props4;
64032
+ if ((_item$props = item.props) !== null && _item$props !== void 0 && _item$props.fontSize) {
64033
+ style.fontSize = item.props.fontSize;
64034
+ }
64035
+ if ((_item$props2 = item.props) !== null && _item$props2 !== void 0 && _item$props2.color) {
64036
+ style.color = item.props.color;
64037
+ }
64038
+ if ((_item$props3 = item.props) !== null && _item$props3 !== void 0 && _item$props3.maxWidth) {
64039
+ style.maxWidth = item.props.maxWidth;
64040
+ }
64041
+ if ((_item$props4 = item.props) !== null && _item$props4 !== void 0 && _item$props4.width) {
64042
+ style.width = item.props.width;
64043
+ }
64044
+ }
64045
+ break;
64046
+ case ToolBarItemType.Input:
64047
+ case ToolBarItemType.Select:
64048
+ style.maxWidth = '200px';
64049
+ break;
64050
+ case ToolBarItemType.Button:
64051
+ case ToolBarItemType.RadioGroup:
64052
+ style.maxWidth = '400px';
64053
+ break;
64054
+ }
64055
+ return style;
64056
+ },
64057
+ /**
64058
+ * 统一事件分发,带上item的name或key作为唯一标识
64059
+ */
64060
+ handleEvent(eventType, item, payload) {
64061
+ this.$emit('action', {
64062
+ type: eventType,
64063
+ item: item,
64064
+ payload: payload
64065
+ });
64066
+ }
64067
+ }
64068
+ });
64069
+ ;// ./src/components/tool-bar/ByToolBar.vue?vue&type=script&lang=js
64070
+ /* harmony default export */ var tool_bar_ByToolBarvue_type_script_lang_js = (ByToolBarvue_type_script_lang_js);
64071
+ ;// ./src/components/tool-bar/ByToolBar.vue
64072
+
64073
+
64074
+
64075
+
64076
+
64077
+ /* normalize component */
64078
+ ;
64079
+ var ByToolBar_component = normalizeComponent(
64080
+ tool_bar_ByToolBarvue_type_script_lang_js,
64081
+ ByToolBarvue_type_template_id_a297ff24_render,
64082
+ ByToolBarvue_type_template_id_a297ff24_staticRenderFns,
64083
+ false,
64084
+ null,
64085
+ null,
64086
+ null
64087
+
64088
+ )
64089
+
64090
+ /* harmony default export */ var ByToolBar = (ByToolBar_component.exports);
63726
64091
  ;// ./node_modules/dom-zindex/es/index.esm.js
63727
64092
  var winDom = null;
63728
64093
  var bodyEl = null;
@@ -63892,6 +64257,8 @@ updateVar();
63892
64257
 
63893
64258
 
63894
64259
 
64260
+
64261
+
63895
64262
  const components = {
63896
64263
  ByPager: pager,
63897
64264
  ByTable: table,
@@ -63900,7 +64267,8 @@ const components = {
63900
64267
  ByFoldSearch: fold_search,
63901
64268
  BySelect: comps_select,
63902
64269
  ByDatePickerRange: date_picker_range,
63903
- ByCustomDatePicker: custom_date_picker
64270
+ ByCustomDatePicker: custom_date_picker,
64271
+ ByToolBar: ByToolBar
63904
64272
  };
63905
64273
 
63906
64274
  // 设置当前 z-index 起始值