@weitutech/by-components 1.1.206 → 1.1.208
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 +210 -51
- package/lib/by-components.umd.js +210 -51
- package/lib/by-components.umd.min.js +1 -1
- package/lib/index.css +1 -1
- package/package.json +1 -1
|
@@ -91060,8 +91060,8 @@ var ByCommonSelector_component = normalizeComponent(
|
|
|
91060
91060
|
)
|
|
91061
91061
|
|
|
91062
91062
|
/* harmony default export */ var ByCommonSelector = (ByCommonSelector_component.exports);
|
|
91063
|
-
;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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=
|
|
91064
|
-
var
|
|
91063
|
+
;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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=6782df62
|
|
91064
|
+
var BatchQuerySelectorvue_type_template_id_6782df62_render = function render() {
|
|
91065
91065
|
var _vm = this,
|
|
91066
91066
|
_c = _vm._self._c;
|
|
91067
91067
|
return _c('div', {
|
|
@@ -91101,24 +91101,32 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_render = function render() {
|
|
|
91101
91101
|
return _c('el-option', {
|
|
91102
91102
|
key: item[_vm.valueKey],
|
|
91103
91103
|
class: {
|
|
91104
|
-
'option-with-desc': _vm.hasDescContent(item)
|
|
91104
|
+
'option-with-desc': _vm.hasDescContent(item),
|
|
91105
|
+
'option-with-alias': _vm.hasAliasContent(item)
|
|
91105
91106
|
},
|
|
91106
91107
|
attrs: {
|
|
91107
91108
|
"label": item[_vm.labelKey],
|
|
91108
91109
|
"value": item[_vm.valueKey],
|
|
91109
91110
|
"disabled": _vm.isOptionDisabled(item)
|
|
91110
91111
|
}
|
|
91111
|
-
}, [_vm.hasDescContent(item) ? [_c('span', {
|
|
91112
|
+
}, [_vm.hasDescContent(item) || _vm.hasAliasContent(item) ? [_c('span', {
|
|
91113
|
+
staticClass: "option-label-wrap"
|
|
91114
|
+
}, [_c('span', {
|
|
91112
91115
|
staticClass: "option-label",
|
|
91113
91116
|
attrs: {
|
|
91114
91117
|
"title": String(item[_vm.labelKey])
|
|
91115
91118
|
}
|
|
91116
|
-
}, [_vm._v(_vm._s(item[_vm.labelKey]))]), _c('span', {
|
|
91119
|
+
}, [_vm._v(_vm._s(item[_vm.labelKey]))]), _vm.hasAliasContent(item) ? _c('span', {
|
|
91120
|
+
staticClass: "option-alias",
|
|
91121
|
+
attrs: {
|
|
91122
|
+
"title": String(item[_vm.aliasKey])
|
|
91123
|
+
}
|
|
91124
|
+
}, [_vm._v(_vm._s(item[_vm.aliasKey]))]) : _vm._e()]), _vm.hasDescContent(item) ? _c('span', {
|
|
91117
91125
|
staticClass: "option-desc",
|
|
91118
91126
|
attrs: {
|
|
91119
91127
|
"title": String(item[_vm.descKey])
|
|
91120
91128
|
}
|
|
91121
|
-
}, [_vm._v(_vm._s(item[_vm.descKey]))])] : _vm._e()], 2);
|
|
91129
|
+
}, [_vm._v(_vm._s(item[_vm.descKey]))]) : _vm._e()] : _vm._e()], 2);
|
|
91122
91130
|
}), _vm.hasMoreOptions ? _c('el-option', {
|
|
91123
91131
|
staticClass: "load-more-option",
|
|
91124
91132
|
attrs: {
|
|
@@ -91158,34 +91166,26 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_render = function render() {
|
|
|
91158
91166
|
staticClass: "popover-title"
|
|
91159
91167
|
}, [_vm._v("批量输入")]), _c('div', {
|
|
91160
91168
|
staticClass: "input-type-selector"
|
|
91161
|
-
},
|
|
91162
|
-
|
|
91163
|
-
|
|
91164
|
-
|
|
91165
|
-
|
|
91166
|
-
value: _vm.inputType,
|
|
91167
|
-
callback: function ($$v) {
|
|
91168
|
-
_vm.inputType = $$v;
|
|
91169
|
-
},
|
|
91170
|
-
expression: "inputType"
|
|
91171
|
-
}
|
|
91172
|
-
}, [_vm._v("ID")]), _c('el-radio', {
|
|
91173
|
-
attrs: {
|
|
91174
|
-
"label": 'name'
|
|
91175
|
-
},
|
|
91176
|
-
model: {
|
|
91177
|
-
value: _vm.inputType,
|
|
91178
|
-
callback: function ($$v) {
|
|
91179
|
-
_vm.inputType = $$v;
|
|
91169
|
+
}, _vm._l(_vm.effectiveBatchInputOptions, function (opt) {
|
|
91170
|
+
return _c('el-radio', {
|
|
91171
|
+
key: opt.value,
|
|
91172
|
+
attrs: {
|
|
91173
|
+
"label": opt.value
|
|
91180
91174
|
},
|
|
91181
|
-
|
|
91182
|
-
|
|
91183
|
-
|
|
91175
|
+
model: {
|
|
91176
|
+
value: _vm.inputType,
|
|
91177
|
+
callback: function ($$v) {
|
|
91178
|
+
_vm.inputType = $$v;
|
|
91179
|
+
},
|
|
91180
|
+
expression: "inputType"
|
|
91181
|
+
}
|
|
91182
|
+
}, [_vm._v(_vm._s(opt.label))]);
|
|
91183
|
+
}), 1), _c('el-input', {
|
|
91184
91184
|
staticClass: "batch-input-textarea",
|
|
91185
91185
|
attrs: {
|
|
91186
91186
|
"type": "textarea",
|
|
91187
91187
|
"rows": 10,
|
|
91188
|
-
"placeholder": _vm.
|
|
91188
|
+
"placeholder": _vm.batchInputPlaceholder
|
|
91189
91189
|
},
|
|
91190
91190
|
model: {
|
|
91191
91191
|
value: _vm.batchInputContent,
|
|
@@ -91232,7 +91232,7 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_render = function render() {
|
|
|
91232
91232
|
}
|
|
91233
91233
|
})])], 1) : _vm._e()], 1)]);
|
|
91234
91234
|
};
|
|
91235
|
-
var
|
|
91235
|
+
var BatchQuerySelectorvue_type_template_id_6782df62_staticRenderFns = [];
|
|
91236
91236
|
|
|
91237
91237
|
;// ./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
|
|
91238
91238
|
|
|
@@ -91247,6 +91247,7 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91247
91247
|
|
|
91248
91248
|
|
|
91249
91249
|
|
|
91250
|
+
|
|
91250
91251
|
/* harmony default export */ var BatchQuerySelectorvue_type_script_lang_js = ({
|
|
91251
91252
|
name: 'BatchQuerySelector',
|
|
91252
91253
|
props: {
|
|
@@ -91281,7 +91282,18 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91281
91282
|
default: 'name'
|
|
91282
91283
|
},
|
|
91283
91284
|
/**
|
|
91284
|
-
*
|
|
91285
|
+
* 别名字段名(拼接在名称后展示)
|
|
91286
|
+
* 配置后,下拉选项会在名称(labelKey)右侧紧邻位置拼接展示该字段对应的内容;
|
|
91287
|
+
* 仅影响下拉项的显示,不会改变 labelKey 字段本身、选中后 tag 的展示文本,
|
|
91288
|
+
* 也不会影响批量输入按"名称"匹配的逻辑(仍以 labelKey 精确匹配);
|
|
91289
|
+
* 该字段默认不参与搜索匹配,如需让别名参与搜索,请将字段名同时加入 extraSearchKeys
|
|
91290
|
+
*/
|
|
91291
|
+
aliasKey: {
|
|
91292
|
+
type: String,
|
|
91293
|
+
default: 'alias'
|
|
91294
|
+
},
|
|
91295
|
+
/**
|
|
91296
|
+
* 描述字段名(显示在选项右侧)
|
|
91285
91297
|
* 配置后,下拉选项会在名称右侧展示该字段对应的描述内容;
|
|
91286
91298
|
* 该字段默认不参与搜索匹配,如需让描述参与搜索,请将字段名同时加入 extraSearchKeys
|
|
91287
91299
|
*/
|
|
@@ -91359,6 +91371,19 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91359
91371
|
type: Function,
|
|
91360
91372
|
default: null
|
|
91361
91373
|
},
|
|
91374
|
+
/**
|
|
91375
|
+
* 自定义批量输入项配置
|
|
91376
|
+
* 数组结构:[{ label: '邮箱', field: 'email' }, { label: '工号', field: 'jobNumber' }]
|
|
91377
|
+
* - 未配置(或空数组、全部不合法)时,保持默认行为不变:批量输入弹窗展示固定的「ID」「名称」两个选项;
|
|
91378
|
+
* - 配置后,会用配置项替换默认的「ID」「名称」单选按钮,每一项展示 label,按对应 field 进行精确匹配(忽略大小写、忽略首尾空白),
|
|
91379
|
+
* 匹配逻辑与原 ID/名称完全一致,只是参与匹配的字段由用户指定;
|
|
91380
|
+
* - 若同时配置了 customMapFunction,customMapFunction 收到的第二个参数 inputType 将是当前选中项的 field 值;
|
|
91381
|
+
* 默认场景下(未配置本属性)该参数仍为 'id' / 'name',与既有用法完全兼容。
|
|
91382
|
+
*/
|
|
91383
|
+
batchInputOptions: {
|
|
91384
|
+
type: Array,
|
|
91385
|
+
default: () => []
|
|
91386
|
+
},
|
|
91362
91387
|
// 每页加载数量
|
|
91363
91388
|
pageSize: {
|
|
91364
91389
|
type: Number,
|
|
@@ -91421,6 +91446,46 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91421
91446
|
searchFieldKeys() {
|
|
91422
91447
|
const extras = Array.isArray(this.extraSearchKeys) ? this.extraSearchKeys.filter(k => typeof k === 'string' && k.trim() !== '') : [];
|
|
91423
91448
|
return [...new Set([this.labelKey, this.valueKey, ...extras])];
|
|
91449
|
+
},
|
|
91450
|
+
/**
|
|
91451
|
+
* 实际生效的批量输入项配置:
|
|
91452
|
+
* - 当 batchInputOptions 提供了合法配置时,使用用户配置(value 即为 field 字段名);
|
|
91453
|
+
* - 否则回退为默认的「ID / 名称」两项,值仍为 'id' / 'name',确保既有行为完全不变。
|
|
91454
|
+
*/
|
|
91455
|
+
effectiveBatchInputOptions() {
|
|
91456
|
+
const list = Array.isArray(this.batchInputOptions) ? this.batchInputOptions : [];
|
|
91457
|
+
const normalized = list.filter(o => o && typeof o.field === 'string' && o.field.trim() !== '').map(o => ({
|
|
91458
|
+
label: o.label != null && String(o.label).trim() !== '' ? String(o.label) : o.field,
|
|
91459
|
+
value: o.field,
|
|
91460
|
+
field: o.field
|
|
91461
|
+
}));
|
|
91462
|
+
if (normalized.length > 0) return normalized;
|
|
91463
|
+
return [{
|
|
91464
|
+
label: 'ID',
|
|
91465
|
+
value: 'id',
|
|
91466
|
+
field: this.valueKey
|
|
91467
|
+
}, {
|
|
91468
|
+
label: '名称',
|
|
91469
|
+
value: 'name',
|
|
91470
|
+
field: this.labelKey
|
|
91471
|
+
}];
|
|
91472
|
+
},
|
|
91473
|
+
/** 当前选中的批量输入项对应的真实匹配字段 */
|
|
91474
|
+
currentBatchInputField() {
|
|
91475
|
+
const list = this.effectiveBatchInputOptions;
|
|
91476
|
+
const found = list.find(o => o.value === this.inputType);
|
|
91477
|
+
return found ? found.field : list[0] ? list[0].field : '';
|
|
91478
|
+
},
|
|
91479
|
+
/** 当前选中的批量输入项对应的展示文本(用于 placeholder) */
|
|
91480
|
+
currentBatchInputLabel() {
|
|
91481
|
+
const list = this.effectiveBatchInputOptions;
|
|
91482
|
+
const found = list.find(o => o.value === this.inputType);
|
|
91483
|
+
return found ? found.label : list[0] ? list[0].label : '';
|
|
91484
|
+
},
|
|
91485
|
+
/** 批量输入文本框 placeholder */
|
|
91486
|
+
batchInputPlaceholder() {
|
|
91487
|
+
const label = this.currentBatchInputLabel || '';
|
|
91488
|
+
return `请输入${label},多个${label}用换行、逗号、分号、空格分隔`;
|
|
91424
91489
|
}
|
|
91425
91490
|
},
|
|
91426
91491
|
watch: {
|
|
@@ -91451,6 +91516,19 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91451
91516
|
} else {
|
|
91452
91517
|
this.removeScrollListener();
|
|
91453
91518
|
}
|
|
91519
|
+
},
|
|
91520
|
+
/**
|
|
91521
|
+
* 当批量输入项配置变化(或首次解析完成)时,
|
|
91522
|
+
* 若当前 inputType 已不在可选列表中,则回退到第一项,避免 radio 选中态丢失。
|
|
91523
|
+
*/
|
|
91524
|
+
effectiveBatchInputOptions: {
|
|
91525
|
+
handler(list) {
|
|
91526
|
+
if (!Array.isArray(list) || list.length === 0) return;
|
|
91527
|
+
if (!list.some(o => o.value === this.inputType)) {
|
|
91528
|
+
this.inputType = list[0].value;
|
|
91529
|
+
}
|
|
91530
|
+
},
|
|
91531
|
+
immediate: true
|
|
91454
91532
|
}
|
|
91455
91533
|
},
|
|
91456
91534
|
created() {
|
|
@@ -91466,6 +91544,12 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91466
91544
|
const val = option[this.descKey];
|
|
91467
91545
|
return val !== undefined && val !== null && String(val).trim() !== '';
|
|
91468
91546
|
},
|
|
91547
|
+
// 判断选项是否有可展示的别名内容(拼接在名称后)
|
|
91548
|
+
hasAliasContent(option) {
|
|
91549
|
+
if (!this.aliasKey) return false;
|
|
91550
|
+
const val = option[this.aliasKey];
|
|
91551
|
+
return val !== undefined && val !== null && String(val).trim() !== '';
|
|
91552
|
+
},
|
|
91469
91553
|
// 判断选项是否禁用
|
|
91470
91554
|
isOptionDisabled(option) {
|
|
91471
91555
|
// 如果提供了自定义禁用方法,则使用自定义方法判断
|
|
@@ -91679,8 +91763,10 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91679
91763
|
// 获取匹配的完整选项对象
|
|
91680
91764
|
matchedItems = this.optionsList.filter(item => matchedValues.includes(item[this.valueKey]));
|
|
91681
91765
|
} else {
|
|
91682
|
-
//
|
|
91683
|
-
|
|
91766
|
+
// 默认映射逻辑:按当前选中的批量输入项对应的字段进行精确匹配(忽略大小写、忽略首尾空白)
|
|
91767
|
+
// - 默认场景下 inputType 为 'id'/'name',searchKey 解析为 valueKey/labelKey,行为与原先一致;
|
|
91768
|
+
// - 配置了 batchInputOptions 时,searchKey 即为用户指定的 field 字段。
|
|
91769
|
+
const searchKey = this.currentBatchInputField;
|
|
91684
91770
|
|
|
91685
91771
|
// 从完整的 optionsList 中查找精确命中的项
|
|
91686
91772
|
matchedItems = this.optionsList.filter(item => {
|
|
@@ -91764,8 +91850,8 @@ var BatchQuerySelectorvue_type_template_id_16c8bfda_staticRenderFns = [];
|
|
|
91764
91850
|
;
|
|
91765
91851
|
var BatchQuerySelector_component = normalizeComponent(
|
|
91766
91852
|
batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
|
|
91767
|
-
|
|
91768
|
-
|
|
91853
|
+
BatchQuerySelectorvue_type_template_id_6782df62_render,
|
|
91854
|
+
BatchQuerySelectorvue_type_template_id_6782df62_staticRenderFns,
|
|
91769
91855
|
false,
|
|
91770
91856
|
null,
|
|
91771
91857
|
null,
|
|
@@ -97710,8 +97796,8 @@ var ByCardView_component = normalizeComponent(
|
|
|
97710
97796
|
)
|
|
97711
97797
|
|
|
97712
97798
|
/* harmony default export */ var ByCardView = (ByCardView_component.exports);
|
|
97713
|
-
;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/card-selector/ByCardSelector.vue?vue&type=template&id=
|
|
97714
|
-
var
|
|
97799
|
+
;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8cd600e8-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/card-selector/ByCardSelector.vue?vue&type=template&id=43f85144
|
|
97800
|
+
var ByCardSelectorvue_type_template_id_43f85144_render = function render() {
|
|
97715
97801
|
var _vm = this,
|
|
97716
97802
|
_c = _vm._self._c;
|
|
97717
97803
|
return _c('div', {
|
|
@@ -97720,12 +97806,12 @@ var ByCardSelectorvue_type_template_id_0a667b47_render = function render() {
|
|
|
97720
97806
|
'is-disabled': _vm.disabled,
|
|
97721
97807
|
'by-card-selector--no-check': !_vm.showCheckmark
|
|
97722
97808
|
}],
|
|
97723
|
-
style: _vm.
|
|
97809
|
+
style: _vm.rootStyle,
|
|
97724
97810
|
attrs: {
|
|
97725
97811
|
"role": "listbox",
|
|
97726
97812
|
"aria-multiselectable": _vm.multiple ? 'true' : 'false'
|
|
97727
97813
|
}
|
|
97728
|
-
}, _vm._l(_vm.options, function (item, index) {
|
|
97814
|
+
}, [_vm._l(_vm.options, function (item, index) {
|
|
97729
97815
|
return _c('div', {
|
|
97730
97816
|
key: _vm.optionKey(item, index),
|
|
97731
97817
|
staticClass: "by-card-selector__card",
|
|
@@ -97825,9 +97911,29 @@ var ByCardSelectorvue_type_template_id_0a667b47_render = function render() {
|
|
|
97825
97911
|
}, [_vm.isSelected(item) ? _c('i', {
|
|
97826
97912
|
staticClass: "el-icon-check by-card-selector__check-icon"
|
|
97827
97913
|
}) : _vm._e()]) : _vm._e()])], 2);
|
|
97828
|
-
}),
|
|
97914
|
+
}), _vm.hasGroupTooltip ? _c('div', {
|
|
97915
|
+
staticClass: "by-card-selector__suffix",
|
|
97916
|
+
attrs: {
|
|
97917
|
+
"role": "note"
|
|
97918
|
+
}
|
|
97919
|
+
}, [_c('el-tooltip', {
|
|
97920
|
+
attrs: {
|
|
97921
|
+
"content": _vm.groupTooltipText,
|
|
97922
|
+
"placement": "top",
|
|
97923
|
+
"open-delay": 300
|
|
97924
|
+
}
|
|
97925
|
+
}, [_c('span', {
|
|
97926
|
+
staticClass: "by-card-selector__suffix-trigger",
|
|
97927
|
+
on: {
|
|
97928
|
+
"click": function ($event) {
|
|
97929
|
+
$event.stopPropagation();
|
|
97930
|
+
}
|
|
97931
|
+
}
|
|
97932
|
+
}, [_c('i', {
|
|
97933
|
+
staticClass: "el-icon-question"
|
|
97934
|
+
})])])], 1) : _vm._e()], 2);
|
|
97829
97935
|
};
|
|
97830
|
-
var
|
|
97936
|
+
var ByCardSelectorvue_type_template_id_43f85144_staticRenderFns = [];
|
|
97831
97937
|
|
|
97832
97938
|
;// ./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/card-selector/ByCardSelector.vue?vue&type=script&lang=js
|
|
97833
97939
|
|
|
@@ -97850,6 +97956,9 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97850
97956
|
* @example
|
|
97851
97957
|
* <by-card-selector v-model="id" :options="list" />
|
|
97852
97958
|
* <by-card-selector v-model="ids" :options="list" multiple />
|
|
97959
|
+
* <by-card-selector v-model="id" :options="list" :card-width="280" />
|
|
97960
|
+
* <by-card-selector v-model="id" :options="list" :show-checkmark="true" />
|
|
97961
|
+
* <by-card-selector v-model="id" :options="list" tooltips="整组说明文案" />
|
|
97853
97962
|
*/
|
|
97854
97963
|
/* harmony default export */ var ByCardSelectorvue_type_script_lang_js = ({
|
|
97855
97964
|
name: 'ByCardSelector',
|
|
@@ -97879,12 +97988,20 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97879
97988
|
type: String,
|
|
97880
97989
|
default: '320px'
|
|
97881
97990
|
},
|
|
97882
|
-
/**
|
|
97991
|
+
/** 卡片尺寸(内边距、图标与字号等);卡片列宽默认由 size 与样式表决定 */
|
|
97883
97992
|
size: {
|
|
97884
97993
|
type: String,
|
|
97885
97994
|
default: 'default',
|
|
97886
97995
|
validator: v => ['large', 'default', 'small'].includes(v)
|
|
97887
97996
|
},
|
|
97997
|
+
/**
|
|
97998
|
+
* 每张卡片宽度(像素,组件级统一)。未设置时列宽由 size 对应样式决定。
|
|
97999
|
+
* 合法范围 100–600,小于 100 按 100、大于 600 按 600;可传数字或字符串(如 240、"320px")。
|
|
98000
|
+
*/
|
|
98001
|
+
cardWidth: {
|
|
98002
|
+
type: [Number, String],
|
|
98003
|
+
default: null
|
|
98004
|
+
},
|
|
97888
98005
|
/** 整组禁用 */
|
|
97889
98006
|
disabled: {
|
|
97890
98007
|
type: Boolean,
|
|
@@ -97910,10 +98027,18 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97910
98027
|
type: Number,
|
|
97911
98028
|
default: 3
|
|
97912
98029
|
},
|
|
97913
|
-
/**
|
|
98030
|
+
/**
|
|
98031
|
+
* 组件级说明:有内容时在所有选项之后展示问号,悬停显示提示(与单项内的 tooltip 字段无关)。
|
|
98032
|
+
* 支持字符串或数字;仅空白则整组不展示该问号。
|
|
98033
|
+
*/
|
|
98034
|
+
tooltips: {
|
|
98035
|
+
type: [String, Number],
|
|
98036
|
+
default: ''
|
|
98037
|
+
},
|
|
98038
|
+
/** 是否在卡片右侧展示圆形打钩选中指示,默认不展示 */
|
|
97914
98039
|
showCheckmark: {
|
|
97915
98040
|
type: Boolean,
|
|
97916
|
-
default:
|
|
98041
|
+
default: false
|
|
97917
98042
|
}
|
|
97918
98043
|
},
|
|
97919
98044
|
data() {
|
|
@@ -97931,17 +98056,51 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97931
98056
|
keyField() {
|
|
97932
98057
|
return this.optionKeyField || this.mergedOptionProps.value;
|
|
97933
98058
|
},
|
|
97934
|
-
|
|
97935
|
-
|
|
97936
|
-
|
|
97937
|
-
|
|
97938
|
-
|
|
98059
|
+
/** 解析后的卡片宽度(px),无效或未传时为 null */
|
|
98060
|
+
resolvedCardWidthPx() {
|
|
98061
|
+
const raw = this.cardWidth;
|
|
98062
|
+
if (raw == null || raw === '') return null;
|
|
98063
|
+
let n;
|
|
98064
|
+
if (typeof raw === 'number' && Number.isFinite(raw)) {
|
|
98065
|
+
n = raw;
|
|
98066
|
+
} else if (typeof raw === 'string') {
|
|
98067
|
+
const s = String(raw).trim().replace(/px$/i, '');
|
|
98068
|
+
n = parseFloat(s);
|
|
98069
|
+
} else {
|
|
98070
|
+
return null;
|
|
98071
|
+
}
|
|
98072
|
+
if (!Number.isFinite(n)) return null;
|
|
98073
|
+
const MIN = 100;
|
|
98074
|
+
const MAX = 600;
|
|
98075
|
+
return Math.min(MAX, Math.max(MIN, Math.round(n)));
|
|
98076
|
+
},
|
|
98077
|
+
/** 根节点样式:纵向高度 + 可选自定义卡片宽度(CSS 变量) */
|
|
98078
|
+
rootStyle() {
|
|
98079
|
+
const style = {};
|
|
98080
|
+
if (this.direction === 'vertical') {
|
|
98081
|
+
style.maxHeight = this.verticalMaxHeight;
|
|
98082
|
+
}
|
|
98083
|
+
if (this.resolvedCardWidthPx != null) {
|
|
98084
|
+
style['--by-card-selector-min'] = `${this.resolvedCardWidthPx}px`;
|
|
98085
|
+
}
|
|
98086
|
+
return style;
|
|
97939
98087
|
},
|
|
97940
98088
|
hasCardSlot() {
|
|
97941
98089
|
return Boolean(this.$scopedSlots && this.$scopedSlots.card || this.$slots && this.$slots.card);
|
|
97942
98090
|
},
|
|
97943
98091
|
hasIconSlot() {
|
|
97944
98092
|
return Boolean(this.$scopedSlots && this.$scopedSlots.icon || this.$slots && this.$slots.icon);
|
|
98093
|
+
},
|
|
98094
|
+
/** 是否展示组件级尾部问号 */
|
|
98095
|
+
hasGroupTooltip() {
|
|
98096
|
+
const t = this.tooltips;
|
|
98097
|
+
if (t == null || t === '') return false;
|
|
98098
|
+
return String(t).trim().length > 0;
|
|
98099
|
+
},
|
|
98100
|
+
/** 传给 el-tooltip 的纯文本 */
|
|
98101
|
+
groupTooltipText() {
|
|
98102
|
+
if (!this.hasGroupTooltip) return '';
|
|
98103
|
+
return String(this.tooltips).trim();
|
|
97945
98104
|
}
|
|
97946
98105
|
},
|
|
97947
98106
|
watch: {
|
|
@@ -98130,8 +98289,8 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98130
98289
|
;
|
|
98131
98290
|
var ByCardSelector_component = normalizeComponent(
|
|
98132
98291
|
card_selector_ByCardSelectorvue_type_script_lang_js,
|
|
98133
|
-
|
|
98134
|
-
|
|
98292
|
+
ByCardSelectorvue_type_template_id_43f85144_render,
|
|
98293
|
+
ByCardSelectorvue_type_template_id_43f85144_staticRenderFns,
|
|
98135
98294
|
false,
|
|
98136
98295
|
null,
|
|
98137
98296
|
null,
|