@weitutech/by-components 1.1.65 → 1.1.67

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.
@@ -60512,6 +60512,7 @@ __webpack_require__.r(__webpack_exports__);
60512
60512
 
60513
60513
  // EXPORTS
60514
60514
  __webpack_require__.d(__webpack_exports__, {
60515
+ ByBatchQuerySelector: function() { return /* reexport */ BatchQuerySelector; },
60515
60516
  ByCommonSelector: function() { return /* reexport */ ByCommonSelector; },
60516
60517
  ByCustomDatePicker: function() { return /* reexport */ custom_date_picker; },
60517
60518
  ByDatePickerRange: function() { return /* reexport */ date_picker_range; },
@@ -60755,8 +60756,8 @@ var component = normalizeComponent(
60755
60756
  )
60756
60757
 
60757
60758
  /* harmony default export */ var pager = (component.exports);
60758
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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
60759
- var tablevue_type_template_id_d8304908_render = function render() {
60759
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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=746a119a
60760
+ var tablevue_type_template_id_746a119a_render = function render() {
60760
60761
  var _vm = this,
60761
60762
  _c = _vm._self._c;
60762
60763
  return _c('div', [_c('vxe-grid', _vm._g(_vm._b({
@@ -60830,12 +60831,14 @@ var tablevue_type_template_id_d8304908_render = function render() {
60830
60831
  }
60831
60832
  }) : _vm._e()], 1);
60832
60833
  };
60833
- var tablevue_type_template_id_d8304908_staticRenderFns = [];
60834
+ var tablevue_type_template_id_746a119a_staticRenderFns = [];
60834
60835
 
60835
60836
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
60836
60837
  var es_array_push = __webpack_require__(4114);
60837
60838
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js
60838
60839
  var es_iterator_every = __webpack_require__(1148);
60840
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
60841
+ var es_iterator_map = __webpack_require__(1701);
60839
60842
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
60840
60843
  var es_set_difference_v2 = __webpack_require__(7642);
60841
60844
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js
@@ -61060,8 +61063,6 @@ var es_iterator_filter = __webpack_require__(2489);
61060
61063
  var es_iterator_find = __webpack_require__(116);
61061
61064
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js
61062
61065
  var es_iterator_flat_map = __webpack_require__(531);
61063
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
61064
- var es_iterator_map = __webpack_require__(1701);
61065
61066
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
61066
61067
  var es_iterator_some = __webpack_require__(3579);
61067
61068
  // EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js
@@ -61753,6 +61754,7 @@ var custom_column_component = normalizeComponent(
61753
61754
 
61754
61755
 
61755
61756
 
61757
+
61756
61758
  /* harmony default export */ var tablevue_type_script_lang_js = ({
61757
61759
  name: 'ByTable',
61758
61760
  components: {
@@ -61829,11 +61831,20 @@ var custom_column_component = normalizeComponent(
61829
61831
  sortState: {
61830
61832
  field: null,
61831
61833
  order: null
61832
- }
61834
+ },
61835
+ // 表格容器宽度
61836
+ tableWidth: window.innerWidth,
61837
+ // 是否为移动设备
61838
+ isMobile: false
61833
61839
  };
61834
61840
  },
61835
61841
  mounted() {
61836
61842
  this.showResetCache = !!this.name;
61843
+ this.checkDeviceType();
61844
+ this.initResizeListener();
61845
+ },
61846
+ beforeDestroy() {
61847
+ this.removeResizeListener();
61837
61848
  },
61838
61849
  watch: {
61839
61850
  'gridOptions.columns': {
@@ -61886,9 +61897,14 @@ var custom_column_component = normalizeComponent(
61886
61897
  this.originColumns = rewriteWidthColumns(this.tempColumns, columns);
61887
61898
 
61888
61899
  // 使用列宽缓存值(若有)
61889
- const newColumns = replaceColumnWidthToColumns(this.name, columns);
61900
+ let newColumns = replaceColumnWidthToColumns(this.name, columns);
61890
61901
  this.setHasCache();
61891
61902
 
61903
+ // 处理固定列限制
61904
+ if (this.isMobile || this.tableWidth < 1000) {
61905
+ newColumns = this.removeFixedColumns(newColumns);
61906
+ }
61907
+
61892
61908
  // 处理前端分页
61893
61909
  let data = others.data || [];
61894
61910
  if ((_others$pagerConfig = others.pagerConfig) !== null && _others$pagerConfig !== void 0 && _others$pagerConfig.frontendPagination || (_others$sortConfig = others.sortConfig) !== null && _others$sortConfig !== void 0 && _others$sortConfig.frontendSort) {
@@ -61984,6 +62000,58 @@ var custom_column_component = normalizeComponent(
61984
62000
  }
61985
62001
  },
61986
62002
  methods: {
62003
+ // ********************************************** 设备、宽度 校验,取消去定列 *****************************************
62004
+ // 检查设备类型
62005
+ checkDeviceType() {
62006
+ const userAgent = navigator.userAgent || navigator.vendor || window.opera;
62007
+ const isMobileByUA = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(userAgent.toLowerCase());
62008
+ const isSmallScreen = window.innerWidth <= 1024;
62009
+ this.isMobile = isMobileByUA || isSmallScreen;
62010
+ },
62011
+ // 初始化窗口大小监听
62012
+ initResizeListener() {
62013
+ window.addEventListener('resize', this.handleResize);
62014
+ // 初始获取表格宽度
62015
+ this.$nextTick(() => {
62016
+ if (this.$refs.xGrid && this.$refs.xGrid.$el) {
62017
+ this.tableWidth = this.$refs.xGrid.$el.offsetWidth;
62018
+ }
62019
+ });
62020
+ },
62021
+ // 移除窗口大小监听
62022
+ removeResizeListener() {
62023
+ window.removeEventListener('resize', this.handleResize);
62024
+ },
62025
+ // 处理窗口大小变化
62026
+ handleResize() {
62027
+ if (this.$refs.xGrid && this.$refs.xGrid.$el) {
62028
+ this.tableWidth = this.$refs.xGrid.$el.offsetWidth;
62029
+ } else {
62030
+ this.tableWidth = window.innerWidth;
62031
+ }
62032
+ },
62033
+ // 移除固定列
62034
+ removeFixedColumns(columns) {
62035
+ if (!columns || !Array.isArray(columns)) return columns;
62036
+ return columns.map(column => {
62037
+ const newColumn = {
62038
+ ...column
62039
+ };
62040
+
62041
+ // 移除固定列属性
62042
+ if (newColumn.fixed) {
62043
+ delete newColumn.fixed;
62044
+ }
62045
+
62046
+ // 处理子列
62047
+ if (newColumn.children && Array.isArray(newColumn.children)) {
62048
+ newColumn.children = this.removeFixedColumns(newColumn.children);
62049
+ }
62050
+ return newColumn;
62051
+ });
62052
+ },
62053
+ // ********************************************** 设备、宽度 校验,取消去定列 *****************************************
62054
+
61987
62055
  handleCellClick(context) {
61988
62056
  if (this.options.copyFields.includes(context.column.field)) {
61989
62057
  const text = context.cell.outerText;
@@ -62325,8 +62393,8 @@ var custom_column_component = normalizeComponent(
62325
62393
  ;
62326
62394
  var table_component = normalizeComponent(
62327
62395
  components_tablevue_type_script_lang_js,
62328
- tablevue_type_template_id_d8304908_render,
62329
- tablevue_type_template_id_d8304908_staticRenderFns,
62396
+ tablevue_type_template_id_746a119a_render,
62397
+ tablevue_type_template_id_746a119a_staticRenderFns,
62330
62398
  false,
62331
62399
  null,
62332
62400
  null,
@@ -62335,8 +62403,8 @@ var table_component = normalizeComponent(
62335
62403
  )
62336
62404
 
62337
62405
  /* harmony default export */ var table = (table_component.exports);
62338
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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/form.vue?vue&type=template&id=9bf2745a&scoped=true
62339
- var formvue_type_template_id_9bf2745a_scoped_true_render = function render() {
62406
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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/form.vue?vue&type=template&id=c208c726&scoped=true
62407
+ var formvue_type_template_id_c208c726_scoped_true_render = function render() {
62340
62408
  var _vm = this,
62341
62409
  _c = _vm._self._c;
62342
62410
  return _c('div', {
@@ -62478,7 +62546,45 @@ var formvue_type_template_id_9bf2745a_scoped_true_render = function render() {
62478
62546
  return _vm.handleSuffixInputChange($event, item);
62479
62547
  }
62480
62548
  }
62481
- }, 'by-common-selector', item.otherOptions || {}, false))] : item.type === 'datepicker' ? [_c('el-date-picker', _vm._b({
62549
+ }, 'by-common-selector', item.otherOptions || {}, false))] : item.type === 'batchQuerySelector' ? [_c('by-batch-query-selector', _vm._b({
62550
+ attrs: {
62551
+ "value": _vm.value[`${item.field}`],
62552
+ "config": item,
62553
+ "options": item.options || [],
62554
+ "loadOptions": item.loadOptions,
62555
+ "autoLoad": item.autoLoad !== false,
62556
+ "valueKey": item.valueKey || 'id',
62557
+ "labelKey": item.labelKey || 'name',
62558
+ "disabledKey": item.disabledKey || 'disabled',
62559
+ "disabledMethod": item.disabledMethod,
62560
+ "multiple": item.multiple !== false,
62561
+ "collapseTags": item.collapseTags !== false,
62562
+ "placeholder": item.placeholder || '请选择',
62563
+ "disabled": item.disabled,
62564
+ "clearable": item.clearable !== false,
62565
+ "size": _vm.elSize,
62566
+ "maxWidth": item.maxWidth || '100%',
62567
+ "popoverWidth": item.popoverWidth || 300,
62568
+ "customMapFunction": item.customMapFunction
62569
+ },
62570
+ on: {
62571
+ "input": function ($event) {
62572
+ return _vm.handleValueChange($event, item);
62573
+ },
62574
+ "change": function ($event) {
62575
+ return _vm.handleValueChange($event, item);
62576
+ },
62577
+ "options-loaded": function ($event) {
62578
+ return _vm.handleBatchSelectorOptionsLoaded($event, item);
62579
+ },
62580
+ "options-load-error": function ($event) {
62581
+ return _vm.handleBatchSelectorOptionsLoadError($event, item);
62582
+ },
62583
+ "batch-input-complete": function ($event) {
62584
+ return _vm.handleBatchInputComplete($event, item);
62585
+ }
62586
+ }
62587
+ }, 'by-batch-query-selector', item.otherOptions || {}, false))] : item.type === 'datepicker' ? [_c('el-date-picker', _vm._b({
62482
62588
  staticStyle: {
62483
62589
  "width": "100%"
62484
62590
  },
@@ -62644,7 +62750,7 @@ var formvue_type_template_id_9bf2745a_scoped_true_render = function render() {
62644
62750
  staticClass: "footer"
62645
62751
  }, [_vm._t("footer")], 2)], 1);
62646
62752
  };
62647
- var formvue_type_template_id_9bf2745a_scoped_true_staticRenderFns = [];
62753
+ var formvue_type_template_id_c208c726_scoped_true_staticRenderFns = [];
62648
62754
 
62649
62755
  ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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/pair-number-input.vue?vue&type=template&id=604235f6
62650
62756
  var pair_number_inputvue_type_template_id_604235f6_render = function render() {
@@ -74101,6 +74207,414 @@ var ByCommonSelector_component = normalizeComponent(
74101
74207
  )
74102
74208
 
74103
74209
  /* harmony default export */ var ByCommonSelector = (ByCommonSelector_component.exports);
74210
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7d802f52-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/batch-query-selector/BatchQuerySelector.vue?vue&type=template&id=87a7b5d8
74211
+ var BatchQuerySelectorvue_type_template_id_87a7b5d8_render = function render() {
74212
+ var _vm = this,
74213
+ _c = _vm._self._c;
74214
+ return _c('div', {
74215
+ staticClass: "by-batch-query-selector",
74216
+ style: _vm.containerStyle
74217
+ }, [_c('div', {
74218
+ staticClass: "selector-container"
74219
+ }, [_c('el-select', {
74220
+ staticClass: "selector-input",
74221
+ attrs: {
74222
+ "placeholder": _vm.placeholder,
74223
+ "disabled": _vm.disabled || _vm.loading,
74224
+ "size": _vm.size,
74225
+ "clearable": _vm.clearable,
74226
+ "multiple": _vm.multiple,
74227
+ "collapse-tags": _vm.collapseTags,
74228
+ "loading": _vm.loading
74229
+ },
74230
+ on: {
74231
+ "change": _vm.handleChange,
74232
+ "focus": _vm.handleFocus
74233
+ },
74234
+ model: {
74235
+ value: _vm.selectedValues,
74236
+ callback: function ($$v) {
74237
+ _vm.selectedValues = $$v;
74238
+ },
74239
+ expression: "selectedValues"
74240
+ }
74241
+ }, _vm._l(_vm.optionsList, function (item) {
74242
+ return _c('el-option', {
74243
+ key: item[_vm.valueKey],
74244
+ attrs: {
74245
+ "label": item[_vm.labelKey],
74246
+ "value": item[_vm.valueKey],
74247
+ "disabled": _vm.isOptionDisabled(item)
74248
+ }
74249
+ });
74250
+ }), 1), _c('el-popover', {
74251
+ attrs: {
74252
+ "placement": "bottom-end",
74253
+ "width": _vm.popoverWidth,
74254
+ "trigger": "click",
74255
+ "popper-class": "batch-input-popover"
74256
+ },
74257
+ model: {
74258
+ value: _vm.popoverVisible,
74259
+ callback: function ($$v) {
74260
+ _vm.popoverVisible = $$v;
74261
+ },
74262
+ expression: "popoverVisible"
74263
+ }
74264
+ }, [_c('div', {
74265
+ staticClass: "batch-input-container"
74266
+ }, [_c('div', {
74267
+ staticClass: "popover-title"
74268
+ }, [_vm._v("批量输入")]), _c('div', {
74269
+ staticClass: "input-type-selector"
74270
+ }, [_c('el-radio', {
74271
+ attrs: {
74272
+ "label": 'id'
74273
+ },
74274
+ model: {
74275
+ value: _vm.inputType,
74276
+ callback: function ($$v) {
74277
+ _vm.inputType = $$v;
74278
+ },
74279
+ expression: "inputType"
74280
+ }
74281
+ }, [_vm._v("ID")]), _c('el-radio', {
74282
+ attrs: {
74283
+ "label": 'name'
74284
+ },
74285
+ model: {
74286
+ value: _vm.inputType,
74287
+ callback: function ($$v) {
74288
+ _vm.inputType = $$v;
74289
+ },
74290
+ expression: "inputType"
74291
+ }
74292
+ }, [_vm._v("名称")])], 1), _c('el-input', {
74293
+ staticClass: "batch-input-textarea",
74294
+ attrs: {
74295
+ "type": "textarea",
74296
+ "rows": 10,
74297
+ "placeholder": _vm.inputType === 'id' ? '请输入ID,多个ID用换行、逗号、分号、空格分隔' : '请输入名称,多个名称用换行、逗号、分号、空格分隔'
74298
+ },
74299
+ model: {
74300
+ value: _vm.batchInputContent,
74301
+ callback: function ($$v) {
74302
+ _vm.batchInputContent = $$v;
74303
+ },
74304
+ expression: "batchInputContent"
74305
+ }
74306
+ }), _c('div', {
74307
+ staticClass: "popover-footer"
74308
+ }, [_c('el-button', {
74309
+ attrs: {
74310
+ "size": "mini"
74311
+ },
74312
+ on: {
74313
+ "click": function ($event) {
74314
+ _vm.popoverVisible = false;
74315
+ }
74316
+ }
74317
+ }, [_vm._v("取消")]), _c('el-button', {
74318
+ attrs: {
74319
+ "size": "mini",
74320
+ "type": "primary"
74321
+ },
74322
+ on: {
74323
+ "click": _vm.handleBatchInput
74324
+ }
74325
+ }, [_vm._v("确定")])], 1)], 1), _c('el-button', {
74326
+ staticClass: "batch-input-btn",
74327
+ attrs: {
74328
+ "slot": "reference",
74329
+ "disabled": _vm.disabled || _vm.loading,
74330
+ "size": _vm.size
74331
+ },
74332
+ slot: "reference"
74333
+ }, [_c('i', {
74334
+ staticClass: "el-icon-edit-outline",
74335
+ staticStyle: {
74336
+ "transform": "scale(2)",
74337
+ "display": "inline-block"
74338
+ }
74339
+ })])], 1)], 1)]);
74340
+ };
74341
+ var BatchQuerySelectorvue_type_template_id_87a7b5d8_staticRenderFns = [];
74342
+
74343
+ ;// ./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/batch-query-selector/BatchQuerySelector.vue?vue&type=script&lang=js
74344
+
74345
+
74346
+
74347
+
74348
+
74349
+
74350
+
74351
+
74352
+
74353
+
74354
+ /* harmony default export */ var BatchQuerySelectorvue_type_script_lang_js = ({
74355
+ name: 'BatchQuerySelector',
74356
+ props: {
74357
+ // 绑定值
74358
+ value: {
74359
+ type: [Array, String, Number],
74360
+ default: () => []
74361
+ },
74362
+ // 数据源
74363
+ options: {
74364
+ type: Array,
74365
+ default: () => []
74366
+ },
74367
+ // 异步加载数据源
74368
+ loadOptions: {
74369
+ type: Function,
74370
+ default: null
74371
+ },
74372
+ // 是否自动加载数据(首次获取焦点时)
74373
+ autoLoad: {
74374
+ type: Boolean,
74375
+ default: true
74376
+ },
74377
+ // 值字段名
74378
+ valueKey: {
74379
+ type: String,
74380
+ default: 'id'
74381
+ },
74382
+ // 标签字段名
74383
+ labelKey: {
74384
+ type: String,
74385
+ default: 'name'
74386
+ },
74387
+ // 禁用字段名,用于判断选项是否禁用
74388
+ disabledKey: {
74389
+ type: String,
74390
+ default: 'disabled'
74391
+ },
74392
+ // 禁用条件,自定义函数判断选项是否禁用
74393
+ disabledMethod: {
74394
+ type: Function,
74395
+ default: null
74396
+ },
74397
+ // 是否多选
74398
+ multiple: {
74399
+ type: Boolean,
74400
+ default: true
74401
+ },
74402
+ // 是否折叠标签
74403
+ collapseTags: {
74404
+ type: Boolean,
74405
+ default: true
74406
+ },
74407
+ // 占位符
74408
+ placeholder: {
74409
+ type: String,
74410
+ default: '请选择'
74411
+ },
74412
+ // 是否禁用
74413
+ disabled: {
74414
+ type: Boolean,
74415
+ default: false
74416
+ },
74417
+ // 是否可清空
74418
+ clearable: {
74419
+ type: Boolean,
74420
+ default: true
74421
+ },
74422
+ // 大小
74423
+ size: {
74424
+ type: String,
74425
+ default: 'mini'
74426
+ },
74427
+ // 最大宽度,默认为100%(充满容器宽度)
74428
+ maxWidth: {
74429
+ type: [String, Number],
74430
+ default: '100%'
74431
+ },
74432
+ // 弹窗宽度
74433
+ popoverWidth: {
74434
+ type: [String, Number],
74435
+ default: '300'
74436
+ },
74437
+ // 自定义映射函数,用于处理批量输入后的映射逻辑
74438
+ customMapFunction: {
74439
+ type: Function,
74440
+ default: null
74441
+ }
74442
+ },
74443
+ data() {
74444
+ return {
74445
+ selectedValues: [],
74446
+ popoverVisible: false,
74447
+ inputType: 'id',
74448
+ batchInputContent: '',
74449
+ optionsList: [],
74450
+ loading: false,
74451
+ hasLoaded: false
74452
+ };
74453
+ },
74454
+ computed: {
74455
+ hasInitialValue() {
74456
+ if (this.multiple) {
74457
+ return Array.isArray(this.value) && this.value.length > 0;
74458
+ }
74459
+ return this.value !== null && this.value !== undefined && this.value !== '';
74460
+ },
74461
+ containerStyle() {
74462
+ // 处理maxWidth属性,支持数字(自动添加px)或字符串
74463
+ const width = typeof this.maxWidth === 'number' ? `${this.maxWidth}px` : this.maxWidth;
74464
+ return {
74465
+ maxWidth: width
74466
+ };
74467
+ }
74468
+ },
74469
+ watch: {
74470
+ value: {
74471
+ handler(val) {
74472
+ this.selectedValues = this.multiple ? [...(Array.isArray(val) ? val : [])] : val;
74473
+ },
74474
+ immediate: true
74475
+ },
74476
+ options: {
74477
+ handler(val) {
74478
+ this.optionsList = [...val];
74479
+ },
74480
+ immediate: true
74481
+ }
74482
+ },
74483
+ created() {
74484
+ // 如果有初始值且提供了loadOptions方法,但没有提供options,则自动加载数据
74485
+ if (this.hasInitialValue && this.loadOptions && !this.options.length) {
74486
+ this.fetchOptions();
74487
+ }
74488
+ },
74489
+ methods: {
74490
+ // 判断选项是否禁用
74491
+ isOptionDisabled(option) {
74492
+ // 如果提供了自定义禁用方法,则使用自定义方法判断
74493
+ if (this.disabledMethod) {
74494
+ return this.disabledMethod(option);
74495
+ }
74496
+
74497
+ // 否则根据禁用字段名判断
74498
+ return !!option[this.disabledKey];
74499
+ },
74500
+ // 处理选择变化
74501
+ handleChange(val) {
74502
+ this.$emit('input', val);
74503
+ this.$emit('change', val);
74504
+ },
74505
+ // 处理获取焦点
74506
+ handleFocus() {
74507
+ // 如果配置了自动加载且提供了loadOptions方法且还没有加载过数据
74508
+ if (this.autoLoad && this.loadOptions && !this.hasLoaded && this.optionsList.length === 0) {
74509
+ this.fetchOptions();
74510
+ }
74511
+ },
74512
+ // 获取选项数据
74513
+ async fetchOptions(params) {
74514
+ if (!this.loadOptions) return;
74515
+ try {
74516
+ this.loading = true;
74517
+ const result = await this.loadOptions(params);
74518
+ if (Array.isArray(result)) {
74519
+ this.optionsList = result;
74520
+ } else {
74521
+ console.warn('【BatchQuerySelector组件】: loadOptions 应该返回一个数组');
74522
+ }
74523
+ this.hasLoaded = true;
74524
+ this.$emit('options-loaded', this.optionsList);
74525
+ } catch (error) {
74526
+ this.$emit('options-load-error', error);
74527
+ } finally {
74528
+ this.loading = false;
74529
+ }
74530
+ },
74531
+ // 手动刷新选项
74532
+ refreshOptions(params) {
74533
+ return this.fetchOptions(params);
74534
+ },
74535
+ // 处理批量输入
74536
+ handleBatchInput() {
74537
+ if (!this.batchInputContent.trim()) {
74538
+ this.popoverVisible = false;
74539
+ return;
74540
+ }
74541
+
74542
+ // 分割输入内容(支持换行、逗号、分号等分隔符)
74543
+ const inputValues = this.batchInputContent.split(/[\n,;,;\s]+/).filter(item => item.trim()).map(item => item.trim());
74544
+ if (inputValues.length === 0) {
74545
+ this.popoverVisible = false;
74546
+ return;
74547
+ }
74548
+
74549
+ // 根据输入类型匹配数据
74550
+ let matchedValues = [];
74551
+ if (this.customMapFunction) {
74552
+ // 使用自定义映射函数
74553
+ matchedValues = this.customMapFunction(inputValues, this.inputType, this.options);
74554
+ } else {
74555
+ // 默认映射逻辑
74556
+ const searchKey = this.inputType === 'id' ? this.valueKey : this.labelKey;
74557
+ const resultKey = this.valueKey;
74558
+ matchedValues = this.optionsList.filter(item => {
74559
+ // 排除禁用的选项
74560
+ if (this.isOptionDisabled(item)) {
74561
+ return false;
74562
+ }
74563
+ return inputValues.includes(String(item[searchKey]));
74564
+ }).map(item => item[resultKey]);
74565
+ }
74566
+
74567
+ // 更新选中值
74568
+ if (this.multiple) {
74569
+ // 多选模式,合并已选和新匹配的值,去重
74570
+ const newValues = [...new Set([...this.selectedValues, ...matchedValues])];
74571
+ this.selectedValues = newValues;
74572
+ this.$emit('input', newValues);
74573
+ this.$emit('change', newValues);
74574
+ } else {
74575
+ // 单选模式,只取第一个匹配值
74576
+ if (matchedValues.length > 0) {
74577
+ this.selectedValues = matchedValues[0];
74578
+ this.$emit('input', matchedValues[0]);
74579
+ this.$emit('change', matchedValues[0]);
74580
+ }
74581
+ }
74582
+
74583
+ // 关闭弹出框
74584
+ this.popoverVisible = false;
74585
+ this.batchInputContent = '';
74586
+
74587
+ // 触发批量输入完成事件
74588
+ this.$emit('batch-input-complete', {
74589
+ inputValues,
74590
+ matchedValues,
74591
+ type: this.inputType
74592
+ });
74593
+ }
74594
+ }
74595
+ });
74596
+ ;// ./src/components/batch-query-selector/BatchQuerySelector.vue?vue&type=script&lang=js
74597
+ /* harmony default export */ var batch_query_selector_BatchQuerySelectorvue_type_script_lang_js = (BatchQuerySelectorvue_type_script_lang_js);
74598
+ ;// ./src/components/batch-query-selector/BatchQuerySelector.vue
74599
+
74600
+
74601
+
74602
+
74603
+
74604
+ /* normalize component */
74605
+ ;
74606
+ var BatchQuerySelector_component = normalizeComponent(
74607
+ batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
74608
+ BatchQuerySelectorvue_type_template_id_87a7b5d8_render,
74609
+ BatchQuerySelectorvue_type_template_id_87a7b5d8_staticRenderFns,
74610
+ false,
74611
+ null,
74612
+ null,
74613
+ null
74614
+
74615
+ )
74616
+
74617
+ /* harmony default export */ var BatchQuerySelector = (BatchQuerySelector_component.exports);
74104
74618
  ;// ./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/form/form.vue?vue&type=script&lang=js
74105
74619
 
74106
74620
 
@@ -74108,12 +74622,14 @@ var ByCommonSelector_component = normalizeComponent(
74108
74622
 
74109
74623
 
74110
74624
 
74625
+
74111
74626
  /* harmony default export */ var formvue_type_script_lang_js = ({
74112
74627
  name: 'ByForm',
74113
74628
  components: {
74114
74629
  PairNumberInput: pair_number_input,
74115
74630
  CustomDatePicker: custom_date_picker,
74116
- ByCommonSelector: ByCommonSelector
74631
+ ByCommonSelector: ByCommonSelector,
74632
+ ByBatchQuerySelector: BatchQuerySelector
74117
74633
  },
74118
74634
  props: {
74119
74635
  value: {
@@ -74358,15 +74874,37 @@ var ByCommonSelector_component = normalizeComponent(
74358
74874
  error,
74359
74875
  item
74360
74876
  });
74877
+ },
74878
+ // 批量查询选择器相关事件处理
74879
+ handleBatchSelectorOptionsLoaded(options, item) {
74880
+ // 批量查询选择器异步加载成功
74881
+ this.$emit('batch-selector-options-loaded', {
74882
+ options,
74883
+ item
74884
+ });
74885
+ },
74886
+ handleBatchSelectorOptionsLoadError(error, item) {
74887
+ // 批量查询选择器异步加载失败
74888
+ this.$emit('batch-selector-options-error', {
74889
+ error,
74890
+ item
74891
+ });
74892
+ },
74893
+ handleBatchInputComplete(data, item) {
74894
+ // 批量输入完成事件
74895
+ this.$emit('batch-input-complete', {
74896
+ ...data,
74897
+ item
74898
+ });
74361
74899
  }
74362
74900
  }
74363
74901
  });
74364
74902
  ;// ./src/components/form/form.vue?vue&type=script&lang=js
74365
74903
  /* harmony default export */ var form_formvue_type_script_lang_js = (formvue_type_script_lang_js);
74366
- ;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[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/form.vue?vue&type=style&index=0&id=9bf2745a&prod&lang=scss&scoped=true
74904
+ ;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[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/form.vue?vue&type=style&index=0&id=c208c726&prod&lang=scss&scoped=true
74367
74905
  // extracted by mini-css-extract-plugin
74368
74906
 
74369
- ;// ./src/components/form/form.vue?vue&type=style&index=0&id=9bf2745a&prod&lang=scss&scoped=true
74907
+ ;// ./src/components/form/form.vue?vue&type=style&index=0&id=c208c726&prod&lang=scss&scoped=true
74370
74908
 
74371
74909
  ;// ./src/components/form/form.vue
74372
74910
 
@@ -74379,11 +74917,11 @@ var ByCommonSelector_component = normalizeComponent(
74379
74917
 
74380
74918
  var form_component = normalizeComponent(
74381
74919
  form_formvue_type_script_lang_js,
74382
- formvue_type_template_id_9bf2745a_scoped_true_render,
74383
- formvue_type_template_id_9bf2745a_scoped_true_staticRenderFns,
74920
+ formvue_type_template_id_c208c726_scoped_true_render,
74921
+ formvue_type_template_id_c208c726_scoped_true_staticRenderFns,
74384
74922
  false,
74385
74923
  null,
74386
- "9bf2745a",
74924
+ "c208c726",
74387
74925
  null
74388
74926
 
74389
74927
  )
@@ -75515,6 +76053,7 @@ updateVar();
75515
76053
 
75516
76054
 
75517
76055
 
76056
+
75518
76057
  const components = {
75519
76058
  ByPager: pager,
75520
76059
  ByTable: table,
@@ -75525,7 +76064,8 @@ const components = {
75525
76064
  ByDatePickerRange: date_picker_range,
75526
76065
  ByCustomDatePicker: custom_date_picker,
75527
76066
  ByToolBar: ByToolBar,
75528
- ByCommonSelector: ByCommonSelector
76067
+ ByCommonSelector: ByCommonSelector,
76068
+ ByBatchQuerySelector: BatchQuerySelector
75529
76069
  };
75530
76070
 
75531
76071
  // 设置当前 z-index 起始值