@weitutech/by-components 1.1.80 → 1.1.82

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.
@@ -62414,8 +62414,8 @@ var table_component = normalizeComponent(
62414
62414
  )
62415
62415
 
62416
62416
  /* harmony default export */ var table = (table_component.exports);
62417
- ;// ./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=5e8c5b90&scoped=true
62418
- var formvue_type_template_id_5e8c5b90_scoped_true_render = function render() {
62417
+ ;// ./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=acf332a6&scoped=true
62418
+ var formvue_type_template_id_acf332a6_scoped_true_render = function render() {
62419
62419
  var _vm = this,
62420
62420
  _c = _vm._self._c;
62421
62421
  return _c('div', {
@@ -62544,7 +62544,13 @@ var formvue_type_template_id_5e8c5b90_scoped_true_render = function render() {
62544
62544
  "suffixInputOptions": item.suffixInputOptions,
62545
62545
  "showSuffixBatchInput": item.showSuffixBatchInput,
62546
62546
  "suffixBatchInputPopoverTitle": item.suffixBatchInputPopoverTitle,
62547
- "suffixBatchInputPopoverWidth": item.suffixBatchInputPopoverWidth
62547
+ "suffixBatchInputPopoverWidth": item.suffixBatchInputPopoverWidth,
62548
+ "enhancedAllOptions": item.enhancedAllOptions || [],
62549
+ "enhancedTitleKey": item.enhancedTitleKey || 'name',
62550
+ "enhancedDescriptionKey": item.enhancedDescriptionKey || 'mobile',
62551
+ "enhancedDisabledKey": item.enhancedDisabledKey || 'status',
62552
+ "enhancedDisabledCanSelect": item.enhancedDisabledCanSelect || false,
62553
+ "enhancedCollapseTags": item.enhancedCollapseTags || false
62548
62554
  },
62549
62555
  on: {
62550
62556
  "update:suffixInputValue": function ($event) {
@@ -62558,6 +62564,9 @@ var formvue_type_template_id_5e8c5b90_scoped_true_render = function render() {
62558
62564
  },
62559
62565
  "suffix-input-change": function ($event) {
62560
62566
  return _vm.handleSuffixInputChange($event, item);
62567
+ },
62568
+ "search": function ($event) {
62569
+ return _vm.handleEnhancedSearch($event, item);
62561
62570
  }
62562
62571
  }
62563
62572
  }, 'by-common-selector', item.otherOptions || {}, false))] : item.type === 'batchQuerySelector' ? [_c('by-batch-query-selector', _vm._b({
@@ -62767,7 +62776,7 @@ var formvue_type_template_id_5e8c5b90_scoped_true_render = function render() {
62767
62776
  staticClass: "footer"
62768
62777
  }, [_vm._t("footer")], 2)], 1);
62769
62778
  };
62770
- var formvue_type_template_id_5e8c5b90_scoped_true_staticRenderFns = [];
62779
+ var formvue_type_template_id_acf332a6_scoped_true_staticRenderFns = [];
62771
62780
 
62772
62781
  ;// ./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
62773
62782
  var pair_number_inputvue_type_template_id_604235f6_render = function render() {
@@ -63067,14 +63076,14 @@ var custom_date_picker_component = normalizeComponent(
63067
63076
  )
63068
63077
 
63069
63078
  /* harmony default export */ var custom_date_picker = (custom_date_picker_component.exports);
63070
- ;// ./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/common-selector/ByCommonSelector.vue?vue&type=template&id=1b8642c2
63071
- var ByCommonSelectorvue_type_template_id_1b8642c2_render = function render() {
63079
+ ;// ./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/common-selector/ByCommonSelector.vue?vue&type=template&id=fbdd4830
63080
+ var ByCommonSelectorvue_type_template_id_fbdd4830_render = function render() {
63072
63081
  var _vm = this,
63073
63082
  _c = _vm._self._c;
63074
63083
  return _c('div', {
63075
63084
  staticClass: "by_selector_container",
63076
63085
  class: {
63077
- 'by_align-center': _vm.type !== 'select' && !_vm.open
63086
+ 'by_align-center': _vm.type !== 'select' && _vm.type !== 'enhancedSelect' && !_vm.open
63078
63087
  }
63079
63088
  }, [_vm.type === 'select' ? _c('el-select', _vm._b({
63080
63089
  attrs: {
@@ -63105,6 +63114,47 @@ var ByCommonSelectorvue_type_template_id_1b8642c2_render = function render() {
63105
63114
  "disabled": item.status === 0
63106
63115
  }
63107
63116
  });
63117
+ }), 1) : _vm.type === 'enhancedSelect' ? _c('el-select', _vm._b({
63118
+ attrs: {
63119
+ "filterable": "",
63120
+ "clearable": "",
63121
+ "remote": "",
63122
+ "multiple": _vm.multiple,
63123
+ "collapse-tags": _vm.multiple && _vm.enhancedCollapseTags,
63124
+ "remote-method": _vm.getResult,
63125
+ "loading": _vm.loading,
63126
+ "placeholder": _vm.placeholder
63127
+ },
63128
+ on: {
63129
+ "change": _vm.selected,
63130
+ "visible-change": _vm.handleVisibleChange
63131
+ },
63132
+ model: {
63133
+ value: _vm.selectedValue,
63134
+ callback: function ($$v) {
63135
+ _vm.selectedValue = $$v;
63136
+ },
63137
+ expression: "selectedValue"
63138
+ }
63139
+ }, 'el-select', _vm.$attrs, false), _vm._l(_vm.enhancedDataList, function (item, index) {
63140
+ return _c('el-option', {
63141
+ key: index,
63142
+ attrs: {
63143
+ "label": _vm.enhancedDescriptionDisplay ? item[_vm.enhancedTitleKey] + ' ' + item[_vm.enhancedDescriptionKey] : item[_vm.enhancedTitleKey],
63144
+ "value": item.id,
63145
+ "disabled": !_vm.enhancedDisabledCanSelect && item[_vm.enhancedDisabledKey] === 0
63146
+ }
63147
+ }, [_c('span', {
63148
+ staticClass: "enhanced-option-left",
63149
+ class: {
63150
+ 'enhanced-disabled': item[_vm.enhancedDisabledKey] === 0
63151
+ }
63152
+ }, [_vm._v(_vm._s(item[_vm.enhancedTitleKey]))]), _vm.enhancedDescriptionDisplay ? _c('span', {
63153
+ staticClass: "enhanced-option-right",
63154
+ class: {
63155
+ 'enhanced-disabled': item[_vm.enhancedDisabledKey] === 0
63156
+ }
63157
+ }, [_vm._v(_vm._s(item[_vm.enhancedDescriptionKey]))]) : _vm._e()]);
63108
63158
  }), 1) : [!_vm.hiddenAllOptions ? _c('el-checkbox', {
63109
63159
  class: ['by_selected_all', {
63110
63160
  'by_border-transparent': _vm.type !== 'border'
@@ -63452,7 +63502,7 @@ var ByCommonSelectorvue_type_template_id_1b8642c2_render = function render() {
63452
63502
  return _vm.handlePageChange(_vm.currentPage + 1);
63453
63503
  }
63454
63504
  }
63455
- }, [_vm._v(" 下一页 ")])], 1) : _vm._e()], 1)])], _vm.type !== 'select' && _vm.needExpand && !_vm.forceNoExpand ? _c('el-button', {
63505
+ }, [_vm._v(" 下一页 ")])], 1) : _vm._e()], 1)])], _vm.type !== 'select' && _vm.type !== 'enhancedSelect' && _vm.needExpand && !_vm.forceNoExpand ? _c('el-button', {
63456
63506
  staticClass: "by_openShrink",
63457
63507
  attrs: {
63458
63508
  "type": "text",
@@ -63461,7 +63511,7 @@ var ByCommonSelectorvue_type_template_id_1b8642c2_render = function render() {
63461
63511
  on: {
63462
63512
  "click": _vm.showList
63463
63513
  }
63464
- }, [_vm._v(" " + _vm._s(_vm.needShowLoading && _vm.loading ? '加载中...' : _vm.open ? '收起' : '展开') + " ")]) : _vm._e(), _vm.type !== 'select' && !_vm.needExpand && !_vm.forceNoExpand && _vm.needShowLoading && _vm.loading ? _c('el-button', {
63514
+ }, [_vm._v(" " + _vm._s(_vm.needShowLoading && _vm.loading ? '加载中...' : _vm.open ? '收起' : '展开') + " ")]) : _vm._e(), _vm.type !== 'select' && _vm.type !== 'enhancedSelect' && !_vm.needExpand && !_vm.forceNoExpand && _vm.needShowLoading && _vm.loading ? _c('el-button', {
63465
63515
  staticClass: "by_openShrink",
63466
63516
  attrs: {
63467
63517
  "type": "text",
@@ -63469,7 +63519,7 @@ var ByCommonSelectorvue_type_template_id_1b8642c2_render = function render() {
63469
63519
  }
63470
63520
  }, [_vm._v(" 加载中... ")]) : _vm._e()], 2);
63471
63521
  };
