@weitutech/by-components 1.1.50 → 1.1.51

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.
@@ -60510,6 +60510,8 @@ __webpack_require__.d(__webpack_exports__, {
60510
60510
  ByPager: function() { return /* reexport */ pager; },
60511
60511
  BySelect: function() { return /* reexport */ comps_select; },
60512
60512
  ByTable: function() { return /* reexport */ table; },
60513
+ ByToolBar: function() { return /* reexport */ ByToolBar; },
60514
+ ToolBarItemType: function() { return /* reexport */ ToolBarItemType; },
60513
60515
  "default": function() { return /* binding */ entry_lib; }
60514
60516
  });
60515
60517
 
@@ -60742,8 +60744,8 @@ var component = normalizeComponent(
60742
60744
  )
60743
60745
 
60744
60746
  /* harmony default export */ var pager = (component.exports);
60745
- ;// ./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-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=470bed02
60746
- var tablevue_type_template_id_470bed02_render = function render() {
60747
+ ;// ./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-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=d8304908
60748
+ var tablevue_type_template_id_d8304908_render = function render() {
60747
60749
  var _vm = this,
60748
60750
  _c = _vm._self._c;
60749
60751
  return _c('div', [_c('vxe-grid', _vm._g(_vm._b({
@@ -60817,7 +60819,7 @@ var tablevue_type_template_id_470bed02_render = function render() {
60817
60819
  }
60818
60820
  }) : _vm._e()], 1);
60819
60821
  };
60820
- var tablevue_type_template_id_470bed02_staticRenderFns = [];
60822
+ var tablevue_type_template_id_d8304908_staticRenderFns = [];
60821
60823
 
60822
60824
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
60823
60825
  var es_array_push = __webpack_require__(4114);
@@ -61902,15 +61904,23 @@ var custom_column_component = normalizeComponent(
61902
61904
  }) => {
61903
61905
  return specialFirstRow ? rowIndex : rowIndex + 1;
61904
61906
  };
61907
+
61908
+ //需注意:this.autoHeight和this.gridOptions.autoHeight的区别
61905
61909
  return {
61906
61910
  border: true,
61911
+ round: true,
61907
61912
  resizable: true,
61908
61913
  showOverflow: !this.autoHeight,
61909
- height: 550,
61914
+ // height: 720,
61915
+ ...(this.gridOptions.autoHeight ? {
61916
+ minHeight: 150,
61917
+ maxHeight: 720
61918
+ } : {
61919
+ height: 720
61920
+ }),
61910
61921
  align: 'left',
61911
- copyFields: [],
61912
- // pagerConfig: pagerConfig,
61913
- emptyText: '暂无数据',
61922
+ copyFields: this.gridOptions.copyFields || [],
61923
+ emptyText: this.gridOptions.emptyText || '暂无数据',
61914
61924
  loading: this.loading,
61915
61925
  loadingConfig: {
61916
61926
  text: '加载中...'
@@ -62304,8 +62314,8 @@ var custom_column_component = normalizeComponent(
62304
62314
  ;
62305
62315
  var table_component = normalizeComponent(
62306
62316
  components_tablevue_type_script_lang_js,
62307
- tablevue_type_template_id_470bed02_render,
62308
- tablevue_type_template_id_470bed02_staticRenderFns,
62317
+ tablevue_type_template_id_d8304908_render,
62318
+ tablevue_type_template_id_d8304908_staticRenderFns,
62309
62319
  false,
62310
62320
  null,
62311
62321
  null,
@@ -63713,6 +63723,344 @@ var date_picker_range_component = normalizeComponent(
63713
63723
  )
63714
63724
 
63715
63725
  /* harmony default export */ var date_picker_range = (date_picker_range_component.exports);
63726
+ ;// ./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-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/tool-bar/ByToolBar.vue?vue&type=template&id=6d4c62dc
63727
+ var ByToolBarvue_type_template_id_6d4c62dc_render = function render() {
63728
+ var _vm = this,
63729
+ _c = _vm._self._c;
63730
+ return _c('div', {
63731
+ staticClass: "by-tool-bar"
63732
+ }, [_c('div', {
63733
+ staticClass: "by-tool-bar__left"
63734
+ }, [_vm._l(_vm.leftItemsComputed, function (item, idx) {
63735
+ return [!item.slot && !item.hidden ? _c(_vm.getComponentType(item), _vm._b({
63736
+ key: 'left-' + idx,
63737
+ tag: "component",
63738
+ style: _vm.getComponentStyle(item),
63739
+ attrs: {
63740
+ "disabled": item.disabled
63741
+ },
63742
+ on: {
63743
+ "click": e => _vm.handleEvent('click', item, e),
63744
+ "input": val => _vm.handleEvent('input', item, val),
63745
+ "change": val => _vm.handleEvent('change', item, val)
63746
+ },
63747
+ scopedSlots: _vm._u([item.type === _vm.ToolBarItemType.Button && item.props && item.props.icon ? {
63748
+ key: "icon",
63749
+ fn: function () {
63750
+ return [_c('i', {
63751
+ class: item.props.icon
63752
+ })];
63753
+ },
63754
+ proxy: true
63755
+ } : null], null, true)
63756
+ }, 'component', item.props, 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) {
63757
+ return _c('el-option', {
63758
+ key: opt.value,
63759
+ attrs: {
63760
+ "label": opt.label,
63761
+ "value": opt.value
63762
+ }
63763
+ });
63764
+ }) : _vm._e(), item.type === _vm.ToolBarItemType.RadioGroup ? _vm._l(item.radios || [], function (opt) {
63765
+ return _c('el-radio-button', {
63766
+ key: opt.value,
63767
+ attrs: {
63768
+ "label": opt.value
63769
+ }
63770
+ }, [_vm._v(" " + _vm._s(opt.label) + " ")]);
63771
+ }) : _vm._e()], 2) : !item.hidden ? _c('div', {
63772
+ key: 'left-slot-' + idx
63773
+ }, [_vm._t(item.slot)], 2) : _vm._e()];
63774
+ })], 2), _c('div', {
63775
+ staticClass: "by-tool-bar__right"
63776
+ }, [_vm._l(_vm.rightItemsComputed, function (item, idx) {
63777
+ return [!item.slot && !item.hidden ? _c(_vm.getComponentType(item), _vm._b({
63778
+ key: 'right-' + idx,
63779
+ tag: "component",
63780
+ style: _vm.getComponentStyle(item),
63781
+ attrs: {
63782
+ "disabled": item.disabled
63783
+ },
63784
+ on: {
63785
+ "click": e => _vm.handleEvent('click', item, e),
63786
+ "input": val => _vm.handleEvent('input', item, val),
63787
+ "change": val => _vm.handleEvent('change', item, val)
63788
+ },
63789
+ scopedSlots: _vm._u([item.type === _vm.ToolBarItemType.Button && item.props && item.props.icon ? {
63790
+ key: "icon",
63791
+ fn: function () {
63792
+ return [_c('i', {
63793
+ class: item.props.icon
63794
+ })];
63795
+ },
63796
+ proxy: true
63797
+ } : null], null, true)
63798
+ }, 'component', item.props, 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) {
63799
+ return _c('el-option', {
63800
+ key: opt.value,
63801
+ attrs: {
63802
+ "label": opt.label,
63803
+ "value": opt.value
63804
+ }
63805
+ });
63806
+ }) : _vm._e(), item.type === _vm.ToolBarItemType.RadioGroup ? _vm._l(item.radios || [], function (opt) {
63807
+ return _c('el-radio-button', {
63808
+ key: opt.value,
63809
+ attrs: {
63810
+ "label": opt.value
63811
+ }
63812
+ }, [_vm._v(" " + _vm._s(opt.label) + " ")]);
63813
+ }) : _vm._e()], 2) : !item.hidden ? _c('div', {
63814
+ key: 'right-slot-' + idx
63815
+ }, [_vm._t(item.slot)], 2) : _vm._e()];
63816
+ })], 2)]);
63817
+ };
63818
+ var ByToolBarvue_type_template_id_6d4c62dc_staticRenderFns = [];
63819
+
63820
+ ;// ./src/components/tool-bar/ToolBarItemType.js
63821
+ const ToolBarItemType = Object.freeze({
63822
+ Text: 'text',
63823
+ Button: 'button',
63824
+ RadioGroup: 'radio-group',
63825
+ Select: 'select',
63826
+ Input: 'input'
63827
+ });
63828
+ ;// ./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/tool-bar/ByToolBar.vue?vue&type=script&lang=js
63829
+
63830
+
63831
+
63832
+
63833
+
63834
+ /* harmony default export */ var ByToolBarvue_type_script_lang_js = ({
63835
+ name: 'ByToolBar',
63836
+ props: {
63837
+ items: {
63838
+ type: Array,
63839
+ default: () => []
63840
+ }
63841
+ },
63842
+ data() {
63843
+ return {
63844
+ ToolBarItemType: ToolBarItemType,
63845
+ loadedOptions: {}
63846
+ };
63847
+ },
63848
+ watch: {
63849
+ items: {
63850
+ handler() {
63851
+ this.loadSelectOptions();
63852
+ },
63853
+ immediate: true
63854
+ }
63855
+ },
63856
+ computed: {
63857
+ // 处理异步选项和默认属性
63858
+ itemsWithAsyncOptions() {
63859
+ return this.items.map(item => {
63860
+ // 给组件添加默认属性
63861
+ let newItem = this.addDefaultProps(item);
63862
+
63863
+ // 处理异步选项
63864
+ if (item.type === ToolBarItemType.Select && item.name && this.loadedOptions[item.name]) {
63865
+ newItem = {
63866
+ ...newItem,
63867
+ props: {
63868
+ ...newItem.props,
63869
+ loading: this.loadedOptions[item.name].loading
63870
+ },
63871
+ asyncOptions: this.loadedOptions[item.name].options
63872
+ };
63873
+ }
63874
+ return newItem;
63875
+ });
63876
+ },
63877
+ /**
63878
+ * 左侧items
63879
+ * 没有设置 position 或 position 不是 'right',都放左侧
63880
+ */
63881
+ leftItemsComputed() {
63882
+ return this.itemsWithAsyncOptions.filter(item => item.position !== 'right' && !item.hidden);
63883
+ },
63884
+ /**
63885
+ * 右侧items
63886
+ * 设置 position 为 'right' 的放右侧
63887
+ */
63888
+ rightItemsComputed() {
63889
+ return this.itemsWithAsyncOptions.filter(item => item.position === 'right' && !item.hidden);
63890
+ }
63891
+ },
63892
+ methods: {
63893
+ /**
63894
+ * 为组件添加默认属性
63895
+ * @param {Object} item - 工具栏项
63896
+ * @returns {Object} 添加了默认属性的项
63897
+ */
63898
+ addDefaultProps(item) {
63899
+ let newItem = {
63900
+ ...item
63901
+ };
63902
+
63903
+ // 需要 size 属性的组件类型
63904
+ const needsSize = [ToolBarItemType.Button, ToolBarItemType.Select, ToolBarItemType.Input, ToolBarItemType.RadioGroup];
63905
+
63906
+ // 处理 size 属性
63907
+ if (needsSize.includes(item.type)) {
63908
+ if (item.props) {
63909
+ newItem = {
63910
+ ...item,
63911
+ props: {
63912
+ size: 'small',
63913
+ ...item.props
63914
+ }
63915
+ };
63916
+ } else {
63917
+ newItem = {
63918
+ ...item,
63919
+ props: {
63920
+ size: 'small'
63921
+ }
63922
+ };
63923
+ }
63924
+ }
63925
+
63926
+ // 处理 Text 组件的默认样式
63927
+ if (item.type === ToolBarItemType.Text) {
63928
+ const defaultTextStyle = {
63929
+ fontSize: '16px',
63930
+ color: '#333333'
63931
+ };
63932
+ if (item.props) {
63933
+ newItem = {
63934
+ ...item,
63935
+ props: {
63936
+ ...defaultTextStyle,
63937
+ ...item.props
63938
+ }
63939
+ };
63940
+ } else {
63941
+ newItem = {
63942
+ ...item,
63943
+ props: defaultTextStyle
63944
+ };
63945
+ }
63946
+ }
63947
+ return newItem;
63948
+ },
63949
+ /**
63950
+ * 如果是loadOptions函数,则获取表单数据
63951
+ */
63952
+ loadSelectOptions() {
63953
+ this.items.forEach(item => {
63954
+ if (item.type === ToolBarItemType.Select && item.props && typeof item.props.loadOptions === 'function') {
63955
+ const {
63956
+ name
63957
+ } = item;
63958
+ if (!name) {
63959
+ console.error('[ByToolBar] 下拉框使用异步加载loadOptions时,必须设置name属性.');
63960
+ return;
63961
+ }
63962
+ this.$set(this.loadedOptions, name, {
63963
+ loading: true,
63964
+ options: []
63965
+ });
63966
+ item.props.loadOptions().then(options => {
63967
+ this.$set(this.loadedOptions[name], 'options', options);
63968
+ }).finally(() => {
63969
+ this.$set(this.loadedOptions[name], 'loading', false);
63970
+ });
63971
+ }
63972
+ });
63973
+ },
63974
+ /**
63975
+ * 根据item的type返回对应的组件
63976
+ * @param item
63977
+ * @returns {string}
63978
+ */
63979
+ getComponentType(item) {
63980
+ const map = {
63981
+ [ToolBarItemType.Text]: 'span',
63982
+ [ToolBarItemType.Button]: 'el-button',
63983
+ [ToolBarItemType.RadioGroup]: 'el-radio-group',
63984
+ [ToolBarItemType.Select]: 'el-select',
63985
+ [ToolBarItemType.Input]: 'el-input'
63986
+ };
63987
+ return map[item.type] || 'div';
63988
+ },
63989
+ /**
63990
+ * 获取组件style
63991
+ * 给单个组件增加宽度限制和样式
63992
+ */
63993
+ getComponentStyle(item) {
63994
+ const style = {};
63995
+ switch (item.type) {
63996
+ case ToolBarItemType.Text:
63997
+ // 重新配置 Text 组件样式
63998
+ style.maxWidth = '300px';
63999
+ style.overflow = 'hidden';
64000
+ style.textOverflow = 'ellipsis';
64001
+ style.whiteSpace = 'nowrap';
64002
+ // 处理 Text 组件的样式属性
64003
+ if (item.props) {
64004
+ var _item$props, _item$props2, _item$props3, _item$props4;
64005
+ if ((_item$props = item.props) !== null && _item$props !== void 0 && _item$props.fontSize) {
64006
+ style.fontSize = item.props.fontSize;
64007
+ }
64008
+ if ((_item$props2 = item.props) !== null && _item$props2 !== void 0 && _item$props2.color) {
64009
+ style.color = item.props.color;
64010
+ }
64011
+ if ((_item$props3 = item.props) !== null && _item$props3 !== void 0 && _item$props3.maxWidth) {
64012
+ style.maxWidth = item.props.maxWidth;
64013
+ }
64014
+ if ((_item$props4 = item.props) !== null && _item$props4 !== void 0 && _item$props4.width) {
64015
+ style.width = item.props.width;
64016
+ }
64017
+ }
64018
+ break;
64019
+ case ToolBarItemType.Input:
64020
+ case ToolBarItemType.Select:
64021
+ style.maxWidth = '200px';
64022
+ break;
64023
+ case ToolBarItemType.Button:
64024
+ case ToolBarItemType.RadioGroup:
64025
+ style.maxWidth = '400px';
64026
+ break;
64027
+ }
64028
+ return style;
64029
+ },
64030
+ /**
64031
+ * 统一事件分发,带上item的name或key作为唯一标识
64032
+ */
64033
+ handleEvent(eventType, item, payload) {
64034
+ this.$emit('action', {
64035
+ type: eventType,
64036
+ item: item,
64037
+ payload: payload
64038
+ });
64039
+ }
64040
+ }
64041
+ });
64042
+ ;// ./src/components/tool-bar/ByToolBar.vue?vue&type=script&lang=js
64043
+ /* harmony default export */ var tool_bar_ByToolBarvue_type_script_lang_js = (ByToolBarvue_type_script_lang_js);
64044
+ ;// ./src/components/tool-bar/ByToolBar.vue
64045
+
64046
+
64047
+
64048
+
64049
+
64050
+ /* normalize component */
64051
+ ;
64052
+ var ByToolBar_component = normalizeComponent(
64053
+ tool_bar_ByToolBarvue_type_script_lang_js,
64054
+ ByToolBarvue_type_template_id_6d4c62dc_render,
64055
+ ByToolBarvue_type_template_id_6d4c62dc_staticRenderFns,
64056
+ false,
64057
+ null,
64058
+ null,
64059
+ null
64060
+
64061
+ )
64062
+
64063
+ /* harmony default export */ var ByToolBar = (ByToolBar_component.exports);
63716
64064
  ;// ./node_modules/dom-zindex/es/index.esm.js
63717
64065
  var winDom = null;
63718
64066
  var bodyEl = null;
@@ -63882,6 +64230,8 @@ updateVar();
63882
64230
 
63883
64231
 
63884
64232
 
64233
+
64234
+
63885
64235
  const components = {
63886
64236
  ByPager: pager,
63887
64237
  ByTable: table,
@@ -63890,7 +64240,8 @@ const components = {
63890
64240
  ByFoldSearch: fold_search,
63891
64241
  BySelect: comps_select,
63892
64242
  ByDatePickerRange: date_picker_range,
63893
- ByCustomDatePicker: custom_date_picker
64243
+ ByCustomDatePicker: custom_date_picker,
64244
+ ByToolBar: ByToolBar
63894
64245
  };
63895
64246
 
63896
64247
  // 设置当前 z-index 起始值