取值方法实现
setSelectModelValue(value, moreValue = false, interval = ',', key) {
if (moreValue) {
let transform = (val) => {
let result = [];
typeof val === 'string' && val.indexOf(interval) !== -1 ? result = val.split(interval) : result.push(val);
if (typeof val === 'object' && val.length) {
if (typeof val[0] === 'string' || typeof val[0] === 'number') {
result = val
} else {
result = val.map(m => m[key])
}
}
return result
};
return value ? transform(value) : []
} else {
return value && value !== 0 ? value : ''
}
},
取值方法调用
console.log('setSelectModelValue=======', this.setSelectModelValue(1)); // 1
console.log('setSelectModelValue=======', this.setSelectModelValue('11')); // '11'
console.log('setSelectModelValue=======', this.setSelectModelValue(null)); // ''
console.log('setSelectModelValue===true====', this.setSelectModelValue('11', true)); // ['11']
console.log('setSelectModelValue===true====', this.setSelectModelValue('11,22,33', true)); // ['11,22,33']
console.log('setSelectModelValue===true====', this.setSelectModelValue('77|88|99', true, '|')); // [77,88,99]
console.log('setSelectModelValue===true====', this.setSelectModelValue([11,22,33], true)); // [11,22,33]
console.log('setSelectModelValue===true====', this.setSelectModelValue([{value: '样式'}, {value: '30'}, {value: '40'}], true, '', 'value')); // ['样式', '30', '40']
console.log('setSelectModelValue===true====', this.setSelectModelValue(null, true)); // []
获取展示文本
selectOptions: [
{ "label": "苹果", "value": "apple"},
{ "label": "香蕉", "value": "banana"},
{ "label": "橙子", "value": "orange"},
{ "label": "雪梨", "value": "pear"},
],
single: 'apple',
double: ['apple', 'pear']
单选Select获取展示文本
let sv = this.selectOptions.find(option => option.value === this.single)
console.log('sv=======', sv.label, sv.value); // 苹果 apple
多选Select获取展示文本
let names = this.double.map(value => {
let option = this.selectOptions.find(option => option.value === value)
return option ? option.label : ''
})
console.log('names=======', names); // ["苹果", "雪梨"]