63472
- var ByCommonSelectorvue_type_template_id_1b8642c2_staticRenderFns = [];
63522
+ var ByCommonSelectorvue_type_template_id_fbdd4830_staticRenderFns = [];
63473
63523
 
63474
63524
  ;// ./node_modules/pinyin-pro/dist/index.mjs
63475
63525
 
@@ -73765,7 +73815,11 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73765
73815
  default: ''
73766
73816
  },
73767
73817
  /**
73768
- * 选择器类型 border | checkbox | select(default)
73818
+ * 选择器类型
73819
+ * border
73820
+ * checkbox
73821
+ * select (默认)
73822
+ * enhancedSelect
73769
73823
  */
73770
73824
  type: {
73771
73825
  type: String,
@@ -73806,7 +73860,12 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73806
73860
  */
73807
73861
  placeholder: {
73808
73862
  type: String,
73809
- default: '请选择'
73863
+ default() {
73864
+ if (this.type === 'enhancedSelect') {
73865
+ return '请输入用户名,手机号搜索';
73866
+ }
73867
+ return '请选择';
73868
+ }
73810
73869
  },
73811
73870
  /**
73812
73871
  * 选择器大小
@@ -73854,7 +73913,7 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73854
73913
  type: Boolean,
73855
73914
  default: false
73856
73915
  },
73857
- // ***************** 后置输入框相关
73916
+ // ********************************** 后置输入框相关 **********************************
73858
73917
  /**
73859
73918
  * 是否显示后置输入框
73860
73919
  */
@@ -73911,6 +73970,61 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73911
73970
  suffixBatchInputPopoverWidth: {
73912
73971
  type: [String, Number],
73913
73972
  default: '300'
73973
+ },
73974
+ // ********************************** 增强下拉选择器相关 **********************************
73975
+ /**
73976
+ * 增强下拉选择器中,所有选项数据
73977
+ * @description 该属性是用于默认回显时查找数据,并非用于展示下拉选项
73978
+ * 必填,否则会影响默认回显
73979
+ */
73980
+ enhancedAllOptions: {
73981
+ type: Array,
73982
+ default: () => []
73983
+ },
73984
+ /**
73985
+ * 增强下拉选择器中,选项的title字段
73986
+ */
73987
+ enhancedTitleKey: {
73988
+ type: String,
73989
+ default: 'name'
73990
+ },
73991
+ /**
73992
+ * 增强下拉选择器中,选项的description字段
73993
+ */
73994
+ enhancedDescriptionKey: {
73995
+ type: String,
73996
+ default: 'mobile'
73997
+ },
73998
+ /**
73999
+ * 增强下拉选择器中,选项的禁用字段名(置灰的字段)
74000
+ */
74001
+ enhancedDisabledKey: {
74002
+ type: String,
74003
+ default: 'status'
74004
+ },
74005
+ /**
74006
+ * 增强下拉选择器中,选项的description字段是否显示
74007
+ * true: 显示 标题 + 描述 (如: 何其灿 13063048088)
74008
+ * false: 只显示 标题
74009
+ */
74010
+ enhancedDescriptionDisplay: {
74011
+ type: Boolean,
74012
+ default: true
74013
+ },
74014
+ /**
74015
+ * 增强下拉选择器中,多选时是否折叠标签
74016
+ */
74017
+ enhancedCollapseTags: {
74018
+ type: Boolean,
74019
+ default: false
74020
+ },
74021
+ /**
74022
+ * 增强下拉选择器中,禁用的值是否可选
74023
+ * 是:禁用只是置灰,依然可选; 否:置灰并不可选中
74024
+ */
74025
+ enhancedDisabledCanSelect: {
74026
+ type: Boolean,
74027
+ default: false
73914
74028
  }
73915
74029
  },
