@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
package/lib/by-components.umd.js
CHANGED
|
@@ -62403,8 +62403,8 @@ var table_component = normalizeComponent(
|
|
|
62403
62403
|
)
|
|
62404
62404
|
|
|
62405
62405
|
/* harmony default export */ var table = (table_component.exports);
|
|
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=
|
|
62407
|
-
var
|
|
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=6681f49c&scoped=true
|
|
62407
|
+
var formvue_type_template_id_6681f49c_scoped_true_render = function render() {
|
|
62408
62408
|
var _vm = this,
|
|
62409
62409
|
_c = _vm._self._c;
|
|
62410
62410
|
return _c('div', {
|
|
@@ -62583,7 +62583,7 @@ var formvue_type_template_id_12f005aa_scoped_true_render = function render() {
|
|
|
62583
62583
|
"batch-input-complete": function ($event) {
|
|
62584
62584
|
return _vm.handleBatchInputComplete($event, item);
|
|
62585
62585
|
},
|
|
62586
|
-
"focus": function ($event) {
|
|
62586
|
+
"batch-selector-focus": function ($event) {
|
|
62587
62587
|
return _vm.handleBatchSelectorFocus($event, item);
|
|
62588
62588
|
}
|
|
62589
62589
|
}
|
|
@@ -62753,7 +62753,7 @@ var formvue_type_template_id_12f005aa_scoped_true_render = function render() {
|
|
|
62753
62753
|
staticClass: "footer"
|
|
62754
62754
|
}, [_vm._t("footer")], 2)], 1);
|
|
62755
62755
|
};
|
|
62756
|
-
var
|
|
62756
|
+
var formvue_type_template_id_6681f49c_scoped_true_staticRenderFns = [];
|
|
62757
62757
|
|
|
62758
62758
|
;// ./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
|
|
62759
62759
|
var pair_number_inputvue_type_template_id_604235f6_render = function render() {
|
|
@@ -74210,8 +74210,8 @@ var ByCommonSelector_component = normalizeComponent(
|
|
|
74210
74210
|
)
|
|
74211
74211
|
|
|
74212
74212
|
/* harmony default export */ var ByCommonSelector = (ByCommonSelector_component.exports);
|
|
74213
|
-
;// ./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=
|
|
74214
|
-
var
|
|
74213
|
+
;// ./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=8d409226
|
|
74214
|
+
var BatchQuerySelectorvue_type_template_id_8d409226_render = function render() {
|
|
74215
74215
|
var _vm = this,
|
|
74216
74216
|
_c = _vm._self._c;
|
|
74217
74217
|
return _c('div', {
|
|
@@ -74220,6 +74220,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74220
74220
|
}, [_c('div', {
|
|
74221
74221
|
staticClass: "selector-container"
|
|
74222
74222
|
}, [_c('el-select', {
|
|
74223
|
+
ref: "elSelect",
|
|
74223
74224
|
staticClass: "selector-input",
|
|
74224
74225
|
attrs: {
|
|
74225
74226
|
"placeholder": _vm.placeholder,
|
|
@@ -74229,11 +74230,14 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74229
74230
|
"multiple": _vm.multiple,
|
|
74230
74231
|
"collapse-tags": _vm.collapseTags,
|
|
74231
74232
|
"filterable": "",
|
|
74232
|
-
"loading": _vm.loading
|
|
74233
|
+
"loading": _vm.loading,
|
|
74234
|
+
"filter-method": _vm.filterOptions,
|
|
74235
|
+
"value-key": _vm.valueKey
|
|
74233
74236
|
},
|
|
74234
74237
|
on: {
|
|
74235
74238
|
"change": _vm.handleChange,
|
|
74236
|
-
"focus": _vm.handleFocus
|
|
74239
|
+
"focus": _vm.handleFocus,
|
|
74240
|
+
"visible-change": _vm.handleDropdownVisibleChange
|
|
74237
74241
|
},
|
|
74238
74242
|
model: {
|
|
74239
74243
|
value: _vm.selectedValues,
|
|
@@ -74242,7 +74246,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74242
74246
|
},
|
|
74243
74247
|
expression: "selectedValues"
|
|
74244
74248
|
}
|
|
74245
|
-
}, _vm._l(_vm.
|
|
74249
|
+
}, [_vm._l(_vm.visibleOptions, function (item) {
|
|
74246
74250
|
return _c('el-option', {
|
|
74247
74251
|
key: item[_vm.valueKey],
|
|
74248
74252
|
attrs: {
|
|
@@ -74251,7 +74255,26 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74251
74255
|
"disabled": _vm.isOptionDisabled(item)
|
|
74252
74256
|
}
|
|
74253
74257
|
});
|
|
74254
|
-
}),
|
|
74258
|
+
}), _vm.hasMoreOptions ? _c('el-option', {
|
|
74259
|
+
staticClass: "load-more-option",
|
|
74260
|
+
attrs: {
|
|
74261
|
+
"disabled": "",
|
|
74262
|
+
"value": "load-more-option",
|
|
74263
|
+
"label": "加载更多..."
|
|
74264
|
+
}
|
|
74265
|
+
}, [_c('div', {
|
|
74266
|
+
staticClass: "load-more-text",
|
|
74267
|
+
on: {
|
|
74268
|
+
"click": function ($event) {
|
|
74269
|
+
$event.stopPropagation();
|
|
74270
|
+
return _vm.loadMoreOptions.apply(null, arguments);
|
|
74271
|
+
}
|
|
74272
|
+
}
|
|
74273
|
+
}, [_vm.loadingMore ? _c('i', {
|
|
74274
|
+
staticClass: "el-icon-loading"
|
|
74275
|
+
}) : _vm._e(), _c('span', [_vm._v(_vm._s(_vm.loadingMore ? '加载中...' : '点击加载更多'))]), _c('div', {
|
|
74276
|
+
staticClass: "load-more-info"
|
|
74277
|
+
}, [_vm._v("已显示 " + _vm._s(_vm.visibleOptions.length) + " / " + _vm._s(_vm.filteredOptions.length) + " 条")])])]) : _vm._e()], 2), _c('el-popover', {
|
|
74255
74278
|
attrs: {
|
|
74256
74279
|
"placement": "bottom-end",
|
|
74257
74280
|
"width": _vm.popoverWidth,
|
|
@@ -74342,7 +74365,7 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_render = function render() {
|
|
|
74342
74365
|
}
|
|
74343
74366
|
})])], 1)], 1)]);
|
|
74344
74367
|
};
|
|
74345
|
-
var
|
|
74368
|
+
var BatchQuerySelectorvue_type_template_id_8d409226_staticRenderFns = [];
|
|
74346
74369
|
|
|
74347
74370
|
;// ./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
|
|
74348
74371
|
|
|
@@ -74355,6 +74378,8 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74355
74378
|
|
|
74356
74379
|
|
|
74357
74380
|
|
|
74381
|
+
|
|
74382
|
+
|
|
74358
74383
|
/* harmony default export */ var BatchQuerySelectorvue_type_script_lang_js = ({
|
|
74359
74384
|
name: 'BatchQuerySelector',
|
|
74360
74385
|
props: {
|
|
@@ -74442,6 +74467,16 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74442
74467
|
customMapFunction: {
|
|
74443
74468
|
type: Function,
|
|
74444
74469
|
default: null
|
|
74470
|
+
},
|
|
74471
|
+
// 每页加载数量
|
|
74472
|
+
pageSize: {
|
|
74473
|
+
type: Number,
|
|
74474
|
+
default: 100
|
|
74475
|
+
},
|
|
74476
|
+
// 初始加载页数
|
|
74477
|
+
initialPageCount: {
|
|
74478
|
+
type: Number,
|
|
74479
|
+
default: 1
|
|
74445
74480
|
}
|
|
74446
74481
|
},
|
|
74447
74482
|
data() {
|
|
@@ -74451,8 +74486,16 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74451
74486
|
inputType: 'id',
|
|
74452
74487
|
batchInputContent: '',
|
|
74453
74488
|
optionsList: [],
|
|
74489
|
+
filteredOptions: [],
|
|
74490
|
+
visibleOptions: [],
|
|
74454
74491
|
loading: false,
|
|
74455
|
-
hasLoaded: false
|
|
74492
|
+
hasLoaded: false,
|
|
74493
|
+
keyword: '',
|
|
74494
|
+
debounceTimer: null,
|
|
74495
|
+
dropdownVisible: false,
|
|
74496
|
+
currentPage: 1,
|
|
74497
|
+
loadingMore: false,
|
|
74498
|
+
hasFocused: false // 添加一个标记,用于跟踪是否已经触发过focus事件
|
|
74456
74499
|
};
|
|
74457
74500
|
},
|
|
74458
74501
|
computed: {
|
|
@@ -74468,6 +74511,20 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74468
74511
|
return {
|
|
74469
74512
|
maxWidth: width
|
|
74470
74513
|
};
|
|
74514
|
+
},
|
|
74515
|
+
// 选中项的展示
|
|
74516
|
+
selectedOptionsDisplay() {
|
|
74517
|
+
return this.optionsList.filter(item => {
|
|
74518
|
+
if (this.multiple && Array.isArray(this.selectedValues)) {
|
|
74519
|
+
return this.selectedValues.includes(item[this.valueKey]);
|
|
74520
|
+
} else {
|
|
74521
|
+
return this.selectedValues === item[this.valueKey];
|
|
74522
|
+
}
|
|
74523
|
+
});
|
|
74524
|
+
},
|
|
74525
|
+
// 是否还有更多选项
|
|
74526
|
+
hasMoreOptions() {
|
|
74527
|
+
return this.visibleOptions.length < this.filteredOptions.length;
|
|
74471
74528
|
}
|
|
74472
74529
|
},
|
|
74473
74530
|
watch: {
|
|
@@ -74480,8 +74537,24 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74480
74537
|
options: {
|
|
74481
74538
|
handler(val) {
|
|
74482
74539
|
this.optionsList = [...val];
|
|
74540
|
+
this.filteredOptions = [...val];
|
|
74541
|
+
// 初始加载多页数据
|
|
74542
|
+
this.currentPage = this.initialPageCount;
|
|
74543
|
+
this.updateVisibleOptions();
|
|
74483
74544
|
},
|
|
74484
74545
|
immediate: true
|
|
74546
|
+
},
|
|
74547
|
+
keyword(val) {
|
|
74548
|
+
this.filterOptionsByKeyword(val);
|
|
74549
|
+
},
|
|
74550
|
+
dropdownVisible(val) {
|
|
74551
|
+
if (val) {
|
|
74552
|
+
this.$nextTick(() => {
|
|
74553
|
+
this.setupScrollListener();
|
|
74554
|
+
});
|
|
74555
|
+
} else {
|
|
74556
|
+
this.removeScrollListener();
|
|
74557
|
+
}
|
|
74485
74558
|
}
|
|
74486
74559
|
},
|
|
74487
74560
|
created() {
|
|
@@ -74507,12 +74580,94 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74507
74580
|
this.$emit('change', val);
|
|
74508
74581
|
},
|
|
74509
74582
|
// 处理获取焦点
|
|
74510
|
-
handleFocus() {
|
|
74583
|
+
handleFocus(e) {
|
|
74584
|
+
// 如果已经触发过focus事件,且下拉框是打开的,则不再触发
|
|
74585
|
+
if (this.hasFocused && this.dropdownVisible) {
|
|
74586
|
+
return;
|
|
74587
|
+
}
|
|
74588
|
+
|
|
74589
|
+
// 标记已经触发过focus事件
|
|
74590
|
+
this.hasFocused = true;
|
|
74591
|
+
|
|
74511
74592
|
// 如果配置了自动加载且提供了loadOptions方法,每次获取焦点时都加载数据
|
|
74512
74593
|
if (this.autoLoad && this.loadOptions) {
|
|
74513
74594
|
this.fetchOptions();
|
|
74514
74595
|
}
|
|
74515
|
-
this.$emit('focus');
|
|
74596
|
+
this.$emit('batch-selector-focus', e);
|
|
74597
|
+
},
|
|
74598
|
+
// 处理下拉框显示/隐藏
|
|
74599
|
+
handleDropdownVisibleChange(visible) {
|
|
74600
|
+
this.dropdownVisible = visible;
|
|
74601
|
+
|
|
74602
|
+
// 如果下拉框关闭,重置hasFocused标记,以便下次打开时能够正确触发focus事件
|
|
74603
|
+
if (!visible) {
|
|
74604
|
+
this.hasFocused = false;
|
|
74605
|
+
}
|
|
74606
|
+
},
|
|
74607
|
+
// 设置滚动监听
|
|
74608
|
+
setupScrollListener() {
|
|
74609
|
+
this.removeScrollListener(); // 先移除之前的监听器
|
|
74610
|
+
|
|
74611
|
+
// 获取el-select-dropdown元素
|
|
74612
|
+
const dropdownEl = document.querySelector('.el-select-dropdown.el-popper');
|
|
74613
|
+
if (!dropdownEl) return;
|
|
74614
|
+
|
|
74615
|
+
// 获取下拉框的滚动容器
|
|
74616
|
+
const scrollContainer = dropdownEl.querySelector('.el-select-dropdown__wrap');
|
|
74617
|
+
if (!scrollContainer) return;
|
|
74618
|
+
|
|
74619
|
+
// 添加滚动监听
|
|
74620
|
+
this.handleScroll = this.createScrollHandler(scrollContainer);
|
|
74621
|
+
scrollContainer.addEventListener('scroll', this.handleScroll);
|
|
74622
|
+
|
|
74623
|
+
// 保存引用,以便后续移除
|
|
74624
|
+
this.scrollContainer = scrollContainer;
|
|
74625
|
+
},
|
|
74626
|
+
// 创建滚动处理函数
|
|
74627
|
+
createScrollHandler(container) {
|
|
74628
|
+
return () => {
|
|
74629
|
+
const {
|
|
74630
|
+
scrollTop,
|
|
74631
|
+
scrollHeight,
|
|
74632
|
+
clientHeight
|
|
74633
|
+
} = container;
|
|
74634
|
+
|
|
74635
|
+
// 当滚动到底部附近时,自动加载更多数据
|
|
74636
|
+
if (scrollTop + clientHeight >= scrollHeight - 50) {
|
|
74637
|
+
this.loadMoreOptions();
|
|
74638
|
+
}
|
|
74639
|
+
};
|
|
74640
|
+
},
|
|
74641
|
+
// 移除滚动监听
|
|
74642
|
+
removeScrollListener() {
|
|
74643
|
+
if (this.scrollContainer && this.handleScroll) {
|
|
74644
|
+
this.scrollContainer.removeEventListener('scroll', this.handleScroll);
|
|
74645
|
+
this.scrollContainer = null;
|
|
74646
|
+
}
|
|
74647
|
+
},
|
|
74648
|
+
// 加载更多选项
|
|
74649
|
+
loadMoreOptions() {
|
|
74650
|
+
if (this.loadingMore || this.currentPage * this.pageSize >= this.filteredOptions.length) return;
|
|
74651
|
+
this.loadingMore = true;
|
|
74652
|
+
|
|
74653
|
+
// 使用setTimeout模拟异步加载,避免界面卡顿
|
|
74654
|
+
setTimeout(() => {
|
|
74655
|
+
this.currentPage++;
|
|
74656
|
+
this.updateVisibleOptions();
|
|
74657
|
+
this.loadingMore = false;
|
|
74658
|
+
|
|
74659
|
+
// 如果下拉列表已经打开,更新滚动监听
|
|
74660
|
+
if (this.dropdownVisible) {
|
|
74661
|
+
this.$nextTick(() => {
|
|
74662
|
+
this.setupScrollListener();
|
|
74663
|
+
});
|
|
74664
|
+
}
|
|
74665
|
+
}, 200);
|
|
74666
|
+
},
|
|
74667
|
+
// 更新可见选项
|
|
74668
|
+
updateVisibleOptions() {
|
|
74669
|
+
// 直接从过滤后的选项中获取当前页的选项,保持原始顺序
|
|
74670
|
+
this.visibleOptions = this.filteredOptions.slice(0, this.currentPage * this.pageSize);
|
|
74516
74671
|
},
|
|
74517
74672
|
// 获取选项数据
|
|
74518
74673
|
async fetchOptions(params) {
|
|
@@ -74522,6 +74677,11 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74522
74677
|
const result = await this.loadOptions(params);
|
|
74523
74678
|
if (Array.isArray(result)) {
|
|
74524
74679
|
this.optionsList = result;
|
|
74680
|
+
this.filteredOptions = result;
|
|
74681
|
+
|
|
74682
|
+
// 初始加载多页数据
|
|
74683
|
+
this.currentPage = this.initialPageCount;
|
|
74684
|
+
this.updateVisibleOptions();
|
|
74525
74685
|
} else {
|
|
74526
74686
|
console.warn('【BatchQuerySelector组件】: loadOptions 应该返回一个数组');
|
|
74527
74687
|
}
|
|
@@ -74537,6 +74697,36 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74537
74697
|
refreshOptions(params) {
|
|
74538
74698
|
return this.fetchOptions(params);
|
|
74539
74699
|
},
|
|
74700
|
+
// 过滤选项方法
|
|
74701
|
+
filterOptions(query) {
|
|
74702
|
+
this.keyword = query;
|
|
74703
|
+
return true; // 返回true让所有选项通过,实际过滤在filterOptionsByKeyword中处理
|
|
74704
|
+
},
|
|
74705
|
+
// 根据关键词过滤选项
|
|
74706
|
+
filterOptionsByKeyword(query) {
|
|
74707
|
+
// 使用防抖处理,避免频繁计算
|
|
74708
|
+
clearTimeout(this.debounceTimer);
|
|
74709
|
+
this.debounceTimer = setTimeout(() => {
|
|
74710
|
+
if (query) {
|
|
74711
|
+
// 如果有搜索关键词,按关键词过滤
|
|
74712
|
+
this.filteredOptions = this.optionsList.filter(item => {
|
|
74713
|
+
const label = String(item[this.labelKey]).toLowerCase();
|
|
74714
|
+
const value = String(item[this.valueKey]).toLowerCase();
|
|
74715
|
+
const lowercaseQuery = query.toLowerCase();
|
|
74716
|
+
return label.includes(lowercaseQuery) || value.includes(lowercaseQuery);
|
|
74717
|
+
});
|
|
74718
|
+
} else {
|
|
74719
|
+
// 如果没有搜索关键词,显示所有选项
|
|
74720
|
+
this.filteredOptions = [...this.optionsList];
|
|
74721
|
+
}
|
|
74722
|
+
|
|
74723
|
+
// 重置当前页,但加载多页
|
|
74724
|
+
this.currentPage = this.initialPageCount;
|
|
74725
|
+
|
|
74726
|
+
// 更新可见选项
|
|
74727
|
+
this.updateVisibleOptions();
|
|
74728
|
+
}, 200);
|
|
74729
|
+
},
|
|
74540
74730
|
// 处理批量输入
|
|
74541
74731
|
handleBatchInput() {
|
|
74542
74732
|
if (!this.batchInputContent.trim()) {
|
|
@@ -74553,20 +74743,36 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74553
74743
|
|
|
74554
74744
|
// 根据输入类型匹配数据
|
|
74555
74745
|
let matchedValues = [];
|
|
74746
|
+
let matchedItems = [];
|
|
74556
74747
|
if (this.customMapFunction) {
|
|
74557
74748
|
// 使用自定义映射函数
|
|
74558
|
-
matchedValues = this.customMapFunction(inputValues, this.inputType, this.
|
|
74749
|
+
matchedValues = this.customMapFunction(inputValues, this.inputType, this.optionsList);
|
|
74750
|
+
// 获取匹配的完整选项对象
|
|
74751
|
+
matchedItems = this.optionsList.filter(item => matchedValues.includes(item[this.valueKey]));
|
|
74559
74752
|
} else {
|
|
74560
74753
|
// 默认映射逻辑
|
|
74561
74754
|
const searchKey = this.inputType === 'id' ? this.valueKey : this.labelKey;
|
|
74562
|
-
|
|
74563
|
-
|
|
74755
|
+
|
|
74756
|
+
// 先获取匹配的完整选项对象 - 从完整的optionsList中查找,而不仅仅是visibleOptions
|
|
74757
|
+
matchedItems = this.optionsList.filter(item => {
|
|
74564
74758
|
// 排除禁用的选项
|
|
74565
74759
|
if (this.isOptionDisabled(item)) {
|
|
74566
74760
|
return false;
|
|
74567
74761
|
}
|
|
74568
|
-
return inputValues.
|
|
74569
|
-
})
|
|
74762
|
+
return inputValues.some(input => String(item[searchKey]).toLowerCase() === String(input).toLowerCase());
|
|
74763
|
+
});
|
|
74764
|
+
|
|
74765
|
+
// 然后提取值
|
|
74766
|
+
matchedValues = matchedItems.map(item => item[this.valueKey]);
|
|
74767
|
+
}
|
|
74768
|
+
|
|
74769
|
+
// 如果没有匹配项,尝试进行模糊匹配
|
|
74770
|
+
if (matchedValues.length === 0 && this.inputType === 'name') {
|
|
74771
|
+
matchedItems = this.optionsList.filter(item => {
|
|
74772
|
+
if (this.isOptionDisabled(item)) return false;
|
|
74773
|
+
return inputValues.some(input => String(item[this.labelKey]).toLowerCase().includes(String(input).toLowerCase()));
|
|
74774
|
+
});
|
|
74775
|
+
matchedValues = matchedItems.map(item => item[this.valueKey]);
|
|
74570
74776
|
}
|
|
74571
74777
|
|
|
74572
74778
|
// 更新选中值
|
|
@@ -74585,6 +74791,28 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74585
74791
|
}
|
|
74586
74792
|
}
|
|
74587
74793
|
|
|
74794
|
+
// TODO: ***确保匹配的选项在下拉框中可见
|
|
74795
|
+
if (matchedValues.length > 0) {
|
|
74796
|
+
// 确保所有匹配项都被添加到visibleOptions中,以便正确显示名称
|
|
74797
|
+
const matchedItemsMap = {};
|
|
74798
|
+
matchedItems.forEach(item => {
|
|
74799
|
+
matchedItemsMap[item[this.valueKey]] = item;
|
|
74800
|
+
});
|
|
74801
|
+
|
|
74802
|
+
// 检查是否所有匹配项都在visibleOptions中
|
|
74803
|
+
const missingItems = matchedValues.filter(value => !this.visibleOptions.some(option => option[this.valueKey] === value));
|
|
74804
|
+
|
|
74805
|
+
// 如果有缺失的项,将它们添加到visibleOptions中
|
|
74806
|
+
if (missingItems.length > 0) {
|
|
74807
|
+
const additionalOptions = missingItems.map(value => matchedItemsMap[value]).filter(Boolean);
|
|
74808
|
+
|
|
74809
|
+
// 将这些项添加到visibleOptions的开头,确保它们可见
|
|
74810
|
+
if (additionalOptions.length > 0) {
|
|
74811
|
+
this.visibleOptions = [...additionalOptions, ...this.visibleOptions];
|
|
74812
|
+
}
|
|
74813
|
+
}
|
|
74814
|
+
}
|
|
74815
|
+
|
|
74588
74816
|
// 关闭弹出框
|
|
74589
74817
|
this.popoverVisible = false;
|
|
74590
74818
|
this.batchInputContent = '';
|
|
@@ -74593,9 +74821,14 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74593
74821
|
this.$emit('batch-input-complete', {
|
|
74594
74822
|
inputValues,
|
|
74595
74823
|
matchedValues,
|
|
74824
|
+
matchedItems,
|
|
74596
74825
|
type: this.inputType
|
|
74597
74826
|
});
|
|
74598
74827
|
}
|
|
74828
|
+
},
|
|
74829
|
+
beforeDestroy() {
|
|
74830
|
+
// 移除滚动监听器
|
|
74831
|
+
this.removeScrollListener();
|
|
74599
74832
|
}
|
|
74600
74833
|
});
|
|
74601
74834
|
;// ./src/components/batch-query-selector/BatchQuerySelector.vue?vue&type=script&lang=js
|
|
@@ -74610,8 +74843,8 @@ var BatchQuerySelectorvue_type_template_id_18d5c3ce_staticRenderFns = [];
|
|
|
74610
74843
|
;
|
|
74611
74844
|
var BatchQuerySelector_component = normalizeComponent(
|
|
74612
74845
|
batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
|
|
74613
|
-
|
|
74614
|
-
|
|
74846
|
+
BatchQuerySelectorvue_type_template_id_8d409226_render,
|
|
74847
|
+
BatchQuerySelectorvue_type_template_id_8d409226_staticRenderFns,
|
|
74615
74848
|
false,
|
|
74616
74849
|
null,
|
|
74617
74850
|
null,
|
|
@@ -74903,6 +75136,7 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74903
75136
|
});
|
|
74904
75137
|
},
|
|
74905
75138
|
handleBatchSelectorFocus(event, item) {
|
|
75139
|
+
console.log('focus-22222222');
|
|
74906
75140
|
this.$emit('batch-selector-focus', {
|
|
74907
75141
|
...event,
|
|
74908
75142
|
item
|
|
@@ -74912,10 +75146,10 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74912
75146
|
});
|
|
74913
75147
|
;// ./src/components/form/form.vue?vue&type=script&lang=js
|
|
74914
75148
|
/* harmony default export */ var form_formvue_type_script_lang_js = (formvue_type_script_lang_js);
|
|
74915
|
-
;// ./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=
|
|
75149
|
+
;// ./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=6681f49c&prod&lang=scss&scoped=true
|
|
74916
75150
|
// extracted by mini-css-extract-plugin
|
|
74917
75151
|
|
|
74918
|
-
;// ./src/components/form/form.vue?vue&type=style&index=0&id=
|
|
75152
|
+
;// ./src/components/form/form.vue?vue&type=style&index=0&id=6681f49c&prod&lang=scss&scoped=true
|
|
74919
75153
|
|
|
74920
75154
|
;// ./src/components/form/form.vue
|
|
74921
75155
|
|
|
@@ -74928,18 +75162,18 @@ var BatchQuerySelector_component = normalizeComponent(
|
|
|
74928
75162
|
|
|
74929
75163
|
var form_component = normalizeComponent(
|
|
74930
75164
|
form_formvue_type_script_lang_js,
|
|
74931
|
-
|
|
74932
|
-
|
|
75165
|
+
formvue_type_template_id_6681f49c_scoped_true_render,
|
|
75166
|
+
formvue_type_template_id_6681f49c_scoped_true_staticRenderFns,
|
|
74933
75167
|
false,
|
|
74934
75168
|
null,
|
|
74935
|
-
"
|
|
75169
|
+
"6681f49c",
|
|
74936
75170
|
null
|
|
74937
75171
|
|
|
74938
75172
|
)
|
|
74939
75173
|
|
|
74940
75174
|
/* harmony default export */ var form_form = (form_component.exports);
|
|
74941
|
-
;// ./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/page-search/page-search.vue?vue&type=template&id=
|
|
74942
|
-
var
|
|
75175
|
+
;// ./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/page-search/page-search.vue?vue&type=template&id=69194707
|
|
75176
|
+
var page_searchvue_type_template_id_69194707_render = function render() {
|
|
74943
75177
|
var _vm = this,
|
|
74944
75178
|
_c = _vm._self._c;
|
|
74945
75179
|
return _c('div', {
|
|
@@ -74955,7 +75189,9 @@ var page_searchvue_type_template_id_d39cfe72_render = function render() {
|
|
|
74955
75189
|
"change": _vm.handleChange,
|
|
74956
75190
|
"queryBtnClick": _vm.handleQueryClick,
|
|
74957
75191
|
"submit": _vm.submit,
|
|
74958
|
-
"reset": _vm.reset
|
|
75192
|
+
"reset": _vm.reset,
|
|
75193
|
+
"batch-input-complete": _vm.handleBatchInputComplete,
|
|
75194
|
+
"batch-selector-focus": _vm.handleBatchSelectorFocus
|
|
74959
75195
|
},
|
|
74960
75196
|
scopedSlots: _vm._u([{
|
|
74961
75197
|
key: "header",
|
|
@@ -74986,7 +75222,7 @@ var page_searchvue_type_template_id_d39cfe72_render = function render() {
|
|
|
74986
75222
|
})], null, true)
|
|
74987
75223
|
}, 'by-form', _vm.searchFormConfig, false))], 1);
|
|
74988
75224
|
};
|
|
74989
|
-
var
|
|
75225
|
+
var page_searchvue_type_template_id_69194707_staticRenderFns = [];
|
|
74990
75226
|
|
|
74991
75227
|
;// ./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/page-search/page-search.vue?vue&type=script&lang=js
|
|
74992
75228
|
|
|
@@ -75085,6 +75321,12 @@ var page_searchvue_type_template_id_d39cfe72_staticRenderFns = [];
|
|
|
75085
75321
|
},
|
|
75086
75322
|
reset() {
|
|
75087
75323
|
this.$emit('reset');
|
|
75324
|
+
},
|
|
75325
|
+
handleBatchSelectorFocus(event) {
|
|
75326
|
+
this.$emit('batch-selector-focus', event);
|
|
75327
|
+
},
|
|
75328
|
+
handleBatchInputComplete(event) {
|
|
75329
|
+
this.$emit('batch-input-complete', event);
|
|
75088
75330
|
}
|
|
75089
75331
|
}
|
|
75090
75332
|
});
|
|
@@ -75100,8 +75342,8 @@ var page_searchvue_type_template_id_d39cfe72_staticRenderFns = [];
|
|
|
75100
75342
|
;
|
|
75101
75343
|
var page_search_component = normalizeComponent(
|
|
75102
75344
|
page_search_page_searchvue_type_script_lang_js,
|
|
75103
|
-
|
|
75104
|
-
|
|
75345
|
+
page_searchvue_type_template_id_69194707_render,
|
|
75346
|
+
page_searchvue_type_template_id_69194707_staticRenderFns,
|
|
75105
75347
|
false,
|
|
75106
75348
|
null,
|
|
75107
75349
|
null,
|