取值方法实现

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); // ["苹果", "雪梨"]
posted on 2022-06-22 17:50  羽丫头不乖  阅读(780)  评论(0编辑  收藏  举报