73916
74030
  data() {
@@ -73943,7 +74057,13 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73943
74057
 
73944
74058
  popoverVisible: false,
73945
74059
  // 批量输入按钮的弹窗是否显示
73946
- batchInputContent: '' // 批量输入的内容
74060
+ batchInputContent: '',
74061
+ // 批量输入的内容
74062
+
74063
+ // enhancedSelect 相关数据
74064
+ allData: new Map(),
74065
+ // 缓存所有数据
74066
+ enhancedSelectOpened: false // 标记 enhancedSelect 是否已经打开过
73947
74067
  };
73948
74068
  },
73949
74069
  computed: {
@@ -73955,10 +74075,43 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73955
74075
  },
73956
74076
  optionsList() {
73957
74077
  return this.dataList;
74078
+ },
74079
+ enhancedDataList() {
74080
+ if (this.type !== 'enhancedSelect') {
74081
+ return this.dataList;
74082
+ }
74083
+
74084
+ // 只有在未打开过的情况下,如果有默认值且 dataList 为空,则从 enhancedAllOptions 中查找默认选项
74085
+ if (!this.enhancedSelectOpened && this.value !== undefined && this.value !== null && this.value !== '' && this.dataList.length === 0) {
74086
+ if (this.multiple) {
74087
+ // 多选情况:value 是数组
74088
+ if (Array.isArray(this.value) && this.value.length > 0) {
74089
+ const defaultItems = this.enhancedAllOptions.filter(option => this.value.includes(option.id) || this.value.includes(Number(option.id)) || this.value.includes(0) && option.id === 0);
74090
+ return defaultItems;
74091
+ }
74092
+ } else {
74093
+ // 单选情况:value 是单个值
74094
+ if (this.value !== '') {
74095
+ const defaultItem = this.enhancedAllOptions.find(option => option.id === this.value || option.id === Number(this.value) || this.value === 0 && option.id === 0);
74096
+ return defaultItem ? [defaultItem] : [];
74097
+ }
74098
+ }
74099
+ }
74100
+ return this.dataList;
73958
74101
  }
