Element-ui 自定义下拉框,实现选择图片并且回显图片

自定义select下拉框:

<!-- mark用来确定方向的指向 -->
<el-select v-model="scope.row.mark" style="width: 100%;" placeholder="请选择" @change="changeSelection(scope)"  :ref="'select'+scope.$index">
   <el-option
       v-for="item in directionOption"
       :key="item.value"
       :label="item.label"
       :value="item.value">
        <img  :src="item.label" >
    </el-option>
</el-select>

export default {
  data(){
    return {
     // label:图片路径 value:方向指向
      directionOption:[
        {
          label:'/static/img/rel/right.png',
          value:'0'
        }, {
          label:'/static/img/rel/left.png',
          value:'1'
        },
      ],
    };
  },

效果:

选中后的效果:

js动作实现:

methods: {
    //关系方向下拉框改变事件
    changeSelection(scope){
      let mark = scope.row.mark;
      let i = scope.$index;
      for(let index in this.directionOption){
        let aa = this.directionOption[index];
        let value = aa.value;
        if(mark === value ){
          this.$refs[`select${i}`].$el.children[0].children[0].setAttribute('style','background:url('+ aa.label +') no-repeat;color:#fff;text-indent: -9999px;background-position: center center');
        }
      }
    },
 }

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
el-select 是 Element UI 提供的下选择器组件,本身并不支持上传图片回显图片的功能。你可能需要结合其他 Element UI 组件,如 el-upload 和 el-image,来实现这个功能。 以下是一个示例代码,可以实现在 el-select 中选择图片上传,并在下框中回显图片: ```html <template> <el-select v-model="selectedImg" placeholder="Select image"> <el-option v-for="(img, index) in images" :key="index" :label="img.name" :value="img.url"> <el-image :src="img.url" :fit="fit" /> </el-option> <el-option> <el-upload class="upload-demo" :action="uploadUrl" :show-file-list="false" :on-success="handleSuccess" > <el-button size="small" type="primary">Click to upload</el-button> </el-upload> </el-option> </el-select> </template> <script> export default { data() { return { images: [ { name: 'Image 1', url: 'https://via.placeholder.com/150' }, { name: 'Image 2', url: 'https://via.placeholder.com/150' }, { name: 'Image 3', url: 'https://via.placeholder.com/150' }, ], selectedImg: '', fit: 'cover', uploadUrl: '/api/upload', // replace with your own upload API URL }; }, methods: { handleSuccess(res) { this.images.push({ name: res.name, url: res.url }); }, }, }; </script> ``` 这个示例中,我们使用 el-option 组件来展示图片,并在其中嵌入 el-image 组件来显示图片。同时,在最后一个 el-option 中,我们使用 el-upload 组件来实现上传图片功能。上传成功后,会调用 handleSuccess 方法将新上传的图片信息添加到 images 数组中,从而实现图片的动态更新。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hi,all

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值