@weitutech/by-components 1.1.208 → 1.1.210
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 +71 -20
- package/lib/by-components.umd.js +71 -20
- package/lib/by-components.umd.min.js +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=240853ac
|
|
91064
|
+
var BatchQuerySelectorvue_type_template_id_240853ac_render = function render() {
|
|
91065
91065
|
var _vm = this,
|
|
91066
91066
|
_c = _vm._self._c;
|
|
91067
91067
|
return _c('div', {
|
|
@@ -91121,7 +91121,7 @@ var BatchQuerySelectorvue_type_template_id_6782df62_render = function render() {
|
|
|
91121
91121
|
attrs: {
|
|
91122
91122
|
"title": String(item[_vm.aliasKey])
|
|
91123
91123
|
}
|
|
91124
|
-
}, [_vm._v(_vm._s(item[_vm.aliasKey]))]) : _vm._e()]), _vm.hasDescContent(item) ? _c('span', {
|
|
91124
|
+
}, [_vm._v(_vm._s('(' + item[_vm.aliasKey] + ')'))]) : _vm._e()]), _vm.hasDescContent(item) ? _c('span', {
|
|
91125
91125
|
staticClass: "option-desc",
|
|
91126
91126
|
attrs: {
|
|
91127
91127
|
"title": String(item[_vm.descKey])
|
|
@@ -91232,7 +91232,7 @@ var BatchQuerySelectorvue_type_template_id_6782df62_render = function render() {
|
|
|
91232
91232
|
}
|
|
91233
91233
|
})])], 1) : _vm._e()], 1)]);
|
|
91234
91234
|
};
|
|
91235
|
-
var
|
|
91235
|
+
var BatchQuerySelectorvue_type_template_id_240853ac_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
|
|
|
@@ -91850,8 +91850,8 @@ var BatchQuerySelectorvue_type_template_id_6782df62_staticRenderFns = [];
|
|
|
91850
91850
|
;
|
|
91851
91851
|
var BatchQuerySelector_component = normalizeComponent(
|
|
91852
91852
|
batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
|
|
91853
|
-
|
|
91854
|
-
|
|
91853
|
+
BatchQuerySelectorvue_type_template_id_240853ac_render,
|
|
91854
|
+
BatchQuerySelectorvue_type_template_id_240853ac_staticRenderFns,
|
|
91855
91855
|
false,
|
|
91856
91856
|
null,
|
|
91857
91857
|
null,
|
|
@@ -97796,8 +97796,8 @@ var ByCardView_component = normalizeComponent(
|
|
|
97796
97796
|
)
|
|
97797
97797
|
|
|
97798
97798
|
/* harmony default export */ var ByCardView = (ByCardView_component.exports);
|
|
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=
|
|
97800
|
-
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=681372fb
|
|
97800
|
+
var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
|
|
97801
97801
|
var _vm = this,
|
|
97802
97802
|
_c = _vm._self._c;
|
|
97803
97803
|
return _c('div', {
|
|
@@ -97933,7 +97933,7 @@ var ByCardSelectorvue_type_template_id_43f85144_render = function render() {
|
|
|
97933
97933
|
staticClass: "el-icon-question"
|
|
97934
97934
|
})])])], 1) : _vm._e()], 2);
|
|
97935
97935
|
};
|
|
97936
|
-
var
|
|
97936
|
+
var ByCardSelectorvue_type_template_id_681372fb_staticRenderFns = [];
|
|
97937
97937
|
|
|
97938
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
|
|
97939
97939
|
|
|
@@ -97950,15 +97950,31 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97950
97950
|
tags: 'tags'
|
|
97951
97951
|
});
|
|
97952
97952
|
|
|
97953
|
+
/**
|
|
97954
|
+
* 业务约定的字段回退:当业务方未显式配置 optionProps.label / optionProps.value,
|
|
97955
|
+
* 且数据项里不存在对应字段时,按下表自动回退;用于同时兼容 `label/value` 与 `id/name` 两种数据约定。
|
|
97956
|
+
*/
|
|
97957
|
+
const LABEL_FALLBACK_FIELD = 'name';
|
|
97958
|
+
const VALUE_FALLBACK_FIELD = 'id';
|
|
97959
|
+
|
|
97953
97960
|
/**
|
|
97954
97961
|
* 卡片选择器:单选/多选 + 卡片式布局,行为类似 el-radio-group / el-checkbox-group。
|
|
97955
97962
|
*
|
|
97963
|
+
* 字段约定:
|
|
97964
|
+
* - 默认字段映射为 `{ value, label, description, icon, tooltip, tags }`;
|
|
97965
|
+
* - 业务直接传 `[{value, label}]` 形态时按默认字段读取;
|
|
97966
|
+
* - 业务直接传 `[{id, name}]` 形态时(未显式配置 optionProps.label / optionProps.value),
|
|
97967
|
+
* 组件会自动按 label → name、value → id 进行回退;
|
|
97968
|
+
* - 业务通过 optionProps 显式指定了 label/value 字段名时(即便值与默认相同),按显式配置严格读取,不再触发回退。
|
|
97969
|
+
*
|
|
97956
97970
|
* @example
|
|
97957
97971
|
* <by-card-selector v-model="id" :options="list" />
|
|
97958
97972
|
* <by-card-selector v-model="ids" :options="list" multiple />
|
|
97959
97973
|
* <by-card-selector v-model="id" :options="list" :card-width="280" />
|
|
97960
|
-
* <by-card-selector v-model="id" :options="list" :show-checkmark="
|
|
97974
|
+
* <by-card-selector v-model="id" :options="list" :show-checkmark="false" />
|
|
97961
97975
|
* <by-card-selector v-model="id" :options="list" tooltips="整组说明文案" />
|
|
97976
|
+
* <!-- 业务使用 id/name 形态时无需任何额外配置 -->
|
|
97977
|
+
* <by-card-selector v-model="id" :options="[{ id: 1, name: 'A' }, { id: 2, name: 'B' }]" />
|
|
97962
97978
|
*/
|
|
97963
97979
|
/* harmony default export */ var ByCardSelectorvue_type_script_lang_js = ({
|
|
97964
97980
|
name: 'ByCardSelector',
|
|
@@ -98007,7 +98023,13 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98007
98023
|
type: Boolean,
|
|
98008
98024
|
default: false
|
|
98009
98025
|
},
|
|
98010
|
-
/**
|
|
98026
|
+
/**
|
|
98027
|
+
* 选项字段映射,默认 value / label / description / icon / tooltip / tags。
|
|
98028
|
+
* - 仅显式覆盖部分字段时,未覆盖字段保持默认;
|
|
98029
|
+
* - 未显式配置 label 时,组件会在数据项缺少 `label` 字段的情况下自动回退到 `name`;
|
|
98030
|
+
* - 未显式配置 value 时,同理回退到 `id`;
|
|
98031
|
+
* - 显式配置(即便值与默认相同,如 `{ label: 'label', value: 'value' }`)会关闭对应字段的自动回退。
|
|
98032
|
+
*/
|
|
98011
98033
|
optionProps: {
|
|
98012
98034
|
type: Object,
|
|
98013
98035
|
default: () => ({})
|
|
@@ -98035,10 +98057,10 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98035
98057
|
type: [String, Number],
|
|
98036
98058
|
default: ''
|
|
98037
98059
|
},
|
|
98038
|
-
/**
|
|
98060
|
+
/** 是否在卡片右侧展示圆形打钩选中指示,默认展示;如不需要可显式设为 false */
|
|
98039
98061
|
showCheckmark: {
|
|
98040
98062
|
type: Boolean,
|
|
98041
|
-
default:
|
|
98063
|
+
default: true
|
|
98042
98064
|
}
|
|
98043
98065
|
},
|
|
98044
98066
|
data() {
|
|
@@ -98053,8 +98075,21 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98053
98075
|
...this.optionProps
|
|
98054
98076
|
};
|
|
98055
98077
|
},
|
|
98056
|
-
|
|
98057
|
-
|
|
98078
|
+
/**
|
|
98079
|
+
* 当业务方未显式配置 optionProps.label 时启用 label → name 回退;
|
|
98080
|
+
* 显式配置则关闭回退(严格使用业务方指定的字段)。
|
|
98081
|
+
*/
|
|
98082
|
+
labelFallbackField() {
|
|
98083
|
+
if (this.optionProps && this.optionProps.label !== undefined) return '';
|
|
98084
|
+
return LABEL_FALLBACK_FIELD;
|
|
98085
|
+
},
|
|
98086
|
+
/**
|
|
98087
|
+
* 当业务方未显式配置 optionProps.value 时启用 value → id 回退;
|
|
98088
|
+
* 显式配置则关闭回退。
|
|
98089
|
+
*/
|
|
98090
|
+
valueFallbackField() {
|
|
98091
|
+
if (this.optionProps && this.optionProps.value !== undefined) return '';
|
|
98092
|
+
return VALUE_FALLBACK_FIELD;
|
|
98058
98093
|
},
|
|
98059
98094
|
/** 解析后的卡片宽度(px),无效或未传时为 null */
|
|
98060
98095
|
resolvedCardWidthPx() {
|
|
@@ -98121,16 +98156,32 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98121
98156
|
if (obj == null || key == null || key === '') return undefined;
|
|
98122
98157
|
return obj[key];
|
|
98123
98158
|
},
|
|
98159
|
+
/**
|
|
98160
|
+
* 取字段值,主键 `key` 在对象上不存在时回退到 `fallbackKey`。
|
|
98161
|
+
* 仅以 hasOwnProperty 判断字段「是否存在」,因此业务方有意置 null / '' 不会被覆盖。
|
|
98162
|
+
*/
|
|
98163
|
+
pickWithFallback(obj, key, fallbackKey) {
|
|
98164
|
+
if (obj == null) return undefined;
|
|
98165
|
+
if (key && Object.prototype.hasOwnProperty.call(obj, key)) return obj[key];
|
|
98166
|
+
if (fallbackKey && Object.prototype.hasOwnProperty.call(obj, fallbackKey)) return obj[fallbackKey];
|
|
98167
|
+
return undefined;
|
|
98168
|
+
},
|
|
98124
98169
|
optionKey(item, index) {
|
|
98125
|
-
|
|
98170
|
+
// 显式 optionKeyField 优先按指定字段取键;否则复用 optionValue(带 id 回退)保证 :key 在 value/id 两种约定下都稳定
|
|
98171
|
+
let v;
|
|
98172
|
+
if (this.optionKeyField) {
|
|
98173
|
+
v = this.pick(item, this.optionKeyField);
|
|
98174
|
+
} else {
|
|
98175
|
+
v = this.optionValue(item);
|
|
98176
|
+
}
|
|
98126
98177
|
if (v !== undefined && v !== null) return v;
|
|
98127
98178
|
return index;
|
|
98128
98179
|
},
|
|
98129
98180
|
optionValue(item) {
|
|
98130
|
-
return this.
|
|
98181
|
+
return this.pickWithFallback(item, this.mergedOptionProps.value, this.valueFallbackField);
|
|
98131
98182
|
},
|
|
98132
98183
|
optionLabel(item) {
|
|
98133
|
-
const v = this.
|
|
98184
|
+
const v = this.pickWithFallback(item, this.mergedOptionProps.label, this.labelFallbackField);
|
|
98134
98185
|
return v != null && v !== '' ? String(v) : '';
|
|
98135
98186
|
},
|
|
98136
98187
|
optionDescription(item) {
|
|
@@ -98289,8 +98340,8 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98289
98340
|
;
|
|
98290
98341
|
var ByCardSelector_component = normalizeComponent(
|
|
98291
98342
|
card_selector_ByCardSelectorvue_type_script_lang_js,
|
|
98292
|
-
|
|
98293
|
-
|
|
98343
|
+
ByCardSelectorvue_type_template_id_681372fb_render,
|
|
98344
|
+
ByCardSelectorvue_type_template_id_681372fb_staticRenderFns,
|
|
98294
98345
|
false,
|
|
98295
98346
|
null,
|
|
98296
98347
|
null,
|
package/lib/by-components.umd.js
CHANGED
|
@@ -91070,8 +91070,8 @@ var ByCommonSelector_component = normalizeComponent(
|
|
|
91070
91070
|
)
|
|
91071
91071
|
|
|
91072
91072
|
/* harmony default export */ var ByCommonSelector = (ByCommonSelector_component.exports);
|
|
91073
|
-
;// ./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-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=
|
|
91074
|
-
var
|
|
91073
|
+
;// ./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-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=240853ac
|
|
91074
|
+
var BatchQuerySelectorvue_type_template_id_240853ac_render = function render() {
|
|
91075
91075
|
var _vm = this,
|
|
91076
91076
|
_c = _vm._self._c;
|
|
91077
91077
|
return _c('div', {
|
|
@@ -91131,7 +91131,7 @@ var BatchQuerySelectorvue_type_template_id_6782df62_render = function render() {
|
|
|
91131
91131
|
attrs: {
|
|
91132
91132
|
"title": String(item[_vm.aliasKey])
|
|
91133
91133
|
}
|
|
91134
|
-
}, [_vm._v(_vm._s(item[_vm.aliasKey]))]) : _vm._e()]), _vm.hasDescContent(item) ? _c('span', {
|
|
91134
|
+
}, [_vm._v(_vm._s('(' + item[_vm.aliasKey] + ')'))]) : _vm._e()]), _vm.hasDescContent(item) ? _c('span', {
|
|
91135
91135
|
staticClass: "option-desc",
|
|
91136
91136
|
attrs: {
|
|
91137
91137
|
"title": String(item[_vm.descKey])
|
|
@@ -91242,7 +91242,7 @@ var BatchQuerySelectorvue_type_template_id_6782df62_render = function render() {
|
|
|
91242
91242
|
}
|
|
91243
91243
|
})])], 1) : _vm._e()], 1)]);
|
|
91244
91244
|
};
|
|
91245
|
-
var
|
|
91245
|
+
var BatchQuerySelectorvue_type_template_id_240853ac_staticRenderFns = [];
|
|
91246
91246
|
|
|
91247
91247
|
;// ./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
|
|
91248
91248
|
|
|
@@ -91860,8 +91860,8 @@ var BatchQuerySelectorvue_type_template_id_6782df62_staticRenderFns = [];
|
|
|
91860
91860
|
;
|
|
91861
91861
|
var BatchQuerySelector_component = normalizeComponent(
|
|
91862
91862
|
batch_query_selector_BatchQuerySelectorvue_type_script_lang_js,
|
|
91863
|
-
|
|
91864
|
-
|
|
91863
|
+
BatchQuerySelectorvue_type_template_id_240853ac_render,
|
|
91864
|
+
BatchQuerySelectorvue_type_template_id_240853ac_staticRenderFns,
|
|
91865
91865
|
false,
|
|
91866
91866
|
null,
|
|
91867
91867
|
null,
|
|
@@ -97806,8 +97806,8 @@ var ByCardView_component = normalizeComponent(
|
|
|
97806
97806
|
)
|
|
97807
97807
|
|
|
97808
97808
|
/* harmony default export */ var ByCardView = (ByCardView_component.exports);
|
|
97809
|
-
;// ./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-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/card-selector/ByCardSelector.vue?vue&type=template&id=
|
|
97810
|
-
var
|
|
97809
|
+
;// ./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-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/card-selector/ByCardSelector.vue?vue&type=template&id=681372fb
|
|
97810
|
+
var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
|
|
97811
97811
|
var _vm = this,
|
|
97812
97812
|
_c = _vm._self._c;
|
|
97813
97813
|
return _c('div', {
|
|
@@ -97943,7 +97943,7 @@ var ByCardSelectorvue_type_template_id_43f85144_render = function render() {
|
|
|
97943
97943
|
staticClass: "el-icon-question"
|
|
97944
97944
|
})])])], 1) : _vm._e()], 2);
|
|
97945
97945
|
};
|
|
97946
|
-
var
|
|
97946
|
+
var ByCardSelectorvue_type_template_id_681372fb_staticRenderFns = [];
|
|
97947
97947
|
|
|
97948
97948
|
;// ./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/card-selector/ByCardSelector.vue?vue&type=script&lang=js
|
|
97949
97949
|
|
|
@@ -97960,15 +97960,31 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
97960
97960
|
tags: 'tags'
|
|
97961
97961
|
});
|
|
97962
97962
|
|
|
97963
|
+
/**
|
|
97964
|
+
* 业务约定的字段回退:当业务方未显式配置 optionProps.label / optionProps.value,
|
|
97965
|
+
* 且数据项里不存在对应字段时,按下表自动回退;用于同时兼容 `label/value` 与 `id/name` 两种数据约定。
|
|
97966
|
+
*/
|
|
97967
|
+
const LABEL_FALLBACK_FIELD = 'name';
|
|
97968
|
+
const VALUE_FALLBACK_FIELD = 'id';
|
|
97969
|
+
|
|
97963
97970
|
/**
|
|
97964
97971
|
* 卡片选择器:单选/多选 + 卡片式布局,行为类似 el-radio-group / el-checkbox-group。
|
|
97965
97972
|
*
|
|
97973
|
+
* 字段约定:
|
|
97974
|
+
* - 默认字段映射为 `{ value, label, description, icon, tooltip, tags }`;
|
|
97975
|
+
* - 业务直接传 `[{value, label}]` 形态时按默认字段读取;
|
|
97976
|
+
* - 业务直接传 `[{id, name}]` 形态时(未显式配置 optionProps.label / optionProps.value),
|
|
97977
|
+
* 组件会自动按 label → name、value → id 进行回退;
|
|
97978
|
+
* - 业务通过 optionProps 显式指定了 label/value 字段名时(即便值与默认相同),按显式配置严格读取,不再触发回退。
|
|
97979
|
+
*
|
|
97966
97980
|
* @example
|
|
97967
97981
|
* <by-card-selector v-model="id" :options="list" />
|
|
97968
97982
|
* <by-card-selector v-model="ids" :options="list" multiple />
|
|
97969
97983
|
* <by-card-selector v-model="id" :options="list" :card-width="280" />
|
|
97970
|
-
* <by-card-selector v-model="id" :options="list" :show-checkmark="
|
|
97984
|
+
* <by-card-selector v-model="id" :options="list" :show-checkmark="false" />
|
|
97971
97985
|
* <by-card-selector v-model="id" :options="list" tooltips="整组说明文案" />
|
|
97986
|
+
* <!-- 业务使用 id/name 形态时无需任何额外配置 -->
|
|
97987
|
+
* <by-card-selector v-model="id" :options="[{ id: 1, name: 'A' }, { id: 2, name: 'B' }]" />
|
|
97972
97988
|
*/
|
|
97973
97989
|
/* harmony default export */ var ByCardSelectorvue_type_script_lang_js = ({
|
|
97974
97990
|
name: 'ByCardSelector',
|
|
@@ -98017,7 +98033,13 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98017
98033
|
type: Boolean,
|
|
98018
98034
|
default: false
|
|
98019
98035
|
},
|
|
98020
|
-
/**
|
|
98036
|
+
/**
|
|
98037
|
+
* 选项字段映射,默认 value / label / description / icon / tooltip / tags。
|
|
98038
|
+
* - 仅显式覆盖部分字段时,未覆盖字段保持默认;
|
|
98039
|
+
* - 未显式配置 label 时,组件会在数据项缺少 `label` 字段的情况下自动回退到 `name`;
|
|
98040
|
+
* - 未显式配置 value 时,同理回退到 `id`;
|
|
98041
|
+
* - 显式配置(即便值与默认相同,如 `{ label: 'label', value: 'value' }`)会关闭对应字段的自动回退。
|
|
98042
|
+
*/
|
|
98021
98043
|
optionProps: {
|
|
98022
98044
|
type: Object,
|
|
98023
98045
|
default: () => ({})
|
|
@@ -98045,10 +98067,10 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98045
98067
|
type: [String, Number],
|
|
98046
98068
|
default: ''
|
|
98047
98069
|
},
|
|
98048
|
-
/**
|
|
98070
|
+
/** 是否在卡片右侧展示圆形打钩选中指示,默认展示;如不需要可显式设为 false */
|
|
98049
98071
|
showCheckmark: {
|
|
98050
98072
|
type: Boolean,
|
|
98051
|
-
default:
|
|
98073
|
+
default: true
|
|
98052
98074
|
}
|
|
98053
98075
|
},
|
|
98054
98076
|
data() {
|
|
@@ -98063,8 +98085,21 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98063
98085
|
...this.optionProps
|
|
98064
98086
|
};
|
|
98065
98087
|
},
|
|
98066
|
-
|
|
98067
|
-
|
|
98088
|
+
/**
|
|
98089
|
+
* 当业务方未显式配置 optionProps.label 时启用 label → name 回退;
|
|
98090
|
+
* 显式配置则关闭回退(严格使用业务方指定的字段)。
|
|
98091
|
+
*/
|
|
98092
|
+
labelFallbackField() {
|
|
98093
|
+
if (this.optionProps && this.optionProps.label !== undefined) return '';
|
|
98094
|
+
return LABEL_FALLBACK_FIELD;
|
|
98095
|
+
},
|
|
98096
|
+
/**
|
|
98097
|
+
* 当业务方未显式配置 optionProps.value 时启用 value → id 回退;
|
|
98098
|
+
* 显式配置则关闭回退。
|
|
98099
|
+
*/
|
|
98100
|
+
valueFallbackField() {
|
|
98101
|
+
if (this.optionProps && this.optionProps.value !== undefined) return '';
|
|
98102
|
+
return VALUE_FALLBACK_FIELD;
|
|
98068
98103
|
},
|
|
98069
98104
|
/** 解析后的卡片宽度(px),无效或未传时为 null */
|
|
98070
98105
|
resolvedCardWidthPx() {
|
|
@@ -98131,16 +98166,32 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98131
98166
|
if (obj == null || key == null || key === '') return undefined;
|
|
98132
98167
|
return obj[key];
|
|
98133
98168
|
},
|
|
98169
|
+
/**
|
|
98170
|
+
* 取字段值,主键 `key` 在对象上不存在时回退到 `fallbackKey`。
|
|
98171
|
+
* 仅以 hasOwnProperty 判断字段「是否存在」,因此业务方有意置 null / '' 不会被覆盖。
|
|
98172
|
+
*/
|
|
98173
|
+
pickWithFallback(obj, key, fallbackKey) {
|
|
98174
|
+
if (obj == null) return undefined;
|
|
98175
|
+
if (key && Object.prototype.hasOwnProperty.call(obj, key)) return obj[key];
|
|
98176
|
+
if (fallbackKey && Object.prototype.hasOwnProperty.call(obj, fallbackKey)) return obj[fallbackKey];
|
|
98177
|
+
return undefined;
|
|
98178
|
+
},
|
|
98134
98179
|
optionKey(item, index) {
|
|
98135
|
-
|
|
98180
|
+
// 显式 optionKeyField 优先按指定字段取键;否则复用 optionValue(带 id 回退)保证 :key 在 value/id 两种约定下都稳定
|
|
98181
|
+
let v;
|
|
98182
|
+
if (this.optionKeyField) {
|
|
98183
|
+
v = this.pick(item, this.optionKeyField);
|
|
98184
|
+
} else {
|
|
98185
|
+
v = this.optionValue(item);
|
|
98186
|
+
}
|
|
98136
98187
|
if (v !== undefined && v !== null) return v;
|
|
98137
98188
|
return index;
|
|
98138
98189
|
},
|
|
98139
98190
|
optionValue(item) {
|
|
98140
|
-
return this.
|
|
98191
|
+
return this.pickWithFallback(item, this.mergedOptionProps.value, this.valueFallbackField);
|
|
98141
98192
|
},
|
|
98142
98193
|
optionLabel(item) {
|
|
98143
|
-
const v = this.
|
|
98194
|
+
const v = this.pickWithFallback(item, this.mergedOptionProps.label, this.labelFallbackField);
|
|
98144
98195
|
return v != null && v !== '' ? String(v) : '';
|
|
98145
98196
|
},
|
|
98146
98197
|
optionDescription(item) {
|
|
@@ -98299,8 +98350,8 @@ const DEFAULT_OPTION_PROPS = () => ({
|
|
|
98299
98350
|
;
|
|
98300
98351
|
var ByCardSelector_component = normalizeComponent(
|
|
98301
98352
|
card_selector_ByCardSelectorvue_type_script_lang_js,
|
|
98302
|
-
|
|
98303
|
-
|
|
98353
|
+
ByCardSelectorvue_type_template_id_681372fb_render,
|
|
98354
|
+
ByCardSelectorvue_type_template_id_681372fb_staticRenderFns,
|
|
98304
98355
|
false,
|
|
98305
98356
|
null,
|
|
98306
98357
|
null,
|