73959
74102
  },
73960
74103
  watch: {
73961
74104
  value(value) {
74105
+ if (this.type === 'enhancedSelect') {
74106
+ this.selectedValue = value;
74107
+ // 如果数据已经加载,立即处理默认值
74108
+ if (this.allData.size > 0) {
74109
+ this.$nextTick(() => {
74110
+ this.handleEnhancedSelectDefaultValue();
74111
+ });
74112
+ }
74113
+ return;
74114
+ }
73962
74115
  if (this.type === 'select') {
73963
74116
  this.selectedValue = value;
73964
74117
 
@@ -73984,6 +74137,25 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
73984
74137
  },
73985
74138
  options: {
73986
74139
  handler(newOptions, oldOptions) {
74140
+ // enhancedSelect 类型的特殊处理
74141
+ if (this.type === 'enhancedSelect') {
74142
+ this.dataList = newOptions;
74143
+ // 更新缓存
74144
+ this.allData.clear();
74145
+ newOptions.forEach(item => {
74146
+ this.allData.set(item.id, item);
74147
+ });
74148
+ // 数据更新后,自动关闭加载状态
74149
+ this.loading = false;
74150
+
74151
+ // 数据加载完成后,重新处理默认值
74152
+ this.$nextTick(() => {
74153
+ this.handleEnhancedSelectDefaultValue();
74154
+ });
74155
+ return;
74156
+ }
74157
+
74158
+ // 其他类型的处理
73987
74159
  if (!this.loadOptions) {
73988
74160
  this.localOptions = [...this.options];
73989
74161
 
@@ -74028,6 +74200,23 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74028
74200
  if (val !== this.localSuffixInputValue) {
74029
74201
  this.localSuffixInputValue = val;
74030
74202
  }
74203
+ },
74204
+ enhancedAllOptions: {
74205
+ handler(newOptions) {
74206
+ if (this.type === 'enhancedSelect') {
74207
+ // 验证 enhancedAllOptions 是否已加载
74208
+ if (!newOptions || newOptions.length === 0) {
74209
+ console.warn('[ByCommonSelector] enhancedSelect 类型需要提供 enhancedAllOptions 属性用于默认值回显');
74210
+ return;
74211
+ }
74212
+
74213
+ // 当 enhancedAllOptions 加载完成后,重新处理默认值
74214
+ this.$nextTick(() => {
74215
+ this.handleEnhancedSelectDefaultValue();
74216
+ });
74217
+ }
74218
+ },
74219
+ immediate: true
74031
74220
  }
74032
74221
  },
74033
74222
  created() {
@@ -74120,7 +74309,7 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74120
74309
  // 检查是否需要展开按钮
74121
74310
  checkNeedExpand() {
74122
74311
  var _this$$el;
74123
- if (this.type === 'select' || this.forceNoExpand) {
74312
+ if (this.type === 'select' || this.type === 'enhancedSelect' || this.forceNoExpand) {
74124
74313
  this.needExpand = false;
74125
74314
  return;
74126
74315
  }
@@ -74203,6 +74392,10 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74203
74392
  this.$nextTick(() => {
74204
74393
  this.checkNeedExpand();
74205
74394
  this.scheduleExpandCheck();
74395
+ // 异步加载数据后,重新处理默认值(仅 enhancedSelect)
74396
+ if (this.type === 'enhancedSelect') {
74397
+ this.handleEnhancedSelectDefaultValue();
74398
+ }
74206
74399
  });
74207
74400
  } else {
74208
74401
  // console.error('loadOptions函数返回值必须是数组')
@@ -74216,6 +74409,16 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74216
74409
  }
74217
74410
  },
74218
74411
  initData() {
74412
+ // enhancedSelect 类型的特殊处理
74413
+ if (this.type === 'enhancedSelect') {
74414
+ this.dataList = this.options;
74415
+ this.selectedValue = this.value;
74416
+ // 缓存所有数据
74417
+ this.options.forEach(item => {
74418
+ this.allData.set(item.id, item);
74419
+ });
74420
+ return;
74421
+ }
74219
74422
  this.dataList = [...this.localOptions];
74220
74423
  this.buildLatterList();
74221
74424
  // 修复:使用严格比较,避免0值被误判为空
@@ -74274,7 +74477,7 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74274
74477
  },
74275
74478
  // 构建A~Z字母列表
74276
74479
  buildLatterList() {
74277
- if (this.type === 'select') {
74480
+ if (this.type === 'select' || this.type === 'enhancedSelect') {
74278
74481
  this.dataList = [...this.localOptions];
74279
74482
  } else {
74280
74483
  // 如果启用了showSearchBar,确保每个选项都有initial字段
@@ -74366,7 +74569,44 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74366
74569
  this.handlePageChange(1);
74367
74570
  },
74368
74571
  selected(value) {
74369
- // 在多选模式下,value是数组;在单选模式下,确保使用selectedValue而不是布尔值
74572
+ // enhancedSelect 类型的特殊处理
74573
+ if (this.type === 'enhancedSelect') {
74574
+ let obj = null;
74575
+ if (this.multiple) {
74576
+ obj = [];
74577
+ // 修复:优先从 enhancedAllOptions 中查找,确保多选时能正确获取对象数组
74578
+ if (Array.isArray(value) && value.length > 0) {
74579
+ // 从 enhancedAllOptions 中查找所有匹配的选项
74580
+ const items = this.enhancedAllOptions.filter(option => value.includes(option.id) || value.includes(Number(option.id)) || value.includes(0) && option.id === 0);
74581
+ obj = items;
74582
+ }
74583
+ } else {
74584
+ obj = {};
74585
+ if (value !== undefined && value !== null && value !== '') {
74586
+ // 优先从 enhancedAllOptions 中查找
74587
+ const item = this.enhancedAllOptions.find(option => option.id === value || option.id === Number(value) || value === 0 && option.id === 0);
74588
+ if (item) {
74589
+ obj[this.enhancedDescriptionKey] = item[this.enhancedDescriptionKey];
74590
+ obj[this.enhancedTitleKey] = item[this.enhancedTitleKey];
74591
+ obj.id = item.id;
74592
+ } else {
74593
+ // 如果从 enhancedAllOptions 中找不到,再从 dataList 中查找
74594
+ this.dataList.forEach(item => {
74595
+ if (value === item.id || value === 0 && item.id === 0) {
74596
+ obj[this.enhancedDescriptionKey] = item[this.enhancedDescriptionKey];
74597
+ obj[this.enhancedTitleKey] = item[this.enhancedTitleKey];
74598
+ obj.id = item.id;
74599
+ }
74600
+ });
74601
+ }
74602
+ } else {
74603
+ obj = null;
74604
+ }
74605
+ }
74606
+ this.$emit('input', value);
74607
+ this.$emit('change', obj);
74608
+ return;
74609
+ }
74370
74610
  if (this.multiple) {
74371
74611
  if (Array.isArray(value)) {
74372
74612
  this.selectedValue = value.filter(v => typeof v !== 'boolean');
@@ -74449,6 +74689,60 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74449
74689
  this.localSuffixInputValue = value;
74450
74690
  this.$emit('suffix-input-change', value);
74451
74691
  this.$emit('update:suffixInputValue', value);
74692
+ },
74693
+ // ******************** enhancedSelect 相关方法 ********************
74694
+ getResult(q) {
74695
+ // 设置加载状态
74696
+ this.loading = true;
74697
+
74698
+ // 触发外部搜索事件,让外部控制数据
74699
+ this.$emit('search', q);
74700
+
74701
+ // 返回 Promise 以满足 remote 的要求
74702
+ return Promise.resolve();
74703
+ },
74704
+ handleEnhancedSelectDefaultValue() {
74705
+ // console.log('001:this.value ==:', this.value)
74706
+ // console.log('002:this.enhancedAllOptions ==:', this.enhancedAllOptions)
74707
+ // 针对 enhancedSelect 类型处理默认值
74708
+ if (this.value !== undefined && this.value !== null && this.value !== '') {
74709
+ // 确保默认值能正确显示
74710
+ this.selectedValue = this.value;
74711
+ if (this.multiple) {
74712
+ // 多选情况:value 是数组
74713
+ if (Array.isArray(this.value) && this.value.length > 0) {
74714
+ // 在 enhancedAllOptions 数组中查找所有对应的选项
74715
+ const items = this.enhancedAllOptions.filter(option => this.value.includes(option.id) || this.value.includes(Number(option.id)) || this.value.includes(0) && option.id === 0);
74716
+ if (items.length > 0) {
74717
+ this.$emit('input', this.value);
74718
+ this.$emit('change', items);
74719
+ }
74720
+ }
74721
+ } else {
74722
+ // 单选情况:value 是单个值
74723
+ // 在 enhancedAllOptions 数组中查找对应的选项
74724
+ const item = this.enhancedAllOptions.find(option => option.id === this.value || option.id === Number(this.value) || this.value === 0 && option.id === 0);
74725
+ if (item) {
74726
+ let obj = {};
74727
+ obj[this.enhancedDescriptionKey] = item[this.enhancedDescriptionKey];
74728
+ obj[this.enhancedTitleKey] = item[this.enhancedTitleKey];
74729
+ obj.id = item.id;
74730
+ this.$emit('input', this.value);
74731
+ this.$emit('change', obj);
74732
+ }
74733
+ }
74734
+ }
74735
+ },
74736
+ handleVisibleChange(visible) {
74737
+ if (this.type === 'enhancedSelect') {
74738
+ if (visible) {
74739
+ // 标记已经打开过
74740
+ this.enhancedSelectOpened = true;
74741
+ // 当下拉框打开时,清空搜索结果
74742
+ this.dataList = [];
74743
+ this.$emit('search', ''); // 触发清空搜索
74744
+ }
74745
+ }
74452
74746
  }
74453
74747
  }
74454
74748
  });
@@ -74464,8 +74758,8 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
74464
74758
  ;
74465
74759
  var ByCommonSelector_component = normalizeComponent(
74466
74760
  common_selector_ByCommonSelectorvue_type_script_lang_js,
74467
- ByCommonSelectorvue_type_template_id_1b8642c2_render,
74468
- ByCommonSelectorvue_type_template_id_1b8642c2_staticRenderFns,
74761
+ ByCommonSelectorvue_type_template_id_fbdd4830_render,
74762
+ ByCommonSelectorvue_type_template_id_fbdd4830_staticRenderFns,
74469
74763
  false,
74470
74764
  null,
74471
74765
  null,
@@ -75404,15 +75698,22 @@ var BatchQuerySelector_component = normalizeComponent(
75404
75698
  ...event,
75405
75699
  item
75406
75700
  });
75701
+ },
75702
+ // 增强选择器搜索事件处理
75703
+ handleEnhancedSearch(query, item) {
75704
+ this.$emit('enhanced-search', {
75705
+ query,
75706
+ item
75707
+ });
75407
75708
  }
75408
75709
  }
75409
75710
  });
75410
75711
  ;// ./src/components/form/form.vue?vue&type=script&lang=js
75411
75712
  /* harmony default export */ var form_formvue_type_script_lang_js = (formvue_type_script_lang_js);
75412
- ;// ./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=5e8c5b90&prod&lang=scss&scoped=true
75713
+ ;// ./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=acf332a6&prod&lang=scss&scoped=true
75413
75714
  // extracted by mini-css-extract-plugin
75414
75715
 
75415
- ;// ./src/components/form/form.vue?vue&type=style&index=0&id=5e8c5b90&prod&lang=scss&scoped=true
75716
+ ;// ./src/components/form/form.vue?vue&type=style&index=0&id=acf332a6&prod&lang=scss&scoped=true
75416
75717
 
75417
75718
  ;// ./src/components/form/form.vue
75418
75719
 
@@ -75425,11 +75726,11 @@ var BatchQuerySelector_component = normalizeComponent(
75425
75726
 
75426
75727
  var form_component = normalizeComponent(
75427
75728
  form_formvue_type_script_lang_js,
75428
- formvue_type_template_id_5e8c5b90_scoped_true_render,
75429
- formvue_type_template_id_5e8c5b90_scoped_true_staticRenderFns,
75729
+ formvue_type_template_id_acf332a6_scoped_true_render,
75730
+ formvue_type_template_id_acf332a6_scoped_true_staticRenderFns,
75430
75731
  false,
75431
75732
  null,
75432
- "5e8c5b90",
75733
+ "acf332a6",
75433
75734
  null
75434
75735
 
75435
75736
  )