@weitutech/by-components 1.1.69 → 1.1.71
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.
- package/lib/by-components.common.js +274 -32
- package/lib/by-components.css +1 -1
- package/lib/by-components.umd.js +274 -32
- package/lib/by-components.umd.min.js +7 -7
- package/lib/index.css +1 -1
- package/package.json +1 -1
|
@@ -62393,8 +62393,8 @@ var table_component = normalizeComponent(
|
|
|
62393
62393
|
)
|
|
62394
62394
|
|
|
62395
62395
|
/* harmony default export */ var table = (table_component.exports);
|
|
62396
|
-
;// ./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-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/form.vue?vue&type=template&id=
|
|
62397
|
-
var
|
|
62396
|
+
;// ./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-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/form.vue?vue&type=template&id=6681f49c&scoped=true
|
|
62397
|
+
var formvue_type_template_id_6681f49c_scoped_true_render = function render() {
|
|
62398
62398
|
var _vm = this,
|
|
62399
62399
|
_c = _vm._self._c;
|
|
62400
62400
|
return _c('div', {
|
|
@@ -62573,7 +62573,7 @@ var formvue_type_template_id_12f005aa_scoped_true_render = function render() {
|
|
|
62573
62573
|
"batch-input-complete": function ($event) {
|
|
62574
62574
|
return _vm.handleBatchInputComplete($event, item);
|
|
62575
62575
|
},
|
|
62576
|
-
"focus": function ($event) {
|
|
62576
|
+
"batch-selector-focus": function ($event) {
|
|
62577
62577
|
return _vm.handleBatchSelectorFocus($event, item);
|
|
62578
62578
|
}
|
|
62579
62579
|
}
|
|
@@ -62743,7 +62743,7 @@ var formvue_type_template_id_12f005aa_scoped_true_render = function render() {
|
|
|
62743
62743
|
staticClass: "footer"
|
|
62744
62744
|
}, [_vm._t("footer")], 2)], 1);
|
|
62745
62745
|
};
|
|
62746
|
-
var
|
|
62746
|
+
var formvue_type_template_id_6681f49c_scoped_true_staticRenderFns = [];
|
|
62747
62747
|
|
|
62748
62748
|
;// ./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-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/pair-number-input.vue?vue&type=template&id=604235f6
|
|
62749
62749
|
var pair_number_inputvue_type_template_id_604235f6_render = function render() {
|
|
@@ -74200,8 +74200,8 @@ var ByCommonSelector_component = normalizeComponent(
|
|
|
74200
74200
|
)
|
|
74201
74201
|
|
|
74202
74202
|
/* harmony default export */ var ByCommonSelector = (ByCommonSelector_component.exports);
|
|
74203
|
-
;// ./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-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/batch-query-selector/BatchQuerySelector.vue?vue&type=template&id=
|
|
74204
|
-
var
|
|
74203
|
+
;// ./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-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/batch-query-selector/BatchQuerySelector.vue?vue&type=template&id=8d409226
|
|
74204
|
+
var BatchQuerySelectorvue_type_template_id_8d409226_render = function render() {
|
|
74205
74205
|
var _vm = this,
|
|
74206
74206
|
_c = _vm._self._c;
|
|
74207
74207
|
return _c('div', {
|
|
@@ -74210,6 +74210,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74210
74210
|
}, [_c('div', {
|
|
74211
74211
|
staticClass: "selector-container"
|
|
74212
74212
|
}, [_c('el-select', {
|
|
74213
|
+
ref: "elSelect",
|
|
74213
74214
|
staticClass: "selector-input",
|
|
74214
74215
|
attrs: {
|
|
74215
74216
|
"placeholder": _vm.placeholder,
|
|
@@ -74219,11 +74220,14 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74219
74220
|
"multiple": _vm.multiple,
|
|
74220
74221
|
"collapse-tags": _vm.collapseTags,
|
|
74221
74222
|
"filterable": "",
|
|
74222
|
-
"loading": _vm.loading
|
|
74223
|
+
"loading": _vm.loading,
|
|
74224
|
+
"filter-method": _vm.filterOptions,
|
|
74225
|
+
"value-key": _vm.valueKey
|
|
74223
74226
|
},
|
|
74224
74227
|
on: {
|
|
74225
74228
|
"change": _vm.handleChange,
|
|
74226
|
-
"focus": _vm.handleFocus
|
|
74229
|
+
"focus": _vm.handleFocus,
|
|
74230
|
+
"visible-change": _vm.handleDropdownVisibleChange
|
|
74227
74231
|
},
|
|
74228
74232
|
model: {
|
|
74229
74233
|
value: _vm.selectedValues,
|
|
@@ -74232,7 +74236,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74232
74236
|
},
|
|
74233
74237
|
expression: "selectedValues"
|
|
74234
74238
|
}
|
|
74235
|
-
}, _vm._l(_vm.
|
|
74239
|
+
}, [_vm._l(_vm.visibleOptions, function (item) {
|
|
74236
74240
|
return _c('el-option', {
|
|
74237
74241
|
key: item[_vm.valueKey],
|
|
74238
74242
|
attrs: {
|
|
@@ -74241,7 +74245,26 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74241
74245
|
"disabled": _vm.isOptionDisabled(item)
|
|
74242
74246
|
}
|
|
74243
74247
|
});
|
|
74244
|
-
}),
|
|
74248
|
+
}), _vm.hasMoreOptions ? _c('el-option', {
|
|
74249
|
+
staticClass: "load-more-option",
|
|
74250
|
+
attrs: {
|
|
74251
|
+
"disabled": "",
|
|
74252
|
+
"value": "load-more-option",
|
|
74253
|
+
"label": "加载更多..."
|
|
74254
|
+
}
|
|
74255
|
+
}, [_c('div', {
|
|
74256
|
+
staticClass: "load-more-text",
|
|
74257
|
+
on: {
|
|
74258
|
+
"click": function ($event) {
|
|
74259
|
+
$event.stopPropagation();
|
|
74260
|
+
return _vm.loadMoreOptions.apply(null, arguments);
|
|
74261
|
+
}
|
|
74262
|
+
}
|
|
74263
|
+
}, [_vm.loadingMore ? _c('i', {
|
|
74264
|
+
staticClass: "el-icon-loading"
|
|
74265
|
+
}) : _vm._e(), _c('span', [_vm._v(_vm._s(_vm.loadingMore ? '加载中...' : '点击加载更多'))]), _c('div', {
|
|
74266
|
+
staticClass: "load-more-info"
|
|
74267
|
+
}, [_vm._v("已显示 " + _vm._s(_vm.visibleOptions.length) + " / " + _vm._s(_vm.filteredOptions.length) + " 条")])])]) : _vm._e()], 2), _c('el-popover', {
|
|
74245
74268
|
attrs: {
|
|
74246
74269
|
"placement": "bottom-end",
|
|
74247
74270
|
"width": _vm.popoverWidth,
|
|
@@ -74332,7 +74355,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74332
74355
|
}
|
|
74333
74356
|
})])], 1)], 1)]);
|
|
74334
74357
|
};
|
|
74335
|
-
var
|
|
74358
|
+
var BatchQuerySelectorvue_type_template_id_8d409226_staticRenderFns = [];
|
|
74336
74359
|
|
|
74337
74360
|
;// ./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/batch-query-selector/BatchQuerySelector.vue?vue&type=script&lang=js
|
|
74338
74361
|
|
|
@@ -74345,6 +74368,8 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74345
74368
|
|
|
74346
74369
|
|
|
74347
74370
|
|
|
74371
|
+
|
|
74372
|
+
|
|
74348
74373
|
/* harmony default export */ var BatchQuerySelectorvue_type_script_lang_js = ({
|
|
74349
74374
|
name: 'BatchQuerySelector',
|
|
74350
74375
|
props: {
|
|
@@ -74432,6 +74457,16 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74432
74457
|
customMapFunction: {
|
|
74433
74458
|
type: Function,
|
|
74434
74459
|
default: null
|
|
74460
|
+
},
|
|
74461
|
+
// 每页加载数量
|
|
74462
|
+
pageSize: {
|
|
74463
|
+
type: Number,
|
|
74464
|
+
default: 100
|
|
74465
|
+
},
|
|
74466
|
+
// 初始加载页数
|
|
74467
|
+
initialPageCount: {
|
|
74468
|
+
type: Number,
|
|
74469
|
+
default: 1
|
|
74435
74470
|
}
|
|
74436
74471
|
},
|
|
74437
74472
|
data() {
|
|
@@ -74441,8 +74476,16 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74441
74476
|
inputType: 'id',
|
|
74442
74477
|
batchInputContent: '',
|
|
74443
74478
|
optionsList: [],
|
|
74479
|
+
filteredOptions: [],
|
|
74480
|
+
visibleOptions: [],
|
|
74444
74481
|
loading: false,
|
|
74445
|
-
hasLoaded: false
|
|
74482
|
+
hasLoaded: false,
|
|
74483
|
+
keyword: '',
|
|
74484
|
+
debounceTimer: null,
|
|
74485
|
+
dropdownVisible: false,
|
|
74486
|
+
currentPage: 1,
|
|
74487
|
+
loadingMore: false,
|
|
74488
|
+
hasFocused: false // 添加一个标记,用于跟踪是否已经触发过focus事件
|
|
74446
74489
|
};
|
|
74447
74490
|
},
|
|
74448
74491
|
computed: {
|
|
@@ -74458,6 +74501,20 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74458
74501
|
return {
|
|
74459
74502
|
maxWidth: width
|
|
74460
74503
|
};
|
|
74504
|
+
},
|
|
74505
|
+
// 选中项的展示
|
|
74506
|
+
selectedOptionsDisplay() {
|
|
74507
|
+
return this.optionsList.filter(item => {
|
|
74508
|
+
if (this.multiple && Array.isArray(this.selectedValues)) {
|
|
74509
|
+
return this.selectedValues.includes(item[this.valueKey]);
|
|
74510
|
+
} else {
|
|
74511
|
+
return this.selectedValues === item[this.valueKey];
|
|
74512
|
+
}
|
|
74513
|
+
});
|
|
74514
|
+
},
|
|
74515
|
+
// 是否还有更多选项
|
|
74516
|
+
hasMoreOptions() {
|
|
74517
|
+
return this.visibleOptions.length < this.filteredOptions.length;
|
|
74461
74518
|
}
|
|
74462
74519
|
},
|
|
74463
74520
|
watch: {
|
|
@@ -74470,8 +74527,24 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74470
74527
|
options: {
|
|
74471
74528
|
handler(val) {
|
|
74472
74529
|
this.optionsList = [...val];
|
|
74530
|
+
this.filteredOptions = [...val];
|
|
74531
|
+
// 初始加载多页数据
|
|
74532
|
+
this.currentPage = this.initialPageCount;
|
|
74533
|
+
this.updateVisibleOptions();
|
|
74473
74534
|
},
|
|
74474
74535
|
immediate: true
|
|
74536
|
+
},
|
|
74537
|
+
keyword(val) {
|
|
74538
|
+
this.filterOptionsByKeyword(val);
|
|
74539
|
+
},
|
|
74540
|
+
dropdownVisible(val) {
|
|
74541
|
+
if (val) {
|
|
74542
|
+
this.$nextTick(() => {
|
|
74543
|
+
this.setupScrollListener();
|
|
74544
|
+
});
|
|
74545
|
+
} else {
|
|
74546
|
+
this.removeScrollListener();
|
|
74547
|
+
}
|
|
74475
74548
|
}
|
|
74476
74549
|
},
|
|
74477
74550
|
created() {
|
|
@@ -74497,12 +74570,94 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74497
74570
|
this.$emit('change', val);
|
|
74498
74571
|
},
|
|
74499
74572
|
// 处理获取焦点
|
|
74500
|
-
handleFocus() {
|
|
74573
|
+
handleFocus(e) {
|
|
74574
|
+
// 如果已经触发过focus事件,且下拉框是打开的,则不再触发
|
|
74575
|
+
if (this.hasFocused && this.dropdownVisible) {
|
|
74576
|
+
return;
|
|
74577
|
+
}
|
|
74578
|
+
|
|
74579
|
+
// 标记已经触发过focus事件
|
|
74580
|
+
this.hasFocused = true;
|
|
74581
|
+
|
|
74501
74582
|
// 如果配置了自动加载且提供了loadOptions方法,每次获取焦点时都加载数据
|
|
74502
74583
|
if (this.autoLoad && this.loadOptions) {
|
|
74503
74584
|
this.fetchOptions();
|
|
74504
74585
|
}
|
|
74505
|
-
this.$emit('focus');
|
|
74586
|
+
this.$emit('batch-selector-focus', e);
|
|
74587
|
+
},
|
|
74588
|
+
// 处理下拉框显示/隐藏
|
|
74589
|
+
handleDropdownVisibleChange(visible) {
|
|
74590
|
+
this.dropdownVisible = visible;
|
|
74591
|
+
|
|
74592
|
+
// 如果下拉框关闭,重置hasFocused标记,以便下次打开时能够正确触发focus事件
|
|
74593
|
+
if (!visible) {
|
|
74594
|
+
this.hasFocused = false;
|
|
74595
|
+
}
|
|
74596
|
+
},
|
|
74597
|
+
// 设置滚动监听
|
|
74598
|
+
setupScrollListener() {
|
|
74599
|
+
this.removeScrollListener(); // 先移除之前的监听器
|
|
74600
|
+
|
|
74601
|
+
// 获取el-select-dropdown元素
|
|
74602
|
+
const dropdownEl = document.querySelector('.el-select-dropdown.el-popper');
|
|
74603
|
+
if (!dropdownEl) return;
|
|
74604
|
+
|
|
74605
|
+
// 获取下拉框的滚动容器
|
|
74606
|
+
const scrollContainer = dropdownEl.querySelector('.el-select-dropdown__wrap');
|
|
74607
|
+
if (!scrollContainer) return;
|
|
74608
|
+
|
|
74609
|
+
// 添加滚动监听
|
|
74610
|
+
this.handleScroll = this.createScrollHandler(scrollContainer);
|
|
74611
|
+
scrollContainer.addEventListener('scroll', this.handleScroll);
|
|
74612
|
+
|
|
74613
|
+
// 保存引用,以便后续移除
|
|
74614
|
+
this.scrollContainer = scrollContainer;
|
|
74615
|
+
},
|
|
74616
|
+
// 创建滚动处理函数
|
|
74617
|
+
createScrollHandler(container) {
|
|
74618
|
+
return () => {
|
|
74619
|
+
const {
|
|
74620
|
+
scrollTop,
|
|
74621
|
+
scrollHeight,
|
|
74622
|
+
clientHeight
|
|
74623
|
+
} = container;
|
|
74624
|
+
|
|
74625
|
+
// 当滚动到底部附近时,自动加载更多数据
|
|
74626
|
+
if (scrollTop + clientHeight >= scrollHeight - 50) {
|
|
74627
|
+
this.loadMoreOptions();
|
|
74628
|
+
}
|
|
74629
|
+
};
|
|
74630
|
+
},
|
|
74631
|
+
// 移除滚动监听
|
|
74632
|
+
removeScrollListener() {
|
|
74633
|
+
if (this.scrollContainer && this.handleScroll) {
|
|
74634
|
+
this.scrollContainer.removeEventListener('scroll', this.handleScroll);
|
|
74635
|
+
this.scrollContainer = null;
|
|
74636
|
+
}
|
|
74637
|
+
},
|
|
74638
|
+
// 加载更多选项
|
|
74639
|
+
loadMoreOptions() {
|
|
74640
|
+
if (this.loadingMore || this.currentPage * this.pageSize >= this.filteredOptions.length) return;
|
|
74641
|
+
this.loadingMore = true;
|
|
74642
|
+
|
|
74643
|
+
// 使用setTimeout模拟异步加载,避免界面卡顿
|
|
74644
|
+
setTimeout(() => {
|
|
74645
|
+
this.currentPage++;
|
|
74646
|
+
this.updateVisibleOptions();
|
|
74647
|
+
this.loadingMore = false;
|
|
74648
|
+
|
|
74649
|
+
// 如果下拉列表已经打开,更新滚动监听
|
|
74650
|
+
if (this.dropdownVisible) {
|
|
74651
|
+
this.$nextTick(() => {
|
|
74652
|
+
this.setupScrollListener();
|
|
74653
|
+
});
|
|
74654
|
+
}
|
|
74655
|
+
}, 200);
|
|
74656
|
+
},
|
|
74657
|
+
// 更新可见选项
|
|
74658
|
+
updateVisibleOptions() {
|
|
74659
|
+
// 直接从过滤后的选项中获取当前页的选项,保持原始顺序
|
|
74660
|
+
this.visibleOptions = this.filteredOptions.slice(0, this.currentPage * this.pageSize);
|
|
74506
74661
|
},
|
|
74507
74662
|
// 获取选项数据
|
|
74508
74663
|
async fetchOptions(params) {
|
|
@@ -74512,6 +74667,11 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74512
74667
|
const result = await this.loadOptions(params);
|
|
74513
74668
|
if (Array.isArray(result)) {
|
|
74514
74669
|
this.optionsList = result;
|
|
74670
|
+
this.filteredOptions = result;
|
|
74671
|
+
|
|
74672
|
+
// 初始加载多页数据
|
|
74673
|
+
this.currentPage = this.initialPageCount;
|
|
74674
|
+
this.updateVisibleOptions();
|
|
74515
74675
|
} else {
|
|
74516
74676
|
console.warn('【BatchQuerySelector组件】: loadOptions 应该返回一个数组');
|
|
74517
74677
|
}
|
|
@@ -74527,6 +74687,36 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74527
74687
|
refreshOptions(params) {
|
|
74528
74688
|
return this.fetchOptions(params);
|
|
74529
74689
|
},
|
|
74690
|
+
// 过滤选项方法
|
|
74691
|
+
filterOptions(query) {
|
|
74692
|
+
this.keyword = query;
|
|
74693
|
+
return true; // 返回true让所有选项通过,实际过滤在filterOptionsByKeyword中处理
|
|
74694
|
+
},
|
|
74695
|
+
// 根据关键词过滤选项
|
|
74696
|
+
filterOptionsByKeyword(query) {
|
|
74697
|
+
// 使用防抖处理,避免频繁计算
|
|
74698
|
+
clearTimeout(this.debounceTimer);
|
|
74699
|
+
this.debounceTimer = setTimeout(() => {
|
|
74700
|
+
if (query) {
|
|
74701
|
+
// 如果有搜索关键词,按关键词过滤
|
|
74702
|
+
this.filteredOptions = this.optionsList.filter(item => {
|
|
74703
|
+
const label = String(item[this.labelKey]).toLowerCase();
|
|
74704
|
+
const value = String(item[this.valueKey]).toLowerCase();
|
|
74705
|
+
const lowercaseQuery = query.toLowerCase();
|
|
74706
|
+
return label.includes(lowercaseQuery) || value.includes(lowercaseQuery);
|
|
74707
|
+
});
|
|
74708
|
+
} else {
|
|
74709
|
+
// 如果没有搜索关键词,显示所有选项
|
|
74710
|
+
this.filteredOptions = [...this.optionsList];
|
|
74711
|
+
}
|
|
74712
|
+
|
|
74713
|
+
// 重置当前页,但加载多页
|
|
74714
|
+
this.currentPage = this.initialPageCount;
|
|
74715
|
+
|
|
74716
|
+
// 更新可见选项
|
|
74717
|
+
this.updateVisibleOptions();
|
|
74718
|
+
}, 200);
|
|
74719
|
+
},
|
|
74530
74720
|
// 处理批量输入
|
|
74531
74721
|
handleBatchInput() {
|
|
74532
74722
|
if (!this.batchInputContent.trim()) {
|
|
@@ -74543,20 +74733,36 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74543
74733
|
|
|
74544
74734
|
// 根据输入类型匹配数据
|
|
74545
74735
|
let matchedValues = [];
|
|
74736
|
+
let matchedItems = [];
|
|
74546
74737
|
if (this.customMapFunction) {
|
|
74547
74738
|
// 使用自定义映射函数
|
|
74548
|
-
matchedValues = this.customMapFunction(inputValues, this.inputType, this.
|
|
74739
|
+
matchedValues = this.customMapFunction(inputValues, this.inputType, this.optionsList);
|
|
74740
|
+
// 获取匹配的完整选项对象
|
|
74741
|
+
matchedItems = this.optionsList.filter(item => matchedValues.includes(item[this.valueKey]));
|
|
74549
74742
|
} else {
|
|
74550
74743
|
// 默认映射逻辑
|
|
74551
74744
|
const searchKey = this.inputType === 'id' ? this.valueKey : this.labelKey;
|
|
74552
|
-
|
|
74553
|
-
|
|
74745
|
+
|
|
74746
|
+
// 先获取匹配的完整选项对象 - 从完整的optionsList中查找,而不仅仅是visibleOptions
|
|
74747
|
+
matchedItems = this.optionsList.filter(item => {
|
|
74554
74748
|
// 排除禁用的选项
|
|
74555
74749
|
if (this.isOptionDisabled(item)) {
|
|
74556
74750
|
return false;
|
|
74557
74751
|
}
|
|
74558
|
-
return inputValues.
|
|
74559
|
-
})
|
|
74752
|
+
return inputValues.some(input => String(item[searchKey]).toLowerCase() === String(input).toLowerCase());
|
|
74753
|
+
});
|
|
74754
|
+
|
|
74755
|
+
// 然后提取值
|
|
74756
|
+
matchedValues = matchedItems.map(item => item[this.valueKey]);
|
|
74757
|
+
}
|
|
74758
|
+
|
|
74759
|
+
// 如果没有匹配项,尝试进行模糊匹配
|
|
74760
|
+
if (matchedValues.length === 0 && this.inputType === 'name') {
|
|
74761
|
+
matchedItems = this.optionsList.filter(item => {
|
|
74762
|
+
if (this.isOptionDisabled(item)) return false;
|
|
74763
|
+
return inputValues.some(input => String(item[this.labelKey]).toLowerCase().includes(String(input).toLowerCase()));
|
|
74764
|
+
});
|
|
74765
|
+
matchedValues = matchedItems.map(item => item[this.valueKey]);
|
|
74560
74766
|
}
|
|
74561
74767
|
|
|
74562
74768
|
// 更新选中值
|
|
@@ -74575,6 +74781,28 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74575
74781
|
}
|
|
74576
74782
|
}
|
|
74577
74783
|
|
|
74784
|
+
// TODO: ***确保匹配的选项在下拉框中可见
|
|
74785
|
+
if (matchedValues.length > 0) {
|
|
74786
|
+
// 确保所有匹配项都被添加到visibleOptions中,以便正确显示名称
|
|
74787
|
+
const matchedItemsMap = {};
|
|
74788
|
+
matchedItems.forEach(item => {
|
|
74789
|
+
matchedItemsMap[item[this.valueKey]] = item;
|
|
74790
|
+
});
|
|
74791
|
+
|
|
74792
|
+
// 检查是否所有匹配项都在visibleOptions中
|
|
74793
|
+
const missingItems = matchedValues.filter(value => !this.visibleOptions.some(option => option[this.valueKey] === value));
|
|
74794
|
+
|
|
74795
|
+
// 如果有缺失的项,将它们添加到visibleOptions中
|
|
74796
|
+
if (missingItems.length > 0) {
|
|
74797
|
+
const additionalOptions = missingItems.map(value => matchedItemsMap[value]).filter(Boolean);
|
|
74798
|
+
|
|
74799
|
+
// 将这些项添加到visibleOptions的开头,确保它们可见
|
|
74800
|
+
if (additionalOptions.length > 0) {
|
|
74801
|
+
this.visibleOptions = [...additionalOptions, ...this.visibleOptions];
|
|
74802
|
+
}
|
|
74803
|
+
}
|
|
74804
|
+
}
|
|
74805
|
+
|
|
74578
74806
|
// 关闭弹出框
|
|
74579
74807
|
this.popoverVisible = false;
|
|
74580
74808
|
this.batchInputContent = '';
|
|
@@ -74583,9 +74811,14 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74583
74811
|
this.$emit('batch-input-complete', {
|
|
74584
74812
|
inputValues,
|
|
74585
74813
|
matchedValues,
|
|
74814
|
+
matchedItems,
|
|
74586
74815
|
type: this.inputType
|
|
74587
74816
|
});
|
|
74588
74817
|
}
|
|
74818
|
+
},
|
|
74819
|
+
beforeDestroy() {
|
|
74820
|
+
// 移除滚动监听器
|
|
74821
|
+
this.removeScrollListener();
|
|
74589
74822
|
}
|
|
74590
74823
|
});
|
|
74591
74824
|
;// ./src/components/batch-query-selector/BatchQuerySelector.vue?vue&type=script&lang=js
|
|
@@ -74600,8 +74833,8 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74600
74833
|
;
|
|
74601
74834
|
var BatchQuerySelector_component = normalizeComponent(
|
|
74602
74835
|
batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
|
|
74603
|
-
|
|
74604
|
-
|
|
74836
|
+
BatchQuerySelectorvue_type_template_id_8d409226_render,
|
|
74837
|
+
BatchQuerySelectorvue_type_template_id_8d409226_staticRenderFns,
|
|
74605
74838
|
false,
|
|
74606
74839
|
null,
|
|
74607
74840
|
null,
|
|
@@ -74893,6 +75126,7 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74893
75126
|
});
|
|
74894
75127
|
},
|
|
74895
75128
|
handleBatchSelectorFocus(event, item) {
|
|
75129
|
+
console.log('focus-22222222');
|
|
74896
75130
|
this.$emit('batch-selector-focus', {
|
|
74897
75131
|
...event,
|
|
74898
75132
|
item
|
|
@@ -74902,10 +75136,10 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74902
75136
|
});
|
|
74903
75137
|
;// ./src/components/form/form.vue?vue&type=script&lang=js
|
|
74904
75138
|
/* harmony default export */ var form_formvue_type_script_lang_js = (formvue_type_script_lang_js);
|
|
74905
|
-
;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.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-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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=
|
|
75139
|
+
;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.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-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.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=6681f49c&prod&lang=scss&scoped=true
|
|
74906
75140
|
// extracted by mini-css-extract-plugin
|
|
74907
75141
|
|
|
74908
|
-
;// ./src/components/form/form.vue?vue&type=style&index=0&id=
|
|
75142
|
+
;// ./src/components/form/form.vue?vue&type=style&index=0&id=6681f49c&prod&lang=scss&scoped=true
|
|
74909
75143
|
|
|
74910
75144
|
;// ./src/components/form/form.vue
|
|
74911
75145
|
|
|
@@ -74918,18 +75152,18 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74918
75152
|
|
|
74919
75153
|
var form_component = normalizeComponent(
|
|
74920
75154
|
form_formvue_type_script_lang_js,
|
|
74921
|
-
|
|
74922
|
-
|
|
75155
|
+
formvue_type_template_id_6681f49c_scoped_true_render,
|
|
75156
|
+
formvue_type_template_id_6681f49c_scoped_true_staticRenderFns,
|
|
74923
75157
|
false,
|
|
74924
75158
|
null,
|
|
74925
|
-
"
|
|
75159
|
+
"6681f49c",
|
|
74926
75160
|
null
|
|
74927
75161
|
|
|
74928
75162
|
)
|
|
74929
75163
|
|
|
74930
75164
|
/* harmony default export */ var form_form = (form_component.exports);
|
|
74931
|
-
;// ./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-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/page-search/page-search.vue?vue&type=template&id=
|
|
74932
|
-
var
|
|
75165
|
+
;// ./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-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/page-search/page-search.vue?vue&type=template&id=69194707
|
|
75166
|
+
var page_searchvue_type_template_id_69194707_render = function render() {
|
|
74933
75167
|
var _vm = this,
|
|
74934
75168
|
_c = _vm._self._c;
|
|
74935
75169
|
return _c('div', {
|
|
@@ -74945,7 +75179,9 @@ var page_searchvue_type_template_id_d39cfe72_render = function render() {
|
|
|
74945
75179
|
"change": _vm.handleChange,
|
|
74946
75180
|
"queryBtnClick": _vm.handleQueryClick,
|
|
74947
75181
|
"submit": _vm.submit,
|
|
74948
|
-
"reset": _vm.reset
|
|
75182
|
+
"reset": _vm.reset,
|
|
75183
|
+
"batch-input-complete": _vm.handleBatchInputComplete,
|
|
75184
|
+
"batch-selector-focus": _vm.handleBatchSelectorFocus
|
|
74949
75185
|
},
|
|
74950
75186
|
scopedSlots: _vm._u([{
|
|
74951
75187
|
key: "header",
|
|
@@ -74976,7 +75212,7 @@ var page_searchvue_type_template_id_d39cfe72_render = function render() {
|
|
|
74976
75212
|
})], null, true)
|
|
74977
75213
|
}, 'by-form', _vm.searchFormConfig, false))], 1);
|
|
74978
75214
|
};
|
|
74979
|
-
var
|
|
75215
|
+
var page_searchvue_type_template_id_69194707_staticRenderFns = [];
|
|
74980
75216
|
|
|
74981
75217
|
;// ./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/page-search/page-search.vue?vue&type=script&lang=js
|
|
74982
75218
|
|
|
@@ -75075,6 +75311,12 @@ var page_searchvue_type_template_id_d39cfe72_staticRenderFns = [];
|
|
|
75075
75311
|
},
|
|
75076
75312
|
reset() {
|
|
75077
75313
|
this.$emit('reset');
|
|
75314
|
+
},
|
|
75315
|
+
handleBatchSelectorFocus(event) {
|
|
75316
|
+
this.$emit('batch-selector-focus', event);
|
|
75317
|
+
},
|
|
75318
|
+
handleBatchInputComplete(event) {
|
|
75319
|
+
this.$emit('batch-input-complete', event);
|
|
75078
75320
|
}
|
|
75079
75321
|
}
|
|
75080
75322
|
});
|
|
@@ -75090,8 +75332,8 @@ var page_searchvue_type_template_id_d39cfe72_staticRenderFns = [];
|
|
|
75090
75332
|
;
|
|
75091
75333
|
var page_search_component = normalizeComponent(
|
|
75092
75334
|
page_search_page_searchvue_type_script_lang_js,
|
|
75093
|
-
|
|
75094
|
-
|
|
75335
|
+
page_searchvue_type_template_id_69194707_render,
|
|
75336
|
+
page_searchvue_type_template_id_69194707_staticRenderFns,
|
|
75095
75337
|
false,
|
|
75096
75338
|
null,
|
|
75097
75339
|
null,
|
package/lib/by-components.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.b-form .header[data-v-
|
|
1
|
+
.b-form .header[data-v-6681f49c]{margin-bottom:20px}.b-form .footer[data-v-6681f49c]{margin-top:20px}
|