element select下拉框颜色

文章描述:

<template> <div class=”my-ui”> <el-selec […]

<template>
	<div class="my-ui">
		    <el-select
		      v-model="value"
		      clearable
		      filterable
		      style="width: 140px"
		      placeholder="请选择"
			  :popper-append-to-body="false"
			  ref="colorDiv"
			  @change="selectHandle($event)"
			  class="select-ui"
		    >
		      <el-option
		        v-for="item in options"
		        v-bind:key="item.value"
		        :label="item.label"
		        :value="item.value"
				v-html="
		           `<span style='color:${getUrgencyColor(item.value)}' title='${item.value}'
				   
				   >${item.label}</span>` "

		      ></el-option>
		    </el-select>
	</div>
</template>
<script>

export default {
    data() {
      return {
        options: [{
                  value: '1',
                  label: '黄金糕',
				  
                }, {
                  value: '2',
                  label: '双皮奶',
				 
                }, {
                  value: '3',
                  label: '蚵仔煎',
				  
                }, {
                  value: '4',
                  label: '龙须面',
				 
                }, {
                  value: '5',
                  label: '北京烤鸭',
				  
                }],
                value: ''
      }
    },
	created() {

	},
	mounted() {
    
  },
	methods:{
		  // 获取紧急程度颜色
		    getUrgencyColor(code) {
		      if (code == 1) {
		        return "red";
		      } else if (code == 2) {
		        return "orange";
		      } else if (code == 3) {
		        return "blue";
		      } else if (code == 4) {
		        return "green";
		      } else if (code == 5) {
		        return "block";
		      }
		      // return "block";
		    },
		selectHandle(e){
			// console.log('value值:',e)
			
			let obj = this.options.find((item,i)=>{
				return item.value == e
			})
			// console.log('obj',obj)
			let classname = ''
			if(obj.value==1){
				classname = 'red'
			}
			if(obj.value==2){
				classname = 'orange'
			}
			if(obj.value==3){
				classname = 'blue'
			}
			if(obj.value==4){
				classname = 'green'
			}
			if(obj.value==5){
				classname = 'block'
			}
			
			let that = this
			 this.$nextTick(() => {
				// console.log('$nextTick')
				
				let animals = ['red', 'orange', 'blue', 'green', 'block']
				let Having = animals.includes(classname) // true
				
				this.$refs.colorDiv.$el.classList.remove('red')
				this.$refs.colorDiv.$el.classList.remove('orange')
				this.$refs.colorDiv.$el.classList.remove('blue')
				this.$refs.colorDiv.$el.classList.remove('green')
				this.$refs.colorDiv.$el.classList.remove('block')
				 
				this.$refs.colorDiv.$el.classList.add(classname)
			})
		},
		
	}
}
</script>

<style lang="scss">
.my-ui{
	.red{
		span{
			color: red;
		}
	}
	.orange{
		span{
			color: orange;
		}
	}
	.blue{
		span{
			color: blue;
		}
	}
	.green{
		span{
			color: green;
		}
	}
	.block{
		span{
			color: #000;
		}
	}
}

</style>

 

 

发布时间:2025/02/21

发表评论