欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VUE element ui根据数组生成多个互不干扰的下拉菜单并获取对应参数

程序员文章站 2024-02-19 00:02:52
...

直接放图和代码
效果图:
1.默认初始效果
VUE element ui根据数组生成多个互不干扰的下拉菜单并获取对应参数
2.选择后效果
VUE element ui根据数组生成多个互不干扰的下拉菜单并获取对应参数
代码:

<template>
  <basic-container>
    <h2>VUE element ui根据数组生成多个互不干扰的下拉菜单并获取对应参数</h2>
      <el-row>
          <el-col>
            <el-button @click="aaa">输出下拉数组</el-button>
          </el-col>
      </el-row>

      <el-row :gutter="12">
        <el-col :span="6" v-for="(item,index) in imgList" style="padding-top: 10px;">
          <el-card style="width: 100%; height: 280px;" :body-style="{ padding: '0px' ,width:'100%',height:'100%', display: 'flex',cursor:'pointer'}"
            shadow="hover">
            <div style="position: relative; width: 100%;" class="check_box">
              <el-dropdown @command="sumTypeCkeck" @visible-change="set_index(index)" style="position: absolute;right: 10px; top: 5px; z-index: 1;">
                <span class="el-dropdown-link" style="color: #FFFFFF;">
                  {{sumType[index]}}<i class="el-icon-arrow-down el-icon--right"></i>
                </span>
                <el-dropdown-menu slot="dropdown">
                  <el-dropdown-item v-for="(item,index) in sumTypeArray[index]" v-text="item" :command="item"></el-dropdown-item>
                </el-dropdown-menu>
              </el-dropdown>
              <el-image :src="item.img" onerror="this.style.display='none'" style="max-height: 100%;max-width: 100%;left: 50%;top: 50%;transform: translate(-50%,-50%)">
              </el-image>
              <div style="font-size: 16px;position: absolute;bottom: 0; background-color: rgba(150, 150, 150, 0.35); height: 30px; width: 100%; text-align: center; line-height: 30px;color: yellow;">{{item.title}}</div>
            </div>
          </el-card>
        </el-col>
      </el-row>
  </basic-container>
</template>

<script>
  import ThreeDmodel from '../../components/4D/3Dmodel.vue'
  export default {
    components: {
      ThreeDmodel
    },
    data() {
      return {
        imgList: [],        //显示墙面的数组
        index:0,           //第几个下拉框
        sumTypeArray: [[0,1, 2, 3, 4, 5],[0,9,10],[0,110,120],[0,119,911],[0,5,4],[0,3,8],[0,41,514]],//下拉参数值
        sumType: [],        //选中(默认)值
      };
    },
    mounted() {
      for (var i = 0; i < 6; i++) {
        this.imgList.push({
          title: i + 1 + '面',
          img: 'http://192.168.10.67:8000/media/77/test/images/ABC%E5%A1%94%E6%A5%BC%E7%AB%8B%E9%9D%A220120824_t3_2/glass/C-LM-02-11-20.png'
        })
      }

      for(var i=0;i<this.imgList.length;i++){
        this.sumType.push(0)
      }
    },
    methods: {
      sumTypeCkeck(type) {
        this.sumType[this.index] = type
        this.sumType=[...this.sumType]//ES6拓展运算符生成新的props对象
        // console.log(type)
        // console.log(this.index)
      },
      set_index(index) {
        this.index = index
      },
      aaa(){
        console.log(this.sumType)
      },
    },
  }
</script>

<style>
</style>